@effect-aws/client-bedrock 1.2.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/BedrockClientInstance/package.json +6 -0
  2. package/BedrockService/package.json +6 -0
  3. package/BedrockServiceConfig/package.json +6 -0
  4. package/Errors/package.json +6 -0
  5. package/LICENSE +1 -1
  6. package/dist/cjs/BedrockClientInstance.d.ts +24 -0
  7. package/dist/cjs/BedrockClientInstance.d.ts.map +1 -0
  8. package/dist/cjs/BedrockClientInstance.js +50 -0
  9. package/dist/cjs/BedrockClientInstance.js.map +1 -0
  10. package/{lib → dist/cjs}/BedrockService.d.ts +16 -38
  11. package/dist/cjs/BedrockService.d.ts.map +1 -0
  12. package/dist/cjs/BedrockService.js +113 -0
  13. package/dist/cjs/BedrockService.js.map +1 -0
  14. package/dist/cjs/BedrockServiceConfig.d.ts +25 -0
  15. package/dist/cjs/BedrockServiceConfig.d.ts.map +1 -0
  16. package/dist/cjs/BedrockServiceConfig.js +35 -0
  17. package/dist/cjs/BedrockServiceConfig.js.map +1 -0
  18. package/{lib → dist/cjs}/Errors.d.ts +6 -11
  19. package/dist/cjs/Errors.d.ts.map +1 -0
  20. package/dist/cjs/Errors.js +17 -0
  21. package/dist/cjs/Errors.js.map +1 -0
  22. package/dist/cjs/index.d.ts +39 -0
  23. package/dist/cjs/index.d.ts.map +1 -0
  24. package/dist/cjs/index.js +56 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/dts/BedrockClientInstance.d.ts +24 -0
  27. package/dist/dts/BedrockClientInstance.d.ts.map +1 -0
  28. package/dist/dts/BedrockService.d.ts +328 -0
  29. package/dist/dts/BedrockService.d.ts.map +1 -0
  30. package/dist/dts/BedrockServiceConfig.d.ts +25 -0
  31. package/dist/dts/BedrockServiceConfig.d.ts.map +1 -0
  32. package/dist/dts/Errors.d.ts +16 -0
  33. package/dist/dts/Errors.d.ts.map +1 -0
  34. package/dist/dts/index.d.ts +39 -0
  35. package/dist/dts/index.d.ts.map +1 -0
  36. package/dist/esm/BedrockClientInstance.js +23 -0
  37. package/dist/esm/BedrockClientInstance.js.map +1 -0
  38. package/dist/esm/BedrockService.js +86 -0
  39. package/dist/esm/BedrockService.js.map +1 -0
  40. package/dist/esm/BedrockServiceConfig.js +31 -0
  41. package/dist/esm/BedrockServiceConfig.js.map +1 -0
  42. package/dist/esm/Errors.js +14 -0
  43. package/dist/esm/Errors.js.map +1 -0
  44. package/dist/esm/index.js +27 -0
  45. package/dist/esm/index.js.map +1 -0
  46. package/dist/esm/package.json +4 -0
  47. package/package.json +60 -43
  48. package/src/BedrockClientInstance.ts +33 -0
  49. package/src/BedrockService.ts +1088 -0
  50. package/src/BedrockServiceConfig.ts +52 -0
  51. package/src/Errors.ts +38 -0
  52. package/src/index.ts +44 -0
  53. package/CHANGELOG.md +0 -19
  54. package/docgen.json +0 -8
  55. package/lib/BedrockClientInstance.d.ts +0 -31
  56. package/lib/BedrockClientInstance.js +0 -57
  57. package/lib/BedrockClientInstanceConfig.d.ts +0 -23
  58. package/lib/BedrockClientInstanceConfig.js +0 -44
  59. package/lib/BedrockService.js +0 -145
  60. package/lib/Errors.js +0 -17
  61. package/lib/esm/BedrockClientInstance.js +0 -30
  62. package/lib/esm/BedrockClientInstanceConfig.js +0 -40
  63. package/lib/esm/BedrockService.js +0 -141
  64. package/lib/esm/Errors.js +0 -14
  65. package/lib/esm/index.js +0 -5
  66. package/lib/index.d.ts +0 -4
  67. package/lib/index.js +0 -21
  68. package/project.json +0 -77
  69. package/vitest.config.ts +0 -3
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { BedrockClientConfig } from "@aws-sdk/client-bedrock";
5
+ import { ServiceLogger } from "@effect-aws/commons";
6
+ import { Effect, FiberRef, Layer } from "effect";
7
+ import { dual } from "effect/Function";
8
+ import { globalValue } from "effect/GlobalValue";
9
+ import type { BedrockService } from "./BedrockService.js";
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ * @category bedrock service config
14
+ */
15
+ const currentBedrockServiceConfig = globalValue(
16
+ "@effect-aws/client-bedrock/currentBedrockServiceConfig",
17
+ () => FiberRef.unsafeMake<BedrockService.Config>({}),
18
+ );
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category bedrock service config
23
+ */
24
+ export const withBedrockServiceConfig: {
25
+ (config: BedrockService.Config): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
26
+ <A, E, R>(effect: Effect.Effect<A, E, R>, config: BedrockService.Config): Effect.Effect<A, E, R>;
27
+ } = dual(
28
+ 2,
29
+ <A, E, R>(effect: Effect.Effect<A, E, R>, config: BedrockService.Config): Effect.Effect<A, E, R> =>
30
+ Effect.locally(effect, currentBedrockServiceConfig, config),
31
+ );
32
+
33
+ /**
34
+ * @since 1.0.0
35
+ * @category bedrock service config
36
+ */
37
+ export const setBedrockServiceConfig = (config: BedrockService.Config) =>
38
+ Layer.locallyScoped(currentBedrockServiceConfig, config);
39
+
40
+ /**
41
+ * @since 1.0.0
42
+ * @category adapters
43
+ */
44
+ export const toBedrockClientConfig: Effect.Effect<BedrockClientConfig> = Effect.gen(function*() {
45
+ const { logger: serviceLogger, ...config } = yield* FiberRef.get(currentBedrockServiceConfig);
46
+
47
+ const logger = serviceLogger === true
48
+ ? yield* ServiceLogger.toClientLogger(ServiceLogger.defaultServiceLogger)
49
+ : (serviceLogger ? yield* ServiceLogger.toClientLogger(ServiceLogger.make(serviceLogger)) : undefined);
50
+
51
+ return { logger, ...config };
52
+ });
package/src/Errors.ts ADDED
@@ -0,0 +1,38 @@
1
+ import type {
2
+ AccessDeniedException,
3
+ ConflictException,
4
+ InternalServerException,
5
+ ResourceNotFoundException,
6
+ ServiceQuotaExceededException,
7
+ ServiceUnavailableException,
8
+ ThrottlingException,
9
+ TooManyTagsException,
10
+ ValidationException,
11
+ } from "@aws-sdk/client-bedrock";
12
+ import type { TaggedException } from "@effect-aws/commons";
13
+ import { SdkError as CommonSdkError } from "@effect-aws/commons";
14
+
15
+ export const AllServiceErrors = [
16
+ "AccessDeniedException",
17
+ "ConflictException",
18
+ "InternalServerException",
19
+ "ResourceNotFoundException",
20
+ "ServiceQuotaExceededException",
21
+ "ServiceUnavailableException",
22
+ "ThrottlingException",
23
+ "TooManyTagsException",
24
+ "ValidationException",
25
+ ] as const;
26
+
27
+ export type AccessDeniedError = TaggedException<AccessDeniedException>;
28
+ export type ConflictError = TaggedException<ConflictException>;
29
+ export type InternalServerError = TaggedException<InternalServerException>;
30
+ export type ResourceNotFoundError = TaggedException<ResourceNotFoundException>;
31
+ export type ServiceQuotaExceededError = TaggedException<ServiceQuotaExceededException>;
32
+ export type ServiceUnavailableError = TaggedException<ServiceUnavailableException>;
33
+ export type ThrottlingError = TaggedException<ThrottlingException>;
34
+ export type TooManyTagsError = TaggedException<TooManyTagsException>;
35
+ export type ValidationError = TaggedException<ValidationException>;
36
+
37
+ export type SdkError = CommonSdkError;
38
+ export const SdkError = CommonSdkError;
package/src/index.ts ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { BedrockService } from "./BedrockService.js";
5
+
6
+ /**
7
+ * @since 1.0.0
8
+ */
9
+ export * from "./Errors.js";
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export * as BedrockClientInstance from "./BedrockClientInstance.js";
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+ export * as BedrockServiceConfig from "./BedrockServiceConfig.js";
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * from "./BedrockService.js";
25
+
26
+ /**
27
+ * @since 1.0.0
28
+ * @category exports
29
+ * @alias BedrockService
30
+ */
31
+ export declare namespace Bedrock {
32
+ /**
33
+ * @since 1.0.0
34
+ * @alias BedrockService.Config
35
+ */
36
+ export type Config = BedrockService.Config;
37
+ }
38
+
39
+ /**
40
+ * @since 1.0.0
41
+ * @category exports
42
+ * @alias BedrockService
43
+ */
44
+ export const Bedrock = BedrockService;
package/CHANGELOG.md DELETED
@@ -1,19 +0,0 @@
1
- # @effect-aws/client-bedrock
2
-
3
- ## 1.2.0
4
-
5
- ### Minor Changes
6
-
7
- - [`b24f980`](https://github.com/floydspace/effect-aws/commit/b24f98045ee3383c54d1152054e5b77f01d5f5e3) Thanks [@floydspace](https://github.com/floydspace)! - update services
8
-
9
- ## 1.1.0
10
-
11
- ### Minor Changes
12
-
13
- - [#80](https://github.com/floydspace/effect-aws/pull/80) [`4b16fbe`](https://github.com/floydspace/effect-aws/commit/4b16fbebce8131df7798ee92f43cf6b7df3e907c) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
14
-
15
- ## 1.0.0
16
-
17
- ### Major Changes
18
-
19
- - [#77](https://github.com/floydspace/effect-aws/pull/77) [`9f98088`](https://github.com/floydspace/effect-aws/commit/9f98088422f25ecba32f2bd193c5eb28f19622cc) Thanks [@successkrisz](https://github.com/successkrisz)! - implement bedrock and textract clients
package/docgen.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/@effect/docgen/schema.json",
3
- "exclude": [
4
- "src/index.ts",
5
- "src/Errors.ts"
6
- ],
7
- "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
8
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import { BedrockClient } from "@aws-sdk/client-bedrock";
5
- import * as Context from "effect/Context";
6
- import * as Effect from "effect/Effect";
7
- import * as Layer from "effect/Layer";
8
- import { BedrockClientInstanceConfig } from "./BedrockClientInstanceConfig";
9
- declare const BedrockClientInstance_base: Context.TagClass<BedrockClientInstance, "@effect-aws/client-bedrock/BedrockClientInstance", BedrockClient>;
10
- /**
11
- * @since 1.0.0
12
- * @category tags
13
- */
14
- export declare class BedrockClientInstance extends BedrockClientInstance_base {
15
- }
16
- /**
17
- * @since 1.0.0
18
- * @category constructors
19
- */
20
- export declare const makeBedrockClientInstance: Effect.Effect<BedrockClient, never, BedrockClientInstanceConfig>;
21
- /**
22
- * @since 1.0.0
23
- * @category layers
24
- */
25
- export declare const BedrockClientInstanceLayer: Layer.Layer<BedrockClientInstance, never, BedrockClientInstanceConfig>;
26
- /**
27
- * @since 1.0.0
28
- * @category layers
29
- */
30
- export declare const DefaultBedrockClientInstanceLayer: Layer.Layer<BedrockClientInstance, never, never>;
31
- export {};
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DefaultBedrockClientInstanceLayer = exports.BedrockClientInstanceLayer = exports.makeBedrockClientInstance = exports.BedrockClientInstance = void 0;
27
- /**
28
- * @since 1.0.0
29
- */
30
- const client_bedrock_1 = require("@aws-sdk/client-bedrock");
31
- const Context = __importStar(require("effect/Context"));
32
- const Effect = __importStar(require("effect/Effect"));
33
- const Layer = __importStar(require("effect/Layer"));
34
- const BedrockClientInstanceConfig_1 = require("./BedrockClientInstanceConfig");
35
- /**
36
- * @since 1.0.0
37
- * @category tags
38
- */
39
- class BedrockClientInstance extends Context.Tag("@effect-aws/client-bedrock/BedrockClientInstance")() {
40
- }
41
- exports.BedrockClientInstance = BedrockClientInstance;
42
- /**
43
- * @since 1.0.0
44
- * @category constructors
45
- */
46
- exports.makeBedrockClientInstance = Effect.map(BedrockClientInstanceConfig_1.BedrockClientInstanceConfig, (config) => new client_bedrock_1.BedrockClient(config));
47
- /**
48
- * @since 1.0.0
49
- * @category layers
50
- */
51
- exports.BedrockClientInstanceLayer = Layer.effect(BedrockClientInstance, exports.makeBedrockClientInstance);
52
- /**
53
- * @since 1.0.0
54
- * @category layers
55
- */
56
- exports.DefaultBedrockClientInstanceLayer = exports.BedrockClientInstanceLayer.pipe(Layer.provide(BedrockClientInstanceConfig_1.DefaultBedrockClientConfigLayer));
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja0NsaWVudEluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0JlZHJvY2tDbGllbnRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsNERBQXdEO0FBQ3hELHdEQUEwQztBQUMxQyxzREFBd0M7QUFDeEMsb0RBQXNDO0FBQ3RDLCtFQUd1QztBQUV2Qzs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLE9BQU8sQ0FBQyxHQUFHLENBQ3BELGtEQUFrRCxDQUNuRCxFQUF3QztDQUFHO0FBRjVDLHNEQUU0QztBQUU1Qzs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ2pELHlEQUEyQixFQUMzQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSw4QkFBYSxDQUFDLE1BQU0sQ0FBQyxDQUN0QyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNwRCxxQkFBcUIsRUFDckIsaUNBQXlCLENBQzFCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLGlDQUFpQyxHQUM1QyxrQ0FBMEIsQ0FBQyxJQUFJLENBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsNkRBQStCLENBQUMsQ0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7IEJlZHJvY2tDbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWJlZHJvY2tcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIExheWVyIGZyb20gXCJlZmZlY3QvTGF5ZXJcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRCZWRyb2NrQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY2xhc3MgQmVkcm9ja0NsaWVudEluc3RhbmNlIGV4dGVuZHMgQ29udGV4dC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWJlZHJvY2svQmVkcm9ja0NsaWVudEluc3RhbmNlXCIsXG4pPEJlZHJvY2tDbGllbnRJbnN0YW5jZSwgQmVkcm9ja0NsaWVudD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUJlZHJvY2tDbGllbnRJbnN0YW5jZSA9IEVmZmVjdC5tYXAoXG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IEJlZHJvY2tDbGllbnQoY29uZmlnKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgQmVkcm9ja0NsaWVudEluc3RhbmNlLFxuICBtYWtlQmVkcm9ja0NsaWVudEluc3RhbmNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciA9XG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiJdfQ==
@@ -1,23 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { BedrockClientConfig } from "@aws-sdk/client-bedrock";
5
- import { Context, Effect, Layer } from "effect";
6
- declare const BedrockClientInstanceConfig_base: Context.TagClass<BedrockClientInstanceConfig, "@effect-aws/client-bedrock/BedrockClientInstanceConfig", BedrockClientConfig>;
7
- /**
8
- * @since 1.0.0
9
- * @category tags
10
- */
11
- export declare class BedrockClientInstanceConfig extends BedrockClientInstanceConfig_base {
12
- }
13
- /**
14
- * @since 1.0.0
15
- * @category constructors
16
- */
17
- export declare const makeDefaultBedrockClientInstanceConfig: Effect.Effect<BedrockClientConfig>;
18
- /**
19
- * @since 1.0.0
20
- * @category layers
21
- */
22
- export declare const DefaultBedrockClientConfigLayer: Layer.Layer<BedrockClientInstanceConfig, never, never>;
23
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultBedrockClientConfigLayer = exports.makeDefaultBedrockClientInstanceConfig = exports.BedrockClientInstanceConfig = void 0;
4
- const effect_1 = require("effect");
5
- /**
6
- * @since 1.0.0
7
- * @category tags
8
- */
9
- class BedrockClientInstanceConfig extends effect_1.Context.Tag("@effect-aws/client-bedrock/BedrockClientInstanceConfig")() {
10
- }
11
- exports.BedrockClientInstanceConfig = BedrockClientInstanceConfig;
12
- /**
13
- * @since 1.0.0
14
- * @category constructors
15
- */
16
- exports.makeDefaultBedrockClientInstanceConfig = effect_1.Effect.gen(function* (_) {
17
- const runtime = yield* _(effect_1.Effect.runtime());
18
- const runSync = effect_1.Runtime.runSync(runtime);
19
- return {
20
- logger: {
21
- info(m) {
22
- effect_1.Effect.logInfo(m).pipe(runSync);
23
- },
24
- warn(m) {
25
- effect_1.Effect.logWarning(m).pipe(runSync);
26
- },
27
- error(m) {
28
- effect_1.Effect.logError(m).pipe(runSync);
29
- },
30
- debug(m) {
31
- effect_1.Effect.logDebug(m).pipe(runSync);
32
- },
33
- trace(m) {
34
- effect_1.Effect.logTrace(m).pipe(runSync);
35
- },
36
- },
37
- };
38
- });
39
- /**
40
- * @since 1.0.0
41
- * @category layers
42
- */
43
- exports.DefaultBedrockClientConfigLayer = effect_1.Layer.effect(BedrockClientInstanceConfig, exports.makeDefaultBedrockClientInstanceConfig);
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0JlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtQ0FBeUQ7QUFFekQ7OztHQUdHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxnQkFBTyxDQUFDLEdBQUcsQ0FDMUQsd0RBQXdELENBQ3pELEVBQW9EO0NBQUc7QUFGeEQsa0VBRXdEO0FBRXhEOzs7R0FHRztBQUNVLFFBQUEsc0NBQXNDLEdBQ2pELGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBTSxDQUFDLE9BQU8sRUFBUyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsZ0JBQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FBQyxDQUFDO2dCQUNKLGVBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsQ0FBQztnQkFDSixlQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsS0FBSyxDQUFDLENBQUM7Z0JBQ0wsZUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxDQUFDO2dCQUNMLGVBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLENBQUMsQ0FBQztnQkFDTCxlQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFTDs7O0dBR0c7QUFDVSxRQUFBLCtCQUErQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3pELDJCQUEyQixFQUMzQiw4Q0FBc0MsQ0FDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB0eXBlIHsgQmVkcm9ja0NsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtYmVkcm9ja1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUnVudGltZSB9IGZyb20gXCJlZmZlY3RcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjbGFzcyBCZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWcgZXh0ZW5kcyBDb250ZXh0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtYmVkcm9jay9CZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWdcIixcbik8QmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLCBCZWRyb2NrQ2xpZW50Q29uZmlnPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVmYXVsdEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZzogRWZmZWN0LkVmZmVjdDxCZWRyb2NrQ2xpZW50Q29uZmlnPiA9XG4gIEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gICAgY29uc3QgcnVudGltZSA9IHlpZWxkKiBfKEVmZmVjdC5ydW50aW1lPG5ldmVyPigpKTtcbiAgICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2dlcjoge1xuICAgICAgICBpbmZvKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICB3YXJuKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtKSB7XG4gICAgICAgICAgRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUocnVuU3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnKG0pIHtcbiAgICAgICAgICBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhY2UobSkge1xuICAgICAgICAgIEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRCZWRyb2NrQ2xpZW50Q29uZmlnTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgbWFrZURlZmF1bHRCZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DefaultBedrockServiceLayer = exports.BedrockServiceLayer = exports.BaseBedrockServiceLayer = exports.Bedrock = exports.BedrockService = exports.makeBedrockService = void 0;
5
- /**
6
- * @since 1.0.0
7
- */
8
- const client_bedrock_1 = require("@aws-sdk/client-bedrock");
9
- const effect_1 = require("effect");
10
- const BedrockClientInstance_1 = require("./BedrockClientInstance");
11
- const BedrockClientInstanceConfig_1 = require("./BedrockClientInstanceConfig");
12
- const Errors_1 = require("./Errors");
13
- const commands = {
14
- BatchDeleteEvaluationJobCommand: client_bedrock_1.BatchDeleteEvaluationJobCommand,
15
- CreateEvaluationJobCommand: client_bedrock_1.CreateEvaluationJobCommand,
16
- CreateGuardrailCommand: client_bedrock_1.CreateGuardrailCommand,
17
- CreateGuardrailVersionCommand: client_bedrock_1.CreateGuardrailVersionCommand,
18
- CreateInferenceProfileCommand: client_bedrock_1.CreateInferenceProfileCommand,
19
- CreateMarketplaceModelEndpointCommand: client_bedrock_1.CreateMarketplaceModelEndpointCommand,
20
- CreateModelCopyJobCommand: client_bedrock_1.CreateModelCopyJobCommand,
21
- CreateModelCustomizationJobCommand: client_bedrock_1.CreateModelCustomizationJobCommand,
22
- CreateModelImportJobCommand: client_bedrock_1.CreateModelImportJobCommand,
23
- CreateModelInvocationJobCommand: client_bedrock_1.CreateModelInvocationJobCommand,
24
- CreateProvisionedModelThroughputCommand: client_bedrock_1.CreateProvisionedModelThroughputCommand,
25
- DeleteCustomModelCommand: client_bedrock_1.DeleteCustomModelCommand,
26
- DeleteGuardrailCommand: client_bedrock_1.DeleteGuardrailCommand,
27
- DeleteImportedModelCommand: client_bedrock_1.DeleteImportedModelCommand,
28
- DeleteInferenceProfileCommand: client_bedrock_1.DeleteInferenceProfileCommand,
29
- DeleteMarketplaceModelEndpointCommand: client_bedrock_1.DeleteMarketplaceModelEndpointCommand,
30
- DeleteModelInvocationLoggingConfigurationCommand: client_bedrock_1.DeleteModelInvocationLoggingConfigurationCommand,
31
- DeleteProvisionedModelThroughputCommand: client_bedrock_1.DeleteProvisionedModelThroughputCommand,
32
- DeregisterMarketplaceModelEndpointCommand: client_bedrock_1.DeregisterMarketplaceModelEndpointCommand,
33
- GetCustomModelCommand: client_bedrock_1.GetCustomModelCommand,
34
- GetEvaluationJobCommand: client_bedrock_1.GetEvaluationJobCommand,
35
- GetFoundationModelCommand: client_bedrock_1.GetFoundationModelCommand,
36
- GetGuardrailCommand: client_bedrock_1.GetGuardrailCommand,
37
- GetImportedModelCommand: client_bedrock_1.GetImportedModelCommand,
38
- GetInferenceProfileCommand: client_bedrock_1.GetInferenceProfileCommand,
39
- GetMarketplaceModelEndpointCommand: client_bedrock_1.GetMarketplaceModelEndpointCommand,
40
- GetModelCopyJobCommand: client_bedrock_1.GetModelCopyJobCommand,
41
- GetModelCustomizationJobCommand: client_bedrock_1.GetModelCustomizationJobCommand,
42
- GetModelImportJobCommand: client_bedrock_1.GetModelImportJobCommand,
43
- GetModelInvocationJobCommand: client_bedrock_1.GetModelInvocationJobCommand,
44
- GetModelInvocationLoggingConfigurationCommand: client_bedrock_1.GetModelInvocationLoggingConfigurationCommand,
45
- GetPromptRouterCommand: client_bedrock_1.GetPromptRouterCommand,
46
- GetProvisionedModelThroughputCommand: client_bedrock_1.GetProvisionedModelThroughputCommand,
47
- ListCustomModelsCommand: client_bedrock_1.ListCustomModelsCommand,
48
- ListEvaluationJobsCommand: client_bedrock_1.ListEvaluationJobsCommand,
49
- ListFoundationModelsCommand: client_bedrock_1.ListFoundationModelsCommand,
50
- ListGuardrailsCommand: client_bedrock_1.ListGuardrailsCommand,
51
- ListImportedModelsCommand: client_bedrock_1.ListImportedModelsCommand,
52
- ListInferenceProfilesCommand: client_bedrock_1.ListInferenceProfilesCommand,
53
- ListMarketplaceModelEndpointsCommand: client_bedrock_1.ListMarketplaceModelEndpointsCommand,
54
- ListModelCopyJobsCommand: client_bedrock_1.ListModelCopyJobsCommand,
55
- ListModelCustomizationJobsCommand: client_bedrock_1.ListModelCustomizationJobsCommand,
56
- ListModelImportJobsCommand: client_bedrock_1.ListModelImportJobsCommand,
57
- ListModelInvocationJobsCommand: client_bedrock_1.ListModelInvocationJobsCommand,
58
- ListPromptRoutersCommand: client_bedrock_1.ListPromptRoutersCommand,
59
- ListProvisionedModelThroughputsCommand: client_bedrock_1.ListProvisionedModelThroughputsCommand,
60
- ListTagsForResourceCommand: client_bedrock_1.ListTagsForResourceCommand,
61
- PutModelInvocationLoggingConfigurationCommand: client_bedrock_1.PutModelInvocationLoggingConfigurationCommand,
62
- RegisterMarketplaceModelEndpointCommand: client_bedrock_1.RegisterMarketplaceModelEndpointCommand,
63
- StopEvaluationJobCommand: client_bedrock_1.StopEvaluationJobCommand,
64
- StopModelCustomizationJobCommand: client_bedrock_1.StopModelCustomizationJobCommand,
65
- StopModelInvocationJobCommand: client_bedrock_1.StopModelInvocationJobCommand,
66
- TagResourceCommand: client_bedrock_1.TagResourceCommand,
67
- UntagResourceCommand: client_bedrock_1.UntagResourceCommand,
68
- UpdateGuardrailCommand: client_bedrock_1.UpdateGuardrailCommand,
69
- UpdateMarketplaceModelEndpointCommand: client_bedrock_1.UpdateMarketplaceModelEndpointCommand,
70
- UpdateProvisionedModelThroughputCommand: client_bedrock_1.UpdateProvisionedModelThroughputCommand,
71
- };
72
- /**
73
- * @since 1.0.0
74
- * @category constructors
75
- */
76
- exports.makeBedrockService = effect_1.Effect.gen(function* (_) {
77
- const client = yield* _(BedrockClientInstance_1.BedrockClientInstance);
78
- return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
79
- const CommandCtor = commands[command];
80
- const methodImpl = (args, options) => effect_1.Effect.tryPromise({
81
- try: (abortSignal) => client.send(new CommandCtor(args), {
82
- ...(options !== null && options !== void 0 ? options : {}),
83
- abortSignal,
84
- }),
85
- catch: (e) => {
86
- if (e instanceof client_bedrock_1.BedrockServiceException &&
87
- Errors_1.AllServiceErrors.includes(e.name)) {
88
- const ServiceException = effect_1.Data.tagged(e.name);
89
- return ServiceException({
90
- ...e,
91
- message: e.message,
92
- stack: e.stack,
93
- });
94
- }
95
- if (e instanceof Error) {
96
- return (0, Errors_1.SdkError)({
97
- ...e,
98
- name: "SdkError",
99
- message: e.message,
100
- stack: e.stack,
101
- });
102
- }
103
- throw e;
104
- },
105
- });
106
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
107
- return { ...acc, [methodName]: methodImpl };
108
- }, {});
109
- });
110
- /**
111
- * @since 1.0.0
112
- * @category models
113
- */
114
- class BedrockService extends effect_1.Effect.Tag("@effect-aws/client-bedrock/BedrockService")() {
115
- }
116
- exports.BedrockService = BedrockService;
117
- _a = BedrockService;
118
- BedrockService.defaultLayer = effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer), effect_1.Layer.provide(BedrockClientInstanceConfig_1.DefaultBedrockClientConfigLayer));
119
- BedrockService.layer = (config) => effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(BedrockClientInstanceConfig_1.BedrockClientInstanceConfig, BedrockClientInstanceConfig_1.makeDefaultBedrockClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
120
- BedrockService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeBedrockService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(BedrockClientInstance_1.BedrockClientInstance, effect_1.Effect.map(BedrockClientInstanceConfig_1.makeDefaultBedrockClientInstanceConfig, evaluate))));
121
- /**
122
- * @since 1.0.0
123
- * @category models
124
- * @alias BedrockService
125
- */
126
- exports.Bedrock = BedrockService;
127
- /**
128
- * @since 1.0.0
129
- * @category layers
130
- * @deprecated use Bedrock.baseLayer instead
131
- */
132
- exports.BaseBedrockServiceLayer = effect_1.Layer.effect(BedrockService, exports.makeBedrockService);
133
- /**
134
- * @since 1.0.0
135
- * @category layers
136
- * @deprecated use Bedrock.layer instead
137
- */
138
- exports.BedrockServiceLayer = exports.BaseBedrockServiceLayer.pipe(effect_1.Layer.provide(BedrockClientInstance_1.BedrockClientInstanceLayer));
139
- /**
140
- * @since 1.0.0
141
- * @category layers
142
- * @deprecated use Bedrock.defaultLayer instead
143
- */
144
- exports.DefaultBedrockServiceLayer = BedrockService.defaultLayer;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmVkcm9ja1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQmVkcm9ja1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsNERBK0tpQztBQUNqQyxtQ0FBcUQ7QUFDckQsbUVBR2lDO0FBQ2pDLCtFQUl1QztBQUN2QyxxQ0Fha0I7QUFhbEIsTUFBTSxRQUFRLEdBQUc7SUFDZiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsc0JBQXNCLEVBQXRCLHVDQUFzQjtJQUN0Qiw2QkFBNkIsRUFBN0IsOENBQTZCO0lBQzdCLDZCQUE2QixFQUE3Qiw4Q0FBNkI7SUFDN0IscUNBQXFDLEVBQXJDLHNEQUFxQztJQUNyQyx5QkFBeUIsRUFBekIsMENBQXlCO0lBQ3pCLGtDQUFrQyxFQUFsQyxtREFBa0M7SUFDbEMsMkJBQTJCLEVBQTNCLDRDQUEyQjtJQUMzQiwrQkFBK0IsRUFBL0IsZ0RBQStCO0lBQy9CLHVDQUF1QyxFQUF2Qyx3REFBdUM7SUFDdkMsd0JBQXdCLEVBQXhCLHlDQUF3QjtJQUN4QixzQkFBc0IsRUFBdEIsdUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3QixxQ0FBcUMsRUFBckMsc0RBQXFDO0lBQ3JDLGdEQUFnRCxFQUFoRCxpRUFBZ0Q7SUFDaEQsdUNBQXVDLEVBQXZDLHdEQUF1QztJQUN2Qyx5Q0FBeUMsRUFBekMsMERBQXlDO0lBQ3pDLHFCQUFxQixFQUFyQixzQ0FBcUI7SUFDckIsdUJBQXVCLEVBQXZCLHdDQUF1QjtJQUN2Qix5QkFBeUIsRUFBekIsMENBQXlCO0lBQ3pCLG1CQUFtQixFQUFuQixvQ0FBbUI7SUFDbkIsdUJBQXVCLEVBQXZCLHdDQUF1QjtJQUN2QiwwQkFBMEIsRUFBMUIsMkNBQTBCO0lBQzFCLGtDQUFrQyxFQUFsQyxtREFBa0M7SUFDbEMs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LE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDakUsQ0FDRixDQUNGLENBQ0YsQUFYa0IsQ0FXakI7QUFDWSx3QkFBUyxHQUFHLENBQzFCLFFBQStELEVBQy9ELEVBQUUsQ0FDRixjQUFLLENBQUMsTUFBTSxDQUFDLEVBQUksRUFBRSwwQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDekMsY0FBSyxDQUFDLE9BQU8sQ0FDWCxjQUFLLENBQUMsTUFBTSxDQUNWLDZDQUFxQixFQUNyQixlQUFNLENBQUMsR0FBRyxDQUFDLG9FQUFzQyxFQUFFLFFBQVEsQ0FBQyxDQUM3RCxDQUNGLENBQ0YsQUFWc0IsQ0FVckI7QUFHTjs7OztHQUlHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsY0FBYyxDQUFDO0FBRXRDOzs7O0dBSUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ2pELGNBQWMsRUFDZCwwQkFBa0IsQ0FDbkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDN0QsY0FBSyxDQUFDLE9BQU8sQ0FBQyxrREFBMEIsQ0FBQyxDQUMxQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsMEJBQTBCLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIEJlZHJvY2tDbGllbnQsXG4gIHR5cGUgQmVkcm9ja0NsaWVudENvbmZpZyxcbiAgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICB0eXBlIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU1vZGVsSW1wb3J0Sm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kLFxuICB0eXBlIEdldEN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEN1c3RvbU1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZCxcbiAgdHlwZSBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0R3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBHZXRHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0R3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIHR5cGUgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZE91dHB1dCxcbiAgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZE91dHB1dCxcbiAgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbENvcHlKb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kLFxuICB0eXBlIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW1wb3J0Sm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZCxcbiAgdHlwZSBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZCxcbiAgdHlwZSBHZXRQcm9tcHRSb3V0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UHJvbXB0Um91dGVyQ29tbWFuZE91dHB1dCxcbiAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kLFxuICB0eXBlIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEd1YXJkcmFpbHNDb21tYW5kLFxuICB0eXBlIExpc3RHdWFyZHJhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RHdWFyZHJhaWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEltcG9ydGVkTW9kZWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5mZXJlbmNlUHJvZmlsZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbENvcHlKb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbEN1c3RvbWl6YXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmQsXG4gIHR5cGUgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kLFxuICB0eXBlIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb21wdFJvdXRlcnNDb21tYW5kLFxuICB0eXBlIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgUHV0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICB0eXBlIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIHR5cGUgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVHdWFyZHJhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2UsXG4gIEJlZHJvY2tDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9CZWRyb2NrQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRCZWRyb2NrQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0QmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBCZWRyb2NrQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL0JlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvcixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IsXG4gIFRocm90dGxpbmdFcnJvcixcbiAgVG9vTWFueVRhZ3NFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgQ3JlYXRlR3VhcmRyYWlsQ29tbWFuZCxcbiAgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmQsXG4gIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBDcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIENyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbiAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kLFxuICBEZWxldGVHdWFyZHJhaWxDb21tYW5kLFxuICBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZCxcbiAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmQsXG4gIERlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kLFxuICBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZCxcbiAgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZCxcbiAgR2V0R3VhcmRyYWlsQ29tbWFuZCxcbiAgR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmQsXG4gIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kLFxuICBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kLFxuICBHZXRNb2RlbENvcHlKb2JDb21tYW5kLFxuICBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kLFxuICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kLFxuICBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZCxcbiAgTGlzdEV2YWx1YXRpb25Kb2JzQ29tbWFuZCxcbiAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kLFxuICBMaXN0R3VhcmRyYWlsc0NvbW1hbmQsXG4gIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmQsXG4gIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmQsXG4gIExpc3RNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRzQ29tbWFuZCxcbiAgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kLFxuICBMaXN0TW9kZWxJbnZvY2F0aW9uSm9ic0NvbW1hbmQsXG4gIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZCxcbiAgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZCxcbiAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kLFxuICBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZCxcbiAgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmQsXG4gIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmQsXG4gIFVwZGF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBCZWRyb2NrU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaERlbGV0ZUV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgYmF0Y2hEZWxldGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEJhdGNoRGVsZXRlRXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXZhbHVhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZUV2YWx1YXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFdmFsdWF0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHdWFyZHJhaWxDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR3VhcmRyYWlsKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUd1YXJkcmFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlR3VhcmRyYWlsVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVHdWFyZHJhaWxWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUd1YXJkcmFpbFZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHdWFyZHJhaWxWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUluZmVyZW5jZVByb2ZpbGUoXG4gICAgYXJnczogQ3JlYXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbENvcHlKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDb3B5Sm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ29weUpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogQ3JlYXRlTW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IENyZWF0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbU1vZGVsKFxuICAgIGFyZ3M6IERlbGV0ZUN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHdWFyZHJhaWwoXG4gICAgYXJnczogRGVsZXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbXBvcnRlZE1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUltcG9ydGVkTW9kZWwoXG4gICAgYXJnczogRGVsZXRlSW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluZmVyZW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5mZXJlbmNlUHJvZmlsZShcbiAgICBhcmdzOiBEZWxldGVJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWNjZXNzRGVuaWVkRXJyb3IgfCBJbnRlcm5hbFNlcnZlckVycm9yIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0KFxuICAgIGFyZ3M6IERlbGV0ZVByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBEZXJlZ2lzdGVyTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEN1c3RvbU1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEN1c3RvbU1vZGVsKFxuICAgIGFyZ3M6IEdldEN1c3RvbU1vZGVsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q3VzdG9tTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEV2YWx1YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0RXZhbHVhdGlvbkpvYihcbiAgICBhcmdzOiBHZXRFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RXZhbHVhdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Rm91bmRhdGlvbk1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEZvdW5kYXRpb25Nb2RlbChcbiAgICBhcmdzOiBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRGb3VuZGF0aW9uTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICBnZXRHdWFyZHJhaWwoXG4gICAgYXJnczogR2V0R3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0R3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRJbXBvcnRlZE1vZGVsQ29tbWFuZH1cbiAgICovXG4gIGdldEltcG9ydGVkTW9kZWwoXG4gICAgYXJnczogR2V0SW1wb3J0ZWRNb2RlbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEltcG9ydGVkTW9kZWxDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEluZmVyZW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgZ2V0SW5mZXJlbmNlUHJvZmlsZShcbiAgICBhcmdzOiBHZXRJbmZlcmVuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0SW5mZXJlbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGdldE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludChcbiAgICBhcmdzOiBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsQ29weUpvYkNvbW1hbmR9XG4gICAqL1xuICBnZXRNb2RlbENvcHlKb2IoXG4gICAgYXJnczogR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxDb3B5Sm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxDdXN0b21pemF0aW9uSm9iKFxuICAgIGFyZ3M6IEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TW9kZWxJbXBvcnRKb2IoXG4gICAgYXJnczogR2V0TW9kZWxJbXBvcnRKb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEltcG9ydEpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkpvYihcbiAgICBhcmdzOiBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TW9kZWxJbnZvY2F0aW9uTG9nZ2luZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQWNjZXNzRGVuaWVkRXJyb3IgfCBJbnRlcm5hbFNlcnZlckVycm9yIHwgVGhyb3R0bGluZ0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFByb21wdFJvdXRlckNvbW1hbmR9XG4gICAqL1xuICBnZXRQcm9tcHRSb3V0ZXIoXG4gICAgYXJnczogR2V0UHJvbXB0Um91dGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UHJvbXB0Um91dGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmR9XG4gICAqL1xuICBnZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dChcbiAgICBhcmdzOiBHZXRQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Q3VzdG9tTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RDdXN0b21Nb2RlbHMoXG4gICAgYXJnczogTGlzdEN1c3RvbU1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RDdXN0b21Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXZhbHVhdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2YWx1YXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFdmFsdWF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGb3VuZGF0aW9uTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RGb3VuZGF0aW9uTW9kZWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEZvdW5kYXRpb25Nb2RlbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3VhcmRyYWlsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0R3VhcmRyYWlscyhcbiAgICBhcmdzOiBMaXN0R3VhcmRyYWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RHdWFyZHJhaWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW1wb3J0ZWRNb2RlbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEltcG9ydGVkTW9kZWxzKFxuICAgIGFyZ3M6IExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbXBvcnRlZE1vZGVsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbmZlcmVuY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5mZXJlbmNlUHJvZmlsZXMoXG4gICAgYXJnczogTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluZmVyZW5jZVByb2ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHMoXG4gICAgYXJnczogTGlzdE1hcmtldHBsYWNlTW9kZWxFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TWFya2V0cGxhY2VNb2RlbEVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ29weUpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ29weUpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDb3B5Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnMoXG4gICAgYXJnczogTGlzdE1vZGVsQ3VzdG9taXphdGlvbkpvYnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0TW9kZWxDdXN0b21pemF0aW9uSm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEltcG9ydEpvYnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdE1vZGVsSW1wb3J0Sm9icyhcbiAgICBhcmdzOiBMaXN0TW9kZWxJbXBvcnRKb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW1wb3J0Sm9ic0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RNb2RlbEludm9jYXRpb25Kb2JzKFxuICAgIGFyZ3M6IExpc3RNb2RlbEludm9jYXRpb25Kb2JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1vZGVsSW52b2NhdGlvbkpvYnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvbXB0Um91dGVycyhcbiAgICBhcmdzOiBMaXN0UHJvbXB0Um91dGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQcm9tcHRSb3V0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFByb3Zpc2lvbmVkTW9kZWxUaHJvdWdocHV0c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzKFxuICAgIGFyZ3M6IExpc3RQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBQdXRNb2RlbEludm9jYXRpb25Mb2dnaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1vZGVsSW52b2NhdGlvbkxvZ2dpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnQoXG4gICAgYXJnczogUmVnaXN0ZXJNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWdpc3Rlck1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFdmFsdWF0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BFdmFsdWF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEV2YWx1YXRpb25Kb2JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BNb2RlbEN1c3RvbWl6YXRpb25Kb2JDb21tYW5kfVxuICAgKi9cbiAgc3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYihcbiAgICBhcmdzOiBTdG9wTW9kZWxDdXN0b21pemF0aW9uSm9iQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcE1vZGVsQ3VzdG9taXphdGlvbkpvYkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcE1vZGVsSW52b2NhdGlvbkpvYkNvbW1hbmR9XG4gICAqL1xuICBzdG9wTW9kZWxJbnZvY2F0aW9uSm9iKFxuICAgIGFyZ3M6IFN0b3BNb2RlbEludm9jYXRpb25Kb2JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wTW9kZWxJbnZvY2F0aW9uSm9iQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnRlcm5hbFNlcnZlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUd1YXJkcmFpbENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVHdWFyZHJhaWwoXG4gICAgYXJnczogVXBkYXRlR3VhcmRyYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlR3VhcmRyYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVNYXJrZXRwbGFjZU1vZGVsRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTWFya2V0cGxhY2VNb2RlbEVuZHBvaW50KFxuICAgIGFyZ3M6IFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcmtldHBsYWNlTW9kZWxFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXQoXG4gICAgYXJnczogVXBkYXRlUHJvdmlzaW9uZWRNb2RlbFRocm91Z2hwdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQcm92aXNpb25lZE1vZGVsVGhyb3VnaHB1dENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludGVybmFsU2VydmVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VCZWRyb2NrU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEJlZHJvY2tDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEJlZHJvY2tTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBCZWRyb2NrU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJlZHJvY2tTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtYmVkcm9jay9CZWRyb2NrU2VydmljZVwiLFxuKTxCZWRyb2NrU2VydmljZSwgQmVkcm9ja1NlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlQmVkcm9ja1NlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0QmVkcm9ja0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogQmVkcm9ja0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUJlZHJvY2tTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShCZWRyb2NrQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0QmVkcm9ja0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBCZWRyb2NrQ2xpZW50Q29uZmlnKSA9PiBCZWRyb2NrQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VCZWRyb2NrU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBCZWRyb2NrQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdEJlZHJvY2tDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIEJlZHJvY2tTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBCZWRyb2NrID0gQmVkcm9ja1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQmVkcm9jay5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUJlZHJvY2tTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEJlZHJvY2tTZXJ2aWNlLFxuICBtYWtlQmVkcm9ja1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIEJlZHJvY2subGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmVkcm9ja1NlcnZpY2VMYXllciA9IEJhc2VCZWRyb2NrU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoQmVkcm9ja0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBCZWRyb2NrLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0QmVkcm9ja1NlcnZpY2VMYXllciA9IEJlZHJvY2tTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
package/lib/Errors.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SdkError = exports.AllServiceErrors = void 0;
4
- const effect_1 = require("effect");
5
- exports.AllServiceErrors = [
6
- "AccessDeniedException",
7
- "ConflictException",
8
- "InternalServerException",
9
- "ResourceNotFoundException",
10
- "ServiceQuotaExceededException",
11
- "ServiceUnavailableException",
12
- "ThrottlingException",
13
- "TooManyTagsException",
14
- "ValidationException",
15
- ];
16
- exports.SdkError = effect_1.Data.tagged("SdkError");
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSxtQ0FBOEI7QUFFakIsUUFBQSxnQkFBZ0IsR0FBRztJQUM5Qix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsK0JBQStCO0lBQy9CLDZCQUE2QjtJQUM3QixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtDQUN0QixDQUFDO0FBbUJXLFFBQUEsUUFBUSxHQUFHLGFBQUksQ0FBQyxNQUFNLENBQVcsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbixcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEludGVybmFsU2VydmVyRXhjZXB0aW9uLFxuICBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvbixcbiAgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uLFxuICBUaHJvdHRsaW5nRXhjZXB0aW9uLFxuICBUb29NYW55VGFnc0V4Y2VwdGlvbixcbiAgVmFsaWRhdGlvbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1iZWRyb2NrXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgXCJDb25mbGljdEV4Y2VwdGlvblwiLFxuICBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCIsXG4gIFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICBcIlNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlUYWdzRXhjZXB0aW9uXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzRGVuaWVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWNjZXNzRGVuaWVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIENvbmZsaWN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248Q29uZmxpY3RFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VVbmF2YWlsYWJsZUV4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUaHJvdHRsaW5nRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGhyb3R0bGluZ0V4Y2VwdGlvbj47XG5leHBvcnQgdHlwZSBUb29NYW55VGFnc0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRvb01hbnlUYWdzRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19