@effect-aws/client-lambda 0.4.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.
@@ -1,22 +0,0 @@
1
- import { LambdaClient } from "@aws-sdk/client-lambda";
2
- import * as Context from "effect/Context";
3
- import * as Data from "effect/Data";
4
- import * as Effect from "effect/Effect";
5
- import * as Layer from "effect/Layer";
6
- import * as Runtime from "effect/Runtime";
7
- export class LambdaClientOptions extends Data.TaggedClass("LambdaClientOptions") {
8
- }
9
- export const LambdaClientConfigTag = Context.Tag("@effect-aws/LambdaClient/Config");
10
- export const DefaultLambdaClientConfigLayer = Layer.effect(LambdaClientConfigTag, Effect.runtime().pipe(Effect.map((runtime) => new LambdaClientOptions({
11
- logger: {
12
- info: (m) => Effect.logInfo(m).pipe(Runtime.runSync(runtime)),
13
- warn: (m) => Effect.logWarning(m).pipe(Runtime.runSync(runtime)),
14
- error: (m) => Effect.logError(m).pipe(Runtime.runSync(runtime)),
15
- debug: (m) => Effect.logDebug(m).pipe(Runtime.runSync(runtime)),
16
- trace: (m) => Effect.logTrace(m).pipe(Runtime.runSync(runtime)),
17
- },
18
- }))));
19
- export const LambdaClientInstanceTag = Context.Tag("@effect-aws/LambdaClient/Instance");
20
- export const LambdaClientInstanceLayer = Layer.effect(LambdaClientInstanceTag, LambdaClientConfigTag.pipe(Effect.map((config) => new LambdaClient(config))));
21
- export const DefaultLambdaClientInstanceLayer = LambdaClientInstanceLayer.pipe(Layer.provide(DefaultLambdaClientConfigLayer));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUN2RCxxQkFBcUIsQ0FDRjtDQUFHO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQzlDLGlDQUFpQyxDQUNsQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDeEQscUJBQXFCLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxJQUFJLENBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQ1IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLElBQUksbUJBQW1CLENBQUM7SUFDdEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNoRTtDQUNGLENBQUMsQ0FDTCxDQUNGLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ2hELG1DQUFtQyxDQUNwQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbkQsdUJBQXVCLEVBQ3ZCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQzdFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbWJkYUNsaWVudCwgTGFtYmRhQ2xpZW50Q29uZmlnIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBEYXRhIGZyb20gXCJlZmZlY3QvRGF0YVwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG5leHBvcnQgY2xhc3MgTGFtYmRhQ2xpZW50T3B0aW9ucyBleHRlbmRzIERhdGEuVGFnZ2VkQ2xhc3MoXG4gIFwiTGFtYmRhQ2xpZW50T3B0aW9uc1wiLFxuKTxMYW1iZGFDbGllbnRDb25maWc+IHt9XG5cbmV4cG9ydCBjb25zdCBMYW1iZGFDbGllbnRDb25maWdUYWcgPSBDb250ZXh0LlRhZzxMYW1iZGFDbGllbnRPcHRpb25zPihcbiAgXCJAZWZmZWN0LWF3cy9MYW1iZGFDbGllbnQvQ29uZmlnXCIsXG4pO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdExhbWJkYUNsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBMYW1iZGFDbGllbnRDb25maWdUYWcsXG4gIEVmZmVjdC5ydW50aW1lPG5ldmVyPigpLnBpcGUoXG4gICAgRWZmZWN0Lm1hcChcbiAgICAgIChydW50aW1lKSA9PlxuICAgICAgICBuZXcgTGFtYmRhQ2xpZW50T3B0aW9ucyh7XG4gICAgICAgICAgbG9nZ2VyOiB7XG4gICAgICAgICAgICBpbmZvOiAobSkgPT4gRWZmZWN0LmxvZ0luZm8obSkucGlwZShSdW50aW1lLnJ1blN5bmMocnVudGltZSkpLFxuICAgICAgICAgICAgd2FybjogKG0pID0+IEVmZmVjdC5sb2dXYXJuaW5nKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIGVycm9yOiAobSkgPT4gRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIGRlYnVnOiAobSkgPT4gRWZmZWN0LmxvZ0RlYnVnKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIHRyYWNlOiAobSkgPT4gRWZmZWN0LmxvZ1RyYWNlKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICApLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IExhbWJkYUNsaWVudEluc3RhbmNlVGFnID0gQ29udGV4dC5UYWc8TGFtYmRhQ2xpZW50PihcbiAgXCJAZWZmZWN0LWF3cy9MYW1iZGFDbGllbnQvSW5zdGFuY2VcIixcbik7XG5cbmV4cG9ydCBjb25zdCBMYW1iZGFDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBMYW1iZGFDbGllbnRJbnN0YW5jZVRhZyxcbiAgTGFtYmRhQ2xpZW50Q29uZmlnVGFnLnBpcGUoRWZmZWN0Lm1hcCgoY29uZmlnKSA9PiBuZXcgTGFtYmRhQ2xpZW50KGNvbmZpZykpKSxcbik7XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllciA9IExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0TGFtYmRhQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
package/lib/esm/Lambda.js DELETED
@@ -1,84 +0,0 @@
1
- import { AddLayerVersionPermissionCommand, AddPermissionCommand, CreateAliasCommand, CreateCodeSigningConfigCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteAliasCommand, DeleteCodeSigningConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCodeSigningConfigCommand, DeleteFunctionCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, DeleteProvisionedConcurrencyConfigCommand, GetAccountSettingsCommand, GetAliasCommand, GetCodeSigningConfigCommand, GetEventSourceMappingCommand, GetFunctionCodeSigningConfigCommand, GetFunctionCommand, GetFunctionConcurrencyCommand, GetFunctionConfigurationCommand, GetFunctionEventInvokeConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionByArnCommand, GetLayerVersionCommand, GetLayerVersionPolicyCommand, GetPolicyCommand, GetProvisionedConcurrencyConfigCommand, GetRuntimeManagementConfigCommand, InvokeAsyncCommand, InvokeCommand, InvokeWithResponseStreamCommand, ListAliasesCommand, ListCodeSigningConfigsCommand, ListEventSourceMappingsCommand, ListFunctionEventInvokeConfigsCommand, ListFunctionUrlConfigsCommand, ListFunctionsByCodeSigningConfigCommand, ListFunctionsCommand, ListLayerVersionsCommand, ListLayersCommand, ListProvisionedConcurrencyConfigsCommand, ListTagsCommand, ListVersionsByFunctionCommand, PublishLayerVersionCommand, PublishVersionCommand, PutFunctionCodeSigningConfigCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutProvisionedConcurrencyConfigCommand, PutRuntimeManagementConfigCommand, RemoveLayerVersionPermissionCommand, RemovePermissionCommand, TagResourceCommand, UntagResourceCommand, UpdateAliasCommand, UpdateCodeSigningConfigCommand, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionEventInvokeConfigCommand, UpdateFunctionUrlConfigCommand, } from "@aws-sdk/client-lambda";
2
- import * as Effect from "effect/Effect";
3
- import * as RR from "effect/ReadonlyRecord";
4
- import { DefaultLambdaClientInstanceLayer, LambdaClientInstanceLayer, LambdaClientInstanceTag, } from "./Context";
5
- const commands = {
6
- AddLayerVersionPermissionCommand,
7
- AddPermissionCommand,
8
- CreateAliasCommand,
9
- CreateCodeSigningConfigCommand,
10
- CreateEventSourceMappingCommand,
11
- CreateFunctionCommand,
12
- CreateFunctionUrlConfigCommand,
13
- DeleteAliasCommand,
14
- DeleteCodeSigningConfigCommand,
15
- DeleteEventSourceMappingCommand,
16
- DeleteFunctionCommand,
17
- DeleteFunctionCodeSigningConfigCommand,
18
- DeleteFunctionConcurrencyCommand,
19
- DeleteFunctionEventInvokeConfigCommand,
20
- DeleteFunctionUrlConfigCommand,
21
- DeleteLayerVersionCommand,
22
- DeleteProvisionedConcurrencyConfigCommand,
23
- GetAccountSettingsCommand,
24
- GetAliasCommand,
25
- GetCodeSigningConfigCommand,
26
- GetEventSourceMappingCommand,
27
- GetFunctionCommand,
28
- GetFunctionCodeSigningConfigCommand,
29
- GetFunctionConcurrencyCommand,
30
- GetFunctionConfigurationCommand,
31
- GetFunctionEventInvokeConfigCommand,
32
- GetFunctionUrlConfigCommand,
33
- GetLayerVersionCommand,
34
- GetLayerVersionByArnCommand,
35
- GetLayerVersionPolicyCommand,
36
- GetPolicyCommand,
37
- GetProvisionedConcurrencyConfigCommand,
38
- GetRuntimeManagementConfigCommand,
39
- InvokeCommand,
40
- InvokeAsyncCommand,
41
- InvokeWithResponseStreamCommand,
42
- ListAliasesCommand,
43
- ListCodeSigningConfigsCommand,
44
- ListEventSourceMappingsCommand,
45
- ListFunctionEventInvokeConfigsCommand,
46
- ListFunctionsCommand,
47
- ListFunctionsByCodeSigningConfigCommand,
48
- ListFunctionUrlConfigsCommand,
49
- ListLayersCommand,
50
- ListLayerVersionsCommand,
51
- ListProvisionedConcurrencyConfigsCommand,
52
- ListTagsCommand,
53
- ListVersionsByFunctionCommand,
54
- PublishLayerVersionCommand,
55
- PublishVersionCommand,
56
- PutFunctionCodeSigningConfigCommand,
57
- PutFunctionConcurrencyCommand,
58
- PutFunctionEventInvokeConfigCommand,
59
- PutProvisionedConcurrencyConfigCommand,
60
- PutRuntimeManagementConfigCommand,
61
- RemoveLayerVersionPermissionCommand,
62
- RemovePermissionCommand,
63
- TagResourceCommand,
64
- UntagResourceCommand,
65
- UpdateAliasCommand,
66
- UpdateCodeSigningConfigCommand,
67
- UpdateEventSourceMappingCommand,
68
- UpdateFunctionCodeCommand,
69
- UpdateFunctionConfigurationCommand,
70
- UpdateFunctionEventInvokeConfigCommand,
71
- UpdateFunctionUrlConfigCommand,
72
- };
73
- export const BaseLambdaServiceEffect = Effect.gen(function* (_) {
74
- const client = yield* _(LambdaClientInstanceTag);
75
- return RR.toEntries(commands).reduce((acc, [command]) => {
76
- const CommandCtor = commands[command];
77
- const methodImpl = (args, options) => Effect.tryPromise(() => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}));
78
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
79
- return { ...acc, [methodName]: methodImpl };
80
- }, {});
81
- });
82
- export const LambdaServiceEffect = BaseLambdaServiceEffect.pipe(Effect.provide(LambdaClientInstanceLayer));
83
- export const DefaultLambdaServiceEffect = BaseLambdaServiceEffect.pipe(Effect.provide(DefaultLambdaClientInstanceLayer));
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0NBQWdDLEVBR2hDLG9CQUFvQixFQUdwQixrQkFBa0IsRUFHbEIsOEJBQThCLEVBRzlCLCtCQUErQixFQUcvQixxQkFBcUIsRUFHckIsOEJBQThCLEVBRzlCLGtCQUFrQixFQUdsQiw4QkFBOEIsRUFHOUIsK0JBQStCLEVBRy9CLHNDQUFzQyxFQUd0QyxxQkFBcUIsRUFHckIsZ0NBQWdDLEVBR2hDLHNDQUFzQyxFQUd0Qyw4QkFBOEIsRUFHOUIseUJBQXlCLEVBR3pCLHlDQUF5QyxFQUd6Qyx5QkFBeUIsRUFHekIsZUFBZSxFQUdmLDJCQUEyQixFQUczQiw0QkFBNEIsRUFHNUIsbUNBQW1DLEVBR25DLGtCQUFrQixFQUdsQiw2QkFBNkIsRUFHN0IsK0JBQStCLEVBRy9CLG1DQUFtQyxFQUduQywyQkFBMkIsRUFHM0IsMkJBQTJCLEVBRzNCLHNCQUFzQixFQUd0Qiw0QkFBNEIsRUFHNUIsZ0JBQWdCLEVBR2hCLHNDQUFzQyxFQUd0QyxpQ0FBaUMsRUFHakMsa0JBQWtCLEVBR2xCLGFBQWEsRUFHYiwrQkFBK0IsRUFHL0Isa0JBQWtCLEVBR2xCLDZCQUE2QixFQUc3Qiw4QkFBOEIsRUFHOUIscUNBQXFDLEVBR3JDLDZCQUE2QixFQUc3Qix1Q0FBdUMsRUFHdkMsb0JBQW9CLEVBR3BCLHdCQUF3QixFQUd4QixpQkFBaUIsRUFHakIsd0NBQXdDLEVBR3hDLGVBQWUsRUFHZiw2QkFBNkIsRUFHN0IsMEJBQTBCLEVBRzFCLHFCQUFxQixFQUdyQixtQ0FBbUMsRUFHbkMsNkJBQTZCLEVBRzdCLG1DQUFtQyxFQUduQyxzQ0FBc0MsRUFHdEMsaUNBQWlDLEVBR2pDLG1DQUFtQyxFQUduQyx1QkFBdUIsRUFHdkIsa0JBQWtCLEVBR2xCLG9CQUFvQixFQUdwQixrQkFBa0IsRUFHbEIsOEJBQThCLEVB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RUFBRSxFQUFFLENBQWtCLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQzdELE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FDMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FDcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmQsXG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kT3V0cHV0LFxuICBBZGRQZXJtaXNzaW9uQ29tbWFuZCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIENyZWF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBDcmVhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICBEZWxldGVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICBEZWxldGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0LFxuICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZElucHV0LFxuICBEZWxldGVMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmQsXG4gIEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRJbnB1dCxcbiAgR2V0QWNjb3VudFNldHRpbmdzQ29tbWFuZE91dHB1dCxcbiAgR2V0QWxpYXNDb21tYW5kLFxuICBHZXRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgR2V0QWxpYXNDb21tYW5kT3V0cHV0LFxuICBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICBHZXRDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIEdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBHZXRGdW5jdGlvbkNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kLFxuICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgR2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kLFxuICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRJbnB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uQnlBcm5Db21tYW5kT3V0cHV0LFxuICBHZXRMYXllclZlcnNpb25Db21tYW5kLFxuICBHZXRMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICBHZXRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgR2V0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kSW5wdXQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICBJbnZva2VBc3luY0NvbW1hbmRJbnB1dCxcbiAgSW52b2tlQXN5bmNDb21tYW5kT3V0cHV0LFxuICBJbnZva2VDb21tYW5kLFxuICBJbnZva2VDb21tYW5kSW5wdXQsXG4gIEludm9rZUNvbW1hbmRPdXRwdXQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmQsXG4gIEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFsaWFzZXNDb21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0Q29kZVNpZ25pbmdDb25maWdzQ29tbWFuZCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZCxcbiAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kSW5wdXQsXG4gIExpc3RFdmVudFNvdXJjZU1hcHBpbmdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZElucHV0LFxuICBMaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgTGlzdEZ1bmN0aW9uc0J5Q29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgTGlzdEZ1bmN0aW9uc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kSW5wdXQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RMYXllclZlcnNpb25zQ29tbWFuZElucHV0LFxuICBMaXN0TGF5ZXJWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMYXllcnNDb21tYW5kLFxuICBMaXN0TGF5ZXJzQ29tbWFuZElucHV0LFxuICBMaXN0TGF5ZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZCxcbiAgTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RUYWdzQ29tbWFuZElucHV0LFxuICBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gIFB1Ymxpc2hMYXllclZlcnNpb25Db21tYW5kT3V0cHV0LFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmQsXG4gIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZElucHV0LFxuICBQdWJsaXNoVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kSW5wdXQsXG4gIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0LFxuICBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgUHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBQdXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgVXBkYXRlQWxpYXNDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBVcGRhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQsXG4gIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZUZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7IEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0ICogYXMgQ2F1c2UgZnJvbSBcImVmZmVjdC9DYXVzZVwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBSUiBmcm9tIFwiZWZmZWN0L1JlYWRvbmx5UmVjb3JkXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0TGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllcixcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VMYXllcixcbiAgTGFtYmRhQ2xpZW50SW5zdGFuY2VUYWcsXG59IGZyb20gXCIuL0NvbnRleHRcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kLFxuICBBZGRQZXJtaXNzaW9uQ29tbWFuZCxcbiAgQ3JlYXRlQWxpYXNDb21tYW5kLFxuICBDcmVhdGVDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmQsXG4gIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxuICBEZWxldGVBbGlhc0NvbW1hbmQsXG4gIERlbGV0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db21tYW5kLFxuICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIERlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIERlbGV0ZUxheWVyVmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kLFxuICBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kLFxuICBHZXRBbGlhc0NvbW1hbmQsXG4gIEdldENvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db21tYW5kLFxuICBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBHZXRGdW5jdGlvblVybENvbmZpZ0NvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkNvbW1hbmQsXG4gIEdldExheWVyVmVyc2lvbkJ5QXJuQ29tbWFuZCxcbiAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmQsXG4gIEdldFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZCxcbiAgSW52b2tlQ29tbWFuZCxcbiAgSW52b2tlQXN5bmNDb21tYW5kLFxuICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kLFxuICBMaXN0QWxpYXNlc0NvbW1hbmQsXG4gIExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kLFxuICBMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvbnNDb21tYW5kLFxuICBMaXN0RnVuY3Rpb25zQnlDb2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmQsXG4gIExpc3RGdW5jdGlvblVybENvbmZpZ3NDb21tYW5kLFxuICBMaXN0TGF5ZXJzQ29tbWFuZCxcbiAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kLFxuICBMaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3NDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0J5RnVuY3Rpb25Db21tYW5kLFxuICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaFZlcnNpb25Db21tYW5kLFxuICBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZCxcbiAgUHV0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmQsXG4gIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kLFxuICBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZCxcbiAgUHV0UnVudGltZU1hbmFnZW1lbnRDb25maWdDb21tYW5kLFxuICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZCxcbiAgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUFsaWFzQ29tbWFuZCxcbiAgVXBkYXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kLFxuICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgYWRkTGF5ZXJWZXJzaW9uUGVybWlzc2lvbihcbiAgICBhcmdzOiBBZGRMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEFkZExheWVyVmVyc2lvblBlcm1pc3Npb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFBlcm1pc3Npb25Db21tYW5kfVxuICAgKi9cbiAgYWRkUGVybWlzc2lvbihcbiAgICBhcmdzOiBBZGRQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBbGlhcyhcbiAgICBhcmdzOiBDcmVhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIENyZWF0ZUFsaWFzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIENyZWF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IENyZWF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUZ1bmN0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUZ1bmN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgQ3JlYXRlRnVuY3Rpb25Db21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb25VcmxDb25maWcoXG4gICAgYXJnczogQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgQ3JlYXRlRnVuY3Rpb25VcmxDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgRGVsZXRlQWxpYXNDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIERlbGV0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRnVuY3Rpb24oXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBEZWxldGVGdW5jdGlvbkNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogRGVsZXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUxheWVyVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVMYXllclZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgRGVsZXRlTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogRGVsZXRlUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBEZWxldGVQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWNjb3VudFNldHRpbmdzKFxuICAgIGFyZ3M6IEdldEFjY291bnRTZXR0aW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRBY2NvdW50U2V0dGluZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGdldEFsaWFzKFxuICAgIGFyZ3M6IEdldEFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgR2V0QWxpYXNDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0Q29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgYXJnczogR2V0RXZlbnRTb3VyY2VNYXBwaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEdldEV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RnVuY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb24oXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBHZXRGdW5jdGlvbkNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWcoXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uQ29uY3VycmVuY3koXG4gICAgYXJnczogR2V0RnVuY3Rpb25Db25jdXJyZW5jeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25Db25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgZ2V0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBHZXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEdldEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldEZ1bmN0aW9uVXJsQ29uZmlnKFxuICAgIGFyZ3M6IEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIEdldEZ1bmN0aW9uVXJsQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0TGF5ZXJWZXJzaW9uKFxuICAgIGFyZ3M6IEdldExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIEdldExheWVyVmVyc2lvbkNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmR9XG4gICAqL1xuICBnZXRMYXllclZlcnNpb25CeUFybihcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRMYXllclZlcnNpb25CeUFybkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldExheWVyVmVyc2lvblBvbGljeShcbiAgICBhcmdzOiBHZXRMYXllclZlcnNpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgR2V0TGF5ZXJWZXJzaW9uUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0UG9saWN5KFxuICAgIGFyZ3M6IEdldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIEdldFBvbGljeUNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGdldFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWcoXG4gICAgYXJnczogR2V0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBnZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZyhcbiAgICBhcmdzOiBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBHZXRSdW50aW1lTWFuYWdlbWVudENvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQ29tbWFuZH1cbiAgICovXG4gIGludm9rZShcbiAgICBhcmdzOiBJbnZva2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBJbnZva2VDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW52b2tlQXN5bmNDb21tYW5kfVxuICAgKi9cbiAgaW52b2tlQXN5bmMoXG4gICAgYXJnczogSW52b2tlQXN5bmNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBJbnZva2VBc3luY0NvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgaW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtKFxuICAgIGFyZ3M6IEludm9rZVdpdGhSZXNwb25zZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW1Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbGlhc2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbGlhc2VzKFxuICAgIGFyZ3M6IExpc3RBbGlhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgTGlzdEFsaWFzZXNDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0Q29kZVNpZ25pbmdDb25maWdzKFxuICAgIGFyZ3M6IExpc3RDb2RlU2lnbmluZ0NvbmZpZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgTGlzdENvZGVTaWduaW5nQ29uZmlnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdEV2ZW50U291cmNlTWFwcGluZ3MoXG4gICAgYXJnczogTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgTGlzdEV2ZW50U291cmNlTWFwcGluZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ3MoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEZ1bmN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RnVuY3Rpb25zKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBMaXN0RnVuY3Rpb25zQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RGdW5jdGlvbnNCeUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RGdW5jdGlvblVybENvbmZpZ3MoXG4gICAgYXJnczogTGlzdEZ1bmN0aW9uVXJsQ29uZmlnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBMaXN0RnVuY3Rpb25VcmxDb25maWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TGF5ZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMYXllcnMoXG4gICAgYXJnczogTGlzdExheWVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIExpc3RMYXllcnNDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdExheWVyVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdExheWVyVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgTGlzdExheWVyVmVyc2lvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZ3MoXG4gICAgYXJnczogTGlzdFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIExpc3RQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3MoXG4gICAgYXJnczogTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLCBMaXN0VGFnc0NvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWZXJzaW9uc0J5RnVuY3Rpb24oXG4gICAgYXJnczogTGlzdFZlcnNpb25zQnlGdW5jdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2hMYXllclZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaExheWVyVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBQdWJsaXNoTGF5ZXJWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoVmVyc2lvbihcbiAgICBhcmdzOiBQdWJsaXNoVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIFB1Ymxpc2hWZXJzaW9uQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25Db2RlU2lnbmluZ0NvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFB1dEZ1bmN0aW9uQ29kZVNpZ25pbmdDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25Db25jdXJyZW5jeShcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkNvbmN1cnJlbmN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFB1dEZ1bmN0aW9uQ29uY3VycmVuY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0RnVuY3Rpb25FdmVudEludm9rZUNvbmZpZyhcbiAgICBhcmdzOiBQdXRGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFB1dEZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kfVxuICAgKi9cbiAgcHV0UHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZyhcbiAgICBhcmdzOiBQdXRQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFB1dFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnKFxuICAgIGFyZ3M6IFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFB1dFJ1bnRpbWVNYW5hZ2VtZW50Q29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUxheWVyVmVyc2lvblBlcm1pc3Npb24oXG4gICAgYXJnczogUmVtb3ZlTGF5ZXJWZXJzaW9uUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBSZW1vdmVMYXllclZlcnNpb25QZXJtaXNzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVBlcm1pc3Npb24oXG4gICAgYXJnczogUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbiwgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbGlhcyhcbiAgICBhcmdzOiBVcGRhdGVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIENhdXNlLlVua25vd25FeGNlcHRpb24sIFVwZGF0ZUFsaWFzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFVwZGF0ZUNvZGVTaWduaW5nQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGFyZ3M6IFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBVcGRhdGVFdmVudFNvdXJjZU1hcHBpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvbkNvZGUoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBDYXVzZS5Vbmtub3duRXhjZXB0aW9uLFxuICAgIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIENhdXNlLlVua25vd25FeGNlcHRpb24sXG4gICAgVXBkYXRlRnVuY3Rpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgYXJnczogVXBkYXRlRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBVcGRhdGVGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVGdW5jdGlvblVybENvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgQ2F1c2UuVW5rbm93bkV4Y2VwdGlvbixcbiAgICBVcGRhdGVGdW5jdGlvblVybENvbmZpZ0NvbW1hbmRPdXRwdXRcbiAgPjtcbn1cblxuZXhwb3J0IGNvbnN0IEJhc2VMYW1iZGFTZXJ2aWNlRWZmZWN0ID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oTGFtYmRhQ2xpZW50SW5zdGFuY2VUYWcpO1xuXG4gIHJldHVybiBSUi50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9uczogYW55KSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2UoKCkgPT5cbiAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgTGFtYmRhU2VydmljZTtcbn0pO1xuXG5leHBvcnQgY29uc3QgTGFtYmRhU2VydmljZUVmZmVjdCA9IEJhc2VMYW1iZGFTZXJ2aWNlRWZmZWN0LnBpcGUoXG4gIEVmZmVjdC5wcm92aWRlKExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRMYW1iZGFTZXJ2aWNlRWZmZWN0ID0gQmFzZUxhbWJkYVNlcnZpY2VFZmZlY3QucGlwZShcbiAgRWZmZWN0LnByb3ZpZGUoRGVmYXVsdExhbWJkYUNsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcbiJdfQ==