@sidekick-coder/zenith-kit 0.0.17 → 0.1.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.
- package/dist/client/index.d.mts +4 -2
- package/dist/client/index.mjs +2 -2
- package/dist/components/index.es.js +34529 -34373
- package/dist/server/index.d.mts +157 -110
- package/dist/server/index.mjs +4 -5
- package/dist/shared/index.d.mts +26 -3
- package/dist/shared/index.mjs +2 -2
- package/package.json +3 -1
- package/vite.config.ts +1 -3
package/dist/server/index.d.mts
CHANGED
|
@@ -5,6 +5,7 @@ import * as v from "valibot";
|
|
|
5
5
|
import { InferOutput } from "valibot";
|
|
6
6
|
import * as _$_casl_ability0 from "@casl/ability";
|
|
7
7
|
import { defineAbility } from "@casl/ability";
|
|
8
|
+
import * as inquirer from "@inquirer/prompts";
|
|
8
9
|
import cp from "child_process";
|
|
9
10
|
import ms from "ms";
|
|
10
11
|
import { S3Client } from "@aws-sdk/client-s3";
|
|
@@ -12,11 +13,11 @@ import * as _$undici from "undici";
|
|
|
12
13
|
import { RequestInit } from "undici";
|
|
13
14
|
import dotenv from "dotenv";
|
|
14
15
|
import { Job } from "node-schedule";
|
|
15
|
-
import { ChildProcess } from "node:child_process";
|
|
16
16
|
import * as _$kysely from "kysely";
|
|
17
17
|
import { ColumnType, CreateTableBuilder as CreateTableBuilder$1, ExpressionBuilder as ExpressionBuilder$1, ExpressionWrapper, Generated, Insertable, Kysely, SelectQueryBuilder, Selectable, Updateable } from "kysely";
|
|
18
18
|
import { CookieOptions, Request as Request$1, Response as Response$1 } from "express";
|
|
19
19
|
import { ResolvableHead } from "@unhead/vue";
|
|
20
|
+
import { ChildProcess } from "node:child_process";
|
|
20
21
|
import { Token, UserEntity } from "@sidekick-coder/zenith-kit/shared";
|
|
21
22
|
|
|
22
23
|
//#region src/server/utils/printTable.d.ts
|
|
@@ -79,7 +80,7 @@ declare class LoggerService {
|
|
|
79
80
|
info(message: string, meta?: any): void;
|
|
80
81
|
debug(message: string, meta?: any): void;
|
|
81
82
|
warn(message: string, meta?: any): void;
|
|
82
|
-
error(message: string, meta?: any): void;
|
|
83
|
+
error(message: string | Error, meta?: any): void;
|
|
83
84
|
child(options: any): LoggerService;
|
|
84
85
|
}
|
|
85
86
|
//#endregion
|
|
@@ -412,6 +413,27 @@ declare class FileMeta$1 extends FileMeta_base$1 {
|
|
|
412
413
|
value: string | null;
|
|
413
414
|
}
|
|
414
415
|
//#endregion
|
|
416
|
+
//#region src/shared/entities/GitBranchEntity.d.ts
|
|
417
|
+
declare class GitBranchEntity {
|
|
418
|
+
name: string;
|
|
419
|
+
remote: string | null;
|
|
420
|
+
is_current: boolean;
|
|
421
|
+
is_remote: boolean;
|
|
422
|
+
constructor(data: GitBranchEntity);
|
|
423
|
+
}
|
|
424
|
+
//#endregion
|
|
425
|
+
//#region src/shared/entities/GitCommitEntity.d.ts
|
|
426
|
+
declare class GitCommitEntity {
|
|
427
|
+
hash: string;
|
|
428
|
+
short_hash: string;
|
|
429
|
+
message: string;
|
|
430
|
+
body: string;
|
|
431
|
+
author_name: string;
|
|
432
|
+
author_email: string;
|
|
433
|
+
date: string;
|
|
434
|
+
constructor(data: GitCommitEntity);
|
|
435
|
+
}
|
|
436
|
+
//#endregion
|
|
415
437
|
//#region src/shared/entities/ModuleManifestEntity.d.ts
|
|
416
438
|
interface ModuleManifestBuildImport {
|
|
417
439
|
from: string;
|
|
@@ -485,6 +507,8 @@ declare class PluginEntity$1 extends PluginEntity_base {
|
|
|
485
507
|
version: string;
|
|
486
508
|
enabled: boolean;
|
|
487
509
|
aliases: string[];
|
|
510
|
+
version_channel: string;
|
|
511
|
+
version_available_channels: string[];
|
|
488
512
|
}
|
|
489
513
|
//#endregion
|
|
490
514
|
//#region src/shared/entities/RoleEntity.d.ts
|
|
@@ -558,6 +582,7 @@ declare class CliCommand extends Command {
|
|
|
558
582
|
supportsColor: chalk.ColorSupport | false;
|
|
559
583
|
};
|
|
560
584
|
};
|
|
585
|
+
inquirer: typeof inquirer;
|
|
561
586
|
needs: Set<string>;
|
|
562
587
|
need(...args: string[]): this;
|
|
563
588
|
createCommand(name?: string): CliCommand;
|
|
@@ -657,7 +682,7 @@ declare const envSchema: v.LooseObjectSchema<{
|
|
|
657
682
|
readonly ZENITH_CONFIG_S3_SESSION_TOKEN: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
658
683
|
readonly ZENITH_CONFIG_S3_ENDPOINT: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
659
684
|
readonly ZENITH_CONFIG_S3_PREFIX: v.OptionalSchema<v.StringSchema<undefined>, "">;
|
|
660
|
-
readonly ZENITH_PLUGINS_DIRS: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TransformAction<string, string[]>]>,
|
|
685
|
+
readonly ZENITH_PLUGINS_DIRS: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TransformAction<string, string[]>]>, "">;
|
|
661
686
|
}, undefined>;
|
|
662
687
|
//#endregion
|
|
663
688
|
//#region src/server/services/EnvService.d.ts
|
|
@@ -978,7 +1003,7 @@ interface Middleware {
|
|
|
978
1003
|
type ExtractMiddlewareContext<M extends Middleware> = Awaited<ReturnType<M['handle']>> extends Record<string, any> ? Awaited<ReturnType<M['handle']>> : {};
|
|
979
1004
|
type ProcessMiddlewareArray<T extends readonly Middleware[]> = T extends readonly [infer First extends Middleware, ...infer Rest extends readonly Middleware[]] ? ExtractMiddlewareContext<First> & ProcessMiddlewareArray<Rest> : {};
|
|
980
1005
|
type MiddlewareHandleResult<T extends readonly Middleware[] = readonly Middleware[]> = ProcessMiddlewareArray<T>;
|
|
981
|
-
interface Handler<T = Record<string, any>> {
|
|
1006
|
+
interface Handler$1<T = Record<string, any>> {
|
|
982
1007
|
(ctx: HttpContext & T): Promise<any> | any;
|
|
983
1008
|
}
|
|
984
1009
|
//#endregion
|
|
@@ -987,7 +1012,7 @@ type RouteMethod = 'get' | 'GET' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | '
|
|
|
987
1012
|
declare class Route {
|
|
988
1013
|
path: string;
|
|
989
1014
|
method: RouteMethod;
|
|
990
|
-
handler: Handler<any> | null;
|
|
1015
|
+
handler: Handler$1<any> | null;
|
|
991
1016
|
middlewares: Middleware[];
|
|
992
1017
|
metadata: Record<string, any> | null;
|
|
993
1018
|
constructor(data?: Partial<Route>);
|
|
@@ -1042,12 +1067,12 @@ declare class RouterService<C = {}> extends RouterService_base {
|
|
|
1042
1067
|
prefix(prefix: string): this;
|
|
1043
1068
|
makePath(args: string): string;
|
|
1044
1069
|
add(payload: Pick<Route, 'path' | 'method' | 'handler'>): void;
|
|
1045
|
-
get(path: string, handler: Handler<C>): void;
|
|
1046
|
-
post(path: string, handler: Handler<C>): void;
|
|
1047
|
-
put(path: string, handler: Handler<C>): void;
|
|
1048
|
-
patch(path: string, handler: Handler<C>): void;
|
|
1049
|
-
many(methods: Route['method'][], path: string, handler: Handler<C>): void;
|
|
1050
|
-
delete(path: string, handler: Handler<C>): void;
|
|
1070
|
+
get(path: string, handler: Handler$1<C>): void;
|
|
1071
|
+
post(path: string, handler: Handler$1<C>): void;
|
|
1072
|
+
put(path: string, handler: Handler$1<C>): void;
|
|
1073
|
+
patch(path: string, handler: Handler$1<C>): void;
|
|
1074
|
+
many(methods: Route['method'][], path: string, handler: Handler$1<C>): void;
|
|
1075
|
+
delete(path: string, handler: Handler$1<C>): void;
|
|
1051
1076
|
group(): RouterService<C>;
|
|
1052
1077
|
resolve(method: string, path: string): Route | null;
|
|
1053
1078
|
execute(route: Route, initialCtx: any): Promise<any>;
|
|
@@ -1062,12 +1087,20 @@ declare class RouterService<C = {}> extends RouterService_base {
|
|
|
1062
1087
|
interface RoutineHandler {
|
|
1063
1088
|
(): void | Promise<void>;
|
|
1064
1089
|
}
|
|
1090
|
+
interface RoutineEntityOptions {
|
|
1091
|
+
id: string;
|
|
1092
|
+
cron: string;
|
|
1093
|
+
handler?: RoutineHandler;
|
|
1094
|
+
}
|
|
1065
1095
|
declare class RoutineEntity {
|
|
1066
1096
|
id: string;
|
|
1067
1097
|
cron: string;
|
|
1068
1098
|
job?: Job;
|
|
1069
|
-
|
|
1070
|
-
handle
|
|
1099
|
+
static create(): RoutineEntity;
|
|
1100
|
+
handle: RoutineHandler;
|
|
1101
|
+
setId(id: string): this;
|
|
1102
|
+
setCron(cron: string): this;
|
|
1103
|
+
setHandler(handler: RoutineHandler): this;
|
|
1071
1104
|
}
|
|
1072
1105
|
//#endregion
|
|
1073
1106
|
//#region src/server/services/SchedulerService.d.ts
|
|
@@ -1109,8 +1142,10 @@ declare class SchedulerService {
|
|
|
1109
1142
|
loadDirectory(directory: string): Promise<void>;
|
|
1110
1143
|
load(): Promise<void>;
|
|
1111
1144
|
has(id: RoutineEntity['id']): boolean;
|
|
1112
|
-
startRoutine(id: RoutineEntity['id']): void
|
|
1145
|
+
startRoutine(id: RoutineEntity['id']): Promise<void>;
|
|
1146
|
+
addAndStart(routine: Omit<RoutineEntity, 'job'>): Promise<void>;
|
|
1113
1147
|
stopRoutine(id: RoutineEntity['id']): Promise<void>;
|
|
1148
|
+
stopAndRemove(id: RoutineEntity['id']): Promise<void>;
|
|
1114
1149
|
boot(): Promise<void>;
|
|
1115
1150
|
shutdown(): Promise<void>;
|
|
1116
1151
|
list(): RoutineEntity[];
|
|
@@ -1252,91 +1287,6 @@ declare class EncryptService {
|
|
|
1252
1287
|
verifyUrl(encryptedKey: string): any;
|
|
1253
1288
|
}
|
|
1254
1289
|
//#endregion
|
|
1255
|
-
//#region src/server/gateways/GitGateway.d.ts
|
|
1256
|
-
interface GitRepoInfo {
|
|
1257
|
-
directory: string;
|
|
1258
|
-
head: string | null;
|
|
1259
|
-
shortHash: string;
|
|
1260
|
-
isDetachedHead: boolean;
|
|
1261
|
-
remotes: string[];
|
|
1262
|
-
}
|
|
1263
|
-
interface GitGatewayOptions {
|
|
1264
|
-
cwd: string;
|
|
1265
|
-
sshKey?: string;
|
|
1266
|
-
sshKeyFile?: string;
|
|
1267
|
-
sshKeyTmpFileName?: string;
|
|
1268
|
-
logger?: LoggerService;
|
|
1269
|
-
debug?: boolean;
|
|
1270
|
-
}
|
|
1271
|
-
declare class GitGateway {
|
|
1272
|
-
private readonly cwd;
|
|
1273
|
-
private readonly sshKey?;
|
|
1274
|
-
private readonly sshKeyFile?;
|
|
1275
|
-
private readonly sshKeyTmpFileName?;
|
|
1276
|
-
private readonly logger;
|
|
1277
|
-
private readonly debug;
|
|
1278
|
-
constructor(options: GitGatewayOptions);
|
|
1279
|
-
private buildEnv;
|
|
1280
|
-
run(args: string): Promise<string>;
|
|
1281
|
-
tryRun(args: string): Promise<string | null>;
|
|
1282
|
-
checkout(ref: string): Promise<void>;
|
|
1283
|
-
fetch(): Promise<void>;
|
|
1284
|
-
pull(): Promise<void>;
|
|
1285
|
-
getInfo(): Promise<GitRepoInfo>;
|
|
1286
|
-
}
|
|
1287
|
-
//#endregion
|
|
1288
|
-
//#region src/server/services/GitBranchRepository.d.ts
|
|
1289
|
-
interface GitBranch {
|
|
1290
|
-
name: string;
|
|
1291
|
-
remote: string | null;
|
|
1292
|
-
isCurrent: boolean;
|
|
1293
|
-
isRemote: boolean;
|
|
1294
|
-
}
|
|
1295
|
-
interface GitBranchFetchOptions {
|
|
1296
|
-
remote: string;
|
|
1297
|
-
branch: string;
|
|
1298
|
-
localName?: string;
|
|
1299
|
-
}
|
|
1300
|
-
declare class GitBranchRepository {
|
|
1301
|
-
private readonly gateway;
|
|
1302
|
-
constructor(gateway: GitGateway);
|
|
1303
|
-
list(): Promise<GitBranch[]>;
|
|
1304
|
-
fetch(options: GitBranchFetchOptions): Promise<void>;
|
|
1305
|
-
}
|
|
1306
|
-
//#endregion
|
|
1307
|
-
//#region src/server/services/GitCommitRepository.d.ts
|
|
1308
|
-
interface GitCommitRef {
|
|
1309
|
-
name: string;
|
|
1310
|
-
shortName: string;
|
|
1311
|
-
type: 'branch' | 'tag' | 'remote' | 'other';
|
|
1312
|
-
}
|
|
1313
|
-
interface GitCommit {
|
|
1314
|
-
hash: string;
|
|
1315
|
-
shortHash: string;
|
|
1316
|
-
authorName: string;
|
|
1317
|
-
authorEmail: string;
|
|
1318
|
-
date: string;
|
|
1319
|
-
message: string;
|
|
1320
|
-
refs: GitCommitRef[];
|
|
1321
|
-
}
|
|
1322
|
-
interface GitCommitListOptions {
|
|
1323
|
-
branch?: string;
|
|
1324
|
-
page?: number;
|
|
1325
|
-
perPage?: number;
|
|
1326
|
-
}
|
|
1327
|
-
interface PaginatedCommits {
|
|
1328
|
-
items: GitCommit[];
|
|
1329
|
-
total: number;
|
|
1330
|
-
page: number;
|
|
1331
|
-
perPage: number;
|
|
1332
|
-
totalPages: number;
|
|
1333
|
-
}
|
|
1334
|
-
declare class GitCommitRepository {
|
|
1335
|
-
private readonly gateway;
|
|
1336
|
-
constructor(gateway: GitGateway);
|
|
1337
|
-
list(options?: GitCommitListOptions): Promise<PaginatedCommits>;
|
|
1338
|
-
}
|
|
1339
|
-
//#endregion
|
|
1340
1290
|
//#region src/server/services/LifecycleService.d.ts
|
|
1341
1291
|
declare class LifecycleService extends LifecycleService$1 {
|
|
1342
1292
|
addDirectory(dirname: string): Promise<void>;
|
|
@@ -1545,6 +1495,7 @@ interface Migration {
|
|
|
1545
1495
|
}
|
|
1546
1496
|
interface ListFilters {
|
|
1547
1497
|
source?: string;
|
|
1498
|
+
name?: string | string[];
|
|
1548
1499
|
}
|
|
1549
1500
|
interface MigrationResult {
|
|
1550
1501
|
name: string;
|
|
@@ -1574,8 +1525,8 @@ declare class MigratorService {
|
|
|
1574
1525
|
list(filters?: ListFilters): Promise<MigrationEntity[]>;
|
|
1575
1526
|
private migrateUp;
|
|
1576
1527
|
private migrateDown;
|
|
1577
|
-
migrateFile
|
|
1578
|
-
rollbackFile
|
|
1528
|
+
private migrateFile;
|
|
1529
|
+
private rollbackFile;
|
|
1579
1530
|
migrate(filters?: ListFilters & {
|
|
1580
1531
|
steps?: number;
|
|
1581
1532
|
}): Promise<MigrationResult[]>;
|
|
@@ -1766,11 +1717,15 @@ interface CommandOptions {
|
|
|
1766
1717
|
env?: NodeJS.ProcessEnv;
|
|
1767
1718
|
shell?: boolean;
|
|
1768
1719
|
}
|
|
1720
|
+
interface ShellServiceOptions {
|
|
1721
|
+
debug?: boolean;
|
|
1722
|
+
logger?: LoggerService;
|
|
1723
|
+
}
|
|
1769
1724
|
declare class ShellService {
|
|
1770
1725
|
static __container_entry_key: string;
|
|
1771
1726
|
debug: boolean;
|
|
1772
1727
|
logger: LoggerService;
|
|
1773
|
-
|
|
1728
|
+
constructor(options?: ShellServiceOptions);
|
|
1774
1729
|
/**
|
|
1775
1730
|
* Execute a shell command and return a promise
|
|
1776
1731
|
*/
|
|
@@ -1860,6 +1815,47 @@ declare class FileRepository extends DatabaseRepository<FileEntity, FileEntity['
|
|
|
1860
1815
|
query(options?: FileRepositoryQueryOptions): any;
|
|
1861
1816
|
}
|
|
1862
1817
|
//#endregion
|
|
1818
|
+
//#region src/server/repositories/GitBranchRepository.d.ts
|
|
1819
|
+
interface GitBranchRepositoryOptions {
|
|
1820
|
+
cwd: string;
|
|
1821
|
+
shell?: ShellService;
|
|
1822
|
+
}
|
|
1823
|
+
declare class GitBranchRepository {
|
|
1824
|
+
cwd: string;
|
|
1825
|
+
shell: ShellService;
|
|
1826
|
+
constructor(options: GitBranchRepositoryOptions);
|
|
1827
|
+
list(): Promise<GitBranchEntity[]>;
|
|
1828
|
+
fetch(options: {
|
|
1829
|
+
remote: string;
|
|
1830
|
+
branch: string;
|
|
1831
|
+
localName?: string;
|
|
1832
|
+
}): Promise<void>;
|
|
1833
|
+
}
|
|
1834
|
+
//#endregion
|
|
1835
|
+
//#region src/server/repositories/GitCommitRepository.d.ts
|
|
1836
|
+
interface GitCommitRepositoryOptions {
|
|
1837
|
+
cwd: string;
|
|
1838
|
+
shell?: ShellService;
|
|
1839
|
+
}
|
|
1840
|
+
interface GitCommitListOptions {
|
|
1841
|
+
limit?: number;
|
|
1842
|
+
cursor?: string;
|
|
1843
|
+
branches?: string | string[];
|
|
1844
|
+
}
|
|
1845
|
+
interface GitCommitListResult {
|
|
1846
|
+
items: GitCommitEntity[];
|
|
1847
|
+
cursor_previous: string | null;
|
|
1848
|
+
cursor_current: string | null;
|
|
1849
|
+
cursor_next: string | null;
|
|
1850
|
+
}
|
|
1851
|
+
declare class GitCommitRepository {
|
|
1852
|
+
cwd: string;
|
|
1853
|
+
shell: ShellService;
|
|
1854
|
+
constructor(options: GitCommitRepositoryOptions);
|
|
1855
|
+
list(options?: GitCommitListOptions): Promise<GitCommitListResult>;
|
|
1856
|
+
checkout(hash: string): Promise<void>;
|
|
1857
|
+
}
|
|
1858
|
+
//#endregion
|
|
1863
1859
|
//#region src/server/repositories/PermissionAssignmentRepository.d.ts
|
|
1864
1860
|
interface PermissionAssignmentRepositoryQueryOptions {
|
|
1865
1861
|
id?: number | number[];
|
|
@@ -1952,6 +1948,49 @@ declare class DriveFS extends DriveBaseGateway {
|
|
|
1952
1948
|
uploadUrl: DriveBaseGateway['uploadUrl'];
|
|
1953
1949
|
}
|
|
1954
1950
|
//#endregion
|
|
1951
|
+
//#region src/server/gateways/GitGateway.d.ts
|
|
1952
|
+
interface GitRepoInfo {
|
|
1953
|
+
directory: string;
|
|
1954
|
+
head: string | null;
|
|
1955
|
+
shortHash: string;
|
|
1956
|
+
isDetachedHead: boolean;
|
|
1957
|
+
remotes: string[];
|
|
1958
|
+
}
|
|
1959
|
+
interface GitGatewayOptions {
|
|
1960
|
+
cwd: string;
|
|
1961
|
+
sshKey?: string;
|
|
1962
|
+
sshKeyFile?: string;
|
|
1963
|
+
logger?: LoggerService;
|
|
1964
|
+
shell?: ShellService;
|
|
1965
|
+
debug?: boolean;
|
|
1966
|
+
}
|
|
1967
|
+
interface GitGatewayExecuteOptions {
|
|
1968
|
+
args: string;
|
|
1969
|
+
cwd?: string;
|
|
1970
|
+
sshKey?: string;
|
|
1971
|
+
sshKeyFile?: string;
|
|
1972
|
+
logger?: LoggerService;
|
|
1973
|
+
shell?: ShellService;
|
|
1974
|
+
debug?: boolean;
|
|
1975
|
+
}
|
|
1976
|
+
declare class GitGateway {
|
|
1977
|
+
private readonly cwd;
|
|
1978
|
+
private readonly sshKey?;
|
|
1979
|
+
private readonly sshKeyFile?;
|
|
1980
|
+
private readonly logger;
|
|
1981
|
+
private readonly debug;
|
|
1982
|
+
private readonly shell;
|
|
1983
|
+
constructor(options: GitGatewayOptions);
|
|
1984
|
+
static execute(options: GitGatewayExecuteOptions): Promise<string>;
|
|
1985
|
+
static clone(repoUrl: string, targetDir: string, options: Omit<GitGatewayOptions, 'cwd'>): Promise<GitGateway>;
|
|
1986
|
+
run(args: string): Promise<string>;
|
|
1987
|
+
tryRun(args: string): Promise<string | null>;
|
|
1988
|
+
checkout(ref: string): Promise<string>;
|
|
1989
|
+
fetchAll(): Promise<string>;
|
|
1990
|
+
pull(): Promise<void>;
|
|
1991
|
+
getInfo(): Promise<GitRepoInfo>;
|
|
1992
|
+
}
|
|
1993
|
+
//#endregion
|
|
1955
1994
|
//#region src/server/mixins/MetadataMixin.d.ts
|
|
1956
1995
|
declare function valueToString(value: any): string;
|
|
1957
1996
|
declare function Metadata<Table extends keyof DatabaseContract>(metasTable: Table, foreignKey: keyof DatabaseContract[Table]): <TBase extends Constructor>(Base: TBase) => {
|
|
@@ -2287,13 +2326,13 @@ declare const File_base: typeof FileEntity & {
|
|
|
2287
2326
|
update<T>(this: new () => T, o: ModelUpdateOptions<"files">): Promise<T>;
|
|
2288
2327
|
updateById<T>(this: new () => T, id: any, values: {
|
|
2289
2328
|
id?: number | undefined;
|
|
2329
|
+
deleted_at?: null | undefined;
|
|
2290
2330
|
drive?: string | undefined;
|
|
2291
2331
|
mimetype?: string | undefined;
|
|
2292
2332
|
client_name?: string | undefined;
|
|
2293
2333
|
filename?: string | undefined;
|
|
2294
2334
|
purpose?: string | undefined;
|
|
2295
2335
|
public?: boolean | undefined;
|
|
2296
|
-
deleted_at?: null | undefined;
|
|
2297
2336
|
}, options?: {
|
|
2298
2337
|
debug?: boolean;
|
|
2299
2338
|
} | undefined): Promise<T>;
|
|
@@ -2350,8 +2389,8 @@ declare const FileMeta_base: typeof FileMeta$1 & {
|
|
|
2350
2389
|
name: string;
|
|
2351
2390
|
file_id: number;
|
|
2352
2391
|
} & {
|
|
2353
|
-
value?: string | null | undefined;
|
|
2354
2392
|
id?: number | undefined;
|
|
2393
|
+
value?: string | null | undefined;
|
|
2355
2394
|
created_at?: string | undefined;
|
|
2356
2395
|
updated_at?: string | undefined;
|
|
2357
2396
|
deleted_at?: string | null | undefined;
|
|
@@ -2360,17 +2399,17 @@ declare const FileMeta_base: typeof FileMeta$1 & {
|
|
|
2360
2399
|
name: string;
|
|
2361
2400
|
file_id: number;
|
|
2362
2401
|
} & {
|
|
2363
|
-
value?: string | null | undefined;
|
|
2364
2402
|
id?: number | undefined;
|
|
2403
|
+
value?: string | null | undefined;
|
|
2365
2404
|
created_at?: string | undefined;
|
|
2366
2405
|
updated_at?: string | undefined;
|
|
2367
2406
|
deleted_at?: string | null | undefined;
|
|
2368
2407
|
})[]): Promise<T[]>;
|
|
2369
2408
|
update<T>(this: new () => T, o: ModelUpdateOptions<"file_metas">): Promise<T>;
|
|
2370
2409
|
updateById<T>(this: new () => T, id: any, values: {
|
|
2371
|
-
name?: string | undefined;
|
|
2372
|
-
value?: string | null | undefined;
|
|
2373
2410
|
id?: number | undefined;
|
|
2411
|
+
value?: string | null | undefined;
|
|
2412
|
+
name?: string | undefined;
|
|
2374
2413
|
file_id?: number | undefined;
|
|
2375
2414
|
deleted_at?: null | undefined;
|
|
2376
2415
|
}, options?: {
|
|
@@ -2399,6 +2438,11 @@ declare const PluginEntryEntity_base: typeof PluginEntity$1;
|
|
|
2399
2438
|
declare class PluginEntryEntity extends PluginEntryEntity_base {
|
|
2400
2439
|
directory: string;
|
|
2401
2440
|
makePath(...parts: string[]): string;
|
|
2441
|
+
set: typeof config.set;
|
|
2442
|
+
get: typeof config.get;
|
|
2443
|
+
get git(): GitGateway;
|
|
2444
|
+
get commits(): GitCommitRepository;
|
|
2445
|
+
get branches(): GitBranchRepository;
|
|
2402
2446
|
}
|
|
2403
2447
|
//#endregion
|
|
2404
2448
|
//#region src/server/entities/PluginEntity.d.ts
|
|
@@ -2519,7 +2563,10 @@ declare function createLoaderFactory<E extends Record<string, any> = Record<stri
|
|
|
2519
2563
|
declare function cuid(): string;
|
|
2520
2564
|
//#endregion
|
|
2521
2565
|
//#region src/server/utils/defineHandler.d.ts
|
|
2522
|
-
|
|
2566
|
+
interface Handler {
|
|
2567
|
+
(ctx: HttpContext): Promise<any> | (() => any);
|
|
2568
|
+
}
|
|
2569
|
+
declare function defineHandler(handler: Handler): Handler;
|
|
2523
2570
|
//#endregion
|
|
2524
2571
|
//#region src/server/utils/generateIndexFile.d.ts
|
|
2525
2572
|
declare function generateIndexFile(options: any): void;
|
|
@@ -2547,5 +2594,5 @@ declare function importAll(directory: string, options?: Options): Promise<Record
|
|
|
2547
2594
|
//#region src/server/utils/importOne.d.ts
|
|
2548
2595
|
declare function importOne(filenames: string[]): Promise<any>;
|
|
2549
2596
|
//#endregion
|
|
2550
|
-
export { Acl as AclEntity, AddOptions, AuthMiddleware, AuthMiddlewareContext, AuthSilenceMiddleware, AuthSilenceMiddlewareContext, AuthorizationContext, AuthorizationMiddleware, AuthorizePermission, AuthorizePermissionPayload, CliCommand, CliEvents, CliService, ArteTesterService as CliTesterService, CliWrapperService, ConfigFSService, ConfigFSServiceOptions, ConfigManagerOptions, ConfigManagerService, ConfigModel, ConfigRepository, ConfigS3Service, CookieMapEntity, CountOptions, CreateOptions, DatabaseContract, DatabaseKysely, DatabaseRepository, DatabaseRepositoryInferMixin, DeleteFrom, DeleteManyOptions, DestroyOptions, DownloadService, DownloadedFetchOptions, DriveBaseGateway, DriveConfig as DriveConfigEntity, DriveContract, DriveFSConfig, DriveFS as DriveFSGateway, DriveS3 as DriveS3Gateway, DriveService, DriveUploadUrlOptions, DriveUrlOptions, EmailTemplateMetaTable, EmailTemplateTable, EmmitterService, EncryptService, EnvService, EventContract, ExpressionBuilder, File as FileEntity, FileMeta as FileMetaEntity, FileMetaTable, FileRepository, FileRepositoryQueryOptions, FileTable, FindManyOptions, FindOneOptions, FirstOrCreateOptions,
|
|
2551
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci91dGlscy9wcmludFRhYmxlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL0NvbmZpZ1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvc2VydmljZXMvQ29udGFpbmVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL0VtbWl0dGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9MaWZlY3ljbGVIb29rLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3V0aWxzL2NvbXBvc2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvc2VydmljZXMvTGlmZWN5Y2xlU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Blcm1pc3Npb25Bc3NpZ25tZW50U2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvblNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Rva2VuU2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL21peGlucy9Ib29rc01peGluLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1Blcm1pc3Npb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvQWNsRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0Nvb2tpZU1hcEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUNvbmZpZ0VudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUVudHJ5RW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0ZpbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvRmlsZU1ldGFFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvTW9kdWxlTWFuaWZlc3RFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvTW9kdWxlRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1BhZ2luYXRpb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvUGx1Z2luRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1JvbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvVXNlckVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9DbGlTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0NsaVRlc3RlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvQ2xpV3JhcHBlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvQ29uZmlnRlNTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NjaGVtYXMvZW52U2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0VudlNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvQ29uZmlnTWFuYWdlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZ2F0ZXdheXMvRHJpdmVCYXNlR2F0ZXdheS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9nYXRld2F5cy9Ecml2ZVMzR2F0ZXdheS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Db25maWdTM1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvRG93bmxvYWRTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2NvbnRyYWN0cy9Ecml2ZUNvbnRyYWN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0RyaXZlU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9NaWdyYXRpb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvQ29va2llTWFwRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL1BhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9BY2xFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL0h0dHBDb250ZXh0Q29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL1JvdXRlckNvbnRyYWN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL1JvdXRlRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1JvdXRlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvUm91dGluZUVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9TY2hlZHVsZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL1NlZWRlckVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9TZWVkZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2NvbnRyYWN0cy9FdmVudENvbnRyYWN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0VtbWl0dGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9FbmNyeXB0U2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9nYXRld2F5cy9HaXRHYXRld2F5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0dpdEJyYW5jaFJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvR2l0Q29tbWl0UmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9MaWZlY3ljbGVTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL01ldGFkYXRhUXVlcnlTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL01ldGFkYXRhU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9NaWdyYXRvclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUGx1Z2luSXBjQ2xpZW50LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1BsdWdpbklwY0hvc3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUGx1Z2luUm91dGVyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1JvdXRlckZpbGVCYXNlUm91dGluZ1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUm91dGVyUmVnaXN0ZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1JvdXRlclJlc291cmNlU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taXhpbnMvTW9kZWxDb25maWdNaXhpbi5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Sb3V0ZXJSZXNvdXJjZUNvbmZpZ1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvU2hlbGxTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3JlcG9zaXRvcmllcy9EYXRhYmFzZVJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL0NvbmZpZ1JlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL0ZpbGVSZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3JlcG9zaXRvcmllcy9QZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL1Blcm1pc3Npb25SZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21peGlucy9EYXRhYmFzZVJlcG9zaXRvcnlJbmZlck1peGluLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3JlcG9zaXRvcmllcy9Ub2tlblJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL1VzZXJSZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2dhdGV3YXlzL0RyaXZlRlNHYXRld2F5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21peGlucy9NZXRhZGF0YU1peGluLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvZGF0YWJhc2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9jb21tb24uZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy91cGRhdGVPckNyZWF0ZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2xpc3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9wYWdpbmF0ZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2NvdW50LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvY3JlYXRlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvdXBkYXRlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvZGVzdHJveS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2ZpcnN0T3JDcmVhdGUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9maW5kT25lLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21peGlucy9Nb2RlbE1peGluLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21peGlucy9SZWxhdGlvbnNNaXhpbi5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2NvbmZpZy5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2NvbnRhaW5lci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2Rvd25sb2FkLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvZHJpdmUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9lbW1pdHRlci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2VuY3J5cHQuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9maWxlc1JlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9sb2dnZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9taWdyYXRvci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL3Blcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL3Blcm1pc3Npb25SZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvcm91dGVyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvc2NoZWR1bGVyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvc2hlbGwuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy90b2tlblJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy91c2VyUmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9jb250cmFjdHMvS3lzZWx5Q29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvZGVmaW5lTG9hZGVyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2xvYWRlcnMvY3JlYXRlSGFzTWFueVRocm91Z2hMb2FkZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvRHJpdmVDb25maWdFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvRmlsZUVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9GaWxlTWV0YUVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9Nb2R1bGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvUGx1Z2luRW50cnlFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvUGx1Z2luRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvZXhpc3RzLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvaW5jcmVtZW50YWwuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9zb2Z0RGVsZXRlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvdGltZXN0YW1wLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21pZGRsZXdhcmVzL0F1dGhNaWRkbGV3YXJlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21pZGRsZXdhcmVzL0F1dGhTaWxlbmNlTWlkZGxld2FyZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taWRkbGV3YXJlcy9BdXRob3JpemF0aW9uTWlkZGxld2FyZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci91dGlscy9iYXNlUGF0aC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci91dGlscy9jcmVhdGVMb2FkZXJGYWN0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3V0aWxzL2N1aWQuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvZGVmaW5lSGFuZGxlci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci91dGlscy9nZW5lcmF0ZUluZGV4RmlsZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci91dGlscy9pbXBvcnRBbGwuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvaW1wb3J0T25lLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgKChpdGVtOiBhbnkpID0+IHN0cmluZyk7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgcmVhbFdpZHRoPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RPcHRpb25zIHtcbiAgICBrZXlXaWR0aD86IG51bWJlcjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHByaW50T2JqZWN0KG91dHB1dD86IGFueSwgb3B0aW9ucz86IE9iamVjdE9wdGlvbnMpOiB2b2lkO1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gcHJpbnRUYWJsZShpdGVtczogYW55W10sIGNvbHVtbnM/OiBUYWJsZUNvbHVtbltdKTogdm9pZDtcbiIsImludGVyZmFjZSBFbnRyeSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgICBzb3VyY2U6IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1NlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBlbnRyaWVzOiBNYXA8c3RyaW5nLCBFbnRyeT47XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBsaXN0KCk6IEVudHJ5W107XG4gICAgcGFyc2VWYWx1ZSh2YWx1ZTogYW55KTogYW55O1xuICAgIGxvYWRGcm9tUmVjb3JkKHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55Piwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICBsb2FkRnJvbUVudHJpZXMoZW50cmllczogW3N0cmluZywgYW55XVtdLCBzb3VyY2U/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHRvUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBnZXQ8VCA9IGFueSB8IHVuZGVmaW5lZD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSk6IFQ7XG4gICAgZ2V0T25lPFQgPSBhbnkgfCB1bmRlZmluZWQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBUO1xuICAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICB1bnNldChrZXk6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXIoKTogdm9pZDtcbiAgICBkdW1wKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5leHBvcnQge307XG4iLCJ0eXBlIENvbnN0cnVjdG9yPFQgPSBvYmplY3Q+ID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVDtcbnR5cGUgRW50cnlLZXkgPSBzdHJpbmcgfCBzeW1ib2wgfCBDb25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRhaW5lclNlcnZpY2Uge1xuICAgIHByaXZhdGUgZW50cmllcztcbiAgICBsb2FkRnJvbVJlY29yZChyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkO1xuICAgIHRvUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgcHJpdmF0ZSBnZXRLZXk7XG4gICAgc2V0KHBheWxvYWQ6IEVudHJ5S2V5LCB2YWx1ZTogYW55KTogdGhpcztcbiAgICBoYXMocGF5bG9hZDogRW50cnlLZXkpOiBib29sZWFuO1xuICAgIGdldDxUPihwYXlsb2FkOiBFbnRyeUtleSk6IFQ7XG4gICAgc2luZ2xldG9uPFQ+KGNsYXNzQ29uc3RydWN0b3I6IENvbnN0cnVjdG9yPFQ+KTogVDtcbiAgICBsb2FkKGVudHJpZXM6IFJlY29yZDxhbnksIGFueT4pOiB2b2lkO1xuICAgIHByb3h5PFQgPSB1bmtub3duPihrZXk6IEVudHJ5S2V5KTogVDtcbiAgICBrZXlzKCk6IEVudHJ5S2V5W107XG59XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXJTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIG1ldGE/OiBhbnkpOiB2b2lkO1xuICAgIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgbWV0YT86IGFueSk6IHZvaWQ7XG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcsIG1ldGE/OiBhbnkpOiB2b2lkO1xuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgbWV0YT86IGFueSk6IHZvaWQ7XG4gICAgY2hpbGQob3B0aW9uczogYW55KTogTG9nZ2VyU2VydmljZTtcbn1cbiIsImltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJy4vTG9nZ2VyU2VydmljZS50cyc7XG5pbnRlcmZhY2UgRW1taXR0ZXJIYW5kbGVyIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuICAgIG9yaWdpbmFsTGlzdGVuZXI/OiAoLi4uYXJnczogYW55W10pID0+IGFueTtcbn1cbmludGVyZmFjZSBPbk9wdGlvbnMge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHVuaXF1ZT86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgT25EZWJvdW5jZU9wdGlvbnMgZXh0ZW5kcyBPbk9wdGlvbnMge1xuICAgIGRlYm91bmNlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBFbW1pdHRlclNlcnZpY2VPcHRpb25zIHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVtbWl0dGVyU2VydmljZTxFdmVudHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBwcml2YXRlIGhhbmRsZXJzO1xuICAgIHByaXZhdGUgZGVidWc7XG4gICAgcHJpdmF0ZSBsb2dnZXI7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IEVtbWl0dGVyU2VydmljZU9wdGlvbnMpO1xuICAgIHN0YXRpYyBjcmVhdGU8RXZlbnRzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KG9wdGlvbnM/OiBFbW1pdHRlclNlcnZpY2VPcHRpb25zKTogRW1taXR0ZXJTZXJ2aWNlPEV2ZW50cz47XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldExvZ2dlcihsb2dnZXI6IExvZ2dlclNlcnZpY2UpOiB2b2lkO1xuICAgIG9uPEsgZXh0ZW5kcyBrZXlvZiBFdmVudHM+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKGFyZ3M6IEV2ZW50c1tLXSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbmNlPEsgZXh0ZW5kcyBrZXlvZiBFdmVudHM+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKGFyZ3M6IEV2ZW50c1tLXSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbmNlKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoYXJnczogYW55KSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uRGVib3VuY2U8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25EZWJvdW5jZU9wdGlvbnMpOiBFbW1pdHRlckhhbmRsZXI7XG4gICAgb25EZWJvdW5jZShldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uRGVib3VuY2VPcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uQW55T2Y8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnRzOiBLW10sIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyW107XG4gICAgb25BbnlPZihldmVudHM6IHN0cmluZ1tdLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIG9mZihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogRnVuY3Rpb24pOiB2b2lkO1xuICAgIGVtaXQ8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGFyZ3M6IEV2ZW50c1tLXSk6IHZvaWQ7XG4gICAgZW1pdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogdm9pZDtcbiAgICBlbWl0QW5kV2FpdDxLIGV4dGVuZHMga2V5b2YgRXZlbnRzPihldmVudDogSywgYXJnczogRXZlbnRzW0tdKTogUHJvbWlzZTx2b2lkPjtcbiAgICBlbWl0QW5kV2FpdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICBsaXN0KCk6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIGxpc3RCeUV2ZW50KGV2ZW50OiBzdHJpbmcpOiBFbW1pdHRlckhhbmRsZXJbXTtcbiAgICByZW1vdmUocGF5bG9hZDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkO1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgaGFzSGFuZGxlcnMoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIExpZmVjeWNsZUhvb2sge1xuICAgIGhvb2tfaWQ6IHN0cmluZztcbiAgICBob29rX2FsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBzdWJob29rcz86IExpZmVjeWNsZUhvb2tbXTtcbiAgICByZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBib290KCk6IFByb21pc2U8dm9pZD47XG4gICAgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIHJlZ2lzdGVyICovXG4gICAgb25SZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgbG9hZCAqL1xuICAgIG9uTG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgYm9vdCAqL1xuICAgIG9uQm9vdCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc2h1dGRvd24gKi9cbiAgICBvblNodXRkb3duKCk6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgdHlwZSB7IFVuaW9uVG9JbnRlcnNlY3Rpb24gfSBmcm9tICcuL3R5cGluZy50cyc7XG5leHBvcnQgdHlwZSBBbnlDbGFzcyA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueTtcbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQgPSB7fT4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuZXhwb3J0IHR5cGUgTWl4aW48VD4gPSAoYmFzZTogQ29uc3RydWN0b3IpID0+IENvbnN0cnVjdG9yPFQ+O1xuLyoqXG4gKiBDb21wb3NlcyBtdWx0aXBsZSBtaXhpbnMgaW50byBhIHNpbmdsZSBjbGFzcyB0aGF0IGNhbiBiZSBleHRlbmRlZC5cbiAqIEFsbG93cyBmb3IgbXVsdGlwbGUgaW5oZXJpdGFuY2UtbGlrZSBiZWhhdmlvciBieSBhcHBseWluZyBtaXhpbnMgc2VxdWVudGlhbGx5LlxuICpcbiAqIEBwYXJhbSBtaXhpbnMgLSBBcnJheSBvZiBtaXhpbiBmdW5jdGlvbnMgdG8gY29tcG9zZVxuICogQHJldHVybnMgQSBjbGFzcyBjb25zdHJ1Y3RvciB0aGF0IGluY2x1ZGVzIGFsbCBtaXhpbiBmdW5jdGlvbmFsaXR5XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFVzZXIgZXh0ZW5kcyBjb21wb3NlKFRpbWVzdGFtcCwgU29mdERlbGV0ZSkge1xuICogICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gKiAgICAgc3VwZXIoKVxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY29tcG9zZTxNIGV4dGVuZHMgQXJyYXk8KGJhc2U6IENvbnN0cnVjdG9yPGFueT4pID0+IENvbnN0cnVjdG9yPGFueT4+PiguLi5taXhpbnM6IE0pOiBVbmlvblRvSW50ZXJzZWN0aW9uPFJldHVyblR5cGU8TVtudW1iZXJdPj47XG4vKipcbiAqIEFsdGVybmF0aXZlIGNvbXBvc2UgZnVuY3Rpb24gdGhhdCBzdGFydHMgd2l0aCBhIGJhc2UgY2xhc3NcbiAqXG4gKiBAcGFyYW0gYmFzZUNsYXNzIC0gVGhlIGJhc2UgY2xhc3MgdG8gc3RhcnQgd2l0aFxuICogQHBhcmFtIG1peGlucyAtIEFycmF5IG9mIG1peGluIGZ1bmN0aW9ucyB0byBhcHBseVxuICogQHJldHVybnMgQSBjbGFzcyBjb25zdHJ1Y3RvciB0aGF0IGV4dGVuZHMgdGhlIGJhc2UgY2xhc3Mgd2l0aCBhbGwgbWl4aW4gZnVuY3Rpb25hbGl0eVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBVc2VyIGV4dGVuZHMgY29tcG9zZVdpdGgoQmFzZUVudGl0eSwgVGltZXN0YW1wLCBTb2Z0RGVsZXRlKSB7XG4gKiAgIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAqICAgICBzdXBlcigpXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjb21wb3NlV2l0aDxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yLCBNIGV4dGVuZHMgQXJyYXk8KGJhc2U6IENvbnN0cnVjdG9yKSA9PiBDb25zdHJ1Y3Rvcjxhbnk+Pj4oYmFzZUNsYXNzOiBUQmFzZSwgLi4ubWl4aW5zOiBNKTogVEJhc2UgJiBVbmlvblRvSW50ZXJzZWN0aW9uPFJldHVyblR5cGU8TVtudW1iZXJdPj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBtaXhpbjxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yPihTb3VyY2U6IFRCYXNlKTogPFRUYXJnZXQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oVGFyZ2V0OiBUVGFyZ2V0KSA9PiBUVGFyZ2V0ICYgVEJhc2U7XG4iLCJpbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcuL0xvZ2dlclNlcnZpY2UudHMnO1xuaW1wb3J0IHR5cGUgTGlmZWN5Y2xlSG9vayBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0xpZmVjeWNsZUhvb2sudHMnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG50eXBlIExpZmVjeWNsZU1ldGhvZCA9ICdyZWdpc3RlcicgfCAnbG9hZCcgfCAnYm9vdCcgfCAnc2h1dGRvd24nO1xuaW50ZXJmYWNlIExpc3RPcHRpb25zIHtcbiAgICBpbmNsdWRlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgZXhjbHVkZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVTZXJ2aWNlT3B0aW9ucyB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGhvb2tzPzogTWFwPHN0cmluZywgTGlmZWN5Y2xlSG9vaz47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbiAgICBvbkVycm9yPzogKGVycm9yOiBFcnJvciwgY29udGV4dDoge1xuICAgICAgICBob29rSWQ6IHN0cmluZztcbiAgICAgICAgbWV0aG9kOiBMaWZlY3ljbGVNZXRob2Q7XG4gICAgfSkgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpZmVjeWNsZVNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBob29rczogTWFwPHN0cmluZywgTGlmZWN5Y2xlSG9vaz47XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBMaWZlY3ljbGVTZXJ2aWNlT3B0aW9ucyk7XG4gICAgb25FcnJvcihlcnJvcjogRXJyb3IsIGNvbnRleHQ6IHtcbiAgICAgICAgaG9va0lkOiBzdHJpbmc7XG4gICAgICAgIG1ldGhvZDogTGlmZWN5Y2xlTWV0aG9kO1xuICAgIH0pOiB2b2lkO1xuICAgIG1hcEFsaWFzZXMoYXJnczogc3RyaW5nW10pOiBzdHJpbmdbXTtcbiAgICBsaXN0KG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IExpZmVjeWNsZUhvb2tbXTtcbiAgICBhZGQoLi4ucGF5bG9hZDogKExpZmVjeWNsZUhvb2sgfCBDb25zdHJ1Y3RvcjxMaWZlY3ljbGVIb29rPilbXSk6IHZvaWQ7XG4gICAgZW1pdE1ldGhvZChtZXRob2Q6IExpZmVjeWNsZU1ldGhvZCwgb3B0aW9ucz86IExpc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBlbWl0KHBheWxvYWQ6IExpZmVjeWNsZU1ldGhvZCB8IExpZmVjeWNsZU1ldGhvZFtdLCBvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHJlZ2lzdGVyKG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZChvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGJvb3Qob3B0aW9ucz86IExpc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzaHV0ZG93bihvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGNsZWFyKCk6IHZvaWQ7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvbkFzc2lnbm1lbnQgPSB2LkluZmVyT3V0cHV0PHR5cGVvZiBwZXJtaXNzaW9uQXNzaWdubWVudFNjaGVtYT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBwZXJtaXNzaW9uQXNzaWdubWVudFNjaGVtYTogdi5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHBlcm1pc3Npb25faWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgYXNzaWduYWJsZV90eXBlOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGFzc2lnbmFibGVfaWQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB1cGRhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xufSwgdW5kZWZpbmVkPjtcbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uID0gdi5JbmZlck91dHB1dDx0eXBlb2YgcGVybWlzc2lvblNjaGVtYT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBwZXJtaXNzaW9uU2NoZW1hOiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgbmFtZTogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgYWN0aW9uOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHN1YmplY3Q6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgY29uZGl0aW9uczogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBleHBpcmVzX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xufSwgdW5kZWZpbmVkPjtcbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBUb2tlbiA9IHYuSW5mZXJPdXRwdXQ8dHlwZW9mIHRva2VuU2NoZW1hPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHRva2VuU2NoZW1hOiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgbmFtZTogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHR5cGU6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXNlcl9pZDogdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB0b2tlbjogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBjcmVhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZXhwaXJlc19hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG4iLCJpbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXIge1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGVtaXRIb29rKGNvbnN0cnVjdG9yOiBhbnksIGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIG9uSG9vayhjb25zdHJ1Y3RvcjogYW55LCBldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIEhvb2tzU3RhdGljPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7fTtcbiAgICBsaXN0ZW5lcnM6IEFycmF5PCguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZD47XG4gICAgb24oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgZW1pdChldmVudDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD47XG59ICYgVEJhc2U7XG5leHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSG9va3NTdGF0aWMge1xuICAgIHZhciBlbWl0OiB0eXBlb2YgZW1pdEhvb2s7XG4gICAgdmFyIG9uOiB0eXBlb2Ygb25Ib29rO1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9va3M8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbGlzdGVuZXJzOiBMaXN0ZW5lcltdO1xuICAgICAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgICAgICAgZW1pdEFzeW5jKGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xufSAmIFRCYXNlO1xuIiwiZGVjbGFyZSBjb25zdCBQZXJtaXNzaW9uRW50aXR5X2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGVybWlzc2lvbkVudGl0eSBleHRlbmRzIFBlcm1pc3Npb25FbnRpdHlfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gICAgb3JpZ2luOiBzdHJpbmc7XG4gICAgc3ViamVjdDogc3RyaW5nO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM6IHN0cmluZyB8IG51bGwgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGdldCBlZGl0YWJsZSgpOiBib29sZWFuO1xuICAgIGdldCBwYXJzZWRDb25kaXRpb25zKCk6IGFueTtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IGRlZmluZUFiaWxpdHkgfSBmcm9tICdAY2FzbC9hYmlsaXR5JztcbmltcG9ydCBQZXJtaXNzaW9uIGZyb20gJy4vUGVybWlzc2lvbkVudGl0eS50cyc7XG5pbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWNsRW50aXR5IHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgYWJpbGl0eTogUmV0dXJuVHlwZTx0eXBlb2YgZGVmaW5lQWJpbGl0eT47XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8QWNsRW50aXR5Pik7XG4gICAgY2FuKGFjdGlvbjogc3RyaW5nLCBzdWJqZWN0OiBhbnksIG9iamVjdD86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuO1xuICAgIGNhbm5vdChhY3Rpb246IHN0cmluZywgc3ViamVjdDogYW55LCBvYmplY3Q/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYm9vbGVhbjtcbiAgICBzdWJqZWN0KHN1YmplY3Q6IHN0cmluZywgb2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiAmIGltcG9ydChcIkBjYXNsL2FiaWxpdHlcIikuRm9yY2VkU3ViamVjdDxzdHJpbmc+O1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBDb29raWVNYXBFbnRpdHlPcHRpb25zIHtcbiAgICBjb29raWVzPzogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb29raWVNYXBFbnRpdHkge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBjb29raWVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByZWZpeDogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDb29raWVNYXBFbnRpdHlPcHRpb25zKTtcbiAgICBsb2FkKGNvb2tpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdm9pZDtcbiAgICBnZXQobmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTogdm9pZDtcbiAgICB0b1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgVFlQRVM6ICgpID0+ICh7XG4gICAgaWQ6IHN0cmluZztcbiAgICBsYWJlbDogYW55O1xuICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgY29uZmlnX2ZpZWxkczoge1xuICAgICAgICBkaXJlY3Rvcnk6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGFjY2Vzc0tleUlkPzogdW5kZWZpbmVkO1xuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk/OiB1bmRlZmluZWQ7XG4gICAgICAgIGJ1Y2tldD86IHVuZGVmaW5lZDtcbiAgICAgICAgcmVnaW9uPzogdW5kZWZpbmVkO1xuICAgICAgICBwcmVmaXg/OiB1bmRlZmluZWQ7XG4gICAgICAgIGVuZHBvaW50PzogdW5kZWZpbmVkO1xuICAgIH07XG59IHwge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogYW55O1xuICAgIGNvbmZpZ19maWVsZHM6IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIGJ1Y2tldDoge1xuICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICB9O1xuICAgICAgICByZWdpb246IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgfTtcbiAgICAgICAgcHJlZml4OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGVuZHBvaW50OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGRpcmVjdG9yeT86IHVuZGVmaW5lZDtcbiAgICB9O1xufSlbXTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlQ29uZmlnIHtcbiAgICBzdGF0aWMgZ2V0IFRZUEVTKCk6ICh7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgICAgIGNvbmZpZ19maWVsZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeToge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBidWNrZXQ/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZWdpb24/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBwcmVmaXg/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBlbmRwb2ludD86IHVuZGVmaW5lZDtcbiAgICAgICAgfTtcbiAgICB9IHwge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbjogYW55O1xuICAgICAgICBjb25maWdfZmllbGRzOiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDoge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnVja2V0OiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVnaW9uOiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcHJlZml4OiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkaXJlY3Rvcnk/OiB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgfSlbXTtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgaXNfZGVmYXVsdDogYm9vbGVhbjtcbiAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3RydWN0b3IoZGF0YTogRHJpdmVDb25maWcpO1xuICAgIGdldCBjb25maWdfZmllbGRzKCk6IHt9O1xufVxuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVFbnRyeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiAnZmlsZScgfCAnZGlyZWN0b3J5JztcbiAgICBtZXRhczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBEcml2ZUVudHJ5KTtcbn1cbiIsImRlY2xhcmUgY29uc3QgRmlsZUVudGl0eV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBjcmVhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgICAgICB1cGRhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgIH07XG59ICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGRlbGV0ZWRfYXQ6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZUVudGl0eSBleHRlbmRzIEZpbGVFbnRpdHlfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBkcml2ZTogc3RyaW5nO1xuICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgcHVycG9zZTogc3RyaW5nO1xuICAgIGNsaWVudF9uYW1lOiBzdHJpbmc7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBwdWJsaWM6IGJvb2xlYW47XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIG1ldGFzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBpc0ltYWdlKCk6IGJvb2xlYW47XG59XG5leHBvcnQge307XG4iLCJkZWNsYXJlIGNvbnN0IEZpbGVNZXRhX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlTWV0YSBleHRlbmRzIEZpbGVNZXRhX2Jhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgZmlsZV9pZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlTWFuaWZlc3RCdWlsZEltcG9ydCB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIHRvPzogc3RyaW5nO1xuICAgIHR5cGU6ICdnbG9iYWxfaW1wb3J0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlTWFuaWZlc3RCdWlsZCB7XG4gICAgaW1wb3J0cz86IE1vZHVsZU1hbmlmZXN0QnVpbGRJbXBvcnRbXTtcbn1cbmRlY2xhcmUgY29uc3QgTW9kdWxlTWFuaWZlc3RfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2R1bGVNYW5pZmVzdCBleHRlbmRzIE1vZHVsZU1hbmlmZXN0X2Jhc2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGF1dGhvcj86IHN0cmluZztcbiAgICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGJ1aWxkPzogTW9kdWxlTWFuaWZlc3RCdWlsZDtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSBNb2R1bGVNYW5pZmVzdCBmcm9tICcuL01vZHVsZU1hbmlmZXN0RW50aXR5LnRzJztcbmltcG9ydCBMaWZlY3ljbGVIb29rIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvTGlmZWN5Y2xlSG9vay50cyc7XG5pbnRlcmZhY2UgTW9kdWxlVXBncmFkZUluZm8ge1xuICAgIHNvdXJjZTogJ2dpdCcgfCAnemlwJztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5kZWNsYXJlIGNvbnN0IE1vZHVsZV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3Rvcjx7fT4gJiB0eXBlb2YgTGlmZWN5Y2xlSG9vaztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZHVsZSBleHRlbmRzIE1vZHVsZV9iYXNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBidWlsZDogTW9kdWxlTWFuaWZlc3RbJ2J1aWxkJ107XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgdXBncmFkZV9pbmZvPzogTW9kdWxlVXBncmFkZUluZm87XG4gICAgc2V0RGF0YShkYXRhOiBQYXJ0aWFsPE1vZHVsZSB8IE1vZHVsZU1hbmlmZXN0Pik6IHZvaWQ7XG59XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdpbmF0aW9uRW50aXR5PFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgaXRlbXM6IFRbXTtcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJfcGFnZTogbnVtYmVyO1xuICAgIHRvdGFsX3BhZ2VzOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxQYWdpbmF0aW9uRW50aXR5Pik7XG4gICAgc3RhdGljIGZyb208VCA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KHBheWxvYWQ6IFBhcnRpYWw8UGFnaW5hdGlvbkVudGl0eTxUPj4pOiBQYWdpbmF0aW9uRW50aXR5PFQ+O1xufVxuIiwiZGVjbGFyZSBjb25zdCBQbHVnaW5FbnRpdHlfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbHVnaW5FbnRpdHkgZXh0ZW5kcyBQbHVnaW5FbnRpdHlfYmFzZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWxpYXNlczogc3RyaW5nW107XG59XG5leHBvcnQge307XG4iLCJkZWNsYXJlIGNvbnN0IFJvbGVfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3IgJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICB9O1xufSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBkZWxldGVkX2F0OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvbGUgZXh0ZW5kcyBSb2xlX2Jhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgUGVybWlzc2lvbiBmcm9tICcuL1Blcm1pc3Npb25FbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgUm9sZSBmcm9tICcuL1JvbGVFbnRpdHkudHMnO1xuZGVjbGFyZSBjb25zdCBVc2VyRW50aXR5X2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVc2VyRW50aXR5IGV4dGVuZHMgVXNlckVudGl0eV9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgdmVyaWZpZWRfYXQ/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcbiAgICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25bXTtcbiAgICByb2xlcz86IFJvbGVbXTtcbiAgICBnZXQgaW5pdGlhbHMoKTogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgQ29tbWFuZCBhcyBDb21tYW5kZXJDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBwcmludFRhYmxlLCBwcmludE9iamVjdCB9IGZyb20gJy4uL3V0aWxzL3ByaW50VGFibGUudHMnO1xuaW1wb3J0IHsgRW1taXR0ZXJTZXJ2aWNlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIENsaUV2ZW50cyB7XG4gICAgJ2NsaTpyZWdpc3RlcmVkJzoge1xuICAgICAgICBjbGk6IENsaVNlcnZpY2U7XG4gICAgfTtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIENsaUNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kZXJDb21tYW5kIHtcbiAgICBfX2lzX2NsaV9jb21tYW5kOiBib29sZWFuO1xuICAgIHRhYmxlOiB0eXBlb2YgcHJpbnRUYWJsZTtcbiAgICBvYmplY3Q6IHR5cGVvZiBwcmludE9iamVjdDtcbiAgICBjb2xvcnM6IGNoYWxrLkNoYWxrICYgY2hhbGsuQ2hhbGtGdW5jdGlvbiAmIHtcbiAgICAgICAgc3VwcG9ydHNDb2xvcjogY2hhbGsuQ29sb3JTdXBwb3J0IHwgZmFsc2U7XG4gICAgICAgIExldmVsOiBjaGFsay5MZXZlbDtcbiAgICAgICAgQ29sb3I6IChcImJsYWNrXCIgfCBcInJlZFwiIHwgXCJncmVlblwiIHwgXCJ5ZWxsb3dcIiB8IFwiYmx1ZVwiIHwgXCJtYWdlbnRhXCIgfCBcImN5YW5cIiB8IFwid2hpdGVcIiB8IFwiZ3JheVwiIHwgXCJncmV5XCIgfCBcImJsYWNrQnJpZ2h0XCIgfCBcInJlZEJyaWdodFwiIHwgXCJncmVlbkJyaWdodFwiIHwgXCJ5ZWxsb3dCcmlnaHRcIiB8IFwiYmx1ZUJyaWdodFwiIHwgXCJtYWdlbnRhQnJpZ2h0XCIgfCBcImN5YW5CcmlnaHRcIiB8IFwid2hpdGVCcmlnaHRcIikgfCAoXCJiZ0JsYWNrXCIgfCBcImJnUmVkXCIgfCBcImJnR3JlZW5cIiB8IFwiYmdZZWxsb3dcIiB8IFwiYmdCbHVlXCIgfCBcImJnTWFnZW50YVwiIHwgXCJiZ0N5YW5cIiB8IFwiYmdXaGl0ZVwiIHwgXCJiZ0dyYXlcIiB8IFwiYmdHcmV5XCIgfCBcImJnQmxhY2tCcmlnaHRcIiB8IFwiYmdSZWRCcmlnaHRcIiB8IFwiYmdHcmVlbkJyaWdodFwiIHwgXCJiZ1llbGxvd0JyaWdodFwiIHwgXCJiZ0JsdWVCcmlnaHRcIiB8IFwiYmdNYWdlbnRhQnJpZ2h0XCIgfCBcImJnQ3lhbkJyaWdodFwiIHwgXCJiZ1doaXRlQnJpZ2h0XCIpO1xuICAgICAgICBGb3JlZ3JvdW5kQ29sb3I6IFwiYmxhY2tcIiB8IFwicmVkXCIgfCBcImdyZWVuXCIgfCBcInllbGxvd1wiIHwgXCJibHVlXCIgfCBcIm1hZ2VudGFcIiB8IFwiY3lhblwiIHwgXCJ3aGl0ZVwiIHwgXCJncmF5XCIgfCBcImdyZXlcIiB8IFwiYmxhY2tCcmlnaHRcIiB8IFwicmVkQnJpZ2h0XCIgfCBcImdyZWVuQnJpZ2h0XCIgfCBcInllbGxvd0JyaWdodFwiIHwgXCJibHVlQnJpZ2h0XCIgfCBcIm1hZ2VudGFCcmlnaHRcIiB8IFwiY3lhbkJyaWdodFwiIHwgXCJ3aGl0ZUJyaWdodFwiO1xuICAgICAgICBCYWNrZ3JvdW5kQ29sb3I6IFwiYmdCbGFja1wiIHwgXCJiZ1JlZFwiIHwgXCJiZ0dyZWVuXCIgfCBcImJnWWVsbG93XCIgfCBcImJnQmx1ZVwiIHwgXCJiZ01hZ2VudGFcIiB8IFwiYmdDeWFuXCIgfCBcImJnV2hpdGVcIiB8IFwiYmdHcmF5XCIgfCBcImJnR3JleVwiIHwgXCJiZ0JsYWNrQnJpZ2h0XCIgfCBcImJnUmVkQnJpZ2h0XCIgfCBcImJnR3JlZW5CcmlnaHRcIiB8IFwiYmdZZWxsb3dCcmlnaHRcIiB8IFwiYmdCbHVlQnJpZ2h0XCIgfCBcImJnTWFnZW50YUJyaWdodFwiIHwgXCJiZ0N5YW5CcmlnaHRcIiB8IFwiYmdXaGl0ZUJyaWdodFwiO1xuICAgICAgICBNb2RpZmllcnM6IFwicmVzZXRcIiB8IFwiYm9sZFwiIHwgXCJkaW1cIiB8IFwiaXRhbGljXCIgfCBcInVuZGVybGluZVwiIHwgXCJpbnZlcnNlXCIgfCBcImhpZGRlblwiIHwgXCJzdHJpa2V0aHJvdWdoXCIgfCBcInZpc2libGVcIjtcbiAgICAgICAgc3RkZXJyOiBjaGFsay5DaGFsayAmIHtcbiAgICAgICAgICAgIHN1cHBvcnRzQ29sb3I6IGNoYWxrLkNvbG9yU3VwcG9ydCB8IGZhbHNlO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgbmVlZHM6IFNldDxzdHJpbmc+O1xuICAgIG5lZWQoLi4uYXJnczogc3RyaW5nW10pOiB0aGlzO1xuICAgIGNyZWF0ZUNvbW1hbmQobmFtZT86IHN0cmluZyk6IENsaUNvbW1hbmQ7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbGlTZXJ2aWNlIGV4dGVuZHMgQ2xpQ29tbWFuZCB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRpcnM6IFNldDxzdHJpbmc+O1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBlbW1pdHRlcjogRW1taXR0ZXJTZXJ2aWNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIHN0YXRpYyBjcmVhdGUobmFtZT86IHN0cmluZyk6IENsaVNlcnZpY2U7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHRoaXM7XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB0aGlzO1xuICAgIHNldEVtbWl0dGVyKGVtbWl0dGVyOiBFbW1pdHRlclNlcnZpY2UpOiB0aGlzO1xuICAgIGNyZWF0ZUNvbW1hbmQobmFtZT86IHN0cmluZyk6IENsaVNlcnZpY2U7XG4gICAgYWRkRGlyKGRpcjogc3RyaW5nKTogdGhpcztcbiAgICBsb2FkRGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBsb2FkKCk6IFByb21pc2U8dGhpcz47XG59XG4iLCJpbXBvcnQgQ2xpU2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL0NsaVNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJ0ZVRlc3RlclNlcnZpY2UgZXh0ZW5kcyBDbGlTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIGFkZChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGV4ZWN1dGUoYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+O1xufVxuIiwiaW1wb3J0IGNwIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xpV3JhcHBlclNlcnZpY2Uge1xuICAgIHByb2Nlc3M6IGNwLkNoaWxkUHJvY2VzcyB8IG51bGw7XG4gICAgYXBwQmFzZVBhdGg6IHN0cmluZztcbiAgICBlbnY6IE1hcDxzdHJpbmcsIGFueT47XG4gICAgYXJnczogc3RyaW5nW107XG4gICAgY29uZmlnQXJndW1lbnRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGNvbmZpZ0ZpbGVzOiBzdHJpbmdbXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgc3RhdGljIGNyZWF0ZSgpOiBDbGlXcmFwcGVyU2VydmljZTtcbiAgICBzZXRCYXNlUGF0aChwYXRoOiBzdHJpbmcpOiB0aGlzO1xuICAgIHNldERlYnVnKGRlYnVnOiBib29sZWFuKTogdGhpcztcbiAgICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKTogdGhpcztcbiAgICBhZGRDb25maWdBcmd1bWVudChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXM7XG4gICAgYWRkQ29uZmlnRmlsZSguLi5maWxlUGF0aHM6IHN0cmluZ1tdKTogdGhpcztcbiAgICBhZGRFbnYoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB0aGlzO1xuICAgIGxvYWRDb25maWdBcmd1bWVudHMoKTogdm9pZDtcbiAgICBsb2FkQ29uZmlnRmlsZXMoKTogdm9pZDtcbiAgICBsb2FkRW52aXJvbm1lbnQoKTogdm9pZDtcbiAgICBsb2FkQXJndW1lbnRzKGFyZ3M/OiBzdHJpbmdbXSk6IHZvaWQ7XG4gICAga2lsbChjb2RlPzogbnVtYmVyKTogdm9pZDtcbiAgICBydW4oYXJncz86IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBDb25maWdTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvQ29uZmlnU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0ZTU2VydmljZU9wdGlvbnMge1xuICAgIGRpcmVjdG9yeT86IHN0cmluZztcbiAgICBmb3JtYXQ/OiAnanNvbicgfCAneW1sJztcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ0ZTU2VydmljZSBleHRlbmRzIENvbmZpZ1NlcnZpY2Uge1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBmb3JtYXQ6ICdqc29uJyB8ICd5bWwnO1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDb25maWdGU1NlcnZpY2VPcHRpb25zKTtcbiAgICB3cml0ZShlbnRyeTogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHdyaXRlU3luYyhlbnRyeTogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkO1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBwcml2YXRlIHBhcnNlS2V5O1xuICAgIHNldChmdWxsS2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHNvdXJjZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgdW5zZXQoZnVsbEtleTogc3RyaW5nKTogdm9pZDtcbn1cbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBFbnZTY2hlbWEgPSB2LkluZmVyT3V0cHV0PHR5cGVvZiBlbnZTY2hlbWE+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgZW52U2NoZW1hOiB2Lkxvb3NlT2JqZWN0U2NoZW1hPHtcbiAgICByZWFkb25seSBOT0RFX0VOVjogdi5PcHRpb25hbFNjaGVtYTx2LlVuaW9uU2NoZW1hPFt2LkxpdGVyYWxTY2hlbWE8XCJkZXZlbG9wbWVudFwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJwcm9kdWN0aW9uXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcInRlc3RcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIFwiZGV2ZWxvcG1lbnRcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0JBU0VfUEFUSDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfU1RPUkFHRV9QQVRIOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0FQUF9VUkw6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX1BPUlQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBudW1iZXI+XT4sIFwiMzAwMFwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfSE9TVDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCBcIjAuMC4wLjBcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0xPR19MRVZFTDogdi5PcHRpb25hbFNjaGVtYTx2LlBpY2tsaXN0U2NoZW1hPFtcImVycm9yXCIsIFwid2FyblwiLCBcImluZm9cIiwgXCJkZWJ1Z1wiXSwgdW5kZWZpbmVkPiwgXCJpbmZvXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9MSUZFQ1lDTEVfREVCVUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwidHJ1ZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJmYWxzZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCIxXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcIjBcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPFwiMFwiIHwgXCIxXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiwgYm9vbGVhbj4sIHYuQm9vbGVhblNjaGVtYTx1bmRlZmluZWQ+XT4sIFwiZmFsc2VcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NMSUVOVF9DT05GSUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pl0+LCBcIlwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj5dPiwgXCJcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19BUkdVTUVOVFM6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pl0+LCBcIlwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX0ZJTEVTOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZywgc3RyaW5nW10+XT4sIFwiXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfREVCVUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwidHJ1ZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJmYWxzZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCIxXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcIjBcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPFwiMFwiIHwgXCIxXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiwgYm9vbGVhbj4sIHYuQm9vbGVhblNjaGVtYTx1bmRlZmluZWQ+XT4sIFwiZmFsc2VcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19EUklWRVI6IHYuT3B0aW9uYWxTY2hlbWE8di5QaWNrbGlzdFNjaGVtYTxbXCJmc1wiLCBcInMzXCJdLCB1bmRlZmluZWQ+LCBcImZzXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfRlNfUEFUSDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfRlNfRk9STUFUOiB2Lk9wdGlvbmFsU2NoZW1hPHYuUGlja2xpc3RTY2hlbWE8W1wianNvblwiLCBcInltbFwiXSwgdW5kZWZpbmVkPiwgXCJqc29uXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfUzNfQlVDS0VUOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19SRUdJT046IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX1MzX0FDQ0VTU19LRVlfSUQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX1MzX1NFQ1JFVF9BQ0NFU1NfS0VZOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19TRVNTSU9OX1RPS0VOOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19FTkRQT0lOVDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfUzNfUFJFRklYOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIFwiXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9QTFVHSU5TX0RJUlM6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBzdHJpbmdbXT5dPiwgdW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG4iLCJpbXBvcnQgZG90ZW52IGZyb20gJ2RvdGVudic7XG5pbXBvcnQgdHlwZSB7IEVudlNjaGVtYSB9IGZyb20gJyNzZXJ2ZXIvc2NoZW1hcy9lbnZTY2hlbWEudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW52U2VydmljZSB7XG4gICAgcHJpdmF0ZSBlbnY7XG4gICAgcHJpdmF0ZSBmaWxlcztcbiAgICBzdGF0aWMgY3JlYXRlKCk6IEVudlNlcnZpY2U7XG4gICAgc3RhdGljIGRvdEVudkNvbmZpZyhvcHRpb25zPzogZG90ZW52LkRvdGVudkNvbmZpZ09wdGlvbnMpOiBkb3RlbnYuRG90ZW52Q29uZmlnT3V0cHV0O1xuICAgIHNldEZpbGVzKGZpbGVzOiBzdHJpbmdbXSk6IHRoaXM7XG4gICAgYWRkRmlsZShmaWxlOiBzdHJpbmcpOiB0aGlzO1xuICAgIGxvYWQoKTogdGhpcztcbiAgICBnZXQgcHJvZHVjdGlvbigpOiBib29sZWFuO1xuICAgIGdldCBkZXZlbG9wbWVudCgpOiBib29sZWFuO1xuICAgIGdldCB0ZXN0KCk6IGJvb2xlYW47XG4gICAgaGFzPEsgZXh0ZW5kcyBrZXlvZiBFbnZTY2hlbWE+KGtleTogSyk6IGJvb2xlYW47XG4gICAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBFbnZTY2hlbWE+KGtleTogSywgZGVmYXVsdFZhbHVlPzogYW55KTogRW52U2NoZW1hW0tdO1xuICAgIHNldDxLIGV4dGVuZHMga2V5b2YgRW52U2NoZW1hPihrZXk6IEssIHZhbHVlOiBFbnZTY2hlbWFbS10pOiB2b2lkO1xufVxuIiwiaW1wb3J0IHsgdHlwZSBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG5pbXBvcnQgQ29uZmlnU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0NvbmZpZ1NlcnZpY2UudHMnO1xuaW1wb3J0IHR5cGUgRW52U2VydmljZSBmcm9tICcuL0VudlNlcnZpY2UudHMnO1xuZXhwb3J0IGludGVyZmFjZSBDb25maWdNYW5hZ2VyT3B0aW9ucyB7XG4gICAgZW52OiBFbnZTZXJ2aWNlO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBzaWxlbnQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uZmlnTWFuYWdlclNlcnZpY2Uge1xuICAgIGVudjogRW52U2VydmljZTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgc2lsZW50OiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENvbmZpZ01hbmFnZXJPcHRpb25zKTtcbiAgICBzdGF0aWMgY3JlYXRlKG9wdGlvbnM6IENvbmZpZ01hbmFnZXJPcHRpb25zKTogQ29uZmlnTWFuYWdlclNlcnZpY2U7XG4gICAgcHJpdmF0ZSBsb2FkUzNDb25maWc7XG4gICAgcHJpdmF0ZSBsb2FkRlNDb25maWc7XG4gICAgbG9hZENvbmZpZ0Zyb21FbnYoc2VydmljZTogQ29uZmlnU2VydmljZSk6IHZvaWQ7XG4gICAgbG9hZENvbmZpZ0Zyb21GaWxlKHNlcnZpY2U6IENvbmZpZ1NlcnZpY2UsIGZpbGU6IHN0cmluZyk6IHZvaWQ7XG4gICAgbG9hZENvbmZpZ0Zyb21GaWxlcyhzZXJ2aWNlOiBDb25maWdTZXJ2aWNlLCBmaWxlczogc3RyaW5nW10pOiB2b2lkO1xuICAgIGxvYWQoKTogUHJvbWlzZTxDb25maWdTZXJ2aWNlPjtcbn1cbiIsImltcG9ydCBtcyBmcm9tICdtcyc7XG5pbXBvcnQgdHlwZSBEcml2ZUVudHJ5IGZyb20gJyNzaGFyZWQvZW50aXRpZXMvRHJpdmVFbnRyeUVudGl0eS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFVybE9wdGlvbnMge1xuICAgIGV4cGlyZXM/OiBtcy5TdHJpbmdWYWx1ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkVXJsT3B0aW9ucyB7XG4gICAgZXhwaXJlcz86IG1zLlN0cmluZ1ZhbHVlO1xuICAgIG1pbWVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgICBtYXhfc2l6ZT86IG51bWJlcjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlQmFzZUdhdGV3YXkge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQaWNrPERyaXZlQmFzZUdhdGV3YXksICdpZCcgfCAnbmFtZScgfCAnZGVzY3JpcHRpb24nIHwgJ2NvbmZpZyc+KTtcbiAgICBsaXN0KGZvbGRlcj86IHN0cmluZyk6IFByb21pc2U8RHJpdmVFbnRyeVtdPjtcbiAgICBmaW5kKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPERyaXZlRW50cnk+O1xuICAgIGV4aXN0cyhmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICByZWFkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xuICAgIHJlYWRTdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUpTLlJlYWRhYmxlU3RyZWFtPjtcbiAgICB3cml0ZShmaWxlbmFtZTogc3RyaW5nLCBkYXRhOiBVaW50OEFycmF5KTogUHJvbWlzZTx2b2lkPjtcbiAgICB3cml0ZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCBzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVybChmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogVXJsT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbiAgICB1cGxvYWRVcmwoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9ucz86IFVwbG9hZFVybE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG59XG4iLCJpbXBvcnQgeyBTM0NsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgdHlwZSB7IEluZmVyT3V0cHV0IH0gZnJvbSAndmFsaWJvdCc7XG5pbXBvcnQgQmFzZURyaXZlIGZyb20gJyNzZXJ2ZXIvZ2F0ZXdheXMvRHJpdmVCYXNlR2F0ZXdheS50cyc7XG5kZWNsYXJlIGNvbnN0IHNjaGVtYTogaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGJ1Y2tldDogaW1wb3J0KFwidmFsaWJvdFwiKS5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgaW1wb3J0KFwidmFsaWJvdFwiKS5NaW5MZW5ndGhBY3Rpb248c3RyaW5nLCAxLCB1bmRlZmluZWQ+XT47XG4gICAgcmVhZG9ubHkgcmVnaW9uOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgYWNjZXNzS2V5SWQ6IGltcG9ydChcInZhbGlib3RcIikuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW2ltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIGltcG9ydChcInZhbGlib3RcIikuTWluTGVuZ3RoQWN0aW9uPHN0cmluZywgMSwgdW5kZWZpbmVkPl0+O1xuICAgIHJlYWRvbmx5IHNlY3JldEFjY2Vzc0tleTogaW1wb3J0KFwidmFsaWJvdFwiKS5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgaW1wb3J0KFwidmFsaWJvdFwiKS5NaW5MZW5ndGhBY3Rpb248c3RyaW5nLCAxLCB1bmRlZmluZWQ+XT47XG4gICAgcmVhZG9ubHkgc2Vzc2lvblRva2VuOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZW5kcG9pbnQ6IGltcG9ydChcInZhbGlib3RcIikuT3B0aW9uYWxTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBwcmVmaXg6IGltcG9ydChcInZhbGlib3RcIikuT3B0aW9uYWxTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG5leHBvcnQgdHlwZSBTM0RyaXZlQ29uZmlnID0gSW5mZXJPdXRwdXQ8dHlwZW9mIHNjaGVtYT47XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZVMzIGV4dGVuZHMgQmFzZURyaXZlIHtcbiAgICBwcml2YXRlIHNjaGVtYTtcbiAgICBwcml2YXRlIF9jbGllbnQ/O1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBpY2s8QmFzZURyaXZlLCAnaWQnIHwgJ25hbWUnIHwgJ2Rlc2NyaXB0aW9uJyB8ICdjb25maWcnPik7XG4gICAgZ2V0IHZhbGlkKCk6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBjaGVja1ZhbGlkO1xuICAgIHByb3RlY3RlZCBnZXQgYnVja2V0KCk6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgZ2V0IHByZWZpeCgpOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnZXRLZXk7XG4gICAgcHJvdGVjdGVkIGdldCBjbGllbnQoKTogUzNDbGllbnQ7XG4gICAgZXhpc3RzOiBCYXNlRHJpdmVbJ2V4aXN0cyddO1xuICAgIGxpc3Q6IEJhc2VEcml2ZVsnbGlzdCddO1xuICAgIGZpbmQ6IEJhc2VEcml2ZVsnZmluZCddO1xuICAgIG1rZGlyKF9maWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICByZWFkOiBCYXNlRHJpdmVbJ3JlYWQnXTtcbiAgICByZWFkU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gICAgd3JpdGU6IEJhc2VEcml2ZVsnd3JpdGUnXTtcbiAgICB3cml0ZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCBzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlOiBCYXNlRHJpdmVbJ2RlbGV0ZSddO1xuICAgIHVybDogQmFzZURyaXZlWyd1cmwnXTtcbiAgICB1cGxvYWRVcmw6IEJhc2VEcml2ZVsndXBsb2FkVXJsJ107XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgQ29uZmlnU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0NvbmZpZ1NlcnZpY2UudHMnO1xuaW1wb3J0IExvZ2dlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBTM0RyaXZlIGZyb20gJyNzZXJ2ZXIvZ2F0ZXdheXMvRHJpdmVTM0dhdGV3YXkudHMnO1xuaW1wb3J0IHR5cGUgeyBTM0RyaXZlQ29uZmlnIH0gZnJvbSAnI3NlcnZlci9nYXRld2F5cy9Ecml2ZVMzR2F0ZXdheS50cyc7XG5pbnRlcmZhY2UgSW5pdGlPcHRpb25zIGV4dGVuZHMgT21pdDxTM0RyaXZlQ29uZmlnLCAnbmFtZScgfCAnZGVzY3JpcHRpb24nPiB7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBsb2dnZXI/OiBMb2dnZXJTZXJ2aWNlO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uZmlnUzNTZXJ2aWNlIGV4dGVuZHMgQ29uZmlnU2VydmljZSB7XG4gICAgcHJlZml4OiBzdHJpbmc7XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGRyaXZlOiBTM0RyaXZlO1xuICAgIGJ1Y2tldDogc3RyaW5nO1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIGVuZHBvaW50Pzogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEluaXRpT3B0aW9ucyk7XG4gICAgcHJpdmF0ZSBwYXJzZUtleTtcbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD47XG4gICAgc2V0KGZ1bGxLZXk6IHN0cmluZywgdmFsdWU6IGFueSwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICB1bnNldChmdWxsS2V5OiBzdHJpbmcpOiB2b2lkO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBSZXF1ZXN0SW5pdCB9IGZyb20gJ3VuZGljaSc7XG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkZWRGZXRjaE9wdGlvbnMgZXh0ZW5kcyBSZXF1ZXN0SW5pdCB7XG4gICAgcHJveHk/OiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEb3dubG9hZFNlcnZpY2Uge1xuICAgIGZldGNoKHVybDogc3RyaW5nLCBvcHRpb25zPzogRG93bmxvYWRlZEZldGNoT3B0aW9ucyk6IFByb21pc2U8aW1wb3J0KFwidW5kaWNpXCIpLlJlc3BvbnNlPjtcbiAgICBzdHJlYW0odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBEb3dubG9hZGVkRmV0Y2hPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgICAgIHN0cmVhbTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtO1xuICAgICAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIH0+O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBSZWFkU3RyZWFtIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHR5cGUgbXMgZnJvbSAnbXMnO1xuaW1wb3J0IHR5cGUgRHJpdmVFbnRyeSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0RyaXZlRW50cnlFbnRpdHkudHMnO1xuZXhwb3J0IGludGVyZmFjZSBEcml2ZVVybE9wdGlvbnMge1xuICAgIGV4cGlyZXM/OiBtcy5TdHJpbmdWYWx1ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVVcGxvYWRVcmxPcHRpb25zIHtcbiAgICBleHBpcmVzPzogbXMuU3RyaW5nVmFsdWU7XG4gICAgbWltZV90eXBlcz86IHN0cmluZ1tdO1xuICAgIG1heF9zaXplPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBEcml2ZUNvbnRyYWN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBsaXN0KGZvbGRlcj86IHN0cmluZyk6IFByb21pc2U8RHJpdmVFbnRyeVtdPjtcbiAgICBmaW5kKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPERyaXZlRW50cnk+O1xuICAgIGV4aXN0cyhmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICByZWFkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xuICAgIHdyaXRlKGZpbGVuYW1lOiBzdHJpbmcsIGRhdGE6IFVpbnQ4QXJyYXkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHdyaXRlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHN0cmVhbTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgdXJsKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBEcml2ZVVybE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG4gICAgdXBsb2FkVXJsKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBEcml2ZVVwbG9hZFVybE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG4gICAgcmVhZFN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZWFkU3RyZWFtPjtcbn1cbiIsImltcG9ydCBEcml2ZUVudHJ5IGZyb20gJyNzaGFyZWQvZW50aXRpZXMvRHJpdmVFbnRyeUVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IERyaXZlVXJsT3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RyaXZlQ29udHJhY3QudHMnO1xuaW1wb3J0IEJhc2VEcml2ZSBmcm9tICcjc2VydmVyL2dhdGV3YXlzL0RyaXZlQmFzZUdhdGV3YXkudHMnO1xuaW1wb3J0IHR5cGUgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuaW50ZXJmYWNlIFZhbGlkYXRlVXBsb2FkT3B0aW9ucyB7XG4gICAgbWltZV90eXBlczogc3RyaW5nO1xuICAgIG1heFNpemU/OiBudW1iZXI7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZVNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBnYXRld2F5czogTWFwPHN0cmluZywgdHlwZW9mIEJhc2VEcml2ZT47XG4gICAgZHJpdmVzOiBNYXA8c3RyaW5nLCBCYXNlRHJpdmU+O1xuICAgIHNlbGVjdGVkPzogc3RyaW5nO1xuICAgIGRlZmF1bHREcml2ZT86IHN0cmluZztcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgZ2V0IGN1cnJlbnQoKTogQmFzZURyaXZlIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPERyaXZlU2VydmljZT4pO1xuICAgIGxpc3REcml2ZXMoKToge1xuICAgICAgICBkZWZhdWx0OiBib29sZWFuO1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgfVtdO1xuICAgIGdldChuYW1lPzogc3RyaW5nKTogQmFzZURyaXZlO1xuICAgIHVzZShuYW1lPzogc3RyaW5nKTogRHJpdmVTZXJ2aWNlO1xuICAgIGxpc3QoZm9sZGVyPzogc3RyaW5nKTogUHJvbWlzZTxEcml2ZUVudHJ5W10+O1xuICAgIGZpbmQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RHJpdmVFbnRyeT47XG4gICAgZXhpc3RzKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIHJlYWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8VWludDhBcnJheT47XG4gICAgcmVhZFN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xuICAgIHJlYWRBc1RleHQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPjtcbiAgICB3cml0ZShmaWxlbmFtZTogc3RyaW5nLCBwYXlsb2FkOiBVaW50OEFycmF5IHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIHdyaXRlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHN0cmVhbTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtKTogUHJvbWlzZTx2b2lkPjtcbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSBhIFVSTCBmb3IgYSBmaWxlIGluIHRoZSBkcml2ZS5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZCAgRmlsZSBpbnN0YW5jZSwgRmlsZSBJRCwgRHJpdmVFbnRyeSBpbnN0YW5jZSBvciBmaWxlbmFtZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIHVybChmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogRHJpdmVVcmxPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHVwbG9hZFVybChmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogRHJpdmVVcmxPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIC8qKlxuICAgICAqIFVwbG9hZCBhIGZpbGUgZnJvbSB0aGUgbG9jYWwgZmlsZXN5c3RlbSB0byB0aGUgZHJpdmUuXG4gICAgICogQHBhcmFtIHNvdXJjZSBmaWxlbmFtZSBpbiBsb2NhbCBmaWxlc3lzdGVtXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICB1cGxvYWQoc291cmNlOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKlxuICAgICAqIERvd25sb2FkIGEgZmlsZSBmcm9tIHRoZSBkcml2ZSB0byB0aGUgbG9jYWwgZmlsZXN5c3RlbS5cbiAgICAgKiBAcGFyYW0gZmlsZW5hbWUgZmlsZW5hbWUgaW4gdGhlIGRyaXZlXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBkb3dubG9hZChmaWxlbmFtZTogc3RyaW5nLCBkZXN0aW5hdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGNyZWF0ZURlZmF1bHREcml2ZXMoKTogUHJvbWlzZTx2b2lkPjtcbiAgICB2YWxpZGF0ZVVwbG9hZChvcHRpb25zOiBWYWxpZGF0ZVVwbG9hZE9wdGlvbnMsIGZpbGU6IHtcbiAgICAgICAgbWltZXR5cGU6IHN0cmluZztcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgIH0pOiB2b2lkO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBLeXNlbHkgfSBmcm9tIFwia3lzZWx5XCI7XG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdGlvbkVudGl5RGF0YSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIGV4ZWN1dGVkQXQ6IERhdGUgfCBudWxsO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWlncmF0aW9uRW50aXR5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgZXhlY3V0ZWRBdDogRGF0ZSB8IG51bGw7XG4gICAgY29uc3RydWN0b3IoZGF0YTogTWlncmF0aW9uRW50aXlEYXRhKTtcbiAgICB1cChkYjogS3lzZWx5PGFueT4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRvd24oZGI6IEt5c2VseTxhbnk+KTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVxdWVzdCwgUmVzcG9uc2UsIENvb2tpZU9wdGlvbnMgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBCYXNlIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvQ29va2llTWFwRW50aXR5LnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvb2tpZU1hcEVudGl0eSBleHRlbmRzIEJhc2Uge1xuICAgIHJlcXVlc3Q6IFJlcXVlc3Q7XG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICAgIGNvbnN0cnVjdG9yKHJlcXVlc3Q6IFJlcXVlc3QsIHJlc3BvbnNlOiBSZXNwb25zZSk7XG4gICAgc2V0KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgb3B0aW9ucz86IENvb2tpZU9wdGlvbnMpOiB2b2lkO1xufVxuIiwiaW1wb3J0IENvb2tpZU1hcEVudGl0eSBmcm9tIFwiI3NlcnZlci9lbnRpdGllcy9Db29raWVNYXBFbnRpdHkudHNcIjtcbmltcG9ydCBDb250YWluZXJTZXJ2aWNlIGZyb20gXCIjc2hhcmVkL3NlcnZpY2VzL0NvbnRhaW5lclNlcnZpY2UudHNcIjtcbmltcG9ydCB0eXBlIHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB0eXBlIHsgUmVzb2x2YWJsZUhlYWQgfSBmcm9tICdAdW5oZWFkL3Z1ZSc7XG5pbXBvcnQgQ29uZmlnU2VydmljZSBmcm9tIFwiI3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLnRzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eU9wdGlvbnMge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlcXVlc3Q6IFJlcXVlc3Q7XG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICAgIHN0YXRlPzogTWFwPHN0cmluZywgYW55PjtcbiAgICBub2RlQ29udGFpbmVyPzogQ29udGFpbmVyU2VydmljZTtcbiAgICBub2RlQ29uZmlnPzogQ29uZmlnU2VydmljZTtcbiAgICBub2RlU3RhdGU/OiBNYXA8c3RyaW5nLCBhbnk+O1xuICAgIGJyb3dzZXJDb250YWluZXI/OiBDb250YWluZXJTZXJ2aWNlO1xuICAgIGJyb3dzZXJDb25maWc/OiBDb25maWdTZXJ2aWNlO1xuICAgIGJyb3dzZXJTdGF0ZT86IE1hcDxzdHJpbmcsIGFueT47XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHkge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlcXVlc3Q6IFJlcXVlc3Q7XG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICAgIGNvb2tpZXM6IENvb2tpZU1hcEVudGl0eTtcbiAgICBoZWFkOiBSZXNvbHZhYmxlSGVhZFtdO1xuICAgIG5vZGVDb250YWluZXI6IENvbnRhaW5lclNlcnZpY2U7XG4gICAgbm9kZUNvbmZpZzogQ29uZmlnU2VydmljZTtcbiAgICBub2RlU3RhdGU6IE1hcDxzdHJpbmcsIGFueT47XG4gICAgYnJvd3NlckNvbnRhaW5lcjogQ29udGFpbmVyU2VydmljZTtcbiAgICBicm93c2VyQ29uZmlnOiBDb25maWdTZXJ2aWNlO1xuICAgIGJyb3dzZXJTdGF0ZTogTWFwPHN0cmluZywgYW55PjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHlPcHRpb25zKTtcbiAgICBzZXRCcm93c2VyU3RhdGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldE5vZGVTdGF0ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gICAgc2V0U3RhdGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldEJyb3dzZXJDb250YWluZXJWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gICAgc2V0Tm9kZUNvbnRhaW5lclZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgICBzZXRDb250YWluZXJWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gICAgc2V0QnJvd3NlckNvbmZpZ1ZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgICBzZXROb2RlQ29uZmlnVmFsdWUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldENvbmZpZ1ZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbn1cbiIsImltcG9ydCBCYXNlQWNsIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvQWNsRW50aXR5LnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFjbCBleHRlbmRzIEJhc2VBY2wge1xuICAgIGF1dGhvcml6ZShhY3Rpb246IHN0cmluZywgc3ViamVjdDogYW55LCBvYmplY3Q/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZDtcbn1cbiIsImltcG9ydCB0eXBlIEFjbCBmcm9tICcjc2VydmVyL2VudGl0aWVzL0FjbEVudGl0eS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3Qge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2Uge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENvbnRleHQge1xuICAgIHVybDogc3RyaW5nO1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xuICAgIGJvZHk6IGFueTtcbiAgICBjb29raWU6IGFueTtcbiAgICB1cGxvYWQ6IGFueTtcbiAgICBhY2w6IEFjbDtcbiAgICByZXF1ZXN0OiBSZXF1ZXN0O1xuICAgIHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSB7IEh0dHBDb250ZXh0IH0gZnJvbSBcIi4vSHR0cENvbnRleHRDb250cmFjdFwiO1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdCB7XG4gICAgcmVkaXJlY3Q6IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIEhhbmRsZVJlc3VsdCA9IFJlY29yZDxzdHJpbmcsIGFueT4gfCBSZWRpcmVjdCB8IHZvaWQ7XG5leHBvcnQgaW50ZXJmYWNlIE1pZGRsZXdhcmUge1xuICAgIGhhbmRsZShjdHg6IGFueSk6IEhhbmRsZVJlc3VsdCB8IFByb21pc2U8SGFuZGxlUmVzdWx0Pjtcbn1cbnR5cGUgRXh0cmFjdE1pZGRsZXdhcmVDb250ZXh0PE0gZXh0ZW5kcyBNaWRkbGV3YXJlPiA9IEF3YWl0ZWQ8UmV0dXJuVHlwZTxNWydoYW5kbGUnXT4+IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA/IEF3YWl0ZWQ8UmV0dXJuVHlwZTxNWydoYW5kbGUnXT4+IDoge307XG50eXBlIFByb2Nlc3NNaWRkbGV3YXJlQXJyYXk8VCBleHRlbmRzIHJlYWRvbmx5IE1pZGRsZXdhcmVbXT4gPSBUIGV4dGVuZHMgcmVhZG9ubHkgW2luZmVyIEZpcnN0IGV4dGVuZHMgTWlkZGxld2FyZSwgLi4uaW5mZXIgUmVzdCBleHRlbmRzIHJlYWRvbmx5IE1pZGRsZXdhcmVbXV0gPyBFeHRyYWN0TWlkZGxld2FyZUNvbnRleHQ8Rmlyc3Q+ICYgUHJvY2Vzc01pZGRsZXdhcmVBcnJheTxSZXN0PiA6IHt9O1xuZXhwb3J0IHR5cGUgTWlkZGxld2FyZUhhbmRsZVJlc3VsdDxUIGV4dGVuZHMgcmVhZG9ubHkgTWlkZGxld2FyZVtdID0gcmVhZG9ubHkgTWlkZGxld2FyZVtdPiA9IFByb2Nlc3NNaWRkbGV3YXJlQXJyYXk8VD47XG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXI8VCA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICAoY3R4OiBIdHRwQ29udGV4dCAmIFQpOiBQcm9taXNlPGFueT4gfCBhbnk7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSB7IEhhbmRsZXIsIE1pZGRsZXdhcmUgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Sb3V0ZXJDb250cmFjdC50cyc7XG50eXBlIFJvdXRlTWV0aG9kID0gJ2dldCcgfCAnR0VUJyB8ICdwb3N0JyB8ICdQT1NUJyB8ICdwdXQnIHwgJ1BVVCcgfCAncGF0Y2gnIHwgJ1BBVENIJyB8ICdkZWxldGUnIHwgJ0RFTEVURSc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb3V0ZSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIG1ldGhvZDogUm91dGVNZXRob2Q7XG4gICAgaGFuZGxlcjogSGFuZGxlcjxhbnk+IHwgbnVsbDtcbiAgICBtaWRkbGV3YXJlczogTWlkZGxld2FyZVtdO1xuICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbDtcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxSb3V0ZT4pO1xuICAgIHN0YXRpYyBwYXJhbXMocm91dGVQYXRoOiBzdHJpbmcsIHJlcXVlc3RQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHN0YXRpYyBxdWVyeShyZXF1ZXN0UGF0aDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICB0b0pTT04oKToge1xuICAgICAgICBwYXRoOiBzdHJpbmc7XG4gICAgICAgIG1ldGhvZDogUm91dGVNZXRob2Q7XG4gICAgICAgIG1pZGRsZXdhcmVzOiBzdHJpbmdbXTtcbiAgICAgICAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsO1xuICAgIH07XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgUm91dGUgZnJvbSAnI3NlcnZlci9lbnRpdGllcy9Sb3V0ZUVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXIsIE1pZGRsZXdhcmUsIE1pZGRsZXdhcmVIYW5kbGVSZXN1bHQgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Sb3V0ZXJDb250cmFjdC50cyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG50eXBlIFJvdXRlQ29udGV4dCA9ICdnbG9iYWwnIHwgJ2dyb3VwJyB8ICdyb3V0ZSc7XG5pbnRlcmZhY2UgTWlkZGxld2FyZVJlZ2lzdGVyIHtcbiAgICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlO1xuICAgIGNvbnRleHQ6IFJvdXRlQ29udGV4dDtcbn1cbmludGVyZmFjZSBMb2FkT3B0aW9ucyB7XG4gICAgZGVidWc/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJFdmVudHMge1xuICAgICdyb3V0ZXI6cmVnaXN0ZXJlZCc6IHtcbiAgICAgICAgcm91dGVyOiBSb3V0ZXJTZXJ2aWNlO1xuICAgIH07XG4gICAgJ3JvdXRlcjpsb2FkZWQnOiB7XG4gICAgICAgIHJvdXRlcjogUm91dGVyU2VydmljZTtcbiAgICB9O1xufVxuZGVjbGFyZSBjb25zdCBSb3V0ZXJTZXJ2aWNlX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBsaXN0ZW5lcnM6IGltcG9ydChcIiNzaGFyZWQvaW5kZXgudHNcIikuTGlzdGVuZXJbXTtcbiAgICAgICAgb24oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgICAgIG9mZihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgZW1pdChldmVudDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG4gICAgICAgIGVtaXRBc3luYyhldmVudDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD47XG4gICAgfTtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL2luZGV4LnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyU2VydmljZTxDID0ge30+IGV4dGVuZHMgUm91dGVyU2VydmljZV9iYXNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgcm91dGVzOiBSb3V0ZVtdO1xuICAgIG1pZGRsZXdhcmVzOiBNaWRkbGV3YXJlUmVnaXN0ZXJbXTtcbiAgICBwcmVmaXhlczogc3RyaW5nW107XG4gICAgZ3JvdXBzOiBSb3V0ZXJTZXJ2aWNlPGFueT5bXTtcbiAgICBncm91cFByZWZpeGVzOiBzdHJpbmdbXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8Um91dGVyU2VydmljZTxDPj4pO1xuICAgIHVzZTxUIGV4dGVuZHMgTWlkZGxld2FyZT4obWlkZGxld2FyZTogVCwgY29udGV4dD86IFJvdXRlQ29udGV4dCk6IFJvdXRlclNlcnZpY2U8QyAmIE1pZGRsZXdhcmVIYW5kbGVSZXN1bHQ8W3R5cGVvZiBtaWRkbGV3YXJlXT4+O1xuICAgIHByZWZpeChwcmVmaXg6IHN0cmluZyk6IHRoaXM7XG4gICAgbWFrZVBhdGgoYXJnczogc3RyaW5nKTogc3RyaW5nO1xuICAgIGFkZChwYXlsb2FkOiBQaWNrPFJvdXRlLCAncGF0aCcgfCAnbWV0aG9kJyB8ICdoYW5kbGVyJz4pOiB2b2lkO1xuICAgIGdldChwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXI8Qz4pOiB2b2lkO1xuICAgIHBvc3QocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyPEM+KTogdm9pZDtcbiAgICBwdXQocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyPEM+KTogdm9pZDtcbiAgICBwYXRjaChwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXI8Qz4pOiB2b2lkO1xuICAgIG1hbnkobWV0aG9kczogUm91dGVbJ21ldGhvZCddW10sIHBhdGg6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcjxDPik6IHZvaWQ7XG4gICAgZGVsZXRlKHBhdGg6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcjxDPik6IHZvaWQ7XG4gICAgZ3JvdXAoKTogUm91dGVyU2VydmljZTxDPjtcbiAgICByZXNvbHZlKG1ldGhvZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBSb3V0ZSB8IG51bGw7XG4gICAgZXhlY3V0ZShyb3V0ZTogUm91dGUsIGluaXRpYWxDdHg6IGFueSk6IFByb21pc2U8YW55PjtcbiAgICBtYXRjaFBhdGgocm91dGVQYXRoOiBzdHJpbmcsIHJlcXVlc3RQYXRoOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgbGlzdCgpOiBSb3V0ZVtdO1xuICAgIGxvYWQob3B0aW9ucz86IExvYWRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBsb2FkU3luYyhvcHRpb25zPzogTG9hZE9wdGlvbnMpOiB2b2lkO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgSm9iIH0gZnJvbSAnbm9kZS1zY2hlZHVsZSc7XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRpbmVIYW5kbGVyIHtcbiAgICAoKTogdm9pZCB8IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb3V0aW5lRW50aXR5IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNyb246IHN0cmluZztcbiAgICBqb2I/OiBKb2I7XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBoYW5kbGUoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBSb3V0aW5lRW50aXR5IGZyb20gJyNzZXJ2ZXIvZW50aXRpZXMvUm91dGluZUVudGl0eS50cyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIEFkZE9wdGlvbnMge1xuICAgIGlkPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXJTZXJ2aWNlT3B0aW9ucyB7XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlckV2ZW50cyB7XG4gICAgJ3NjaGVkdWxlcjpyZWdpc3RlcmVkJzoge1xuICAgICAgICBzY2hlZHVsZXI6IFNjaGVkdWxlclNlcnZpY2U7XG4gICAgfTtcbiAgICAnc2NoZWR1bGVyOmxvYWRlZCc6IHtcbiAgICAgICAgc2NoZWR1bGVyOiBTY2hlZHVsZXJTZXJ2aWNlO1xuICAgIH07XG4gICAgJ3NjaGVkdWxlcjpib290ZWQnOiB7XG4gICAgICAgIHNjaGVkdWxlcjogU2NoZWR1bGVyU2VydmljZTtcbiAgICB9O1xuICAgICdzY2hlZHVsZXI6c2h1dGRvd25lZCc6IHtcbiAgICAgICAgc2NoZWR1bGVyOiBTY2hlZHVsZXJTZXJ2aWNlO1xuICAgIH07XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlZHVsZXJTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgcm91dGluZXM6IFJvdXRpbmVFbnRpdHlbXTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgZGlyczogc3RyaW5nW107XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IFNjaGVkdWxlclNlcnZpY2VPcHRpb25zKTtcbiAgICBzdGF0aWMgY3JlYXRlKG9wdGlvbnM/OiBTY2hlZHVsZXJTZXJ2aWNlT3B0aW9ucyk6IFNjaGVkdWxlclNlcnZpY2U7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHZvaWQ7XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGFkZERpcihkaXI6IHN0cmluZyk6IHZvaWQ7XG4gICAgYWRkKHJvdXRpbmU6IE9taXQ8Um91dGluZUVudGl0eSwgJ2pvYic+KTogdm9pZDtcbiAgICByZW1vdmUoaWQ6IFJvdXRpbmVFbnRpdHlbJ2lkJ10gfCBSb3V0aW5lRW50aXR5WydpZCddW10pOiB2b2lkO1xuICAgIGxvYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWREaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBoYXMoaWQ6IFJvdXRpbmVFbnRpdHlbJ2lkJ10pOiBib29sZWFuO1xuICAgIHN0YXJ0Um91dGluZShpZDogUm91dGluZUVudGl0eVsnaWQnXSk6IHZvaWQ7XG4gICAgc3RvcFJvdXRpbmUoaWQ6IFJvdXRpbmVFbnRpdHlbJ2lkJ10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGJvb3QoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzaHV0ZG93bigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxpc3QoKTogUm91dGluZUVudGl0eVtdO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBLeXNlbHkgfSBmcm9tIFwia3lzZWx5XCI7XG5leHBvcnQgaW50ZXJmYWNlIFNlZWRlckVudGl5RGF0YSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VlZGVyRW50aXR5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoZGF0YTogU2VlZGVyRW50aXlEYXRhKTtcbiAgICBydW4oZGI6IEt5c2VseTxhbnk+KTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBFbW1pdHRlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9FbW1pdHRlclNlcnZpY2UudHMnO1xuaW1wb3J0IExvZ2dlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgS3lzZWx5IH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCBTZWVkZXJFbnRpdHkgZnJvbSAnI3NlcnZlci9lbnRpdGllcy9TZWVkZXJFbnRpdHkudHMnO1xuZXhwb3J0IGludGVyZmFjZSBTZWVkZXJTb3VyY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIExpc3RGaWx0ZXJzIHtcbiAgICBzb3VyY2U/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBuYW1lPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlZWRlclJlc3VsdCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmcgfCBudWxsO1xuICAgIHJlc3VsdDogJ3N1Y2Nlc3MnIHwgJ2ZhaWxlZCc7XG4gICAgZXJyb3I/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlZWRlckV2ZW50cyB7XG4gICAgJ3NlZWRlcjpiZWZvcmUtcnVuJzoge1xuICAgICAgICBzZWVkZXJzOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgICdzZWVkZXI6YWZ0ZXItcnVuJzoge1xuICAgICAgICBzZWVkZXJzOiBzdHJpbmdbXTtcbiAgICB9O1xufVxuZXhwb3J0IGludGVyZmFjZSBTZWVkZXJTZXJ2aWNlT3B0aW9ucyB7XG4gICAgZGI6IEt5c2VseTxhbnk+O1xuICAgIHNvdXJjZXM/OiBTZWVkZXJTb3VyY2VbXTtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgZW1taXR0ZXI/OiBFbW1pdHRlclNlcnZpY2U7XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlZWVkZXJTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgZW1taXR0ZXI6IEVtbWl0dGVyU2VydmljZTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgZGI6IEt5c2VseTxhbnk+O1xuICAgIHNvdXJjZXM6IFNlZWRlclNvdXJjZVtdO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlZWRlclNlcnZpY2VPcHRpb25zKTtcbiAgICBhZGRTb3VyY2Uoc291cmNlOiBTZWVkZXJTb3VyY2UpOiB2b2lkO1xuICAgIGxpc3RTb3VyY2Uoc291cmNlOiBTZWVkZXJTb3VyY2UpOiBQcm9taXNlPFNlZWRlckVudGl0eVtdPjtcbiAgICBsaXN0KGZpbHRlcnM/OiBMaXN0RmlsdGVycyk6IFByb21pc2U8U2VlZGVyRW50aXR5W10+O1xuICAgIHJ1blNlZWRlcihzZWVkZXI6IFNlZWRlckVudGl0eSk6IFByb21pc2U8U2VlZGVyUmVzdWx0PjtcbiAgICBydW4oZmlsdGVycz86IExpc3RGaWx0ZXJzICYge1xuICAgICAgICBzdGVwcz86IG51bWJlcjtcbiAgICB9KTogUHJvbWlzZTxTZWVkZXJSZXN1bHRbXT47XG59XG4iLCJpbXBvcnQgdHlwZSBNaWdyYXRpb25FbnRpdHkgZnJvbSBcIiNzZXJ2ZXIvZW50aXRpZXMvTWlncmF0aW9uRW50aXR5LnRzXCI7XG5pbXBvcnQgdHlwZSBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHkgZnJvbSBcIiNzZXJ2ZXIvZW50aXRpZXMvUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5LnRzXCI7XG5pbXBvcnQgdHlwZSB7IENsaUV2ZW50cyB9IGZyb20gXCIjc2VydmVyL3NlcnZpY2VzL0NsaVNlcnZpY2UudHNcIjtcbmltcG9ydCB0eXBlIHsgUm91dGVyRXZlbnRzIH0gZnJvbSBcIiNzZXJ2ZXIvc2VydmljZXMvUm91dGVyU2VydmljZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBTY2hlZHVsZXJFdmVudHMgfSBmcm9tIFwiI3NlcnZlci9zZXJ2aWNlcy9TY2hlZHVsZXJTZXJ2aWNlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFNlZWRlckV2ZW50cyB9IGZyb20gXCIjc2VydmVyL3NlcnZpY2VzL1NlZWRlclNlcnZpY2UudHNcIjtcbmltcG9ydCB0eXBlIHsgVXNlckVudGl0eSB9IGZyb20gXCIjc2hhcmVkL2luZGV4LnRzXCI7XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50Q29udHJhY3QgZXh0ZW5kcyBTZWVkZXJFdmVudHMsIFJvdXRlckV2ZW50cywgQ2xpRXZlbnRzLCBTY2hlZHVsZXJFdmVudHMge1xuICAgICdtaWdyYXRvcjpiZWZvcmUtbWlncmF0ZSc6IHtcbiAgICAgICAgbWlncmF0aW9uczogTWlncmF0aW9uRW50aXR5W107XG4gICAgfTtcbiAgICAnbWlncmF0b3I6YWZ0ZXItbWlncmF0ZSc6IHtcbiAgICAgICAgbWlncmF0aW9uczogTWlncmF0aW9uRW50aXR5W107XG4gICAgfTtcbiAgICAnbWlncmF0b3I6YmVmb3JlLXJvbGxiYWNrJzoge1xuICAgICAgICBtaWdyYXRpb25zOiBNaWdyYXRpb25FbnRpdHlbXTtcbiAgICB9O1xuICAgICdtaWdyYXRvcjphZnRlci1yb2xsYmFjayc6IHtcbiAgICAgICAgbWlncmF0aW9uczogTWlncmF0aW9uRW50aXR5W107XG4gICAgfTtcbiAgICAndXNlcjpiZWZvcmUtY3JlYXRlJzoge1xuICAgICAgICB1c2VyOiBVc2VyRW50aXR5O1xuICAgIH07XG4gICAgJ3VzZXI6YWZ0ZXItY3JlYXRlJzoge1xuICAgICAgICB1c2VyOiBVc2VyRW50aXR5O1xuICAgIH07XG4gICAgJ3VzZXI6YmVmb3JlLXVwZGF0ZSc6IHtcbiAgICAgICAgdXNlcjogVXNlckVudGl0eTtcbiAgICB9O1xuICAgICd1c2VyOmFmdGVyLXVwZGF0ZSc6IHtcbiAgICAgICAgdXNlcjogVXNlckVudGl0eTtcbiAgICB9O1xuICAgICd1c2VyOmJlZm9yZS1kZWxldGUnOiB7XG4gICAgICAgIHVzZXI6IFVzZXJFbnRpdHk7XG4gICAgfTtcbiAgICAndXNlcjphZnRlci1kZWxldGUnOiB7XG4gICAgICAgIHVzZXI6IFVzZXJFbnRpdHk7XG4gICAgfTtcbiAgICAncGFnZTpyZXF1ZXN0OnN0YXJ0JzogUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5O1xuICAgICdwYWdlOnJlcXVlc3Q6YmVmb3JlLXJlbmRlcic6IFBhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eTtcbiAgICAncGFnZTpyZXF1ZXN0OmFmdGVyLXJlbmRlcic6IFBhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgQmFzZUVtbWl0dGVyU2VydmljZSBmcm9tIFwiLi4vLi4vc2hhcmVkL3NlcnZpY2VzL0VtbWl0dGVyU2VydmljZVwiO1xuaW1wb3J0IHR5cGUgeyBFdmVudENvbnRyYWN0IH0gZnJvbSAnLi4vY29udHJhY3RzL0V2ZW50Q29udHJhY3QnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW1taXR0ZXJTZXJ2aWNlIGV4dGVuZHMgQmFzZUVtbWl0dGVyU2VydmljZTxFdmVudENvbnRyYWN0PiB7XG59XG4iLCJpbXBvcnQgbXMgZnJvbSAnbXMnO1xuaW1wb3J0IEVudlNlcnZpY2UgZnJvbSAnLi9FbnZTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5pbnRlcmZhY2UgVVJMT3B0aW9ucyB7XG4gICAgZGF0YT86IGFueTtcbiAgICBleHBpcmVzPzogbXMuU3RyaW5nVmFsdWU7XG4gICAgZXhwaXJlQXQ/OiBudW1iZXIgfCBEYXRlO1xufVxuaW50ZXJmYWNlIEVuY3J5cHRTZXJ2aWNlT3B0aW9ucyB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBsb2dnZXI/OiBMb2dnZXJTZXJ2aWNlO1xuICAgIGVudj86IEVudlNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbmNyeXB0U2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGVudjogRW52U2VydmljZTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGdvcml0aG07XG4gICAgcHJpdmF0ZSBrZXk7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogRW5jcnlwdFNlcnZpY2VPcHRpb25zKTtcbiAgICBzdGF0aWMgY3JlYXRlKG9wdGlvbnM6IEVuY3J5cHRTZXJ2aWNlT3B0aW9ucyk6IEVuY3J5cHRTZXJ2aWNlO1xuICAgIHNldERlYnVnKGRlYnVnOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKTogdm9pZDtcbiAgICBzZXRFbnYoZW52OiBFbnZTZXJ2aWNlKTogdm9pZDtcbiAgICBzZXRLZXkoa2V5OiBzdHJpbmcpOiB2b2lkO1xuICAgIGVuY3J5cHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICAgIGRlY3J5cHQob3B0aW9uczogc3RyaW5nKTogc3RyaW5nO1xuICAgIGVuY3J5cHRPYmplY3Qob2JqOiBhbnkpOiBzdHJpbmc7XG4gICAgZGVjcnlwdE9iamVjdDxUPihlbmNyeXB0ZWRTdHJpbmc6IHN0cmluZyk6IFQ7XG4gICAgdXJsKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IFVSTE9wdGlvbnMpOiBzdHJpbmc7XG4gICAgdmVyaWZ5VXJsKGVuY3J5cHRlZEtleTogc3RyaW5nKTogYW55O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IExvZ2dlclNlcnZpY2UgZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuZXhwb3J0IGludGVyZmFjZSBHaXRSZXBvSW5mbyB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgaGVhZDogc3RyaW5nIHwgbnVsbDtcbiAgICBzaG9ydEhhc2g6IHN0cmluZztcbiAgICBpc0RldGFjaGVkSGVhZDogYm9vbGVhbjtcbiAgICByZW1vdGVzOiBzdHJpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2l0R2F0ZXdheU9wdGlvbnMge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIHNzaEtleT86IHN0cmluZztcbiAgICBzc2hLZXlGaWxlPzogc3RyaW5nO1xuICAgIHNzaEtleVRtcEZpbGVOYW1lPzogc3RyaW5nO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG4gICAgZGVidWc/OiBib29sZWFuO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgR2l0R2F0ZXdheSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjd2Q7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzc2hLZXk/O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3NoS2V5RmlsZT87XG4gICAgcHJpdmF0ZSByZWFkb25seSBzc2hLZXlUbXBGaWxlTmFtZT87XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWJ1ZztcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBHaXRHYXRld2F5T3B0aW9ucyk7XG4gICAgcHJpdmF0ZSBidWlsZEVudjtcbiAgICBydW4oYXJnczogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHRyeVJ1bihhcmdzOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICAgIGNoZWNrb3V0KHJlZjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBmZXRjaCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHB1bGwoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBnZXRJbmZvKCk6IFByb21pc2U8R2l0UmVwb0luZm8+O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBHaXRHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheXMvR2l0R2F0ZXdheS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIEdpdEJyYW5jaCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHJlbW90ZTogc3RyaW5nIHwgbnVsbDtcbiAgICBpc0N1cnJlbnQ6IGJvb2xlYW47XG4gICAgaXNSZW1vdGU6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEdpdEJyYW5jaEZldGNoT3B0aW9ucyB7XG4gICAgcmVtb3RlOiBzdHJpbmc7XG4gICAgYnJhbmNoOiBzdHJpbmc7XG4gICAgbG9jYWxOYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgR2l0QnJhbmNoUmVwb3NpdG9yeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBnYXRld2F5O1xuICAgIGNvbnN0cnVjdG9yKGdhdGV3YXk6IEdpdEdhdGV3YXkpO1xuICAgIGxpc3QoKTogUHJvbWlzZTxHaXRCcmFuY2hbXT47XG4gICAgZmV0Y2gob3B0aW9uczogR2l0QnJhbmNoRmV0Y2hPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCB0eXBlIHsgR2l0R2F0ZXdheSB9IGZyb20gJy4uL2dhdGV3YXlzL0dpdEdhdGV3YXkudHMnO1xuZXhwb3J0IGludGVyZmFjZSBHaXRDb21taXRSZWYge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzaG9ydE5hbWU6IHN0cmluZztcbiAgICB0eXBlOiAnYnJhbmNoJyB8ICd0YWcnIHwgJ3JlbW90ZScgfCAnb3RoZXInO1xufVxuZXhwb3J0IGludGVyZmFjZSBHaXRDb21taXQge1xuICAgIGhhc2g6IHN0cmluZztcbiAgICBzaG9ydEhhc2g6IHN0cmluZztcbiAgICBhdXRob3JOYW1lOiBzdHJpbmc7XG4gICAgYXV0aG9yRW1haWw6IHN0cmluZztcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIHJlZnM6IEdpdENvbW1pdFJlZltdO1xufVxuZXhwb3J0IGludGVyZmFjZSBHaXRDb21taXRMaXN0T3B0aW9ucyB7XG4gICAgYnJhbmNoPzogc3RyaW5nO1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgcGVyUGFnZT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkQ29tbWl0cyB7XG4gICAgaXRlbXM6IEdpdENvbW1pdFtdO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgcGFnZTogbnVtYmVyO1xuICAgIHBlclBhZ2U6IG51bWJlcjtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBHaXRDb21taXRSZXBvc2l0b3J5IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdhdGV3YXk7XG4gICAgY29uc3RydWN0b3IoZ2F0ZXdheTogR2l0R2F0ZXdheSk7XG4gICAgbGlzdChvcHRpb25zPzogR2l0Q29tbWl0TGlzdE9wdGlvbnMpOiBQcm9taXNlPFBhZ2luYXRlZENvbW1pdHM+O1xufVxuIiwiaW1wb3J0IEJhc2VMaWZlY3ljbGVTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTGlmZWN5Y2xlU2VydmljZS50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaWZlY3ljbGVTZXJ2aWNlIGV4dGVuZHMgQmFzZUxpZmVjeWNsZVNlcnZpY2Uge1xuICAgIGFkZERpcmVjdG9yeShkaXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBDb2x1bW5UeXBlLCBHZW5lcmF0ZWQgfSBmcm9tICdreXNlbHknO1xuZXhwb3J0IGludGVyZmFjZSBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGRlbGV0ZWRfYXQ/OiBDb2x1bW5UeXBlPERhdGUsIHN0cmluZyB8IHVuZGVmaW5lZCwgbmV2ZXI+IHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGltZXN0YW1wVGFibGUge1xuICAgIGNyZWF0ZWRfYXQ6IENvbHVtblR5cGU8RGF0ZSwgc3RyaW5nIHwgdW5kZWZpbmVkLCBuZXZlcj47XG4gICAgdXBkYXRlZF9hdDogQ29sdW1uVHlwZTxEYXRlLCBzdHJpbmcgfCB1bmRlZmluZWQsIG5ldmVyPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0aW9uc1RhYmxlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbW9kdWxlOiBzdHJpbmcgfCBudWxsO1xuICAgIGV4ZWN1dGVkX2F0OiBDb2x1bW5UeXBlPERhdGUsIHN0cmluZyB8IHVuZGVmaW5lZCwgbmV2ZXI+O1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSwgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHZlcmlmaWVkX2F0PzogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJNZXRhVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSwgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgdXNlcl9pZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgdXNlcl9pZDogbnVtYmVyO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGV4cGlyZXNfYXQ6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJvbGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVUYWJsZSB7XG4gICAgdXNlcl9pZDogbnVtYmVyO1xuICAgIHJvbGVfaWQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvblRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgICBvcmlnaW46IHN0cmluZztcbiAgICBzdWJqZWN0OiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgY29uZGl0aW9uczogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbkFzc2lnbm1lbnRUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHBlcm1pc3Npb25faWQ6IG51bWJlcjtcbiAgICBhc3NpZ25hYmxlX3R5cGU6IHN0cmluZztcbiAgICBhc3NpZ25hYmxlX2lkOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlLCBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICBkcml2ZTogc3RyaW5nO1xuICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgY2xpZW50X25hbWU6IHN0cmluZztcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICBwdWJsaWM6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVNZXRhVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSwgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgZmlsZV9pZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU2Vzc2lvblRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgcHVycG9zZTogc3RyaW5nO1xuICAgIG1pbWVfdHlwZXM6IHN0cmluZztcbiAgICBtYXhfc2l6ZTogbnVtYmVyO1xuICAgIGV4cGlyZXNfYXQ6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSm9iVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBxdWV1ZV9pZDogc3RyaW5nO1xuICAgIHN0YXR1czogJ3BlbmRpbmcnIHwgJ2luX3Byb2dyZXNzJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCc7XG4gICAgZGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICByZXN1bHQ6IHN0cmluZyB8IG51bGw7XG4gICAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIEVtYWlsVGVtcGxhdGVUYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlLCBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc3ViamVjdDogc3RyaW5nO1xuICAgIGtleTogc3RyaW5nO1xuICAgIGJvZHk6IHN0cmluZyB8IG51bGw7XG4gICAgZW5naW5lOiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGludGVyZmFjZSBFbWFpbFRlbXBsYXRlTWV0YVRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHRlbXBsYXRlX2lkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE9hdXRoQWNjb3VudFRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHVzZXJfaWQ6IG51bWJlcjtcbiAgICBwcm92aWRlcjogc3RyaW5nO1xuICAgIHByb3ZpZGVyX3VzZXJfaWQ6IHN0cmluZztcbiAgICBwcm92aWRlcl91c2VyX2VtYWlsOiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGludGVyZmFjZSBPYXV0aFRva2VuVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICB1c2VyX2lkOiBudW1iZXIgfCBudWxsO1xuICAgIHByb3ZpZGVyOiBzdHJpbmcgfCBudWxsO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgZXhwaXJlc19hdDogc3RyaW5nO1xuICAgIG1ldGFkYXRhOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQ29udHJhY3Qge1xuICAgIHVzZXJzOiBVc2VyVGFibGU7XG4gICAgdXNlcl9tZXRhczogVXNlck1ldGFUYWJsZTtcbiAgICB0b2tlbnM6IFRva2VuVGFibGU7XG4gICAgbWlncmF0aW9uczogTWlncmF0aW9uc1RhYmxlO1xuICAgIGZpbGVzOiBGaWxlVGFibGU7XG4gICAgZmlsZV9tZXRhczogRmlsZU1ldGFUYWJsZTtcbiAgICBmaWxlX3VwbG9hZF9zZXNzaW9uczogVXBsb2FkU2Vzc2lvblRhYmxlO1xuICAgIHJvbGVzOiBSb2xlVGFibGU7XG4gICAgdXNlcl9yb2xlczogVXNlclJvbGVUYWJsZTtcbiAgICBwZXJtaXNzaW9uczogUGVybWlzc2lvblRhYmxlO1xuICAgIHBlcm1pc3Npb25zX2Fzc2lnbm1lbnRzOiBQZXJtaXNzaW9uQXNzaWdubWVudFRhYmxlO1xuICAgIGpvYnM6IEpvYlRhYmxlO1xuICAgIGVtYWlsX3RlbXBsYXRlczogRW1haWxUZW1wbGF0ZVRhYmxlO1xuICAgIGVtYWlsX3RlbXBsYXRlX21ldGFzOiBFbWFpbFRlbXBsYXRlTWV0YVRhYmxlO1xuICAgIG9hdXRoX2FjY291bnRzOiBPYXV0aEFjY291bnRUYWJsZTtcbiAgICBvYXV0aF90b2tlbnM6IE9hdXRoVG9rZW5UYWJsZTtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgRXhwcmVzc2lvbkJ1aWxkZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYWZpbHRlciB7XG4gICAgZXE/OiBzdHJpbmc7XG4gICAgbmVxPzogc3RyaW5nO1xuICAgIGxpa2U/OiBzdHJpbmc7XG4gICAgbmxpa2U/OiBzdHJpbmc7XG4gICAgaW4/OiBzdHJpbmdbXTtcbiAgICBuaW4/OiBzdHJpbmdbXTtcbiAgICBndD86IHN0cmluZztcbiAgICBndGU/OiBzdHJpbmc7XG4gICAgbHQ/OiBzdHJpbmc7XG4gICAgbHRlPzogc3RyaW5nO1xuICAgIGlzX251bGw/OiBib29sZWFuO1xuICAgIGV4aXN0cz86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhUXVlcnlQYXlsb2FkIHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBNZXRhZGFmaWx0ZXI7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRhZGF0YVF1ZXJ5U2VydmljZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IHtcbiAgICBwcml2YXRlIHBheWxvYWQ7XG4gICAgcHJpdmF0ZSB0YWJsZTtcbiAgICBwcml2YXRlIGZvcmVpZ25LZXk7XG4gICAgcHJpdmF0ZSBwYXJlbnRLZXk7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZDogTWV0YWRhdGFRdWVyeVBheWxvYWQsIHRhYmxlOiBULCBmb3JlaWduS2V5OiBrZXlvZiBEYXRhYmFzZVtUXSwgcGFyZW50S2V5Pzogc3RyaW5nKTtcbiAgICBnZXQgbmVlZFdoZXJlSW4oKTogYm9vbGVhbjtcbiAgICBnZXQgbmVlZFdoZXJlTm90SW4oKTogYm9vbGVhbjtcbiAgICBhcHBseShkYlF1ZXJ5OiBhbnkpOiBhbnk7XG4gICAgcHJpdmF0ZSBidWlsZFJvd0NvbmRpdGlvbnM7XG4gICAgd2hlcmVJbjogPERCUXVlcnk+KGViOiBFeHByZXNzaW9uQnVpbGRlcjxhbnksIGFueT4pID0+IERCUXVlcnk7XG4gICAgd2hlcmVOb3RJbjogPERCUXVlcnk+KGViOiBFeHByZXNzaW9uQnVpbGRlcjxhbnksIGFueT4pID0+IERCUXVlcnk7XG59XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBNZXRhZGF0YVNlcnZpY2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgdGFibGU6IHN0cmluZztcbiAgICBmb3JlaWduS2V5OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZDogUGljazxNZXRhZGF0YVNlcnZpY2UsICd0YWJsZScgfCAnZm9yZWlnbktleScgfCAnaWQnPik7XG4gICAgc3RhdGljIHBhcnNlKHZhbHVlOiBhbnkpOiBhbnk7XG4gICAgc3RhdGljIGZsYXR0ZW4oaXRlbXM6IEFycmF5PHtcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB2YWx1ZTogYW55O1xuICAgIH0+KTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBnZXQ8VCA9IGFueT4obmFtZTogc3RyaW5nKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgICBnZXQ8VCA9IGFueT4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBQcm9taXNlPFQ+O1xuICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxpc3QoKTogUHJvbWlzZTxBcnJheTx7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgdmFsdWU6IGFueTtcbiAgICB9Pj47XG4gICAgYWxsKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG59XG4iLCJpbXBvcnQgRW1taXR0ZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvRW1taXR0ZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSB7IEt5c2VseSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgTWlncmF0aW9uRW50aXR5IGZyb20gJyNzZXJ2ZXIvZW50aXRpZXMvTWlncmF0aW9uRW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0aW9uU291cmNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZyB8IG51bGw7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBleGVjdXRlZEF0OiBEYXRlIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEZpbHRlcnMge1xuICAgIHNvdXJjZT86IHN0cmluZztcbn1cbmludGVyZmFjZSBNaWdyYXRpb25SZXN1bHQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICByZXN1bHQ6ICdzdWNjZXNzJyB8ICdmYWlsZWQnO1xuICAgIGVycm9yPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRvclNlcnZpY2VPcHRpb25zIHtcbiAgICBzb3VyY2VzOiBNaWdyYXRpb25Tb3VyY2VbXTtcbiAgICBkYjogS3lzZWx5PGFueT47XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGVtbWl0dGVyPzogRW1taXR0ZXJTZXJ2aWNlO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNaWdyYXRvclNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBlbW1pdHRlcjogRW1taXR0ZXJTZXJ2aWNlO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBkYjogS3lzZWx5PGFueT47XG4gICAgc291cmNlczogTWlncmF0aW9uU291cmNlW107XG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogTWlncmF0b3JTZXJ2aWNlT3B0aW9ucyk7XG4gICAgYWRkU291cmNlKHNvdXJjZTogTWlncmF0aW9uU291cmNlKTogdm9pZDtcbiAgICBwcml2YXRlIGVuc3VyZU1pZ3JhdGlvbnNUYWJsZTtcbiAgICBsaXN0U291cmNlKHNvdXJjZTogTWlncmF0aW9uU291cmNlKTogUHJvbWlzZTxNaWdyYXRpb25FbnRpdHlbXT47XG4gICAgbGlzdChmaWx0ZXJzPzogTGlzdEZpbHRlcnMpOiBQcm9taXNlPE1pZ3JhdGlvbkVudGl0eVtdPjtcbiAgICBwcml2YXRlIG1pZ3JhdGVVcDtcbiAgICBwcml2YXRlIG1pZ3JhdGVEb3duO1xuICAgIG1pZ3JhdGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdD47XG4gICAgcm9sbGJhY2tGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdD47XG4gICAgbWlncmF0ZShmaWx0ZXJzPzogTGlzdEZpbHRlcnMgJiB7XG4gICAgICAgIHN0ZXBzPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbiAgICByb2xsYmFjayhmaWx0ZXJzPzogTGlzdEZpbHRlcnMgJiB7XG4gICAgICAgIHN0ZXBzPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbiAgICB1cChzdGVwcz86IG51bWJlciwgZmlsdGVycz86IExpc3RGaWx0ZXJzKTogUHJvbWlzZTxNaWdyYXRpb25SZXN1bHRbXT47XG4gICAgZG93bihzdGVwcz86IG51bWJlciwgZmlsdGVycz86IExpc3RGaWx0ZXJzKTogUHJvbWlzZTxNaWdyYXRpb25SZXN1bHRbXT47XG4gICAgbGF0ZXN0KGZpbHRlcnM/OiBMaXN0RmlsdGVycyk6IFByb21pc2U8TWlncmF0aW9uUmVzdWx0W10+O1xuICAgIGxhdGVzdE9yRmFpbChmaWx0ZXJzPzogTGlzdEZpbHRlcnMpOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbiAgICBmcmVzaChmaWx0ZXJzPzogTGlzdEZpbHRlcnMgJiB7XG4gICAgICAgIHN0ZXBzPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCB0eXBlIElwY01lc3NhZ2U8VCA9IGFueT4gPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBldmVudDogc3RyaW5nO1xuICAgIGRhdGE6IFQ7XG59O1xudHlwZSBJcGNMaXN0ZW5lcjxUID0gYW55PiA9IChkYXRhOiBUKSA9PiB2b2lkO1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgUGx1Z2luSXBjQ2xpZW50IHtcbiAgICBwcml2YXRlIGxpc3RlbmVycztcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIG9uPFQgPSBhbnk+KGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBJcGNMaXN0ZW5lcjxUPik6IHZvaWQ7XG4gICAgb2ZmPFQgPSBhbnk+KGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBJcGNMaXN0ZW5lcjxUPik6IHZvaWQ7XG4gICAgZW1pdDxUID0gYW55PihldmVudDogc3RyaW5nLCBkYXRhPzogVCk6IHN0cmluZztcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbnR5cGUgSXBjTGlzdGVuZXI8VCA9IGFueT4gPSAoZGF0YTogVCkgPT4gdm9pZDtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFBsdWdpbklwY0hvc3Qge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hpbGQ7XG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnM7XG4gICAgY29uc3RydWN0b3IoY2hpbGQ6IENoaWxkUHJvY2Vzcyk7XG4gICAgb248VCA9IGFueT4oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IElwY0xpc3RlbmVyPFQ+KTogdm9pZDtcbiAgICBvZmY8VCA9IGFueT4oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IElwY0xpc3RlbmVyPFQ+KTogdm9pZDtcbiAgICBlbWl0PFQgPSBhbnk+KGV2ZW50OiBzdHJpbmcsIGRhdGE/OiBUKTogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgUGx1Z2luSXBjQ2xpZW50IH0gZnJvbSAnLi9QbHVnaW5JcGNDbGllbnQudHMnO1xuZXhwb3J0IHR5cGUgSHR0cE1ldGhvZCA9ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURSc7XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlRGVmaW5pdGlvbiB7XG4gICAgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgIHBhdGg6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVSZXF1ZXN0IHtcbiAgICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgICBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUmVzcG9uc2VQYXlsb2FkIHtcbiAgICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgICBzdGF0dXM6IG51bWJlcjtcbiAgICBib2R5PzogYW55O1xuICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlcGx5IHtcbiAgICBzdGF0dXMoY29kZTogbnVtYmVyKTogUm91dGVSZXBseTtcbiAgICBzZW5kKGJvZHk/OiBhbnkpOiB2b2lkO1xufVxuZXhwb3J0IHR5cGUgUm91dGVIYW5kbGVyID0gKHJlcTogUm91dGVSZXF1ZXN0LCByZXBseTogUm91dGVSZXBseSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBQbHVnaW5Sb3V0ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50O1xuICAgIHByaXZhdGUgcm91dGVzO1xuICAgIGNvbnN0cnVjdG9yKGNsaWVudDogUGx1Z2luSXBjQ2xpZW50KTtcbiAgICBwcml2YXRlIGRpc3BhdGNoO1xuICAgIHByaXZhdGUgcmVnaXN0ZXI7XG4gICAgZ2V0KHBhdGg6IHN0cmluZywgaGFuZGxlcjogUm91dGVIYW5kbGVyKTogdm9pZDtcbiAgICBwb3N0KHBhdGg6IHN0cmluZywgaGFuZGxlcjogUm91dGVIYW5kbGVyKTogdm9pZDtcbiAgICBwdXQocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBSb3V0ZUhhbmRsZXIpOiB2b2lkO1xuICAgIHBhdGNoKHBhdGg6IHN0cmluZywgaGFuZGxlcjogUm91dGVIYW5kbGVyKTogdm9pZDtcbiAgICBkZWxldGUocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBSb3V0ZUhhbmRsZXIpOiB2b2lkO1xufVxuIiwiaW1wb3J0IHR5cGUgUm91dGVyIGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvUm91dGVyU2VydmljZS50cyc7XG5pbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyRmlsZUJhc2VSb3V0aW5nU2VydmljZSB7XG4gICAgcHJpdmF0ZSBkaXJlY3Rvcnk7XG4gICAgcHJpdmF0ZSBwcmVmaXg7XG4gICAgcHJpdmF0ZSBtb2R1bGU/O1xuICAgIHByaXZhdGUgcm91dGVyO1xuICAgIHByaXZhdGUgbG9nZ2VyO1xuICAgIHByaXZhdGUgcm91dGVzO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIHNldERpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZyk6IHRoaXM7XG4gICAgc2V0UHJlZml4KHByZWZpeDogc3RyaW5nKTogdGhpcztcbiAgICBzZXRSb3V0ZXIocm91dGVyOiBSb3V0ZXIpOiB0aGlzO1xuICAgIHNldE1vZHVsZShtb2R1bGU6IHN0cmluZyk6IHRoaXM7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHRoaXM7XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB0aGlzO1xuICAgIHN0YXRpYyBjcmVhdGUoZGlyZWN0b3J5OiBzdHJpbmcpOiBSb3V0ZXJGaWxlQmFzZVJvdXRpbmdTZXJ2aWNlO1xuICAgIGxvYWRGaWxlcygpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHJlZ2lzdGVyUm91dGVzKCk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIiwiaW1wb3J0IFJvdXRlclNlcnZpY2UgZnJvbSAnLi9Sb3V0ZXJTZXJ2aWNlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyUmVnaXN0ZXJFbnRyeSB7XG4gICAgZmlsZXBhdGg6IHN0cmluZztcbiAgICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlclJlZ2lzdGVyPEMgPSB7fT4gZXh0ZW5kcyBSb3V0ZXJTZXJ2aWNlPEM+IHtcbiAgICBmaWxlczogTWFwPHN0cmluZywgUm91dGVyUmVnaXN0ZXJFbnRyeT47XG4gICAgZGlyczogTWFwPHN0cmluZywgUm91dGVyUmVnaXN0ZXJFbnRyeT47XG4gICAgY29uc3RydWN0b3Iocm91dGVyPzogUGFydGlhbDxSb3V0ZXJTZXJ2aWNlPEM+Pik7XG4gICAgYWRkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkO1xuICAgIGFkZERpcihkaXJuYW1lOiBzdHJpbmcsIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQ7XG4gICAgcHJpdmF0ZSBsb2FkRmlsZTtcbiAgICBwcml2YXRlIGxvYWREaXI7XG4gICAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIiwiaW1wb3J0IHR5cGUgUm91dGVyIGZyb20gJy4vUm91dGVyU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmUgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Sb3V0ZXJDb250cmFjdC50cyc7XG5pbXBvcnQgdHlwZSB7IEh0dHBDb250ZXh0IH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvSHR0cENvbnRleHRDb250cmFjdC50cyc7XG5leHBvcnQgdHlwZSBSZXNvdXJjZU1ldGhvZCA9ICdpbmRleCcgfCAnc2hvdycgfCAnc3RvcmUnIHwgJ3VwZGF0ZScgfCAnZGVzdHJveSc7XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlclJlc291cmNlT3B0aW9ucyB7XG4gICAgbWlkZGxld2FyZT86IFBhcnRpYWw8UmVjb3JkPFJlc291cmNlTWV0aG9kIHwgJ2FsbCcsIE1pZGRsZXdhcmU+PjtcbiAgICBleGNlcHQ/OiBSZXNvdXJjZU1ldGhvZFtdO1xufVxuZGVjbGFyZSBjb25zdCBSb3V0ZXJSZXNvdXJjZVNlcnZpY2VfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGxpc3RlbmVyczogaW1wb3J0KFwiI3NoYXJlZC9taXhpbnMvSG9va3NNaXhpbi50c1wiKS5MaXN0ZW5lcltdO1xuICAgICAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgICAgICAgZW1pdEFzeW5jKGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlclJlc291cmNlU2VydmljZSBleHRlbmRzIFJvdXRlclJlc291cmNlU2VydmljZV9iYXNlIHtcbiAgICBwcml2YXRlIG9wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IFJvdXRlclJlc291cmNlT3B0aW9ucyk7XG4gICAgaW5kZXgoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PjtcbiAgICBzaG93KGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPGFueT47XG4gICAgc3RvcmUoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PjtcbiAgICB1cGRhdGUoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PjtcbiAgICBkZXN0cm95KGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPGFueT47XG4gICAgcHJpdmF0ZSB3cmFwO1xuICAgIHJlZ2lzdGVyKHJvdXRlcjogUm91dGVyKTogdm9pZDtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHMnO1xuZXhwb3J0IHR5cGUgQ29uZmlnTW9kZWwgPSBSZXR1cm5UeXBlPFJldHVyblR5cGU8dHlwZW9mIE1vZGVsQ29uZmlnPj47XG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW9kZWxDb25maWcoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKTogPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKSA9PiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHt9O1xuICAgIF9faXNDb25maWdNb2RlbDogYm9vbGVhbjtcbiAgICBzZXJpYWxpemU8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgcm93OiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGxpc3Q8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFByb21pc2U8VFtdPjtcbiAgICBmaW5kPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgICBmaW5kT3JGYWlsPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFQ+O1xuICAgIGNyZWF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpdGVtOiBUICYge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVwZGF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpZDogc3RyaW5nLCBkYXRhOiBUKTogUHJvbWlzZTx2b2lkPjtcbiAgICB1cGRhdGVPckNyZWF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPFQ+KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZXN0cm95PFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufSAmIFRCYXNlO1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IFJvdXRlclJlc291cmNlU2VydmljZSBmcm9tICcuL1JvdXRlclJlc291cmNlU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSB7IFJvdXRlclJlc291cmNlT3B0aW9ucyB9IGZyb20gJy4vUm91dGVyUmVzb3VyY2VTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgSHR0cENvbnRleHQgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9IdHRwQ29udGV4dENvbnRyYWN0LnRzJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnTW9kZWwgfSBmcm9tICcjc2VydmVyL21peGlucy9Nb2RlbENvbmZpZ01peGluLnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlclJlc291cmNlQ29uZmlnIGV4dGVuZHMgUm91dGVyUmVzb3VyY2VTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG1vZGVsO1xuICAgIGNvbnN0cnVjdG9yKG1vZGVsOiBDb25maWdNb2RlbCwgb3B0aW9ucz86IFJvdXRlclJlc291cmNlT3B0aW9ucyk7XG4gICAgaW5kZXgoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8e1xuICAgICAgICBwYWdlOiBudW1iZXI7XG4gICAgICAgIHRvdGFsOiBudW1iZXI7XG4gICAgICAgIHRvdGFsX3BhZ2VzOiBudW1iZXI7XG4gICAgICAgIGl0ZW1zOiB7fVtdO1xuICAgIH0+O1xuICAgIHNob3coY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8e30+O1xuICAgIHN0b3JlKGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPHtcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH0+O1xuICAgIHVwZGF0ZShjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZXN0cm95KGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPHtcbiAgICAgICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICB9Pjtcbn1cbiIsImltcG9ydCB0eXBlIExvZ2dlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmludGVyZmFjZSBDb21tYW5kT3B0aW9ucyB7XG4gICAgY3dkPzogc3RyaW5nO1xuICAgIGVudj86IE5vZGVKUy5Qcm9jZXNzRW52O1xuICAgIHNoZWxsPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNoZWxsU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBpbml0KGRhdGE/OiBQYXJ0aWFsPFNoZWxsU2VydmljZT4pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gYSBwcm9taXNlXG4gICAgICovXG4gICAgY29tbWFuZChiaW46IHN0cmluZywgYXJnczogc3RyaW5nW10sIG9wdGlvbnM/OiBDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgYW5kIHJldHVybiB0aGUgb3V0cHV0IGFzIGEgc3RyaW5nXG4gICAgICovXG4gICAgZXhlY3V0ZUNvbW1hbmRXaXRoT3V0cHV0KGJpbjogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9ucz86IENvbW1hbmRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBLeXNlbHkgfSBmcm9tICdreXNlbHknO1xuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uPFQgPSBhbnk+IHtcbiAgICBpdGVtczogVFtdO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJfcGFnZTogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmluZE1hbnlPcHRpb25zIHtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIG9yZGVyRGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYycgfCAoJ2FzYycgfCAnZGVzYycpW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlT3B0aW9ucyB7XG4gICAgcGFnZT86IG51bWJlcjtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvcmRlckJ5PzogRmluZE1hbnlPcHRpb25zWydvcmRlckJ5J107XG4gICAgb3JkZXJEaXJlY3Rpb24/OiBGaW5kTWFueU9wdGlvbnNbJ29yZGVyRGlyZWN0aW9uJ107XG59XG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZU1hbnlPcHRpb25zIHtcbiAgICBsaW1pdD86IG51bWJlcjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFiYXNlUmVwb3NpdG9yeTxURW50aXR5ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFByaW1hcnlLZXkgPSBhbnksIFRPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHByb3RlY3RlZCBkYjogS3lzZWx5PGFueT47XG4gICAgcHJvdGVjdGVkIHRhYmxlOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHByaW1hcnlLZXk6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihkYjogS3lzZWx5PGFueT4sIHRhYmxlOiBzdHJpbmcsIHByaW1hcnlLZXk6IHN0cmluZyk7XG4gICAgcXVlcnkob3B0aW9ucz86IHtcbiAgICAgICAgcWI/OiBhbnk7XG4gICAgfSAmIFRPcHRpb25zKTogYW55O1xuICAgIGNvdW50KG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxudW1iZXI+O1xuICAgIGZpbmRNYW55KG9wdGlvbnM/OiBGaW5kTWFueU9wdGlvbnMgJiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eVtdPjtcbiAgICBmaW5kT25lKG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eSB8IG51bGw+O1xuICAgIGZpbmRCeUlkKGlkOiBUUHJpbWFyeUtleSwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5IHwgbnVsbD47XG4gICAgZmluZEJ5SWRPckZhaWwoaWQ6IFRQcmltYXJ5S2V5LCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPE5vbk51bGxhYmxlPEF3YWl0ZWQ8VEVudGl0eT4+PjtcbiAgICBwYWdpbmF0ZShvcHRpb25zPzogUGFnaW5hdGVPcHRpb25zICYgVE9wdGlvbnMpOiBQcm9taXNlPFBhZ2luYXRpb24+O1xuICAgIGNyZWF0ZShkYXRhOiBQYXJ0aWFsPFRFbnRpdHk+KTogUHJvbWlzZTxhbnk+O1xuICAgIGNyZWF0ZU1hbnkoZGF0YTogUGFydGlhbDxURW50aXR5PltdKTogUHJvbWlzZTxhbnlbXT47XG4gICAgdXBkYXRlQnlJZChpZDogVFByaW1hcnlLZXksIGRhdGE6IFBhcnRpYWw8VEVudGl0eT4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlbGV0ZUJ5SWQoaWQ6IFRQcmltYXJ5S2V5KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGVNYW55KG9wdGlvbnM/OiBEZWxldGVNYW55T3B0aW9ucyAmIFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCB0eXBlIENvbmZpZ1NlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGlvbiwgRmluZE1hbnlPcHRpb25zLCBQYWdpbmF0ZU9wdGlvbnMsIERlbGV0ZU1hbnlPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1JlcG9zaXRvcnk8VEVudGl0eSA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHByb3RlY3RlZCBjb25maWc6IENvbmZpZ1NlcnZpY2U7XG4gICAgcHJvdGVjdGVkIGtleTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBwcmltYXJ5S2V5OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBDb25maWdTZXJ2aWNlLCBrZXk6IHN0cmluZywgcHJpbWFyeUtleT86IHN0cmluZyk7XG4gICAgcHJvdGVjdGVkIGdldEl0ZW1zKCk6IFRFbnRpdHlbXTtcbiAgICBwcm90ZWN0ZWQgc2V0SXRlbXMoaXRlbXM6IFRFbnRpdHlbXSk6IHZvaWQ7XG4gICAgcXVlcnkob3B0aW9ucz86IFRPcHRpb25zKTogVEVudGl0eVtdO1xuICAgIGNvdW50KG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcbiAgICBmaW5kTWFueShvcHRpb25zPzogRmluZE1hbnlPcHRpb25zICYgVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHlbXT47XG4gICAgZmluZE9uZShvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHkgfCBudWxsPjtcbiAgICBmaW5kQnlJZChpZDogc3RyaW5nLCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHkgfCBudWxsPjtcbiAgICBmaW5kQnlJZE9yRmFpbChpZDogc3RyaW5nLCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHk+O1xuICAgIHBhZ2luYXRlKG9wdGlvbnM/OiBQYWdpbmF0ZU9wdGlvbnMgJiBUT3B0aW9ucyk6IFByb21pc2U8UGFnaW5hdGlvbjxURW50aXR5Pj47XG4gICAgY3JlYXRlKGRhdGE6IFBhcnRpYWw8VEVudGl0eT4pOiBQcm9taXNlPFRFbnRpdHk+O1xuICAgIGNyZWF0ZU1hbnkoZGF0YTogUGFydGlhbDxURW50aXR5PltdKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIHVwZGF0ZUJ5SWQoaWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxURW50aXR5Pik6IFByb21pc2U8VEVudGl0eT47XG4gICAgZGVsZXRlQnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGVNYW55KG9wdGlvbnM/OiBEZWxldGVNYW55T3B0aW9ucyAmIFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBEYXRhYmFzZVJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmltcG9ydCB0eXBlIHsgTWV0YWRhdGFRdWVyeVBheWxvYWQgfSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL01ldGFkYXRhUXVlcnlTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIEZpbGVFbnRpdHkgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9GaWxlRW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgc2VhcmNoPzogc3RyaW5nO1xuICAgIHB1cnBvc2U/OiBzdHJpbmdbXTtcbiAgICBjbGllbnRfbmFtZT86IHN0cmluZ1tdO1xuICAgIG1ldGFzPzogTWV0YWRhdGFRdWVyeVBheWxvYWQ7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlUmVwb3NpdG9yeSBleHRlbmRzIERhdGFiYXNlUmVwb3NpdG9yeTxGaWxlRW50aXR5LCBGaWxlRW50aXR5WydpZCddLCBGaWxlUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4ge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBGaWxlUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucyk6IGFueTtcbn1cbiIsImltcG9ydCBEYXRhYmFzZVJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmltcG9ydCB0eXBlIHsgUGVybWlzc2lvbkFzc2lnbm1lbnQgfSBmcm9tICcjc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvbkFzc2lnbm1lbnRTY2hlbWEudHMnO1xuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgcGVybWlzc2lvbklkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgYXNzaWduYWJsZUlkPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgYXNzaWduYWJsZVR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeSBleHRlbmRzIERhdGFiYXNlUmVwb3NpdG9yeTxQZXJtaXNzaW9uQXNzaWdubWVudCwgUGVybWlzc2lvbkFzc2lnbm1lbnRbJ2lkJ10sIFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4ge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBQZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnlRdWVyeU9wdGlvbnMpOiBhbnk7XG59XG4iLCJpbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb24gfSBmcm9tICcjc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvblNjaGVtYS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zIHtcbiAgICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICAgIHNlYXJjaD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBlcm1pc3Npb25SZXBvc2l0b3J5IGV4dGVuZHMgRGF0YWJhc2VSZXBvc2l0b3J5PFBlcm1pc3Npb24sIFBlcm1pc3Npb25bJ2lkJ10sIFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zPiB7XG4gICAgY29uc3RydWN0b3IoZGI6IERhdGFiYXNlUmVwb3NpdG9yeVsnZGInXSk7XG4gICAgcXVlcnkob3B0aW9ucz86IFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zKTogYW55O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBGaW5kTWFueU9wdGlvbnMsIFBhZ2luYXRlT3B0aW9ucywgUGFnaW5hdGlvbiB9IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG9zaXRvcnlUeXBlczxURW50aXR5ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFByaW1hcnlLZXlUeXBlID0gYW55LCBUT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb3VudChvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG4gICAgZmluZE1hbnkob3B0aW9ucz86IFRPcHRpb25zICYgRmluZE1hbnlPcHRpb25zKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIGZpbmRCeUlkKGlkOiBUUHJpbWFyeUtleVR5cGUsIG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eSB8IG51bGw+O1xuICAgIGZpbmRCeUlkT3JGYWlsKGlkOiBUUHJpbWFyeUtleVR5cGUsIG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eT47XG4gICAgcGFnaW5hdGUob3B0aW9ucz86IFRPcHRpb25zICYgUGFnaW5hdGVPcHRpb25zKTogUHJvbWlzZTxQYWdpbmF0aW9uPjtcbiAgICBjcmVhdGUoZGF0YTogUGFydGlhbDxURW50aXR5Piwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5PjtcbiAgICBjcmVhdGVNYW55KGRhdGE6IFBhcnRpYWw8VEVudGl0eT5bXSwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIGRlbGV0ZUJ5SWQoaWQ6IFRQcmltYXJ5S2V5VHlwZSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVzdHJveU1hbnkob3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhdGFiYXNlUmVwb3NpdG9yeUluZmVyTWl4aW48VEVudGl0eSA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRQcmltYXJ5S2V5VHlwZSA9IGFueSwgVE9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PigpOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IFRCYXNlICYgQ29uc3RydWN0b3I8SVJlcG9zaXRvcnlUeXBlczxURW50aXR5LCBUUHJpbWFyeUtleVR5cGUsIFRPcHRpb25zPj47XG4iLCJpbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IFRva2VuIH0gZnJvbSAnI3NoYXJlZC9zY2hlbWFzL3Rva2VuU2NoZW1hLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZXBvc2l0b3J5UXVlcnlPcHRpb25zIHtcbiAgICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICAgIHNlYXJjaD86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5kZWNsYXJlIGNvbnN0IFRva2VuUmVwb3NpdG9yeV9iYXNlOiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2luZGV4LnRzXCIpLkNvbnN0cnVjdG9yICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9pbmRleC50c1wiKS5Db25zdHJ1Y3RvcjxpbXBvcnQoXCIjc2VydmVyL21peGlucy9EYXRhYmFzZVJlcG9zaXRvcnlJbmZlck1peGluLnRzXCIpLklSZXBvc2l0b3J5VHlwZXM8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdXNlcl9pZDogbnVtYmVyO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICBleHBpcmVzX2F0OiBzdHJpbmc7XG59LCBudW1iZXIsIFRva2VuUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4+ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9pbmRleC50c1wiKS5Db25zdHJ1Y3Rvcjx7fT4gJiB0eXBlb2YgRGF0YWJhc2VSZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9rZW5SZXBvc2l0b3J5IGV4dGVuZHMgVG9rZW5SZXBvc2l0b3J5X2Jhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBUb2tlblJlcG9zaXRvcnlRdWVyeU9wdGlvbnMpOiBhbnk7XG4gICAgZmluZEJ5VG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VG9rZW4gfCBudWxsPjtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgVXNlclRhYmxlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJy4vRGF0YWJhc2VSZXBvc2l0b3J5JztcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIGlkPzogbnVtYmVyO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXNlclJlcG9zaXRvcnkgZXh0ZW5kcyBEYXRhYmFzZVJlcG9zaXRvcnk8VXNlclRhYmxlLCBzdHJpbmcsIFVzZXJSZXBvc2l0b3J5UXVlcnlPcHRpb25zPiB7XG4gICAgY29uc3RydWN0b3IoZGI6IERhdGFiYXNlUmVwb3NpdG9yeVsnZGInXSk7XG4gICAgcXVlcnkob3B0aW9ucz86IFVzZXJSZXBvc2l0b3J5UXVlcnlPcHRpb25zKTogYW55O1xufVxuIiwiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBCYXNlRHJpdmUgZnJvbSAnI3NlcnZlci9nYXRld2F5cy9Ecml2ZUJhc2VHYXRld2F5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVGU0NvbmZpZyB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZUZTIGV4dGVuZHMgQmFzZURyaXZlIHtcbiAgICBwcml2YXRlIHNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQaWNrPEJhc2VEcml2ZSwgJ2lkJyB8ICduYW1lJyB8ICdkZXNjcmlwdGlvbicgfCAnY29uZmlnJz4pO1xuICAgIGdldCB2YWxpZCgpOiBib29sZWFuO1xuICAgIHByaXZhdGUgY2hlY2tWYWxpZDtcbiAgICBwcm90ZWN0ZWQgZ2V0IHJvb3RQYXRoKCk6IHN0cmluZztcbiAgICBleGlzdHM6IEJhc2VEcml2ZVsnZXhpc3RzJ107XG4gICAgbGlzdDogQmFzZURyaXZlWydsaXN0J107XG4gICAgZmluZDogQmFzZURyaXZlWydmaW5kJ107XG4gICAgbWtkaXIoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgcmVhZDogQmFzZURyaXZlWydyZWFkJ107XG4gICAgcmVhZFN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxmcy5SZWFkU3RyZWFtPjtcbiAgICB3cml0ZTogQmFzZURyaXZlWyd3cml0ZSddO1xuICAgIHdyaXRlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHN0cmVhbTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGU6IEJhc2VEcml2ZVsnZGVsZXRlJ107XG4gICAgdXJsOiBCYXNlRHJpdmVbJ3VybCddO1xuICAgIHVwbG9hZFVybDogQmFzZURyaXZlWyd1cGxvYWRVcmwnXTtcbn1cbiIsImltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB2YWx1ZVRvU3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNZXRhZGF0YTxUYWJsZSBleHRlbmRzIGtleW9mIERhdGFiYXNlPihtZXRhc1RhYmxlOiBUYWJsZSwgZm9yZWlnbktleToga2V5b2YgRGF0YWJhc2VbVGFibGVdKTogPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKSA9PiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gICAgICAgIGdldDxUID0gYW55PihuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCk6IFByb21pc2U8VD47XG4gICAgICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59ICYgVEJhc2U7XG4iLCJpbXBvcnQgdHlwZSB7IEt5c2VseSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGtleSA9IFwiZGF0YWJhc2VcIjtcbmRlY2xhcmUgY29uc3QgZGF0YWJhc2U6IEt5c2VseTxEYXRhYmFzZUNvbnRyYWN0PjtcbmV4cG9ydCBkZWZhdWx0IGRhdGFiYXNlO1xuIiwiaW1wb3J0IHR5cGUgeyBTZWxlY3RhYmxlLCBTZWxlY3RRdWVyeUJ1aWxkZXIsIEV4cHJlc3Npb25CdWlsZGVyIGFzIEtFeHByZXNzaW9uQnVpbGRlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgZGIgZnJvbSAnI3NlcnZlci9mYWNhZGVzL2RhdGFiYXNlLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IHR5cGUgU2VsZWN0RnJvbTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gUmV0dXJuVHlwZTx0eXBlb2YgZGIuc2VsZWN0RnJvbTxUPj4gfCBTZWxlY3RRdWVyeUJ1aWxkZXI8RGF0YWJhc2UsIFQsIGFueT47XG5leHBvcnQgdHlwZSBJbnNlcnRGcm9tPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBSZXR1cm5UeXBlPHR5cGVvZiBkYi5pbnNlcnRJbnRvPFQ+PjtcbmV4cG9ydCB0eXBlIFVwZGF0ZUZyb208VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IFJldHVyblR5cGU8dHlwZW9mIGRiLnVwZGF0ZVRhYmxlPFQ+PjtcbmV4cG9ydCB0eXBlIERlbGV0ZUZyb208VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IFJldHVyblR5cGU8dHlwZW9mIGRiLmRlbGV0ZUZyb208VD4+O1xuZXhwb3J0IHR5cGUgU2VsZWN0QnVpbGRlcjxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gU2VsZWN0UXVlcnlCdWlsZGVyPERhdGFiYXNlLCBULCBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPj47XG5leHBvcnQgdHlwZSBFeHByZXNzaW9uQnVpbGRlcjxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gS0V4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG5vdzogKCkgPT4gaW1wb3J0KFwia3lzZWx5XCIpLlJhd0J1aWxkZXI8c3RyaW5nPjtcbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IHtcbiAgICBzZXJpYWxpemU/OiAocm93OiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPikgPT4gYW55O1xufVxuZXhwb3J0IHR5cGUgU2VyaWFsaXphYmxlUmVzdWx0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4gfCB1bmRlZmluZWQ+ID0gTyBleHRlbmRzIHVuZGVmaW5lZCA/IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+IDogTyBleHRlbmRzIHtcbiAgICBzZXJpYWxpemU6IChyb3c6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+KSA9PiBpbmZlciBSO1xufSA/IFIgOiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPjtcbiIsImltcG9ydCB0eXBlIHsgRXhwcmVzc2lvbkJ1aWxkZXIsIEV4cHJlc3Npb25XcmFwcGVyLCBJbnNlcnRhYmxlIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VsZWN0RnJvbSwgU2VyaWFsaXphYmxlUmVzdWx0LCBTZXJpYWxpemVPcHRpb25zLCBVcGRhdGVGcm9tIH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IGV4dGVuZHMgU2VyaWFsaXplT3B0aW9uczxUPiB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIHdoZXJlPzogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxEYXRhYmFzZSwgVD4pID0+IEV4cHJlc3Npb25XcmFwcGVyPERhdGFiYXNlLCBULCBhbnk+O1xuICAgIHNlbGVjdD86IChxYjogU2VsZWN0RnJvbTxUPikgPT4gU2VsZWN0RnJvbTxUPjtcbiAgICB1cGRhdGU/OiAocWI6IFVwZGF0ZUZyb208VD4pID0+IFVwZGF0ZUZyb208VD47XG4gICAgdmFsdWVzOiBJbnNlcnRhYmxlPERhdGFiYXNlW1RdPiB8IEluc2VydGFibGU8RGF0YWJhc2VbVF0+W107XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cGRhdGVPckNyZWF0ZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBVcGRhdGVPckNyZWF0ZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+PjtcbiIsImltcG9ydCB0eXBlIHsgRXhwcmVzc2lvbkJ1aWxkZXIsIEV4cHJlc3Npb25XcmFwcGVyIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VsZWN0RnJvbSwgU2VyaWFsaXplT3B0aW9ucywgU2VyaWFsaXphYmxlUmVzdWx0IH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIExpc3RPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gZXh0ZW5kcyBTZXJpYWxpemVPcHRpb25zPFQ+IHtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIHdoZXJlPzogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxEYXRhYmFzZSwgVD4pID0+IEV4cHJlc3Npb25XcmFwcGVyPERhdGFiYXNlLCBULCBhbnk+O1xuICAgIHF1ZXJ5PzogKHFiOiBTZWxlY3RGcm9tPFQ+KSA9PiBTZWxlY3RGcm9tPFQ+O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gbGlzdDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBMaXN0T3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTZXJpYWxpemFibGVSZXN1bHQ8VCwgTz5bXT47XG4iLCJpbXBvcnQgdHlwZSB7IEV4cHJlc3Npb25CdWlsZGVyLCBFeHByZXNzaW9uV3JhcHBlciwgU2VsZWN0YWJsZSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdEZyb20gfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvUGFnaW5hdGlvbkVudGl0eS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgcGFnZT86IG51bWJlcjtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvcmRlckJ5PzogRGF0YWJhc2VbVF0gfCAoa2V5b2YgRGF0YWJhc2VbVF0pW107XG4gICAgb3JkZXJEZXNjPzogKCdhc2MnIHwgJ2Rlc2MnKSB8ICgnYXNjJyB8ICdkZXNjJylbXTtcbiAgICB3aGVyZT86IChxYjogRXhwcmVzc2lvbkJ1aWxkZXI8RGF0YWJhc2UsIFQ+KSA9PiBFeHByZXNzaW9uV3JhcHBlcjxEYXRhYmFzZSwgVCwgYW55PjtcbiAgICBzZXJpYWxpemU/OiAocm93OiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPikgPT4gYW55O1xuICAgIHF1ZXJ5PzogKHFiOiBTZWxlY3RGcm9tPFQ+KSA9PiBhbnk7XG59XG5leHBvcnQgdHlwZSBQYWdpbmF0ZVJlc3VsdDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBQYWdpbmF0ZU9wdGlvbnM8VD4gfCB1bmRlZmluZWQ+ID0gTyBleHRlbmRzIHVuZGVmaW5lZCA/IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+IDogTyBleHRlbmRzIHtcbiAgICBzZXJpYWxpemU6IChyb3c6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+KSA9PiBpbmZlciBSO1xufSA/IFIgOiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHBhZ2luYXRlPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFBhZ2luYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxQYWdpbmF0aW9uPFBhZ2luYXRlUmVzdWx0PFQsIE8+Pj47XG4iLCJpbXBvcnQgdHlwZSB7IFNlbGVjdEZyb20gfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4ge1xuICAgIHF1ZXJ5PzogKHFiOiBTZWxlY3RGcm9tPFQ+KSA9PiBTZWxlY3RGcm9tPFQ+O1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNvdW50PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIENvdW50T3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxudW1iZXI+O1xuIiwiaW1wb3J0IHR5cGUgeyBJbnNlcnRhYmxlIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXphYmxlUmVzdWx0LCBTZXJpYWxpemVPcHRpb25zIH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4ge1xuICAgIHZhbHVlczogSW5zZXJ0YWJsZTxEYXRhYmFzZVtUXT47XG4gICAgcHJpbWFyeUtleT86IHN0cmluZztcbiAgICBub3JtYWxpemU/OiBib29sZWFuIHwgKCh2YWx1ZTogYW55KSA9PiBhbnkpO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBDcmVhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjcmVhdGVNeXNxbDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBDcmVhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjcmVhdGU8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgQ3JlYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxpbXBvcnQoXCJreXNlbHlcIikuRHJhaW5PdXRlckdlbmVyaWM8eyBbS18xIGluIChEYXRhYmFzZVtUXSBleHRlbmRzIGluZmVyIFRfMSA/IHsgW0sgaW4ga2V5b2YgVF8xXTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8VF8xW0tdPiBleHRlbmRzIGluZmVyIFRfMiA/IFRfMiBleHRlbmRzIGltcG9ydChcImt5c2VseVwiKS5TZWxlY3RUeXBlPFRfMVtLXT4gPyBUXzIgZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogSyA6IG5ldmVyIDogbmV2ZXI7IH0gOiBuZXZlcilba2V5b2YgRGF0YWJhc2VbVF1dXTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8RGF0YWJhc2VbVF1bS18xXT47IH0+PjtcbiIsImltcG9ydCB0eXBlIHsgVXBkYXRlYWJsZSwgRXhwcmVzc2lvbkJ1aWxkZXIsIEV4cHJlc3Npb25XcmFwcGVyIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlRnJvbSwgU2VyaWFsaXphYmxlUmVzdWx0LCBTZXJpYWxpemVPcHRpb25zIH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4ge1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICB2YWx1ZXM6IFVwZGF0ZWFibGU8RGF0YWJhc2VbVF0+O1xuICAgIG5vcm1hbGl6ZT86IGJvb2xlYW4gfCAoKHZhbHVlOiBhbnkpID0+IGFueSk7XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG4gICAgcXVlcnk/OiAocWI6IFVwZGF0ZUZyb208VD4pID0+IFVwZGF0ZUZyb208VD47XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cGRhdGVEZWZhdWx0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFVwZGF0ZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+W10+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gdXBkYXRlTXlzcWw8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgVXBkYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTZXJpYWxpemFibGVSZXN1bHQ8VCwgTz5bXT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cGRhdGU8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgVXBkYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxpbXBvcnQoXCJreXNlbHlcIikuRHJhaW5PdXRlckdlbmVyaWM8eyBbS18xIGluIChEYXRhYmFzZVtUXSBleHRlbmRzIGluZmVyIFRfMSA/IHsgW0sgaW4ga2V5b2YgVF8xXTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8VF8xW0tdPiBleHRlbmRzIGluZmVyIFRfMiA/IFRfMiBleHRlbmRzIGltcG9ydChcImt5c2VseVwiKS5TZWxlY3RUeXBlPFRfMVtLXT4gPyBUXzIgZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogSyA6IG5ldmVyIDogbmV2ZXI7IH0gOiBuZXZlcilba2V5b2YgRGF0YWJhc2VbVF1dXTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8RGF0YWJhc2VbVF1bS18xXT47IH0+W10+O1xuIiwiaW1wb3J0IHR5cGUgeyBFeHByZXNzaW9uV3JhcHBlciwgRXhwcmVzc2lvbkJ1aWxkZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgZGIgZnJvbSAnI3NlcnZlci9mYWNhZGVzL2RhdGFiYXNlLnRzJztcbnR5cGUgRGVsZXRlRnJvbTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gUmV0dXJuVHlwZTx0eXBlb2YgZGIuZGVsZXRlRnJvbTxUPj47XG5leHBvcnQgaW50ZXJmYWNlIERlc3Ryb3lPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4ge1xuICAgIHF1ZXJ5PzogKHFiOiBEZWxldGVGcm9tPFQ+KSA9PiBEZWxldGVGcm9tPFQ+O1xuICAgIHdoZXJlPzogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxEYXRhYmFzZSwgVD4pID0+IEV4cHJlc3Npb25XcmFwcGVyPERhdGFiYXNlLCBULCBhbnk+O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZGVzdHJveTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBEZXN0cm95T3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgRXhwcmVzc2lvbkJ1aWxkZXIsIEV4cHJlc3Npb25XcmFwcGVyLCBJbnNlcnRhYmxlIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VsZWN0RnJvbSwgU2VyaWFsaXphYmxlUmVzdWx0LCBTZXJpYWxpemVPcHRpb25zIH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIEZpcnN0T3JDcmVhdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gZXh0ZW5kcyBTZXJpYWxpemVPcHRpb25zPFQ+IHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgc2VsZWN0PzogKHFiOiBTZWxlY3RGcm9tPFQ+KSA9PiBTZWxlY3RGcm9tPFQ+O1xuICAgIHdoZXJlPzogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxEYXRhYmFzZSwgVD4pID0+IEV4cHJlc3Npb25XcmFwcGVyPERhdGFiYXNlLCBULCBhbnk+O1xuICAgIHZhbHVlczogSW5zZXJ0YWJsZTxEYXRhYmFzZVtUXT4gfCBJbnNlcnRhYmxlPERhdGFiYXNlW1RdPltdO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZmlyc3RPckNyZWF0ZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBGaXJzdE9yQ3JlYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTZXJpYWxpemFibGVSZXN1bHQ8VCwgTz4+O1xuIiwiaW1wb3J0IHR5cGUgeyBFeHByZXNzaW9uQnVpbGRlciwgRXhwcmVzc2lvbldyYXBwZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RGcm9tLCBTZXJpYWxpemFibGVSZXN1bHQsIFNlcmlhbGl6ZU9wdGlvbnMgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRmluZE9uZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4ge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgcXVlcnk/OiAocWI6IFNlbGVjdEZyb208VD4pID0+IFNlbGVjdEZyb208VD47XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBmaW5kT25lPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIEZpbmRPbmVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPiB8IG51bGw+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZmluZE9uZU9yRmFpbDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBGaW5kT25lT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxOb25OdWxsYWJsZTxBd2FpdGVkPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPj4+PjtcbiIsImltcG9ydCB0eXBlIHsgVXBkYXRlT3JDcmVhdGVPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL3VwZGF0ZU9yQ3JlYXRlLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBMaXN0T3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvcXVlcmllcy9saXN0LnRzJztcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGVPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL3BhZ2luYXRlLnRzJztcbmltcG9ydCB0eXBlIHsgQ291bnRPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL2NvdW50LnRzJztcbmltcG9ydCB0eXBlIHsgQ3JlYXRlT3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvcXVlcmllcy9jcmVhdGUudHMnO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL3VwZGF0ZS50cyc7XG5pbXBvcnQgdHlwZSB7IERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL2Rlc3Ryb3kudHMnO1xuaW1wb3J0IHR5cGUgeyBGaXJzdE9yQ3JlYXRlT3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvcXVlcmllcy9maXJzdE9yQ3JlYXRlLnRzJztcbmltcG9ydCB0eXBlIHsgRmluZE9uZU9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvZmluZE9uZS50cyc7XG5pbXBvcnQgdHlwZSBQYWdpbmF0aW9uIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvUGFnaW5hdGlvbkVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSAna3lzZWx5JztcbmV4cG9ydCB0eXBlIE1vZGVsTGlzdE9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IE9taXQ8TGlzdE9wdGlvbnM8VD4sICdzZXJpYWxpemUnPjtcbmV4cG9ydCB0eXBlIE1vZGVsRmluZE9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IE9taXQ8RmluZE9uZU9wdGlvbnM8VD4sICdzZXJpYWxpemUnIHwgJ29yZGVyQnknPjtcbmV4cG9ydCB0eXBlIE1vZGVsUGFnaW5hdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBPbWl0PFBhZ2luYXRlT3B0aW9uczxUPiwgJ3NlcmlhbGl6ZSc+O1xuZXhwb3J0IHR5cGUgTW9kZWxDb3VudE9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IENvdW50T3B0aW9uczxUPjtcbmV4cG9ydCB0eXBlIE1vZGVsQ3JlYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gT21pdDxDcmVhdGVPcHRpb25zPFQ+LCAnc2VyaWFsaXplJz47XG5leHBvcnQgdHlwZSBNb2RlbFVwZGF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IE9taXQ8VXBkYXRlT3B0aW9uczxUPiwgJ3NlcmlhbGl6ZSc+O1xuZXhwb3J0IHR5cGUgTW9kZWxEZXN0cm95T3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gRGVzdHJveU9wdGlvbnM8VD47XG5leHBvcnQgdHlwZSBNb2RlbEZpcnN0T3JDcmVhdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBPbWl0PEZpcnN0T3JDcmVhdGVPcHRpb25zPFQ+LCAnc2VyaWFsaXplJz47XG5leHBvcnQgdHlwZSBNb2RlbFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gT21pdDxVcGRhdGVPckNyZWF0ZU9wdGlvbnM8VD4sICdzZXJpYWxpemUnPjtcbmV4cG9ydCB0eXBlIE1vZGVsRW50aXR5ID0gUmV0dXJuVHlwZTxSZXR1cm5UeXBlPHR5cGVvZiBNb2RlbE1peGluPGFueT4+PjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vZGVsTWl4aW48VGFibGUgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4odGFibGU6IFRhYmxlLCBwcmltYXJ5S2V5Pzoga2V5b2YgRGF0YWJhc2VbVGFibGVdKTogPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKSA9PiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgc2F2ZSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBkZXN0cm95KCk6IFByb21pc2U8dm9pZD47XG4gICAgICAgIHNvZnREZWxldGUoKTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xuICAgIF9fbW9kZWw6IHtcbiAgICAgICAgdGFibGU6IFRhYmxlO1xuICAgICAgICBwcmltYXJ5S2V5OiBrZXlvZiBEYXRhYmFzZVtUYWJsZV07XG4gICAgfTtcbiAgICBzZXJpYWxpemU8VD4odGhpczogbmV3ICgpID0+IFQsIHJvdzogYW55KTogUHJvbWlzZTxUPjtcbiAgICBzZWxlY3QoKTogU2VsZWN0UXVlcnlCdWlsZGVyPERhdGFiYXNlLCBUYWJsZSwgYW55PjtcbiAgICBwYWdpbmF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IE1vZGVsUGFnaW5hdGVPcHRpb25zPFRhYmxlPik6IFByb21pc2U8UGFnaW5hdGlvbjxUPj47XG4gICAgbGlzdDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IE1vZGVsTGlzdE9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTxUW10+O1xuICAgIGZpbmRPbmU8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBNb2RlbEZpbmRPcHRpb25zPFRhYmxlPik6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gICAgZmluZE9uZU9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IE1vZGVsRmluZE9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTxUIHwgbnVsbD47XG4gICAgZmluZE9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8VD47XG4gICAgZmluZEJ5PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBjb2x1bW46IGtleW9mIERhdGFiYXNlW1RhYmxlXSwgdmFsdWU6IGFueSk6IFByb21pc2U8VD47XG4gICAgZmluZEJ5T3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBjb2x1bW46IGtleW9mIERhdGFiYXNlW1RhYmxlXSwgdmFsdWU6IGFueSk6IFByb21pc2U8VD47XG4gICAgZXhpc3RzPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogTW9kZWxMaXN0T3B0aW9uczxUYWJsZT4pOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGNvdW50PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogTW9kZWxDb3VudE9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTxudW1iZXI+O1xuICAgIGNyZWF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgcGF5bG9hZDogTW9kZWxDcmVhdGVPcHRpb25zPFRhYmxlPltcInZhbHVlc1wiXSk6IFByb21pc2U8VD47XG4gICAgY3JlYXRlTWFueTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgdmFsdWVzOiBBcnJheTxNb2RlbENyZWF0ZU9wdGlvbnM8VGFibGU+W1widmFsdWVzXCJdPik6IFByb21pc2U8VFtdPjtcbiAgICB1cGRhdGU8VD4odGhpczogbmV3ICgpID0+IFQsIG86IE1vZGVsVXBkYXRlT3B0aW9uczxUYWJsZT4pOiBQcm9taXNlPFQ+O1xuICAgIHVwZGF0ZUJ5SWQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnksIHZhbHVlczogTW9kZWxVcGRhdGVPcHRpb25zPFRhYmxlPltcInZhbHVlc1wiXSwgb3B0aW9ucz86IHtcbiAgICAgICAgZGVidWc/OiBib29sZWFuO1xuICAgIH0pOiBQcm9taXNlPFQ+O1xuICAgIGRlc3Ryb3k8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBNb2RlbERlc3Ryb3lPcHRpb25zPFRhYmxlPik6IFByb21pc2U8dm9pZD47XG4gICAgZmlyc3RPckNyZWF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbzogTW9kZWxGaXJzdE9yQ3JlYXRlT3B0aW9uczxUYWJsZT4pOiBUO1xuICAgIHVwZGF0ZU9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIG86IE1vZGVsVXBkYXRlT3JDcmVhdGVPcHRpb25zPFRhYmxlPik6IFQ7XG4gICAgZGVzdHJveUJ5SWQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xufSAmIFRCYXNlO1xuIiwiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG5pbnRlcmZhY2UgUmVsYXRpb24ge1xuICAgIGxvYWQoZW50aXRpZXM6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJlbGF0aW9uPFIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbj4+KHJlbGF0aW9uczogUik6IDxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yPihCYXNlOiBUQmFzZSkgPT4ge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7fTtcbiAgICBsb2FkPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBlbnRpdGllczogVCB8IFRbXSwgbmFtZXM6IGtleW9mIFIgfCAoa2V5b2YgUilbXSk6IFByb21pc2U8dm9pZD47XG59ICYgVEJhc2U7XG5leHBvcnQge307XG4iLCJpbXBvcnQgQ29uZmlnU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0NvbmZpZ1NlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCBjb25maWc6IENvbmZpZ1NlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBjb25maWc7XG4iLCJpbXBvcnQgQ29udGFpbmVyU2VydmljZSBmcm9tIFwiI3NoYXJlZC9zZXJ2aWNlcy9Db250YWluZXJTZXJ2aWNlLnRzXCI7XG5kZWNsYXJlIGNvbnN0IF9kZWZhdWx0OiBDb250YWluZXJTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgX2RlZmF1bHQ7XG4iLCJpbXBvcnQgRG93bmxvYWRTZXJ2aWNlIGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvRG93bmxvYWRTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3QgZG93bmxvYWQ6IERvd25sb2FkU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IGRvd25sb2FkO1xuIiwiaW1wb3J0IERyaXZlU2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL0RyaXZlU2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IGRyaXZlOiBEcml2ZVNlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBkcml2ZTtcbiIsImltcG9ydCB7IEVtbWl0dGVyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xuZGVjbGFyZSBjb25zdCBlbW1pdHRlcjogRW1taXR0ZXJTZXJ2aWNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuZXhwb3J0IGRlZmF1bHQgZW1taXR0ZXI7XG4iLCJpbXBvcnQgRW5jcnlwdFNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9FbmNyeXB0U2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IGVuY3J5cHQ6IEVuY3J5cHRTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgZW5jcnlwdDtcbiIsImltcG9ydCBGaWxlUmVwb3NpdG9yeSBmcm9tIFwiI3NlcnZlci9yZXBvc2l0b3JpZXMvRmlsZVJlcG9zaXRvcnkudHNcIjtcbmRlY2xhcmUgY29uc3QgZmlsZVJlcG9zaXRvcnk6IEZpbGVSZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgZmlsZVJlcG9zaXRvcnk7XG4iLCJpbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iLCJpbXBvcnQgTWlncmF0b3JTZXJ2aWNlIGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvTWlncmF0b3JTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3QgbWlncmF0b3I6IE1pZ3JhdG9yU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IG1pZ3JhdG9yO1xuIiwiaW1wb3J0IFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeSBmcm9tICcjc2VydmVyL3JlcG9zaXRvcmllcy9QZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnkudHMnO1xuZGVjbGFyZSBjb25zdCBwZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnk6IFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeTtcbmV4cG9ydCBkZWZhdWx0IHBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeTtcbiIsImltcG9ydCBQZXJtaXNzaW9uUmVwb3NpdG9yeSBmcm9tICcjc2VydmVyL3JlcG9zaXRvcmllcy9QZXJtaXNzaW9uUmVwb3NpdG9yeS50cyc7XG5kZWNsYXJlIGNvbnN0IHBlcm1pc3Npb25SZXBvc2l0b3J5OiBQZXJtaXNzaW9uUmVwb3NpdG9yeTtcbmV4cG9ydCBkZWZhdWx0IHBlcm1pc3Npb25SZXBvc2l0b3J5O1xuIiwiaW1wb3J0IHR5cGUgeyBIdHRwQ29udGV4dCB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0h0dHBDb250ZXh0Q29udHJhY3QudHMnO1xuaW1wb3J0IFJvdXRlclNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9Sb3V0ZXJTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3Qgcm91dGVyOiBSb3V0ZXJTZXJ2aWNlPEh0dHBDb250ZXh0PjtcbmV4cG9ydCBkZWZhdWx0IHJvdXRlcjtcbiIsImltcG9ydCBTY2hlZHVsZXJTZXJ2aWNlIGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvU2NoZWR1bGVyU2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IHNjaGVkdWxlcjogU2NoZWR1bGVyU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IHNjaGVkdWxlcjtcbiIsImltcG9ydCBTaGVsbFNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9TaGVsbFNlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCBzaGVsbDogU2hlbGxTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgc2hlbGw7XG4iLCJpbXBvcnQgVG9rZW5SZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL1Rva2VuUmVwb3NpdG9yeS50cyc7XG5kZWNsYXJlIGNvbnN0IHRva2VuUmVwb3NpdG9yeTogVG9rZW5SZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgdG9rZW5SZXBvc2l0b3J5O1xuIiwiaW1wb3J0IFVzZXJSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL1VzZXJSZXBvc2l0b3J5LnRzJztcbmRlY2xhcmUgY29uc3QgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgdXNlclJlcG9zaXRvcnk7XG4iLCJpbXBvcnQgdHlwZSB7IEt5c2VseSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgfSBmcm9tICcuL0RhdGFiYXNlQ29udHJhY3QnO1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUt5c2VseSBleHRlbmRzIEt5c2VseTxEYXRhYmFzZUNvbnRyYWN0PiB7XG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIExvYWRlcjxUID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGxvYWQoZW50aXRpZXM6IFRbXSk6IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgaW50ZXJmYWNlIExvYWRlclJlY29yZDxUID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIFtrZXk6IHN0cmluZ106IExvYWRlcjxUPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGRlZmluZUxvYWRlcjxUID0gUmVjb3JkPHN0cmluZywgYW55Pj4obG9hZGVyOiBMb2FkZXI8VD4pOiBMb2FkZXI8VD47XG4iLCJ0eXBlIEtleU9yRnVuY3Rpb248VD4gPSBrZXlvZiBUIHwgKChlbnRpdHk6IFQpID0+IGFueSk7XG5leHBvcnQgaW50ZXJmYWNlIEhhc01hbnlUaHJvdWdoTG9hZGVyT3B0aW9uczxURW50aXR5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRQaXZvdEVudGl0eSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBUVGFyZ2V0RW50aXR5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBwaXZvdDoge1xuICAgICAgICBzb3VyY2VLZXk6IEtleU9yRnVuY3Rpb248VEVudGl0eT47XG4gICAgICAgIHRhcmdldEtleTogS2V5T3JGdW5jdGlvbjxUUGl2b3RFbnRpdHk+O1xuICAgICAgICBmaW5kRW50aXRpZXMoaWRzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxUUGl2b3RFbnRpdHlbXT47XG4gICAgfTtcbiAgICB0YXJnZXQ6IHtcbiAgICAgICAgc291cmNlS2V5OiBLZXlPckZ1bmN0aW9uPFRQaXZvdEVudGl0eT47XG4gICAgICAgIHRhcmdldEtleTogS2V5T3JGdW5jdGlvbjxUVGFyZ2V0RW50aXR5PjtcbiAgICAgICAgZmluZEVudGl0aWVzKGlkczogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8VFRhcmdldEVudGl0eVtdPjtcbiAgICB9O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gbG9hZEhhc01hbnlUaHJvdWdoPFRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFBpdm90RW50aXR5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRUYXJnZXRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ocGF5bG9hZDogYW55IHwgYW55W10sIG9wdGlvbnM6IEhhc01hbnlUaHJvdWdoTG9hZGVyT3B0aW9uczxURW50aXR5LCBUUGl2b3RFbnRpdHksIFRUYXJnZXRFbnRpdHk+KTogUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNyZWF0ZUhhc01hbnlUaHJvdWdoTG9hZGVyPFRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFBpdm90RW50aXR5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRUYXJnZXRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ob3B0aW9uczogSGFzTWFueVRocm91Z2hMb2FkZXJPcHRpb25zPFRFbnRpdHksIFRQaXZvdEVudGl0eSwgVFRhcmdldEVudGl0eT4pOiBpbXBvcnQoXCIjc2VydmVyL3V0aWxzL2RlZmluZUxvYWRlci50c1wiKS5Mb2FkZXI8VEVudGl0eT47XG5leHBvcnQge307XG4iLCJpbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0RyaXZlQ29uZmlnRW50aXR5LnRzJztcbmRlY2xhcmUgY29uc3QgRHJpdmVDb25maWdfYmFzZTogdHlwZW9mIEJhc2UgJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHt9O1xuICAgIF9faXNDb25maWdNb2RlbDogYm9vbGVhbjtcbiAgICBzZXJpYWxpemU8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgcm93OiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGxpc3Q8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFByb21pc2U8VFtdPjtcbiAgICBmaW5kPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgICBmaW5kT3JGYWlsPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFQ+O1xuICAgIGNyZWF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpdGVtOiBUICYge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVwZGF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpZDogc3RyaW5nLCBkYXRhOiBUKTogUHJvbWlzZTx2b2lkPjtcbiAgICB1cGRhdGVPckNyZWF0ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBpZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPFQ+KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZXN0cm95PFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlQ29uZmlnIGV4dGVuZHMgRHJpdmVDb25maWdfYmFzZSB7XG4gICAgc3RhdGljIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCByb3c6IGFueSk6IFByb21pc2U8VD47XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0ZpbGVFbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgeyBEcml2ZVVybE9wdGlvbnMgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Ecml2ZUNvbnRyYWN0LnRzJztcbmludGVyZmFjZSBVUkxDYWNoZSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgZXhwaXJlczogbnVtYmVyO1xufVxuZGVjbGFyZSBjb25zdCBGaWxlX2Jhc2U6IHR5cGVvZiBCYXNlICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGxpc3RlbmVyczogaW1wb3J0KFwiI3NoYXJlZC9taXhpbnMvSG9va3NNaXhpbi50c1wiKS5MaXN0ZW5lcltdO1xuICAgICAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgICAgICAgZW1pdEFzeW5jKGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBzYXZlKCk6IFByb21pc2U8dm9pZD47XG4gICAgICAgIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgc29mdERlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG4gICAgX19tb2RlbDoge1xuICAgICAgICB0YWJsZTogXCJmaWxlc1wiO1xuICAgICAgICBwcmltYXJ5S2V5OiBrZXlvZiBpbXBvcnQoXCIuLi9pbmRleC50c1wiKS5GaWxlVGFibGU7XG4gICAgfTtcbiAgICBzZXJpYWxpemU8VD4odGhpczogbmV3ICgpID0+IFQsIHJvdzogYW55KTogUHJvbWlzZTxUPjtcbiAgICBzZWxlY3QoKTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFF1ZXJ5QnVpbGRlcjxpbXBvcnQoXCIuLi9pbmRleC50c1wiKS5EYXRhYmFzZUNvbnRyYWN0LCBcImZpbGVzXCIsIGFueT47XG4gICAgcGFnaW5hdGU8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsUGFnaW5hdGVPcHRpb25zPFwiZmlsZXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPGltcG9ydChcIi4uLy4uL3NoYXJlZC9pbmRleC50c1wiKS5QYWdpbmF0aW9uRW50aXR5PFQ+PjtcbiAgICBsaXN0PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbExpc3RPcHRpb25zPFwiZmlsZXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFRbXT47XG4gICAgZmluZE9uZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxGaW5kT3B0aW9uczxcImZpbGVzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgICBmaW5kT25lT3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbEZpbmRPcHRpb25zPFwiZmlsZXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFQ+O1xuICAgIGZpbmQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgICBmaW5kT3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kQnk8VD4odGhpczogbmV3ICgpID0+IFQsIGNvbHVtbjoga2V5b2YgaW1wb3J0KFwiLi4vaW5kZXgudHNcIikuRmlsZVRhYmxlLCB2YWx1ZTogYW55KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kQnlPckZhaWw8VD4odGhpczogbmV3ICgpID0+IFQsIGNvbHVtbjoga2V5b2YgaW1wb3J0KFwiLi4vaW5kZXgudHNcIikuRmlsZVRhYmxlLCB2YWx1ZTogYW55KTogUHJvbWlzZTxUPjtcbiAgICBleGlzdHM8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsTGlzdE9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8Ym9vbGVhbj47XG4gICAgY291bnQ8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsQ291bnRPcHRpb25zPFwiZmlsZXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPG51bWJlcj47XG4gICAgY3JlYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBwYXlsb2FkOiBvYmplY3QgJiB7XG4gICAgICAgIGRyaXZlOiBzdHJpbmc7XG4gICAgICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgICAgIGNsaWVudF9uYW1lOiBzdHJpbmc7XG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgcHVibGljOiBib29sZWFuO1xuICAgIH0gJiB7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBjcmVhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB1cGRhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBkZWxldGVkX2F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9KTogUHJvbWlzZTxUPjtcbiAgICBjcmVhdGVNYW55PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCB2YWx1ZXM6IChvYmplY3QgJiB7XG4gICAgICAgIGRyaXZlOiBzdHJpbmc7XG4gICAgICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgICAgIGNsaWVudF9uYW1lOiBzdHJpbmc7XG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgcHVibGljOiBib29sZWFuO1xuICAgIH0gJiB7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBjcmVhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB1cGRhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBkZWxldGVkX2F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9KVtdKTogUHJvbWlzZTxUW10+O1xuICAgIHVwZGF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbFVwZGF0ZU9wdGlvbnM8XCJmaWxlc1wiPik6IFByb21pc2U8VD47XG4gICAgdXBkYXRlQnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSwgdmFsdWVzOiB7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBkcml2ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgbWltZXR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNsaWVudF9uYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBmaWxlbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgcHVycG9zZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgcHVibGljPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgZGVsZXRlZF9hdD86IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgfSwgb3B0aW9ucz86IHtcbiAgICAgICAgZGVidWc/OiBib29sZWFuO1xuICAgIH0gfCB1bmRlZmluZWQpOiBQcm9taXNlPFQ+O1xuICAgIGRlc3Ryb3k8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsRGVzdHJveU9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8dm9pZD47XG4gICAgZmlyc3RPckNyZWF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbEZpcnN0T3JDcmVhdGVPcHRpb25zPFwiZmlsZXNcIj4pOiBUO1xuICAgIHVwZGF0ZU9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIG86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxVcGRhdGVPckNyZWF0ZU9wdGlvbnM8XCJmaWxlc1wiPik6IFQ7XG4gICAgZGVzdHJveUJ5SWQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge307XG4gICAgbG9hZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZW50aXRpZXM6IFQgfCBUW10sIG5hbWVzOiBcIm1ldGFzXCIgfCBcIm1ldGFzXCJbXSk6IFByb21pc2U8dm9pZD47XG59ICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGdldDxUID0gYW55PihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+O1xuICAgICAgICBnZXQ8VCA9IGFueT4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBQcm9taXNlPFQ+O1xuICAgICAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGUgZXh0ZW5kcyBGaWxlX2Jhc2Uge1xuICAgIHN0YXRpYyBjYWNoZTogTWFwPHN0cmluZywgVVJMQ2FjaGU+O1xuICAgIHN0YXRpYyBoYXMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG4gICAgc3RhdGljIGZpbmRCeUZpbGVuYW1lKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGUgfCB1bmRlZmluZWQ+O1xuICAgIHJlYWRTdHJlYW0oKTogUHJvbWlzZTxOb2RlSlMuUmVhZGFibGVTdHJlYW0+O1xuICAgIHJlYWQoKTogUHJvbWlzZTxVaW50OEFycmF5PEFycmF5QnVmZmVyTGlrZT4+O1xuICAgIGxvYWRVcmwob3B0aW9ucz86IERyaXZlVXJsT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgc3RhdGljIGxvYWRVcmxzKGl0ZW1zOiBGaWxlW10sIG9wdGlvbnM/OiBEcml2ZVVybE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHN0YXRpYyBsb2FkTWV0YXMoaXRlbXM6IEZpbGVbXSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlRnJvbURyaXZlKCk6IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgQmFzZU1ldGEgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9GaWxlTWV0YUVudGl0eS50cyc7XG5kZWNsYXJlIGNvbnN0IEZpbGVNZXRhX2Jhc2U6IHR5cGVvZiBCYXNlTWV0YSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBzYXZlKCk6IFByb21pc2U8dm9pZD47XG4gICAgICAgIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgc29mdERlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG4gICAgX19tb2RlbDoge1xuICAgICAgICB0YWJsZTogXCJmaWxlX21ldGFzXCI7XG4gICAgICAgIHByaW1hcnlLZXk6IGtleW9mIGltcG9ydChcIi4uXCIpLkZpbGVNZXRhVGFibGU7XG4gICAgfTtcbiAgICBzZXJpYWxpemU8VD4odGhpczogbmV3ICgpID0+IFQsIHJvdzogYW55KTogUHJvbWlzZTxUPjtcbiAgICBzZWxlY3QoKTogaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFF1ZXJ5QnVpbGRlcjxpbXBvcnQoXCIuLlwiKS5EYXRhYmFzZUNvbnRyYWN0LCBcImZpbGVfbWV0YXNcIiwgYW55PjtcbiAgICBwYWdpbmF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxQYWdpbmF0ZU9wdGlvbnM8XCJmaWxlX21ldGFzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxpbXBvcnQoXCIuLi8uLi9zaGFyZWRcIikuUGFnaW5hdGlvbkVudGl0eTxUPj47XG4gICAgbGlzdDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxMaXN0T3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFRbXT47XG4gICAgZmluZE9uZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxGaW5kT3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+O1xuICAgIGZpbmRPbmVPckZhaWw8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsRmluZE9wdGlvbnM8XCJmaWxlX21ldGFzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxUPjtcbiAgICBmaW5kPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTxUIHwgbnVsbD47XG4gICAgZmluZE9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8VD47XG4gICAgZmluZEJ5PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBjb2x1bW46IGtleW9mIGltcG9ydChcIi4uXCIpLkZpbGVNZXRhVGFibGUsIHZhbHVlOiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGZpbmRCeU9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgY29sdW1uOiBrZXlvZiBpbXBvcnQoXCIuLlwiKS5GaWxlTWV0YVRhYmxlLCB2YWx1ZTogYW55KTogUHJvbWlzZTxUPjtcbiAgICBleGlzdHM8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsTGlzdE9wdGlvbnM8XCJmaWxlX21ldGFzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICBjb3VudDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxDb3VudE9wdGlvbnM8XCJmaWxlX21ldGFzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxudW1iZXI+O1xuICAgIGNyZWF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgcGF5bG9hZDogb2JqZWN0ICYge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGZpbGVfaWQ6IG51bWJlcjtcbiAgICB9ICYge1xuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBjcmVhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB1cGRhdGVkX2F0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBkZWxldGVkX2F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9KTogUHJvbWlzZTxUPjtcbiAgICBjcmVhdGVNYW55PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCB2YWx1ZXM6IChvYmplY3QgJiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgZmlsZV9pZDogbnVtYmVyO1xuICAgIH0gJiB7XG4gICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0pW10pOiBQcm9taXNlPFRbXT47XG4gICAgdXBkYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvOiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsVXBkYXRlT3B0aW9uczxcImZpbGVfbWV0YXNcIj4pOiBQcm9taXNlPFQ+O1xuICAgIHVwZGF0ZUJ5SWQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnksIHZhbHVlczoge1xuICAgICAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBmaWxlX2lkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBkZWxldGVkX2F0PzogbnVsbCB8IHVuZGVmaW5lZDtcbiAgICB9LCBvcHRpb25zPzoge1xuICAgICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfSB8IHVuZGVmaW5lZCk6IFByb21pc2U8VD47XG4gICAgZGVzdHJveTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxEZXN0cm95T3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGZpcnN0T3JDcmVhdGU8VD4odGhpczogbmV3ICgpID0+IFQsIG86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxGaXJzdE9yQ3JlYXRlT3B0aW9uczxcImZpbGVfbWV0YXNcIj4pOiBUO1xuICAgIHVwZGF0ZU9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIG86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxVcGRhdGVPckNyZWF0ZU9wdGlvbnM8XCJmaWxlX21ldGFzXCI+KTogVDtcbiAgICBkZXN0cm95QnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8dm9pZD47XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZU1ldGEgZXh0ZW5kcyBGaWxlTWV0YV9iYXNlIHtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IEdpdEdhdGV3YXkgfSBmcm9tICcjc2VydmVyL2dhdGV3YXlzL0dpdEdhdGV3YXkudHMnO1xuaW1wb3J0IEJhc2UgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9Nb2R1bGVFbnRpdHkudHMnO1xuaW1wb3J0IHNoZWxsIGZyb20gJyNzZXJ2ZXIvZmFjYWRlcy9zaGVsbC50cyc7XG5kZWNsYXJlIGNvbnN0IE1vZHVsZV9iYXNlOiB0eXBlb2YgQmFzZTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZHVsZSBleHRlbmRzIE1vZHVsZV9iYXNlIHtcbiAgICBnZXQgZ2l0KCk6IEdpdEdhdGV3YXk7XG4gICAgbWFrZVBhdGgoLi4ucGFydHM6IHN0cmluZ1tdKTogc3RyaW5nO1xuICAgIHN0YXRpY1BhdGgoLi4ucGFydHM6IHN0cmluZ1tdKTogc3RyaW5nO1xuICAgIGNvbW1hbmQ6IHR5cGVvZiBzaGVsbC5jb21tYW5kO1xuICAgIGxvYWQoKTogdm9pZDtcbiAgICBmaW5kQ2xpZW50RW50cnlwb2ludEZpbGVuYW1lKGNvbnRleHQ/OiAnZGV2JyB8ICdub2RlJyB8ICdicm93c2VyJyk6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL1BsdWdpbkVudGl0eS50cyc7XG5kZWNsYXJlIGNvbnN0IFBsdWdpbkVudHJ5RW50aXR5X2Jhc2U6IHR5cGVvZiBCYXNlO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luRW50cnlFbnRpdHkgZXh0ZW5kcyBQbHVnaW5FbnRyeUVudGl0eV9iYXNlIHtcbiAgICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtYWtlUGF0aCguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmc7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgUGx1Z2luRW50cnlFbnRpdHkgZnJvbSAnLi9QbHVnaW5FbnRyeUVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IFJvdXRlckV2ZW50cyB9IGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvUm91dGVyU2VydmljZS50cyc7XG5pbnRlcmZhY2UgQWRkQXBpRm9sZGVyT3B0aW9ucyB7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luRW50aXR5IGV4dGVuZHMgUGx1Z2luRW50cnlFbnRpdHkge1xuICAgIGFwaUZvbGRlcnM6IE1hcDxzdHJpbmcsIEFkZEFwaUZvbGRlck9wdGlvbnM+O1xuICAgIGFwaURpcmVjdG9yaWVzOiBTZXQ8c3RyaW5nPjtcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIHN0YXRpY1BhdGgoLi4ucGFydHM6IHN0cmluZ1tdKTogc3RyaW5nO1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBvblJvdXRlclJlZ2lzdGVyZWQoY3R4OiBSb3V0ZXJFdmVudHNbJ3JvdXRlcjpyZWdpc3RlcmVkJ10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGFkZEFwaUZvbGRlcihkaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9ucz86IEFkZEFwaUZvbGRlck9wdGlvbnMpOiB2b2lkO1xuICAgIGFkZFJvdXRlckZvbGRlcihkaXJlY3Rvcnk6IHN0cmluZyk6IHZvaWQ7XG4gICAgc3RhdGljIGZyb21QbHVnaW5EaXNjb3ZlckVudGl0eTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZW50aXR5OiBQbHVnaW5FbnRyeUVudGl0eSk6IFQ7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSB7IExpc3RPcHRpb25zIH0gZnJvbSAnLi9saXN0LnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZXhpc3RzPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIExpc3RPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPGJvb2xlYW4+O1xuIiwiZGVjbGFyZSBtb2R1bGUgJ2t5c2VseScge1xuICAgIGludGVyZmFjZSBDcmVhdGVUYWJsZUJ1aWxkZXI8VEIgZXh0ZW5kcyBzdHJpbmcsIEMgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlcj4ge1xuICAgICAgICBhZGRJZENvbHVtbjxDTiBleHRlbmRzIHN0cmluZyA9ICdpZCc+KGNvbD86IENOKTogQ3JlYXRlVGFibGVCdWlsZGVyPFRCLCBDIHwgQ04+O1xuICAgIH1cbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IENyZWF0ZVRhYmxlQnVpbGRlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IENvbHVtblR5cGUsIEV4cHJlc3Npb25CdWlsZGVyIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VsZWN0YWJsZSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgeyBub3cgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmltcG9ydCBkYiBmcm9tICcjc2VydmVyL2ZhY2FkZXMvZGF0YWJhc2UudHMnO1xudHlwZSBXaGVyZUNhcGFibGU8UUI+ID0ge1xuICAgIHdoZXJlOiAoLi4uYXJnczogYW55W10pID0+IFFCO1xufTtcbnR5cGUgVXBkYXRlRnJvbTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gUmV0dXJuVHlwZTx0eXBlb2YgZGIudXBkYXRlVGFibGU8VD4+O1xuZXhwb3J0IGludGVyZmFjZSBTb2Z0RGVsZXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IHtcbiAgICBzZXJpYWxpemU/OiAocm93OiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPikgPT4gYW55O1xuICAgIHF1ZXJ5OiAocWI6IFVwZGF0ZUZyb208VD4pID0+IFVwZGF0ZUZyb208VD47XG59XG5leHBvcnQgdHlwZSBTb2Z0RGVsZXRlUmVzdWx0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFNvZnREZWxldGVPcHRpb25zPFQ+IHwgdW5kZWZpbmVkPiA9IE8gZXh0ZW5kcyB1bmRlZmluZWQgPyBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPltdIDogTyBleHRlbmRzIHtcbiAgICBzZXJpYWxpemU6IChyb3c6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+KSA9PiBpbmZlciBSO1xufSA/IFJbXSA6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+W107XG5leHBvcnQgaW50ZXJmYWNlIFNvZnREZWxldGVUYWJsZSB7XG4gICAgZGVsZXRlZF9hdDogQ29sdW1uVHlwZTxEYXRlIHwgbnVsbCwgbmV2ZXIgfCBudWxsIHwgUmV0dXJuVHlwZTx0eXBlb2Ygbm93Piwgc3RyaW5nIHwgbnVsbCB8IFJldHVyblR5cGU8dHlwZW9mIG5vdz4+O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gd2hlcmVOb3REZWxldGVkPFFCIGV4dGVuZHMgV2hlcmVDYXBhYmxlPFFCPj4ocWI6IFFCKTogUUI7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1bmRlbGV0ZWQocWI6IEV4cHJlc3Npb25CdWlsZGVyPGFueSwgYW55Pik6IGltcG9ydChcImt5c2VseVwiKS5FeHByZXNzaW9uV3JhcHBlcjxhbnksIGFueSwgaW1wb3J0KFwia3lzZWx5XCIpLlNxbEJvb2w+O1xuZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIHVuZGVsZXRlZCB7XG4gICAgdmFyIGNvbHVtbjogKGNvbDogc3RyaW5nKSA9PiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPGFueSwgYW55PikgPT4gaW1wb3J0KFwia3lzZWx5XCIpLkV4cHJlc3Npb25XcmFwcGVyPGFueSwgYW55LCBpbXBvcnQoXCJreXNlbHlcIikuU3FsQm9vbD47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBkZWxldGVkOiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPGFueSwgYW55PikgPT4gaW1wb3J0KFwia3lzZWx5XCIpLkV4cHJlc3Npb25XcmFwcGVyPGFueSwgYW55LCBpbXBvcnQoXCJreXNlbHlcIikuU3FsQm9vbD47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBhZGRTb2Z0RGVsZXRlQ29sdW1uOiAoY3RiOiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+KSA9PiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gc29mdERlbGV0ZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBTb2Z0RGVsZXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTb2Z0RGVsZXRlUmVzdWx0PFQsIE8+PjtcbmRlY2xhcmUgbW9kdWxlICdreXNlbHknIHtcbiAgICBpbnRlcmZhY2UgQ3JlYXRlVGFibGVCdWlsZGVyPFRCIGV4dGVuZHMgc3RyaW5nLCBDIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXI+IHtcbiAgICAgICAgYWRkU29mdERlbGV0ZUNvbHVtbigpOiBDcmVhdGVUYWJsZUJ1aWxkZXI8VEIsIEMgfCAnZGVsZXRlZF9hdCc+O1xuICAgIH1cbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IENyZWF0ZVRhYmxlQnVpbGRlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IENvbHVtblR5cGUgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHsgbm93IH0gZnJvbSAnLi9jb21tb24udHMnO1xuZXhwb3J0IGludGVyZmFjZSBUaW1lc3RhbXBUYWJsZSB7XG4gICAgY3JlYXRlZF9hdDogQ29sdW1uVHlwZTxEYXRlLCBzdHJpbmcgfCB1bmRlZmluZWQsIG5ldmVyPjtcbiAgICB1cGRhdGVkX2F0OiBDb2x1bW5UeXBlPERhdGUsIHN0cmluZyB8IHVuZGVmaW5lZCwgRGF0ZSB8IHN0cmluZyB8IFJldHVyblR5cGU8dHlwZW9mIG5vdz4+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgYWRkQ3JlYXRlZENvbHVtbjogKGN0YjogQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PikgPT4gQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGFkZFVwZGF0ZWRDb2x1bW46IChjdGI6IENyZWF0ZVRhYmxlQnVpbGRlcjxhbnksIGFueT4pID0+IENyZWF0ZVRhYmxlQnVpbGRlcjxhbnksIGFueT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBhZGRUaW1lc3RhbXBDb2x1bW5zOiAoY3RiOiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+KSA9PiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+O1xuZGVjbGFyZSBtb2R1bGUgJ2t5c2VseScge1xuICAgIGludGVyZmFjZSBDcmVhdGVUYWJsZUJ1aWxkZXI8VEIgZXh0ZW5kcyBzdHJpbmcsIEMgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlcj4ge1xuICAgICAgICBhZGRUaW1lc3RhbXBDb2x1bW5zKCk6IENyZWF0ZVRhYmxlQnVpbGRlcjxUQiwgQyB8ICdjcmVhdGVkX2F0JyB8ICd1cGRhdGVkX2F0Jz47XG4gICAgICAgIGFkZENyZWF0ZWRDb2x1bW4oKTogQ3JlYXRlVGFibGVCdWlsZGVyPFRCLCBDIHwgJ2NyZWF0ZWRfYXQnPjtcbiAgICAgICAgYWRkVXBkYXRlZENvbHVtbigpOiBDcmVhdGVUYWJsZUJ1aWxkZXI8VEIsIEMgfCAndXBkYXRlZF9hdCc+O1xuICAgIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgVG9rZW4sIFVzZXJFbnRpdHkgfSBmcm9tICdAc2lkZWtpY2stY29kZXIvemVuaXRoLWtpdC9zaGFyZWQnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QudHMnO1xuZXhwb3J0IHR5cGUgQXV0aE1pZGRsZXdhcmVDb250ZXh0ID0ge1xuICAgIHVzZXI6IFVzZXJFbnRpdHk7XG4gICAgdG9rZW46IFRva2VuO1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhNaWRkbGV3YXJlIGltcGxlbWVudHMgTWlkZGxld2FyZSB7XG4gICAgaGFuZGxlKGN0eDogYW55KTogUHJvbWlzZTxBdXRoTWlkZGxld2FyZUNvbnRleHQ+O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBUb2tlbiB9IGZyb20gJ0BzaWRla2ljay1jb2Rlci96ZW5pdGgta2l0L3NoYXJlZCc7XG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmUgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Sb3V0ZXJDb250cmFjdC50cyc7XG5pbXBvcnQgdHlwZSBVc2VyIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvVXNlckVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IEh0dHBDb250ZXh0IH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvSHR0cENvbnRleHRDb250cmFjdC50cyc7XG5leHBvcnQgdHlwZSBBdXRoU2lsZW5jZU1pZGRsZXdhcmVDb250ZXh0ID0ge1xuICAgIHVzZXI/OiBVc2VyO1xuICAgIHRva2VuPzogVG9rZW47XG59O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aFNpbGVuY2VNaWRkbGV3YXJlIGltcGxlbWVudHMgTWlkZGxld2FyZSB7XG4gICAgaGFuZGxlKGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPEF1dGhTaWxlbmNlTWlkZGxld2FyZUNvbnRleHQ+O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBBdXRoU2lsZW5jZU1pZGRsZXdhcmVDb250ZXh0IH0gZnJvbSAnLi9BdXRoU2lsZW5jZU1pZGRsZXdhcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlSGFuZGxlUmVzdWx0IH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QudHMnO1xuaW1wb3J0IEFjbCBmcm9tICcjc2VydmVyL2VudGl0aWVzL0FjbEVudGl0eS50cyc7XG5leHBvcnQgdHlwZSBBdXRob3JpemF0aW9uQ29udGV4dCA9IE1pZGRsZXdhcmVIYW5kbGVSZXN1bHQ8W0F1dGhvcml6YXRpb25NaWRkbGV3YXJlXT47XG5leHBvcnQgaW50ZXJmYWNlIEF1dGhvcml6ZVBlcm1pc3Npb25QYXlsb2FkIHtcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICByZXNvdXJjZTogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgQXV0aG9yaXplUGVybWlzc2lvbiBpbXBsZW1lbnRzIE1pZGRsZXdhcmUge1xuICAgIHByaXZhdGUgcGVybWlzc2lvbnM7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZDogQXV0aG9yaXplUGVybWlzc2lvblBheWxvYWQgfCBBdXRob3JpemVQZXJtaXNzaW9uUGF5bG9hZFtdKTtcbiAgICBoYW5kbGUoY3R4OiBBdXRob3JpemF0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRob3JpemF0aW9uTWlkZGxld2FyZSBpbXBsZW1lbnRzIE1pZGRsZXdhcmUge1xuICAgIGhhbmRsZShjdHg6IEF1dGhTaWxlbmNlTWlkZGxld2FyZUNvbnRleHQpOiBQcm9taXNlPHtcbiAgICAgICAgYWNsOiBBY2w7XG4gICAgfT47XG4gICAgc3RhdGljIGNyZWF0ZShwYXlsb2FkOiBBdXRob3JpemVQZXJtaXNzaW9uUGF5bG9hZCB8IEF1dGhvcml6ZVBlcm1pc3Npb25QYXlsb2FkW10pOiBBdXRob3JpemVQZXJtaXNzaW9uO1xufVxuIiwiZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYmFzZVBhdGgoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmc7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBzdG9yYWdlUGF0aCguLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHJlbGF0aXZlVG9CYXNlUGF0aCguLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHRtcFBhdGgoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmc7XG4iLCJpbXBvcnQgdHlwZSB7IExvYWRlclJlY29yZCB9IGZyb20gJy4vZGVmaW5lTG9hZGVyLnRzJztcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNyZWF0ZUxvYWRlckZhY3Rvcnk8RSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSIGV4dGVuZHMgTG9hZGVyUmVjb3JkPEU+ID0gTG9hZGVyUmVjb3JkPEU+Pihsb2FkZXJzOiBSKToge1xuICAgIGtleXM6IChrZXlvZiBSKVtdO1xuICAgIGxvYWRlcnM6IFI7XG4gICAgbG9hZDogKGVudGl0aWVzOiBFIHwgRVtdLCBuYW1lczoga2V5b2YgUiB8IChrZXlvZiBSKVtdKSA9PiBQcm9taXNlPHZvaWQ+O1xufTtcbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGN1aWQoKTogc3RyaW5nO1xuIiwiaW1wb3J0IHR5cGUgeyBIdHRwQ29udGV4dCB9IGZyb20gXCIjc2VydmVyL2NvbnRyYWN0cy9IdHRwQ29udGV4dENvbnRyYWN0LnRzXCI7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBkZWZpbmVIYW5kbGVyKGhhbmRsZXI6IChjdHg6IEh0dHBDb250ZXh0KSA9PiAoUHJvbWlzZTxhbnk+IHwgKCgpID0+IGFueSkpKTogKGN0eDogSHR0cENvbnRleHQpID0+IChQcm9taXNlPGFueT4gfCAoKCkgPT4gYW55KSk7XG4iLCJleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4RmlsZShvcHRpb25zOiBhbnkpOiB2b2lkO1xuIiwiaW50ZXJmYWNlIE9wdGlvbnMge1xuICAgIGNhY2hlPzogYm9vbGVhbjtcbiAgICBvbkJlZm9yZUltcG9ydD86IChjdHg6IHtcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICB9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBvbkFmdGVySW1wb3J0PzogKGN0eDoge1xuICAgICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgICBtb2R1bGU6IGFueTtcbiAgICB9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBvbkVycm9yPzogKGN0eDoge1xuICAgICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgICAgICBlcnJvcjogRXJyb3I7XG4gICAgfSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG4gICAgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gaW1wb3J0RmlsZXMoZmlsZXM6IHN0cmluZ1tdLCBvcHRpb25zPzogT3B0aW9ucyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBpbXBvcnRHbG9iKHBhdHRlcm46IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gaW1wb3J0QWxsKGRpcmVjdG9yeTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBpbXBvcnRPbmUoZmlsZW5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8YW55PjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQU8sY0FBVTtDQUFBO09BQVksRUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDN0IsSUFBVyxnQkFBTTtDQUFBO09BQUEsRUFBQTtDQUFBLENBQUEsR0FBQTtDQUFBO0FBQ2pCLElBQVcsY0FBVztDQUFJO09BQVMsQ0FBQyxjQUFPO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzNDLElBQVcsYUFBTztDQUFBO09BQUEsQ0FBQSxZQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDSGxCLElBQUEsUUFBVTtDQUFBO09BQU0sRUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNoQixJQUFJLGdCQUFXO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRGYsSUFBSSxnQkFBYztDQUFDO0VBQUUsTUFBUSxDQUFDLEVBQUM7Q0FBRztFQUFDO0VBQUk7RUFBSTtFQUFFO0NBQUE7QUFDN0MsSUFBSSxXQUFXO0NBQUM7T0FBUyxDQUFBLGNBQVM7Q0FBQSxDQUFBLEdBQVc7Q0FBQTtBQUM3QyxJQUFBLG1CQUFxQjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQWlCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0Z0QyxJQUFBLGdCQUFvQjtDQUFDO09BQUEsQ0FBQSxjQUFjO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDbkMsSUFBQSxrQkFBVTtDQUFBO09BQWdCLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxZQUFVO0NBQUE7T0FBQSxFQUFBO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTtBQUNkLElBQUksb0JBQWE7Q0FBQTtPQUFBLENBQUEsVUFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDakIsSUFBSSx5QkFBOEI7Q0FBRztPQUFBLENBQUEsY0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNyQyxJQUFJLG9CQUFrQjtDQUFDO0VBQUksUUFBVSxNQUFNO0VBQUE7RUFBRztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7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QUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQy9ELElBQU8sbUJBQWM7Q0FBQTtPQUFvQjtFQUFBLEVBQUE7RUFBYSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEdEQsSUFBVyxVQUFRO0NBQUM7T0FBRSxDQUFBLGFBQW1CLEVBQUEsWUFBWTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNyRCxJQUFPLGNBQWM7Q0FBQTtPQUFlO0VBQUEsRUFBQTtFQUFhLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEakQsSUFBTyxXQUFVO0NBQUE7T0FBUyxFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQTFCLElBQUksd0JBQXNCO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFB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QUEsV0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMzQixJQUFTLGFBQWE7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBLE1BQUE7RUFBQSxNQUFBO0VBQUEsTUFBQTtFQUFBLE1BQUE7RUFBQSxNQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDdEIsSUFBSSxhQUFTO0NBQUE7T0FBVTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDTHZCLElBQUEsb0JBQXFCO0NBQUE7T0FBQTtFQUFBO0VBQWtCO0VBQVE7RUFBVztDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDMUQsSUFBQSxvQkFBcUI7Q0FBQTtPQUFBO0VBQUEsR0FBa0I7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQXZDLElBQU8seUJBQVU7Q0FBQTtPQUF1QixDQUFBLGNBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3hDLElBQUksa0JBQWtCO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRnRCLElBQVcsWUFBWTtDQUFDO09BQUUsQ0FBQSxXQUFtQixFQUFBLFlBQVU7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDdkQsSUFBTyxZQUFjO0NBQUE7T0FBYTtFQUFBLEVBQUE7RUFBa0IsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBcEQsSUFBQSxhQUFlO0NBQUE7RUFBTSxNQUFBO0VBQUE7RUFBVyxPQUFBO0VBQUEsT0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDaEMsSUFBTyx1QkFBVTtDQUFBO09BQXFCLENBQUEsWUFBQSxjQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN0QyxJQUFJLHVCQUFlO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFB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RUFBQSxPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBLE9BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0p0QixJQUFPLHFCQUFVO0NBQUE7T0FBbUIsQ0FBQSxLQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNwQyxJQUFJLGtCQUFZO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBaEIsSUFBQSxrQkFBcUI7Q0FBQTtPQUFBO0VBQUE7RUFBZ0I7RUFBYTtFQUFBO0VBQUE7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O0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0UzQixJQUFBLGVBQVU7Q0FBQTtPQUFtQixFQUFBO0NBQUEsRUFBQTtDQUFBO0FBQzdCLElBQUkscUJBQVk7Q0FBVTtPQUFBLENBQUEsWUFBQSxhQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxjQUFTO0NBQUE7T0FBWSxFQUFBO0NBQUEsQ0FBQSxHQUFBO0NBQUE7QUFDekIsSUFBQSxlQUFBO0NBQUE7T0FBQSxDQUFBLGVBQUEsY0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNBLElBQUEscUJBQXNCO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDdEIsSUFBSSxnQkFBZTtDQUFBO0VBQUEsR0FBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtF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QixJQUFJLGtCQUFZO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDVGhCLElBQVcsYUFBYTtDQUFDO0VBQUssTUFBSSxDQUFBLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2xDLElBQUksZ0JBQVU7Q0FBQTtFQUFBLE1BQUEsQ0FBQSxFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2QsSUFBVyxrQkFBTTtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRGpCLElBQUksY0FBYztDQUFDO0VBQUssTUFBSyxDQUFBLEVBQUE7Q0FBSztFQUFDO0VBQUk7RUFBRTtFQUFJO0NBQUE7QUFDN0MsSUFBTyxnQkFBYztDQUFBO0VBQUEsTUFBYztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEbkMsSUFBVyxhQUFhO0NBQUM7T0FBUyxFQUFJO0NBQUUsRUFBRTtDQUFDO0FBQzNDLElBQU8sa0JBQVU7Q0FBQTtPQUFnQixDQUFBLFdBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDakMsSUFBVyxlQUFXO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3RCLElBQVUsdUJBQU07Q0FBQTtPQUFBLENBQUEsT0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDaEIsSUFBQSxhQUFBO0NBQUE7T0FBQSxDQUFBLFdBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ0EsSUFBTyxlQUFVO0NBQUE7T0FBYTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM5QixJQUFJLGVBQWlCO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDTHJCLElBQUEsK0JBQXFCO0NBQUE7T0FBQTtFQUFBO0VBQTZCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RsRCxJQUFPLHNCQUFVO0NBQUE7T0FBb0IsQ0FBQSxPQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3JDLElBQUksaUJBQWdCO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDR3BCLElBQUksaUJBQXFCO0NBQUE7T0FBTyxFQUFBO0NBQUEsRUFBYztDQUFDO0FBQy9DLElBQVcsd0JBQWtCO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzdCLElBQUEsNkJBQUE7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNBLElBQUEsd0JBQWM7Q0FBQTtPQUEwQjtFQUFDO0VBQUM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDUDFDLElBQVcsY0FBYztDQUFDO09BQVc7RUFBQTtFQUFXO0VBQU87RUFBYTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNwRSxJQUFBLFlBQVU7Q0FBQTtPQUFRLEVBQUE7Q0FBQSxDQUFBLEdBQUE7Q0FBQTtBQUNsQixJQUFJLGNBQVc7Q0FBQTtFQUFPLEdBQUEsVUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0N0QixJQUFBLHVCQUFxQjtDQUFBO09BQUE7RUFBQTtFQUE2QjtFQUFzQjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNIeEUsSUFBQSxpQkFBVTtDQUFBO09BQWUsQ0FBQSxPQUFBLFdBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3pCLElBQUksZUFBWTtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RoQixJQUFPLGFBQVU7Q0FBQTtFQUFhLE1BQUssQ0FBQyxFQUFDO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDckMsSUFBVyxrQkFBRztDQUFBO09BQUEsRUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2QsSUFBVSxvQkFBTTtDQUFBO09BQUEsQ0FBQSxpQkFBQSxnQkFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNoQixJQUFJLG9CQUFnQjtDQUFBO09BQUEsRUFBQTtDQUFBLENBQUEsR0FBQTtDQUFBO0FBQ3BCLElBQUkscUJBQWE7Q0FBQTtFQUFBLFNBQUEsYUFBQSxhQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0hqQixJQUFBLG1CQUFxQjtDQUFBO0VBQUEsU0FBaUIsYUFBVTtFQUFBO0VBQWE7RUFBUTtFQUFXO0VBQW1CO0VBQUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ3JHLElBQU8sNkJBQVU7Q0FBQTtPQUEyQixDQUFBLHFCQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzVDLElBQUksaUJBQWM7Q0FBQTtPQUFRO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0YxQixJQUFPLDZDQUFVO0NBQUE7T0FBMkMsRUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzVELElBQUksaUNBQXNCO0NBQUE7T0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NB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RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzdGLElBQVcsaUJBQVE7Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEbkIsSUFBTyxjQUFVO0NBQUE7RUFBYyxNQUFBO0VBQUE7RUFBYztFQUFBO0VBQVU7RUFBUTtFQUFtQjtFQUFDO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDbkYsSUFBVyxPQUFPO0NBQUE7RUFBQSxHQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQWxCLElBQU8sa0JBQVU7Q0FBQTtFQUFrQixNQUFBO0VBQUE7RUFBYztFQUFVO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzNELElBQVcsaUJBQVE7Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDbkIsSUFBVyxXQUFNO0NBQUE7RUFBQSxHQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0pqQixJQUFPLGVBQVU7Q0FBQTtFQUFlLE1BQUE7RUFBQTtFQUFjO0VBQUE7RUFBVTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDeEQsSUFBVyxRQUFNO0NBQUE7RUFBQSxHQUFZLE1BQU07RUFBQTtFQUFXO0VBQUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ2hELElBQVcsZ0JBQVk7Q0FBQTtFQUFVLE1BQUU7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDbkMsSUFBSSxnQkFBbUI7Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDdkIsSUFBSSxjQUFxQjtDQUFDO0VBQUUsR0FBTyxNQUFNO0VBQUM7RUFBSztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMvQyxJQUFBLFNBQUE7Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsU0FBQTtFQUFBO0VBQUE7RUFBQSxTQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsU0FBQTtFQUFBLFNBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDSEEsSUFBVyxnQkFBUTtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFB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QUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VB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O0VBQUE7Q0FBQTs7OztBQ0RBLElBQUEsZ0JBQWlCO0NBQUE7RUFBQSxNQUFBLENBQUEsR0FBQSxFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQTRCO0VBQUE7RUFBUTtDQUFBO0FBQ3JELElBQVMsOEJBQU07Q0FBQTtFQUFBLFNBQUEsY0FBQSxrQkFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNmLElBQVcscUJBQUE7Q0FBQTtFQUFBLFNBQUEsY0FBQSxrQkFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ1gsSUFBUSw2QkFBZ0M7Q0FBQztFQUFBLFNBQUEsY0FBQSxrQkFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNGekMsSUFBSSxtQkFBbUI7Q0FBQztFQUFJLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM1QixJQUFJLGNBQUE7Q0FBZTtFQUFFLE1BQU87RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDSzVCLElBQUksV0FBSTtDQUFBO09BQWtCLEVBQUU7Q0FBQSxDQUFBLElBQU8sR0FBQTtDQUFBO0FBQ25DLElBQUksWUFBWTtDQUFDO0VBQUMsTUFBUTtFQUFBO0VBQUE7RUFBeUM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQSxTQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDbkUsSUFBSSxPQUFPO0NBQUM7T0FBTztFQUFBO0VBQVE7RUFBVztFQUFTO0VBQU07RUFBUyxPQUFNO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNKcEUsSUFBSSxnQkFBQztDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBLFNBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7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
|
|
2597
|
+
export { Acl as AclEntity, AddOptions, AuthMiddleware, AuthMiddlewareContext, AuthSilenceMiddleware, AuthSilenceMiddlewareContext, AuthorizationContext, AuthorizationMiddleware, AuthorizePermission, AuthorizePermissionPayload, CliCommand, CliEvents, CliService, ArteTesterService as CliTesterService, CliWrapperService, ConfigFSService, ConfigFSServiceOptions, ConfigManagerOptions, ConfigManagerService, ConfigModel, ConfigRepository, ConfigS3Service, CookieMapEntity, CountOptions, CreateOptions, DatabaseContract, DatabaseKysely, DatabaseRepository, DatabaseRepositoryInferMixin, DeleteFrom, DeleteManyOptions, DestroyOptions, DownloadService, DownloadedFetchOptions, DriveBaseGateway, DriveConfig as DriveConfigEntity, DriveContract, DriveFSConfig, DriveFS as DriveFSGateway, DriveS3 as DriveS3Gateway, DriveService, DriveUploadUrlOptions, DriveUrlOptions, EmailTemplateMetaTable, EmailTemplateTable, EmmitterService, EncryptService, EnvService, EventContract, ExpressionBuilder, File as FileEntity, FileMeta as FileMetaEntity, FileMetaTable, FileRepository, FileRepositoryQueryOptions, FileTable, FindManyOptions, FindOneOptions, FirstOrCreateOptions, GitBranchRepository, GitBranchRepositoryOptions, GitCommitListOptions, GitCommitListResult, GitCommitRepository, GitCommitRepositoryOptions, GitGateway, GitGatewayOptions, GitRepoInfo, HandleResult, HasManyThroughLoaderOptions, HttpContext, HttpMethod, IRepositoryTypes, InsertFrom, IpcMessage, JobTable, LifecycleService, ListOptions, Loader, LoaderRecord, Metadafilter, Metadata as MetadataMixin, MetadataQueryPayload, MetadataQueryService, MetadataService, Middleware, MiddlewareHandleResult, Migration, MigrationEntity, MigrationEntiyData, MigrationSource, MigrationsTable, MigratorService, MigratorServiceOptions, ModelConfig as ModelConfigMixin, ModelCountOptions, ModelCreateOptions, ModelDestroyOptions, ModelEntity, ModelFindOptions, ModelFirstOrCreateOptions, ModelListOptions, ModelMixin, ModelPaginateOptions, ModelUpdateOptions, ModelUpdateOrCreateOptions, Module as ModuleEntity, OauthAccountTable, OauthTokenTable, ObjectOptions, PageRequestContextEntity, PageRequestContextEntityOptions, PaginateResult, Pagination, PermissionAssignmentRepository, PermissionAssignmentRepositoryQueryOptions, PermissionAssignmentTable, PermissionRepository, PermissionRepositoryQueryOptions, PermissionTable, PluginEntity, PluginEntryEntity, PluginIpcClient, PluginIpcHost, PluginRouter, Redirect, Relation as RelationsMixin, Request, ResourceMethod, Response, RoleTable, RouteDefinition, Route as RouteEntity, RouteHandler, RouteReply, RouteRequest, RouteResponsePayload, RouterEvents, RouterFileBaseRoutingService, RouterRegisterEntry, RouterRegister as RouterRegisterService, RouterResourceConfig as RouterResourceConfigService, RouterResourceOptions, RouterResourceService, RouterService, RoutineEntity, RoutineEntityOptions, RoutineHandler, S3DriveConfig, SchedulerEvents, SchedulerService, SchedulerServiceOptions, SeederEntity, SeederEntiyData, SeederEvents, SeederResult, SeeederService as SeederService, SeederServiceOptions, SeederSource, SelectBuilder, SelectFrom, SerializableResult, SerializeOptions, ShellService, ShellServiceOptions, SoftDeleteOptions, SoftDeleteResult, TableColumn, TokenRepository, TokenRepositoryQueryOptions, TokenTable, UpdateFrom, UpdateOptions, UpdateOrCreateOptions, UploadSessionTable, UploadUrlOptions, UrlOptions, UserMetaTable, UserRepository, UserRepositoryQueryOptions, UserRoleTable, UserTable, addCreatedColumn, addSoftDeleteColumn, addTimestampColumns, addUpdatedColumn, basePath, config, _default as container, count, create, createDefault, createHasManyThroughLoader, createLoaderFactory, createMysql, cuid, database, defineHandler, defineLoader, deleted, destroy, download, drive, emmitter, encrypt, exists, fileRepository as filesRepository, findOne, findOneOrFail, firstOrCreate, generateIndexFile, importAll, importFiles, importGlob, importOne, key, list, loadHasManyThrough, logger, migrator, now, paginate, permissionAssignmentRepository, permissionRepository, printObject, printTable, relativeToBasePath, router, scheduler, shell, softDelete, storagePath, tmpPath, tokenRepository, undeleted, update, updateDefault, updateMysql, updateOrCreate, userRepository, valueToString, whereNotDeleted };
|
|
2598
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci91dGlscy9wcmludFRhYmxlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL0NvbmZpZ1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvc2VydmljZXMvQ29udGFpbmVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL0VtbWl0dGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9MaWZlY3ljbGVIb29rLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3V0aWxzL2NvbXBvc2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvc2VydmljZXMvTGlmZWN5Y2xlU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Blcm1pc3Npb25Bc3NpZ25tZW50U2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvblNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Rva2VuU2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL21peGlucy9Ib29rc01peGluLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1Blcm1pc3Npb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvQWNsRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0Nvb2tpZU1hcEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUNvbmZpZ0VudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUVudHJ5RW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0ZpbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvRmlsZU1ldGFFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvR2l0QnJhbmNoRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0dpdENvbW1pdEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Nb2R1bGVNYW5pZmVzdEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Nb2R1bGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvUGFnaW5hdGlvbkVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9QbHVnaW5FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvUm9sZUVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Vc2VyRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0NsaVNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvQ2xpVGVzdGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9DbGlXcmFwcGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Db25maWdGU1NlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2NoZW1hcy9lbnZTY2hlbWEuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvRW52U2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Db25maWdNYW5hZ2VyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9nYXRld2F5cy9Ecml2ZUJhc2VHYXRld2F5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2dhdGV3YXlzL0RyaXZlUzNHYXRld2F5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0NvbmZpZ1MzU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Eb3dubG9hZFNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL0RyaXZlQ29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvRHJpdmVTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL01pZ3JhdGlvbkVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9Db29raWVNYXBFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0FjbEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9jb250cmFjdHMvSHR0cENvbnRleHRDb250cmFjdC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvUm91dGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUm91dGVyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9lbnRpdGllcy9Sb3V0aW5lRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1NjaGVkdWxlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvU2VlZGVyRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1NlZWRlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL0V2ZW50Q29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvRW1taXR0ZXJTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0VuY3J5cHRTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL0xpZmVjeWNsZVNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvTWV0YWRhdGFRdWVyeVNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvTWV0YWRhdGFTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL01pZ3JhdG9yU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9QbHVnaW5JcGNDbGllbnQuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUGx1Z2luSXBjSG9zdC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9QbHVnaW5Sb3V0ZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUm91dGVyRmlsZUJhc2VSb3V0aW5nU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9Sb3V0ZXJSZWdpc3RlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvc2VydmljZXMvUm91dGVyUmVzb3VyY2VTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL21peGlucy9Nb2RlbENvbmZpZ01peGluLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3NlcnZpY2VzL1JvdXRlclJlc291cmNlQ29uZmlnU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9zZXJ2aWNlcy9TaGVsbFNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9yZXBvc2l0b3JpZXMvQ29uZmlnUmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9yZXBvc2l0b3JpZXMvRmlsZVJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL0dpdEJyYW5jaFJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL0dpdENvbW1pdFJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL1Blcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9yZXBvc2l0b3JpZXMvUGVybWlzc2lvblJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvbWl4aW5zL0RhdGFiYXNlUmVwb3NpdG9yeUluZmVyTWl4aW4uZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcmVwb3NpdG9yaWVzL1Rva2VuUmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9yZXBvc2l0b3JpZXMvVXNlclJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZ2F0ZXdheXMvRHJpdmVGU0dhdGV3YXkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZ2F0ZXdheXMvR2l0R2F0ZXdheS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taXhpbnMvTWV0YWRhdGFNaXhpbi5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2RhdGFiYXNlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvY29tbW9uLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvdXBkYXRlT3JDcmVhdGUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9saXN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvcGFnaW5hdGUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9jb3VudC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2NyZWF0ZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL3VwZGF0ZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2Rlc3Ryb3kuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvcXVlcmllcy9maXJzdE9yQ3JlYXRlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvZmluZE9uZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taXhpbnMvUmVsYXRpb25zTWl4aW4uZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9jb25maWcuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9jb250YWluZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9kb3dubG9hZC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL2RyaXZlLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvZW1taXR0ZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9lbmNyeXB0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvZmlsZXNSZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvbG9nZ2VyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvbWlncmF0b3IuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9wZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZmFjYWRlcy9wZXJtaXNzaW9uUmVwb3NpdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL3JvdXRlci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL3NjaGVkdWxlci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9mYWNhZGVzL3NoZWxsLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvdG9rZW5SZXBvc2l0b3J5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2ZhY2FkZXMvdXNlclJlcG9zaXRvcnkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvY29udHJhY3RzL0t5c2VseUNvbnRyYWN0LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3V0aWxzL2RlZmluZUxvYWRlci5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9sb2FkZXJzL2NyZWF0ZUhhc01hbnlUaHJvdWdoTG9hZGVyLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0RyaXZlQ29uZmlnRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL0ZpbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvRmlsZU1ldGFFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvZW50aXRpZXMvTW9kdWxlRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL1BsdWdpbkVudHJ5RW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL2VudGl0aWVzL1BsdWdpbkVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2V4aXN0cy5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL2luY3JlbWVudGFsLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3F1ZXJpZXMvc29mdERlbGV0ZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9xdWVyaWVzL3RpbWVzdGFtcC5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taWRkbGV3YXJlcy9BdXRoTWlkZGxld2FyZS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci9taWRkbGV3YXJlcy9BdXRoU2lsZW5jZU1pZGRsZXdhcmUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvbWlkZGxld2FyZXMvQXV0aG9yaXphdGlvbk1pZGRsZXdhcmUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvYmFzZVBhdGguZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvY3JlYXRlTG9hZGVyRmFjdG9yeS5kLnRzIiwiLi4vLi4vc3JjL3NlcnZlci91dGlscy9jdWlkLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3V0aWxzL2RlZmluZUhhbmRsZXIuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvZ2VuZXJhdGVJbmRleEZpbGUuZC50cyIsIi4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvaW1wb3J0QWxsLmQudHMiLCIuLi8uLi9zcmMvc2VydmVyL3V0aWxzL2ltcG9ydE9uZS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb2x1bW4ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8ICgoaXRlbTogYW55KSA9PiBzdHJpbmcpO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIHJlYWxXaWR0aD86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0T3B0aW9ucyB7XG4gICAga2V5V2lkdGg/OiBudW1iZXI7XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBwcmludE9iamVjdChvdXRwdXQ/OiBhbnksIG9wdGlvbnM/OiBPYmplY3RPcHRpb25zKTogdm9pZDtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHByaW50VGFibGUoaXRlbXM6IGFueVtdLCBjb2x1bW5zPzogVGFibGVDb2x1bW5bXSk6IHZvaWQ7XG4iLCJpbnRlcmZhY2UgRW50cnkge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG4gICAgc291cmNlOiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25maWdTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgZW50cmllczogTWFwPHN0cmluZywgRW50cnk+O1xuICAgIGNvbnN0cnVjdG9yKCk7XG4gICAgbGlzdCgpOiBFbnRyeVtdO1xuICAgIHBhcnNlVmFsdWUodmFsdWU6IGFueSk6IGFueTtcbiAgICBsb2FkRnJvbVJlY29yZChyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHNvdXJjZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgbG9hZEZyb21FbnRyaWVzKGVudHJpZXM6IFtzdHJpbmcsIGFueV1bXSwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICB0b1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW47XG4gICAgZ2V0PFQgPSBhbnkgfCB1bmRlZmluZWQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBUO1xuICAgIGdldE9uZTxUID0gYW55IHwgdW5kZWZpbmVkPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogYW55KTogVDtcbiAgICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHNvdXJjZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgdW5zZXQoa2V5OiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgZHVtcCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuZXhwb3J0IHt9O1xuIiwidHlwZSBDb25zdHJ1Y3RvcjxUID0gb2JqZWN0PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG50eXBlIEVudHJ5S2V5ID0gc3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250YWluZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGVudHJpZXM7XG4gICAgbG9hZEZyb21SZWNvcmQocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZDtcbiAgICB0b1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHByaXZhdGUgZ2V0S2V5O1xuICAgIHNldChwYXlsb2FkOiBFbnRyeUtleSwgdmFsdWU6IGFueSk6IHRoaXM7XG4gICAgaGFzKHBheWxvYWQ6IEVudHJ5S2V5KTogYm9vbGVhbjtcbiAgICBnZXQ8VD4ocGF5bG9hZDogRW50cnlLZXkpOiBUO1xuICAgIHNpbmdsZXRvbjxUPihjbGFzc0NvbnN0cnVjdG9yOiBDb25zdHJ1Y3RvcjxUPik6IFQ7XG4gICAgbG9hZChlbnRyaWVzOiBSZWNvcmQ8YW55LCBhbnk+KTogdm9pZDtcbiAgICBwcm94eTxUID0gdW5rbm93bj4oa2V5OiBFbnRyeUtleSk6IFQ7XG4gICAga2V5cygpOiBFbnRyeUtleVtdO1xufVxuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nZ2VyU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGluZm8obWVzc2FnZTogc3RyaW5nLCBtZXRhPzogYW55KTogdm9pZDtcbiAgICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIG1ldGE/OiBhbnkpOiB2b2lkO1xuICAgIHdhcm4obWVzc2FnZTogc3RyaW5nLCBtZXRhPzogYW55KTogdm9pZDtcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgbWV0YT86IGFueSk6IHZvaWQ7XG4gICAgY2hpbGQob3B0aW9uczogYW55KTogTG9nZ2VyU2VydmljZTtcbn1cbiIsImltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJy4vTG9nZ2VyU2VydmljZS50cyc7XG5pbnRlcmZhY2UgRW1taXR0ZXJIYW5kbGVyIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuICAgIG9yaWdpbmFsTGlzdGVuZXI/OiAoLi4uYXJnczogYW55W10pID0+IGFueTtcbn1cbmludGVyZmFjZSBPbk9wdGlvbnMge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHVuaXF1ZT86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgT25EZWJvdW5jZU9wdGlvbnMgZXh0ZW5kcyBPbk9wdGlvbnMge1xuICAgIGRlYm91bmNlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBFbW1pdHRlclNlcnZpY2VPcHRpb25zIHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVtbWl0dGVyU2VydmljZTxFdmVudHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBwcml2YXRlIGhhbmRsZXJzO1xuICAgIHByaXZhdGUgZGVidWc7XG4gICAgcHJpdmF0ZSBsb2dnZXI7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IEVtbWl0dGVyU2VydmljZU9wdGlvbnMpO1xuICAgIHN0YXRpYyBjcmVhdGU8RXZlbnRzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KG9wdGlvbnM/OiBFbW1pdHRlclNlcnZpY2VPcHRpb25zKTogRW1taXR0ZXJTZXJ2aWNlPEV2ZW50cz47XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldExvZ2dlcihsb2dnZXI6IExvZ2dlclNlcnZpY2UpOiB2b2lkO1xuICAgIG9uPEsgZXh0ZW5kcyBrZXlvZiBFdmVudHM+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKGFyZ3M6IEV2ZW50c1tLXSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbmNlPEsgZXh0ZW5kcyBrZXlvZiBFdmVudHM+KGV2ZW50OiBLLCBsaXN0ZW5lcjogKGFyZ3M6IEV2ZW50c1tLXSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbmNlKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoYXJnczogYW55KSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uRGVib3VuY2U8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25EZWJvdW5jZU9wdGlvbnMpOiBFbW1pdHRlckhhbmRsZXI7XG4gICAgb25EZWJvdW5jZShldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uRGVib3VuY2VPcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uQW55T2Y8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnRzOiBLW10sIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyW107XG4gICAgb25BbnlPZihldmVudHM6IHN0cmluZ1tdLCBsaXN0ZW5lcjogKGFyZ3M6IGFueSkgPT4gdm9pZCwgb3B0aW9ucz86IE9uT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIG9mZihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogRnVuY3Rpb24pOiB2b2lkO1xuICAgIGVtaXQ8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGFyZ3M6IEV2ZW50c1tLXSk6IHZvaWQ7XG4gICAgZW1pdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogdm9pZDtcbiAgICBlbWl0QW5kV2FpdDxLIGV4dGVuZHMga2V5b2YgRXZlbnRzPihldmVudDogSywgYXJnczogRXZlbnRzW0tdKTogUHJvbWlzZTx2b2lkPjtcbiAgICBlbWl0QW5kV2FpdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICBsaXN0KCk6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIGxpc3RCeUV2ZW50KGV2ZW50OiBzdHJpbmcpOiBFbW1pdHRlckhhbmRsZXJbXTtcbiAgICByZW1vdmUocGF5bG9hZDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkO1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgaGFzSGFuZGxlcnMoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIExpZmVjeWNsZUhvb2sge1xuICAgIGhvb2tfaWQ6IHN0cmluZztcbiAgICBob29rX2FsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBzdWJob29rcz86IExpZmVjeWNsZUhvb2tbXTtcbiAgICByZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBib290KCk6IFByb21pc2U8dm9pZD47XG4gICAgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIHJlZ2lzdGVyICovXG4gICAgb25SZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgbG9hZCAqL1xuICAgIG9uTG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgYm9vdCAqL1xuICAgIG9uQm9vdCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc2h1dGRvd24gKi9cbiAgICBvblNodXRkb3duKCk6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgdHlwZSB7IFVuaW9uVG9JbnRlcnNlY3Rpb24gfSBmcm9tICcuL3R5cGluZy50cyc7XG5leHBvcnQgdHlwZSBBbnlDbGFzcyA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueTtcbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQgPSB7fT4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuZXhwb3J0IHR5cGUgTWl4aW48VD4gPSAoYmFzZTogQ29uc3RydWN0b3IpID0+IENvbnN0cnVjdG9yPFQ+O1xuLyoqXG4gKiBDb21wb3NlcyBtdWx0aXBsZSBtaXhpbnMgaW50byBhIHNpbmdsZSBjbGFzcyB0aGF0IGNhbiBiZSBleHRlbmRlZC5cbiAqIEFsbG93cyBmb3IgbXVsdGlwbGUgaW5oZXJpdGFuY2UtbGlrZSBiZWhhdmlvciBieSBhcHBseWluZyBtaXhpbnMgc2VxdWVudGlhbGx5LlxuICpcbiAqIEBwYXJhbSBtaXhpbnMgLSBBcnJheSBvZiBtaXhpbiBmdW5jdGlvbnMgdG8gY29tcG9zZVxuICogQHJldHVybnMgQSBjbGFzcyBjb25zdHJ1Y3RvciB0aGF0IGluY2x1ZGVzIGFsbCBtaXhpbiBmdW5jdGlvbmFsaXR5XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFVzZXIgZXh0ZW5kcyBjb21wb3NlKFRpbWVzdGFtcCwgU29mdERlbGV0ZSkge1xuICogICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gKiAgICAgc3VwZXIoKVxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY29tcG9zZTxNIGV4dGVuZHMgQXJyYXk8KGJhc2U6IENvbnN0cnVjdG9yPGFueT4pID0+IENvbnN0cnVjdG9yPGFueT4+PiguLi5taXhpbnM6IE0pOiBVbmlvblRvSW50ZXJzZWN0aW9uPFJldHVyblR5cGU8TVtudW1iZXJdPj47XG4vKipcbiAqIEFsdGVybmF0aXZlIGNvbXBvc2UgZnVuY3Rpb24gdGhhdCBzdGFydHMgd2l0aCBhIGJhc2UgY2xhc3NcbiAqXG4gKiBAcGFyYW0gYmFzZUNsYXNzIC0gVGhlIGJhc2UgY2xhc3MgdG8gc3RhcnQgd2l0aFxuICogQHBhcmFtIG1peGlucyAtIEFycmF5IG9mIG1peGluIGZ1bmN0aW9ucyB0byBhcHBseVxuICogQHJldHVybnMgQSBjbGFzcyBjb25zdHJ1Y3RvciB0aGF0IGV4dGVuZHMgdGhlIGJhc2UgY2xhc3Mgd2l0aCBhbGwgbWl4aW4gZnVuY3Rpb25hbGl0eVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBVc2VyIGV4dGVuZHMgY29tcG9zZVdpdGgoQmFzZUVudGl0eSwgVGltZXN0YW1wLCBTb2Z0RGVsZXRlKSB7XG4gKiAgIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcpIHtcbiAqICAgICBzdXBlcigpXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjb21wb3NlV2l0aDxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yLCBNIGV4dGVuZHMgQXJyYXk8KGJhc2U6IENvbnN0cnVjdG9yKSA9PiBDb25zdHJ1Y3Rvcjxhbnk+Pj4oYmFzZUNsYXNzOiBUQmFzZSwgLi4ubWl4aW5zOiBNKTogVEJhc2UgJiBVbmlvblRvSW50ZXJzZWN0aW9uPFJldHVyblR5cGU8TVtudW1iZXJdPj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBtaXhpbjxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yPihTb3VyY2U6IFRCYXNlKTogPFRUYXJnZXQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oVGFyZ2V0OiBUVGFyZ2V0KSA9PiBUVGFyZ2V0ICYgVEJhc2U7XG4iLCJpbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcuL0xvZ2dlclNlcnZpY2UudHMnO1xuaW1wb3J0IHR5cGUgTGlmZWN5Y2xlSG9vayBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0xpZmVjeWNsZUhvb2sudHMnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG50eXBlIExpZmVjeWNsZU1ldGhvZCA9ICdyZWdpc3RlcicgfCAnbG9hZCcgfCAnYm9vdCcgfCAnc2h1dGRvd24nO1xuaW50ZXJmYWNlIExpc3RPcHRpb25zIHtcbiAgICBpbmNsdWRlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgZXhjbHVkZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVTZXJ2aWNlT3B0aW9ucyB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGhvb2tzPzogTWFwPHN0cmluZywgTGlmZWN5Y2xlSG9vaz47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbiAgICBvbkVycm9yPzogKGVycm9yOiBFcnJvciwgY29udGV4dDoge1xuICAgICAgICBob29rSWQ6IHN0cmluZztcbiAgICAgICAgbWV0aG9kOiBMaWZlY3ljbGVNZXRob2Q7XG4gICAgfSkgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpZmVjeWNsZVNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBob29rczogTWFwPHN0cmluZywgTGlmZWN5Y2xlSG9vaz47XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBMaWZlY3ljbGVTZXJ2aWNlT3B0aW9ucyk7XG4gICAgb25FcnJvcihlcnJvcjogRXJyb3IsIGNvbnRleHQ6IHtcbiAgICAgICAgaG9va0lkOiBzdHJpbmc7XG4gICAgICAgIG1ldGhvZDogTGlmZWN5Y2xlTWV0aG9kO1xuICAgIH0pOiB2b2lkO1xuICAgIG1hcEFsaWFzZXMoYXJnczogc3RyaW5nW10pOiBzdHJpbmdbXTtcbiAgICBsaXN0KG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IExpZmVjeWNsZUhvb2tbXTtcbiAgICBhZGQoLi4ucGF5bG9hZDogKExpZmVjeWNsZUhvb2sgfCBDb25zdHJ1Y3RvcjxMaWZlY3ljbGVIb29rPilbXSk6IHZvaWQ7XG4gICAgZW1pdE1ldGhvZChtZXRob2Q6IExpZmVjeWNsZU1ldGhvZCwgb3B0aW9ucz86IExpc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBlbWl0KHBheWxvYWQ6IExpZmVjeWNsZU1ldGhvZCB8IExpZmVjeWNsZU1ldGhvZFtdLCBvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHJlZ2lzdGVyKG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZChvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGJvb3Qob3B0aW9ucz86IExpc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzaHV0ZG93bihvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGNsZWFyKCk6IHZvaWQ7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvbkFzc2lnbm1lbnQgPSB2LkluZmVyT3V0cHV0PHR5cGVvZiBwZXJtaXNzaW9uQXNzaWdubWVudFNjaGVtYT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBwZXJtaXNzaW9uQXNzaWdubWVudFNjaGVtYTogdi5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHBlcm1pc3Npb25faWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgYXNzaWduYWJsZV90eXBlOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGFzc2lnbmFibGVfaWQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB1cGRhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xufSwgdW5kZWZpbmVkPjtcbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uID0gdi5JbmZlck91dHB1dDx0eXBlb2YgcGVybWlzc2lvblNjaGVtYT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBwZXJtaXNzaW9uU2NoZW1hOiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgbmFtZTogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgYWN0aW9uOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHN1YmplY3Q6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgY29uZGl0aW9uczogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBleHBpcmVzX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xufSwgdW5kZWZpbmVkPjtcbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBUb2tlbiA9IHYuSW5mZXJPdXRwdXQ8dHlwZW9mIHRva2VuU2NoZW1hPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHRva2VuU2NoZW1hOiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgbmFtZTogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHR5cGU6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXNlcl9pZDogdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB0b2tlbjogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBjcmVhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZXhwaXJlc19hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG4iLCJpbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXIge1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGVtaXRIb29rKGNvbnN0cnVjdG9yOiBhbnksIGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIG9uSG9vayhjb25zdHJ1Y3RvcjogYW55LCBldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIEhvb2tzU3RhdGljPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7fTtcbiAgICBsaXN0ZW5lcnM6IEFycmF5PCguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZD47XG4gICAgb24oZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgZW1pdChldmVudDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD47XG59ICYgVEJhc2U7XG5leHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgSG9va3NTdGF0aWMge1xuICAgIHZhciBlbWl0OiB0eXBlb2YgZW1pdEhvb2s7XG4gICAgdmFyIG9uOiB0eXBlb2Ygb25Ib29rO1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9va3M8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbGlzdGVuZXJzOiBMaXN0ZW5lcltdO1xuICAgICAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICAgICAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgICAgICAgZW1pdEFzeW5jKGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICB9O1xufSAmIFRCYXNlO1xuIiwiZGVjbGFyZSBjb25zdCBQZXJtaXNzaW9uRW50aXR5X2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGVybWlzc2lvbkVudGl0eSBleHRlbmRzIFBlcm1pc3Npb25FbnRpdHlfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gICAgb3JpZ2luOiBzdHJpbmc7XG4gICAgc3ViamVjdDogc3RyaW5nO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM6IHN0cmluZyB8IG51bGwgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGdldCBlZGl0YWJsZSgpOiBib29sZWFuO1xuICAgIGdldCBwYXJzZWRDb25kaXRpb25zKCk6IGFueTtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IGRlZmluZUFiaWxpdHkgfSBmcm9tICdAY2FzbC9hYmlsaXR5JztcbmltcG9ydCBQZXJtaXNzaW9uIGZyb20gJy4vUGVybWlzc2lvbkVudGl0eS50cyc7XG5pbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWNsRW50aXR5IHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgYWJpbGl0eTogUmV0dXJuVHlwZTx0eXBlb2YgZGVmaW5lQWJpbGl0eT47XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8QWNsRW50aXR5Pik7XG4gICAgY2FuKGFjdGlvbjogc3RyaW5nLCBzdWJqZWN0OiBhbnksIG9iamVjdD86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuO1xuICAgIGNhbm5vdChhY3Rpb246IHN0cmluZywgc3ViamVjdDogYW55LCBvYmplY3Q/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYm9vbGVhbjtcbiAgICBzdWJqZWN0KHN1YmplY3Q6IHN0cmluZywgb2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiAmIGltcG9ydChcIkBjYXNsL2FiaWxpdHlcIikuRm9yY2VkU3ViamVjdDxzdHJpbmc+O1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBDb29raWVNYXBFbnRpdHlPcHRpb25zIHtcbiAgICBjb29raWVzPzogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb29raWVNYXBFbnRpdHkge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBjb29raWVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByZWZpeDogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBDb29raWVNYXBFbnRpdHlPcHRpb25zKTtcbiAgICBsb2FkKGNvb2tpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdm9pZDtcbiAgICBnZXQobmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTogdm9pZDtcbiAgICB0b1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgVFlQRVM6ICgpID0+ICh7XG4gICAgaWQ6IHN0cmluZztcbiAgICBsYWJlbDogYW55O1xuICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgY29uZmlnX2ZpZWxkczoge1xuICAgICAgICBkaXJlY3Rvcnk6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGFjY2Vzc0tleUlkPzogdW5kZWZpbmVkO1xuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk/OiB1bmRlZmluZWQ7XG4gICAgICAgIGJ1Y2tldD86IHVuZGVmaW5lZDtcbiAgICAgICAgcmVnaW9uPzogdW5kZWZpbmVkO1xuICAgICAgICBwcmVmaXg/OiB1bmRlZmluZWQ7XG4gICAgICAgIGVuZHBvaW50PzogdW5kZWZpbmVkO1xuICAgIH07XG59IHwge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogYW55O1xuICAgIGNvbmZpZ19maWVsZHM6IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIGJ1Y2tldDoge1xuICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICB9O1xuICAgICAgICByZWdpb246IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgfTtcbiAgICAgICAgcHJlZml4OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGVuZHBvaW50OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGRpcmVjdG9yeT86IHVuZGVmaW5lZDtcbiAgICB9O1xufSlbXTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlQ29uZmlnIHtcbiAgICBzdGF0aWMgZ2V0IFRZUEVTKCk6ICh7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgICAgIGNvbmZpZ19maWVsZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeToge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBidWNrZXQ/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZWdpb24/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBwcmVmaXg/OiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBlbmRwb2ludD86IHVuZGVmaW5lZDtcbiAgICAgICAgfTtcbiAgICB9IHwge1xuICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbjogYW55O1xuICAgICAgICBjb25maWdfZmllbGRzOiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDoge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnVja2V0OiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVnaW9uOiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcHJlZml4OiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkaXJlY3Rvcnk/OiB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgfSlbXTtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgaXNfZGVmYXVsdDogYm9vbGVhbjtcbiAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3RydWN0b3IoZGF0YTogRHJpdmVDb25maWcpO1xuICAgIGdldCBjb25maWdfZmllbGRzKCk6IHt9O1xufVxuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVFbnRyeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiAnZmlsZScgfCAnZGlyZWN0b3J5JztcbiAgICBtZXRhczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBEcml2ZUVudHJ5KTtcbn1cbiIsImRlY2xhcmUgY29uc3QgRmlsZUVudGl0eV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBjcmVhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgICAgICB1cGRhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgIH07XG59ICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGRlbGV0ZWRfYXQ6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZUVudGl0eSBleHRlbmRzIEZpbGVFbnRpdHlfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBkcml2ZTogc3RyaW5nO1xuICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgcHVycG9zZTogc3RyaW5nO1xuICAgIGNsaWVudF9uYW1lOiBzdHJpbmc7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBwdWJsaWM6IGJvb2xlYW47XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIG1ldGFzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBpc0ltYWdlKCk6IGJvb2xlYW47XG59XG5leHBvcnQge307XG4iLCJkZWNsYXJlIGNvbnN0IEZpbGVNZXRhX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlTWV0YSBleHRlbmRzIEZpbGVNZXRhX2Jhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgZmlsZV9pZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIEdpdEJyYW5jaEVudGl0eSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHJlbW90ZTogc3RyaW5nIHwgbnVsbDtcbiAgICBpc19jdXJyZW50OiBib29sZWFuO1xuICAgIGlzX3JlbW90ZTogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBHaXRCcmFuY2hFbnRpdHkpO1xufVxuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2l0Q29tbWl0RW50aXR5IHtcbiAgICBoYXNoOiBzdHJpbmc7XG4gICAgc2hvcnRfaGFzaDogc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBib2R5OiBzdHJpbmc7XG4gICAgYXV0aG9yX25hbWU6IHN0cmluZztcbiAgICBhdXRob3JfZW1haWw6IHN0cmluZztcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoZGF0YTogR2l0Q29tbWl0RW50aXR5KTtcbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlTWFuaWZlc3RCdWlsZEltcG9ydCB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIHRvPzogc3RyaW5nO1xuICAgIHR5cGU6ICdnbG9iYWxfaW1wb3J0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlTWFuaWZlc3RCdWlsZCB7XG4gICAgaW1wb3J0cz86IE1vZHVsZU1hbmlmZXN0QnVpbGRJbXBvcnRbXTtcbn1cbmRlY2xhcmUgY29uc3QgTW9kdWxlTWFuaWZlc3RfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2R1bGVNYW5pZmVzdCBleHRlbmRzIE1vZHVsZU1hbmlmZXN0X2Jhc2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGF1dGhvcj86IHN0cmluZztcbiAgICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGJ1aWxkPzogTW9kdWxlTWFuaWZlc3RCdWlsZDtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSBNb2R1bGVNYW5pZmVzdCBmcm9tICcuL01vZHVsZU1hbmlmZXN0RW50aXR5LnRzJztcbmltcG9ydCBMaWZlY3ljbGVIb29rIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvTGlmZWN5Y2xlSG9vay50cyc7XG5pbnRlcmZhY2UgTW9kdWxlVXBncmFkZUluZm8ge1xuICAgIHNvdXJjZTogJ2dpdCcgfCAnemlwJztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5kZWNsYXJlIGNvbnN0IE1vZHVsZV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3Rvcjx7fT4gJiB0eXBlb2YgTGlmZWN5Y2xlSG9vaztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZHVsZSBleHRlbmRzIE1vZHVsZV9iYXNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBidWlsZDogTW9kdWxlTWFuaWZlc3RbJ2J1aWxkJ107XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgdXBncmFkZV9pbmZvPzogTW9kdWxlVXBncmFkZUluZm87XG4gICAgc2V0RGF0YShkYXRhOiBQYXJ0aWFsPE1vZHVsZSB8IE1vZHVsZU1hbmlmZXN0Pik6IHZvaWQ7XG59XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdpbmF0aW9uRW50aXR5PFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgaXRlbXM6IFRbXTtcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJfcGFnZTogbnVtYmVyO1xuICAgIHRvdGFsX3BhZ2VzOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxQYWdpbmF0aW9uRW50aXR5Pik7XG4gICAgc3RhdGljIGZyb208VCA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KHBheWxvYWQ6IFBhcnRpYWw8UGFnaW5hdGlvbkVudGl0eTxUPj4pOiBQYWdpbmF0aW9uRW50aXR5PFQ+O1xufVxuIiwiZGVjbGFyZSBjb25zdCBQbHVnaW5FbnRpdHlfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbHVnaW5FbnRpdHkgZXh0ZW5kcyBQbHVnaW5FbnRpdHlfYmFzZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWxpYXNlczogc3RyaW5nW107XG4gICAgdmVyc2lvbl9jaGFubmVsOiBzdHJpbmc7XG4gICAgdmVyc2lvbl9hdmFpbGFibGVfY2hhbm5lbHM6IHN0cmluZ1tdO1xufVxuZXhwb3J0IHt9O1xuIiwiZGVjbGFyZSBjb25zdCBSb2xlX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb2xlIGV4dGVuZHMgUm9sZV9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIFBlcm1pc3Npb24gZnJvbSAnLi9QZXJtaXNzaW9uRW50aXR5LnRzJztcbmltcG9ydCB0eXBlIFJvbGUgZnJvbSAnLi9Sb2xlRW50aXR5LnRzJztcbmRlY2xhcmUgY29uc3QgVXNlckVudGl0eV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvciAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBjcmVhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgICAgICB1cGRhdGVkX2F0OiBEYXRlIHwgc3RyaW5nO1xuICAgIH07XG59ICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGRlbGV0ZWRfYXQ6IERhdGUgfCBzdHJpbmcgfCBudWxsO1xuICAgIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXNlckVudGl0eSBleHRlbmRzIFVzZXJFbnRpdHlfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgIHZlcmlmaWVkX2F0PzogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uW107XG4gICAgcm9sZXM/OiBSb2xlW107XG4gICAgZ2V0IGluaXRpYWxzKCk6IHN0cmluZztcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IENvbW1hbmQgYXMgQ29tbWFuZGVyQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgcHJpbnRUYWJsZSwgcHJpbnRPYmplY3QgfSBmcm9tICcuLi91dGlscy9wcmludFRhYmxlLnRzJztcbmltcG9ydCB7IEVtbWl0dGVyU2VydmljZSwgTG9nZ2VyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xuaW1wb3J0ICogYXMgaW5xdWlyZXIgZnJvbSAnQGlucXVpcmVyL3Byb21wdHMnO1xuZXhwb3J0IGludGVyZmFjZSBDbGlFdmVudHMge1xuICAgICdjbGk6cmVnaXN0ZXJlZCc6IHtcbiAgICAgICAgY2xpOiBDbGlTZXJ2aWNlO1xuICAgIH07XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBDbGlDb21tYW5kIGV4dGVuZHMgQ29tbWFuZGVyQ29tbWFuZCB7XG4gICAgX19pc19jbGlfY29tbWFuZDogYm9vbGVhbjtcbiAgICB0YWJsZTogdHlwZW9mIHByaW50VGFibGU7XG4gICAgb2JqZWN0OiB0eXBlb2YgcHJpbnRPYmplY3Q7XG4gICAgY29sb3JzOiBjaGFsay5DaGFsayAmIGNoYWxrLkNoYWxrRnVuY3Rpb24gJiB7XG4gICAgICAgIHN1cHBvcnRzQ29sb3I6IGNoYWxrLkNvbG9yU3VwcG9ydCB8IGZhbHNlO1xuICAgICAgICBMZXZlbDogY2hhbGsuTGV2ZWw7XG4gICAgICAgIENvbG9yOiAoXCJibGFja1wiIHwgXCJyZWRcIiB8IFwiZ3JlZW5cIiB8IFwieWVsbG93XCIgfCBcImJsdWVcIiB8IFwibWFnZW50YVwiIHwgXCJjeWFuXCIgfCBcIndoaXRlXCIgfCBcImdyYXlcIiB8IFwiZ3JleVwiIHwgXCJibGFja0JyaWdodFwiIHwgXCJyZWRCcmlnaHRcIiB8IFwiZ3JlZW5CcmlnaHRcIiB8IFwieWVsbG93QnJpZ2h0XCIgfCBcImJsdWVCcmlnaHRcIiB8IFwibWFnZW50YUJyaWdodFwiIHwgXCJjeWFuQnJpZ2h0XCIgfCBcIndoaXRlQnJpZ2h0XCIpIHwgKFwiYmdCbGFja1wiIHwgXCJiZ1JlZFwiIHwgXCJiZ0dyZWVuXCIgfCBcImJnWWVsbG93XCIgfCBcImJnQmx1ZVwiIHwgXCJiZ01hZ2VudGFcIiB8IFwiYmdDeWFuXCIgfCBcImJnV2hpdGVcIiB8IFwiYmdHcmF5XCIgfCBcImJnR3JleVwiIHwgXCJiZ0JsYWNrQnJpZ2h0XCIgfCBcImJnUmVkQnJpZ2h0XCIgfCBcImJnR3JlZW5CcmlnaHRcIiB8IFwiYmdZZWxsb3dCcmlnaHRcIiB8IFwiYmdCbHVlQnJpZ2h0XCIgfCBcImJnTWFnZW50YUJyaWdodFwiIHwgXCJiZ0N5YW5CcmlnaHRcIiB8IFwiYmdXaGl0ZUJyaWdodFwiKTtcbiAgICAgICAgRm9yZWdyb3VuZENvbG9yOiBcImJsYWNrXCIgfCBcInJlZFwiIHwgXCJncmVlblwiIHwgXCJ5ZWxsb3dcIiB8IFwiYmx1ZVwiIHwgXCJtYWdlbnRhXCIgfCBcImN5YW5cIiB8IFwid2hpdGVcIiB8IFwiZ3JheVwiIHwgXCJncmV5XCIgfCBcImJsYWNrQnJpZ2h0XCIgfCBcInJlZEJyaWdodFwiIHwgXCJncmVlbkJyaWdodFwiIHwgXCJ5ZWxsb3dCcmlnaHRcIiB8IFwiYmx1ZUJyaWdodFwiIHwgXCJtYWdlbnRhQnJpZ2h0XCIgfCBcImN5YW5CcmlnaHRcIiB8IFwid2hpdGVCcmlnaHRcIjtcbiAgICAgICAgQmFja2dyb3VuZENvbG9yOiBcImJnQmxhY2tcIiB8IFwiYmdSZWRcIiB8IFwiYmdHcmVlblwiIHwgXCJiZ1llbGxvd1wiIHwgXCJiZ0JsdWVcIiB8IFwiYmdNYWdlbnRhXCIgfCBcImJnQ3lhblwiIHwgXCJiZ1doaXRlXCIgfCBcImJnR3JheVwiIHwgXCJiZ0dyZXlcIiB8IFwiYmdCbGFja0JyaWdodFwiIHwgXCJiZ1JlZEJyaWdodFwiIHwgXCJiZ0dyZWVuQnJpZ2h0XCIgfCBcImJnWWVsbG93QnJpZ2h0XCIgfCBcImJnQmx1ZUJyaWdodFwiIHwgXCJiZ01hZ2VudGFCcmlnaHRcIiB8IFwiYmdDeWFuQnJpZ2h0XCIgfCBcImJnV2hpdGVCcmlnaHRcIjtcbiAgICAgICAgTW9kaWZpZXJzOiBcInJlc2V0XCIgfCBcImJvbGRcIiB8IFwiZGltXCIgfCBcIml0YWxpY1wiIHwgXCJ1bmRlcmxpbmVcIiB8IFwiaW52ZXJzZVwiIHwgXCJoaWRkZW5cIiB8IFwic3RyaWtldGhyb3VnaFwiIHwgXCJ2aXNpYmxlXCI7XG4gICAgICAgIHN0ZGVycjogY2hhbGsuQ2hhbGsgJiB7XG4gICAgICAgICAgICBzdXBwb3J0c0NvbG9yOiBjaGFsay5Db2xvclN1cHBvcnQgfCBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGlucXVpcmVyOiB0eXBlb2YgaW5xdWlyZXI7XG4gICAgbmVlZHM6IFNldDxzdHJpbmc+O1xuICAgIG5lZWQoLi4uYXJnczogc3RyaW5nW10pOiB0aGlzO1xuICAgIGNyZWF0ZUNvbW1hbmQobmFtZT86IHN0cmluZyk6IENsaUNvbW1hbmQ7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbGlTZXJ2aWNlIGV4dGVuZHMgQ2xpQ29tbWFuZCB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRpcnM6IFNldDxzdHJpbmc+O1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBlbW1pdHRlcjogRW1taXR0ZXJTZXJ2aWNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIHN0YXRpYyBjcmVhdGUobmFtZT86IHN0cmluZyk6IENsaVNlcnZpY2U7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHRoaXM7XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB0aGlzO1xuICAgIHNldEVtbWl0dGVyKGVtbWl0dGVyOiBFbW1pdHRlclNlcnZpY2UpOiB0aGlzO1xuICAgIGNyZWF0ZUNvbW1hbmQobmFtZT86IHN0cmluZyk6IENsaVNlcnZpY2U7XG4gICAgYWRkRGlyKGRpcjogc3RyaW5nKTogdGhpcztcbiAgICBsb2FkRGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBsb2FkKCk6IFByb21pc2U8dGhpcz47XG59XG4iLCJpbXBvcnQgQ2xpU2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL0NsaVNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJ0ZVRlc3RlclNlcnZpY2UgZXh0ZW5kcyBDbGlTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpO1xuICAgIGFkZChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGV4ZWN1dGUoYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+O1xufVxuIiwiaW1wb3J0IGNwIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xpV3JhcHBlclNlcnZpY2Uge1xuICAgIHByb2Nlc3M6IGNwLkNoaWxkUHJvY2VzcyB8IG51bGw7XG4gICAgYXBwQmFzZVBhdGg6IHN0cmluZztcbiAgICBlbnY6IE1hcDxzdHJpbmcsIGFueT47XG4gICAgYXJnczogc3RyaW5nW107XG4gICAgY29uZmlnQXJndW1lbnRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGNvbmZpZ0ZpbGVzOiBzdHJpbmdbXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgc3RhdGljIGNyZWF0ZSgpOiBDbGlXcmFwcGVyU2VydmljZTtcbiAgICBzZXRCYXNlUGF0aChwYXRoOiBzdHJpbmcpOiB0aGlzO1xuICAgIHNldERlYnVnKGRlYnVnOiBib29sZWFuKTogdGhpcztcbiAgICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKTogdGhpcztcbiAgICBhZGRDb25maWdBcmd1bWVudChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXM7XG4gICAgYWRkQ29uZmlnRmlsZSguLi5maWxlUGF0aHM6IHN0cmluZ1tdKTogdGhpcztcbiAgICBhZGRFbnYoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB0aGlzO1xuICAgIGxvYWRDb25maWdBcmd1bWVudHMoKTogdm9pZDtcbiAgICBsb2FkQ29uZmlnRmlsZXMoKTogdm9pZDtcbiAgICBsb2FkRW52aXJvbm1lbnQoKTogdm9pZDtcbiAgICBsb2FkQXJndW1lbnRzKGFyZ3M/OiBzdHJpbmdbXSk6IHZvaWQ7XG4gICAga2lsbChjb2RlPzogbnVtYmVyKTogdm9pZDtcbiAgICBydW4oYXJncz86IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBDb25maWdTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvQ29uZmlnU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0ZTU2VydmljZU9wdGlvbnMge1xuICAgIGRpcmVjdG9yeT86IHN0cmluZztcbiAgICBmb3JtYXQ/OiAnanNvbicgfCAneW1sJztcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ0ZTU2VydmljZSBleHRlbmRzIENvbmZpZ1NlcnZpY2Uge1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBmb3JtYXQ6ICdqc29uJyB8ICd5bWwnO1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDb25maWdGU1NlcnZpY2VPcHRpb25zKTtcbiAgICB3cml0ZShlbnRyeTogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHdyaXRlU3luYyhlbnRyeTogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkO1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBwcml2YXRlIHBhcnNlS2V5O1xuICAgIHNldChmdWxsS2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHNvdXJjZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgdW5zZXQoZnVsbEtleTogc3RyaW5nKTogdm9pZDtcbn1cbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgdHlwZSBFbnZTY2hlbWEgPSB2LkluZmVyT3V0cHV0PHR5cGVvZiBlbnZTY2hlbWE+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgZW52U2NoZW1hOiB2Lkxvb3NlT2JqZWN0U2NoZW1hPHtcbiAgICByZWFkb25seSBOT0RFX0VOVjogdi5PcHRpb25hbFNjaGVtYTx2LlVuaW9uU2NoZW1hPFt2LkxpdGVyYWxTY2hlbWE8XCJkZXZlbG9wbWVudFwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJwcm9kdWN0aW9uXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcInRlc3RcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIFwiZGV2ZWxvcG1lbnRcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0JBU0VfUEFUSDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfU1RPUkFHRV9QQVRIOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0FQUF9VUkw6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX1BPUlQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBudW1iZXI+XT4sIFwiMzAwMFwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfSE9TVDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCBcIjAuMC4wLjBcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0xPR19MRVZFTDogdi5PcHRpb25hbFNjaGVtYTx2LlBpY2tsaXN0U2NoZW1hPFtcImVycm9yXCIsIFwid2FyblwiLCBcImluZm9cIiwgXCJkZWJ1Z1wiXSwgdW5kZWZpbmVkPiwgXCJpbmZvXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9MSUZFQ1lDTEVfREVCVUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwidHJ1ZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJmYWxzZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCIxXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcIjBcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPFwiMFwiIHwgXCIxXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiwgYm9vbGVhbj4sIHYuQm9vbGVhblNjaGVtYTx1bmRlZmluZWQ+XT4sIFwiZmFsc2VcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NMSUVOVF9DT05GSUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pl0+LCBcIlwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj5dPiwgXCJcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19BUkdVTUVOVFM6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pl0+LCBcIlwiPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX0ZJTEVTOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZywgc3RyaW5nW10+XT4sIFwiXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfREVCVUc6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwidHJ1ZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJmYWxzZVwiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCIxXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcIjBcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPFwiMFwiIHwgXCIxXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiwgYm9vbGVhbj4sIHYuQm9vbGVhblNjaGVtYTx1bmRlZmluZWQ+XT4sIFwiZmFsc2VcIj47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19EUklWRVI6IHYuT3B0aW9uYWxTY2hlbWE8di5QaWNrbGlzdFNjaGVtYTxbXCJmc1wiLCBcInMzXCJdLCB1bmRlZmluZWQ+LCBcImZzXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfRlNfUEFUSDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfRlNfRk9STUFUOiB2Lk9wdGlvbmFsU2NoZW1hPHYuUGlja2xpc3RTY2hlbWE8W1wianNvblwiLCBcInltbFwiXSwgdW5kZWZpbmVkPiwgXCJqc29uXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfUzNfQlVDS0VUOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19SRUdJT046IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX1MzX0FDQ0VTU19LRVlfSUQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBaRU5JVEhfQ09ORklHX1MzX1NFQ1JFVF9BQ0NFU1NfS0VZOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19TRVNTSU9OX1RPS0VOOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgWkVOSVRIX0NPTkZJR19TM19FTkRQT0lOVDogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9DT05GSUdfUzNfUFJFRklYOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIFwiXCI+O1xuICAgIHJlYWRvbmx5IFpFTklUSF9QTFVHSU5TX0RJUlM6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nLCBzdHJpbmdbXT5dPiwgXCJcIj47XG59LCB1bmRlZmluZWQ+O1xuIiwiaW1wb3J0IGRvdGVudiBmcm9tICdkb3RlbnYnO1xuaW1wb3J0IHR5cGUgeyBFbnZTY2hlbWEgfSBmcm9tICcjc2VydmVyL3NjaGVtYXMvZW52U2NoZW1hLnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVudlNlcnZpY2Uge1xuICAgIHByaXZhdGUgZW52O1xuICAgIHByaXZhdGUgZmlsZXM7XG4gICAgc3RhdGljIGNyZWF0ZSgpOiBFbnZTZXJ2aWNlO1xuICAgIHN0YXRpYyBkb3RFbnZDb25maWcob3B0aW9ucz86IGRvdGVudi5Eb3RlbnZDb25maWdPcHRpb25zKTogZG90ZW52LkRvdGVudkNvbmZpZ091dHB1dDtcbiAgICBzZXRGaWxlcyhmaWxlczogc3RyaW5nW10pOiB0aGlzO1xuICAgIGFkZEZpbGUoZmlsZTogc3RyaW5nKTogdGhpcztcbiAgICBsb2FkKCk6IHRoaXM7XG4gICAgZ2V0IHByb2R1Y3Rpb24oKTogYm9vbGVhbjtcbiAgICBnZXQgZGV2ZWxvcG1lbnQoKTogYm9vbGVhbjtcbiAgICBnZXQgdGVzdCgpOiBib29sZWFuO1xuICAgIGhhczxLIGV4dGVuZHMga2V5b2YgRW52U2NoZW1hPihrZXk6IEspOiBib29sZWFuO1xuICAgIGdldDxLIGV4dGVuZHMga2V5b2YgRW52U2NoZW1hPihrZXk6IEssIGRlZmF1bHRWYWx1ZT86IGFueSk6IEVudlNjaGVtYVtLXTtcbiAgICBzZXQ8SyBleHRlbmRzIGtleW9mIEVudlNjaGVtYT4oa2V5OiBLLCB2YWx1ZTogRW52U2NoZW1hW0tdKTogdm9pZDtcbn1cbiIsImltcG9ydCB7IHR5cGUgTG9nZ2VyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xuaW1wb3J0IENvbmZpZ1NlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIEVudlNlcnZpY2UgZnJvbSAnLi9FbnZTZXJ2aWNlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnTWFuYWdlck9wdGlvbnMge1xuICAgIGVudjogRW52U2VydmljZTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgc2lsZW50PzogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ01hbmFnZXJTZXJ2aWNlIHtcbiAgICBlbnY6IEVudlNlcnZpY2U7XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIHNpbGVudDogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb25maWdNYW5hZ2VyT3B0aW9ucyk7XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zOiBDb25maWdNYW5hZ2VyT3B0aW9ucyk6IENvbmZpZ01hbmFnZXJTZXJ2aWNlO1xuICAgIHByaXZhdGUgbG9hZFMzQ29uZmlnO1xuICAgIHByaXZhdGUgbG9hZEZTQ29uZmlnO1xuICAgIGxvYWRDb25maWdGcm9tRW52KHNlcnZpY2U6IENvbmZpZ1NlcnZpY2UpOiB2b2lkO1xuICAgIGxvYWRDb25maWdGcm9tRmlsZShzZXJ2aWNlOiBDb25maWdTZXJ2aWNlLCBmaWxlOiBzdHJpbmcpOiB2b2lkO1xuICAgIGxvYWRDb25maWdGcm9tRmlsZXMoc2VydmljZTogQ29uZmlnU2VydmljZSwgZmlsZXM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBsb2FkKCk6IFByb21pc2U8Q29uZmlnU2VydmljZT47XG59XG4iLCJpbXBvcnQgbXMgZnJvbSAnbXMnO1xuaW1wb3J0IHR5cGUgRHJpdmVFbnRyeSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0RyaXZlRW50cnlFbnRpdHkudHMnO1xuZXhwb3J0IGludGVyZmFjZSBVcmxPcHRpb25zIHtcbiAgICBleHBpcmVzPzogbXMuU3RyaW5nVmFsdWU7XG59XG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFVybE9wdGlvbnMge1xuICAgIGV4cGlyZXM/OiBtcy5TdHJpbmdWYWx1ZTtcbiAgICBtaW1lX3R5cGVzPzogc3RyaW5nW107XG4gICAgbWF4X3NpemU/OiBudW1iZXI7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZUJhc2VHYXRld2F5IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3RydWN0b3IoZGF0YTogUGljazxEcml2ZUJhc2VHYXRld2F5LCAnaWQnIHwgJ25hbWUnIHwgJ2Rlc2NyaXB0aW9uJyB8ICdjb25maWcnPik7XG4gICAgbGlzdChmb2xkZXI/OiBzdHJpbmcpOiBQcm9taXNlPERyaXZlRW50cnlbXT47XG4gICAgZmluZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxEcml2ZUVudHJ5PjtcbiAgICBleGlzdHMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG4gICAgcmVhZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxVaW50OEFycmF5PjtcbiAgICByZWFkU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPE5vZGVKUy5SZWFkYWJsZVN0cmVhbT47XG4gICAgd3JpdGUoZmlsZW5hbWU6IHN0cmluZywgZGF0YTogVWludDhBcnJheSk6IFByb21pc2U8dm9pZD47XG4gICAgd3JpdGVTdHJlYW0oZmlsZW5hbWU6IHN0cmluZywgc3RyZWFtOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlbGV0ZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICB1cmwoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9ucz86IFVybE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG4gICAgdXBsb2FkVXJsKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBVcGxvYWRVcmxPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuIiwiaW1wb3J0IHsgUzNDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuaW1wb3J0IHR5cGUgeyBJbmZlck91dHB1dCB9IGZyb20gJ3ZhbGlib3QnO1xuaW1wb3J0IEJhc2VEcml2ZSBmcm9tICcjc2VydmVyL2dhdGV3YXlzL0RyaXZlQmFzZUdhdGV3YXkudHMnO1xuZGVjbGFyZSBjb25zdCBzY2hlbWE6IGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0U2NoZW1hPHtcbiAgICByZWFkb25seSBidWNrZXQ6IGltcG9ydChcInZhbGlib3RcIikuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW2ltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIGltcG9ydChcInZhbGlib3RcIikuTWluTGVuZ3RoQWN0aW9uPHN0cmluZywgMSwgdW5kZWZpbmVkPl0+O1xuICAgIHJlYWRvbmx5IHJlZ2lvbjogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGFjY2Vzc0tleUlkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFtpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCBpbXBvcnQoXCJ2YWxpYm90XCIpLk1pbkxlbmd0aEFjdGlvbjxzdHJpbmcsIDEsIHVuZGVmaW5lZD5dPjtcbiAgICByZWFkb25seSBzZWNyZXRBY2Nlc3NLZXk6IGltcG9ydChcInZhbGlib3RcIikuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW2ltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIGltcG9ydChcInZhbGlib3RcIikuTWluTGVuZ3RoQWN0aW9uPHN0cmluZywgMSwgdW5kZWZpbmVkPl0+O1xuICAgIHJlYWRvbmx5IHNlc3Npb25Ub2tlbjogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGVuZHBvaW50OiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgcHJlZml4OiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG59LCB1bmRlZmluZWQ+O1xuZXhwb3J0IHR5cGUgUzNEcml2ZUNvbmZpZyA9IEluZmVyT3V0cHV0PHR5cGVvZiBzY2hlbWE+O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVTMyBleHRlbmRzIEJhc2VEcml2ZSB7XG4gICAgcHJpdmF0ZSBzY2hlbWE7XG4gICAgcHJpdmF0ZSBfY2xpZW50PztcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQaWNrPEJhc2VEcml2ZSwgJ2lkJyB8ICduYW1lJyB8ICdkZXNjcmlwdGlvbicgfCAnY29uZmlnJz4pO1xuICAgIGdldCB2YWxpZCgpOiBib29sZWFuO1xuICAgIHByaXZhdGUgY2hlY2tWYWxpZDtcbiAgICBwcm90ZWN0ZWQgZ2V0IGJ1Y2tldCgpOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGdldCBwcmVmaXgoKTogc3RyaW5nO1xuICAgIHByaXZhdGUgZ2V0S2V5O1xuICAgIHByb3RlY3RlZCBnZXQgY2xpZW50KCk6IFMzQ2xpZW50O1xuICAgIGV4aXN0czogQmFzZURyaXZlWydleGlzdHMnXTtcbiAgICBsaXN0OiBCYXNlRHJpdmVbJ2xpc3QnXTtcbiAgICBmaW5kOiBCYXNlRHJpdmVbJ2ZpbmQnXTtcbiAgICBta2RpcihfZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgcmVhZDogQmFzZURyaXZlWydyZWFkJ107XG4gICAgcmVhZFN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICAgIHdyaXRlOiBCYXNlRHJpdmVbJ3dyaXRlJ107XG4gICAgd3JpdGVTdHJlYW0oZmlsZW5hbWU6IHN0cmluZywgc3RyZWFtOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlbGV0ZTogQmFzZURyaXZlWydkZWxldGUnXTtcbiAgICB1cmw6IEJhc2VEcml2ZVsndXJsJ107XG4gICAgdXBsb2FkVXJsOiBCYXNlRHJpdmVbJ3VwbG9hZFVybCddO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IENvbmZpZ1NlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLnRzJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5pbXBvcnQgUzNEcml2ZSBmcm9tICcjc2VydmVyL2dhdGV3YXlzL0RyaXZlUzNHYXRld2F5LnRzJztcbmltcG9ydCB0eXBlIHsgUzNEcml2ZUNvbmZpZyB9IGZyb20gJyNzZXJ2ZXIvZ2F0ZXdheXMvRHJpdmVTM0dhdGV3YXkudHMnO1xuaW50ZXJmYWNlIEluaXRpT3B0aW9ucyBleHRlbmRzIE9taXQ8UzNEcml2ZUNvbmZpZywgJ25hbWUnIHwgJ2Rlc2NyaXB0aW9uJz4ge1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1MzU2VydmljZSBleHRlbmRzIENvbmZpZ1NlcnZpY2Uge1xuICAgIHByZWZpeDogc3RyaW5nO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBkcml2ZTogUzNEcml2ZTtcbiAgICBidWNrZXQ6IHN0cmluZztcbiAgICByZWdpb246IHN0cmluZztcbiAgICBlbmRwb2ludD86IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJbml0aU9wdGlvbnMpO1xuICAgIHByaXZhdGUgcGFyc2VLZXk7XG4gICAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHNldChmdWxsS2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHNvdXJjZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgdW5zZXQoZnVsbEtleTogc3RyaW5nKTogdm9pZDtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgUmVxdWVzdEluaXQgfSBmcm9tICd1bmRpY2knO1xuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZGVkRmV0Y2hPcHRpb25zIGV4dGVuZHMgUmVxdWVzdEluaXQge1xuICAgIHByb3h5Pzogc3RyaW5nO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG93bmxvYWRTZXJ2aWNlIHtcbiAgICBmZXRjaCh1cmw6IHN0cmluZywgb3B0aW9ucz86IERvd25sb2FkZWRGZXRjaE9wdGlvbnMpOiBQcm9taXNlPGltcG9ydChcInVuZGljaVwiKS5SZXNwb25zZT47XG4gICAgc3RyZWFtKHVybDogc3RyaW5nLCBvcHRpb25zPzogRG93bmxvYWRlZEZldGNoT3B0aW9ucyk6IFByb21pc2U8e1xuICAgICAgICBzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbTtcbiAgICAgICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICB9Pjtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhZFN0cmVhbSB9IGZyb20gJ2ZzJztcbmltcG9ydCB0eXBlIG1zIGZyb20gJ21zJztcbmltcG9ydCB0eXBlIERyaXZlRW50cnkgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9Ecml2ZUVudHJ5RW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVVcmxPcHRpb25zIHtcbiAgICBleHBpcmVzPzogbXMuU3RyaW5nVmFsdWU7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyaXZlVXBsb2FkVXJsT3B0aW9ucyB7XG4gICAgZXhwaXJlcz86IG1zLlN0cmluZ1ZhbHVlO1xuICAgIG1pbWVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgICBtYXhfc2l6ZT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVDb250cmFjdCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbGlzdChmb2xkZXI/OiBzdHJpbmcpOiBQcm9taXNlPERyaXZlRW50cnlbXT47XG4gICAgZmluZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxEcml2ZUVudHJ5PjtcbiAgICBleGlzdHMoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG4gICAgcmVhZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxVaW50OEFycmF5PjtcbiAgICB3cml0ZShmaWxlbmFtZTogc3RyaW5nLCBkYXRhOiBVaW50OEFycmF5KTogUHJvbWlzZTx2b2lkPjtcbiAgICB3cml0ZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCBzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVybChmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogRHJpdmVVcmxPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHVwbG9hZFVybChmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogRHJpdmVVcGxvYWRVcmxPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHJlYWRTdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8UmVhZFN0cmVhbT47XG59XG4iLCJpbXBvcnQgRHJpdmVFbnRyeSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0RyaXZlRW50cnlFbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgeyBEcml2ZVVybE9wdGlvbnMgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9Ecml2ZUNvbnRyYWN0LnRzJztcbmltcG9ydCBCYXNlRHJpdmUgZnJvbSAnI3NlcnZlci9nYXRld2F5cy9Ecml2ZUJhc2VHYXRld2F5LnRzJztcbmltcG9ydCB0eXBlIExvZ2dlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmludGVyZmFjZSBWYWxpZGF0ZVVwbG9hZE9wdGlvbnMge1xuICAgIG1pbWVfdHlwZXM6IHN0cmluZztcbiAgICBtYXhTaXplPzogbnVtYmVyO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgZ2F0ZXdheXM6IE1hcDxzdHJpbmcsIHR5cGVvZiBCYXNlRHJpdmU+O1xuICAgIGRyaXZlczogTWFwPHN0cmluZywgQmFzZURyaXZlPjtcbiAgICBzZWxlY3RlZD86IHN0cmluZztcbiAgICBkZWZhdWx0RHJpdmU/OiBzdHJpbmc7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGdldCBjdXJyZW50KCk6IEJhc2VEcml2ZSB8IHVuZGVmaW5lZDtcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxEcml2ZVNlcnZpY2U+KTtcbiAgICBsaXN0RHJpdmVzKCk6IHtcbiAgICAgICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIH1bXTtcbiAgICBnZXQobmFtZT86IHN0cmluZyk6IEJhc2VEcml2ZTtcbiAgICB1c2UobmFtZT86IHN0cmluZyk6IERyaXZlU2VydmljZTtcbiAgICBsaXN0KGZvbGRlcj86IHN0cmluZyk6IFByb21pc2U8RHJpdmVFbnRyeVtdPjtcbiAgICBmaW5kKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPERyaXZlRW50cnk+O1xuICAgIGV4aXN0cyhmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICByZWFkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xuICAgIHJlYWRTdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8Tm9kZUpTLlJlYWRhYmxlU3RyZWFtPjtcbiAgICByZWFkQXNUZXh0KGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gICAgd3JpdGUoZmlsZW5hbWU6IHN0cmluZywgcGF5bG9hZDogVWludDhBcnJheSB8IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUHJvbWlzZTx2b2lkPjtcbiAgICB3cml0ZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCBzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8dm9pZD47XG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgYSBVUkwgZm9yIGEgZmlsZSBpbiB0aGUgZHJpdmUuXG4gICAgICogQHBhcmFtIHBheWxvYWQgIEZpbGUgaW5zdGFuY2UsIEZpbGUgSUQsIERyaXZlRW50cnkgaW5zdGFuY2Ugb3IgZmlsZW5hbWUgc3RyaW5nXG4gICAgICogQHBhcmFtIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICAgKi9cbiAgICB1cmwoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9ucz86IERyaXZlVXJsT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbiAgICB1cGxvYWRVcmwoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9ucz86IERyaXZlVXJsT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbiAgICAvKipcbiAgICAgKiBVcGxvYWQgYSBmaWxlIGZyb20gdGhlIGxvY2FsIGZpbGVzeXN0ZW0gdG8gdGhlIGRyaXZlLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgZmlsZW5hbWUgaW4gbG9jYWwgZmlsZXN5c3RlbVxuICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvblxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgdXBsb2FkKHNvdXJjZTogc3RyaW5nLCBkZXN0aW5hdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICAvKipcbiAgICAgKiBEb3dubG9hZCBhIGZpbGUgZnJvbSB0aGUgZHJpdmUgdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uXG4gICAgICogQHBhcmFtIGZpbGVuYW1lIGZpbGVuYW1lIGluIHRoZSBkcml2ZVxuICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvblxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZG93bmxvYWQoZmlsZW5hbWU6IHN0cmluZywgZGVzdGluYXRpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBjcmVhdGVEZWZhdWx0RHJpdmVzKCk6IFByb21pc2U8dm9pZD47XG4gICAgdmFsaWRhdGVVcGxvYWQob3B0aW9uczogVmFsaWRhdGVVcGxvYWRPcHRpb25zLCBmaWxlOiB7XG4gICAgICAgIG1pbWV0eXBlOiBzdHJpbmc7XG4gICAgICAgIHNpemU6IG51bWJlcjtcbiAgICB9KTogdm9pZDtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgS3lzZWx5IH0gZnJvbSBcImt5c2VseVwiO1xuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRpb25FbnRpeURhdGEge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZyB8IG51bGw7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBleGVjdXRlZEF0OiBEYXRlIHwgbnVsbDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pZ3JhdGlvbkVudGl0eSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIGV4ZWN1dGVkQXQ6IERhdGUgfCBudWxsO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IE1pZ3JhdGlvbkVudGl5RGF0YSk7XG4gICAgdXAoZGI6IEt5c2VseTxhbnk+KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkb3duKGRiOiBLeXNlbHk8YW55Pik6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlcXVlc3QsIFJlc3BvbnNlLCBDb29raWVPcHRpb25zIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0Nvb2tpZU1hcEVudGl0eS50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb29raWVNYXBFbnRpdHkgZXh0ZW5kcyBCYXNlIHtcbiAgICByZXF1ZXN0OiBSZXF1ZXN0O1xuICAgIHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICBjb25zdHJ1Y3RvcihyZXF1ZXN0OiBSZXF1ZXN0LCByZXNwb25zZTogUmVzcG9uc2UpO1xuICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBDb29raWVPcHRpb25zKTogdm9pZDtcbn1cbiIsImltcG9ydCBDb29raWVNYXBFbnRpdHkgZnJvbSBcIiNzZXJ2ZXIvZW50aXRpZXMvQ29va2llTWFwRW50aXR5LnRzXCI7XG5pbXBvcnQgQ29udGFpbmVyU2VydmljZSBmcm9tIFwiI3NoYXJlZC9zZXJ2aWNlcy9Db250YWluZXJTZXJ2aWNlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgdHlwZSB7IFJlc29sdmFibGVIZWFkIH0gZnJvbSAnQHVuaGVhZC92dWUnO1xuaW1wb3J0IENvbmZpZ1NlcnZpY2UgZnJvbSBcIiNzaGFyZWQvc2VydmljZXMvQ29uZmlnU2VydmljZS50c1wiO1xuZXhwb3J0IGludGVyZmFjZSBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHlPcHRpb25zIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICByZXF1ZXN0OiBSZXF1ZXN0O1xuICAgIHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICBzdGF0ZT86IE1hcDxzdHJpbmcsIGFueT47XG4gICAgbm9kZUNvbnRhaW5lcj86IENvbnRhaW5lclNlcnZpY2U7XG4gICAgbm9kZUNvbmZpZz86IENvbmZpZ1NlcnZpY2U7XG4gICAgbm9kZVN0YXRlPzogTWFwPHN0cmluZywgYW55PjtcbiAgICBicm93c2VyQ29udGFpbmVyPzogQ29udGFpbmVyU2VydmljZTtcbiAgICBicm93c2VyQ29uZmlnPzogQ29uZmlnU2VydmljZTtcbiAgICBicm93c2VyU3RhdGU/OiBNYXA8c3RyaW5nLCBhbnk+O1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICByZXF1ZXN0OiBSZXF1ZXN0O1xuICAgIHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgICBjb29raWVzOiBDb29raWVNYXBFbnRpdHk7XG4gICAgaGVhZDogUmVzb2x2YWJsZUhlYWRbXTtcbiAgICBub2RlQ29udGFpbmVyOiBDb250YWluZXJTZXJ2aWNlO1xuICAgIG5vZGVDb25maWc6IENvbmZpZ1NlcnZpY2U7XG4gICAgbm9kZVN0YXRlOiBNYXA8c3RyaW5nLCBhbnk+O1xuICAgIGJyb3dzZXJDb250YWluZXI6IENvbnRhaW5lclNlcnZpY2U7XG4gICAgYnJvd3NlckNvbmZpZzogQ29uZmlnU2VydmljZTtcbiAgICBicm93c2VyU3RhdGU6IE1hcDxzdHJpbmcsIGFueT47XG4gICAgY29uc3RydWN0b3IoZGF0YTogUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5T3B0aW9ucyk7XG4gICAgc2V0QnJvd3NlclN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgICBzZXROb2RlU3RhdGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgICBzZXRCcm93c2VyQ29udGFpbmVyVmFsdWUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldE5vZGVDb250YWluZXJWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gICAgc2V0Q29udGFpbmVyVmFsdWUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICAgIHNldEJyb3dzZXJDb25maWdWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gICAgc2V0Tm9kZUNvbmZpZ1ZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgICBzZXRDb25maWdWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG59XG4iLCJpbXBvcnQgQmFzZUFjbCBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0FjbEVudGl0eS50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBY2wgZXh0ZW5kcyBCYXNlQWNsIHtcbiAgICBhdXRob3JpemUoYWN0aW9uOiBzdHJpbmcsIHN1YmplY3Q6IGFueSwgb2JqZWN0PzogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQ7XG59XG4iLCJpbXBvcnQgdHlwZSBBY2wgZnJvbSAnI3NlcnZlci9lbnRpdGllcy9BY2xFbnRpdHkudHMnO1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDb250ZXh0IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbiAgICBib2R5OiBhbnk7XG4gICAgY29va2llOiBhbnk7XG4gICAgdXBsb2FkOiBhbnk7XG4gICAgYWNsOiBBY2w7XG4gICAgcmVxdWVzdDogUmVxdWVzdDtcbiAgICByZXNwb25zZTogUmVzcG9uc2U7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBIdHRwQ29udGV4dCB9IGZyb20gXCIuL0h0dHBDb250ZXh0Q29udHJhY3RcIjtcbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXJlY3Qge1xuICAgIHJlZGlyZWN0OiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBIYW5kbGVSZXN1bHQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgUmVkaXJlY3QgfCB2b2lkO1xuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlIHtcbiAgICBoYW5kbGUoY3R4OiBhbnkpOiBIYW5kbGVSZXN1bHQgfCBQcm9taXNlPEhhbmRsZVJlc3VsdD47XG59XG50eXBlIEV4dHJhY3RNaWRkbGV3YXJlQ29udGV4dDxNIGV4dGVuZHMgTWlkZGxld2FyZT4gPSBBd2FpdGVkPFJldHVyblR5cGU8TVsnaGFuZGxlJ10+PiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPyBBd2FpdGVkPFJldHVyblR5cGU8TVsnaGFuZGxlJ10+PiA6IHt9O1xudHlwZSBQcm9jZXNzTWlkZGxld2FyZUFycmF5PFQgZXh0ZW5kcyByZWFkb25seSBNaWRkbGV3YXJlW10+ID0gVCBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBGaXJzdCBleHRlbmRzIE1pZGRsZXdhcmUsIC4uLmluZmVyIFJlc3QgZXh0ZW5kcyByZWFkb25seSBNaWRkbGV3YXJlW11dID8gRXh0cmFjdE1pZGRsZXdhcmVDb250ZXh0PEZpcnN0PiAmIFByb2Nlc3NNaWRkbGV3YXJlQXJyYXk8UmVzdD4gOiB7fTtcbmV4cG9ydCB0eXBlIE1pZGRsZXdhcmVIYW5kbGVSZXN1bHQ8VCBleHRlbmRzIHJlYWRvbmx5IE1pZGRsZXdhcmVbXSA9IHJlYWRvbmx5IE1pZGRsZXdhcmVbXT4gPSBQcm9jZXNzTWlkZGxld2FyZUFycmF5PFQ+O1xuZXhwb3J0IGludGVyZmFjZSBIYW5kbGVyPFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgKGN0eDogSHR0cENvbnRleHQgJiBUKTogUHJvbWlzZTxhbnk+IHwgYW55O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBIYW5kbGVyLCBNaWRkbGV3YXJlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QudHMnO1xudHlwZSBSb3V0ZU1ldGhvZCA9ICdnZXQnIHwgJ0dFVCcgfCAncG9zdCcgfCAnUE9TVCcgfCAncHV0JyB8ICdQVVQnIHwgJ3BhdGNoJyB8ICdQQVRDSCcgfCAnZGVsZXRlJyB8ICdERUxFVEUnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGUge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBtZXRob2Q6IFJvdXRlTWV0aG9kO1xuICAgIGhhbmRsZXI6IEhhbmRsZXI8YW55PiB8IG51bGw7XG4gICAgbWlkZGxld2FyZXM6IE1pZGRsZXdhcmVbXTtcbiAgICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw7XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8Um91dGU+KTtcbiAgICBzdGF0aWMgcGFyYW1zKHJvdXRlUGF0aDogc3RyaW5nLCByZXF1ZXN0UGF0aDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBzdGF0aWMgcXVlcnkocmVxdWVzdFBhdGg6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgdG9KU09OKCk6IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBtZXRob2Q6IFJvdXRlTWV0aG9kO1xuICAgICAgICBtaWRkbGV3YXJlczogc3RyaW5nW107XG4gICAgICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbDtcbiAgICB9O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IFJvdXRlIGZyb20gJyNzZXJ2ZXIvZW50aXRpZXMvUm91dGVFbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyLCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlSGFuZGxlUmVzdWx0IH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJyNzaGFyZWQvaW5kZXgudHMnO1xudHlwZSBSb3V0ZUNvbnRleHQgPSAnZ2xvYmFsJyB8ICdncm91cCcgfCAncm91dGUnO1xuaW50ZXJmYWNlIE1pZGRsZXdhcmVSZWdpc3RlciB7XG4gICAgbWlkZGxld2FyZTogTWlkZGxld2FyZTtcbiAgICBjb250ZXh0OiBSb3V0ZUNvbnRleHQ7XG59XG5pbnRlcmZhY2UgTG9hZE9wdGlvbnMge1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyRXZlbnRzIHtcbiAgICAncm91dGVyOnJlZ2lzdGVyZWQnOiB7XG4gICAgICAgIHJvdXRlcjogUm91dGVyU2VydmljZTtcbiAgICB9O1xuICAgICdyb3V0ZXI6bG9hZGVkJzoge1xuICAgICAgICByb3V0ZXI6IFJvdXRlclNlcnZpY2U7XG4gICAgfTtcbn1cbmRlY2xhcmUgY29uc3QgUm91dGVyU2VydmljZV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbGlzdGVuZXJzOiBpbXBvcnQoXCIjc2hhcmVkL2luZGV4LnRzXCIpLkxpc3RlbmVyW107XG4gICAgICAgIG9uKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgICAgIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgICAgICBlbWl0QXN5bmMoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59ICYgaW1wb3J0KFwiI3NoYXJlZC9pbmRleC50c1wiKS5Db25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlclNlcnZpY2U8QyA9IHt9PiBleHRlbmRzIFJvdXRlclNlcnZpY2VfYmFzZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIHJvdXRlczogUm91dGVbXTtcbiAgICBtaWRkbGV3YXJlczogTWlkZGxld2FyZVJlZ2lzdGVyW107XG4gICAgcHJlZml4ZXM6IHN0cmluZ1tdO1xuICAgIGdyb3VwczogUm91dGVyU2VydmljZTxhbnk+W107XG4gICAgZ3JvdXBQcmVmaXhlczogc3RyaW5nW107XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPFJvdXRlclNlcnZpY2U8Qz4+KTtcbiAgICB1c2U8VCBleHRlbmRzIE1pZGRsZXdhcmU+KG1pZGRsZXdhcmU6IFQsIGNvbnRleHQ/OiBSb3V0ZUNvbnRleHQpOiBSb3V0ZXJTZXJ2aWNlPEMgJiBNaWRkbGV3YXJlSGFuZGxlUmVzdWx0PFt0eXBlb2YgbWlkZGxld2FyZV0+PjtcbiAgICBwcmVmaXgocHJlZml4OiBzdHJpbmcpOiB0aGlzO1xuICAgIG1ha2VQYXRoKGFyZ3M6IHN0cmluZyk6IHN0cmluZztcbiAgICBhZGQocGF5bG9hZDogUGljazxSb3V0ZSwgJ3BhdGgnIHwgJ21ldGhvZCcgfCAnaGFuZGxlcic+KTogdm9pZDtcbiAgICBnZXQocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyPEM+KTogdm9pZDtcbiAgICBwb3N0KHBhdGg6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcjxDPik6IHZvaWQ7XG4gICAgcHV0KHBhdGg6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcjxDPik6IHZvaWQ7XG4gICAgcGF0Y2gocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBIYW5kbGVyPEM+KTogdm9pZDtcbiAgICBtYW55KG1ldGhvZHM6IFJvdXRlWydtZXRob2QnXVtdLCBwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXI8Qz4pOiB2b2lkO1xuICAgIGRlbGV0ZShwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXI8Qz4pOiB2b2lkO1xuICAgIGdyb3VwKCk6IFJvdXRlclNlcnZpY2U8Qz47XG4gICAgcmVzb2x2ZShtZXRob2Q6IHN0cmluZywgcGF0aDogc3RyaW5nKTogUm91dGUgfCBudWxsO1xuICAgIGV4ZWN1dGUocm91dGU6IFJvdXRlLCBpbml0aWFsQ3R4OiBhbnkpOiBQcm9taXNlPGFueT47XG4gICAgbWF0Y2hQYXRoKHJvdXRlUGF0aDogc3RyaW5nLCByZXF1ZXN0UGF0aDogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBjbGVhcigpOiB2b2lkO1xuICAgIGxpc3QoKTogUm91dGVbXTtcbiAgICBsb2FkKG9wdGlvbnM/OiBMb2FkT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZFN5bmMob3B0aW9ucz86IExvYWRPcHRpb25zKTogdm9pZDtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB7IEpvYiB9IGZyb20gJ25vZGUtc2NoZWR1bGUnO1xuZXhwb3J0IGludGVyZmFjZSBSb3V0aW5lSGFuZGxlciB7XG4gICAgKCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3V0aW5lRW50aXR5T3B0aW9ucyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjcm9uOiBzdHJpbmc7XG4gICAgaGFuZGxlcj86IFJvdXRpbmVIYW5kbGVyO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGluZUVudGl0eSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjcm9uOiBzdHJpbmc7XG4gICAgam9iPzogSm9iO1xuICAgIHN0YXRpYyBjcmVhdGUoKTogUm91dGluZUVudGl0eTtcbiAgICBoYW5kbGU6IFJvdXRpbmVIYW5kbGVyO1xuICAgIHNldElkKGlkOiBzdHJpbmcpOiB0aGlzO1xuICAgIHNldENyb24oY3Jvbjogc3RyaW5nKTogdGhpcztcbiAgICBzZXRIYW5kbGVyKGhhbmRsZXI6IFJvdXRpbmVIYW5kbGVyKTogdGhpcztcbn1cbiIsImltcG9ydCBSb3V0aW5lRW50aXR5IGZyb20gJyNzZXJ2ZXIvZW50aXRpZXMvUm91dGluZUVudGl0eS50cyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG5leHBvcnQgaW50ZXJmYWNlIEFkZE9wdGlvbnMge1xuICAgIGlkPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXJTZXJ2aWNlT3B0aW9ucyB7XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlckV2ZW50cyB7XG4gICAgJ3NjaGVkdWxlcjpyZWdpc3RlcmVkJzoge1xuICAgICAgICBzY2hlZHVsZXI6IFNjaGVkdWxlclNlcnZpY2U7XG4gICAgfTtcbiAgICAnc2NoZWR1bGVyOmxvYWRlZCc6IHtcbiAgICAgICAgc2NoZWR1bGVyOiBTY2hlZHVsZXJTZXJ2aWNlO1xuICAgIH07XG4gICAgJ3NjaGVkdWxlcjpib290ZWQnOiB7XG4gICAgICAgIHNjaGVkdWxlcjogU2NoZWR1bGVyU2VydmljZTtcbiAgICB9O1xuICAgICdzY2hlZHVsZXI6c2h1dGRvd25lZCc6IHtcbiAgICAgICAgc2NoZWR1bGVyOiBTY2hlZHVsZXJTZXJ2aWNlO1xuICAgIH07XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlZHVsZXJTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgcm91dGluZXM6IFJvdXRpbmVFbnRpdHlbXTtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgZGlyczogc3RyaW5nW107XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IFNjaGVkdWxlclNlcnZpY2VPcHRpb25zKTtcbiAgICBzdGF0aWMgY3JlYXRlKG9wdGlvbnM/OiBTY2hlZHVsZXJTZXJ2aWNlT3B0aW9ucyk6IFNjaGVkdWxlclNlcnZpY2U7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHZvaWQ7XG4gICAgc2V0RGVidWcoZGVidWc6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGFkZERpcihkaXI6IHN0cmluZyk6IHZvaWQ7XG4gICAgYWRkKHJvdXRpbmU6IE9taXQ8Um91dGluZUVudGl0eSwgJ2pvYic+KTogdm9pZDtcbiAgICByZW1vdmUoaWQ6IFJvdXRpbmVFbnRpdHlbJ2lkJ10gfCBSb3V0aW5lRW50aXR5WydpZCddW10pOiB2b2lkO1xuICAgIGxvYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWREaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBoYXMoaWQ6IFJvdXRpbmVFbnRpdHlbJ2lkJ10pOiBib29sZWFuO1xuICAgIHN0YXJ0Um91dGluZShpZDogUm91dGluZUVudGl0eVsnaWQnXSk6IFByb21pc2U8dm9pZD47XG4gICAgYWRkQW5kU3RhcnQocm91dGluZTogT21pdDxSb3V0aW5lRW50aXR5LCAnam9iJz4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIHN0b3BSb3V0aW5lKGlkOiBSb3V0aW5lRW50aXR5WydpZCddKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzdG9wQW5kUmVtb3ZlKGlkOiBSb3V0aW5lRW50aXR5WydpZCddKTogUHJvbWlzZTx2b2lkPjtcbiAgICBib290KCk6IFByb21pc2U8dm9pZD47XG4gICAgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPjtcbiAgICBsaXN0KCk6IFJvdXRpbmVFbnRpdHlbXTtcbn1cbiIsImltcG9ydCB0eXBlIHsgS3lzZWx5IH0gZnJvbSBcImt5c2VseVwiO1xuZXhwb3J0IGludGVyZmFjZSBTZWVkZXJFbnRpeURhdGEge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZyB8IG51bGw7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlZWRlckVudGl0eSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFNlZWRlckVudGl5RGF0YSk7XG4gICAgcnVuKGRiOiBLeXNlbHk8YW55Pik6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgRW1taXR0ZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvRW1taXR0ZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5pbXBvcnQgdHlwZSB7IEt5c2VseSB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgU2VlZGVyRW50aXR5IGZyb20gJyNzZXJ2ZXIvZW50aXRpZXMvU2VlZGVyRW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgU2VlZGVyU291cmNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBMaXN0RmlsdGVycyB7XG4gICAgc291cmNlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgbmFtZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTZWVkZXJSZXN1bHQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgICByZXN1bHQ6ICdzdWNjZXNzJyB8ICdmYWlsZWQnO1xuICAgIGVycm9yPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBTZWVkZXJFdmVudHMge1xuICAgICdzZWVkZXI6YmVmb3JlLXJ1bic6IHtcbiAgICAgICAgc2VlZGVyczogc3RyaW5nW107XG4gICAgfTtcbiAgICAnc2VlZGVyOmFmdGVyLXJ1bic6IHtcbiAgICAgICAgc2VlZGVyczogc3RyaW5nW107XG4gICAgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VlZGVyU2VydmljZU9wdGlvbnMge1xuICAgIGRiOiBLeXNlbHk8YW55PjtcbiAgICBzb3VyY2VzPzogU2VlZGVyU291cmNlW107XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGVtbWl0dGVyPzogRW1taXR0ZXJTZXJ2aWNlO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWVlZGVyU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGVtbWl0dGVyOiBFbW1pdHRlclNlcnZpY2U7XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGRiOiBLeXNlbHk8YW55PjtcbiAgICBzb3VyY2VzOiBTZWVkZXJTb3VyY2VbXTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTZWVkZXJTZXJ2aWNlT3B0aW9ucyk7XG4gICAgYWRkU291cmNlKHNvdXJjZTogU2VlZGVyU291cmNlKTogdm9pZDtcbiAgICBsaXN0U291cmNlKHNvdXJjZTogU2VlZGVyU291cmNlKTogUHJvbWlzZTxTZWVkZXJFbnRpdHlbXT47XG4gICAgbGlzdChmaWx0ZXJzPzogTGlzdEZpbHRlcnMpOiBQcm9taXNlPFNlZWRlckVudGl0eVtdPjtcbiAgICBydW5TZWVkZXIoc2VlZGVyOiBTZWVkZXJFbnRpdHkpOiBQcm9taXNlPFNlZWRlclJlc3VsdD47XG4gICAgcnVuKGZpbHRlcnM/OiBMaXN0RmlsdGVycyAmIHtcbiAgICAgICAgc3RlcHM/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8U2VlZGVyUmVzdWx0W10+O1xufVxuIiwiaW1wb3J0IHR5cGUgTWlncmF0aW9uRW50aXR5IGZyb20gXCIjc2VydmVyL2VudGl0aWVzL01pZ3JhdGlvbkVudGl0eS50c1wiO1xuaW1wb3J0IHR5cGUgUGFnZVJlcXVlc3RDb250ZXh0RW50aXR5IGZyb20gXCIjc2VydmVyL2VudGl0aWVzL1BhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eS50c1wiO1xuaW1wb3J0IHR5cGUgeyBDbGlFdmVudHMgfSBmcm9tIFwiI3NlcnZlci9zZXJ2aWNlcy9DbGlTZXJ2aWNlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFJvdXRlckV2ZW50cyB9IGZyb20gXCIjc2VydmVyL3NlcnZpY2VzL1JvdXRlclNlcnZpY2UudHNcIjtcbmltcG9ydCB0eXBlIHsgU2NoZWR1bGVyRXZlbnRzIH0gZnJvbSBcIiNzZXJ2ZXIvc2VydmljZXMvU2NoZWR1bGVyU2VydmljZS50c1wiO1xuaW1wb3J0IHR5cGUgeyBTZWVkZXJFdmVudHMgfSBmcm9tIFwiI3NlcnZlci9zZXJ2aWNlcy9TZWVkZXJTZXJ2aWNlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJFbnRpdHkgfSBmcm9tIFwiI3NoYXJlZC9pbmRleC50c1wiO1xuZXhwb3J0IGludGVyZmFjZSBFdmVudENvbnRyYWN0IGV4dGVuZHMgU2VlZGVyRXZlbnRzLCBSb3V0ZXJFdmVudHMsIENsaUV2ZW50cywgU2NoZWR1bGVyRXZlbnRzIHtcbiAgICAnbWlncmF0b3I6YmVmb3JlLW1pZ3JhdGUnOiB7XG4gICAgICAgIG1pZ3JhdGlvbnM6IE1pZ3JhdGlvbkVudGl0eVtdO1xuICAgIH07XG4gICAgJ21pZ3JhdG9yOmFmdGVyLW1pZ3JhdGUnOiB7XG4gICAgICAgIG1pZ3JhdGlvbnM6IE1pZ3JhdGlvbkVudGl0eVtdO1xuICAgIH07XG4gICAgJ21pZ3JhdG9yOmJlZm9yZS1yb2xsYmFjayc6IHtcbiAgICAgICAgbWlncmF0aW9uczogTWlncmF0aW9uRW50aXR5W107XG4gICAgfTtcbiAgICAnbWlncmF0b3I6YWZ0ZXItcm9sbGJhY2snOiB7XG4gICAgICAgIG1pZ3JhdGlvbnM6IE1pZ3JhdGlvbkVudGl0eVtdO1xuICAgIH07XG4gICAgJ3VzZXI6YmVmb3JlLWNyZWF0ZSc6IHtcbiAgICAgICAgdXNlcjogVXNlckVudGl0eTtcbiAgICB9O1xuICAgICd1c2VyOmFmdGVyLWNyZWF0ZSc6IHtcbiAgICAgICAgdXNlcjogVXNlckVudGl0eTtcbiAgICB9O1xuICAgICd1c2VyOmJlZm9yZS11cGRhdGUnOiB7XG4gICAgICAgIHVzZXI6IFVzZXJFbnRpdHk7XG4gICAgfTtcbiAgICAndXNlcjphZnRlci11cGRhdGUnOiB7XG4gICAgICAgIHVzZXI6IFVzZXJFbnRpdHk7XG4gICAgfTtcbiAgICAndXNlcjpiZWZvcmUtZGVsZXRlJzoge1xuICAgICAgICB1c2VyOiBVc2VyRW50aXR5O1xuICAgIH07XG4gICAgJ3VzZXI6YWZ0ZXItZGVsZXRlJzoge1xuICAgICAgICB1c2VyOiBVc2VyRW50aXR5O1xuICAgIH07XG4gICAgJ3BhZ2U6cmVxdWVzdDpzdGFydCc6IFBhZ2VSZXF1ZXN0Q29udGV4dEVudGl0eTtcbiAgICAncGFnZTpyZXF1ZXN0OmJlZm9yZS1yZW5kZXInOiBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHk7XG4gICAgJ3BhZ2U6cmVxdWVzdDphZnRlci1yZW5kZXInOiBQYWdlUmVxdWVzdENvbnRleHRFbnRpdHk7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IEJhc2VFbW1pdHRlclNlcnZpY2UgZnJvbSBcIi4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9FbW1pdHRlclNlcnZpY2VcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRDb250cmFjdCB9IGZyb20gJy4uL2NvbnRyYWN0cy9FdmVudENvbnRyYWN0JztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVtbWl0dGVyU2VydmljZSBleHRlbmRzIEJhc2VFbW1pdHRlclNlcnZpY2U8RXZlbnRDb250cmFjdD4ge1xufVxuIiwiaW1wb3J0IG1zIGZyb20gJ21zJztcbmltcG9ydCBFbnZTZXJ2aWNlIGZyb20gJy4vRW52U2VydmljZSc7XG5pbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuaW50ZXJmYWNlIFVSTE9wdGlvbnMge1xuICAgIGRhdGE/OiBhbnk7XG4gICAgZXhwaXJlcz86IG1zLlN0cmluZ1ZhbHVlO1xuICAgIGV4cGlyZUF0PzogbnVtYmVyIHwgRGF0ZTtcbn1cbmludGVyZmFjZSBFbmNyeXB0U2VydmljZU9wdGlvbnMge1xuICAgIGtleT86IHN0cmluZztcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbiAgICBlbnY/OiBFbnZTZXJ2aWNlO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5jcnlwdFNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBlbnY6IEVudlNlcnZpY2U7XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxnb3JpdGhtO1xuICAgIHByaXZhdGUga2V5O1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEVuY3J5cHRTZXJ2aWNlT3B0aW9ucyk7XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zOiBFbmNyeXB0U2VydmljZU9wdGlvbnMpOiBFbmNyeXB0U2VydmljZTtcbiAgICBzZXREZWJ1ZyhkZWJ1ZzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHZvaWQ7XG4gICAgc2V0RW52KGVudjogRW52U2VydmljZSk6IHZvaWQ7XG4gICAgc2V0S2V5KGtleTogc3RyaW5nKTogdm9pZDtcbiAgICBlbmNyeXB0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgICBkZWNyeXB0KG9wdGlvbnM6IHN0cmluZyk6IHN0cmluZztcbiAgICBlbmNyeXB0T2JqZWN0KG9iajogYW55KTogc3RyaW5nO1xuICAgIGRlY3J5cHRPYmplY3Q8VD4oZW5jcnlwdGVkU3RyaW5nOiBzdHJpbmcpOiBUO1xuICAgIHVybChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBVUkxPcHRpb25zKTogc3RyaW5nO1xuICAgIHZlcmlmeVVybChlbmNyeXB0ZWRLZXk6IHN0cmluZyk6IGFueTtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCBCYXNlTGlmZWN5Y2xlU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xpZmVjeWNsZVNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlmZWN5Y2xlU2VydmljZSBleHRlbmRzIEJhc2VMaWZlY3ljbGVTZXJ2aWNlIHtcbiAgICBhZGREaXJlY3RvcnkoZGlybmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ29sdW1uVHlwZSwgR2VuZXJhdGVkIH0gZnJvbSAna3lzZWx5JztcbmV4cG9ydCBpbnRlcmZhY2UgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBkZWxldGVkX2F0PzogQ29sdW1uVHlwZTxEYXRlLCBzdHJpbmcgfCB1bmRlZmluZWQsIG5ldmVyPiB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRpbWVzdGFtcFRhYmxlIHtcbiAgICBjcmVhdGVkX2F0OiBDb2x1bW5UeXBlPERhdGUsIHN0cmluZyB8IHVuZGVmaW5lZCwgbmV2ZXI+O1xuICAgIHVwZGF0ZWRfYXQ6IENvbHVtblR5cGU8RGF0ZSwgc3RyaW5nIHwgdW5kZWZpbmVkLCBuZXZlcj47XG59XG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdGlvbnNUYWJsZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgICBleGVjdXRlZF9hdDogQ29sdW1uVHlwZTxEYXRlLCBzdHJpbmcgfCB1bmRlZmluZWQsIG5ldmVyPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICB2ZXJpZmllZF9hdD86IERhdGUgfCBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTWV0YVRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHVzZXJfaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHVzZXJfaWQ6IG51bWJlcjtcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBleHBpcmVzX2F0OiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb2xlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlVGFibGUge1xuICAgIHVzZXJfaWQ6IG51bWJlcjtcbiAgICByb2xlX2lkOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25UYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlLCBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gICAgb3JpZ2luOiBzdHJpbmc7XG4gICAgc3ViamVjdDogc3RyaW5nO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25Bc3NpZ25tZW50VGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICBwZXJtaXNzaW9uX2lkOiBudW1iZXI7XG4gICAgYXNzaWduYWJsZV90eXBlOiBzdHJpbmc7XG4gICAgYXNzaWduYWJsZV9pZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSwgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgZHJpdmU6IHN0cmluZztcbiAgICBtaW1ldHlwZTogc3RyaW5nO1xuICAgIGNsaWVudF9uYW1lOiBzdHJpbmc7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgcHVibGljOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlTWV0YVRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUsIFNvZnREZWxldGVUYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIGZpbGVfaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFNlc3Npb25UYWJsZSB7XG4gICAgaWQ6IEdlbmVyYXRlZDxudW1iZXI+O1xuICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICBtaW1lX3R5cGVzOiBzdHJpbmc7XG4gICAgbWF4X3NpemU6IG51bWJlcjtcbiAgICBleHBpcmVzX2F0OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEpvYlRhYmxlIGV4dGVuZHMgVGltZXN0YW1wVGFibGUge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcXVldWVfaWQ6IHN0cmluZztcbiAgICBzdGF0dXM6ICdwZW5kaW5nJyB8ICdpbl9wcm9ncmVzcycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnO1xuICAgIGRhdGE6IHN0cmluZyB8IG51bGw7XG4gICAgcmVzdWx0OiBzdHJpbmcgfCBudWxsO1xuICAgIGVycm9yOiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGludGVyZmFjZSBFbWFpbFRlbXBsYXRlVGFibGUgZXh0ZW5kcyBUaW1lc3RhbXBUYWJsZSwgU29mdERlbGV0ZVRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHN1YmplY3Q6IHN0cmluZztcbiAgICBrZXk6IHN0cmluZztcbiAgICBib2R5OiBzdHJpbmcgfCBudWxsO1xuICAgIGVuZ2luZTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxUZW1wbGF0ZU1ldGFUYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlLCBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICB0ZW1wbGF0ZV9pZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPYXV0aEFjY291bnRUYWJsZSBleHRlbmRzIFRpbWVzdGFtcFRhYmxlLCBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGlkOiBHZW5lcmF0ZWQ8bnVtYmVyPjtcbiAgICB1c2VyX2lkOiBudW1iZXI7XG4gICAgcHJvdmlkZXI6IHN0cmluZztcbiAgICBwcm92aWRlcl91c2VyX2lkOiBzdHJpbmc7XG4gICAgcHJvdmlkZXJfdXNlcl9lbWFpbDogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT2F1dGhUb2tlblRhYmxlIHtcbiAgICBpZDogR2VuZXJhdGVkPG51bWJlcj47XG4gICAgdXNlcl9pZDogbnVtYmVyIHwgbnVsbDtcbiAgICBwcm92aWRlcjogc3RyaW5nIHwgbnVsbDtcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIGV4cGlyZXNfYXQ6IHN0cmluZztcbiAgICBtZXRhZGF0YTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUNvbnRyYWN0IHtcbiAgICB1c2VyczogVXNlclRhYmxlO1xuICAgIHVzZXJfbWV0YXM6IFVzZXJNZXRhVGFibGU7XG4gICAgdG9rZW5zOiBUb2tlblRhYmxlO1xuICAgIG1pZ3JhdGlvbnM6IE1pZ3JhdGlvbnNUYWJsZTtcbiAgICBmaWxlczogRmlsZVRhYmxlO1xuICAgIGZpbGVfbWV0YXM6IEZpbGVNZXRhVGFibGU7XG4gICAgZmlsZV91cGxvYWRfc2Vzc2lvbnM6IFVwbG9hZFNlc3Npb25UYWJsZTtcbiAgICByb2xlczogUm9sZVRhYmxlO1xuICAgIHVzZXJfcm9sZXM6IFVzZXJSb2xlVGFibGU7XG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25UYWJsZTtcbiAgICBwZXJtaXNzaW9uc19hc3NpZ25tZW50czogUGVybWlzc2lvbkFzc2lnbm1lbnRUYWJsZTtcbiAgICBqb2JzOiBKb2JUYWJsZTtcbiAgICBlbWFpbF90ZW1wbGF0ZXM6IEVtYWlsVGVtcGxhdGVUYWJsZTtcbiAgICBlbWFpbF90ZW1wbGF0ZV9tZXRhczogRW1haWxUZW1wbGF0ZU1ldGFUYWJsZTtcbiAgICBvYXV0aF9hY2NvdW50czogT2F1dGhBY2NvdW50VGFibGU7XG4gICAgb2F1dGhfdG9rZW5zOiBPYXV0aFRva2VuVGFibGU7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgdHlwZSB7IEV4cHJlc3Npb25CdWlsZGVyIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGFmaWx0ZXIge1xuICAgIGVxPzogc3RyaW5nO1xuICAgIG5lcT86IHN0cmluZztcbiAgICBsaWtlPzogc3RyaW5nO1xuICAgIG5saWtlPzogc3RyaW5nO1xuICAgIGluPzogc3RyaW5nW107XG4gICAgbmluPzogc3RyaW5nW107XG4gICAgZ3Q/OiBzdHJpbmc7XG4gICAgZ3RlPzogc3RyaW5nO1xuICAgIGx0Pzogc3RyaW5nO1xuICAgIGx0ZT86IHN0cmluZztcbiAgICBpc19udWxsPzogYm9vbGVhbjtcbiAgICBleGlzdHM/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YVF1ZXJ5UGF5bG9hZCB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgTWV0YWRhZmlsdGVyO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YWRhdGFRdWVyeVNlcnZpY2U8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiB7XG4gICAgcHJpdmF0ZSBwYXlsb2FkO1xuICAgIHByaXZhdGUgdGFibGU7XG4gICAgcHJpdmF0ZSBmb3JlaWduS2V5O1xuICAgIHByaXZhdGUgcGFyZW50S2V5O1xuICAgIGNvbnN0cnVjdG9yKHBheWxvYWQ6IE1ldGFkYXRhUXVlcnlQYXlsb2FkLCB0YWJsZTogVCwgZm9yZWlnbktleToga2V5b2YgRGF0YWJhc2VbVF0sIHBhcmVudEtleT86IHN0cmluZyk7XG4gICAgZ2V0IG5lZWRXaGVyZUluKCk6IGJvb2xlYW47XG4gICAgZ2V0IG5lZWRXaGVyZU5vdEluKCk6IGJvb2xlYW47XG4gICAgYXBwbHkoZGJRdWVyeTogYW55KTogYW55O1xuICAgIHByaXZhdGUgYnVpbGRSb3dDb25kaXRpb25zO1xuICAgIHdoZXJlSW46IDxEQlF1ZXJ5PihlYjogRXhwcmVzc2lvbkJ1aWxkZXI8YW55LCBhbnk+KSA9PiBEQlF1ZXJ5O1xuICAgIHdoZXJlTm90SW46IDxEQlF1ZXJ5PihlYjogRXhwcmVzc2lvbkJ1aWxkZXI8YW55LCBhbnk+KSA9PiBEQlF1ZXJ5O1xufVxuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YWRhdGFTZXJ2aWNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHRhYmxlOiBzdHJpbmc7XG4gICAgZm9yZWlnbktleTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKHBheWxvYWQ6IFBpY2s8TWV0YWRhdGFTZXJ2aWNlLCAndGFibGUnIHwgJ2ZvcmVpZ25LZXknIHwgJ2lkJz4pO1xuICAgIHN0YXRpYyBwYXJzZSh2YWx1ZTogYW55KTogYW55O1xuICAgIHN0YXRpYyBmbGF0dGVuKGl0ZW1zOiBBcnJheTx7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgdmFsdWU6IGFueTtcbiAgICB9Pik6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gICAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUKTogUHJvbWlzZTxUPjtcbiAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICBsaXN0KCk6IFByb21pc2U8QXJyYXk8e1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBhbnk7XG4gICAgfT4+O1xuICAgIGFsbCgpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xufVxuIiwiaW1wb3J0IEVtbWl0dGVyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0VtbWl0dGVyU2VydmljZS50cyc7XG5pbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcjc2hhcmVkL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBLeXNlbHkgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IE1pZ3JhdGlvbkVudGl0eSBmcm9tICcjc2VydmVyL2VudGl0aWVzL01pZ3JhdGlvbkVudGl0eS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdGlvblNvdXJjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBkaXJlY3Rvcnk6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgZXhlY3V0ZWRBdDogRGF0ZSB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIExpc3RGaWx0ZXJzIHtcbiAgICBzb3VyY2U/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIE1pZ3JhdGlvblJlc3VsdCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmcgfCBudWxsO1xuICAgIHJlc3VsdDogJ3N1Y2Nlc3MnIHwgJ2ZhaWxlZCc7XG4gICAgZXJyb3I/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIE1pZ3JhdG9yU2VydmljZU9wdGlvbnMge1xuICAgIHNvdXJjZXM6IE1pZ3JhdGlvblNvdXJjZVtdO1xuICAgIGRiOiBLeXNlbHk8YW55PjtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgZW1taXR0ZXI/OiBFbW1pdHRlclNlcnZpY2U7XG4gICAgbG9nZ2VyPzogTG9nZ2VyU2VydmljZTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1pZ3JhdG9yU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGVtbWl0dGVyOiBFbW1pdHRlclNlcnZpY2U7XG4gICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICAgIGRiOiBLeXNlbHk8YW55PjtcbiAgICBzb3VyY2VzOiBNaWdyYXRpb25Tb3VyY2VbXTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNaWdyYXRvclNlcnZpY2VPcHRpb25zKTtcbiAgICBhZGRTb3VyY2Uoc291cmNlOiBNaWdyYXRpb25Tb3VyY2UpOiB2b2lkO1xuICAgIHByaXZhdGUgZW5zdXJlTWlncmF0aW9uc1RhYmxlO1xuICAgIGxpc3RTb3VyY2Uoc291cmNlOiBNaWdyYXRpb25Tb3VyY2UpOiBQcm9taXNlPE1pZ3JhdGlvbkVudGl0eVtdPjtcbiAgICBsaXN0KGZpbHRlcnM/OiBMaXN0RmlsdGVycyk6IFByb21pc2U8TWlncmF0aW9uRW50aXR5W10+O1xuICAgIHByaXZhdGUgbWlncmF0ZVVwO1xuICAgIHByaXZhdGUgbWlncmF0ZURvd247XG4gICAgcHJpdmF0ZSBtaWdyYXRlRmlsZTtcbiAgICBwcml2YXRlIHJvbGxiYWNrRmlsZTtcbiAgICBtaWdyYXRlKGZpbHRlcnM/OiBMaXN0RmlsdGVycyAmIHtcbiAgICAgICAgc3RlcHM/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TWlncmF0aW9uUmVzdWx0W10+O1xuICAgIHJvbGxiYWNrKGZpbHRlcnM/OiBMaXN0RmlsdGVycyAmIHtcbiAgICAgICAgc3RlcHM/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TWlncmF0aW9uUmVzdWx0W10+O1xuICAgIHVwKHN0ZXBzPzogbnVtYmVyLCBmaWx0ZXJzPzogTGlzdEZpbHRlcnMpOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbiAgICBkb3duKHN0ZXBzPzogbnVtYmVyLCBmaWx0ZXJzPzogTGlzdEZpbHRlcnMpOiBQcm9taXNlPE1pZ3JhdGlvblJlc3VsdFtdPjtcbiAgICBsYXRlc3QoZmlsdGVycz86IExpc3RGaWx0ZXJzKTogUHJvbWlzZTxNaWdyYXRpb25SZXN1bHRbXT47XG4gICAgbGF0ZXN0T3JGYWlsKGZpbHRlcnM/OiBMaXN0RmlsdGVycyk6IFByb21pc2U8TWlncmF0aW9uUmVzdWx0W10+O1xuICAgIGZyZXNoKGZpbHRlcnM/OiBMaXN0RmlsdGVycyAmIHtcbiAgICAgICAgc3RlcHM/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TWlncmF0aW9uUmVzdWx0W10+O1xufVxuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IHR5cGUgSXBjTWVzc2FnZTxUID0gYW55PiA9IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgZGF0YTogVDtcbn07XG50eXBlIElwY0xpc3RlbmVyPFQgPSBhbnk+ID0gKGRhdGE6IFQpID0+IHZvaWQ7XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBQbHVnaW5JcGNDbGllbnQge1xuICAgIHByaXZhdGUgbGlzdGVuZXJzO1xuICAgIGNvbnN0cnVjdG9yKCk7XG4gICAgb248VCA9IGFueT4oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IElwY0xpc3RlbmVyPFQ+KTogdm9pZDtcbiAgICBvZmY8VCA9IGFueT4oZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IElwY0xpc3RlbmVyPFQ+KTogdm9pZDtcbiAgICBlbWl0PFQgPSBhbnk+KGV2ZW50OiBzdHJpbmcsIGRhdGE/OiBUKTogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3MgfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xudHlwZSBJcGNMaXN0ZW5lcjxUID0gYW55PiA9IChkYXRhOiBUKSA9PiB2b2lkO1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgUGx1Z2luSXBjSG9zdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGlsZDtcbiAgICBwcml2YXRlIGxpc3RlbmVycztcbiAgICBjb25zdHJ1Y3RvcihjaGlsZDogQ2hpbGRQcm9jZXNzKTtcbiAgICBvbjxUID0gYW55PihldmVudDogc3RyaW5nLCBjYWxsYmFjazogSXBjTGlzdGVuZXI8VD4pOiB2b2lkO1xuICAgIG9mZjxUID0gYW55PihldmVudDogc3RyaW5nLCBjYWxsYmFjazogSXBjTGlzdGVuZXI8VD4pOiB2b2lkO1xuICAgIGVtaXQ8VCA9IGFueT4oZXZlbnQ6IHN0cmluZywgZGF0YT86IFQpOiBzdHJpbmc7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBQbHVnaW5JcGNDbGllbnQgfSBmcm9tICcuL1BsdWdpbklwY0NsaWVudC50cyc7XG5leHBvcnQgdHlwZSBIdHRwTWV0aG9kID0gJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJztcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVEZWZpbml0aW9uIHtcbiAgICBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gICAgcGF0aDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlcXVlc3Qge1xuICAgIHJlcXVlc3RJZDogc3RyaW5nO1xuICAgIG1ldGhvZDogSHR0cE1ldGhvZDtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBxdWVyeT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVSZXNwb25zZVBheWxvYWQge1xuICAgIHJlcXVlc3RJZDogc3RyaW5nO1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUmVwbHkge1xuICAgIHN0YXR1cyhjb2RlOiBudW1iZXIpOiBSb3V0ZVJlcGx5O1xuICAgIHNlbmQoYm9keT86IGFueSk6IHZvaWQ7XG59XG5leHBvcnQgdHlwZSBSb3V0ZUhhbmRsZXIgPSAocmVxOiBSb3V0ZVJlcXVlc3QsIHJlcGx5OiBSb3V0ZVJlcGx5KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFBsdWdpblJvdXRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ7XG4gICAgcHJpdmF0ZSByb3V0ZXM7XG4gICAgY29uc3RydWN0b3IoY2xpZW50OiBQbHVnaW5JcGNDbGllbnQpO1xuICAgIHByaXZhdGUgZGlzcGF0Y2g7XG4gICAgcHJpdmF0ZSByZWdpc3RlcjtcbiAgICBnZXQocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBSb3V0ZUhhbmRsZXIpOiB2b2lkO1xuICAgIHBvc3QocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBSb3V0ZUhhbmRsZXIpOiB2b2lkO1xuICAgIHB1dChwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IFJvdXRlSGFuZGxlcik6IHZvaWQ7XG4gICAgcGF0Y2gocGF0aDogc3RyaW5nLCBoYW5kbGVyOiBSb3V0ZUhhbmRsZXIpOiB2b2lkO1xuICAgIGRlbGV0ZShwYXRoOiBzdHJpbmcsIGhhbmRsZXI6IFJvdXRlSGFuZGxlcik6IHZvaWQ7XG59XG4iLCJpbXBvcnQgdHlwZSBSb3V0ZXIgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9Sb3V0ZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb3V0ZXJGaWxlQmFzZVJvdXRpbmdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGRpcmVjdG9yeTtcbiAgICBwcml2YXRlIHByZWZpeDtcbiAgICBwcml2YXRlIG1vZHVsZT87XG4gICAgcHJpdmF0ZSByb3V0ZXI7XG4gICAgcHJpdmF0ZSBsb2dnZXI7XG4gICAgcHJpdmF0ZSByb3V0ZXM7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgc2V0RGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nKTogdGhpcztcbiAgICBzZXRQcmVmaXgocHJlZml4OiBzdHJpbmcpOiB0aGlzO1xuICAgIHNldFJvdXRlcihyb3V0ZXI6IFJvdXRlcik6IHRoaXM7XG4gICAgc2V0TW9kdWxlKG1vZHVsZTogc3RyaW5nKTogdGhpcztcbiAgICBzZXRMb2dnZXIobG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKTogdGhpcztcbiAgICBzZXREZWJ1ZyhkZWJ1ZzogYm9vbGVhbik6IHRoaXM7XG4gICAgc3RhdGljIGNyZWF0ZShkaXJlY3Rvcnk6IHN0cmluZyk6IFJvdXRlckZpbGVCYXNlUm91dGluZ1NlcnZpY2U7XG4gICAgbG9hZEZpbGVzKCk6IFByb21pc2U8dm9pZD47XG4gICAgcmVnaXN0ZXJSb3V0ZXMoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgUm91dGVyU2VydmljZSBmcm9tICcuL1JvdXRlclNlcnZpY2UudHMnO1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJSZWdpc3RlckVudHJ5IHtcbiAgICBmaWxlcGF0aDogc3RyaW5nO1xuICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyUmVnaXN0ZXI8QyA9IHt9PiBleHRlbmRzIFJvdXRlclNlcnZpY2U8Qz4ge1xuICAgIGZpbGVzOiBNYXA8c3RyaW5nLCBSb3V0ZXJSZWdpc3RlckVudHJ5PjtcbiAgICBkaXJzOiBNYXA8c3RyaW5nLCBSb3V0ZXJSZWdpc3RlckVudHJ5PjtcbiAgICBjb25zdHJ1Y3Rvcihyb3V0ZXI/OiBQYXJ0aWFsPFJvdXRlclNlcnZpY2U8Qz4+KTtcbiAgICBhZGRGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQ7XG4gICAgYWRkRGlyKGRpcm5hbWU6IHN0cmluZywgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZDtcbiAgICBwcml2YXRlIGxvYWRGaWxlO1xuICAgIHByaXZhdGUgbG9hZERpcjtcbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgdHlwZSBSb3V0ZXIgZnJvbSAnLi9Sb3V0ZXJTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL1JvdXRlckNvbnRyYWN0LnRzJztcbmltcG9ydCB0eXBlIHsgSHR0cENvbnRleHQgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9IdHRwQ29udGV4dENvbnRyYWN0LnRzJztcbmV4cG9ydCB0eXBlIFJlc291cmNlTWV0aG9kID0gJ2luZGV4JyB8ICdzaG93JyB8ICdzdG9yZScgfCAndXBkYXRlJyB8ICdkZXN0cm95JztcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyUmVzb3VyY2VPcHRpb25zIHtcbiAgICBtaWRkbGV3YXJlPzogUGFydGlhbDxSZWNvcmQ8UmVzb3VyY2VNZXRob2QgfCAnYWxsJywgTWlkZGxld2FyZT4+O1xuICAgIGV4Y2VwdD86IFJlc291cmNlTWV0aG9kW107XG59XG5kZWNsYXJlIGNvbnN0IFJvdXRlclJlc291cmNlU2VydmljZV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbGlzdGVuZXJzOiBpbXBvcnQoXCIjc2hhcmVkL21peGlucy9Ib29rc01peGluLnRzXCIpLkxpc3RlbmVyW107XG4gICAgICAgIG9uKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgICAgIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgICAgICBlbWl0QXN5bmMoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyUmVzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgUm91dGVyUmVzb3VyY2VTZXJ2aWNlX2Jhc2Uge1xuICAgIHByaXZhdGUgb3B0aW9ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogUm91dGVyUmVzb3VyY2VPcHRpb25zKTtcbiAgICBpbmRleChjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTxhbnk+O1xuICAgIHNob3coY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PjtcbiAgICBzdG9yZShjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTxhbnk+O1xuICAgIHVwZGF0ZShjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTxhbnk+O1xuICAgIGRlc3Ryb3koY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PjtcbiAgICBwcml2YXRlIHdyYXA7XG4gICAgcmVnaXN0ZXIocm91dGVyOiBSb3V0ZXIpOiB2b2lkO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG5leHBvcnQgdHlwZSBDb25maWdNb2RlbCA9IFJldHVyblR5cGU8UmV0dXJuVHlwZTx0eXBlb2YgTW9kZWxDb25maWc+PjtcbmludGVyZmFjZSBPcHRpb25zIHtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNb2RlbENvbmZpZyhrZXk6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge307XG4gICAgX19pc0NvbmZpZ01vZGVsOiBib29sZWFuO1xuICAgIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCByb3c6IGFueSk6IFByb21pc2U8VD47XG4gICAgbGlzdDxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogUHJvbWlzZTxUW10+O1xuICAgIGZpbmQ8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+O1xuICAgIGZpbmRPckZhaWw8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8VD47XG4gICAgY3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGl0ZW06IFQgJiB7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD47XG4gICAgdXBkYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcsIGRhdGE6IFQpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVwZGF0ZU9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcsIGRhdGE6IFBhcnRpYWw8VD4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlc3Ryb3k8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG59ICYgVEJhc2U7XG5leHBvcnQge307XG4iLCJpbXBvcnQgUm91dGVyUmVzb3VyY2VTZXJ2aWNlIGZyb20gJy4vUm91dGVyUmVzb3VyY2VTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgUm91dGVyUmVzb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9Sb3V0ZXJSZXNvdXJjZVNlcnZpY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBIdHRwQ29udGV4dCB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0h0dHBDb250ZXh0Q29udHJhY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBDb25maWdNb2RlbCB9IGZyb20gJyNzZXJ2ZXIvbWl4aW5zL01vZGVsQ29uZmlnTWl4aW4udHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm91dGVyUmVzb3VyY2VDb25maWcgZXh0ZW5kcyBSb3V0ZXJSZXNvdXJjZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgbW9kZWw7XG4gICAgY29uc3RydWN0b3IobW9kZWw6IENvbmZpZ01vZGVsLCBvcHRpb25zPzogUm91dGVyUmVzb3VyY2VPcHRpb25zKTtcbiAgICBpbmRleChjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTx7XG4gICAgICAgIHBhZ2U6IG51bWJlcjtcbiAgICAgICAgdG90YWw6IG51bWJlcjtcbiAgICAgICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbiAgICAgICAgaXRlbXM6IHt9W107XG4gICAgfT47XG4gICAgc2hvdyhjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTx7fT47XG4gICAgc3RvcmUoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8e1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfT47XG4gICAgdXBkYXRlKGN0eDogSHR0cENvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlc3Ryb3koY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8e1xuICAgICAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIH0+O1xufVxuIiwiaW1wb3J0IExvZ2dlclNlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmludGVyZmFjZSBDb21tYW5kT3B0aW9ucyB7XG4gICAgY3dkPzogc3RyaW5nO1xuICAgIGVudj86IE5vZGVKUy5Qcm9jZXNzRW52O1xuICAgIHNoZWxsPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2hlbGxTZXJ2aWNlT3B0aW9ucyB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaGVsbFNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IFNoZWxsU2VydmljZU9wdGlvbnMpO1xuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gYSBwcm9taXNlXG4gICAgICovXG4gICAgY29tbWFuZChiaW46IHN0cmluZywgYXJnczogc3RyaW5nW10sIG9wdGlvbnM/OiBDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgYW5kIHJldHVybiB0aGUgb3V0cHV0IGFzIGEgc3RyaW5nXG4gICAgICovXG4gICAgZXhlY3V0ZUNvbW1hbmRXaXRoT3V0cHV0KGJpbjogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9ucz86IENvbW1hbmRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBLeXNlbHkgfSBmcm9tICdreXNlbHknO1xuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uPFQgPSBhbnk+IHtcbiAgICBpdGVtczogVFtdO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJfcGFnZTogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmluZE1hbnlPcHRpb25zIHtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIG9yZGVyRGlyZWN0aW9uPzogJ2FzYycgfCAnZGVzYycgfCAoJ2FzYycgfCAnZGVzYycpW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlT3B0aW9ucyB7XG4gICAgcGFnZT86IG51bWJlcjtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvcmRlckJ5PzogRmluZE1hbnlPcHRpb25zWydvcmRlckJ5J107XG4gICAgb3JkZXJEaXJlY3Rpb24/OiBGaW5kTWFueU9wdGlvbnNbJ29yZGVyRGlyZWN0aW9uJ107XG59XG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZU1hbnlPcHRpb25zIHtcbiAgICBsaW1pdD86IG51bWJlcjtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFiYXNlUmVwb3NpdG9yeTxURW50aXR5ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFByaW1hcnlLZXkgPSBhbnksIFRPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHByb3RlY3RlZCBkYjogS3lzZWx5PGFueT47XG4gICAgcHJvdGVjdGVkIHRhYmxlOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHByaW1hcnlLZXk6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihkYjogS3lzZWx5PGFueT4sIHRhYmxlOiBzdHJpbmcsIHByaW1hcnlLZXk6IHN0cmluZyk7XG4gICAgcXVlcnkob3B0aW9ucz86IHtcbiAgICAgICAgcWI/OiBhbnk7XG4gICAgfSAmIFRPcHRpb25zKTogYW55O1xuICAgIGNvdW50KG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxudW1iZXI+O1xuICAgIGZpbmRNYW55KG9wdGlvbnM/OiBGaW5kTWFueU9wdGlvbnMgJiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eVtdPjtcbiAgICBmaW5kT25lKG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eSB8IG51bGw+O1xuICAgIGZpbmRCeUlkKGlkOiBUUHJpbWFyeUtleSwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5IHwgbnVsbD47XG4gICAgZmluZEJ5SWRPckZhaWwoaWQ6IFRQcmltYXJ5S2V5LCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPE5vbk51bGxhYmxlPEF3YWl0ZWQ8VEVudGl0eT4+PjtcbiAgICBwYWdpbmF0ZShvcHRpb25zPzogUGFnaW5hdGVPcHRpb25zICYgVE9wdGlvbnMpOiBQcm9taXNlPFBhZ2luYXRpb24+O1xuICAgIGNyZWF0ZShkYXRhOiBQYXJ0aWFsPFRFbnRpdHk+KTogUHJvbWlzZTxhbnk+O1xuICAgIGNyZWF0ZU1hbnkoZGF0YTogUGFydGlhbDxURW50aXR5PltdKTogUHJvbWlzZTxhbnlbXT47XG4gICAgdXBkYXRlQnlJZChpZDogVFByaW1hcnlLZXksIGRhdGE6IFBhcnRpYWw8VEVudGl0eT4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlbGV0ZUJ5SWQoaWQ6IFRQcmltYXJ5S2V5KTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGVNYW55KG9wdGlvbnM/OiBEZWxldGVNYW55T3B0aW9ucyAmIFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCB0eXBlIENvbmZpZ1NlcnZpY2UgZnJvbSAnI3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGlvbiwgRmluZE1hbnlPcHRpb25zLCBQYWdpbmF0ZU9wdGlvbnMsIERlbGV0ZU1hbnlPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1JlcG9zaXRvcnk8VEVudGl0eSA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHByb3RlY3RlZCBjb25maWc6IENvbmZpZ1NlcnZpY2U7XG4gICAgcHJvdGVjdGVkIGtleTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBwcmltYXJ5S2V5OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBDb25maWdTZXJ2aWNlLCBrZXk6IHN0cmluZywgcHJpbWFyeUtleT86IHN0cmluZyk7XG4gICAgcHJvdGVjdGVkIGdldEl0ZW1zKCk6IFRFbnRpdHlbXTtcbiAgICBwcm90ZWN0ZWQgc2V0SXRlbXMoaXRlbXM6IFRFbnRpdHlbXSk6IHZvaWQ7XG4gICAgcXVlcnkob3B0aW9ucz86IFRPcHRpb25zKTogVEVudGl0eVtdO1xuICAgIGNvdW50KG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcbiAgICBmaW5kTWFueShvcHRpb25zPzogRmluZE1hbnlPcHRpb25zICYgVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHlbXT47XG4gICAgZmluZE9uZShvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHkgfCBudWxsPjtcbiAgICBmaW5kQnlJZChpZDogc3RyaW5nLCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHkgfCBudWxsPjtcbiAgICBmaW5kQnlJZE9yRmFpbChpZDogc3RyaW5nLCBvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPFRFbnRpdHk+O1xuICAgIHBhZ2luYXRlKG9wdGlvbnM/OiBQYWdpbmF0ZU9wdGlvbnMgJiBUT3B0aW9ucyk6IFByb21pc2U8UGFnaW5hdGlvbjxURW50aXR5Pj47XG4gICAgY3JlYXRlKGRhdGE6IFBhcnRpYWw8VEVudGl0eT4pOiBQcm9taXNlPFRFbnRpdHk+O1xuICAgIGNyZWF0ZU1hbnkoZGF0YTogUGFydGlhbDxURW50aXR5PltdKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIHVwZGF0ZUJ5SWQoaWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxURW50aXR5Pik6IFByb21pc2U8VEVudGl0eT47XG4gICAgZGVsZXRlQnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGVNYW55KG9wdGlvbnM/OiBEZWxldGVNYW55T3B0aW9ucyAmIFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBEYXRhYmFzZVJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmltcG9ydCB0eXBlIHsgTWV0YWRhdGFRdWVyeVBheWxvYWQgfSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL01ldGFkYXRhUXVlcnlTZXJ2aWNlLnRzJztcbmltcG9ydCB0eXBlIEZpbGVFbnRpdHkgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9GaWxlRW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgc2VhcmNoPzogc3RyaW5nO1xuICAgIHB1cnBvc2U/OiBzdHJpbmdbXTtcbiAgICBjbGllbnRfbmFtZT86IHN0cmluZ1tdO1xuICAgIG1ldGFzPzogTWV0YWRhdGFRdWVyeVBheWxvYWQ7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlUmVwb3NpdG9yeSBleHRlbmRzIERhdGFiYXNlUmVwb3NpdG9yeTxGaWxlRW50aXR5LCBGaWxlRW50aXR5WydpZCddLCBGaWxlUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4ge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBGaWxlUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucyk6IGFueTtcbn1cbiIsImltcG9ydCBTaGVsbFNlcnZpY2UgZnJvbSBcIiNzZXJ2ZXIvc2VydmljZXMvU2hlbGxTZXJ2aWNlLnRzXCI7XG5pbXBvcnQgR2l0QnJhbmNoRW50aXR5IGZyb20gXCIjc2hhcmVkL2VudGl0aWVzL0dpdEJyYW5jaEVudGl0eS50c1wiO1xuZXhwb3J0IGludGVyZmFjZSBHaXRCcmFuY2hSZXBvc2l0b3J5T3B0aW9ucyB7XG4gICAgY3dkOiBzdHJpbmc7XG4gICAgc2hlbGw/OiBTaGVsbFNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHaXRCcmFuY2hSZXBvc2l0b3J5IHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBzaGVsbDogU2hlbGxTZXJ2aWNlO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEdpdEJyYW5jaFJlcG9zaXRvcnlPcHRpb25zKTtcbiAgICBsaXN0KCk6IFByb21pc2U8R2l0QnJhbmNoRW50aXR5W10+O1xuICAgIGZldGNoKG9wdGlvbnM6IHtcbiAgICAgICAgcmVtb3RlOiBzdHJpbmc7XG4gICAgICAgIGJyYW5jaDogc3RyaW5nO1xuICAgICAgICBsb2NhbE5hbWU/OiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD47XG59XG4iLCJpbXBvcnQgU2hlbGxTZXJ2aWNlIGZyb20gXCIjc2VydmVyL3NlcnZpY2VzL1NoZWxsU2VydmljZS50c1wiO1xuaW1wb3J0IEdpdENvbW1pdEVudGl0eSBmcm9tIFwiI3NoYXJlZC9lbnRpdGllcy9HaXRDb21taXRFbnRpdHkudHNcIjtcbmV4cG9ydCBpbnRlcmZhY2UgR2l0Q29tbWl0UmVwb3NpdG9yeU9wdGlvbnMge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIHNoZWxsPzogU2hlbGxTZXJ2aWNlO1xufVxuZXhwb3J0IGludGVyZmFjZSBHaXRDb21taXRMaXN0T3B0aW9ucyB7XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIGJyYW5jaGVzPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIEdpdENvbW1pdExpc3RSZXN1bHQge1xuICAgIGl0ZW1zOiBHaXRDb21taXRFbnRpdHlbXTtcbiAgICBjdXJzb3JfcHJldmlvdXM6IHN0cmluZyB8IG51bGw7XG4gICAgY3Vyc29yX2N1cnJlbnQ6IHN0cmluZyB8IG51bGw7XG4gICAgY3Vyc29yX25leHQ6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHaXRDb21taXRSZXBvc2l0b3J5IHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBzaGVsbDogU2hlbGxTZXJ2aWNlO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEdpdENvbW1pdFJlcG9zaXRvcnlPcHRpb25zKTtcbiAgICBsaXN0KG9wdGlvbnM/OiBHaXRDb21taXRMaXN0T3B0aW9ucyk6IFByb21pc2U8R2l0Q29tbWl0TGlzdFJlc3VsdD47XG4gICAgY2hlY2tvdXQoaGFzaDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cbiIsImltcG9ydCBEYXRhYmFzZVJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvRGF0YWJhc2VSZXBvc2l0b3J5LnRzJztcbmltcG9ydCB0eXBlIHsgUGVybWlzc2lvbkFzc2lnbm1lbnQgfSBmcm9tICcjc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvbkFzc2lnbm1lbnRTY2hlbWEudHMnO1xuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgcGVybWlzc2lvbklkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gICAgYXNzaWduYWJsZUlkPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgYXNzaWduYWJsZVR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeSBleHRlbmRzIERhdGFiYXNlUmVwb3NpdG9yeTxQZXJtaXNzaW9uQXNzaWdubWVudCwgUGVybWlzc2lvbkFzc2lnbm1lbnRbJ2lkJ10sIFBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4ge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBQZXJtaXNzaW9uQXNzaWdubWVudFJlcG9zaXRvcnlRdWVyeU9wdGlvbnMpOiBhbnk7XG59XG4iLCJpbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb24gfSBmcm9tICcjc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvblNjaGVtYS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zIHtcbiAgICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICAgIHNlYXJjaD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBlcm1pc3Npb25SZXBvc2l0b3J5IGV4dGVuZHMgRGF0YWJhc2VSZXBvc2l0b3J5PFBlcm1pc3Npb24sIFBlcm1pc3Npb25bJ2lkJ10sIFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zPiB7XG4gICAgY29uc3RydWN0b3IoZGI6IERhdGFiYXNlUmVwb3NpdG9yeVsnZGInXSk7XG4gICAgcXVlcnkob3B0aW9ucz86IFBlcm1pc3Npb25SZXBvc2l0b3J5UXVlcnlPcHRpb25zKTogYW55O1xufVxuIiwiaW1wb3J0IHR5cGUgeyBGaW5kTWFueU9wdGlvbnMsIFBhZ2luYXRlT3B0aW9ucywgUGFnaW5hdGlvbiB9IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG9zaXRvcnlUeXBlczxURW50aXR5ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFByaW1hcnlLZXlUeXBlID0gYW55LCBUT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb3VudChvcHRpb25zPzogVE9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj47XG4gICAgZmluZE1hbnkob3B0aW9ucz86IFRPcHRpb25zICYgRmluZE1hbnlPcHRpb25zKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIGZpbmRCeUlkKGlkOiBUUHJpbWFyeUtleVR5cGUsIG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eSB8IG51bGw+O1xuICAgIGZpbmRCeUlkT3JGYWlsKGlkOiBUUHJpbWFyeUtleVR5cGUsIG9wdGlvbnM/OiBUT3B0aW9ucyk6IFByb21pc2U8VEVudGl0eT47XG4gICAgcGFnaW5hdGUob3B0aW9ucz86IFRPcHRpb25zICYgUGFnaW5hdGVPcHRpb25zKTogUHJvbWlzZTxQYWdpbmF0aW9uPjtcbiAgICBjcmVhdGUoZGF0YTogUGFydGlhbDxURW50aXR5Piwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5PjtcbiAgICBjcmVhdGVNYW55KGRhdGE6IFBhcnRpYWw8VEVudGl0eT5bXSwgb3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTxURW50aXR5W10+O1xuICAgIGRlbGV0ZUJ5SWQoaWQ6IFRQcmltYXJ5S2V5VHlwZSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVzdHJveU1hbnkob3B0aW9ucz86IFRPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhdGFiYXNlUmVwb3NpdG9yeUluZmVyTWl4aW48VEVudGl0eSA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRQcmltYXJ5S2V5VHlwZSA9IGFueSwgVE9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PigpOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IFRCYXNlICYgQ29uc3RydWN0b3I8SVJlcG9zaXRvcnlUeXBlczxURW50aXR5LCBUUHJpbWFyeUtleVR5cGUsIFRPcHRpb25zPj47XG4iLCJpbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0RhdGFiYXNlUmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgdHlwZSB7IFRva2VuIH0gZnJvbSAnI3NoYXJlZC9zY2hlbWFzL3Rva2VuU2NoZW1hLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZXBvc2l0b3J5UXVlcnlPcHRpb25zIHtcbiAgICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICAgIHNlYXJjaD86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5kZWNsYXJlIGNvbnN0IFRva2VuUmVwb3NpdG9yeV9iYXNlOiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2luZGV4LnRzXCIpLkNvbnN0cnVjdG9yICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9pbmRleC50c1wiKS5Db25zdHJ1Y3RvcjxpbXBvcnQoXCIjc2VydmVyL21peGlucy9EYXRhYmFzZVJlcG9zaXRvcnlJbmZlck1peGluLnRzXCIpLklSZXBvc2l0b3J5VHlwZXM8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdXNlcl9pZDogbnVtYmVyO1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICBleHBpcmVzX2F0OiBzdHJpbmc7XG59LCBudW1iZXIsIFRva2VuUmVwb3NpdG9yeVF1ZXJ5T3B0aW9ucz4+ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9pbmRleC50c1wiKS5Db25zdHJ1Y3Rvcjx7fT4gJiB0eXBlb2YgRGF0YWJhc2VSZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9rZW5SZXBvc2l0b3J5IGV4dGVuZHMgVG9rZW5SZXBvc2l0b3J5X2Jhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGRiOiBEYXRhYmFzZVJlcG9zaXRvcnlbJ2RiJ10pO1xuICAgIHF1ZXJ5KG9wdGlvbnM/OiBUb2tlblJlcG9zaXRvcnlRdWVyeU9wdGlvbnMpOiBhbnk7XG4gICAgZmluZEJ5VG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VG9rZW4gfCBudWxsPjtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgVXNlclRhYmxlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgRGF0YWJhc2VSZXBvc2l0b3J5IGZyb20gJy4vRGF0YWJhc2VSZXBvc2l0b3J5JztcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlcG9zaXRvcnlRdWVyeU9wdGlvbnMge1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIGlkPzogbnVtYmVyO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXNlclJlcG9zaXRvcnkgZXh0ZW5kcyBEYXRhYmFzZVJlcG9zaXRvcnk8VXNlclRhYmxlLCBzdHJpbmcsIFVzZXJSZXBvc2l0b3J5UXVlcnlPcHRpb25zPiB7XG4gICAgY29uc3RydWN0b3IoZGI6IERhdGFiYXNlUmVwb3NpdG9yeVsnZGInXSk7XG4gICAgcXVlcnkob3B0aW9ucz86IFVzZXJSZXBvc2l0b3J5UXVlcnlPcHRpb25zKTogYW55O1xufVxuIiwiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBCYXNlRHJpdmUgZnJvbSAnI3NlcnZlci9nYXRld2F5cy9Ecml2ZUJhc2VHYXRld2F5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVGU0NvbmZpZyB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZUZTIGV4dGVuZHMgQmFzZURyaXZlIHtcbiAgICBwcml2YXRlIHNjaGVtYTtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQaWNrPEJhc2VEcml2ZSwgJ2lkJyB8ICduYW1lJyB8ICdkZXNjcmlwdGlvbicgfCAnY29uZmlnJz4pO1xuICAgIGdldCB2YWxpZCgpOiBib29sZWFuO1xuICAgIHByaXZhdGUgY2hlY2tWYWxpZDtcbiAgICBwcm90ZWN0ZWQgZ2V0IHJvb3RQYXRoKCk6IHN0cmluZztcbiAgICBleGlzdHM6IEJhc2VEcml2ZVsnZXhpc3RzJ107XG4gICAgbGlzdDogQmFzZURyaXZlWydsaXN0J107XG4gICAgZmluZDogQmFzZURyaXZlWydmaW5kJ107XG4gICAgbWtkaXIoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gICAgcmVhZDogQmFzZURyaXZlWydyZWFkJ107XG4gICAgcmVhZFN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxmcy5SZWFkU3RyZWFtPjtcbiAgICB3cml0ZTogQmFzZURyaXZlWyd3cml0ZSddO1xuICAgIHdyaXRlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHN0cmVhbTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGU6IEJhc2VEcml2ZVsnZGVsZXRlJ107XG4gICAgdXJsOiBCYXNlRHJpdmVbJ3VybCddO1xuICAgIHVwbG9hZFVybDogQmFzZURyaXZlWyd1cGxvYWRVcmwnXTtcbn1cbiIsImltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBTaGVsbFNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9TaGVsbFNlcnZpY2UudHMnO1xuZXhwb3J0IGludGVyZmFjZSBHaXRSZXBvSW5mbyB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgaGVhZDogc3RyaW5nIHwgbnVsbDtcbiAgICBzaG9ydEhhc2g6IHN0cmluZztcbiAgICBpc0RldGFjaGVkSGVhZDogYm9vbGVhbjtcbiAgICByZW1vdGVzOiBzdHJpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2l0R2F0ZXdheU9wdGlvbnMge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIHNzaEtleT86IHN0cmluZztcbiAgICBzc2hLZXlGaWxlPzogc3RyaW5nO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG4gICAgc2hlbGw/OiBTaGVsbFNlcnZpY2U7XG4gICAgZGVidWc/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEdpdEdhdGV3YXlFeGVjdXRlT3B0aW9ucyB7XG4gICAgYXJnczogc3RyaW5nO1xuICAgIGN3ZD86IHN0cmluZztcbiAgICBzc2hLZXk/OiBzdHJpbmc7XG4gICAgc3NoS2V5RmlsZT86IHN0cmluZztcbiAgICBsb2dnZXI/OiBMb2dnZXJTZXJ2aWNlO1xuICAgIHNoZWxsPzogU2hlbGxTZXJ2aWNlO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEdpdEdhdGV3YXkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3dkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3NoS2V5PztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNzaEtleUZpbGU/O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVidWc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaGVsbDtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBHaXRHYXRld2F5T3B0aW9ucyk7XG4gICAgc3RhdGljIGV4ZWN1dGUob3B0aW9uczogR2l0R2F0ZXdheUV4ZWN1dGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHN0YXRpYyBjbG9uZShyZXBvVXJsOiBzdHJpbmcsIHRhcmdldERpcjogc3RyaW5nLCBvcHRpb25zOiBPbWl0PEdpdEdhdGV3YXlPcHRpb25zLCAnY3dkJz4pOiBQcm9taXNlPEdpdEdhdGV3YXk+O1xuICAgIHJ1bihhcmdzOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gICAgdHJ5UnVuKGFyZ3M6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gICAgY2hlY2tvdXQocmVmOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gICAgZmV0Y2hBbGwoKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIHB1bGwoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBnZXRJbmZvKCk6IFByb21pc2U8R2l0UmVwb0luZm8+O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHZhbHVlVG9TdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1ldGFkYXRhPFRhYmxlIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+KG1ldGFzVGFibGU6IFRhYmxlLCBmb3JlaWduS2V5OiBrZXlvZiBEYXRhYmFzZVtUYWJsZV0pOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBnZXQ8VCA9IGFueT4obmFtZTogc3RyaW5nKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgICAgICAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUKTogUHJvbWlzZTxUPjtcbiAgICAgICAgc2V0KG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gICAgfTtcbn0gJiBUQmFzZTtcbiIsImltcG9ydCB0eXBlIHsgS3lzZWx5IH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3Qga2V5ID0gXCJkYXRhYmFzZVwiO1xuZGVjbGFyZSBjb25zdCBkYXRhYmFzZTogS3lzZWx5PERhdGFiYXNlQ29udHJhY3Q+O1xuZXhwb3J0IGRlZmF1bHQgZGF0YWJhc2U7XG4iLCJpbXBvcnQgdHlwZSB7IFNlbGVjdGFibGUsIFNlbGVjdFF1ZXJ5QnVpbGRlciwgRXhwcmVzc2lvbkJ1aWxkZXIgYXMgS0V4cHJlc3Npb25CdWlsZGVyIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCBkYiBmcm9tICcjc2VydmVyL2ZhY2FkZXMvZGF0YWJhc2UudHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5leHBvcnQgdHlwZSBTZWxlY3RGcm9tPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBSZXR1cm5UeXBlPHR5cGVvZiBkYi5zZWxlY3RGcm9tPFQ+PiB8IFNlbGVjdFF1ZXJ5QnVpbGRlcjxEYXRhYmFzZSwgVCwgYW55PjtcbmV4cG9ydCB0eXBlIEluc2VydEZyb208VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IFJldHVyblR5cGU8dHlwZW9mIGRiLmluc2VydEludG88VD4+O1xuZXhwb3J0IHR5cGUgVXBkYXRlRnJvbTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gUmV0dXJuVHlwZTx0eXBlb2YgZGIudXBkYXRlVGFibGU8VD4+O1xuZXhwb3J0IHR5cGUgRGVsZXRlRnJvbTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gUmV0dXJuVHlwZTx0eXBlb2YgZGIuZGVsZXRlRnJvbTxUPj47XG5leHBvcnQgdHlwZSBTZWxlY3RCdWlsZGVyPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBTZWxlY3RRdWVyeUJ1aWxkZXI8RGF0YWJhc2UsIFQsIFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+PjtcbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25CdWlsZGVyPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBLRXhwcmVzc2lvbkJ1aWxkZXI8RGF0YWJhc2UsIFQ+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3Qgbm93OiAoKSA9PiBpbXBvcnQoXCJreXNlbHlcIikuUmF3QnVpbGRlcjxzdHJpbmc+O1xuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4ge1xuICAgIHNlcmlhbGl6ZT86IChyb3c6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+KSA9PiBhbnk7XG59XG5leHBvcnQgdHlwZSBTZXJpYWxpemFibGVSZXN1bHQ8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgU2VyaWFsaXplT3B0aW9uczxUPiB8IHVuZGVmaW5lZD4gPSBPIGV4dGVuZHMgdW5kZWZpbmVkID8gU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT4gOiBPIGV4dGVuZHMge1xuICAgIHNlcmlhbGl6ZTogKHJvdzogU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT4pID0+IGluZmVyIFI7XG59ID8gUiA6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+O1xuIiwiaW1wb3J0IHR5cGUgeyBFeHByZXNzaW9uQnVpbGRlciwgRXhwcmVzc2lvbldyYXBwZXIsIEluc2VydGFibGUgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RGcm9tLCBTZXJpYWxpemFibGVSZXN1bHQsIFNlcmlhbGl6ZU9wdGlvbnMsIFVwZGF0ZUZyb20gfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3JDcmVhdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gZXh0ZW5kcyBTZXJpYWxpemVPcHRpb25zPFQ+IHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG4gICAgc2VsZWN0PzogKHFiOiBTZWxlY3RGcm9tPFQ+KSA9PiBTZWxlY3RGcm9tPFQ+O1xuICAgIHVwZGF0ZT86IChxYjogVXBkYXRlRnJvbTxUPikgPT4gVXBkYXRlRnJvbTxUPjtcbiAgICB2YWx1ZXM6IEluc2VydGFibGU8RGF0YWJhc2VbVF0+IHwgSW5zZXJ0YWJsZTxEYXRhYmFzZVtUXT5bXTtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHVwZGF0ZU9yQ3JlYXRlPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTZXJpYWxpemFibGVSZXN1bHQ8VCwgTz4+O1xuIiwiaW1wb3J0IHR5cGUgeyBFeHByZXNzaW9uQnVpbGRlciwgRXhwcmVzc2lvbldyYXBwZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RGcm9tLCBTZXJpYWxpemVPcHRpb25zLCBTZXJpYWxpemFibGVSZXN1bHQgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4ge1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG4gICAgcXVlcnk/OiAocWI6IFNlbGVjdEZyb208VD4pID0+IFNlbGVjdEZyb208VD47XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBsaXN0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIExpc3RPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPltdPjtcbiIsImltcG9ydCB0eXBlIHsgRXhwcmVzc2lvbkJ1aWxkZXIsIEV4cHJlc3Npb25XcmFwcGVyLCBTZWxlY3RhYmxlIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgU2VsZWN0RnJvbSB9IGZyb20gJy4vY29tbW9uLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9QYWdpbmF0aW9uRW50aXR5LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4ge1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBwYWdlPzogbnVtYmVyO1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIG9yZGVyQnk/OiBEYXRhYmFzZVtUXSB8IChrZXlvZiBEYXRhYmFzZVtUXSlbXTtcbiAgICBvcmRlckRlc2M/OiAoJ2FzYycgfCAnZGVzYycpIHwgKCdhc2MnIHwgJ2Rlc2MnKVtdO1xuICAgIHdoZXJlPzogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxEYXRhYmFzZSwgVD4pID0+IEV4cHJlc3Npb25XcmFwcGVyPERhdGFiYXNlLCBULCBhbnk+O1xuICAgIHNlcmlhbGl6ZT86IChyb3c6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+KSA9PiBhbnk7XG4gICAgcXVlcnk/OiAocWI6IFNlbGVjdEZyb208VD4pID0+IGFueTtcbn1cbmV4cG9ydCB0eXBlIFBhZ2luYXRlUmVzdWx0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIFBhZ2luYXRlT3B0aW9uczxUPiB8IHVuZGVmaW5lZD4gPSBPIGV4dGVuZHMgdW5kZWZpbmVkID8gU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT4gOiBPIGV4dGVuZHMge1xuICAgIHNlcmlhbGl6ZTogKHJvdzogU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT4pID0+IGluZmVyIFI7XG59ID8gUiA6IFNlbGVjdGFibGU8RGF0YWJhc2VbVF0+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gcGFnaW5hdGU8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgUGFnaW5hdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFBhZ2luYXRpb248UGFnaW5hdGVSZXN1bHQ8VCwgTz4+PjtcbiIsImltcG9ydCB0eXBlIHsgU2VsZWN0RnJvbSB9IGZyb20gJy4vY29tbW9uLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IGludGVyZmFjZSBDb3VudE9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiB7XG4gICAgcXVlcnk/OiAocWI6IFNlbGVjdEZyb208VD4pID0+IFNlbGVjdEZyb208VD47XG4gICAgZGVidWc/OiBib29sZWFuO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY291bnQ8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgQ291bnRPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPG51bWJlcj47XG4iLCJpbXBvcnQgdHlwZSB7IEluc2VydGFibGUgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBTZXJpYWxpemFibGVSZXN1bHQsIFNlcmlhbGl6ZU9wdGlvbnMgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IGV4dGVuZHMgU2VyaWFsaXplT3B0aW9uczxUPiB7XG4gICAgdmFsdWVzOiBJbnNlcnRhYmxlPERhdGFiYXNlW1RdPjtcbiAgICBwcmltYXJ5S2V5Pzogc3RyaW5nO1xuICAgIG5vcm1hbGl6ZT86IGJvb2xlYW4gfCAoKHZhbHVlOiBhbnkpID0+IGFueSk7XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIENyZWF0ZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNyZWF0ZU15c3FsPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIENyZWF0ZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNyZWF0ZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBDcmVhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPGltcG9ydChcImt5c2VseVwiKS5EcmFpbk91dGVyR2VuZXJpYzx7IFtLXzEgaW4gKERhdGFiYXNlW1RdIGV4dGVuZHMgaW5mZXIgVF8xID8geyBbSyBpbiBrZXlvZiBUXzFdOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0VHlwZTxUXzFbS10+IGV4dGVuZHMgaW5mZXIgVF8yID8gVF8yIGV4dGVuZHMgaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8VF8xW0tdPiA/IFRfMiBleHRlbmRzIG5ldmVyID8gbmV2ZXIgOiBLIDogbmV2ZXIgOiBuZXZlcjsgfSA6IG5ldmVyKVtrZXlvZiBEYXRhYmFzZVtUXV1dOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0VHlwZTxEYXRhYmFzZVtUXVtLXzFdPjsgfT4+O1xuIiwiaW1wb3J0IHR5cGUgeyBVcGRhdGVhYmxlLCBFeHByZXNzaW9uQnVpbGRlciwgRXhwcmVzc2lvbldyYXBwZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGcm9tLCBTZXJpYWxpemFibGVSZXN1bHQsIFNlcmlhbGl6ZU9wdGlvbnMgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IGV4dGVuZHMgU2VyaWFsaXplT3B0aW9uczxUPiB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIHZhbHVlczogVXBkYXRlYWJsZTxEYXRhYmFzZVtUXT47XG4gICAgbm9ybWFsaXplPzogYm9vbGVhbiB8ICgodmFsdWU6IGFueSkgPT4gYW55KTtcbiAgICB3aGVyZT86IChxYjogRXhwcmVzc2lvbkJ1aWxkZXI8RGF0YWJhc2UsIFQ+KSA9PiBFeHByZXNzaW9uV3JhcHBlcjxEYXRhYmFzZSwgVCwgYW55PjtcbiAgICBxdWVyeT86IChxYjogVXBkYXRlRnJvbTxUPikgPT4gVXBkYXRlRnJvbTxUPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHVwZGF0ZURlZmF1bHQ8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgVXBkYXRlT3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxTZXJpYWxpemFibGVSZXN1bHQ8VCwgTz5bXT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cGRhdGVNeXNxbDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBVcGRhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPltdPjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHVwZGF0ZTxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBVcGRhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPGltcG9ydChcImt5c2VseVwiKS5EcmFpbk91dGVyR2VuZXJpYzx7IFtLXzEgaW4gKERhdGFiYXNlW1RdIGV4dGVuZHMgaW5mZXIgVF8xID8geyBbSyBpbiBrZXlvZiBUXzFdOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0VHlwZTxUXzFbS10+IGV4dGVuZHMgaW5mZXIgVF8yID8gVF8yIGV4dGVuZHMgaW1wb3J0KFwia3lzZWx5XCIpLlNlbGVjdFR5cGU8VF8xW0tdPiA/IFRfMiBleHRlbmRzIG5ldmVyID8gbmV2ZXIgOiBLIDogbmV2ZXIgOiBuZXZlcjsgfSA6IG5ldmVyKVtrZXlvZiBEYXRhYmFzZVtUXV1dOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0VHlwZTxEYXRhYmFzZVtUXVtLXzFdPjsgfT5bXT47XG4iLCJpbXBvcnQgdHlwZSB7IEV4cHJlc3Npb25XcmFwcGVyLCBFeHByZXNzaW9uQnVpbGRlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmltcG9ydCBkYiBmcm9tICcjc2VydmVyL2ZhY2FkZXMvZGF0YWJhc2UudHMnO1xudHlwZSBEZWxldGVGcm9tPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBSZXR1cm5UeXBlPHR5cGVvZiBkYi5kZWxldGVGcm9tPFQ+PjtcbmV4cG9ydCBpbnRlcmZhY2UgRGVzdHJveU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiB7XG4gICAgcXVlcnk/OiAocWI6IERlbGV0ZUZyb208VD4pID0+IERlbGV0ZUZyb208VD47XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBkZXN0cm95PFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIERlc3Ryb3lPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBFeHByZXNzaW9uQnVpbGRlciwgRXhwcmVzc2lvbldyYXBwZXIsIEluc2VydGFibGUgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RGcm9tLCBTZXJpYWxpemFibGVSZXN1bHQsIFNlcmlhbGl6ZU9wdGlvbnMgfSBmcm9tICcuL2NvbW1vbi50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgRmlyc3RPckNyZWF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiBleHRlbmRzIFNlcmlhbGl6ZU9wdGlvbnM8VD4ge1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBzZWxlY3Q/OiAocWI6IFNlbGVjdEZyb208VD4pID0+IFNlbGVjdEZyb208VD47XG4gICAgd2hlcmU/OiAocWI6IEV4cHJlc3Npb25CdWlsZGVyPERhdGFiYXNlLCBUPikgPT4gRXhwcmVzc2lvbldyYXBwZXI8RGF0YWJhc2UsIFQsIGFueT47XG4gICAgdmFsdWVzOiBJbnNlcnRhYmxlPERhdGFiYXNlW1RdPiB8IEluc2VydGFibGU8RGF0YWJhc2VbVF0+W107XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBmaXJzdE9yQ3JlYXRlPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIEZpcnN0T3JDcmVhdGVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPFNlcmlhbGl6YWJsZVJlc3VsdDxULCBPPj47XG4iLCJpbXBvcnQgdHlwZSB7IEV4cHJlc3Npb25CdWlsZGVyLCBFeHByZXNzaW9uV3JhcHBlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdEZyb20sIFNlcmlhbGl6YWJsZVJlc3VsdCwgU2VyaWFsaXplT3B0aW9ucyB9IGZyb20gJy4vY29tbW9uLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCBhcyBEYXRhYmFzZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RhdGFiYXNlQ29udHJhY3QudHMnO1xuZXhwb3J0IGludGVyZmFjZSBGaW5kT25lT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+IGV4dGVuZHMgU2VyaWFsaXplT3B0aW9uczxUPiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IChxYjogU2VsZWN0RnJvbTxUPikgPT4gU2VsZWN0RnJvbTxUPjtcbiAgICB3aGVyZT86IChxYjogRXhwcmVzc2lvbkJ1aWxkZXI8RGF0YWJhc2UsIFQ+KSA9PiBFeHByZXNzaW9uV3JhcHBlcjxEYXRhYmFzZSwgVCwgYW55Pjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGZpbmRPbmU8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgRmluZE9uZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+IHwgbnVsbD47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBmaW5kT25lT3JGYWlsPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZSwgTyBleHRlbmRzIEZpbmRPbmVPcHRpb25zPFQ+Pih0YWJsZTogVCwgb3B0aW9ucz86IE8pOiBQcm9taXNlPE5vbk51bGxhYmxlPEF3YWl0ZWQ8U2VyaWFsaXphYmxlUmVzdWx0PFQsIE8+Pj4+O1xuIiwiaW1wb3J0IHR5cGUgeyBVcGRhdGVPckNyZWF0ZU9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvdXBkYXRlT3JDcmVhdGUudHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgdHlwZSB7IExpc3RPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL2xpc3QudHMnO1xuaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZU9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvcGFnaW5hdGUudHMnO1xuaW1wb3J0IHR5cGUgeyBDb3VudE9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvY291bnQudHMnO1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL2NyZWF0ZS50cyc7XG5pbXBvcnQgdHlwZSB7IFVwZGF0ZU9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvdXBkYXRlLnRzJztcbmltcG9ydCB0eXBlIHsgRGVzdHJveU9wdGlvbnMgfSBmcm9tICcjc2VydmVyL3F1ZXJpZXMvZGVzdHJveS50cyc7XG5pbXBvcnQgdHlwZSB7IEZpcnN0T3JDcmVhdGVPcHRpb25zIH0gZnJvbSAnI3NlcnZlci9xdWVyaWVzL2ZpcnN0T3JDcmVhdGUudHMnO1xuaW1wb3J0IHR5cGUgeyBGaW5kT25lT3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvcXVlcmllcy9maW5kT25lLnRzJztcbmltcG9ydCB0eXBlIFBhZ2luYXRpb24gZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9QYWdpbmF0aW9uRW50aXR5LnRzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHMnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RRdWVyeUJ1aWxkZXIgfSBmcm9tICdreXNlbHknO1xuZXhwb3J0IHR5cGUgTW9kZWxMaXN0T3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gT21pdDxMaXN0T3B0aW9uczxUPiwgJ3NlcmlhbGl6ZSc+O1xuZXhwb3J0IHR5cGUgTW9kZWxGaW5kT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gT21pdDxGaW5kT25lT3B0aW9uczxUPiwgJ3NlcmlhbGl6ZScgfCAnb3JkZXJCeSc+O1xuZXhwb3J0IHR5cGUgTW9kZWxQYWdpbmF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IE9taXQ8UGFnaW5hdGVPcHRpb25zPFQ+LCAnc2VyaWFsaXplJz47XG5leHBvcnQgdHlwZSBNb2RlbENvdW50T3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gQ291bnRPcHRpb25zPFQ+O1xuZXhwb3J0IHR5cGUgTW9kZWxDcmVhdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBPbWl0PENyZWF0ZU9wdGlvbnM8VD4sICdzZXJpYWxpemUnPjtcbmV4cG9ydCB0eXBlIE1vZGVsVXBkYXRlT3B0aW9uczxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2U+ID0gT21pdDxVcGRhdGVPcHRpb25zPFQ+LCAnc2VyaWFsaXplJz47XG5leHBvcnQgdHlwZSBNb2RlbERlc3Ryb3lPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBEZXN0cm95T3B0aW9uczxUPjtcbmV4cG9ydCB0eXBlIE1vZGVsRmlyc3RPckNyZWF0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IE9taXQ8Rmlyc3RPckNyZWF0ZU9wdGlvbnM8VD4sICdzZXJpYWxpemUnPjtcbmV4cG9ydCB0eXBlIE1vZGVsVXBkYXRlT3JDcmVhdGVPcHRpb25zPFQgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZT4gPSBPbWl0PFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxUPiwgJ3NlcmlhbGl6ZSc+O1xuZXhwb3J0IHR5cGUgTW9kZWxFbnRpdHkgPSBSZXR1cm5UeXBlPFJldHVyblR5cGU8dHlwZW9mIE1vZGVsTWl4aW48YW55Pj4+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW9kZWxNaXhpbjxUYWJsZSBleHRlbmRzIGtleW9mIERhdGFiYXNlPih0YWJsZTogVGFibGUsIHByaW1hcnlLZXk/OiBrZXlvZiBEYXRhYmFzZVtUYWJsZV0pOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBzYXZlKCk6IFByb21pc2U8dm9pZD47XG4gICAgICAgIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgc29mdERlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG4gICAgX19tb2RlbDoge1xuICAgICAgICB0YWJsZTogVGFibGU7XG4gICAgICAgIHByaW1hcnlLZXk6IGtleW9mIERhdGFiYXNlW1RhYmxlXTtcbiAgICB9O1xuICAgIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgcm93OiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIHNlbGVjdCgpOiBTZWxlY3RRdWVyeUJ1aWxkZXI8RGF0YWJhc2UsIFRhYmxlLCBhbnk+O1xuICAgIHBhZ2luYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogTW9kZWxQYWdpbmF0ZU9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTxQYWdpbmF0aW9uPFQ+PjtcbiAgICBsaXN0PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogTW9kZWxMaXN0T3B0aW9uczxUYWJsZT4pOiBQcm9taXNlPFRbXT47XG4gICAgZmluZE9uZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IE1vZGVsRmluZE9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgICBmaW5kT25lT3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogTW9kZWxGaW5kT3B0aW9uczxUYWJsZT4pOiBQcm9taXNlPFQ+O1xuICAgIGZpbmQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgICBmaW5kT3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kQnk8VD4odGhpczogbmV3ICgpID0+IFQsIGNvbHVtbjoga2V5b2YgRGF0YWJhc2VbVGFibGVdLCB2YWx1ZTogYW55KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kQnlPckZhaWw8VD4odGhpczogbmV3ICgpID0+IFQsIGNvbHVtbjoga2V5b2YgRGF0YWJhc2VbVGFibGVdLCB2YWx1ZTogYW55KTogUHJvbWlzZTxUPjtcbiAgICBleGlzdHM8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBNb2RlbExpc3RPcHRpb25zPFRhYmxlPik6IFByb21pc2U8Ym9vbGVhbj47XG4gICAgY291bnQ8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBNb2RlbENvdW50T3B0aW9uczxUYWJsZT4pOiBQcm9taXNlPG51bWJlcj47XG4gICAgY3JlYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBwYXlsb2FkOiBNb2RlbENyZWF0ZU9wdGlvbnM8VGFibGU+W1widmFsdWVzXCJdKTogUHJvbWlzZTxUPjtcbiAgICBjcmVhdGVNYW55PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCB2YWx1ZXM6IEFycmF5PE1vZGVsQ3JlYXRlT3B0aW9uczxUYWJsZT5bXCJ2YWx1ZXNcIl0+KTogUHJvbWlzZTxUW10+O1xuICAgIHVwZGF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbzogTW9kZWxVcGRhdGVPcHRpb25zPFRhYmxlPik6IFByb21pc2U8VD47XG4gICAgdXBkYXRlQnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSwgdmFsdWVzOiBNb2RlbFVwZGF0ZU9wdGlvbnM8VGFibGU+W1widmFsdWVzXCJdLCBvcHRpb25zPzoge1xuICAgICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfSk6IFByb21pc2U8VD47XG4gICAgZGVzdHJveTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IE1vZGVsRGVzdHJveU9wdGlvbnM8VGFibGU+KTogUHJvbWlzZTx2b2lkPjtcbiAgICBmaXJzdE9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvOiBNb2RlbEZpcnN0T3JDcmVhdGVPcHRpb25zPFRhYmxlPik6IFQ7XG4gICAgdXBkYXRlT3JDcmVhdGU8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgbzogTW9kZWxVcGRhdGVPckNyZWF0ZU9wdGlvbnM8VGFibGU+KTogVDtcbiAgICBkZXN0cm95QnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8dm9pZD47XG59ICYgVEJhc2U7XG4iLCJpbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmludGVyZmFjZSBSZWxhdGlvbiB7XG4gICAgbG9hZChlbnRpdGllczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUmVsYXRpb248UiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPj4ocmVsYXRpb25zOiBSKTogPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKSA9PiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHt9O1xuICAgIGxvYWQ8VD4odGhpczogbmV3ICgpID0+IFQsIGVudGl0aWVzOiBUIHwgVFtdLCBuYW1lczoga2V5b2YgUiB8IChrZXlvZiBSKVtdKTogUHJvbWlzZTx2b2lkPjtcbn0gJiBUQmFzZTtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCBDb25maWdTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvQ29uZmlnU2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IGNvbmZpZzogQ29uZmlnU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IGNvbmZpZztcbiIsImltcG9ydCBDb250YWluZXJTZXJ2aWNlIGZyb20gXCIjc2hhcmVkL3NlcnZpY2VzL0NvbnRhaW5lclNlcnZpY2UudHNcIjtcbmRlY2xhcmUgY29uc3QgX2RlZmF1bHQ6IENvbnRhaW5lclNlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBfZGVmYXVsdDtcbiIsImltcG9ydCBEb3dubG9hZFNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9Eb3dubG9hZFNlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCBkb3dubG9hZDogRG93bmxvYWRTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgZG93bmxvYWQ7XG4iLCJpbXBvcnQgRHJpdmVTZXJ2aWNlIGZyb20gJyNzZXJ2ZXIvc2VydmljZXMvRHJpdmVTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3QgZHJpdmU6IERyaXZlU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IGRyaXZlO1xuIiwiaW1wb3J0IHsgRW1taXR0ZXJTZXJ2aWNlIH0gZnJvbSAnI3NoYXJlZC9pbmRleC50cyc7XG5kZWNsYXJlIGNvbnN0IGVtbWl0dGVyOiBFbW1pdHRlclNlcnZpY2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5leHBvcnQgZGVmYXVsdCBlbW1pdHRlcjtcbiIsImltcG9ydCBFbmNyeXB0U2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL0VuY3J5cHRTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3QgZW5jcnlwdDogRW5jcnlwdFNlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBlbmNyeXB0O1xuIiwiaW1wb3J0IEZpbGVSZXBvc2l0b3J5IGZyb20gXCIjc2VydmVyL3JlcG9zaXRvcmllcy9GaWxlUmVwb3NpdG9yeS50c1wiO1xuZGVjbGFyZSBjb25zdCBmaWxlUmVwb3NpdG9yeTogRmlsZVJlcG9zaXRvcnk7XG5leHBvcnQgZGVmYXVsdCBmaWxlUmVwb3NpdG9yeTtcbiIsImltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbmV4cG9ydCBkZWZhdWx0IGxvZ2dlcjtcbiIsImltcG9ydCBNaWdyYXRvclNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9NaWdyYXRvclNlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCBtaWdyYXRvcjogTWlncmF0b3JTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgbWlncmF0b3I7XG4iLCJpbXBvcnQgUGVybWlzc2lvbkFzc2lnbm1lbnRSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL1Blcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeS50cyc7XG5kZWNsYXJlIGNvbnN0IHBlcm1pc3Npb25Bc3NpZ25tZW50UmVwb3NpdG9yeTogUGVybWlzc2lvbkFzc2lnbm1lbnRSZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgcGVybWlzc2lvbkFzc2lnbm1lbnRSZXBvc2l0b3J5O1xuIiwiaW1wb3J0IFBlcm1pc3Npb25SZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL1Blcm1pc3Npb25SZXBvc2l0b3J5LnRzJztcbmRlY2xhcmUgY29uc3QgcGVybWlzc2lvblJlcG9zaXRvcnk6IFBlcm1pc3Npb25SZXBvc2l0b3J5O1xuZXhwb3J0IGRlZmF1bHQgcGVybWlzc2lvblJlcG9zaXRvcnk7XG4iLCJpbXBvcnQgdHlwZSB7IEh0dHBDb250ZXh0IH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvSHR0cENvbnRleHRDb250cmFjdC50cyc7XG5pbXBvcnQgUm91dGVyU2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL1JvdXRlclNlcnZpY2UudHMnO1xuZGVjbGFyZSBjb25zdCByb3V0ZXI6IFJvdXRlclNlcnZpY2U8SHR0cENvbnRleHQ+O1xuZXhwb3J0IGRlZmF1bHQgcm91dGVyO1xuIiwiaW1wb3J0IFNjaGVkdWxlclNlcnZpY2UgZnJvbSAnI3NlcnZlci9zZXJ2aWNlcy9TY2hlZHVsZXJTZXJ2aWNlLnRzJztcbmRlY2xhcmUgY29uc3Qgc2NoZWR1bGVyOiBTY2hlZHVsZXJTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgc2NoZWR1bGVyO1xuIiwiaW1wb3J0IFNoZWxsU2VydmljZSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL1NoZWxsU2VydmljZS50cyc7XG5kZWNsYXJlIGNvbnN0IHNoZWxsOiBTaGVsbFNlcnZpY2U7XG5leHBvcnQgZGVmYXVsdCBzaGVsbDtcbiIsImltcG9ydCBUb2tlblJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvVG9rZW5SZXBvc2l0b3J5LnRzJztcbmRlY2xhcmUgY29uc3QgdG9rZW5SZXBvc2l0b3J5OiBUb2tlblJlcG9zaXRvcnk7XG5leHBvcnQgZGVmYXVsdCB0b2tlblJlcG9zaXRvcnk7XG4iLCJpbXBvcnQgVXNlclJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvVXNlclJlcG9zaXRvcnkudHMnO1xuZGVjbGFyZSBjb25zdCB1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnk7XG5leHBvcnQgZGVmYXVsdCB1c2VyUmVwb3NpdG9yeTtcbiIsImltcG9ydCB0eXBlIHsgS3lzZWx5IH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VDb250cmFjdCB9IGZyb20gJy4vRGF0YWJhc2VDb250cmFjdCc7XG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlS3lzZWx5IGV4dGVuZHMgS3lzZWx5PERhdGFiYXNlQ29udHJhY3Q+IHtcbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgTG9hZGVyPFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgbG9hZChlbnRpdGllczogVFtdKTogUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGVyUmVjb3JkPFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgW2tleTogc3RyaW5nXTogTG9hZGVyPFQ+O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZGVmaW5lTG9hZGVyPFQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+Pihsb2FkZXI6IExvYWRlcjxUPik6IExvYWRlcjxUPjtcbiIsInR5cGUgS2V5T3JGdW5jdGlvbjxUPiA9IGtleW9mIFQgfCAoKGVudGl0eTogVCkgPT4gYW55KTtcbmV4cG9ydCBpbnRlcmZhY2UgSGFzTWFueVRocm91Z2hMb2FkZXJPcHRpb25zPFRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFBpdm90RW50aXR5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sIFRUYXJnZXRFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHBpdm90OiB7XG4gICAgICAgIHNvdXJjZUtleTogS2V5T3JGdW5jdGlvbjxURW50aXR5PjtcbiAgICAgICAgdGFyZ2V0S2V5OiBLZXlPckZ1bmN0aW9uPFRQaXZvdEVudGl0eT47XG4gICAgICAgIGZpbmRFbnRpdGllcyhpZHM6IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPFRQaXZvdEVudGl0eVtdPjtcbiAgICB9O1xuICAgIHRhcmdldDoge1xuICAgICAgICBzb3VyY2VLZXk6IEtleU9yRnVuY3Rpb248VFBpdm90RW50aXR5PjtcbiAgICAgICAgdGFyZ2V0S2V5OiBLZXlPckZ1bmN0aW9uPFRUYXJnZXRFbnRpdHk+O1xuICAgICAgICBmaW5kRW50aXRpZXMoaWRzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxUVGFyZ2V0RW50aXR5W10+O1xuICAgIH07XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBsb2FkSGFzTWFueVRocm91Z2g8VEVudGl0eSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBUUGl2b3RFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFRhcmdldEVudGl0eSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PihwYXlsb2FkOiBhbnkgfCBhbnlbXSwgb3B0aW9uczogSGFzTWFueVRocm91Z2hMb2FkZXJPcHRpb25zPFRFbnRpdHksIFRQaXZvdEVudGl0eSwgVFRhcmdldEVudGl0eT4pOiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY3JlYXRlSGFzTWFueVRocm91Z2hMb2FkZXI8VEVudGl0eSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBUUGl2b3RFbnRpdHkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgVFRhcmdldEVudGl0eSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PihvcHRpb25zOiBIYXNNYW55VGhyb3VnaExvYWRlck9wdGlvbnM8VEVudGl0eSwgVFBpdm90RW50aXR5LCBUVGFyZ2V0RW50aXR5Pik6IGltcG9ydChcIiNzZXJ2ZXIvdXRpbHMvZGVmaW5lTG9hZGVyLnRzXCIpLkxvYWRlcjxURW50aXR5PjtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCBCYXNlIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvRHJpdmVDb25maWdFbnRpdHkudHMnO1xuZGVjbGFyZSBjb25zdCBEcml2ZUNvbmZpZ19iYXNlOiB0eXBlb2YgQmFzZSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge307XG4gICAgX19pc0NvbmZpZ01vZGVsOiBib29sZWFuO1xuICAgIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCByb3c6IGFueSk6IFByb21pc2U8VD47XG4gICAgbGlzdDxUPih0aGlzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogUHJvbWlzZTxUW10+O1xuICAgIGZpbmQ8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+O1xuICAgIGZpbmRPckZhaWw8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8VD47XG4gICAgY3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGl0ZW06IFQgJiB7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD47XG4gICAgdXBkYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcsIGRhdGE6IFQpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHVwZGF0ZU9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIGlkOiBzdHJpbmcsIGRhdGE6IFBhcnRpYWw8VD4pOiBQcm9taXNlPHZvaWQ+O1xuICAgIGRlc3Ryb3k8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVDb25maWcgZXh0ZW5kcyBEcml2ZUNvbmZpZ19iYXNlIHtcbiAgICBzdGF0aWMgc2VyaWFsaXplPFQ+KHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsIHJvdzogYW55KTogUHJvbWlzZTxUPjtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCBCYXNlIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvRmlsZUVudGl0eS50cyc7XG5pbXBvcnQgdHlwZSB7IERyaXZlVXJsT3B0aW9ucyB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0RyaXZlQ29udHJhY3QudHMnO1xuaW50ZXJmYWNlIFVSTENhY2hlIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBleHBpcmVzOiBudW1iZXI7XG59XG5kZWNsYXJlIGNvbnN0IEZpbGVfYmFzZTogdHlwZW9mIEJhc2UgJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbGlzdGVuZXJzOiBpbXBvcnQoXCIjc2hhcmVkL21peGlucy9Ib29rc01peGluLnRzXCIpLkxpc3RlbmVyW107XG4gICAgICAgIG9uKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgICAgIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgICAgICBlbWl0QXN5bmMoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIHNhdmUoKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgZGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBzb2Z0RGVsZXRlKCk6IFByb21pc2U8dm9pZD47XG4gICAgfTtcbiAgICBfX21vZGVsOiB7XG4gICAgICAgIHRhYmxlOiBcImZpbGVzXCI7XG4gICAgICAgIHByaW1hcnlLZXk6IGtleW9mIGltcG9ydChcIi4uL2luZGV4LnRzXCIpLkZpbGVUYWJsZTtcbiAgICB9O1xuICAgIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgcm93OiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIHNlbGVjdCgpOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0UXVlcnlCdWlsZGVyPGltcG9ydChcIi4uL2luZGV4LnRzXCIpLkRhdGFiYXNlQ29udHJhY3QsIFwiZmlsZXNcIiwgYW55PjtcbiAgICBwYWdpbmF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxQYWdpbmF0ZU9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8aW1wb3J0KFwiLi4vLi4vc2hhcmVkL2luZGV4LnRzXCIpLlBhZ2luYXRpb25FbnRpdHk8VD4+O1xuICAgIGxpc3Q8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsTGlzdE9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VFtdPjtcbiAgICBmaW5kT25lPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbEZpbmRPcHRpb25zPFwiZmlsZXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+O1xuICAgIGZpbmRPbmVPckZhaWw8VD4odGhpczogbmV3ICgpID0+IFQsIG8/OiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsRmluZE9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VD47XG4gICAgZmluZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8VCB8IG51bGw+O1xuICAgIGZpbmRPckZhaWw8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGZpbmRCeTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgY29sdW1uOiBrZXlvZiBpbXBvcnQoXCIuLi9pbmRleC50c1wiKS5GaWxlVGFibGUsIHZhbHVlOiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGZpbmRCeU9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgY29sdW1uOiBrZXlvZiBpbXBvcnQoXCIuLi9pbmRleC50c1wiKS5GaWxlVGFibGUsIHZhbHVlOiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGV4aXN0czxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxMaXN0T3B0aW9uczxcImZpbGVzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICBjb3VudDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxDb3VudE9wdGlvbnM8XCJmaWxlc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8bnVtYmVyPjtcbiAgICBjcmVhdGU8VD4odGhpczogbmV3ICgpID0+IFQsIHBheWxvYWQ6IG9iamVjdCAmIHtcbiAgICAgICAgZHJpdmU6IHN0cmluZztcbiAgICAgICAgbWltZXR5cGU6IHN0cmluZztcbiAgICAgICAgY2xpZW50X25hbWU6IHN0cmluZztcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICBwdWJsaWM6IGJvb2xlYW47XG4gICAgfSAmIHtcbiAgICAgICAgaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0pOiBQcm9taXNlPFQ+O1xuICAgIGNyZWF0ZU1hbnk8VD4odGhpczogbmV3ICgpID0+IFQsIHZhbHVlczogKG9iamVjdCAmIHtcbiAgICAgICAgZHJpdmU6IHN0cmluZztcbiAgICAgICAgbWltZXR5cGU6IHN0cmluZztcbiAgICAgICAgY2xpZW50X25hbWU6IHN0cmluZztcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICBwdWJsaWM6IGJvb2xlYW47XG4gICAgfSAmIHtcbiAgICAgICAgaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0pW10pOiBQcm9taXNlPFRbXT47XG4gICAgdXBkYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvOiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsVXBkYXRlT3B0aW9uczxcImZpbGVzXCI+KTogUHJvbWlzZTxUPjtcbiAgICB1cGRhdGVCeUlkPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55LCB2YWx1ZXM6IHtcbiAgICAgICAgaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBudWxsIHwgdW5kZWZpbmVkO1xuICAgICAgICBkcml2ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgbWltZXR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNsaWVudF9uYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBmaWxlbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgcHVycG9zZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgcHVibGljPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICB9LCBvcHRpb25zPzoge1xuICAgICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfSB8IHVuZGVmaW5lZCk6IFByb21pc2U8VD47XG4gICAgZGVzdHJveTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxEZXN0cm95T3B0aW9uczxcImZpbGVzXCI+IHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPjtcbiAgICBmaXJzdE9yQ3JlYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvOiBpbXBvcnQoXCIjc2VydmVyL21peGlucy9Nb2RlbE1peGluLnRzXCIpLk1vZGVsRmlyc3RPckNyZWF0ZU9wdGlvbnM8XCJmaWxlc1wiPik6IFQ7XG4gICAgdXBkYXRlT3JDcmVhdGU8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgbzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxcImZpbGVzXCI+KTogVDtcbiAgICBkZXN0cm95QnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSk6IFByb21pc2U8dm9pZD47XG59ICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7fTtcbiAgICBsb2FkPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBlbnRpdGllczogVCB8IFRbXSwgbmFtZXM6IFwibWV0YXNcIiB8IFwibWV0YXNcIltdKTogUHJvbWlzZTx2b2lkPjtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gICAgICAgIGdldDxUID0gYW55PihuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCk6IFByb21pc2U8VD47XG4gICAgICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZSBleHRlbmRzIEZpbGVfYmFzZSB7XG4gICAgc3RhdGljIGNhY2hlOiBNYXA8c3RyaW5nLCBVUkxDYWNoZT47XG4gICAgc3RhdGljIGhhcyhmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICBzdGF0aWMgZmluZEJ5RmlsZW5hbWUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZSB8IHVuZGVmaW5lZD47XG4gICAgcmVhZFN0cmVhbSgpOiBQcm9taXNlPE5vZGVKUy5SZWFkYWJsZVN0cmVhbT47XG4gICAgcmVhZCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk8QXJyYXlCdWZmZXJMaWtlPj47XG4gICAgbG9hZFVybChvcHRpb25zPzogRHJpdmVVcmxPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzdGF0aWMgbG9hZFVybHMoaXRlbXM6IEZpbGVbXSwgb3B0aW9ucz86IERyaXZlVXJsT3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgc3RhdGljIGxvYWRNZXRhcyhpdGVtczogRmlsZVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgICBkZWxldGVGcm9tRHJpdmUoKTogUHJvbWlzZTx2b2lkPjtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCBCYXNlTWV0YSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL0ZpbGVNZXRhRW50aXR5LnRzJztcbmRlY2xhcmUgY29uc3QgRmlsZU1ldGFfYmFzZTogdHlwZW9mIEJhc2VNZXRhICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIHNhdmUoKTogUHJvbWlzZTx2b2lkPjtcbiAgICAgICAgZGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBzb2Z0RGVsZXRlKCk6IFByb21pc2U8dm9pZD47XG4gICAgfTtcbiAgICBfX21vZGVsOiB7XG4gICAgICAgIHRhYmxlOiBcImZpbGVfbWV0YXNcIjtcbiAgICAgICAgcHJpbWFyeUtleToga2V5b2YgaW1wb3J0KFwiLi5cIikuRmlsZU1ldGFUYWJsZTtcbiAgICB9O1xuICAgIHNlcmlhbGl6ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgcm93OiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIHNlbGVjdCgpOiBpbXBvcnQoXCJreXNlbHlcIikuU2VsZWN0UXVlcnlCdWlsZGVyPGltcG9ydChcIi4uXCIpLkRhdGFiYXNlQ29udHJhY3QsIFwiZmlsZV9tZXRhc1wiLCBhbnk+O1xuICAgIHBhZ2luYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbFBhZ2luYXRlT3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPGltcG9ydChcIi4uLy4uL3NoYXJlZFwiKS5QYWdpbmF0aW9uRW50aXR5PFQ+PjtcbiAgICBsaXN0PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbExpc3RPcHRpb25zPFwiZmlsZV9tZXRhc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VFtdPjtcbiAgICBmaW5kT25lPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbEZpbmRPcHRpb25zPFwiZmlsZV9tZXRhc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG4gICAgZmluZE9uZU9yRmFpbDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxGaW5kT3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPFQ+O1xuICAgIGZpbmQ8VD4odGhpczogbmV3ICgpID0+IFQsIGlkOiBhbnkpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgICBmaW5kT3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTxUPjtcbiAgICBmaW5kQnk8VD4odGhpczogbmV3ICgpID0+IFQsIGNvbHVtbjoga2V5b2YgaW1wb3J0KFwiLi5cIikuRmlsZU1ldGFUYWJsZSwgdmFsdWU6IGFueSk6IFByb21pc2U8VD47XG4gICAgZmluZEJ5T3JGYWlsPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBjb2x1bW46IGtleW9mIGltcG9ydChcIi4uXCIpLkZpbGVNZXRhVGFibGUsIHZhbHVlOiBhbnkpOiBQcm9taXNlPFQ+O1xuICAgIGV4aXN0czxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbz86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxMaXN0T3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGNvdW50PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbENvdW50T3B0aW9uczxcImZpbGVfbWV0YXNcIj4gfCB1bmRlZmluZWQpOiBQcm9taXNlPG51bWJlcj47XG4gICAgY3JlYXRlPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBwYXlsb2FkOiBvYmplY3QgJiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgZmlsZV9pZDogbnVtYmVyO1xuICAgIH0gJiB7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHVwZGF0ZWRfYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0pOiBQcm9taXNlPFQ+O1xuICAgIGNyZWF0ZU1hbnk8VD4odGhpczogbmV3ICgpID0+IFQsIHZhbHVlczogKG9iamVjdCAmIHtcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICBmaWxlX2lkOiBudW1iZXI7XG4gICAgfSAmIHtcbiAgICAgICAgaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAgICAgY3JlYXRlZF9hdD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgdXBkYXRlZF9hdD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgZGVsZXRlZF9hdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgfSlbXSk6IFByb21pc2U8VFtdPjtcbiAgICB1cGRhdGU8VD4odGhpczogbmV3ICgpID0+IFQsIG86IGltcG9ydChcIiNzZXJ2ZXIvbWl4aW5zL01vZGVsTWl4aW4udHNcIikuTW9kZWxVcGRhdGVPcHRpb25zPFwiZmlsZV9tZXRhc1wiPik6IFByb21pc2U8VD47XG4gICAgdXBkYXRlQnlJZDxUPih0aGlzOiBuZXcgKCkgPT4gVCwgaWQ6IGFueSwgdmFsdWVzOiB7XG4gICAgICAgIGlkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGZpbGVfaWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGRlbGV0ZWRfYXQ/OiBudWxsIHwgdW5kZWZpbmVkO1xuICAgIH0sIG9wdGlvbnM/OiB7XG4gICAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICB9IHwgdW5kZWZpbmVkKTogUHJvbWlzZTxUPjtcbiAgICBkZXN0cm95PFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBvPzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbERlc3Ryb3lPcHRpb25zPFwiZmlsZV9tZXRhc1wiPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8dm9pZD47XG4gICAgZmlyc3RPckNyZWF0ZTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgbzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbEZpcnN0T3JDcmVhdGVPcHRpb25zPFwiZmlsZV9tZXRhc1wiPik6IFQ7XG4gICAgdXBkYXRlT3JDcmVhdGU8VD4odGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCwgbzogaW1wb3J0KFwiI3NlcnZlci9taXhpbnMvTW9kZWxNaXhpbi50c1wiKS5Nb2RlbFVwZGF0ZU9yQ3JlYXRlT3B0aW9uczxcImZpbGVfbWV0YXNcIj4pOiBUO1xuICAgIGRlc3Ryb3lCeUlkPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBpZDogYW55KTogUHJvbWlzZTx2b2lkPjtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlTWV0YSBleHRlbmRzIEZpbGVNZXRhX2Jhc2Uge1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgR2l0R2F0ZXdheSB9IGZyb20gJyNzZXJ2ZXIvZ2F0ZXdheXMvR2l0R2F0ZXdheS50cyc7XG5pbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL01vZHVsZUVudGl0eS50cyc7XG5pbXBvcnQgc2hlbGwgZnJvbSAnI3NlcnZlci9mYWNhZGVzL3NoZWxsLnRzJztcbmRlY2xhcmUgY29uc3QgTW9kdWxlX2Jhc2U6IHR5cGVvZiBCYXNlO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kdWxlIGV4dGVuZHMgTW9kdWxlX2Jhc2Uge1xuICAgIGdldCBnaXQoKTogR2l0R2F0ZXdheTtcbiAgICBtYWtlUGF0aCguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmc7XG4gICAgc3RhdGljUGF0aCguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmc7XG4gICAgY29tbWFuZDogdHlwZW9mIHNoZWxsLmNvbW1hbmQ7XG4gICAgbG9hZCgpOiB2b2lkO1xuICAgIGZpbmRDbGllbnRFbnRyeXBvaW50RmlsZW5hbWUoY29udGV4dD86ICdkZXYnIHwgJ25vZGUnIHwgJ2Jyb3dzZXInKTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCBjb25maWcgZnJvbSAnI3NlcnZlci9mYWNhZGVzL2NvbmZpZy50cyc7XG5pbXBvcnQgeyBHaXRHYXRld2F5IH0gZnJvbSAnI3NlcnZlci9nYXRld2F5cy9HaXRHYXRld2F5LnRzJztcbmltcG9ydCBHaXRCcmFuY2hSZXBvc2l0b3J5IGZyb20gJyNzZXJ2ZXIvcmVwb3NpdG9yaWVzL0dpdEJyYW5jaFJlcG9zaXRvcnkudHMnO1xuaW1wb3J0IEdpdENvbW1pdFJlcG9zaXRvcnkgZnJvbSAnI3NlcnZlci9yZXBvc2l0b3JpZXMvR2l0Q29tbWl0UmVwb3NpdG9yeS50cyc7XG5pbXBvcnQgQmFzZSBmcm9tICcjc2hhcmVkL2VudGl0aWVzL1BsdWdpbkVudGl0eS50cyc7XG5kZWNsYXJlIGNvbnN0IFBsdWdpbkVudHJ5RW50aXR5X2Jhc2U6IHR5cGVvZiBCYXNlO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luRW50cnlFbnRpdHkgZXh0ZW5kcyBQbHVnaW5FbnRyeUVudGl0eV9iYXNlIHtcbiAgICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtYWtlUGF0aCguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmc7XG4gICAgc2V0OiB0eXBlb2YgY29uZmlnLnNldDtcbiAgICBnZXQ6IHR5cGVvZiBjb25maWcuZ2V0O1xuICAgIGdldCBnaXQoKTogR2l0R2F0ZXdheTtcbiAgICBnZXQgY29tbWl0cygpOiBHaXRDb21taXRSZXBvc2l0b3J5O1xuICAgIGdldCBicmFuY2hlcygpOiBHaXRCcmFuY2hSZXBvc2l0b3J5O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IFBsdWdpbkVudHJ5RW50aXR5IGZyb20gJy4vUGx1Z2luRW50cnlFbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgeyBSb3V0ZXJFdmVudHMgfSBmcm9tICcjc2VydmVyL3NlcnZpY2VzL1JvdXRlclNlcnZpY2UudHMnO1xuaW50ZXJmYWNlIEFkZEFwaUZvbGRlck9wdGlvbnMge1xuICAgIHByZWZpeD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbkVudGl0eSBleHRlbmRzIFBsdWdpbkVudHJ5RW50aXR5IHtcbiAgICBhcGlGb2xkZXJzOiBNYXA8c3RyaW5nLCBBZGRBcGlGb2xkZXJPcHRpb25zPjtcbiAgICBhcGlEaXJlY3RvcmllczogU2V0PHN0cmluZz47XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBzdGF0aWNQYXRoKC4uLnBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZztcbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD47XG4gICAgb25Sb3V0ZXJSZWdpc3RlcmVkKGN0eDogUm91dGVyRXZlbnRzWydyb3V0ZXI6cmVnaXN0ZXJlZCddKTogUHJvbWlzZTx2b2lkPjtcbiAgICBhZGRBcGlGb2xkZXIoZGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM/OiBBZGRBcGlGb2xkZXJPcHRpb25zKTogdm9pZDtcbiAgICBhZGRSb3V0ZXJGb2xkZXIoZGlyZWN0b3J5OiBzdHJpbmcpOiB2b2lkO1xuICAgIHN0YXRpYyBmcm9tUGx1Z2luRGlzY292ZXJFbnRpdHk8VD4odGhpczogbmV3ICgpID0+IFQsIGVudGl0eTogUGx1Z2luRW50cnlFbnRpdHkpOiBUO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgeyBMaXN0T3B0aW9ucyB9IGZyb20gJy4vbGlzdC50cyc7XG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQ29udHJhY3QgYXMgRGF0YWJhc2UgfSBmcm9tICcjc2VydmVyL2NvbnRyYWN0cy9EYXRhYmFzZUNvbnRyYWN0LnRzJztcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGV4aXN0czxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBMaXN0T3B0aW9uczxUPj4odGFibGU6IFQsIG9wdGlvbnM/OiBPKTogUHJvbWlzZTxib29sZWFuPjtcbiIsImRlY2xhcmUgbW9kdWxlICdreXNlbHknIHtcbiAgICBpbnRlcmZhY2UgQ3JlYXRlVGFibGVCdWlsZGVyPFRCIGV4dGVuZHMgc3RyaW5nLCBDIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXI+IHtcbiAgICAgICAgYWRkSWRDb2x1bW48Q04gZXh0ZW5kcyBzdHJpbmcgPSAnaWQnPihjb2w/OiBDTik6IENyZWF0ZVRhYmxlQnVpbGRlcjxUQiwgQyB8IENOPjtcbiAgICB9XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBDcmVhdGVUYWJsZUJ1aWxkZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW5UeXBlLCBFeHByZXNzaW9uQnVpbGRlciB9IGZyb20gJ2t5c2VseSc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGFibGUgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHsgbm93IH0gZnJvbSAnLi9jb21tb24udHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUNvbnRyYWN0IGFzIERhdGFiYXNlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvRGF0YWJhc2VDb250cmFjdC50cyc7XG5pbXBvcnQgZGIgZnJvbSAnI3NlcnZlci9mYWNhZGVzL2RhdGFiYXNlLnRzJztcbnR5cGUgV2hlcmVDYXBhYmxlPFFCPiA9IHtcbiAgICB3aGVyZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBRQjtcbn07XG50eXBlIFVwZGF0ZUZyb208VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiA9IFJldHVyblR5cGU8dHlwZW9mIGRiLnVwZGF0ZVRhYmxlPFQ+PjtcbmV4cG9ydCBpbnRlcmZhY2UgU29mdERlbGV0ZU9wdGlvbnM8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlPiB7XG4gICAgc2VyaWFsaXplPzogKHJvdzogU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT4pID0+IGFueTtcbiAgICBxdWVyeTogKHFiOiBVcGRhdGVGcm9tPFQ+KSA9PiBVcGRhdGVGcm9tPFQ+O1xufVxuZXhwb3J0IHR5cGUgU29mdERlbGV0ZVJlc3VsdDxUIGV4dGVuZHMga2V5b2YgRGF0YWJhc2UsIE8gZXh0ZW5kcyBTb2Z0RGVsZXRlT3B0aW9uczxUPiB8IHVuZGVmaW5lZD4gPSBPIGV4dGVuZHMgdW5kZWZpbmVkID8gU2VsZWN0YWJsZTxEYXRhYmFzZVtUXT5bXSA6IE8gZXh0ZW5kcyB7XG4gICAgc2VyaWFsaXplOiAocm93OiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPikgPT4gaW5mZXIgUjtcbn0gPyBSW10gOiBTZWxlY3RhYmxlPERhdGFiYXNlW1RdPltdO1xuZXhwb3J0IGludGVyZmFjZSBTb2Z0RGVsZXRlVGFibGUge1xuICAgIGRlbGV0ZWRfYXQ6IENvbHVtblR5cGU8RGF0ZSB8IG51bGwsIG5ldmVyIHwgbnVsbCB8IFJldHVyblR5cGU8dHlwZW9mIG5vdz4sIHN0cmluZyB8IG51bGwgfCBSZXR1cm5UeXBlPHR5cGVvZiBub3c+Pjtcbn1cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHdoZXJlTm90RGVsZXRlZDxRQiBleHRlbmRzIFdoZXJlQ2FwYWJsZTxRQj4+KHFiOiBRQik6IFFCO1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gdW5kZWxldGVkKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxhbnksIGFueT4pOiBpbXBvcnQoXCJreXNlbHlcIikuRXhwcmVzc2lvbldyYXBwZXI8YW55LCBhbnksIGltcG9ydChcImt5c2VseVwiKS5TcWxCb29sPjtcbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB1bmRlbGV0ZWQge1xuICAgIHZhciBjb2x1bW46IChjb2w6IHN0cmluZykgPT4gKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxhbnksIGFueT4pID0+IGltcG9ydChcImt5c2VseVwiKS5FeHByZXNzaW9uV3JhcHBlcjxhbnksIGFueSwgaW1wb3J0KFwia3lzZWx5XCIpLlNxbEJvb2w+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZGVsZXRlZDogKHFiOiBFeHByZXNzaW9uQnVpbGRlcjxhbnksIGFueT4pID0+IGltcG9ydChcImt5c2VseVwiKS5FeHByZXNzaW9uV3JhcHBlcjxhbnksIGFueSwgaW1wb3J0KFwia3lzZWx5XCIpLlNxbEJvb2w+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgYWRkU29mdERlbGV0ZUNvbHVtbjogKGN0YjogQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PikgPT4gQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNvZnREZWxldGU8VCBleHRlbmRzIGtleW9mIERhdGFiYXNlLCBPIGV4dGVuZHMgU29mdERlbGV0ZU9wdGlvbnM8VD4+KHRhYmxlOiBULCBvcHRpb25zPzogTyk6IFByb21pc2U8U29mdERlbGV0ZVJlc3VsdDxULCBPPj47XG5kZWNsYXJlIG1vZHVsZSAna3lzZWx5JyB7XG4gICAgaW50ZXJmYWNlIENyZWF0ZVRhYmxlQnVpbGRlcjxUQiBleHRlbmRzIHN0cmluZywgQyBleHRlbmRzIHN0cmluZyA9IG5ldmVyPiB7XG4gICAgICAgIGFkZFNvZnREZWxldGVDb2x1bW4oKTogQ3JlYXRlVGFibGVCdWlsZGVyPFRCLCBDIHwgJ2RlbGV0ZWRfYXQnPjtcbiAgICB9XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBDcmVhdGVUYWJsZUJ1aWxkZXIgfSBmcm9tICdreXNlbHknO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW5UeXBlIH0gZnJvbSAna3lzZWx5JztcbmltcG9ydCB7IG5vdyB9IGZyb20gJy4vY29tbW9uLnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgVGltZXN0YW1wVGFibGUge1xuICAgIGNyZWF0ZWRfYXQ6IENvbHVtblR5cGU8RGF0ZSwgc3RyaW5nIHwgdW5kZWZpbmVkLCBuZXZlcj47XG4gICAgdXBkYXRlZF9hdDogQ29sdW1uVHlwZTxEYXRlLCBzdHJpbmcgfCB1bmRlZmluZWQsIERhdGUgfCBzdHJpbmcgfCBSZXR1cm5UeXBlPHR5cGVvZiBub3c+Pjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGFkZENyZWF0ZWRDb2x1bW46IChjdGI6IENyZWF0ZVRhYmxlQnVpbGRlcjxhbnksIGFueT4pID0+IENyZWF0ZVRhYmxlQnVpbGRlcjxhbnksIGFueT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBhZGRVcGRhdGVkQ29sdW1uOiAoY3RiOiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+KSA9PiBDcmVhdGVUYWJsZUJ1aWxkZXI8YW55LCBhbnk+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgYWRkVGltZXN0YW1wQ29sdW1uczogKGN0YjogQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PikgPT4gQ3JlYXRlVGFibGVCdWlsZGVyPGFueSwgYW55PjtcbmRlY2xhcmUgbW9kdWxlICdreXNlbHknIHtcbiAgICBpbnRlcmZhY2UgQ3JlYXRlVGFibGVCdWlsZGVyPFRCIGV4dGVuZHMgc3RyaW5nLCBDIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXI+IHtcbiAgICAgICAgYWRkVGltZXN0YW1wQ29sdW1ucygpOiBDcmVhdGVUYWJsZUJ1aWxkZXI8VEIsIEMgfCAnY3JlYXRlZF9hdCcgfCAndXBkYXRlZF9hdCc+O1xuICAgICAgICBhZGRDcmVhdGVkQ29sdW1uKCk6IENyZWF0ZVRhYmxlQnVpbGRlcjxUQiwgQyB8ICdjcmVhdGVkX2F0Jz47XG4gICAgICAgIGFkZFVwZGF0ZWRDb2x1bW4oKTogQ3JlYXRlVGFibGVCdWlsZGVyPFRCLCBDIHwgJ3VwZGF0ZWRfYXQnPjtcbiAgICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFRva2VuLCBVc2VyRW50aXR5IH0gZnJvbSAnQHNpZGVraWNrLWNvZGVyL3plbml0aC1raXQvc2hhcmVkJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL1JvdXRlckNvbnRyYWN0LnRzJztcbmV4cG9ydCB0eXBlIEF1dGhNaWRkbGV3YXJlQ29udGV4dCA9IHtcbiAgICB1c2VyOiBVc2VyRW50aXR5O1xuICAgIHRva2VuOiBUb2tlbjtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoTWlkZGxld2FyZSBpbXBsZW1lbnRzIE1pZGRsZXdhcmUge1xuICAgIGhhbmRsZShjdHg6IGFueSk6IFByb21pc2U8QXV0aE1pZGRsZXdhcmVDb250ZXh0Pjtcbn1cbiIsImltcG9ydCB0eXBlIHsgVG9rZW4gfSBmcm9tICdAc2lkZWtpY2stY29kZXIvemVuaXRoLWtpdC9zaGFyZWQnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlIH0gZnJvbSAnI3NlcnZlci9jb250cmFjdHMvUm91dGVyQ29udHJhY3QudHMnO1xuaW1wb3J0IHR5cGUgVXNlciBmcm9tICcjc2hhcmVkL2VudGl0aWVzL1VzZXJFbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgeyBIdHRwQ29udGV4dCB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL0h0dHBDb250ZXh0Q29udHJhY3QudHMnO1xuZXhwb3J0IHR5cGUgQXV0aFNpbGVuY2VNaWRkbGV3YXJlQ29udGV4dCA9IHtcbiAgICB1c2VyPzogVXNlcjtcbiAgICB0b2tlbj86IFRva2VuO1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1dGhTaWxlbmNlTWlkZGxld2FyZSBpbXBsZW1lbnRzIE1pZGRsZXdhcmUge1xuICAgIGhhbmRsZShjdHg6IEh0dHBDb250ZXh0KTogUHJvbWlzZTxBdXRoU2lsZW5jZU1pZGRsZXdhcmVDb250ZXh0Pjtcbn1cbiIsImltcG9ydCB0eXBlIHsgQXV0aFNpbGVuY2VNaWRkbGV3YXJlQ29udGV4dCB9IGZyb20gJy4vQXV0aFNpbGVuY2VNaWRkbGV3YXJlLnRzJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSwgTWlkZGxld2FyZUhhbmRsZVJlc3VsdCB9IGZyb20gJyNzZXJ2ZXIvY29udHJhY3RzL1JvdXRlckNvbnRyYWN0LnRzJztcbmltcG9ydCBBY2wgZnJvbSAnI3NlcnZlci9lbnRpdGllcy9BY2xFbnRpdHkudHMnO1xuZXhwb3J0IHR5cGUgQXV0aG9yaXphdGlvbkNvbnRleHQgPSBNaWRkbGV3YXJlSGFuZGxlUmVzdWx0PFtBdXRob3JpemF0aW9uTWlkZGxld2FyZV0+O1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemVQZXJtaXNzaW9uUGF5bG9hZCB7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgcmVzb3VyY2U6IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEF1dGhvcml6ZVBlcm1pc3Npb24gaW1wbGVtZW50cyBNaWRkbGV3YXJlIHtcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zO1xuICAgIGNvbnN0cnVjdG9yKHBheWxvYWQ6IEF1dGhvcml6ZVBlcm1pc3Npb25QYXlsb2FkIHwgQXV0aG9yaXplUGVybWlzc2lvblBheWxvYWRbXSk7XG4gICAgaGFuZGxlKGN0eDogQXV0aG9yaXphdGlvbkNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aG9yaXphdGlvbk1pZGRsZXdhcmUgaW1wbGVtZW50cyBNaWRkbGV3YXJlIHtcbiAgICBoYW5kbGUoY3R4OiBBdXRoU2lsZW5jZU1pZGRsZXdhcmVDb250ZXh0KTogUHJvbWlzZTx7XG4gICAgICAgIGFjbDogQWNsO1xuICAgIH0+O1xuICAgIHN0YXRpYyBjcmVhdGUocGF5bG9hZDogQXV0aG9yaXplUGVybWlzc2lvblBheWxvYWQgfCBBdXRob3JpemVQZXJtaXNzaW9uUGF5bG9hZFtdKTogQXV0aG9yaXplUGVybWlzc2lvbjtcbn1cbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGJhc2VQYXRoKC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nO1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gc3RvcmFnZVBhdGgoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmc7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiByZWxhdGl2ZVRvQmFzZVBhdGgoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmc7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB0bXBQYXRoKC4uLmFyZ3M6IHN0cmluZ1tdKTogc3RyaW5nO1xuIiwiaW1wb3J0IHR5cGUgeyBMb2FkZXJSZWNvcmQgfSBmcm9tICcuL2RlZmluZUxvYWRlci50cyc7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjcmVhdGVMb2FkZXJGYWN0b3J5PEUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55PiwgUiBleHRlbmRzIExvYWRlclJlY29yZDxFPiA9IExvYWRlclJlY29yZDxFPj4obG9hZGVyczogUik6IHtcbiAgICBrZXlzOiAoa2V5b2YgUilbXTtcbiAgICBsb2FkZXJzOiBSO1xuICAgIGxvYWQ6IChlbnRpdGllczogRSB8IEVbXSwgbmFtZXM6IGtleW9mIFIgfCAoa2V5b2YgUilbXSkgPT4gUHJvbWlzZTx2b2lkPjtcbn07XG4iLCJleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBjdWlkKCk6IHN0cmluZztcbiIsImltcG9ydCB0eXBlIHsgSHR0cENvbnRleHQgfSBmcm9tIFwiI3NlcnZlci9jb250cmFjdHMvSHR0cENvbnRleHRDb250cmFjdC50c1wiO1xuZXhwb3J0IGludGVyZmFjZSBIYW5kbGVyIHtcbiAgICAoY3R4OiBIdHRwQ29udGV4dCk6IFByb21pc2U8YW55PiB8ICgoKSA9PiBhbnkpO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZGVmaW5lSGFuZGxlcihoYW5kbGVyOiBIYW5kbGVyKTogSGFuZGxlcjtcbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhGaWxlKG9wdGlvbnM6IGFueSk6IHZvaWQ7XG4iLCJpbnRlcmZhY2UgT3B0aW9ucyB7XG4gICAgY2FjaGU/OiBib29sZWFuO1xuICAgIG9uQmVmb3JlSW1wb3J0PzogKGN0eDoge1xuICAgICAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIH0pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIG9uQWZ0ZXJJbXBvcnQ/OiAoY3R4OiB7XG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIG1vZHVsZTogYW55O1xuICAgIH0pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIG9uRXJyb3I/OiAoY3R4OiB7XG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgICAgIGVycm9yOiBFcnJvcjtcbiAgICB9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBleGNsdWRlPzogc3RyaW5nW107XG59XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBpbXBvcnRGaWxlcyhmaWxlczogc3RyaW5nW10sIG9wdGlvbnM/OiBPcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGltcG9ydEdsb2IocGF0dGVybjogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBpbXBvcnRBbGwoZGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGltcG9ydE9uZShmaWxlbmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFB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RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNMOUMsSUFBQSxnQkFBb0I7Q0FBQztPQUFBO0VBQUE7RUFBYztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNFbkMsSUFBVyxjQUFjO0NBQUM7RUFBSyxNQUFHLENBQUcsRUFBRTtDQUFFO0VBQUM7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LFFBQUEsY0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RkLElBQUEsYUFBZTtDQUFBO09BQU0sQ0FBQSxRQUFXLFdBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ2hDLElBQUksa0JBQWtCO0NBQUM7RUFBRyxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxhQUFVO0NBQUk7T0FBVyxDQUFDLFFBQVEsZ0JBQWdCO0NBQUU7RUFBQztFQUFHO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRDVELElBQUksa0JBQWM7Q0FBRztFQUFLLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMxQixJQUFJLGFBQVU7Q0FBQTtPQUFhLENBQUMsZ0JBQWM7Q0FBRTtFQUFDO0VBQUc7RUFBQTtFQUFTO0VBQUc7RUFBQTtDQUFBOzs7O0FDRjVELElBQUEsa0JBQXFCO0NBQUE7T0FBQSxDQUFBLGdCQUFnQjtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQXJDLElBQUEsa0JBQXFCO0NBQUE7T0FBQSxDQUFBLGdCQUFnQjtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ3JDLElBQVUsNEJBQU07Q0FBQTtPQUFBLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDaEIsSUFBUyxzQkFBTTtDQUFBO09BQUEsQ0FBQSwwQkFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDZixJQUFJLHNCQUFxQjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDekIsSUFBQSxpQkFBQTtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RBLElBQUksb0JBQW9CO0NBQUM7T0FBQSxFQUFBO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTtBQUN6QixJQUFJLGdCQUFjO0NBQUM7RUFBRyxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3RCLElBQUEsV0FBQTtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNMQSxJQUFBLG1CQUFxQjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQXFCO0VBQUE7RUFBcUI7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0MvRCxJQUFJLG9CQUFvQjtDQUFDO0VBQUMsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxpQkFBZTtDQUFDO09BQVUsQ0FBQSxrQkFBa0I7Q0FBQTtFQUFBO0VBQVM7RUFBRztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRDVELElBQUksWUFBWTtDQUFDO0VBQUssTUFBSTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFCLElBQUksT0FBSTtDQUFBO09BQVksQ0FBQSxVQUFVO0NBQU07RUFBQztFQUFFO0VBQU07RUFBRztFQUFBO0NBQUE7Ozs7QUNDaEQsSUFBSSxrQkFBa0I7Q0FBQztFQUFHLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMxQixJQUFJLGVBQVU7Q0FBSTtPQUFXO0VBQUM7RUFBTTtFQUFZO0VBQU07RUFBTTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQzVELElBQU8sWUFBVTtDQUFBO09BQVUsQ0FBQSxXQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzNCLElBQVMsYUFBYTtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUEsTUFBQTtFQUFBLE1BQUE7RUFBQSxNQUFBO0VBQUEsTUFBQTtFQUFBLE1BQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN0QixJQUFJLGFBQVM7Q0FBQTtPQUFVO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNOdkIsSUFBQSxvQkFBcUI7Q0FBQTtPQUFBO0VBQUE7RUFBa0I7RUFBUTtFQUFXO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0MxRCxJQUFBLG9CQUFxQjtDQUFBO09BQUE7RUFBQSxHQUFpQjtFQUFDO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBdkMsSUFBTyx5QkFBVTtDQUFBO09BQXVCLENBQUEsY0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDeEMsSUFBSSxrQkFBa0I7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNGdEIsSUFBVyxZQUFZO0NBQUM7T0FBRSxDQUFBLFdBQW1CLEVBQUEsWUFBVTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN2RCxJQUFPLFlBQWM7Q0FBQTtPQUFhO0VBQUEsRUFBQTtFQUFrQixFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0FwRCxJQUFBLGFBQWU7Q0FBQTtFQUFNLE1BQUE7RUFBQTtFQUFXLE9BQUE7RUFBQSxPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7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RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEQSxJQUFBLHdCQUFVO0NBQUE7T0FBc0IsRUFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDaEMsSUFBSSxlQUFZO0NBQUE7T0FBTTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBLE9BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsT0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFB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QUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN0QixJQUFJLGdCQUFlO0NBQUE7RUFBQSxHQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNSbkIsSUFBTyxpQkFBVTtDQUFBO09BQWUsQ0FBQSxRQUFBO0NBQUEsQ0FBQSxHQUFBO0NBQUE7QUFDaEMsSUFBUSx1QkFBb0I7Q0FBQTtPQUFBLENBQUEsZUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzVCLElBQUEsZ0JBQUE7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RBLElBQU8sYUFBVTtDQUFBO09BQVcsRUFBQTtDQUFBLENBQUEsR0FBQTtDQUFBO0FBQzVCLElBQVMsMEJBQU07Q0FBQTtPQUFBLENBQUEsY0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNmLElBQUEsa0JBQUE7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNBLElBQUEsbUJBQWlCO0NBQUE7T0FBQTtFQUFBO0VBQXdCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtF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QUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ2pCdEMsSUFBTyxlQUFVO0NBQUE7T0FBYSxFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzlCLElBQVMsdUJBQU07Q0FBQTtPQUFBLENBQUEsYUFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDZixJQUFJLHVCQUFZO0NBQUE7RUFBQSxTQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0poQixJQUFBLGtCQUFxQjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQWdCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VB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QUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDdEIsSUFBQSx1QkFBcUI7Q0FBQTtPQUFBO0VBQUE7RUFBNkI7RUFBc0I7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDSHhFLElBQUEsaUJBQVU7Q0FBQTtPQUFlLENBQUEsT0FBQSxXQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN6QixJQUFVLHNCQUFNO0NBQUE7T0FBQSxDQUFBLGNBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDaEIsSUFBSSxlQUFhO0NBQUE7T0FBVTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNGM0IsSUFBTyxhQUFVO0NBQUE7RUFBWSxNQUFHLENBQUcsRUFBRTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3JDLElBQVcsa0JBQUc7Q0FBQTtPQUFBLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNkLElBQVUsb0JBQU07Q0FBQTtPQUFBLENBQUEsaUJBQUEsZ0JBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDaEIsSUFBSSxvQkFBZ0I7Q0FBQTtPQUFBLEVBQUE7Q0FBQSxDQUFBLEdBQUE7Q0FBQTtBQUNwQixJQUFJLHFCQUFhO0NBQUE7RUFBQSxTQUFBLGFBQUEsYUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNIakIsSUFBQSxtQkFBcUI7Q0FBQTtFQUFBLFNBQWlCLGFBQVU7RUFBQTtFQUFPO0VBQWE7RUFBWTtFQUFrQjtFQUFHO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFB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QUEsR0FBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RuQixJQUFPLGNBQVU7Q0FBQTtFQUFjLE1BQUE7RUFBQTtFQUFjO0VBQUE7RUFBVTtFQUFRO0VBQW1CO0VBQUM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuRixJQUFXLE9BQU87Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBbEIsSUFBTyxrQkFBVTtDQUFBO0VBQWtCLE1BQUE7RUFBQTtFQUFjO0VBQVU7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDM0QsSUFBVyxpQkFBUTtDQUFBO0VBQUEsR0FBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuQixJQUFXLFdBQU07Q0FBQTtFQUFBLEdBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDSmpCLElBQU8sZUFBVTtDQUFBO0VBQWUsTUFBQTtFQUFBO0VBQWM7RUFBQTtFQUFVO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN4RCxJQUFXLFFBQU07Q0FBQTtFQUFBLEdBQVksTUFBTTtFQUFBO0VBQVc7RUFBRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDaEQsSUFBVyxnQkFBWTtDQUFBO0VBQVUsTUFBRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuQyxJQUFJLGdCQUFtQjtDQUFBO0VBQUEsR0FBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN2QixJQUFJLGNBQXFCO0NBQUM7RUFBRSxHQUFPLE1BQU07RUFBQztFQUFLO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQy9DLElBQUEsU0FBQTtDQUFBO0VBQUEsR0FBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQSxTQUFBO0VBQUE7RUFBQTtFQUFBLFNBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQSxTQUFBO0VBQUEsU0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNIQSxJQUFXLGdCQUFRO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ25CLElBQVcsZ0JBQVk7Q0FBQTtFQUFXLEdBQUMsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7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QUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUN0QmhLLElBQUEsV0FBVTtDQUFBO09BQVMsQ0FBQSxRQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ25CLElBQUksV0FBSztDQUFBO0VBQWEsR0FBRyxPQUFFLE1BQVE7RUFBSTtFQUFDO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRHhDLElBQUEsU0FBYTtDQUFDO09BQVEsQ0FBQSxjQUFhO0NBQUEsQ0FBQSxHQUFBO0NBQUE7Ozs7QUNBbkMsSUFBQSxXQUFjO0NBQUE7T0FBVSxDQUFBLGlCQUFnQjtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQXhDLElBQUEsV0FBYztDQUFBO09BQVUsQ0FBQSxnQkFBZTtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQXZDLElBQUEsUUFBUTtDQUFLO09BQVEsQ0FBQSxhQUFZO0NBQUEsQ0FBQSxHQUFBO0NBQUE7Ozs7QUNBakMsSUFBQSxXQUFjO0NBQUE7T0FBVSxDQUFBLFFBQUEsa0JBQXVCO0NBQU8sQ0FBQyxJQUFJLEdBQUM7Q0FBQTs7OztBQ0E1RCxJQUFBLFVBQWM7Q0FBQTtPQUFTLENBQUEsZUFBYztDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQXJDLElBQUEsaUJBQWM7Q0FBQTtPQUFnQixDQUFBLGVBQWM7Q0FBQSxDQUFBLEdBQUE7Q0FBQTs7OztBQ0E1QyxJQUFBLFNBQWE7Q0FBQztPQUFRLENBQUEsY0FBYTtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQW5DLElBQUEsV0FBYztDQUFBO09BQVUsQ0FBQSxnQkFBZTtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQXZDLElBQUEsaUNBQWM7Q0FBQTtPQUFnQyxDQUFBLCtCQUE4QjtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQTVFLElBQUEsdUJBQWM7Q0FBQTtPQUFzQixDQUFBLHFCQUFvQjtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQ3hELElBQUEsU0FBYTtDQUFDO09BQVEsQ0FBQSxhQUFjLGNBQVk7Q0FBQSxDQUFBLElBQUEsR0FBQTtDQUFBOzs7O0FDRGhELElBQUEsWUFBYztDQUFBO09BQVcsQ0FBQSxpQkFBZ0I7Q0FBQSxDQUFBLEdBQUE7Q0FBQTs7OztBQ0F6QyxJQUFBLFFBQVE7Q0FBSztPQUFRLENBQUEsYUFBWTtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQWpDLElBQUEsa0JBQWM7Q0FBQTtPQUFpQixDQUFBLGdCQUFlO0NBQUEsQ0FBQSxHQUFBO0NBQUE7Ozs7QUNBOUMsSUFBQSxpQkFBYztDQUFBO09BQWdCLENBQUEsZUFBYztDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQzVDLElBQU8saUJBQVU7Q0FBQTtPQUF1QixDQUFBLGtCQUFPLE9BQWtCO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTs7OztBQ0ZqRSxJQUFPLFNBQVU7Q0FBQTtFQUFTLE1BQUU7RUFBQTtFQUFPO0VBQVE7RUFBTTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNqRCxJQUFTLGVBQWdCO0NBQUE7RUFBTyxNQUFLO0VBQUM7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3RDLElBQUEsZUFBQTtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDREEsSUFBQSxnQkFBaUI7Q0FBQTtFQUFBLE1BQUEsQ0FBQSxHQUFBLEVBQUE7Q0FBQTtFQUFBO0VBQTJCO0VBQUM7RUFBTztFQUFDO0NBQUE7QUFDckQsSUFBUyw4QkFBTTtDQUFBO0VBQUEsU0FBQSxjQUFBLGtCQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2YsSUFBVyxxQkFBQTtDQUFBO0VBQUEsU0FBQSxjQUFBLGtCQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDWCxJQUFRLDZCQUFnQztDQUFDO0VBQUEsU0FBQSxjQUFBLGtCQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0Z6QyxJQUFJLG1CQUFtQjtDQUFDO0VBQUksTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzVCLElBQUksY0FBQTtDQUFlO0VBQUUsTUFBTztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNLNUIsSUFBSSxXQUFJO0NBQUE7T0FBbUIsRUFBQztDQUFBLENBQUEsSUFBTyxHQUFBO0NBQUE7QUFDbkMsSUFBSSxZQUFZO0NBQUM7RUFBQyxNQUFRO0VBQUE7RUFBUTtFQUFpQztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBLFNBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuRSxJQUFJLE9BQU87Q0FBQztPQUFPO0VBQUE7RUFBUTtFQUFZO0VBQVE7RUFBTztFQUFTLE9BQUs7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0pwRSxJQUFJLGdCQUFDO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsU0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFB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
|