@mrgrain/cdk-esbuild 4.0.0-alpha.8 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
+ /// <reference types="node" />
1
2
  export declare type Platform = 'browser' | 'node' | 'neutral';
2
3
  export declare type Format = 'iife' | 'cjs' | 'esm';
3
- export declare type Loader = 'js' | 'jsx' | 'ts' | 'tsx' | 'css' | 'json' | 'text' | 'base64' | 'file' | 'dataurl' | 'binary' | 'copy' | 'default';
4
+ export declare type Loader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'default' | 'empty' | 'file' | 'js' | 'json' | 'jsx' | 'text' | 'ts' | 'tsx';
4
5
  export declare type LogLevel = 'verbose' | 'debug' | 'info' | 'warning' | 'error' | 'silent';
5
6
  export declare type Charset = 'ascii' | 'utf8';
6
7
  export declare type Drop = 'console' | 'debugger';
@@ -15,12 +16,14 @@ interface CommonOptions {
15
16
  readonly sourcesContent?: boolean;
16
17
  /** Documentation: https://esbuild.github.io/api/#format */
17
18
  readonly format?: Format;
18
- /** Documentation: https://esbuild.github.io/api/#globalName */
19
+ /** Documentation: https://esbuild.github.io/api/#global-name */
19
20
  readonly globalName?: string;
20
21
  /** Documentation: https://esbuild.github.io/api/#target */
21
22
  readonly target?: string | string[];
22
23
  /** Documentation: https://esbuild.github.io/api/#supported */
23
24
  readonly supported?: Record<string, boolean>;
25
+ /** Documentation: https://esbuild.github.io/api/#platform */
26
+ readonly platform?: Platform;
24
27
  /** Documentation: https://esbuild.github.io/api/#mangle-props */
25
28
  readonly mangleProps?: any;
26
29
  /** Documentation: https://esbuild.github.io/api/#mangle-props */
@@ -46,11 +49,17 @@ interface CommonOptions {
46
49
  /** Documentation: https://esbuild.github.io/api/#ignore-annotations */
47
50
  readonly ignoreAnnotations?: boolean;
48
51
  /** Documentation: https://esbuild.github.io/api/#jsx */
49
- readonly jsx?: 'transform' | 'preserve';
52
+ readonly jsx?: 'transform' | 'preserve' | 'automatic';
50
53
  /** Documentation: https://esbuild.github.io/api/#jsx-factory */
51
54
  readonly jsxFactory?: string;
52
55
  /** Documentation: https://esbuild.github.io/api/#jsx-fragment */
53
56
  readonly jsxFragment?: string;
57
+ /** Documentation: https://esbuild.github.io/api/#jsx-import-source */
58
+ readonly jsxImportSource?: string;
59
+ /** Documentation: https://esbuild.github.io/api/#jsx-development */
60
+ readonly jsxDev?: boolean;
61
+ /** Documentation: https://esbuild.github.io/api/#jsx-side-effects */
62
+ readonly jsxSideEffects?: boolean;
54
63
  /** Documentation: https://esbuild.github.io/api/#define */
55
64
  readonly define?: {
56
65
  [key: string]: string;
@@ -83,17 +92,19 @@ export interface BuildOptions extends CommonOptions {
83
92
  readonly outdir?: string;
84
93
  /** Documentation: https://esbuild.github.io/api/#outbase */
85
94
  readonly outbase?: string;
86
- /** Documentation: https://esbuild.github.io/api/#platform */
87
- readonly platform?: Platform;
88
95
  /** Documentation: https://esbuild.github.io/api/#external */
89
96
  readonly external?: string[];
97
+ /** Documentation: https://esbuild.github.io/api/#packages */
98
+ readonly packages?: 'external';
99
+ /** Documentation: https://esbuild.github.io/api/#alias */
100
+ readonly alias?: Record<string, string>;
90
101
  /** Documentation: https://esbuild.github.io/api/#loader */
91
102
  readonly loader?: {
92
103
  [ext: string]: Loader;
93
104
  };
94
105
  /** Documentation: https://esbuild.github.io/api/#resolve-extensions */
95
106
  readonly resolveExtensions?: string[];
96
- /** Documentation: https://esbuild.github.io/api/#mainFields */
107
+ /** Documentation: https://esbuild.github.io/api/#main-fields */
97
108
  readonly mainFields?: string[];
98
109
  /** Documentation: https://esbuild.github.io/api/#conditions */
99
110
  readonly conditions?: string[];
@@ -136,7 +147,7 @@ export interface WatchMode {
136
147
  onRebuild?: (error: BuildFailure | null, result: BuildResult | null) => void;
137
148
  }
138
149
  export interface StdinOptions {
139
- contents: string;
150
+ contents: string | Uint8Array;
140
151
  resolveDir?: string;
141
152
  sourcefile?: string;
142
153
  loader?: Loader;
@@ -170,11 +181,11 @@ export interface Location {
170
181
  suggestion: string;
171
182
  }
172
183
  export interface OutputFile {
173
- path: string;
184
+ readonly path: string;
174
185
  /** "text" as bytes */
175
- contents: Uint8Array;
176
- /** "contents" as text */
177
- text: string;
186
+ readonly contents: Uint8Array;
187
+ /** "contents" as text (changes automatically with "contents") */
188
+ readonly text: string;
178
189
  }
179
190
  export interface BuildInvalidate {
180
191
  (): Promise<BuildIncremental>;
@@ -224,7 +235,7 @@ export interface ServeResult {
224
235
  stop: () => void;
225
236
  }
226
237
  export interface TransformOptions extends CommonOptions {
227
- readonly tsconfigRaw?: string;
238
+ readonly tsconfigRaw?: string | TsconfigOptions;
228
239
  readonly sourcefile?: string;
229
240
  readonly loader?: Loader;
230
241
  readonly banner?: string;
@@ -236,6 +247,8 @@ export interface TransformResult {
236
247
  warnings: Message[];
237
248
  /** Only when "mangleCache" is present */
238
249
  mangleCache?: Record<string, string | false>;
250
+ /** Only when "legalComments" is "external" */
251
+ legalComments?: string;
239
252
  }
240
253
  export interface TransformFailure extends Error {
241
254
  errors: Message[];
@@ -354,7 +367,10 @@ export interface Metafile {
354
367
  imports: {
355
368
  path: string;
356
369
  kind: ImportKind;
370
+ external?: boolean;
371
+ original?: string;
357
372
  }[];
373
+ format?: 'cjs' | 'esm';
358
374
  };
359
375
  };
360
376
  outputs: {
@@ -367,10 +383,12 @@ export interface Metafile {
367
383
  };
368
384
  imports: {
369
385
  path: string;
370
- kind: ImportKind;
386
+ kind: ImportKind | 'file-loader';
387
+ external?: boolean;
371
388
  }[];
372
389
  exports: string[];
373
390
  entryPoint?: string;
391
+ cssBundle?: string;
374
392
  };
375
393
  };
376
394
  }
@@ -434,7 +452,7 @@ export declare function serve(serveOptions: ServeOptions, buildOptions: BuildOpt
434
452
  *
435
453
  * Documentation: https://esbuild.github.io/api/#transform-api
436
454
  */
437
- export declare function transform(input: string, options?: TransformOptions): Promise<TransformResult>;
455
+ export declare function transform(input: string | Uint8Array, options?: TransformOptions): Promise<TransformResult>;
438
456
  /**
439
457
  * Converts log messages to formatted message strings suitable for printing in
440
458
  * the terminal. This allows you to reuse the built-in behavior of esbuild's
@@ -510,7 +528,7 @@ export interface InitializeOptions {
510
528
  * The URL of the "esbuild.wasm" file. This must be provided when running
511
529
  * esbuild in the browser.
512
530
  */
513
- wasmURL?: string;
531
+ wasmURL?: string | URL;
514
532
  /**
515
533
  * The result of calling "new WebAssembly.Module(buffer)" where "buffer"
516
534
  * is a typed array or ArrayBuffer containing the binary code of the
@@ -528,4 +546,14 @@ export interface InitializeOptions {
528
546
  worker?: boolean;
529
547
  }
530
548
  export declare let version: string;
549
+ export interface CompilerOptions {
550
+ readonly jsxFactory?: string;
551
+ readonly jsxFragmentFactory?: string;
552
+ readonly useDefineForClassFields?: boolean;
553
+ readonly importsNotUsedAsValues?: 'remove' | 'preserve' | 'error';
554
+ readonly preserveValueImports?: boolean;
555
+ }
556
+ export interface TsconfigOptions {
557
+ readonly compilerOptions?: CompilerOptions;
558
+ }
531
559
  export {};
@@ -2,4 +2,4 @@
2
2
  // ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.version = void 0;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lc2J1aWxkLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2RUFBNkUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5cbmV4cG9ydCB0eXBlIFBsYXRmb3JtID0gJ2Jyb3dzZXInIHwgJ25vZGUnIHwgJ25ldXRyYWwnO1xuZXhwb3J0IHR5cGUgRm9ybWF0ID0gJ2lpZmUnIHwgJ2NqcycgfCAnZXNtJztcbmV4cG9ydCB0eXBlIExvYWRlciA9ICdqcycgfCAnanN4JyB8ICd0cycgfCAndHN4JyB8ICdjc3MnIHwgJ2pzb24nIHwgJ3RleHQnIHwgJ2Jhc2U2NCcgfCAnZmlsZScgfCAnZGF0YXVybCcgfCAnYmluYXJ5JyB8ICdjb3B5JyB8ICdkZWZhdWx0JztcbmV4cG9ydCB0eXBlIExvZ0xldmVsID0gJ3ZlcmJvc2UnIHwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnc2lsZW50JztcbmV4cG9ydCB0eXBlIENoYXJzZXQgPSAnYXNjaWknIHwgJ3V0ZjgnO1xuZXhwb3J0IHR5cGUgRHJvcCA9ICdjb25zb2xlJyB8ICdkZWJ1Z2dlcic7XG5cbmludGVyZmFjZSBDb21tb25PcHRpb25zIHtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzb3VyY2VtYXAgKi9cbiAgcmVhZG9ubHkgc291cmNlbWFwPzogYm9vbGVhbiB8ICdsaW5rZWQnIHwgJ2lubGluZScgfCAnZXh0ZXJuYWwnIHwgJ2JvdGgnO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2xlZ2FsLWNvbW1lbnRzICovXG4gIHJlYWRvbmx5IGxlZ2FsQ29tbWVudHM/OiAnbm9uZScgfCAnaW5saW5lJyB8ICdlb2YnIHwgJ2xpbmtlZCcgfCAnZXh0ZXJuYWwnO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NvdXJjZS1yb290ICovXG4gIHJlYWRvbmx5IHNvdXJjZVJvb3Q/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jc291cmNlcy1jb250ZW50ICovXG4gIHJlYWRvbmx5IHNvdXJjZXNDb250ZW50PzogYm9vbGVhbjtcblxuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Zvcm1hdCAqL1xuICByZWFkb25seSBmb3JtYXQ/OiBGb3JtYXQ7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZ2xvYmFsTmFtZSAqL1xuICByZWFkb25seSBnbG9iYWxOYW1lPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RhcmdldCAqL1xuICByZWFkb25seSB0YXJnZXQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzdXBwb3J0ZWQgKi9cbiAgcmVhZG9ubHkgc3VwcG9ydGVkPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG5cbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtYW5nbGUtcHJvcHMgKi9cbiAgcmVhZG9ubHkgbWFuZ2xlUHJvcHM/OiBhbnk7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWFuZ2xlLXByb3BzICovXG4gIHJlYWRvbmx5IHJlc2VydmVQcm9wcz86IGFueTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtYW5nbGUtcHJvcHMgKi9cbiAgcmVhZG9ubHkgbWFuZ2xlUXVvdGVkPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtYW5nbGUtcHJvcHMgKi9cbiAgcmVhZG9ubHkgbWFuZ2xlQ2FjaGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBmYWxzZT47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZHJvcCAqL1xuICByZWFkb25seSBkcm9wPzogRHJvcFtdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI21pbmlmeSAqL1xuICByZWFkb25seSBtaW5pZnk/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI21pbmlmeSAqL1xuICByZWFkb25seSBtaW5pZnlXaGl0ZXNwYWNlPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtaW5pZnkgKi9cbiAgcmVhZG9ubHkgbWluaWZ5SWRlbnRpZmllcnM/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI21pbmlmeSAqL1xuICByZWFkb25seSBtaW5pZnlTeW50YXg/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2NoYXJzZXQgKi9cbiAgcmVhZG9ubHkgY2hhcnNldD86IENoYXJzZXQ7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJlZS1zaGFraW5nICovXG4gIHJlYWRvbmx5IHRyZWVTaGFraW5nPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNpZ25vcmUtYW5ub3RhdGlvbnMgKi9cbiAgcmVhZG9ubHkgaWdub3JlQW5ub3RhdGlvbnM/OiBib29sZWFuO1xuXG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8janN4ICovXG4gIHJlYWRvbmx5IGpzeD86ICd0cmFuc2Zvcm0nIHwgJ3ByZXNlcnZlJztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNqc3gtZmFjdG9yeSAqL1xuICByZWFkb25seSBqc3hGYWN0b3J5Pzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2pzeC1mcmFnbWVudCAqL1xuICByZWFkb25seSBqc3hGcmFnbWVudD86IHN0cmluZztcblxuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2RlZmluZSAqL1xuICByZWFkb25seSBkZWZpbmU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3B1cmUgKi9cbiAgcmVhZG9ubHkgcHVyZT86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2tlZXAtbmFtZXMgKi9cbiAgcmVhZG9ubHkga2VlcE5hbWVzPzogYm9vbGVhbjtcblxuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2NvbG9yICovXG4gIHJlYWRvbmx5IGNvbG9yPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNsb2ctbGV2ZWwgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNsb2ctbGltaXQgKi9cbiAgcmVhZG9ubHkgbG9nTGltaXQ/OiBudW1iZXI7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbG9nLW92ZXJyaWRlICovXG4gIHJlYWRvbmx5IGxvZ092ZXJyaWRlPzogUmVjb3JkPHN0cmluZywgTG9nTGV2ZWw+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyBleHRlbmRzIENvbW1vbk9wdGlvbnMge1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2J1bmRsZSAqL1xuICByZWFkb25seSBidW5kbGU/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NwbGl0dGluZyAqL1xuICByZWFkb25seSBzcGxpdHRpbmc/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3ByZXNlcnZlLXN5bWxpbmtzICovXG4gIHJlYWRvbmx5IHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI291dGZpbGUgKi9cbiAgcmVhZG9ubHkgb3V0ZmlsZT86IHN0cmluZztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtZXRhZmlsZSAqL1xuICByZWFkb25seSBtZXRhZmlsZT86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jb3V0ZGlyICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNvdXRiYXNlICovXG4gIHJlYWRvbmx5IG91dGJhc2U/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jcGxhdGZvcm0gKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBQbGF0Zm9ybTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNleHRlcm5hbCAqL1xuICByZWFkb25seSBleHRlcm5hbD86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2xvYWRlciAqL1xuICByZWFkb25seSBsb2FkZXI/OiB7IFtleHQ6IHN0cmluZ106IExvYWRlciB9O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3Jlc29sdmUtZXh0ZW5zaW9ucyAqL1xuICByZWFkb25seSByZXNvbHZlRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI21haW5GaWVsZHMgKi9cbiAgcmVhZG9ubHkgbWFpbkZpZWxkcz86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2NvbmRpdGlvbnMgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9ucz86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3dyaXRlICovXG4gIHJlYWRvbmx5IHdyaXRlPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNhbGxvdy1vdmVyd3JpdGUgKi9cbiAgcmVhZG9ubHkgYWxsb3dPdmVyd3JpdGU/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RzY29uZmlnICovXG4gIHJlYWRvbmx5IHRzY29uZmlnPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI291dC1leHRlbnNpb24gKi9cbiAgcmVhZG9ubHkgb3V0RXh0ZW5zaW9uPzogeyBbZXh0OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNwdWJsaWMtcGF0aCAqL1xuICByZWFkb25seSBwdWJsaWNQYXRoPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2VudHJ5LW5hbWVzICovXG4gIHJlYWRvbmx5IGVudHJ5TmFtZXM/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jY2h1bmstbmFtZXMgKi9cbiAgcmVhZG9ubHkgY2h1bmtOYW1lcz86IHN0cmluZztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNhc3NldC1uYW1lcyAqL1xuICByZWFkb25seSBhc3NldE5hbWVzPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2luamVjdCAqL1xuICByZWFkb25seSBpbmplY3Q/OiBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNiYW5uZXIgKi9cbiAgcmVhZG9ubHkgYmFubmVyPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZm9vdGVyICovXG4gIHJlYWRvbmx5IGZvb3Rlcj86IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2luY3JlbWVudGFsICovXG4gIHJlYWRvbmx5IGluY3JlbWVudGFsPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN3b3JraW5nLWRpcmVjdG9yeSAqL1xuICByZWFkb25seSBhYnNXb3JraW5nRGlyPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI25vZGUtcGF0aHMgKi9cbiAgcmVhZG9ubHkgbm9kZVBhdGhzPzogc3RyaW5nW107IC8vIFRoZSBcIk5PREVfUEFUSFwiIHZhcmlhYmxlIGZyb20gTm9kZS5qc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoTW9kZSB7XG4gIG9uUmVidWlsZD86IChlcnJvcjogQnVpbGRGYWlsdXJlIHwgbnVsbCwgcmVzdWx0OiBCdWlsZFJlc3VsdCB8IG51bGwpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RkaW5PcHRpb25zIHtcbiAgY29udGVudHM6IHN0cmluZztcbiAgcmVzb2x2ZURpcj86IHN0cmluZztcbiAgc291cmNlZmlsZT86IHN0cmluZztcbiAgbG9hZGVyPzogTG9hZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgbG9jYXRpb246IExvY2F0aW9uIHwgbnVsbDtcbiAgbm90ZXM6IE5vdGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlci1zcGVjaWZpZWQgZGF0YSB0aGF0IGlzIHBhc3NlZCB0aHJvdWdoIHVubW9kaWZpZWQuIFlvdSBjYW5cbiAgICogdXNlIHRoaXMgdG8gc3Rhc2ggdGhlIG9yaWdpbmFsIGVycm9yLCBmb3IgZXhhbXBsZS5cbiAgICovXG4gIGRldGFpbDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGxvY2F0aW9uOiBMb2NhdGlvbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb24ge1xuICBmaWxlOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICAvKiogMS1iYXNlZCAqL1xuICBsaW5lOiBudW1iZXI7XG4gIC8qKiAwLWJhc2VkLCBpbiBieXRlcyAqL1xuICBjb2x1bW46IG51bWJlcjtcbiAgLyoqIGluIGJ5dGVzICovXG4gIGxlbmd0aDogbnVtYmVyO1xuICBsaW5lVGV4dDogc3RyaW5nO1xuICBzdWdnZXN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RmlsZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIFwidGV4dFwiIGFzIGJ5dGVzICovXG4gIGNvbnRlbnRzOiBVaW50OEFycmF5O1xuICAvKiogXCJjb250ZW50c1wiIGFzIHRleHQgKi9cbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSW52YWxpZGF0ZSB7XG4gICgpOiBQcm9taXNlPEJ1aWxkSW5jcmVtZW50YWw+O1xuICBkaXNwb3NlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRJbmNyZW1lbnRhbCBleHRlbmRzIEJ1aWxkUmVzdWx0IHtcbiAgcmVidWlsZDogQnVpbGRJbnZhbGlkYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUmVzdWx0IHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG4gIC8qKiBPbmx5IHdoZW4gXCJ3cml0ZTogZmFsc2VcIiAqL1xuICBvdXRwdXRGaWxlcz86IE91dHB1dEZpbGVbXTtcbiAgLyoqIE9ubHkgd2hlbiBcImluY3JlbWVudGFsOiB0cnVlXCIgKi9cbiAgcmVidWlsZD86IEJ1aWxkSW52YWxpZGF0ZTtcbiAgLyoqIE9ubHkgd2hlbiBcIndhdGNoOiB0cnVlXCIgKi9cbiAgc3RvcD86ICgpID0+IHZvaWQ7XG4gIC8qKiBPbmx5IHdoZW4gXCJtZXRhZmlsZTogdHJ1ZVwiICovXG4gIG1ldGFmaWxlPzogTWV0YWZpbGU7XG4gIC8qKiBPbmx5IHdoZW4gXCJtYW5nbGVDYWNoZVwiIGlzIHByZXNlbnQgKi9cbiAgbWFuZ2xlQ2FjaGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBmYWxzZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIGV4dGVuZHMgRXJyb3Ige1xuICBlcnJvcnM6IE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M6IE1lc3NhZ2VbXTtcbn1cblxuLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzZXJ2ZS1hcmd1bWVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVPcHRpb25zIHtcbiAgcG9ydD86IG51bWJlcjtcbiAgaG9zdD86IHN0cmluZztcbiAgc2VydmVkaXI/OiBzdHJpbmc7XG4gIG9uUmVxdWVzdD86IChhcmdzOiBTZXJ2ZU9uUmVxdWVzdEFyZ3MpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVPblJlcXVlc3RBcmdzIHtcbiAgcmVtb3RlQWRkcmVzczogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgLyoqIFRoZSB0aW1lIHRvIGdlbmVyYXRlIHRoZSByZXNwb25zZSwgbm90IHRvIHNlbmQgaXQgKi9cbiAgdGltZUluTVM6IG51bWJlcjtcbn1cblxuLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzZXJ2ZS1yZXR1cm4tdmFsdWVzICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlUmVzdWx0IHtcbiAgcG9ydDogbnVtYmVyO1xuICBob3N0OiBzdHJpbmc7XG4gIHdhaXQ6IFByb21pc2U8dm9pZD47XG4gIHN0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3B0aW9ucyBleHRlbmRzIENvbW1vbk9wdGlvbnMge1xuICByZWFkb25seSB0c2NvbmZpZ1Jhdz86IHN0cmluZztcblxuICByZWFkb25seSBzb3VyY2VmaWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlYWRvbmx5IGJhbm5lcj86IHN0cmluZztcbiAgcmVhZG9ubHkgZm9vdGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybVJlc3VsdCB7XG4gIGNvZGU6IHN0cmluZztcbiAgbWFwOiBzdHJpbmc7XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG4gIC8qKiBPbmx5IHdoZW4gXCJtYW5nbGVDYWNoZVwiIGlzIHByZXNlbnQgKi9cbiAgbWFuZ2xlQ2FjaGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBmYWxzZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtRmFpbHVyZSBleHRlbmRzIEVycm9yIHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzZXR1cDogKGJ1aWxkOiBQbHVnaW5CdWlsZCkgPT4gKHZvaWQgfCBQcm9taXNlPHZvaWQ+KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5CdWlsZCB7XG4gIGluaXRpYWxPcHRpb25zOiBCdWlsZE9wdGlvbnM7XG4gIHJlc29sdmUocGF0aDogc3RyaW5nLCBvcHRpb25zPzogUmVzb2x2ZU9wdGlvbnMpOiBQcm9taXNlPFJlc29sdmVSZXN1bHQ+O1xuXG4gIG9uU3RhcnQoY2FsbGJhY2s6ICgpID0+XG4gIChPblN0YXJ0UmVzdWx0IHwgbnVsbCB8IHZvaWQgfCBQcm9taXNlPE9uU3RhcnRSZXN1bHQgfCBudWxsIHwgdm9pZD4pKTogdm9pZDtcbiAgb25FbmQoY2FsbGJhY2s6IChyZXN1bHQ6IEJ1aWxkUmVzdWx0KSA9PlxuICAodm9pZCB8IFByb21pc2U8dm9pZD4pKTogdm9pZDtcbiAgb25SZXNvbHZlKG9wdGlvbnM6IE9uUmVzb2x2ZU9wdGlvbnMsIGNhbGxiYWNrOiAoYXJnczogT25SZXNvbHZlQXJncykgPT5cbiAgKE9uUmVzb2x2ZVJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQgfCBQcm9taXNlPE9uUmVzb2x2ZVJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQ+KSk6IHZvaWQ7XG4gIG9uTG9hZChvcHRpb25zOiBPbkxvYWRPcHRpb25zLCBjYWxsYmFjazogKGFyZ3M6IE9uTG9hZEFyZ3MpID0+XG4gIChPbkxvYWRSZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxPbkxvYWRSZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkPikpOiB2b2lkO1xuXG4gIC8vIFRoaXMgaXMgYSBmdWxsIGNvcHkgb2YgdGhlIGVzYnVpbGQgbGlicmFyeSBpbiBjYXNlIHlvdSBuZWVkIGl0XG4gIGVzYnVpbGQ6IHtcbiAgICBzZXJ2ZTogdHlwZW9mIHNlcnZlO1xuICAgIGJ1aWxkOiB0eXBlb2YgYnVpbGQ7XG4gICAgYnVpbGRTeW5jOiB0eXBlb2YgYnVpbGRTeW5jO1xuICAgIHRyYW5zZm9ybTogdHlwZW9mIHRyYW5zZm9ybTtcbiAgICB0cmFuc2Zvcm1TeW5jOiB0eXBlb2YgdHJhbnNmb3JtU3luYztcbiAgICBmb3JtYXRNZXNzYWdlczogdHlwZW9mIGZvcm1hdE1lc3NhZ2VzO1xuICAgIGZvcm1hdE1lc3NhZ2VzU3luYzogdHlwZW9mIGZvcm1hdE1lc3NhZ2VzU3luYztcbiAgICBhbmFseXplTWV0YWZpbGU6IHR5cGVvZiBhbmFseXplTWV0YWZpbGU7XG4gICAgYW5hbHl6ZU1ldGFmaWxlU3luYzogdHlwZW9mIGFuYWx5emVNZXRhZmlsZVN5bmM7XG4gICAgaW5pdGlhbGl6ZTogdHlwZW9mIGluaXRpYWxpemU7XG4gICAgdmVyc2lvbjogdHlwZW9mIHZlcnNpb247XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZU9wdGlvbnMge1xuICBwbHVnaW5OYW1lPzogc3RyaW5nO1xuICBpbXBvcnRlcj86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZXNvbHZlRGlyPzogc3RyaW5nO1xuICBraW5kPzogSW1wb3J0S2luZDtcbiAgcGx1Z2luRGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlUmVzdWx0IHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG5cbiAgcGF0aDogc3RyaW5nO1xuICBleHRlcm5hbDogYm9vbGVhbjtcbiAgc2lkZUVmZmVjdHM6IGJvb2xlYW47XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uU3RhcnRSZXN1bHQge1xuICBlcnJvcnM/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuICB3YXJuaW5ncz86IFBhcnRpYWxNZXNzYWdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25SZXNvbHZlT3B0aW9ucyB7XG4gIGZpbHRlcjogUmVnRXhwO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25SZXNvbHZlQXJncyB7XG4gIHBhdGg6IHN0cmluZztcbiAgaW1wb3J0ZXI6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHJlc29sdmVEaXI6IHN0cmluZztcbiAga2luZDogSW1wb3J0S2luZDtcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBJbXBvcnRLaW5kID1cbiAgfCAnZW50cnktcG9pbnQnXG5cbiAgLy8gSlNcbiAgfCAnaW1wb3J0LXN0YXRlbWVudCdcbiAgfCAncmVxdWlyZS1jYWxsJ1xuICB8ICdkeW5hbWljLWltcG9ydCdcbiAgfCAncmVxdWlyZS1yZXNvbHZlJ1xuXG4gIC8vIENTU1xuICB8ICdpbXBvcnQtcnVsZSdcbiAgfCAndXJsLXRva2VuJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uUmVzb2x2ZVJlc3VsdCB7XG4gIHBsdWdpbk5hbWU/OiBzdHJpbmc7XG5cbiAgZXJyb3JzPzogUGFydGlhbE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuXG4gIHBhdGg/OiBzdHJpbmc7XG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbiAgc2lkZUVmZmVjdHM/OiBib29sZWFuO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcGx1Z2luRGF0YT86IGFueTtcblxuICB3YXRjaEZpbGVzPzogc3RyaW5nW107XG4gIHdhdGNoRGlycz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZE9wdGlvbnMge1xuICBmaWx0ZXI6IFJlZ0V4cDtcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZEFyZ3Mge1xuICBwYXRoOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZFJlc3VsdCB7XG4gIHBsdWdpbk5hbWU/OiBzdHJpbmc7XG5cbiAgZXJyb3JzPzogUGFydGlhbE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuXG4gIGNvbnRlbnRzPzogc3RyaW5nIHwgVWludDhBcnJheTtcbiAgcmVzb2x2ZURpcj86IHN0cmluZztcbiAgbG9hZGVyPzogTG9hZGVyO1xuICBwbHVnaW5EYXRhPzogYW55O1xuXG4gIHdhdGNoRmlsZXM/OiBzdHJpbmdbXTtcbiAgd2F0Y2hEaXJzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbE1lc3NhZ2Uge1xuICBpZD86IHN0cmluZztcbiAgcGx1Z2luTmFtZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgbG9jYXRpb24/OiBQYXJ0aWFsPExvY2F0aW9uPiB8IG51bGw7XG4gIG5vdGVzPzogUGFydGlhbE5vdGVbXTtcbiAgZGV0YWlsPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxOb3RlIHtcbiAgdGV4dD86IHN0cmluZztcbiAgbG9jYXRpb24/OiBQYXJ0aWFsPExvY2F0aW9uPiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWZpbGUge1xuICBpbnB1dHM6IHtcbiAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgYnl0ZXM6IG51bWJlcjtcbiAgICAgIGltcG9ydHM6IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBraW5kOiBJbXBvcnRLaW5kO1xuICAgICAgfVtdO1xuICAgIH07XG4gIH07XG4gIG91dHB1dHM6IHtcbiAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgYnl0ZXM6IG51bWJlcjtcbiAgICAgIGlucHV0czoge1xuICAgICAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgICAgIGJ5dGVzSW5PdXRwdXQ6IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBpbXBvcnRzOiB7XG4gICAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgICAga2luZDogSW1wb3J0S2luZDtcbiAgICAgIH1bXTtcbiAgICAgIGV4cG9ydHM6IHN0cmluZ1tdO1xuICAgICAgZW50cnlQb2ludD86IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdE1lc3NhZ2VzT3B0aW9ucyB7XG4gIGtpbmQ6ICdlcnJvcicgfCAnd2FybmluZyc7XG4gIGNvbG9yPzogYm9vbGVhbjtcbiAgdGVybWluYWxXaWR0aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXplTWV0YWZpbGVPcHRpb25zIHtcbiAgY29sb3I/OiBib29sZWFuO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGludm9rZXMgdGhlIFwiZXNidWlsZFwiIGNvbW1hbmQtbGluZSB0b29sIGZvciB5b3UuIEl0IHJldHVybnMgYVxuICogcHJvbWlzZSB0aGF0IGVpdGhlciByZXNvbHZlcyB3aXRoIGEgXCJCdWlsZFJlc3VsdFwiIG9iamVjdCBvciByZWplY3RzIHdpdGggYVxuICogXCJCdWlsZEZhaWx1cmVcIiBvYmplY3QuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3NlcjogeWVzXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2J1aWxkLWFwaVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMgJiB7IHdyaXRlOiBmYWxzZSB9KTogUHJvbWlzZTxCdWlsZFJlc3VsdCAmIHsgb3V0cHV0RmlsZXM6IE91dHB1dEZpbGVbXSB9PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGJ1aWxkKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyAmIHsgaW5jcmVtZW50YWw6IHRydWU7IG1ldGFmaWxlOiB0cnVlIH0pOiBQcm9taXNlPEJ1aWxkSW5jcmVtZW50YWwgJiB7IG1ldGFmaWxlOiBNZXRhZmlsZSB9PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGJ1aWxkKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyAmIHsgaW5jcmVtZW50YWw6IHRydWUgfSk6IFByb21pc2U8QnVpbGRJbmNyZW1lbnRhbD47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMgJiB7IG1ldGFmaWxlOiB0cnVlIH0pOiBQcm9taXNlPEJ1aWxkUmVzdWx0ICYgeyBtZXRhZmlsZTogTWV0YWZpbGUgfT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMpOiBQcm9taXNlPEJ1aWxkUmVzdWx0PjtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gXCJidWlsZFwiIGJ1dCBpdCBzZXJ2ZXMgdGhlIHJlc3VsdGluZyBmaWxlcyBvdmVyXG4gKiBIVFRQIG9uIGEgbG9jYWxob3N0IGFkZHJlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIHBvcnQuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3Nlcjogbm9cbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jc2VydmVcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gc2VydmUoc2VydmVPcHRpb25zOiBTZXJ2ZU9wdGlvbnMsIGJ1aWxkT3B0aW9uczogQnVpbGRPcHRpb25zKTogUHJvbWlzZTxTZXJ2ZVJlc3VsdD47XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB0cmFuc2Zvcm1zIGEgc2luZ2xlIEphdmFTY3JpcHQgZmlsZS4gSXQgY2FuIGJlIHVzZWQgdG8gbWluaWZ5XG4gKiBKYXZhU2NyaXB0LCBjb252ZXJ0IFR5cGVTY3JpcHQvSlNYIHRvIEphdmFTY3JpcHQsIG9yIGNvbnZlcnQgbmV3ZXIgSmF2YVNjcmlwdFxuICogdG8gb2xkZXIgSmF2YVNjcmlwdC4gSXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpcyBlaXRoZXIgcmVzb2x2ZWQgd2l0aCBhXG4gKiBcIlRyYW5zZm9ybVJlc3VsdFwiIG9iamVjdCBvciByZWplY3RlZCB3aXRoIGEgXCJUcmFuc2Zvcm1GYWlsdXJlXCIgb2JqZWN0LlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IHllc1xuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHRyYW5zZm9ybShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogVHJhbnNmb3JtT3B0aW9ucyk6IFByb21pc2U8VHJhbnNmb3JtUmVzdWx0PjtcblxuLyoqXG4gKiBDb252ZXJ0cyBsb2cgbWVzc2FnZXMgdG8gZm9ybWF0dGVkIG1lc3NhZ2Ugc3RyaW5ncyBzdWl0YWJsZSBmb3IgcHJpbnRpbmcgaW5cbiAqIHRoZSB0ZXJtaW5hbC4gVGhpcyBhbGxvd3MgeW91IHRvIHJldXNlIHRoZSBidWlsdC1pbiBiZWhhdmlvciBvZiBlc2J1aWxkJ3NcbiAqIGxvZyBtZXNzYWdlIGZvcm1hdHRlci4gVGhpcyBpcyBhIGJhdGNoLW9yaWVudGVkIEFQSSBmb3IgZWZmaWNpZW5jeS5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiB5ZXNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZm9ybWF0TWVzc2FnZXMobWVzc2FnZXM6IFBhcnRpYWxNZXNzYWdlW10sIG9wdGlvbnM6IEZvcm1hdE1lc3NhZ2VzT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nW10+O1xuXG4vKipcbiAqIFByZXR0eS1wcmludHMgYW4gYW5hbHlzaXMgb2YgdGhlIG1ldGFmaWxlIEpTT04gdG8gYSBzdHJpbmcuIFRoaXMgaXMganVzdCBmb3JcbiAqIGNvbnZlbmllbmNlIHRvIGJlIGFibGUgdG8gbWF0Y2ggZXNidWlsZCdzIHByZXR0eS1wcmludGluZyBleGFjdGx5LiBJZiB5b3Ugd2FudFxuICogdG8gY3VzdG9taXplIGl0LCB5b3UgY2FuIGp1c3QgaW5zcGVjdCB0aGUgZGF0YSBpbiB0aGUgbWV0YWZpbGUgeW91cnNlbGYuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3NlcjogeWVzXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2FuYWx5emVcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYW5hbHl6ZU1ldGFmaWxlKG1ldGFmaWxlOiBNZXRhZmlsZSB8IHN0cmluZywgb3B0aW9ucz86IEFuYWx5emVNZXRhZmlsZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIFwiYnVpbGRcIi5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiBub1xuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYnVpbGRTeW5jKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyAmIHsgd3JpdGU6IGZhbHNlIH0pOiBCdWlsZFJlc3VsdCAmIHsgb3V0cHV0RmlsZXM6IE91dHB1dEZpbGVbXSB9O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYnVpbGRTeW5jKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyk6IEJ1aWxkUmVzdWx0O1xuXG4vKipcbiAqIEEgc3luY2hyb25vdXMgdmVyc2lvbiBvZiBcInRyYW5zZm9ybVwiLlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IG5vXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyYW5zZm9ybS1hcGlcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gdHJhbnNmb3JtU3luYyhpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogVHJhbnNmb3JtT3B0aW9ucyk6IFRyYW5zZm9ybVJlc3VsdDtcblxuLyoqXG4gKiBBIHN5bmNocm9ub3VzIHZlcnNpb24gb2YgXCJmb3JtYXRNZXNzYWdlc1wiLlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IG5vXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2VzU3luYyhtZXNzYWdlczogUGFydGlhbE1lc3NhZ2VbXSwgb3B0aW9uczogRm9ybWF0TWVzc2FnZXNPcHRpb25zKTogc3RyaW5nW107XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIFwiYW5hbHl6ZU1ldGFmaWxlXCIuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3Nlcjogbm9cbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jYW5hbHl6ZVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBhbmFseXplTWV0YWZpbGVTeW5jKG1ldGFmaWxlOiBNZXRhZmlsZSB8IHN0cmluZywgb3B0aW9ucz86IEFuYWx5emVNZXRhZmlsZU9wdGlvbnMpOiBzdHJpbmc7XG5cbi8qKlxuICogVGhpcyBjb25maWd1cmVzIHRoZSBicm93c2VyLWJhc2VkIHZlcnNpb24gb2YgZXNidWlsZC4gSXQgaXMgbmVjZXNzYXJ5IHRvXG4gKiBjYWxsIHRoaXMgZmlyc3QgYW5kIHdhaXQgZm9yIHRoZSByZXR1cm5lZCBwcm9taXNlIHRvIGJlIHJlc29sdmVkIGJlZm9yZVxuICogbWFraW5nIG90aGVyIEFQSSBjYWxscyB3aGVuIHVzaW5nIGVzYnVpbGQgaW4gdGhlIGJyb3dzZXIuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3NlcjogeWVzIChcIm9wdGlvbnNcIiBpcyByZXF1aXJlZClcbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jcnVubmluZy1pbi10aGUtYnJvd3NlclxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBpbml0aWFsaXplKG9wdGlvbnM6IEluaXRpYWxpemVPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblxuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBcImVzYnVpbGQud2FzbVwiIGZpbGUuIFRoaXMgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHJ1bm5pbmdcbiAgICogZXNidWlsZCBpbiB0aGUgYnJvd3Nlci5cbiAgICovXG4gIHdhc21VUkw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXN1bHQgb2YgY2FsbGluZyBcIm5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKVwiIHdoZXJlIFwiYnVmZmVyXCJcbiAgICogaXMgYSB0eXBlZCBhcnJheSBvciBBcnJheUJ1ZmZlciBjb250YWluaW5nIHRoZSBiaW5hcnkgY29kZSBvZiB0aGVcbiAgICogXCJlc2J1aWxkLndhc21cIiBmaWxlLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSB0aGlzIGFzIGFuIGFsdGVybmF0aXZlIHRvIFwid2FzbVVSTFwiIGZvciBlbnZpcm9ubWVudHMgd2hlcmUgaXQnc1xuICAgKiBub3QgcG9zc2libGUgdG8gZG93bmxvYWQgdGhlIFdlYkFzc2VtYmx5IG1vZHVsZS5cbiAgICovXG4gIHdhc21Nb2R1bGU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgZXNidWlsZCBydW5zIHRoZSBXZWJBc3NlbWJseS1iYXNlZCBicm93c2VyIEFQSSBpbiBhIHdlYiB3b3JrZXJcbiAgICogdG8gYXZvaWQgYmxvY2tpbmcgdGhlIFVJIHRocmVhZC4gVGhpcyBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBcIndvcmtlclwiXG4gICAqIHRvIGZhbHNlLlxuICAgKi9cbiAgd29ya2VyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGxldCB2ZXJzaW9uOiBzdHJpbmc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lc2J1aWxkLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2RUFBNkUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLmpzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5cbmV4cG9ydCB0eXBlIFBsYXRmb3JtID0gJ2Jyb3dzZXInIHwgJ25vZGUnIHwgJ25ldXRyYWwnO1xuZXhwb3J0IHR5cGUgRm9ybWF0ID0gJ2lpZmUnIHwgJ2NqcycgfCAnZXNtJztcbmV4cG9ydCB0eXBlIExvYWRlciA9ICdiYXNlNjQnIHwgJ2JpbmFyeScgfCAnY29weScgfCAnY3NzJyB8ICdkYXRhdXJsJyB8ICdkZWZhdWx0JyB8ICdlbXB0eScgfCAnZmlsZScgfCAnanMnIHwgJ2pzb24nIHwgJ2pzeCcgfCAndGV4dCcgfCAndHMnIHwgJ3RzeCc7XG5leHBvcnQgdHlwZSBMb2dMZXZlbCA9ICd2ZXJib3NlJyB8ICdkZWJ1ZycgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJ3NpbGVudCc7XG5leHBvcnQgdHlwZSBDaGFyc2V0ID0gJ2FzY2lpJyB8ICd1dGY4JztcbmV4cG9ydCB0eXBlIERyb3AgPSAnY29uc29sZScgfCAnZGVidWdnZXInO1xuXG5pbnRlcmZhY2UgQ29tbW9uT3B0aW9ucyB7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jc291cmNlbWFwICovXG4gIHJlYWRvbmx5IHNvdXJjZW1hcD86IGJvb2xlYW4gfCAnbGlua2VkJyB8ICdpbmxpbmUnIHwgJ2V4dGVybmFsJyB8ICdib3RoJztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNsZWdhbC1jb21tZW50cyAqL1xuICByZWFkb25seSBsZWdhbENvbW1lbnRzPzogJ25vbmUnIHwgJ2lubGluZScgfCAnZW9mJyB8ICdsaW5rZWQnIHwgJ2V4dGVybmFsJztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzb3VyY2Utcm9vdCAqL1xuICByZWFkb25seSBzb3VyY2VSb290Pzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NvdXJjZXMtY29udGVudCAqL1xuICByZWFkb25seSBzb3VyY2VzQ29udGVudD86IGJvb2xlYW47XG5cbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNmb3JtYXQgKi9cbiAgcmVhZG9ubHkgZm9ybWF0PzogRm9ybWF0O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2dsb2JhbC1uYW1lICovXG4gIHJlYWRvbmx5IGdsb2JhbE5hbWU/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdGFyZ2V0ICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3N1cHBvcnRlZCAqL1xuICByZWFkb25seSBzdXBwb3J0ZWQ/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNwbGF0Zm9ybSAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IFBsYXRmb3JtO1xuXG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWFuZ2xlLXByb3BzICovXG4gIHJlYWRvbmx5IG1hbmdsZVByb3BzPzogYW55O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI21hbmdsZS1wcm9wcyAqL1xuICByZWFkb25seSByZXNlcnZlUHJvcHM/OiBhbnk7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWFuZ2xlLXByb3BzICovXG4gIHJlYWRvbmx5IG1hbmdsZVF1b3RlZD86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWFuZ2xlLXByb3BzICovXG4gIHJlYWRvbmx5IG1hbmdsZUNhY2hlPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgZmFsc2U+O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Ryb3AgKi9cbiAgcmVhZG9ubHkgZHJvcD86IERyb3BbXTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtaW5pZnkgKi9cbiAgcmVhZG9ubHkgbWluaWZ5PzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtaW5pZnkgKi9cbiAgcmVhZG9ubHkgbWluaWZ5V2hpdGVzcGFjZT86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWluaWZ5ICovXG4gIHJlYWRvbmx5IG1pbmlmeUlkZW50aWZpZXJzPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtaW5pZnkgKi9cbiAgcmVhZG9ubHkgbWluaWZ5U3ludGF4PzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNjaGFyc2V0ICovXG4gIHJlYWRvbmx5IGNoYXJzZXQ/OiBDaGFyc2V0O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyZWUtc2hha2luZyAqL1xuICByZWFkb25seSB0cmVlU2hha2luZz86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jaWdub3JlLWFubm90YXRpb25zICovXG4gIHJlYWRvbmx5IGlnbm9yZUFubm90YXRpb25zPzogYm9vbGVhbjtcblxuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2pzeCAqL1xuICByZWFkb25seSBqc3g/OiAndHJhbnNmb3JtJyB8ICdwcmVzZXJ2ZScgfCAnYXV0b21hdGljJztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNqc3gtZmFjdG9yeSAqL1xuICByZWFkb25seSBqc3hGYWN0b3J5Pzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2pzeC1mcmFnbWVudCAqL1xuICByZWFkb25seSBqc3hGcmFnbWVudD86IHN0cmluZztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNqc3gtaW1wb3J0LXNvdXJjZSAqL1xuICByZWFkb25seSBqc3hJbXBvcnRTb3VyY2U/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8janN4LWRldmVsb3BtZW50ICovXG4gIHJlYWRvbmx5IGpzeERldj86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8janN4LXNpZGUtZWZmZWN0cyAqL1xuICByZWFkb25seSBqc3hTaWRlRWZmZWN0cz86IGJvb2xlYW47XG5cbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNkZWZpbmUgKi9cbiAgcmVhZG9ubHkgZGVmaW5lPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNwdXJlICovXG4gIHJlYWRvbmx5IHB1cmU/OiBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNrZWVwLW5hbWVzICovXG4gIHJlYWRvbmx5IGtlZXBOYW1lcz86IGJvb2xlYW47XG5cbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNjb2xvciAqL1xuICByZWFkb25seSBjb2xvcj86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbG9nLWxldmVsICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogTG9nTGV2ZWw7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbG9nLWxpbWl0ICovXG4gIHJlYWRvbmx5IGxvZ0xpbWl0PzogbnVtYmVyO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2xvZy1vdmVycmlkZSAqL1xuICByZWFkb25seSBsb2dPdmVycmlkZT86IFJlY29yZDxzdHJpbmcsIExvZ0xldmVsPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9wdGlvbnMgZXh0ZW5kcyBDb21tb25PcHRpb25zIHtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidW5kbGUgKi9cbiAgcmVhZG9ubHkgYnVuZGxlPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzcGxpdHRpbmcgKi9cbiAgcmVhZG9ubHkgc3BsaXR0aW5nPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNwcmVzZXJ2ZS1zeW1saW5rcyAqL1xuICByZWFkb25seSBwcmVzZXJ2ZVN5bWxpbmtzPzogYm9vbGVhbjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNvdXRmaWxlICovXG4gIHJlYWRvbmx5IG91dGZpbGU/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWV0YWZpbGUgKi9cbiAgcmVhZG9ubHkgbWV0YWZpbGU/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI291dGRpciAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jb3V0YmFzZSAqL1xuICByZWFkb25seSBvdXRiYXNlPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2V4dGVybmFsICovXG4gIHJlYWRvbmx5IGV4dGVybmFsPzogc3RyaW5nW107XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jcGFja2FnZXMgKi9cbiAgcmVhZG9ubHkgcGFja2FnZXM/OiAnZXh0ZXJuYWwnO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2FsaWFzICovXG4gIHJlYWRvbmx5IGFsaWFzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNsb2FkZXIgKi9cbiAgcmVhZG9ubHkgbG9hZGVyPzogeyBbZXh0OiBzdHJpbmddOiBMb2FkZXIgfTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNyZXNvbHZlLWV4dGVuc2lvbnMgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZUV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtYWluLWZpZWxkcyAqL1xuICByZWFkb25seSBtYWluRmllbGRzPzogc3RyaW5nW107XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jY29uZGl0aW9ucyAqL1xuICByZWFkb25seSBjb25kaXRpb25zPzogc3RyaW5nW107XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jd3JpdGUgKi9cbiAgcmVhZG9ubHkgd3JpdGU/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2FsbG93LW92ZXJ3cml0ZSAqL1xuICByZWFkb25seSBhbGxvd092ZXJ3cml0ZT86IGJvb2xlYW47XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHNjb25maWcgKi9cbiAgcmVhZG9ubHkgdHNjb25maWc/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jb3V0LWV4dGVuc2lvbiAqL1xuICByZWFkb25seSBvdXRFeHRlbnNpb24/OiB7IFtleHQ6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3B1YmxpYy1wYXRoICovXG4gIHJlYWRvbmx5IHB1YmxpY1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZW50cnktbmFtZXMgKi9cbiAgcmVhZG9ubHkgZW50cnlOYW1lcz86IHN0cmluZztcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNjaHVuay1uYW1lcyAqL1xuICByZWFkb25seSBjaHVua05hbWVzPzogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Fzc2V0LW5hbWVzICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZXM/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jaW5qZWN0ICovXG4gIHJlYWRvbmx5IGluamVjdD86IHN0cmluZ1tdO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Jhbm5lciAqL1xuICByZWFkb25seSBiYW5uZXI/OiB7IFt0eXBlOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNmb290ZXIgKi9cbiAgcmVhZG9ubHkgZm9vdGVyPzogeyBbdHlwZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jaW5jcmVtZW50YWwgKi9cbiAgcmVhZG9ubHkgaW5jcmVtZW50YWw/OiBib29sZWFuO1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3dvcmtpbmctZGlyZWN0b3J5ICovXG4gIHJlYWRvbmx5IGFic1dvcmtpbmdEaXI/OiBzdHJpbmc7XG4gIC8qKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbm9kZS1wYXRocyAqL1xuICByZWFkb25seSBub2RlUGF0aHM/OiBzdHJpbmdbXTsgLy8gVGhlIFwiTk9ERV9QQVRIXCIgdmFyaWFibGUgZnJvbSBOb2RlLmpzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hNb2RlIHtcbiAgb25SZWJ1aWxkPzogKGVycm9yOiBCdWlsZEZhaWx1cmUgfCBudWxsLCByZXN1bHQ6IEJ1aWxkUmVzdWx0IHwgbnVsbCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGRpbk9wdGlvbnMge1xuICBjb250ZW50czogc3RyaW5nIHwgVWludDhBcnJheTtcbiAgcmVzb2x2ZURpcj86IHN0cmluZztcbiAgc291cmNlZmlsZT86IHN0cmluZztcbiAgbG9hZGVyPzogTG9hZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgbG9jYXRpb246IExvY2F0aW9uIHwgbnVsbDtcbiAgbm90ZXM6IE5vdGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlci1zcGVjaWZpZWQgZGF0YSB0aGF0IGlzIHBhc3NlZCB0aHJvdWdoIHVubW9kaWZpZWQuIFlvdSBjYW5cbiAgICogdXNlIHRoaXMgdG8gc3Rhc2ggdGhlIG9yaWdpbmFsIGVycm9yLCBmb3IgZXhhbXBsZS5cbiAgICovXG4gIGRldGFpbDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGxvY2F0aW9uOiBMb2NhdGlvbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb24ge1xuICBmaWxlOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICAvKiogMS1iYXNlZCAqL1xuICBsaW5lOiBudW1iZXI7XG4gIC8qKiAwLWJhc2VkLCBpbiBieXRlcyAqL1xuICBjb2x1bW46IG51bWJlcjtcbiAgLyoqIGluIGJ5dGVzICovXG4gIGxlbmd0aDogbnVtYmVyO1xuICBsaW5lVGV4dDogc3RyaW5nO1xuICBzdWdnZXN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RmlsZSB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgLyoqIFwidGV4dFwiIGFzIGJ5dGVzICovXG4gIHJlYWRvbmx5IGNvbnRlbnRzOiBVaW50OEFycmF5O1xuICAvKiogXCJjb250ZW50c1wiIGFzIHRleHQgKGNoYW5nZXMgYXV0b21hdGljYWxseSB3aXRoIFwiY29udGVudHNcIikgKi9cbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSW52YWxpZGF0ZSB7XG4gICgpOiBQcm9taXNlPEJ1aWxkSW5jcmVtZW50YWw+O1xuICBkaXNwb3NlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRJbmNyZW1lbnRhbCBleHRlbmRzIEJ1aWxkUmVzdWx0IHtcbiAgcmVidWlsZDogQnVpbGRJbnZhbGlkYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUmVzdWx0IHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG4gIC8qKiBPbmx5IHdoZW4gXCJ3cml0ZTogZmFsc2VcIiAqL1xuICBvdXRwdXRGaWxlcz86IE91dHB1dEZpbGVbXTtcbiAgLyoqIE9ubHkgd2hlbiBcImluY3JlbWVudGFsOiB0cnVlXCIgKi9cbiAgcmVidWlsZD86IEJ1aWxkSW52YWxpZGF0ZTtcbiAgLyoqIE9ubHkgd2hlbiBcIndhdGNoOiB0cnVlXCIgKi9cbiAgc3RvcD86ICgpID0+IHZvaWQ7XG4gIC8qKiBPbmx5IHdoZW4gXCJtZXRhZmlsZTogdHJ1ZVwiICovXG4gIG1ldGFmaWxlPzogTWV0YWZpbGU7XG4gIC8qKiBPbmx5IHdoZW4gXCJtYW5nbGVDYWNoZVwiIGlzIHByZXNlbnQgKi9cbiAgbWFuZ2xlQ2FjaGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBmYWxzZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIGV4dGVuZHMgRXJyb3Ige1xuICBlcnJvcnM6IE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M6IE1lc3NhZ2VbXTtcbn1cblxuLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzZXJ2ZS1hcmd1bWVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVPcHRpb25zIHtcbiAgcG9ydD86IG51bWJlcjtcbiAgaG9zdD86IHN0cmluZztcbiAgc2VydmVkaXI/OiBzdHJpbmc7XG4gIG9uUmVxdWVzdD86IChhcmdzOiBTZXJ2ZU9uUmVxdWVzdEFyZ3MpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVPblJlcXVlc3RBcmdzIHtcbiAgcmVtb3RlQWRkcmVzczogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgLyoqIFRoZSB0aW1lIHRvIGdlbmVyYXRlIHRoZSByZXNwb25zZSwgbm90IHRvIHNlbmQgaXQgKi9cbiAgdGltZUluTVM6IG51bWJlcjtcbn1cblxuLyoqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzZXJ2ZS1yZXR1cm4tdmFsdWVzICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlUmVzdWx0IHtcbiAgcG9ydDogbnVtYmVyO1xuICBob3N0OiBzdHJpbmc7XG4gIHdhaXQ6IFByb21pc2U8dm9pZD47XG4gIHN0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3B0aW9ucyBleHRlbmRzIENvbW1vbk9wdGlvbnMge1xuICByZWFkb25seSB0c2NvbmZpZ1Jhdz86IHN0cmluZyB8IFRzY29uZmlnT3B0aW9ucztcblxuICByZWFkb25seSBzb3VyY2VmaWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlYWRvbmx5IGJhbm5lcj86IHN0cmluZztcbiAgcmVhZG9ubHkgZm9vdGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybVJlc3VsdCB7XG4gIGNvZGU6IHN0cmluZztcbiAgbWFwOiBzdHJpbmc7XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG4gIC8qKiBPbmx5IHdoZW4gXCJtYW5nbGVDYWNoZVwiIGlzIHByZXNlbnQgKi9cbiAgbWFuZ2xlQ2FjaGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBmYWxzZT47XG4gIC8qKiBPbmx5IHdoZW4gXCJsZWdhbENvbW1lbnRzXCIgaXMgXCJleHRlcm5hbFwiICovXG4gIGxlZ2FsQ29tbWVudHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtRmFpbHVyZSBleHRlbmRzIEVycm9yIHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzZXR1cDogKGJ1aWxkOiBQbHVnaW5CdWlsZCkgPT4gKHZvaWQgfCBQcm9taXNlPHZvaWQ+KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5CdWlsZCB7XG4gIGluaXRpYWxPcHRpb25zOiBCdWlsZE9wdGlvbnM7XG4gIHJlc29sdmUocGF0aDogc3RyaW5nLCBvcHRpb25zPzogUmVzb2x2ZU9wdGlvbnMpOiBQcm9taXNlPFJlc29sdmVSZXN1bHQ+O1xuXG4gIG9uU3RhcnQoY2FsbGJhY2s6ICgpID0+XG4gIChPblN0YXJ0UmVzdWx0IHwgbnVsbCB8IHZvaWQgfCBQcm9taXNlPE9uU3RhcnRSZXN1bHQgfCBudWxsIHwgdm9pZD4pKTogdm9pZDtcbiAgb25FbmQoY2FsbGJhY2s6IChyZXN1bHQ6IEJ1aWxkUmVzdWx0KSA9PlxuICAodm9pZCB8IFByb21pc2U8dm9pZD4pKTogdm9pZDtcbiAgb25SZXNvbHZlKG9wdGlvbnM6IE9uUmVzb2x2ZU9wdGlvbnMsIGNhbGxiYWNrOiAoYXJnczogT25SZXNvbHZlQXJncykgPT5cbiAgKE9uUmVzb2x2ZVJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQgfCBQcm9taXNlPE9uUmVzb2x2ZVJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQ+KSk6IHZvaWQ7XG4gIG9uTG9hZChvcHRpb25zOiBPbkxvYWRPcHRpb25zLCBjYWxsYmFjazogKGFyZ3M6IE9uTG9hZEFyZ3MpID0+XG4gIChPbkxvYWRSZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxPbkxvYWRSZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkPikpOiB2b2lkO1xuXG4gIC8vIFRoaXMgaXMgYSBmdWxsIGNvcHkgb2YgdGhlIGVzYnVpbGQgbGlicmFyeSBpbiBjYXNlIHlvdSBuZWVkIGl0XG4gIGVzYnVpbGQ6IHtcbiAgICBzZXJ2ZTogdHlwZW9mIHNlcnZlO1xuICAgIGJ1aWxkOiB0eXBlb2YgYnVpbGQ7XG4gICAgYnVpbGRTeW5jOiB0eXBlb2YgYnVpbGRTeW5jO1xuICAgIHRyYW5zZm9ybTogdHlwZW9mIHRyYW5zZm9ybTtcbiAgICB0cmFuc2Zvcm1TeW5jOiB0eXBlb2YgdHJhbnNmb3JtU3luYztcbiAgICBmb3JtYXRNZXNzYWdlczogdHlwZW9mIGZvcm1hdE1lc3NhZ2VzO1xuICAgIGZvcm1hdE1lc3NhZ2VzU3luYzogdHlwZW9mIGZvcm1hdE1lc3NhZ2VzU3luYztcbiAgICBhbmFseXplTWV0YWZpbGU6IHR5cGVvZiBhbmFseXplTWV0YWZpbGU7XG4gICAgYW5hbHl6ZU1ldGFmaWxlU3luYzogdHlwZW9mIGFuYWx5emVNZXRhZmlsZVN5bmM7XG4gICAgaW5pdGlhbGl6ZTogdHlwZW9mIGluaXRpYWxpemU7XG4gICAgdmVyc2lvbjogdHlwZW9mIHZlcnNpb247XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZU9wdGlvbnMge1xuICBwbHVnaW5OYW1lPzogc3RyaW5nO1xuICBpbXBvcnRlcj86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICByZXNvbHZlRGlyPzogc3RyaW5nO1xuICBraW5kPzogSW1wb3J0S2luZDtcbiAgcGx1Z2luRGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlUmVzdWx0IHtcbiAgZXJyb3JzOiBNZXNzYWdlW107XG4gIHdhcm5pbmdzOiBNZXNzYWdlW107XG5cbiAgcGF0aDogc3RyaW5nO1xuICBleHRlcm5hbDogYm9vbGVhbjtcbiAgc2lkZUVmZmVjdHM6IGJvb2xlYW47XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uU3RhcnRSZXN1bHQge1xuICBlcnJvcnM/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuICB3YXJuaW5ncz86IFBhcnRpYWxNZXNzYWdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25SZXNvbHZlT3B0aW9ucyB7XG4gIGZpbHRlcjogUmVnRXhwO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25SZXNvbHZlQXJncyB7XG4gIHBhdGg6IHN0cmluZztcbiAgaW1wb3J0ZXI6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHJlc29sdmVEaXI6IHN0cmluZztcbiAga2luZDogSW1wb3J0S2luZDtcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBJbXBvcnRLaW5kID1cbiAgfCAnZW50cnktcG9pbnQnXG5cbiAgLy8gSlNcbiAgfCAnaW1wb3J0LXN0YXRlbWVudCdcbiAgfCAncmVxdWlyZS1jYWxsJ1xuICB8ICdkeW5hbWljLWltcG9ydCdcbiAgfCAncmVxdWlyZS1yZXNvbHZlJ1xuXG4gIC8vIENTU1xuICB8ICdpbXBvcnQtcnVsZSdcbiAgfCAndXJsLXRva2VuJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uUmVzb2x2ZVJlc3VsdCB7XG4gIHBsdWdpbk5hbWU/OiBzdHJpbmc7XG5cbiAgZXJyb3JzPzogUGFydGlhbE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuXG4gIHBhdGg/OiBzdHJpbmc7XG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbiAgc2lkZUVmZmVjdHM/OiBib29sZWFuO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcGx1Z2luRGF0YT86IGFueTtcblxuICB3YXRjaEZpbGVzPzogc3RyaW5nW107XG4gIHdhdGNoRGlycz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZE9wdGlvbnMge1xuICBmaWx0ZXI6IFJlZ0V4cDtcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZEFyZ3Mge1xuICBwYXRoOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgcGx1Z2luRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uTG9hZFJlc3VsdCB7XG4gIHBsdWdpbk5hbWU/OiBzdHJpbmc7XG5cbiAgZXJyb3JzPzogUGFydGlhbE1lc3NhZ2VbXTtcbiAgd2FybmluZ3M/OiBQYXJ0aWFsTWVzc2FnZVtdO1xuXG4gIGNvbnRlbnRzPzogc3RyaW5nIHwgVWludDhBcnJheTtcbiAgcmVzb2x2ZURpcj86IHN0cmluZztcbiAgbG9hZGVyPzogTG9hZGVyO1xuICBwbHVnaW5EYXRhPzogYW55O1xuXG4gIHdhdGNoRmlsZXM/OiBzdHJpbmdbXTtcbiAgd2F0Y2hEaXJzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbE1lc3NhZ2Uge1xuICBpZD86IHN0cmluZztcbiAgcGx1Z2luTmFtZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgbG9jYXRpb24/OiBQYXJ0aWFsPExvY2F0aW9uPiB8IG51bGw7XG4gIG5vdGVzPzogUGFydGlhbE5vdGVbXTtcbiAgZGV0YWlsPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxOb3RlIHtcbiAgdGV4dD86IHN0cmluZztcbiAgbG9jYXRpb24/OiBQYXJ0aWFsPExvY2F0aW9uPiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWZpbGUge1xuICBpbnB1dHM6IHtcbiAgICBbcGF0aDogc3RyaW5nXToge1xuICAgICAgYnl0ZXM6IG51bWJlcjtcbiAgICAgIGltcG9ydHM6IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBraW5kOiBJbXBvcnRLaW5kO1xuICAgICAgICBleHRlcm5hbD86IGJvb2xlYW47XG4gICAgICAgIG9yaWdpbmFsPzogc3RyaW5nO1xuICAgICAgfVtdO1xuICAgICAgZm9ybWF0PzogJ2NqcycgfCAnZXNtJztcbiAgICB9O1xuICB9O1xuICBvdXRwdXRzOiB7XG4gICAgW3BhdGg6IHN0cmluZ106IHtcbiAgICAgIGJ5dGVzOiBudW1iZXI7XG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgW3BhdGg6IHN0cmluZ106IHtcbiAgICAgICAgICBieXRlc0luT3V0cHV0OiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgaW1wb3J0czoge1xuICAgICAgICBwYXRoOiBzdHJpbmc7XG4gICAgICAgIGtpbmQ6IEltcG9ydEtpbmQgfCAnZmlsZS1sb2FkZXInO1xuICAgICAgICBleHRlcm5hbD86IGJvb2xlYW47XG4gICAgICB9W107XG4gICAgICBleHBvcnRzOiBzdHJpbmdbXTtcbiAgICAgIGVudHJ5UG9pbnQ/OiBzdHJpbmc7XG4gICAgICBjc3NCdW5kbGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRNZXNzYWdlc09wdGlvbnMge1xuICBraW5kOiAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuICBjb2xvcj86IGJvb2xlYW47XG4gIHRlcm1pbmFsV2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl6ZU1ldGFmaWxlT3B0aW9ucyB7XG4gIGNvbG9yPzogYm9vbGVhbjtcbiAgdmVyYm9zZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpbnZva2VzIHRoZSBcImVzYnVpbGRcIiBjb21tYW5kLWxpbmUgdG9vbCBmb3IgeW91LiBJdCByZXR1cm5zIGFcbiAqIHByb21pc2UgdGhhdCBlaXRoZXIgcmVzb2x2ZXMgd2l0aCBhIFwiQnVpbGRSZXN1bHRcIiBvYmplY3Qgb3IgcmVqZWN0cyB3aXRoIGFcbiAqIFwiQnVpbGRGYWlsdXJlXCIgb2JqZWN0LlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IHllc1xuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYnVpbGQob3B0aW9uczogQnVpbGRPcHRpb25zICYgeyB3cml0ZTogZmFsc2UgfSk6IFByb21pc2U8QnVpbGRSZXN1bHQgJiB7IG91dHB1dEZpbGVzOiBPdXRwdXRGaWxlW10gfT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMgJiB7IGluY3JlbWVudGFsOiB0cnVlOyBtZXRhZmlsZTogdHJ1ZSB9KTogUHJvbWlzZTxCdWlsZEluY3JlbWVudGFsICYgeyBtZXRhZmlsZTogTWV0YWZpbGUgfT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZChvcHRpb25zOiBCdWlsZE9wdGlvbnMgJiB7IGluY3JlbWVudGFsOiB0cnVlIH0pOiBQcm9taXNlPEJ1aWxkSW5jcmVtZW50YWw+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYnVpbGQob3B0aW9uczogQnVpbGRPcHRpb25zICYgeyBtZXRhZmlsZTogdHJ1ZSB9KTogUHJvbWlzZTxCdWlsZFJlc3VsdCAmIHsgbWV0YWZpbGU6IE1ldGFmaWxlIH0+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gYnVpbGQob3B0aW9uczogQnVpbGRPcHRpb25zKTogUHJvbWlzZTxCdWlsZFJlc3VsdD47XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIFwiYnVpbGRcIiBidXQgaXQgc2VydmVzIHRoZSByZXN1bHRpbmcgZmlsZXMgb3ZlclxuICogSFRUUCBvbiBhIGxvY2FsaG9zdCBhZGRyZXNzIHdpdGggdGhlIHNwZWNpZmllZCBwb3J0LlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IG5vXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NlcnZlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNlcnZlKHNlcnZlT3B0aW9uczogU2VydmVPcHRpb25zLCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyk6IFByb21pc2U8U2VydmVSZXN1bHQ+O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gdHJhbnNmb3JtcyBhIHNpbmdsZSBKYXZhU2NyaXB0IGZpbGUuIEl0IGNhbiBiZSB1c2VkIHRvIG1pbmlmeVxuICogSmF2YVNjcmlwdCwgY29udmVydCBUeXBlU2NyaXB0L0pTWCB0byBKYXZhU2NyaXB0LCBvciBjb252ZXJ0IG5ld2VyIEphdmFTY3JpcHRcbiAqIHRvIG9sZGVyIEphdmFTY3JpcHQuIEl0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgZWl0aGVyIHJlc29sdmVkIHdpdGggYVxuICogXCJUcmFuc2Zvcm1SZXN1bHRcIiBvYmplY3Qgb3IgcmVqZWN0ZWQgd2l0aCBhIFwiVHJhbnNmb3JtRmFpbHVyZVwiIG9iamVjdC5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiB5ZXNcbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB0cmFuc2Zvcm0oaW5wdXQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksIG9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zKTogUHJvbWlzZTxUcmFuc2Zvcm1SZXN1bHQ+O1xuXG4vKipcbiAqIENvbnZlcnRzIGxvZyBtZXNzYWdlcyB0byBmb3JtYXR0ZWQgbWVzc2FnZSBzdHJpbmdzIHN1aXRhYmxlIGZvciBwcmludGluZyBpblxuICogdGhlIHRlcm1pbmFsLiBUaGlzIGFsbG93cyB5b3UgdG8gcmV1c2UgdGhlIGJ1aWx0LWluIGJlaGF2aW9yIG9mIGVzYnVpbGQnc1xuICogbG9nIG1lc3NhZ2UgZm9ybWF0dGVyLiBUaGlzIGlzIGEgYmF0Y2gtb3JpZW50ZWQgQVBJIGZvciBlZmZpY2llbmN5LlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IHllc1xuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBmb3JtYXRNZXNzYWdlcyhtZXNzYWdlczogUGFydGlhbE1lc3NhZ2VbXSwgb3B0aW9uczogRm9ybWF0TWVzc2FnZXNPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT47XG5cbi8qKlxuICogUHJldHR5LXByaW50cyBhbiBhbmFseXNpcyBvZiB0aGUgbWV0YWZpbGUgSlNPTiB0byBhIHN0cmluZy4gVGhpcyBpcyBqdXN0IGZvclxuICogY29udmVuaWVuY2UgdG8gYmUgYWJsZSB0byBtYXRjaCBlc2J1aWxkJ3MgcHJldHR5LXByaW50aW5nIGV4YWN0bHkuIElmIHlvdSB3YW50XG4gKiB0byBjdXN0b21pemUgaXQsIHlvdSBjYW4ganVzdCBpbnNwZWN0IHRoZSBkYXRhIGluIHRoZSBtZXRhZmlsZSB5b3Vyc2VsZi5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiB5ZXNcbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jYW5hbHl6ZVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBhbmFseXplTWV0YWZpbGUobWV0YWZpbGU6IE1ldGFmaWxlIHwgc3RyaW5nLCBvcHRpb25zPzogQW5hbHl6ZU1ldGFmaWxlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcblxuLyoqXG4gKiBBIHN5bmNocm9ub3VzIHZlcnNpb24gb2YgXCJidWlsZFwiLlxuICpcbiAqIC0gV29ya3MgaW4gbm9kZTogeWVzXG4gKiAtIFdvcmtzIGluIGJyb3dzZXI6IG5vXG4gKlxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2J1aWxkLWFwaVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZFN5bmMob3B0aW9uczogQnVpbGRPcHRpb25zICYgeyB3cml0ZTogZmFsc2UgfSk6IEJ1aWxkUmVzdWx0ICYgeyBvdXRwdXRGaWxlczogT3V0cHV0RmlsZVtdIH07XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBidWlsZFN5bmMob3B0aW9uczogQnVpbGRPcHRpb25zKTogQnVpbGRSZXN1bHQ7XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIFwidHJhbnNmb3JtXCIuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3Nlcjogbm9cbiAqXG4gKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICovXG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB0cmFuc2Zvcm1TeW5jKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zKTogVHJhbnNmb3JtUmVzdWx0O1xuXG4vKipcbiAqIEEgc3luY2hyb25vdXMgdmVyc2lvbiBvZiBcImZvcm1hdE1lc3NhZ2VzXCIuXG4gKlxuICogLSBXb3JrcyBpbiBub2RlOiB5ZXNcbiAqIC0gV29ya3MgaW4gYnJvd3Nlcjogbm9cbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZm9ybWF0TWVzc2FnZXNTeW5jKG1lc3NhZ2VzOiBQYXJ0aWFsTWVzc2FnZVtdLCBvcHRpb25zOiBGb3JtYXRNZXNzYWdlc09wdGlvbnMpOiBzdHJpbmdbXTtcblxuLyoqXG4gKiBBIHN5bmNocm9ub3VzIHZlcnNpb24gb2YgXCJhbmFseXplTWV0YWZpbGVcIi5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiBub1xuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNhbmFseXplXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGFuYWx5emVNZXRhZmlsZVN5bmMobWV0YWZpbGU6IE1ldGFmaWxlIHwgc3RyaW5nLCBvcHRpb25zPzogQW5hbHl6ZU1ldGFmaWxlT3B0aW9ucyk6IHN0cmluZztcblxuLyoqXG4gKiBUaGlzIGNvbmZpZ3VyZXMgdGhlIGJyb3dzZXItYmFzZWQgdmVyc2lvbiBvZiBlc2J1aWxkLiBJdCBpcyBuZWNlc3NhcnkgdG9cbiAqIGNhbGwgdGhpcyBmaXJzdCBhbmQgd2FpdCBmb3IgdGhlIHJldHVybmVkIHByb21pc2UgdG8gYmUgcmVzb2x2ZWQgYmVmb3JlXG4gKiBtYWtpbmcgb3RoZXIgQVBJIGNhbGxzIHdoZW4gdXNpbmcgZXNidWlsZCBpbiB0aGUgYnJvd3Nlci5cbiAqXG4gKiAtIFdvcmtzIGluIG5vZGU6IHllc1xuICogLSBXb3JrcyBpbiBicm93c2VyOiB5ZXMgKFwib3B0aW9uc1wiIGlzIHJlcXVpcmVkKVxuICpcbiAqIERvY3VtZW50YXRpb246IGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNydW5uaW5nLWluLXRoZS1icm93c2VyXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGluaXRpYWxpemUob3B0aW9uczogSW5pdGlhbGl6ZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIFwiZXNidWlsZC53YXNtXCIgZmlsZS4gVGhpcyBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gcnVubmluZ1xuICAgKiBlc2J1aWxkIGluIHRoZSBicm93c2VyLlxuICAgKi9cbiAgd2FzbVVSTD86IHN0cmluZyB8IFVSTDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdCBvZiBjYWxsaW5nIFwibmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWZmZXIpXCIgd2hlcmUgXCJidWZmZXJcIlxuICAgKiBpcyBhIHR5cGVkIGFycmF5IG9yIEFycmF5QnVmZmVyIGNvbnRhaW5pbmcgdGhlIGJpbmFyeSBjb2RlIG9mIHRoZVxuICAgKiBcImVzYnVpbGQud2FzbVwiIGZpbGUuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gXCJ3YXNtVVJMXCIgZm9yIGVudmlyb25tZW50cyB3aGVyZSBpdCdzXG4gICAqIG5vdCBwb3NzaWJsZSB0byBkb3dubG9hZCB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlLlxuICAgKi9cbiAgd2FzbU1vZHVsZT86IGFueTtcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCBlc2J1aWxkIHJ1bnMgdGhlIFdlYkFzc2VtYmx5LWJhc2VkIGJyb3dzZXIgQVBJIGluIGEgd2ViIHdvcmtlclxuICAgKiB0byBhdm9pZCBibG9ja2luZyB0aGUgVUkgdGhyZWFkLiBUaGlzIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIFwid29ya2VyXCJcbiAgICogdG8gZmFsc2UuXG4gICAqL1xuICB3b3JrZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgbGV0IHZlcnNpb246IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBDb21waWxlck9wdGlvbnMge1xuICByZWFkb25seSBqc3hGYWN0b3J5Pzogc3RyaW5nO1xuICByZWFkb25seSBqc3hGcmFnbWVudEZhY3Rvcnk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZURlZmluZUZvckNsYXNzRmllbGRzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW1wb3J0c05vdFVzZWRBc1ZhbHVlcz86ICdyZW1vdmUnIHwgJ3ByZXNlcnZlJyB8ICdlcnJvcic7XG4gIHJlYWRvbmx5IHByZXNlcnZlVmFsdWVJbXBvcnRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUc2NvbmZpZ09wdGlvbnMge1xuICByZWFkb25seSBjb21waWxlck9wdGlvbnM/OiBDb21waWxlck9wdGlvbnM7XG59XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { BuildOptions, TransformOptions, } from './esbuild-types';
2
- export { EsbuildBundler, BundlerProps, } from './bundler';
3
1
  export { AssetBaseProps, AssetProps, EsbuildAsset, JavaScriptAsset, TypeScriptAsset, } from './asset';
2
+ export { EsbuildBundler, BundlerProps, } from './bundler';
4
3
  export { CodeConfig, EsbuildCode, JavaScriptCode, JavaScriptCodeProps, TypeScriptCode, TypeScriptCodeProps, } from './code';
5
- export { TransformerProps, InlineJavaScriptCode, InlineJsxCode, InlineTsxCode, InlineTypeScriptCode, } from './inline-code';
4
+ export { BuildOptions, TransformOptions, TsconfigOptions, CompilerOptions, } from './esbuild-types';
5
+ export { TransformerProps, InlineJavaScriptCode, InlineTypeScriptCode, } from './inline-code';
6
+ export { EsbuildProvider, EsbuildProviderProps, EsbuildSource, IBuildProvider, IEsbuildProvider, ITransformProvider, ProviderBuildOptions, ProviderTransformOptions, } from './provider';
6
7
  export { JavaScriptSource, JavaScriptSourceProps, TypeScriptSource, TypeScriptSourceProps, } from './source';
package/lib/index.js CHANGED
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var bundler_1 = require("./bundler");
4
- Object.defineProperty(exports, "EsbuildBundler", { enumerable: true, get: function () { return bundler_1.EsbuildBundler; } });
5
3
  var asset_1 = require("./asset");
6
4
  Object.defineProperty(exports, "EsbuildAsset", { enumerable: true, get: function () { return asset_1.EsbuildAsset; } });
7
5
  Object.defineProperty(exports, "JavaScriptAsset", { enumerable: true, get: function () { return asset_1.JavaScriptAsset; } });
8
6
  Object.defineProperty(exports, "TypeScriptAsset", { enumerable: true, get: function () { return asset_1.TypeScriptAsset; } });
7
+ var bundler_1 = require("./bundler");
8
+ Object.defineProperty(exports, "EsbuildBundler", { enumerable: true, get: function () { return bundler_1.EsbuildBundler; } });
9
9
  var code_1 = require("./code");
10
10
  Object.defineProperty(exports, "EsbuildCode", { enumerable: true, get: function () { return code_1.EsbuildCode; } });
11
11
  Object.defineProperty(exports, "JavaScriptCode", { enumerable: true, get: function () { return code_1.JavaScriptCode; } });
12
12
  Object.defineProperty(exports, "TypeScriptCode", { enumerable: true, get: function () { return code_1.TypeScriptCode; } });
13
13
  var inline_code_1 = require("./inline-code");
14
14
  Object.defineProperty(exports, "InlineJavaScriptCode", { enumerable: true, get: function () { return inline_code_1.InlineJavaScriptCode; } });
15
- Object.defineProperty(exports, "InlineJsxCode", { enumerable: true, get: function () { return inline_code_1.InlineJsxCode; } });
16
- Object.defineProperty(exports, "InlineTsxCode", { enumerable: true, get: function () { return inline_code_1.InlineTsxCode; } });
17
15
  Object.defineProperty(exports, "InlineTypeScriptCode", { enumerable: true, get: function () { return inline_code_1.InlineTypeScriptCode; } });
16
+ var provider_1 = require("./provider");
17
+ Object.defineProperty(exports, "EsbuildProvider", { enumerable: true, get: function () { return provider_1.EsbuildProvider; } });
18
+ Object.defineProperty(exports, "EsbuildSource", { enumerable: true, get: function () { return provider_1.EsbuildSource; } });
18
19
  var source_1 = require("./source");
19
20
  Object.defineProperty(exports, "JavaScriptSource", { enumerable: true, get: function () { return source_1.JavaScriptSource; } });
20
21
  Object.defineProperty(exports, "TypeScriptSource", { enumerable: true, get: function () { return source_1.TypeScriptSource; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxxQ0FHbUI7QUFGakIseUdBQUEsY0FBYyxPQUFBO0FBSWhCLGlDQU1pQjtBQUhmLHFHQUFBLFlBQVksT0FBQTtBQUNaLHdHQUFBLGVBQWUsT0FBQTtBQUNmLHdHQUFBLGVBQWUsT0FBQTtBQUdqQiwrQkFPZ0I7QUFMZCxtR0FBQSxXQUFXLE9BQUE7QUFDWCxzR0FBQSxjQUFjLE9BQUE7QUFFZCxzR0FBQSxjQUFjLE9BQUE7QUFJaEIsNkNBTXVCO0FBSnJCLG1IQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRHQUFBLGFBQWEsT0FBQTtBQUNiLDRHQUFBLGFBQWEsT0FBQTtBQUNiLG1IQUFBLG9CQUFvQixPQUFBO0FBR3RCLG1DQUtrQjtBQUpoQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUVoQiwwR0FBQSxnQkFBZ0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHtcbiAgQnVpbGRPcHRpb25zLFxuICBUcmFuc2Zvcm1PcHRpb25zLFxufSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQge1xuICBFc2J1aWxkQnVuZGxlcixcbiAgQnVuZGxlclByb3BzLFxufSBmcm9tICcuL2J1bmRsZXInO1xuXG5leHBvcnQge1xuICBBc3NldEJhc2VQcm9wcyxcbiAgQXNzZXRQcm9wcyxcbiAgRXNidWlsZEFzc2V0LFxuICBKYXZhU2NyaXB0QXNzZXQsXG4gIFR5cGVTY3JpcHRBc3NldCxcbn0gZnJvbSAnLi9hc3NldCc7XG5cbmV4cG9ydCB7XG4gIENvZGVDb25maWcsXG4gIEVzYnVpbGRDb2RlLFxuICBKYXZhU2NyaXB0Q29kZSxcbiAgSmF2YVNjcmlwdENvZGVQcm9wcyxcbiAgVHlwZVNjcmlwdENvZGUsXG4gIFR5cGVTY3JpcHRDb2RlUHJvcHMsXG59IGZyb20gJy4vY29kZSc7XG5cbmV4cG9ydCB7XG4gIFRyYW5zZm9ybWVyUHJvcHMsXG4gIElubGluZUphdmFTY3JpcHRDb2RlLFxuICBJbmxpbmVKc3hDb2RlLFxuICBJbmxpbmVUc3hDb2RlLFxuICBJbmxpbmVUeXBlU2NyaXB0Q29kZSxcbn0gZnJvbSAnLi9pbmxpbmUtY29kZSc7XG5cbmV4cG9ydCB7XG4gIEphdmFTY3JpcHRTb3VyY2UsXG4gIEphdmFTY3JpcHRTb3VyY2VQcm9wcyxcbiAgVHlwZVNjcmlwdFNvdXJjZSxcbiAgVHlwZVNjcmlwdFNvdXJjZVByb3BzLFxufSBmcm9tICcuL3NvdXJjZSc7Il19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FNaUI7QUFIZixxR0FBQSxZQUFZLE9BQUE7QUFDWix3R0FBQSxlQUFlLE9BQUE7QUFDZix3R0FBQSxlQUFlLE9BQUE7QUFHakIscUNBR21CO0FBRmpCLHlHQUFBLGNBQWMsT0FBQTtBQUloQiwrQkFPZ0I7QUFMZCxtR0FBQSxXQUFXLE9BQUE7QUFDWCxzR0FBQSxjQUFjLE9BQUE7QUFFZCxzR0FBQSxjQUFjLE9BQUE7QUFXaEIsNkNBSXVCO0FBRnJCLG1IQUFBLG9CQUFvQixPQUFBO0FBQ3BCLG1IQUFBLG9CQUFvQixPQUFBO0FBR3RCLHVDQVNvQjtBQVJsQiwyR0FBQSxlQUFlLE9BQUE7QUFFZix5R0FBQSxhQUFhLE9BQUE7QUFRZixtQ0FLa0I7QUFKaEIsMEdBQUEsZ0JBQWdCLE9BQUE7QUFFaEIsMEdBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBc3NldEJhc2VQcm9wcyxcbiAgQXNzZXRQcm9wcyxcbiAgRXNidWlsZEFzc2V0LFxuICBKYXZhU2NyaXB0QXNzZXQsXG4gIFR5cGVTY3JpcHRBc3NldCxcbn0gZnJvbSAnLi9hc3NldCc7XG5cbmV4cG9ydCB7XG4gIEVzYnVpbGRCdW5kbGVyLFxuICBCdW5kbGVyUHJvcHMsXG59IGZyb20gJy4vYnVuZGxlcic7XG5cbmV4cG9ydCB7XG4gIENvZGVDb25maWcsXG4gIEVzYnVpbGRDb2RlLFxuICBKYXZhU2NyaXB0Q29kZSxcbiAgSmF2YVNjcmlwdENvZGVQcm9wcyxcbiAgVHlwZVNjcmlwdENvZGUsXG4gIFR5cGVTY3JpcHRDb2RlUHJvcHMsXG59IGZyb20gJy4vY29kZSc7XG5cbmV4cG9ydCB7XG4gIEJ1aWxkT3B0aW9ucyxcbiAgVHJhbnNmb3JtT3B0aW9ucyxcbiAgVHNjb25maWdPcHRpb25zLFxuICBDb21waWxlck9wdGlvbnMsXG59IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5cbmV4cG9ydCB7XG4gIFRyYW5zZm9ybWVyUHJvcHMsXG4gIElubGluZUphdmFTY3JpcHRDb2RlLFxuICBJbmxpbmVUeXBlU2NyaXB0Q29kZSxcbn0gZnJvbSAnLi9pbmxpbmUtY29kZSc7XG5cbmV4cG9ydCB7XG4gIEVzYnVpbGRQcm92aWRlcixcbiAgRXNidWlsZFByb3ZpZGVyUHJvcHMsXG4gIEVzYnVpbGRTb3VyY2UsXG4gIElCdWlsZFByb3ZpZGVyLFxuICBJRXNidWlsZFByb3ZpZGVyLFxuICBJVHJhbnNmb3JtUHJvdmlkZXIsXG4gIFByb3ZpZGVyQnVpbGRPcHRpb25zLFxuICBQcm92aWRlclRyYW5zZm9ybU9wdGlvbnMsXG59IGZyb20gJy4vcHJvdmlkZXInO1xuXG5leHBvcnQge1xuICBKYXZhU2NyaXB0U291cmNlLFxuICBKYXZhU2NyaXB0U291cmNlUHJvcHMsXG4gIFR5cGVTY3JpcHRTb3VyY2UsXG4gIFR5cGVTY3JpcHRTb3VyY2VQcm9wcyxcbn0gZnJvbSAnLi9zb3VyY2UnO1xuIl19
@@ -1,7 +1,9 @@
1
- import { InlineCode } from 'aws-cdk-lib/aws-lambda';
1
+ import { CodeConfig, InlineCode } from 'aws-cdk-lib/aws-lambda';
2
+ import { Construct } from 'constructs';
2
3
  import { TransformOptions } from './esbuild-types';
4
+ import { ITransformProvider } from './provider';
3
5
  /**
4
- * @stability experimental
6
+ * @stability stable
5
7
  */
6
8
  export interface TransformerProps {
7
9
  /**
@@ -12,123 +14,73 @@ export interface TransformerProps {
12
14
  */
13
15
  readonly transformOptions?: TransformOptions;
14
16
  /**
15
- * Escape hatch to provide the bundler with a custom transform function.
16
- * The function will receive the computed options from the bundler. It can use with these options as it wishes, however a TransformResult must be returned to integrate with CDK.
17
- * Must throw a `TransformFailure` on failure to correctly inform the bundler.
17
+ * The esbuild Transform API implementation to be used.
18
18
  *
19
- * @stability experimental
20
- * @type esbuild.transformSync
21
- * @returns esbuild.TransformResult
22
- * @throws esbuild.TransformFailure
23
- * @default esbuild.transformSync
19
+ * Configure the default `EsbuildProvider` for more options or
20
+ * provide a custom `ITransformProvider` as an escape hatch.
21
+ *
22
+ * @stability stable
23
+ *
24
+ * @default new DefaultEsbuildProvider()
24
25
  */
25
- readonly transformFn?: any;
26
+ readonly transformProvider?: ITransformProvider;
26
27
  }
27
28
  declare abstract class BaseInlineCode extends InlineCode {
29
+ readonly isInline = true;
30
+ private readonly inlineCode;
28
31
  constructor(code: string, props: TransformerProps);
32
+ bind(scope: Construct): CodeConfig;
29
33
  }
30
34
  /**
31
35
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
32
36
  *
33
- * @stability experimental
37
+ * @stability stable
34
38
  */
35
39
  export declare class InlineJavaScriptCode extends BaseInlineCode {
36
40
  constructor(
37
41
  /**
38
42
  * The inline code to be transformed.
39
43
  *
40
- * @stability experimental
44
+ * @stability stable
41
45
  */
42
46
  code: string,
43
47
  /**
44
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
45
- *
46
- * Props to change the behaviour of the transformer.
48
+ * Props to change the behavior of the transformer.
47
49
  *
48
50
  * Default values for `props.transformOptions`:
49
51
  * - `loader='js'`
52
+ * - `platform=node`
53
+ * - `target=nodeX` with X being the major node version running locally
50
54
  *
51
55
  * @see https://esbuild.github.io/api/#transform-api
52
- * @stability experimental
53
- */
54
- props?: TransformerProps | TransformOptions);
55
- }
56
- /**
57
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
58
- *
59
- * @stability experimental
60
- */
61
- export declare class InlineJsxCode extends BaseInlineCode {
62
- constructor(
63
- /**
64
- * The inline code to be transformed.
65
- *
66
- * @stability experimental
67
- */
68
- code: string,
69
- /**
70
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
71
- *
72
- * Props to change the behaviour of the transformer.
73
- *
74
- * Default values for `transformOptions`:
75
- * - `loader='jsx'`
76
- *
77
- * @see https://esbuild.github.io/api/#transform-api
78
- * @stability experimental
56
+ * @stability stable
79
57
  */
80
- props?: TransformerProps | TransformOptions);
58
+ props?: TransformerProps);
81
59
  }
82
60
  /**
83
61
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
84
62
  *
85
- * @stability experimental
63
+ * @stability stable
86
64
  */
87
65
  export declare class InlineTypeScriptCode extends BaseInlineCode {
88
66
  constructor(
89
67
  /**
90
68
  * The inline code to be transformed.
91
69
  *
92
- * @stability experimental
70
+ * @stability stable
93
71
  */
94
72
  code: string,
95
73
  /**
96
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
97
- *
98
- * Props to change the behaviour of the transformer.
74
+ * Props to change the behavior of the transformer.
99
75
  *
100
76
  * Default values for `transformOptions`:
101
77
  * - `loader='ts'`
78
+ * - `platform=node`
79
+ * - `target=nodeX` with X being the major node version running locally
102
80
  *
103
81
  * @see https://esbuild.github.io/api/#transform-api
104
- * @stability experimental
105
- */
106
- props?: TransformerProps | TransformOptions);
107
- }
108
- /**
109
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
110
- *
111
- * @stability experimental
112
- */
113
- export declare class InlineTsxCode extends BaseInlineCode {
114
- constructor(
115
- /**
116
- * The inline code to be transformed.
117
- *
118
- * @stability experimental
119
- */
120
- code: string,
121
- /**
122
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
123
- *
124
- * Props to change the behaviour of the transformer.
125
- *
126
- * Default values for `transformOptions`:
127
- * - `loader='tsx'`
128
- *
129
- * @see https://esbuild.github.io/api/#transform-api
130
- * @stability experimental
82
+ * @stability stable
131
83
  */
132
- props?: TransformerProps | TransformOptions);
84
+ props?: TransformerProps);
133
85
  }
134
86
  export {};