@angular-devkit/build-angular 16.2.0-next.0 → 16.2.0-next.2
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/package.json +22 -21
- package/src/builders/app-shell/render-worker.js +6 -2
- package/src/builders/application/execute-build.js +50 -11
- package/src/builders/application/options.d.ts +17 -4
- package/src/builders/application/options.js +63 -28
- package/src/builders/application/schema.d.ts +62 -6
- package/src/builders/application/schema.js +1 -1
- package/src/builders/application/schema.json +62 -4
- package/src/builders/browser-esbuild/builder-status-warnings.d.ts +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.js +2 -1
- package/src/builders/browser-esbuild/schema.d.ts +17 -1
- package/src/builders/browser-esbuild/schema.js +1 -1
- package/src/builders/browser-esbuild/schema.json +1 -0
- package/src/builders/dev-server/builder.js +3 -2
- package/src/builders/dev-server/vite-server.d.ts +1 -1
- package/src/builders/dev-server/vite-server.js +82 -37
- package/src/builders/jest/index.js +2 -2
- package/src/tools/babel/presets/application.d.ts +1 -0
- package/src/tools/babel/presets/application.js +43 -41
- package/src/tools/babel/webpack-loader.d.ts +0 -1
- package/src/tools/babel/webpack-loader.js +3 -23
- package/src/tools/esbuild/angular/angular-host.js +5 -2
- package/src/tools/esbuild/angular/{angular-compilation.d.ts → compilation/angular-compilation.d.ts} +1 -1
- package/src/tools/esbuild/angular/compilation/angular-compilation.js +52 -0
- package/src/tools/esbuild/angular/{aot-compilation.d.ts → compilation/aot-compilation.d.ts} +1 -1
- package/src/tools/esbuild/angular/compilation/aot-compilation.js +211 -0
- package/src/tools/esbuild/angular/compilation/index.d.ts +11 -0
- package/src/tools/esbuild/angular/compilation/index.js +19 -0
- package/src/tools/esbuild/angular/{jit-compilation.d.ts → compilation/jit-compilation.d.ts} +1 -1
- package/src/tools/esbuild/angular/compilation/jit-compilation.js +106 -0
- package/src/tools/esbuild/angular/compilation/noop-compilation.d.ts +20 -0
- package/src/tools/esbuild/angular/compilation/noop-compilation.js +27 -0
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +2 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +22 -8
- package/src/tools/esbuild/application-code-bundle.d.ts +8 -2
- package/src/tools/esbuild/application-code-bundle.js +163 -71
- package/src/tools/esbuild/compiler-plugin-options.d.ts +15 -0
- package/src/tools/esbuild/compiler-plugin-options.js +45 -0
- package/src/tools/esbuild/global-scripts.js +6 -5
- package/src/tools/esbuild/global-styles.d.ts +1 -1
- package/src/tools/esbuild/global-styles.js +2 -3
- package/src/tools/esbuild/index-html-generator.d.ts +6 -2
- package/src/tools/esbuild/index-html-generator.js +41 -13
- package/src/tools/esbuild/javascript-transformer-worker.js +25 -6
- package/src/tools/esbuild/load-result-cache.js +6 -3
- package/src/tools/esbuild/rxjs-esm-resolution-plugin.d.ts +18 -0
- package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +45 -0
- package/src/tools/esbuild/stylesheets/bundle-options.d.ts +3 -4
- package/src/tools/esbuild/stylesheets/bundle-options.js +3 -4
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +8 -4
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +34 -16
- package/src/utils/server-rendering/esm-in-memory-file-loader.d.ts +11 -0
- package/src/utils/server-rendering/esm-in-memory-file-loader.js +53 -0
- package/src/utils/server-rendering/prerender.d.ts +22 -0
- package/src/utils/server-rendering/prerender.js +127 -0
- package/src/utils/server-rendering/render-page.d.ts +38 -0
- package/src/utils/server-rendering/render-page.js +63 -0
- package/src/utils/server-rendering/render-worker.d.ts +18 -0
- package/src/utils/server-rendering/render-worker.js +20 -0
- package/src/tools/esbuild/angular/angular-compilation.js +0 -52
- package/src/tools/esbuild/angular/aot-compilation.js +0 -211
- package/src/tools/esbuild/angular/jit-compilation.js +0 -106
|
@@ -30,6 +30,7 @@ const schema_1 = require("./schema");
|
|
|
30
30
|
* @param options An object containing the options to use for the build.
|
|
31
31
|
* @returns An object containing normalized options required to perform the build.
|
|
32
32
|
*/
|
|
33
|
+
// eslint-disable-next-line max-lines-per-function
|
|
33
34
|
async function normalizeOptions(context, projectName, options) {
|
|
34
35
|
const workspaceRoot = context.workspaceRoot;
|
|
35
36
|
const projectMetadata = await context.getProjectMetadata(projectName);
|
|
@@ -50,13 +51,11 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
50
51
|
bundles: options.outputHashing === schema_1.OutputHashing.All || options.outputHashing === schema_1.OutputHashing.Bundles
|
|
51
52
|
? '[name].[hash]'
|
|
52
53
|
: '[name]',
|
|
53
|
-
media:
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
media: 'media/' +
|
|
55
|
+
(options.outputHashing === schema_1.OutputHashing.All || options.outputHashing === schema_1.OutputHashing.Media
|
|
56
|
+
? '[name].[hash]'
|
|
57
|
+
: '[name]'),
|
|
56
58
|
};
|
|
57
|
-
if (options.resourcesOutputPath) {
|
|
58
|
-
outputNames.media = node_path_1.default.join(options.resourcesOutputPath, outputNames.media);
|
|
59
|
-
}
|
|
60
59
|
let fileReplacements;
|
|
61
60
|
if (options.fileReplacements) {
|
|
62
61
|
for (const replacement of options.fileReplacements) {
|
|
@@ -96,7 +95,8 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
let indexHtmlOptions;
|
|
99
|
-
|
|
98
|
+
// index can never have a value of `true` but in the schema it's of type `boolean`.
|
|
99
|
+
if (typeof options.index !== 'boolean') {
|
|
100
100
|
indexHtmlOptions = {
|
|
101
101
|
input: node_path_1.default.join(workspaceRoot, (0, webpack_browser_config_1.getIndexInputFile)(options.index)),
|
|
102
102
|
// The output file will be created within the configured output path
|
|
@@ -108,8 +108,40 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
108
108
|
}),
|
|
109
109
|
};
|
|
110
110
|
}
|
|
111
|
+
let serverEntryPoint;
|
|
112
|
+
if (options.server) {
|
|
113
|
+
serverEntryPoint = node_path_1.default.join(workspaceRoot, options.server);
|
|
114
|
+
}
|
|
115
|
+
else if (options.server === '') {
|
|
116
|
+
throw new Error('`server` option cannot be an empty string.');
|
|
117
|
+
}
|
|
118
|
+
let prerenderOptions;
|
|
119
|
+
if (options.prerender) {
|
|
120
|
+
const { discoverRoutes = true, routes = [], routesFile = undefined, } = options.prerender === true ? {} : options.prerender;
|
|
121
|
+
prerenderOptions = {
|
|
122
|
+
discoverRoutes,
|
|
123
|
+
routes,
|
|
124
|
+
routesFile: routesFile && node_path_1.default.join(workspaceRoot, routesFile),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
let ssrOptions;
|
|
128
|
+
if (options.ssr === true) {
|
|
129
|
+
ssrOptions = {};
|
|
130
|
+
}
|
|
131
|
+
else if (typeof options.ssr === 'object') {
|
|
132
|
+
const { entry } = options.ssr;
|
|
133
|
+
ssrOptions = {
|
|
134
|
+
entry: entry && node_path_1.default.join(workspaceRoot, entry),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
let appShellOptions;
|
|
138
|
+
if (options.appShell) {
|
|
139
|
+
appShellOptions = {
|
|
140
|
+
route: 'shell',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
111
143
|
// Initial options to keep
|
|
112
|
-
const { allowedCommonJsDependencies, aot, baseHref, crossOrigin, externalDependencies, extractLicenses, inlineStyleLanguage = 'css', outExtension, serviceWorker, poll, polyfills, preserveSymlinks, statsJson, stylePreprocessorOptions, subresourceIntegrity, verbose,
|
|
144
|
+
const { allowedCommonJsDependencies, aot, baseHref, crossOrigin, externalDependencies, extractLicenses, inlineStyleLanguage = 'css', outExtension, serviceWorker, poll, polyfills, preserveSymlinks, statsJson, stylePreprocessorOptions, subresourceIntegrity, verbose, watch, progress = true, externalPackages, deleteOutputPath, } = options;
|
|
113
145
|
// Return all the normalized options
|
|
114
146
|
return {
|
|
115
147
|
advancedOptimizations: !!aot,
|
|
@@ -131,7 +163,10 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
131
163
|
preserveSymlinks: preserveSymlinks ?? process.execArgv.includes('--preserve-symlinks'),
|
|
132
164
|
stylePreprocessorOptions,
|
|
133
165
|
subresourceIntegrity,
|
|
134
|
-
|
|
166
|
+
serverEntryPoint,
|
|
167
|
+
prerenderOptions,
|
|
168
|
+
appShellOptions,
|
|
169
|
+
ssrOptions,
|
|
135
170
|
verbose,
|
|
136
171
|
watch,
|
|
137
172
|
workspaceRoot,
|
|
@@ -147,40 +182,40 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
147
182
|
fileReplacements,
|
|
148
183
|
globalStyles,
|
|
149
184
|
globalScripts,
|
|
150
|
-
serviceWorker,
|
|
185
|
+
serviceWorker: typeof serviceWorker === 'string' ? node_path_1.default.join(workspaceRoot, serviceWorker) : undefined,
|
|
151
186
|
indexHtmlOptions,
|
|
152
187
|
tailwindConfiguration,
|
|
153
188
|
};
|
|
154
189
|
}
|
|
155
190
|
exports.normalizeOptions = normalizeOptions;
|
|
156
191
|
/**
|
|
157
|
-
* Normalize entry point options. To maintain compatibility with the legacy browser builder, we need a single `
|
|
158
|
-
* single entry point. However, we also want to support multiple entry points as an internal option.
|
|
159
|
-
* and if `
|
|
160
|
-
* points.
|
|
192
|
+
* Normalize entry point options. To maintain compatibility with the legacy browser builder, we need a single `browser`
|
|
193
|
+
* option which defines a single entry point. However, we also want to support multiple entry points as an internal option.
|
|
194
|
+
* The two options are mutually exclusive and if `browser` is provided it will be used as the sole entry point.
|
|
195
|
+
* If `entryPoints` are provided, they will be used as the set of entry points.
|
|
161
196
|
*
|
|
162
197
|
* @param workspaceRoot Path to the root of the Angular workspace.
|
|
163
|
-
* @param
|
|
198
|
+
* @param browser The `browser` option pointing at the application entry point. While required per the schema file, it may be omitted by
|
|
164
199
|
* programmatic usages of `browser-esbuild`.
|
|
165
200
|
* @param entryPoints Set of entry points to use if provided.
|
|
166
201
|
* @returns An object mapping entry point names to their file paths.
|
|
167
202
|
*/
|
|
168
|
-
function normalizeEntryPoints(workspaceRoot,
|
|
169
|
-
if (
|
|
170
|
-
throw new Error('`
|
|
203
|
+
function normalizeEntryPoints(workspaceRoot, browser, entryPoints = new Set()) {
|
|
204
|
+
if (browser === '') {
|
|
205
|
+
throw new Error('`browser` option cannot be an empty string.');
|
|
171
206
|
}
|
|
172
|
-
// `
|
|
173
|
-
if (
|
|
174
|
-
throw new Error('Only one of `
|
|
207
|
+
// `browser` and `entryPoints` are mutually exclusive.
|
|
208
|
+
if (browser && entryPoints.size > 0) {
|
|
209
|
+
throw new Error('Only one of `browser` or `entryPoints` may be provided.');
|
|
175
210
|
}
|
|
176
|
-
if (!
|
|
211
|
+
if (!browser && entryPoints.size === 0) {
|
|
177
212
|
// Schema should normally reject this case, but programmatic usages of the builder might make this mistake.
|
|
178
|
-
throw new Error('Either `
|
|
213
|
+
throw new Error('Either `browser` or at least one `entryPoints` value must be provided.');
|
|
179
214
|
}
|
|
180
|
-
// Schema types force `
|
|
181
|
-
if (
|
|
182
|
-
// Use `
|
|
183
|
-
return { 'main': node_path_1.default.join(workspaceRoot,
|
|
215
|
+
// Schema types force `browser` to always be provided, but it may be omitted when the builder is invoked programmatically.
|
|
216
|
+
if (browser) {
|
|
217
|
+
// Use `browser` alone.
|
|
218
|
+
return { 'main': node_path_1.default.join(workspaceRoot, browser) };
|
|
184
219
|
}
|
|
185
220
|
else {
|
|
186
221
|
// Use `entryPoints` alone.
|
|
@@ -222,4 +257,4 @@ function normalizeDirectoryPath(path) {
|
|
|
222
257
|
}
|
|
223
258
|
return path;
|
|
224
259
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLGlFQUFvRTtBQUNwRSx1RUFBcUU7QUFDckUsbURBQXFFO0FBQ3JFLCtFQUEyRjtBQUMzRixxQ0FBOEU7QUFpQzlFOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsT0FBdUIsRUFDdkIsV0FBbUIsRUFDbkIsT0FBMEM7SUFFMUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RSxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FDeEMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFHLGVBQWUsQ0FBQyxJQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUM3RSxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FDOUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFHLGVBQWUsQ0FBQyxVQUFpQyxJQUFJLEtBQUssQ0FBQyxDQUN0RixDQUFDO0lBRUYsaUZBQWlGO0lBQ2pGLE1BQU0sWUFBWSxHQUFHLElBQUEsdUNBQXFCLEVBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzNFLFlBQVksQ0FBQyxJQUFJLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU5RCxNQUFNLFdBQVcsR0FBRyxv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QUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtcbiAgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZSxcbiAgbm9ybWFsaXplR2xvYmFsU3R5bGVzLFxufSBmcm9tICcuLi8uLi90b29scy93ZWJwYWNrL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQXNzZXRQYXR0ZXJucywgbm9ybWFsaXplT3B0aW1pemF0aW9uLCBub3JtYWxpemVTb3VyY2VNYXBzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQ2FjaGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9ybWFsaXplLWNhY2hlJztcbmltcG9ydCB7IGdlbmVyYXRlRW50cnlQb2ludHMgfSBmcm9tICcuLi8uLi91dGlscy9wYWNrYWdlLWNodW5rLXNvcnQnO1xuaW1wb3J0IHsgZmluZFRhaWx3aW5kQ29uZmlndXJhdGlvbkZpbGUgfSBmcm9tICcuLi8uLi91dGlscy90YWlsd2luZCc7XG5pbXBvcnQgeyBnZXRJbmRleElucHV0RmlsZSwgZ2V0SW5kZXhPdXRwdXRGaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2VicGFjay1icm93c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgQXBwbGljYXRpb25CdWlsZGVyT3B0aW9ucywgT3V0cHV0SGFzaGluZyB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zID0gQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBub3JtYWxpemVPcHRpb25zPj47XG5cbi8qKiBJbnRlcm5hbCBvcHRpb25zIGhpZGRlbiBmcm9tIGJ1aWxkZXIgc2NoZW1hIGJ1dCBhdmFpbGFibGUgd2hlbiBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50cyB0byB1c2UgZm9yIHRoZSBjb21waWxhdGlvbi4gSW5jb21wYXRpYmxlIHdpdGggYG1haW5gLCB3aGljaCBtdXN0IG5vdCBiZSBwcm92aWRlZC4gTWF5IGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzLlxuICAgKiBJZiBnaXZlbiBhIHJlbGF0aXZlIHBhdGgsIGl0IGlzIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBhbmQgd2lsbCBnZW5lcmF0ZSBhbiBvdXRwdXQgYXQgdGhlIHNhbWUgcmVsYXRpdmUgbG9jYXRpb25cbiAgICogaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuIElmIGdpdmVuIGFuIGFic29sdXRlIHBhdGgsIHRoZSBvdXRwdXQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBiYXNlXG4gICAqIG5hbWUuXG4gICAqL1xuICBlbnRyeVBvaW50cz86IFNldDxzdHJpbmc+O1xuXG4gIC8qKiBGaWxlIGV4dGVuc2lvbiB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzLiAqL1xuICBvdXRFeHRlbnNpb24/OiAnanMnIHwgJ21qcyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFsbCBub2RlIHBhY2thZ2VzIHNob3VsZCBiZSBtYXJrZWQgYXMgZXh0ZXJuYWwuXG4gICAqIEN1cnJlbnRseSB1c2VkIGJ5IHRoZSBkZXYtc2VydmVyIHRvIHN1cHBvcnQgcHJlYnVuZGxpbmcuXG4gICAqL1xuICBleHRlcm5hbFBhY2thZ2VzPzogYm9vbGVhbjtcbn1cblxuLyoqIEZ1bGwgc2V0IG9mIG9wdGlvbnMgZm9yIGBicm93c2VyLWVzYnVpbGRgIGJ1aWxkZXIuICovXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMgPSBPbWl0PFxuICBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zICYgSW50ZXJuYWxPcHRpb25zLFxuICAnYnJvd3Nlcidcbj4gJiB7XG4gIC8vIGBicm93c2VyYCBjYW4gYmUgYHVuZGVmaW5lZGAgaWYgYGVudHJ5UG9pbnRzYCBpcyB1c2VkLlxuICBicm93c2VyPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIHVzZXIgcHJvdmlkZWQgb3B0aW9ucyBieSBjcmVhdGluZyBmdWxsIHBhdGhzIGZvciBhbGwgcGF0aCBiYXNlZCBvcHRpb25zXG4gKiBhbmQgY29udmVydGluZyBtdWx0aS1mb3JtIG9wdGlvbnMgaW50byBhIHNpbmdsZSBmb3JtIHRoYXQgY2FuIGJlIGRpcmVjdGx5IHVzZWRcbiAqIGJ5IHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGZvciBjdXJyZW50IGJ1aWxkZXIgZXhlY3V0aW9uLlxuICogQHBhcmFtIHByb2plY3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IGZvciB0aGUgY3VycmVudCBleGVjdXRpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgb3B0aW9ucyB0byB1c2UgZm9yIHRoZSBidWlsZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIG5vcm1hbGl6ZWQgb3B0aW9ucyByZXF1aXJlZCB0byBwZXJmb3JtIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMoXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBwcm9qZWN0TmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4pIHtcbiAgY29uc3Qgd29ya3NwYWNlUm9vdCA9IGNvbnRleHQud29ya3NwYWNlUm9vdDtcbiAgY29uc3QgcHJvamVjdE1ldGFkYXRhID0gYXdhaXQgY29udGV4dC5nZXRQcm9qZWN0TWV0YWRhdGEocHJvamVjdE5hbWUpO1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgoXG4gICAgcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIChwcm9qZWN0TWV0YWRhdGEucm9vdCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcnKSxcbiAgKTtcbiAgY29uc3QgcHJvamVjdFNvdXJjZVJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnNvdXJjZVJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnc3JjJyksXG4gICk7XG5cbiAgLy8gR2F0aGVyIHBlcnNpc3RlbnQgY2FjaGluZyBvcHRpb24gYW5kIHByb3ZpZGUgYSBwcm9qZWN0IHNwZWNpZmljIGNhY2hlIGxvY2F0aW9uXG4gIGNvbnN0IGNhY2hlT3B0aW9ucyA9IG5vcm1hbGl6ZUNhY2hlT3B0aW9ucyhwcm9qZWN0TWV0YWRhdGEsIHdvcmtzcGFjZVJvb3QpO1xuICBjYWNoZU9wdGlvbnMucGF0aCA9IHBhdGguam9pbihjYWNoZU9wdGlvbnMucGF0aCwgcHJvamVjdE5hbWUpO1xuXG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gbm9ybWFsaXplRW50cnlQb2ludHMod29ya3NwYWNlUm9vdCwgb3B0aW9ucy5icm93c2VyLCBvcHRpb25zLmVudHJ5UG9pbnRzKTtcbiAgY29uc3QgdHNjb25maWcgPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy50c0NvbmZpZyk7XG4gIGNvbnN0IG91dHB1dFBhdGggPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLm91dHB1dFBhdGgpKTtcbiAgY29uc3Qgb3B0aW1pemF0aW9uT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGltaXphdGlvbihvcHRpb25zLm9wdGltaXphdGlvbik7XG4gIGNvbnN0IHNvdXJjZW1hcE9wdGlvbnMgPSBub3JtYWxpemVTb3VyY2VNYXBzKG9wdGlvbnMuc291cmNlTWFwID8/IGZhbHNlKTtcbiAgY29uc3QgYXNzZXRzID0gb3B0aW9ucy5hc3NldHM/Lmxlbmd0aFxuICAgID8gbm9ybWFsaXplQXNzZXRQYXR0ZXJucyhvcHRpb25zLmFzc2V0cywgd29ya3NwYWNlUm9vdCwgcHJvamVjdFJvb3QsIHByb2plY3RTb3VyY2VSb290KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG91dHB1dE5hbWVzID0ge1xuICAgIGJ1bmRsZXM6XG4gICAgICBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5CdW5kbGVzXG4gICAgICAgID8gJ1tuYW1lXS5baGFzaF0nXG4gICAgICAgIDogJ1tuYW1lXScsXG4gICAgbWVkaWE6XG4gICAgICBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5NZWRpYVxuICAgICAgICA/ICdbbmFtZV0uW2hhc2hdJ1xuICAgICAgICA6ICdbbmFtZV0nLFxuICB9O1xuICBpZiAob3B0aW9ucy5yZXNvdXJjZXNPdXRwdXRQYXRoKSB7XG4gICAgb3V0cHV0TmFtZXMubWVkaWEgPSBwYXRoLmpvaW4ob3B0aW9ucy5yZXNvdXJjZXNPdXRwdXRQYXRoLCBvdXRwdXROYW1lcy5tZWRpYSk7XG4gIH1cblxuICBsZXQgZmlsZVJlcGxhY2VtZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgIGZvciAoY29uc3QgcmVwbGFjZW1lbnQgb2Ygb3B0aW9ucy5maWxlUmVwbGFjZW1lbnRzKSB7XG4gICAgICBmaWxlUmVwbGFjZW1lbnRzID8/PSB7fTtcbiAgICAgIGZpbGVSZXBsYWNlbWVudHNbcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIHJlcGxhY2VtZW50LnJlcGxhY2UpXSA9IHBhdGguam9pbihcbiAgICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgICAgcmVwbGFjZW1lbnQud2l0aCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzOiB7IG5hbWU6IHN0cmluZzsgZmlsZXM6IHN0cmluZ1tdOyBpbml0aWFsOiBib29sZWFuIH1bXSA9IFtdO1xuICBpZiAob3B0aW9ucy5zdHlsZXM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHsgZW50cnlQb2ludHM6IHN0eWxlc2hlZXRFbnRyeXBvaW50cywgbm9JbmplY3ROYW1lcyB9ID0gbm9ybWFsaXplR2xvYmFsU3R5bGVzKFxuICAgICAgb3B0aW9ucy5zdHlsZXMgfHwgW10sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBmaWxlc10gb2YgT2JqZWN0LmVudHJpZXMoc3R5bGVzaGVldEVudHJ5cG9pbnRzKSkge1xuICAgICAgZ2xvYmFsU3R5bGVzLnB1c2goeyBuYW1lLCBmaWxlcywgaW5pdGlhbDogIW5vSW5qZWN0TmFtZXMuaW5jbHVkZXMobmFtZSkgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2xvYmFsU2NyaXB0czogeyBuYW1lOiBzdHJpbmc7IGZpbGVzOiBzdHJpbmdbXTsgaW5pdGlhbDogYm9vbGVhbiB9W10gPSBbXTtcbiAgaWYgKG9wdGlvbnMuc2NyaXB0cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCB7IGJ1bmRsZU5hbWUsIHBhdGhzLCBpbmplY3QgfSBvZiBnbG9iYWxTY3JpcHRzQnlCdW5kbGVOYW1lKG9wdGlvbnMuc2NyaXB0cykpIHtcbiAgICAgIGdsb2JhbFNjcmlwdHMucHVzaCh7IG5hbWU6IGJ1bmRsZU5hbWUsIGZpbGVzOiBwYXRocywgaW5pdGlhbDogaW5qZWN0IH0pO1xuICAgIH1cbiAgfVxuXG4gIGxldCB0YWlsd2luZENvbmZpZ3VyYXRpb246IHsgZmlsZTogc3RyaW5nOyBwYWNrYWdlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgdGFpbHdpbmRDb25maWd1cmF0aW9uUGF0aCA9IGF3YWl0IGZpbmRUYWlsd2luZENvbmZpZ3VyYXRpb25GaWxlKHdvcmtzcGFjZVJvb3QsIHByb2plY3RSb290KTtcbiAgaWYgKHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgpIHtcbiAgICAvLyBDcmVhdGUgYSBub2RlIHJlc29sdmVyIGF0IHRoZSBwcm9qZWN0IHJvb3QgYXMgYSBkaXJlY3RvcnlcbiAgICBjb25zdCByZXNvbHZlciA9IGNyZWF0ZVJlcXVpcmUocHJvamVjdFJvb3QgKyAnLycpO1xuICAgIHRyeSB7XG4gICAgICB0YWlsd2luZENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGZpbGU6IHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgsXG4gICAgICAgIHBhY2thZ2U6IHJlc29sdmVyLnJlc29sdmUoJ3RhaWx3aW5kY3NzJyksXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc3QgcmVsYXRpdmVUYWlsd2luZENvbmZpZ1BhdGggPSBwYXRoLnJlbGF0aXZlKHdvcmtzcGFjZVJvb3QsIHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgpO1xuICAgICAgY29udGV4dC5sb2dnZXIud2FybihcbiAgICAgICAgYFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uIGZpbGUgZm91bmQgKCR7cmVsYXRpdmVUYWlsd2luZENvbmZpZ1BhdGh9KWAgK1xuICAgICAgICAgIGAgYnV0IHRoZSAndGFpbHdpbmRjc3MnIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZC5gICtcbiAgICAgICAgICBgIFRvIGVuYWJsZSBUYWlsd2luZCBDU1MsIHBsZWFzZSBpbnN0YWxsIHRoZSAndGFpbHdpbmRjc3MnIHBhY2thZ2UuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IGluZGV4SHRtbE9wdGlvbnM7XG4gIGlmIChvcHRpb25zLmluZGV4KSB7XG4gICAgaW5kZXhIdG1sT3B0aW9ucyA9IHtcbiAgICAgIGlucHV0OiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZ2V0SW5kZXhJbnB1dEZpbGUob3B0aW9ucy5pbmRleCkpLFxuICAgICAgLy8gVGhlIG91dHB1dCBmaWxlIHdpbGwgYmUgY3JlYXRlZCB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgb3V0cHV0IHBhdGhcbiAgICAgIG91dHB1dDogZ2V0SW5kZXhPdXRwdXRGaWxlKG9wdGlvbnMuaW5kZXgpLFxuICAgICAgLy8gVE9ETzogVXNlIGV4aXN0aW5nIGluZm9ybWF0aW9uIGZyb20gYWJvdmUgdG8gY3JlYXRlIHRoZSBpbnNlcnRpb24gb3JkZXJcbiAgICAgIGluc2VydGlvbk9yZGVyOiBnZW5lcmF0ZUVudHJ5UG9pbnRzKHtcbiAgICAgICAgc2NyaXB0czogb3B0aW9ucy5zY3JpcHRzID8/IFtdLFxuICAgICAgICBzdHlsZXM6IG9wdGlvbnMuc3R5bGVzID8/IFtdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIEluaXRpYWwgb3B0aW9ucyB0byBrZWVwXG4gIGNvbnN0IHtcbiAgICBhbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMsXG4gICAgYW90LFxuICAgIGJhc2VIcmVmLFxuICAgIGNyb3NzT3JpZ2luLFxuICAgIGV4dGVybmFsRGVwZW5kZW5jaWVzLFxuICAgIGV4dHJhY3RMaWNlbnNlcyxcbiAgICBpbmxpbmVTdHlsZUxhbmd1YWdlID0gJ2NzcycsXG4gICAgb3V0RXh0ZW5zaW9uLFxuICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgcG9sbCxcbiAgICBwb2x5ZmlsbHMsXG4gICAgcHJlc2VydmVTeW1saW5rcyxcbiAgICBzdGF0c0pzb24sXG4gICAgc3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zLFxuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5LFxuICAgIHZlcmJvc2UsXG4gICAgc2VydmVyLFxuICAgIHdhdGNoLFxuICAgIHByb2dyZXNzID0gdHJ1ZSxcbiAgICBleHRlcm5hbFBhY2thZ2VzLFxuICAgIGRlbGV0ZU91dHB1dFBhdGgsXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIFJldHVybiBhbGwgdGhlIG5vcm1hbGl6ZWQgb3B0aW9uc1xuICByZXR1cm4ge1xuICAgIGFkdmFuY2VkT3B0aW1pemF0aW9uczogISFhb3QsXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzLFxuICAgIGJhc2VIcmVmLFxuICAgIGNhY2hlT3B0aW9ucyxcbiAgICBjcm9zc09yaWdpbixcbiAgICBkZWxldGVPdXRwdXRQYXRoLFxuICAgIGV4dGVybmFsRGVwZW5kZW5jaWVzLFxuICAgIGV4dHJhY3RMaWNlbnNlcyxcbiAgICBpbmxpbmVTdHlsZUxhbmd1YWdlLFxuICAgIGppdDogIWFvdCxcbiAgICBzdGF0czogISFzdGF0c0pzb24sXG4gICAgcG9seWZpbGxzOiBwb2x5ZmlsbHMgPT09IHVuZGVmaW5lZCB8fCBBcnJheS5pc0FycmF5KHBvbHlmaWxscykgPyBwb2x5ZmlsbHMgOiBbcG9seWZpbGxzXSxcbiAgICBwb2xsLFxuICAgIHByb2dyZXNzLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgLy8gSWYgbm90IGV4cGxpY2l0bHkgc2V0LCBkZWZhdWx0IHRvIHRoZSBOb2RlLmpzIHByb2Nlc3MgYXJndW1lbnRcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzOiBwcmVzZXJ2ZVN5bWxpbmtzID8/IHByb2Nlc3MuZXhlY0FyZ3YuaW5jbHVkZXMoJy0tcHJlc2VydmUtc3ltbGlua3MnKSxcbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnMsXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHksXG4gICAgc2VydmVyOiAhIXNlcnZlciAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgc2VydmVyKSxcbiAgICB2ZXJib3NlLFxuICAgIHdhdGNoLFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgZW50cnlQb2ludHMsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBvdXRwdXRQYXRoLFxuICAgIG91dEV4dGVuc2lvbixcbiAgICBzb3VyY2VtYXBPcHRpb25zLFxuICAgIHRzY29uZmlnLFxuICAgIHByb2plY3RSb290LFxuICAgIGFzc2V0cyxcbiAgICBvdXRwdXROYW1lcyxcbiAgICBmaWxlUmVwbGFjZW1lbnRzLFxuICAgIGdsb2JhbFN0eWxlcyxcbiAgICBnbG9iYWxTY3JpcHRzLFxuICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgaW5kZXhIdG1sT3B0aW9ucyxcbiAgICB0YWlsd2luZENvbmZpZ3VyYXRpb24sXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGVudHJ5IHBvaW50IG9wdGlvbnMuIFRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbGVnYWN5IGJyb3dzZXIgYnVpbGRlciwgd2UgbmVlZCBhIHNpbmdsZSBgbWFpbmAgb3B0aW9uIHdoaWNoIGRlZmluZXMgYVxuICogc2luZ2xlIGVudHJ5IHBvaW50LiBIb3dldmVyLCB3ZSBhbHNvIHdhbnQgdG8gc3VwcG9ydCBtdWx0aXBsZSBlbnRyeSBwb2ludHMgYXMgYW4gaW50ZXJuYWwgb3B0aW9uLiBUaGUgdHdvIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVxuICogYW5kIGlmIGBtYWluYCBpcyBwcm92aWRlZCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHNvbGUgZW50cnkgcG9pbnQuIElmIGBlbnRyeVBvaW50c2AgYXJlIHByb3ZpZGVkLCB0aGV5IHdpbGwgYmUgdXNlZCBhcyB0aGUgc2V0IG9mIGVudHJ5XG4gKiBwb2ludHMuXG4gKlxuICogQHBhcmFtIHdvcmtzcGFjZVJvb3QgUGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgQW5ndWxhciB3b3Jrc3BhY2UuXG4gKiBAcGFyYW0gbWFpbiBUaGUgYG1haW5gIG9wdGlvbiBwb2ludGluZyBhdCB0aGUgYXBwbGljYXRpb24gZW50cnkgcG9pbnQuIFdoaWxlIHJlcXVpcmVkIHBlciB0aGUgc2NoZW1hIGZpbGUsIGl0IG1heSBiZSBvbWl0dGVkIGJ5XG4gKiAgICAgcHJvZ3JhbW1hdGljIHVzYWdlcyBvZiBgYnJvd3Nlci1lc2J1aWxkYC5cbiAqIEBwYXJhbSBlbnRyeVBvaW50cyBTZXQgb2YgZW50cnkgcG9pbnRzIHRvIHVzZSBpZiBwcm92aWRlZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBtYXBwaW5nIGVudHJ5IHBvaW50IG5hbWVzIHRvIHRoZWlyIGZpbGUgcGF0aHMuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUVudHJ5UG9pbnRzKFxuICB3b3Jrc3BhY2VSb290OiBzdHJpbmcsXG4gIG1haW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW50cnlQb2ludHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGlmIChtYWluID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcignYG1haW5gIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgLy8gYG1haW5gIGFuZCBgZW50cnlQb2ludHNgIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gIGlmIChtYWluICYmIGVudHJ5UG9pbnRzLnNpemUgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IG9uZSBvZiBgbWFpbmAgb3IgYGVudHJ5UG9pbnRzYCBtYXkgYmUgcHJvdmlkZWQuJyk7XG4gIH1cbiAgaWYgKCFtYWluICYmIGVudHJ5UG9pbnRzLnNpemUgPT09IDApIHtcbiAgICAvLyBTY2hlbWEgc2hvdWxkIG5vcm1hbGx5IHJlamVjdCB0aGlzIGNhc2UsIGJ1dCBwcm9ncmFtbWF0aWMgdXNhZ2VzIG9mIHRoZSBidWlsZGVyIG1pZ2h0IG1ha2UgdGhpcyBtaXN0YWtlLlxuICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGBtYWluYCBvciBhdCBsZWFzdCBvbmUgYGVudHJ5UG9pbnRzYCB2YWx1ZSBtdXN0IGJlIHByb3ZpZGVkLicpO1xuICB9XG5cbiAgLy8gU2NoZW1hIHR5cGVzIGZvcmNlIGBtYWluYCB0byBhbHdheXMgYmUgcHJvdmlkZWQsIGJ1dCBpdCBtYXkgYmUgb21pdHRlZCB3aGVuIHRoZSBidWlsZGVyIGlzIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgaWYgKG1haW4pIHtcbiAgICAvLyBVc2UgYG1haW5gIGFsb25lLlxuICAgIHJldHVybiB7ICdtYWluJzogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG1haW4pIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGBlbnRyeVBvaW50c2AgYWxvbmUuXG4gICAgY29uc3QgZW50cnlQb2ludFBhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBlbnRyeVBvaW50IG9mIGVudHJ5UG9pbnRzKSB7XG4gICAgICBjb25zdCBwYXJzZWRFbnRyeVBvaW50ID0gcGF0aC5wYXJzZShlbnRyeVBvaW50KTtcblxuICAgICAgLy8gVXNlIHRoZSBpbnB1dCBmaWxlIHBhdGggd2l0aG91dCBhbiBleHRlbnNpb24gYXMgdGhlIFwibmFtZVwiIG9mIHRoZSBlbnRyeSBwb2ludCBkaWN0YXRpbmcgaXRzIG91dHB1dCBsb2NhdGlvbi5cbiAgICAgIC8vIFJlbGF0aXZlIGVudHJ5IHBvaW50cyBhcmUgZ2VuZXJhdGVkIGF0IHRoZSBzYW1lIHJlbGF0aXZlIHBhdGggaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuXG4gICAgICAvLyBBYnNvbHV0ZSBlbnRyeSBwb2ludHMgYXJlIGFsd2F5cyBnZW5lcmF0ZWQgd2l0aCB0aGUgc2FtZSBmaWxlIG5hbWUgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3RvcnkuIFRoaXMgaW5jbHVkZXMgYWJzb2x1dGVcbiAgICAgIC8vIHBhdGhzIHBvaW50aW5nIGF0IGZpbGVzIGFjdHVhbGx5IHdpdGhpbiB0aGUgd29ya3NwYWNlIHJvb3QuXG4gICAgICBjb25zdCBlbnRyeVBvaW50TmFtZSA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IHBhcnNlZEVudHJ5UG9pbnQubmFtZVxuICAgICAgICA6IHBhdGguam9pbihwYXJzZWRFbnRyeVBvaW50LmRpciwgcGFyc2VkRW50cnlQb2ludC5uYW1lKTtcblxuICAgICAgLy8gR2V0IHRoZSBmdWxsIGZpbGUgcGF0aCB0byB0aGUgZW50cnkgcG9pbnQgaW5wdXQuXG4gICAgICBjb25zdCBlbnRyeVBvaW50UGF0aCA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IGVudHJ5UG9pbnRcbiAgICAgICAgOiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZW50cnlQb2ludCk7XG5cbiAgICAgIC8vIENoZWNrIGZvciBjb25mbGljdHMgd2l0aCBwcmV2aW91cyBlbnRyeSBwb2ludHMuXG4gICAgICBjb25zdCBleGlzdGluZ0VudHJ5UG9pbnRQYXRoID0gZW50cnlQb2ludFBhdGhzW2VudHJ5UG9pbnROYW1lXTtcbiAgICAgIGlmIChleGlzdGluZ0VudHJ5UG9pbnRQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHtleGlzdGluZ0VudHJ5UG9pbnRQYXRofVxcYCBhbmQgXFxgJHtlbnRyeVBvaW50UGF0aH1cXGAgYm90aCBvdXRwdXQgdG8gdGhlIHNhbWUgbG9jYXRpb24gXFxgJHtlbnRyeVBvaW50TmFtZX1cXGAuYCArXG4gICAgICAgICAgICAnIFJlbmFtZSBvciBtb3ZlIG9uZSBvZiB0aGUgZmlsZXMgdG8gZml4IHRoZSBjb25mbGljdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBlbnRyeVBvaW50UGF0aHNbZW50cnlQb2ludE5hbWVdID0gZW50cnlQb2ludFBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5UG9pbnRQYXRocztcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGRpcmVjdG9yeSBwYXRoIHN0cmluZy5cbiAqIEN1cnJlbnRseSBvbmx5IHJlbW92ZXMgYSB0cmFpbGluZyBzbGFzaCBpZiBwcmVzZW50LlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHN0cmluZy5cbiAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCBwYXRoIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICBpZiAobGFzdCA9PT0gJy8nIHx8IGxhc3QgPT09ICdcXFxcJykge1xuICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoO1xufVxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLGlFQUFvRTtBQUNwRSx1RUFBcUU7QUFDckUsbURBQXFFO0FBQ3JFLCtFQUEyRjtBQUMzRixxQ0FBOEU7QUFpQzlFOzs7Ozs7Ozs7R0FTRztBQUNILGtEQUFrRDtBQUMzQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLE9BQXVCLEVBQ3ZCLFdBQW1CLEVBQ25CLE9BQTBDO0lBRTFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEUsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQ3hDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRyxlQUFlLENBQUMsSUFBMkIsSUFBSSxFQUFFLENBQUMsQ0FDN0UsQ0FBQztJQUNGLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQzlDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRyxlQUFlLENBQUMsVUFBaUMsSUFBSSxLQUFLLENBQUMsQ0FDdEYsQ0FBQztJQUVGLGlGQUFpRjtJQUNqRixNQUFNLFlBQVksR0FBRyxJQUFBLHVDQUFxQixFQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMzRSxZQUFZLENBQUMsSUFBSSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFOUQsTUFB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QUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtcbiAgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZSxcbiAgbm9ybWFsaXplR2xvYmFsU3R5bGVzLFxufSBmcm9tICcuLi8uLi90b29scy93ZWJwYWNrL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQXNzZXRQYXR0ZXJucywgbm9ybWFsaXplT3B0aW1pemF0aW9uLCBub3JtYWxpemVTb3VyY2VNYXBzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQ2FjaGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9ybWFsaXplLWNhY2hlJztcbmltcG9ydCB7IGdlbmVyYXRlRW50cnlQb2ludHMgfSBmcm9tICcuLi8uLi91dGlscy9wYWNrYWdlLWNodW5rLXNvcnQnO1xuaW1wb3J0IHsgZmluZFRhaWx3aW5kQ29uZmlndXJhdGlvbkZpbGUgfSBmcm9tICcuLi8uLi91dGlscy90YWlsd2luZCc7XG5pbXBvcnQgeyBnZXRJbmRleElucHV0RmlsZSwgZ2V0SW5kZXhPdXRwdXRGaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2VicGFjay1icm93c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgQXBwbGljYXRpb25CdWlsZGVyT3B0aW9ucywgT3V0cHV0SGFzaGluZyB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zID0gQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBub3JtYWxpemVPcHRpb25zPj47XG5cbi8qKiBJbnRlcm5hbCBvcHRpb25zIGhpZGRlbiBmcm9tIGJ1aWxkZXIgc2NoZW1hIGJ1dCBhdmFpbGFibGUgd2hlbiBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50cyB0byB1c2UgZm9yIHRoZSBjb21waWxhdGlvbi4gSW5jb21wYXRpYmxlIHdpdGggYGJyb3dzZXJgLCB3aGljaCBtdXN0IG5vdCBiZSBwcm92aWRlZC4gTWF5IGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzLlxuICAgKiBJZiBnaXZlbiBhIHJlbGF0aXZlIHBhdGgsIGl0IGlzIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBhbmQgd2lsbCBnZW5lcmF0ZSBhbiBvdXRwdXQgYXQgdGhlIHNhbWUgcmVsYXRpdmUgbG9jYXRpb25cbiAgICogaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuIElmIGdpdmVuIGFuIGFic29sdXRlIHBhdGgsIHRoZSBvdXRwdXQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBiYXNlXG4gICAqIG5hbWUuXG4gICAqL1xuICBlbnRyeVBvaW50cz86IFNldDxzdHJpbmc+O1xuXG4gIC8qKiBGaWxlIGV4dGVuc2lvbiB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzLiAqL1xuICBvdXRFeHRlbnNpb24/OiAnanMnIHwgJ21qcyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFsbCBub2RlIHBhY2thZ2VzIHNob3VsZCBiZSBtYXJrZWQgYXMgZXh0ZXJuYWwuXG4gICAqIEN1cnJlbnRseSB1c2VkIGJ5IHRoZSBkZXYtc2VydmVyIHRvIHN1cHBvcnQgcHJlYnVuZGxpbmcuXG4gICAqL1xuICBleHRlcm5hbFBhY2thZ2VzPzogYm9vbGVhbjtcbn1cblxuLyoqIEZ1bGwgc2V0IG9mIG9wdGlvbnMgZm9yIGBhcHBsaWNhdGlvbmAgYnVpbGRlci4gKi9cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucyA9IE9taXQ8XG4gIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMgJiBJbnRlcm5hbE9wdGlvbnMsXG4gICdicm93c2VyJ1xuPiAmIHtcbiAgLy8gYGJyb3dzZXJgIGNhbiBiZSBgdW5kZWZpbmVkYCBpZiBgZW50cnlQb2ludHNgIGlzIHVzZWQuXG4gIGJyb3dzZXI/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIE5vcm1hbGl6ZSB0aGUgdXNlciBwcm92aWRlZCBvcHRpb25zIGJ5IGNyZWF0aW5nIGZ1bGwgcGF0aHMgZm9yIGFsbCBwYXRoIGJhc2VkIG9wdGlvbnNcbiAqIGFuZCBjb252ZXJ0aW5nIG11bHRpLWZvcm0gb3B0aW9ucyBpbnRvIGEgc2luZ2xlIGZvcm0gdGhhdCBjYW4gYmUgZGlyZWN0bHkgdXNlZFxuICogYnkgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgZm9yIGN1cnJlbnQgYnVpbGRlciBleGVjdXRpb24uXG4gKiBAcGFyYW0gcHJvamVjdE5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb2plY3QgZm9yIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBvcHRpb25zIHRvIHVzZSBmb3IgdGhlIGJ1aWxkLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgbm9ybWFsaXplZCBvcHRpb25zIHJlcXVpcmVkIHRvIHBlcmZvcm0gdGhlIGJ1aWxkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmVzLXBlci1mdW5jdGlvblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMoXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBwcm9qZWN0TmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4pIHtcbiAgY29uc3Qgd29ya3NwYWNlUm9vdCA9IGNvbnRleHQud29ya3NwYWNlUm9vdDtcbiAgY29uc3QgcHJvamVjdE1ldGFkYXRhID0gYXdhaXQgY29udGV4dC5nZXRQcm9qZWN0TWV0YWRhdGEocHJvamVjdE5hbWUpO1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgoXG4gICAgcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIChwcm9qZWN0TWV0YWRhdGEucm9vdCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcnKSxcbiAgKTtcbiAgY29uc3QgcHJvamVjdFNvdXJjZVJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnNvdXJjZVJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnc3JjJyksXG4gICk7XG5cbiAgLy8gR2F0aGVyIHBlcnNpc3RlbnQgY2FjaGluZyBvcHRpb24gYW5kIHByb3ZpZGUgYSBwcm9qZWN0IHNwZWNpZmljIGNhY2hlIGxvY2F0aW9uXG4gIGNvbnN0IGNhY2hlT3B0aW9ucyA9IG5vcm1hbGl6ZUNhY2hlT3B0aW9ucyhwcm9qZWN0TWV0YWRhdGEsIHdvcmtzcGFjZVJvb3QpO1xuICBjYWNoZU9wdGlvbnMucGF0aCA9IHBhdGguam9pbihjYWNoZU9wdGlvbnMucGF0aCwgcHJvamVjdE5hbWUpO1xuXG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gbm9ybWFsaXplRW50cnlQb2ludHMod29ya3NwYWNlUm9vdCwgb3B0aW9ucy5icm93c2VyLCBvcHRpb25zLmVudHJ5UG9pbnRzKTtcbiAgY29uc3QgdHNjb25maWcgPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy50c0NvbmZpZyk7XG4gIGNvbnN0IG91dHB1dFBhdGggPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLm91dHB1dFBhdGgpKTtcbiAgY29uc3Qgb3B0aW1pemF0aW9uT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGltaXphdGlvbihvcHRpb25zLm9wdGltaXphdGlvbik7XG4gIGNvbnN0IHNvdXJjZW1hcE9wdGlvbnMgPSBub3JtYWxpemVTb3VyY2VNYXBzKG9wdGlvbnMuc291cmNlTWFwID8/IGZhbHNlKTtcbiAgY29uc3QgYXNzZXRzID0gb3B0aW9ucy5hc3NldHM/Lmxlbmd0aFxuICAgID8gbm9ybWFsaXplQXNzZXRQYXR0ZXJucyhvcHRpb25zLmFzc2V0cywgd29ya3NwYWNlUm9vdCwgcHJvamVjdFJvb3QsIHByb2plY3RTb3VyY2VSb290KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG91dHB1dE5hbWVzID0ge1xuICAgIGJ1bmRsZXM6XG4gICAgICBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5CdW5kbGVzXG4gICAgICAgID8gJ1tuYW1lXS5baGFzaF0nXG4gICAgICAgIDogJ1tuYW1lXScsXG4gICAgbWVkaWE6XG4gICAgICAnbWVkaWEvJyArXG4gICAgICAob3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLkFsbCB8fCBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuTWVkaWFcbiAgICAgICAgPyAnW25hbWVdLltoYXNoXSdcbiAgICAgICAgOiAnW25hbWVdJyksXG4gIH07XG5cbiAgbGV0IGZpbGVSZXBsYWNlbWVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIGlmIChvcHRpb25zLmZpbGVSZXBsYWNlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IHJlcGxhY2VtZW50IG9mIG9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgICAgZmlsZVJlcGxhY2VtZW50cyA/Pz0ge307XG4gICAgICBmaWxlUmVwbGFjZW1lbnRzW3BhdGguam9pbih3b3Jrc3BhY2VSb290LCByZXBsYWNlbWVudC5yZXBsYWNlKV0gPSBwYXRoLmpvaW4oXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIHJlcGxhY2VtZW50LndpdGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFN0eWxlczogeyBuYW1lOiBzdHJpbmc7IGZpbGVzOiBzdHJpbmdbXTsgaW5pdGlhbDogYm9vbGVhbiB9W10gPSBbXTtcbiAgaWYgKG9wdGlvbnMuc3R5bGVzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB7IGVudHJ5UG9pbnRzOiBzdHlsZXNoZWV0RW50cnlwb2ludHMsIG5vSW5qZWN0TmFtZXMgfSA9IG5vcm1hbGl6ZUdsb2JhbFN0eWxlcyhcbiAgICAgIG9wdGlvbnMuc3R5bGVzIHx8IFtdLFxuICAgICk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgZmlsZXNdIG9mIE9iamVjdC5lbnRyaWVzKHN0eWxlc2hlZXRFbnRyeXBvaW50cykpIHtcbiAgICAgIGdsb2JhbFN0eWxlcy5wdXNoKHsgbmFtZSwgZmlsZXMsIGluaXRpYWw6ICFub0luamVjdE5hbWVzLmluY2x1ZGVzKG5hbWUpIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFNjcmlwdHM6IHsgbmFtZTogc3RyaW5nOyBmaWxlczogc3RyaW5nW107IGluaXRpYWw6IGJvb2xlYW4gfVtdID0gW107XG4gIGlmIChvcHRpb25zLnNjcmlwdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3QgeyBidW5kbGVOYW1lLCBwYXRocywgaW5qZWN0IH0gb2YgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZShvcHRpb25zLnNjcmlwdHMpKSB7XG4gICAgICBnbG9iYWxTY3JpcHRzLnB1c2goeyBuYW1lOiBidW5kbGVOYW1lLCBmaWxlczogcGF0aHMsIGluaXRpYWw6IGluamVjdCB9KTtcbiAgICB9XG4gIH1cblxuICBsZXQgdGFpbHdpbmRDb25maWd1cmF0aW9uOiB7IGZpbGU6IHN0cmluZzsgcGFja2FnZTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGggPSBhd2FpdCBmaW5kVGFpbHdpbmRDb25maWd1cmF0aW9uRmlsZSh3b3Jrc3BhY2VSb290LCBwcm9qZWN0Um9vdCk7XG4gIGlmICh0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKSB7XG4gICAgLy8gQ3JlYXRlIGEgbm9kZSByZXNvbHZlciBhdCB0aGUgcHJvamVjdCByb290IGFzIGEgZGlyZWN0b3J5XG4gICAgY29uc3QgcmVzb2x2ZXIgPSBjcmVhdGVSZXF1aXJlKHByb2plY3RSb290ICsgJy8nKTtcbiAgICB0cnkge1xuICAgICAgdGFpbHdpbmRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBmaWxlOiB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoLFxuICAgICAgICBwYWNrYWdlOiByZXNvbHZlci5yZXNvbHZlKCd0YWlsd2luZGNzcycpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnN0IHJlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRoID0gcGF0aC5yZWxhdGl2ZSh3b3Jrc3BhY2VSb290LCB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKTtcbiAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAgIGBUYWlsd2luZCBDU1MgY29uZmlndXJhdGlvbiBmaWxlIGZvdW5kICgke3JlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRofSlgICtcbiAgICAgICAgICBgIGJ1dCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuYCArXG4gICAgICAgICAgYCBUbyBlbmFibGUgVGFpbHdpbmQgQ1NTLCBwbGVhc2UgaW5zdGFsbCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpbmRleEh0bWxPcHRpb25zO1xuICAvLyBpbmRleCBjYW4gbmV2ZXIgaGF2ZSBhIHZhbHVlIG9mIGB0cnVlYCBidXQgaW4gdGhlIHNjaGVtYSBpdCdzIG9mIHR5cGUgYGJvb2xlYW5gLlxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5kZXggIT09ICdib29sZWFuJykge1xuICAgIGluZGV4SHRtbE9wdGlvbnMgPSB7XG4gICAgICBpbnB1dDogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGdldEluZGV4SW5wdXRGaWxlKG9wdGlvbnMuaW5kZXgpKSxcbiAgICAgIC8vIFRoZSBvdXRwdXQgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSBjb25maWd1cmVkIG91dHB1dCBwYXRoXG4gICAgICBvdXRwdXQ6IGdldEluZGV4T3V0cHV0RmlsZShvcHRpb25zLmluZGV4KSxcbiAgICAgIC8vIFRPRE86IFVzZSBleGlzdGluZyBpbmZvcm1hdGlvbiBmcm9tIGFib3ZlIHRvIGNyZWF0ZSB0aGUgaW5zZXJ0aW9uIG9yZGVyXG4gICAgICBpbnNlcnRpb25PcmRlcjogZ2VuZXJhdGVFbnRyeVBvaW50cyh7XG4gICAgICAgIHNjcmlwdHM6IG9wdGlvbnMuc2NyaXB0cyA/PyBbXSxcbiAgICAgICAgc3R5bGVzOiBvcHRpb25zLnN0eWxlcyA/PyBbXSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBsZXQgc2VydmVyRW50cnlQb2ludDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5zZXJ2ZXIpIHtcbiAgICBzZXJ2ZXJFbnRyeVBvaW50ID0gcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMuc2VydmVyKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnNlcnZlciA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2BzZXJ2ZXJgIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgbGV0IHByZXJlbmRlck9wdGlvbnM7XG4gIGlmIChvcHRpb25zLnByZXJlbmRlcikge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpc2NvdmVyUm91dGVzID0gdHJ1ZSxcbiAgICAgIHJvdXRlcyA9IFtdLFxuICAgICAgcm91dGVzRmlsZSA9IHVuZGVmaW5lZCxcbiAgICB9ID0gb3B0aW9ucy5wcmVyZW5kZXIgPT09IHRydWUgPyB7fSA6IG9wdGlvbnMucHJlcmVuZGVyO1xuXG4gICAgcHJlcmVuZGVyT3B0aW9ucyA9IHtcbiAgICAgIGRpc2NvdmVyUm91dGVzLFxuICAgICAgcm91dGVzLFxuICAgICAgcm91dGVzRmlsZTogcm91dGVzRmlsZSAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgcm91dGVzRmlsZSksXG4gICAgfTtcbiAgfVxuXG4gIGxldCBzc3JPcHRpb25zO1xuICBpZiAob3B0aW9ucy5zc3IgPT09IHRydWUpIHtcbiAgICBzc3JPcHRpb25zID0ge307XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuc3NyID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHsgZW50cnkgfSA9IG9wdGlvbnMuc3NyO1xuXG4gICAgc3NyT3B0aW9ucyA9IHtcbiAgICAgIGVudHJ5OiBlbnRyeSAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZW50cnkpLFxuICAgIH07XG4gIH1cblxuICBsZXQgYXBwU2hlbGxPcHRpb25zO1xuICBpZiAob3B0aW9ucy5hcHBTaGVsbCkge1xuICAgIGFwcFNoZWxsT3B0aW9ucyA9IHtcbiAgICAgIHJvdXRlOiAnc2hlbGwnLFxuICAgIH07XG4gIH1cblxuICAvLyBJbml0aWFsIG9wdGlvbnMgdG8ga2VlcFxuICBjb25zdCB7XG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzLFxuICAgIGFvdCxcbiAgICBiYXNlSHJlZixcbiAgICBjcm9zc09yaWdpbixcbiAgICBleHRlcm5hbERlcGVuZGVuY2llcyxcbiAgICBleHRyYWN0TGljZW5zZXMsXG4gICAgaW5saW5lU3R5bGVMYW5ndWFnZSA9ICdjc3MnLFxuICAgIG91dEV4dGVuc2lvbixcbiAgICBzZXJ2aWNlV29ya2VyLFxuICAgIHBvbGwsXG4gICAgcG9seWZpbGxzLFxuICAgIHByZXNlcnZlU3ltbGlua3MsXG4gICAgc3RhdHNKc29uLFxuICAgIHN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucyxcbiAgICBzdWJyZXNvdXJjZUludGVncml0eSxcbiAgICB2ZXJib3NlLFxuICAgIHdhdGNoLFxuICAgIHByb2dyZXNzID0gdHJ1ZSxcbiAgICBleHRlcm5hbFBhY2thZ2VzLFxuICAgIGRlbGV0ZU91dHB1dFBhdGgsXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIFJldHVybiBhbGwgdGhlIG5vcm1hbGl6ZWQgb3B0aW9uc1xuICByZXR1cm4ge1xuICAgIGFkdmFuY2VkT3B0aW1pemF0aW9uczogISFhb3QsXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzLFxuICAgIGJhc2VIcmVmLFxuICAgIGNhY2hlT3B0aW9ucyxcbiAgICBjcm9zc09yaWdpbixcbiAgICBkZWxldGVPdXRwdXRQYXRoLFxuICAgIGV4dGVybmFsRGVwZW5kZW5jaWVzLFxuICAgIGV4dHJhY3RMaWNlbnNlcyxcbiAgICBpbmxpbmVTdHlsZUxhbmd1YWdlLFxuICAgIGppdDogIWFvdCxcbiAgICBzdGF0czogISFzdGF0c0pzb24sXG4gICAgcG9seWZpbGxzOiBwb2x5ZmlsbHMgPT09IHVuZGVmaW5lZCB8fCBBcnJheS5pc0FycmF5KHBvbHlmaWxscykgPyBwb2x5ZmlsbHMgOiBbcG9seWZpbGxzXSxcbiAgICBwb2xsLFxuICAgIHByb2dyZXNzLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgLy8gSWYgbm90IGV4cGxpY2l0bHkgc2V0LCBkZWZhdWx0IHRvIHRoZSBOb2RlLmpzIHByb2Nlc3MgYXJndW1lbnRcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzOiBwcmVzZXJ2ZVN5bWxpbmtzID8/IHByb2Nlc3MuZXhlY0FyZ3YuaW5jbHVkZXMoJy0tcHJlc2VydmUtc3ltbGlua3MnKSxcbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnMsXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHksXG4gICAgc2VydmVyRW50cnlQb2ludCxcbiAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICBzc3JPcHRpb25zLFxuICAgIHZlcmJvc2UsXG4gICAgd2F0Y2gsXG4gICAgd29ya3NwYWNlUm9vdCxcbiAgICBlbnRyeVBvaW50cyxcbiAgICBvcHRpbWl6YXRpb25PcHRpb25zLFxuICAgIG91dHB1dFBhdGgsXG4gICAgb3V0RXh0ZW5zaW9uLFxuICAgIHNvdXJjZW1hcE9wdGlvbnMsXG4gICAgdHNjb25maWcsXG4gICAgcHJvamVjdFJvb3QsXG4gICAgYXNzZXRzLFxuICAgIG91dHB1dE5hbWVzLFxuICAgIGZpbGVSZXBsYWNlbWVudHMsXG4gICAgZ2xvYmFsU3R5bGVzLFxuICAgIGdsb2JhbFNjcmlwdHMsXG4gICAgc2VydmljZVdvcmtlcjpcbiAgICAgIHR5cGVvZiBzZXJ2aWNlV29ya2VyID09PSAnc3RyaW5nJyA/IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBzZXJ2aWNlV29ya2VyKSA6IHVuZGVmaW5lZCxcbiAgICBpbmRleEh0bWxPcHRpb25zLFxuICAgIHRhaWx3aW5kQ29uZmlndXJhdGlvbixcbiAgfTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgZW50cnkgcG9pbnQgb3B0aW9ucy4gVG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBsZWdhY3kgYnJvd3NlciBidWlsZGVyLCB3ZSBuZWVkIGEgc2luZ2xlIGBicm93c2VyYFxuICogb3B0aW9uIHdoaWNoIGRlZmluZXMgYSBzaW5nbGUgZW50cnkgcG9pbnQuIEhvd2V2ZXIsIHdlIGFsc28gd2FudCB0byBzdXBwb3J0IG11bHRpcGxlIGVudHJ5IHBvaW50cyBhcyBhbiBpbnRlcm5hbCBvcHRpb24uXG4gKiBUaGUgdHdvIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBhbmQgaWYgYGJyb3dzZXJgIGlzIHByb3ZpZGVkIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgc29sZSBlbnRyeSBwb2ludC5cbiAqIElmIGBlbnRyeVBvaW50c2AgYXJlIHByb3ZpZGVkLCB0aGV5IHdpbGwgYmUgdXNlZCBhcyB0aGUgc2V0IG9mIGVudHJ5IHBvaW50cy5cbiAqXG4gKiBAcGFyYW0gd29ya3NwYWNlUm9vdCBQYXRoIHRvIHRoZSByb290IG9mIHRoZSBBbmd1bGFyIHdvcmtzcGFjZS5cbiAqIEBwYXJhbSBicm93c2VyIFRoZSBgYnJvd3NlcmAgb3B0aW9uIHBvaW50aW5nIGF0IHRoZSBhcHBsaWNhdGlvbiBlbnRyeSBwb2ludC4gV2hpbGUgcmVxdWlyZWQgcGVyIHRoZSBzY2hlbWEgZmlsZSwgaXQgbWF5IGJlIG9taXR0ZWQgYnlcbiAqICAgICBwcm9ncmFtbWF0aWMgdXNhZ2VzIG9mIGBicm93c2VyLWVzYnVpbGRgLlxuICogQHBhcmFtIGVudHJ5UG9pbnRzIFNldCBvZiBlbnRyeSBwb2ludHMgdG8gdXNlIGlmIHByb3ZpZGVkLlxuICogQHJldHVybnMgQW4gb2JqZWN0IG1hcHBpbmcgZW50cnkgcG9pbnQgbmFtZXMgdG8gdGhlaXIgZmlsZSBwYXRocy5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRW50cnlQb2ludHMoXG4gIHdvcmtzcGFjZVJvb3Q6IHN0cmluZyxcbiAgYnJvd3Nlcjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBlbnRyeVBvaW50czogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCksXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgaWYgKGJyb3dzZXIgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgYnJvd3NlcmAgb3B0aW9uIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcuJyk7XG4gIH1cblxuICAvLyBgYnJvd3NlcmAgYW5kIGBlbnRyeVBvaW50c2AgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS5cbiAgaWYgKGJyb3dzZXIgJiYgZW50cnlQb2ludHMuc2l6ZSA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIG9mIGBicm93c2VyYCBvciBgZW50cnlQb2ludHNgIG1heSBiZSBwcm92aWRlZC4nKTtcbiAgfVxuICBpZiAoIWJyb3dzZXIgJiYgZW50cnlQb2ludHMuc2l6ZSA9PT0gMCkge1xuICAgIC8vIFNjaGVtYSBzaG91bGQgbm9ybWFsbHkgcmVqZWN0IHRoaXMgY2FzZSwgYnV0IHByb2dyYW1tYXRpYyB1c2FnZXMgb2YgdGhlIGJ1aWxkZXIgbWlnaHQgbWFrZSB0aGlzIG1pc3Rha2UuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgYGJyb3dzZXJgIG9yIGF0IGxlYXN0IG9uZSBgZW50cnlQb2ludHNgIHZhbHVlIG11c3QgYmUgcHJvdmlkZWQuJyk7XG4gIH1cblxuICAvLyBTY2hlbWEgdHlwZXMgZm9yY2UgYGJyb3dzZXJgIHRvIGFsd2F5cyBiZSBwcm92aWRlZCwgYnV0IGl0IG1heSBiZSBvbWl0dGVkIHdoZW4gdGhlIGJ1aWxkZXIgaXMgaW52b2tlZCBwcm9ncmFtbWF0aWNhbGx5LlxuICBpZiAoYnJvd3Nlcikge1xuICAgIC8vIFVzZSBgYnJvd3NlcmAgYWxvbmUuXG4gICAgcmV0dXJuIHsgJ21haW4nOiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgYnJvd3NlcikgfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgYGVudHJ5UG9pbnRzYCBhbG9uZS5cbiAgICBjb25zdCBlbnRyeVBvaW50UGF0aHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5UG9pbnQgb2YgZW50cnlQb2ludHMpIHtcbiAgICAgIGNvbnN0IHBhcnNlZEVudHJ5UG9pbnQgPSBwYXRoLnBhcnNlKGVudHJ5UG9pbnQpO1xuXG4gICAgICAvLyBVc2UgdGhlIGlucHV0IGZpbGUgcGF0aCB3aXRob3V0IGFuIGV4dGVuc2lvbiBhcyB0aGUgXCJuYW1lXCIgb2YgdGhlIGVudHJ5IHBvaW50IGRpY3RhdGluZyBpdHMgb3V0cHV0IGxvY2F0aW9uLlxuICAgICAgLy8gUmVsYXRpdmUgZW50cnkgcG9pbnRzIGFyZSBnZW5lcmF0ZWQgYXQgdGhlIHNhbWUgcmVsYXRpdmUgcGF0aCBpbiB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICAgIC8vIEFic29sdXRlIGVudHJ5IHBvaW50cyBhcmUgYWx3YXlzIGdlbmVyYXRlZCB3aXRoIHRoZSBzYW1lIGZpbGUgbmFtZSBpbiB0aGUgcm9vdCBvZiB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gVGhpcyBpbmNsdWRlcyBhYnNvbHV0ZVxuICAgICAgLy8gcGF0aHMgcG9pbnRpbmcgYXQgZmlsZXMgYWN0dWFsbHkgd2l0aGluIHRoZSB3b3Jrc3BhY2Ugcm9vdC5cbiAgICAgIGNvbnN0IGVudHJ5UG9pbnROYW1lID0gcGF0aC5pc0Fic29sdXRlKGVudHJ5UG9pbnQpXG4gICAgICAgID8gcGFyc2VkRW50cnlQb2ludC5uYW1lXG4gICAgICAgIDogcGF0aC5qb2luKHBhcnNlZEVudHJ5UG9pbnQuZGlyLCBwYXJzZWRFbnRyeVBvaW50Lm5hbWUpO1xuXG4gICAgICAvLyBHZXQgdGhlIGZ1bGwgZmlsZSBwYXRoIHRvIHRoZSBlbnRyeSBwb2ludCBpbnB1dC5cbiAgICAgIGNvbnN0IGVudHJ5UG9pbnRQYXRoID0gcGF0aC5pc0Fic29sdXRlKGVudHJ5UG9pbnQpXG4gICAgICAgID8gZW50cnlQb2ludFxuICAgICAgICA6IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBlbnRyeVBvaW50KTtcblxuICAgICAgLy8gQ2hlY2sgZm9yIGNvbmZsaWN0cyB3aXRoIHByZXZpb3VzIGVudHJ5IHBvaW50cy5cbiAgICAgIGNvbnN0IGV4aXN0aW5nRW50cnlQb2ludFBhdGggPSBlbnRyeVBvaW50UGF0aHNbZW50cnlQb2ludE5hbWVdO1xuICAgICAgaWYgKGV4aXN0aW5nRW50cnlQb2ludFBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBcXGAke2V4aXN0aW5nRW50cnlQb2ludFBhdGh9XFxgIGFuZCBcXGAke2VudHJ5UG9pbnRQYXRofVxcYCBib3RoIG91dHB1dCB0byB0aGUgc2FtZSBsb2NhdGlvbiBcXGAke2VudHJ5UG9pbnROYW1lfVxcYC5gICtcbiAgICAgICAgICAgICcgUmVuYW1lIG9yIG1vdmUgb25lIG9mIHRoZSBmaWxlcyB0byBmaXggdGhlIGNvbmZsaWN0LicsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGVudHJ5UG9pbnRQYXRoc1tlbnRyeVBvaW50TmFtZV0gPSBlbnRyeVBvaW50UGF0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnlQb2ludFBhdGhzO1xuICB9XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgZGlyZWN0b3J5IHBhdGggc3RyaW5nLlxuICogQ3VycmVudGx5IG9ubHkgcmVtb3ZlcyBhIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnQuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggc3RyaW5nLlxuICogQHJldHVybnMgQSBub3JtYWxpemVkIHBhdGggc3RyaW5nLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVEaXJlY3RvcnlQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gIGlmIChsYXN0ID09PSAnLycgfHwgbGFzdCA9PT0gJ1xcXFwnKSB7XG4gICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgLTEpO1xuICB9XG5cbiAgcmV0dXJuIHBhdGg7XG59XG4iXX0=
|
|
@@ -10,6 +10,10 @@ export interface Schema {
|
|
|
10
10
|
* Build using Ahead of Time compilation.
|
|
11
11
|
*/
|
|
12
12
|
aot?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Generates an application shell during build time.
|
|
15
|
+
*/
|
|
16
|
+
appShell?: boolean;
|
|
13
17
|
/**
|
|
14
18
|
* List of static application assets.
|
|
15
19
|
*/
|
|
@@ -60,7 +64,7 @@ export interface Schema {
|
|
|
60
64
|
/**
|
|
61
65
|
* Configures the generation of the application's HTML index.
|
|
62
66
|
*/
|
|
63
|
-
index:
|
|
67
|
+
index: IndexUnion;
|
|
64
68
|
/**
|
|
65
69
|
* The stylesheet language to use for the application's inline component styles.
|
|
66
70
|
*/
|
|
@@ -93,6 +97,10 @@ export interface Schema {
|
|
|
93
97
|
* Polyfills to be included in the build.
|
|
94
98
|
*/
|
|
95
99
|
polyfills?: Polyfills;
|
|
100
|
+
/**
|
|
101
|
+
* Prerender (SSG) pages of your application during build time.
|
|
102
|
+
*/
|
|
103
|
+
prerender?: PrerenderUnion;
|
|
96
104
|
/**
|
|
97
105
|
* Do not use the real path when resolving modules. If unset then will default to `true` if
|
|
98
106
|
* NodeJS option --preserve-symlinks is set.
|
|
@@ -102,10 +110,6 @@ export interface Schema {
|
|
|
102
110
|
* Log progress to the console while building.
|
|
103
111
|
*/
|
|
104
112
|
progress?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* The path where style resources will be placed, relative to outputPath.
|
|
107
|
-
*/
|
|
108
|
-
resourcesOutputPath?: string;
|
|
109
113
|
/**
|
|
110
114
|
* Global scripts to be included in the build.
|
|
111
115
|
*/
|
|
@@ -118,12 +122,16 @@ export interface Schema {
|
|
|
118
122
|
/**
|
|
119
123
|
* Generates a service worker configuration.
|
|
120
124
|
*/
|
|
121
|
-
serviceWorker?:
|
|
125
|
+
serviceWorker?: ServiceWorker;
|
|
122
126
|
/**
|
|
123
127
|
* Output source maps for scripts and styles. For more information, see
|
|
124
128
|
* https://angular.io/guide/workspace-config#source-map-configuration.
|
|
125
129
|
*/
|
|
126
130
|
sourceMap?: SourceMapUnion;
|
|
131
|
+
/**
|
|
132
|
+
* Server side render (SSR) pages of your application during runtime.
|
|
133
|
+
*/
|
|
134
|
+
ssr?: SsrUnion;
|
|
127
135
|
/**
|
|
128
136
|
* Generates a 'stats.json' file which can be analyzed using tools such as
|
|
129
137
|
* 'webpack-bundle-analyzer'.
|
|
@@ -254,6 +262,22 @@ export declare enum I18NTranslation {
|
|
|
254
262
|
Ignore = "ignore",
|
|
255
263
|
Warning = "warning"
|
|
256
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Configures the generation of the application's HTML index.
|
|
267
|
+
*/
|
|
268
|
+
export type IndexUnion = boolean | IndexObject | string;
|
|
269
|
+
export interface IndexObject {
|
|
270
|
+
/**
|
|
271
|
+
* The path of a file to use for the application's generated HTML index.
|
|
272
|
+
*/
|
|
273
|
+
input: string;
|
|
274
|
+
/**
|
|
275
|
+
* The output path of the application's generated HTML index file. The full provided path
|
|
276
|
+
* will be used and will be considered relative to the application's configured output path.
|
|
277
|
+
*/
|
|
278
|
+
output?: string;
|
|
279
|
+
[property: string]: any;
|
|
280
|
+
}
|
|
257
281
|
/**
|
|
258
282
|
* The stylesheet language to use for the application's inline component styles.
|
|
259
283
|
*/
|
|
@@ -330,6 +354,24 @@ export declare enum OutputHashing {
|
|
|
330
354
|
* Polyfills to be included in the build.
|
|
331
355
|
*/
|
|
332
356
|
export type Polyfills = string[] | string;
|
|
357
|
+
/**
|
|
358
|
+
* Prerender (SSG) pages of your application during build time.
|
|
359
|
+
*/
|
|
360
|
+
export type PrerenderUnion = boolean | PrerenderClass;
|
|
361
|
+
export interface PrerenderClass {
|
|
362
|
+
/**
|
|
363
|
+
* Whether the builder should statically discover routes.
|
|
364
|
+
*/
|
|
365
|
+
discoverRoutes?: boolean;
|
|
366
|
+
/**
|
|
367
|
+
* The routes to render.
|
|
368
|
+
*/
|
|
369
|
+
routes?: string[];
|
|
370
|
+
/**
|
|
371
|
+
* The path to a file containing routes separated by newlines.
|
|
372
|
+
*/
|
|
373
|
+
routesFile?: string;
|
|
374
|
+
}
|
|
333
375
|
export type ScriptElement = ScriptClass | string;
|
|
334
376
|
export interface ScriptClass {
|
|
335
377
|
/**
|
|
@@ -345,6 +387,10 @@ export interface ScriptClass {
|
|
|
345
387
|
*/
|
|
346
388
|
input: string;
|
|
347
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Generates a service worker configuration.
|
|
392
|
+
*/
|
|
393
|
+
export type ServiceWorker = boolean | string;
|
|
348
394
|
/**
|
|
349
395
|
* Output source maps for scripts and styles. For more information, see
|
|
350
396
|
* https://angular.io/guide/workspace-config#source-map-configuration.
|
|
@@ -368,6 +414,16 @@ export interface SourceMapClass {
|
|
|
368
414
|
*/
|
|
369
415
|
vendor?: boolean;
|
|
370
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Server side render (SSR) pages of your application during runtime.
|
|
419
|
+
*/
|
|
420
|
+
export type SsrUnion = boolean | SsrClass;
|
|
421
|
+
export interface SsrClass {
|
|
422
|
+
/**
|
|
423
|
+
* The server entry-point that when executed will spawn the web server.
|
|
424
|
+
*/
|
|
425
|
+
entry?: string;
|
|
426
|
+
}
|
|
371
427
|
/**
|
|
372
428
|
* Options to pass to style preprocessors.
|
|
373
429
|
*/
|
|
@@ -56,4 +56,4 @@ var OutputHashing;
|
|
|
56
56
|
OutputHashing["Media"] = "media";
|
|
57
57
|
OutputHashing["None"] = "none";
|
|
58
58
|
})(OutputHashing || (exports.OutputHashing = OutputHashing = {}));
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUFvT3BGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFFRDs7R0FFRztBQUNILElBQVksbUJBS1g7QUFMRCxXQUFZLG1CQUFtQjtJQUMzQixrQ0FBVyxDQUFBO0lBQ1gsb0NBQWEsQ0FBQTtJQUNiLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQUs5QjtBQStERDs7R0FFRztBQUNILElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUNyQiw0QkFBVyxDQUFBO0lBQ1gsb0NBQW1CLENBQUE7SUFDbkIsZ0NBQWUsQ0FBQTtJQUNmLDhCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUxXLGFBQWEsNkJBQWIsYUFBYSxRQUt4QiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELiBUTyBVUERBVEUgVEhJUyBGSUxFIFlPVSBORUVEIFRPIENIQU5HRSBUSEVcbi8vIENPUlJFU1BPTkRJTkcgSlNPTiBTQ0hFTUEgRklMRSwgVEhFTiBSVU4gZGV2a2l0LWFkbWluIGJ1aWxkIChvciBiYXplbCBidWlsZCAuLi4pLlxuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGJ1aWxkZXIgdGFyZ2V0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlbWEge1xuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBDb21tb25KUyBwYWNrYWdlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQgd2l0aG91dCBhIGJ1aWxkIHRpbWUgd2FybmluZy5cbiAgICAgKi9cbiAgICBhbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBCdWlsZCB1c2luZyBBaGVhZCBvZiBUaW1lIGNvbXBpbGF0aW9uLlxuICAgICAqL1xuICAgIGFvdD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBzdHlsZXNoZWV0IGxhbmd1YWdlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgaW5saW5lIGNvbXBvbmVudCBzdHlsZXMuXG4gICAgICovXG4gICAgaW5saW5lU3R5bGVMYW5ndWFnZT86IElubGluZVN0eWxlTGFuZ3VhZ2U7XG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRlIHRoZSBidW5kbGVzIGluIG9uZSBvciBtb3JlIGxvY2FsZXMuXG4gICAgICovXG4gICAgbG9jYWxpemU/OiBMb2NhbGl6ZTtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgYnVpbGQgb3V0cHV0LiBJbmNsdWRpbmcgbWluaWZpY2F0aW9uIG9mIHNjcmlwdHMgYW5kIHN0eWxlcyxcbiAgICAgKiB0cmVlLXNoYWtpbmcsIGRlYWQtY29kZSBlbGltaW5hdGlvbiwgaW5saW5pbmcgb2YgY3JpdGljYWwgQ1NTIGFuZCBmb250cyBpbmxpbmluZy4gRm9yXG4gICAgICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAgICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjb3B0aW1pemF0aW9uLWNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgb3B0aW1pemF0aW9uPzogT3B0aW1pemF0aW9uVW5pb247XG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvdXRwdXQgZmlsZW5hbWUgY2FjaGUtYnVzdGluZyBoYXNoaW5nIG1vZGUuXG4gICAgICovXG4gICAgb3V0cHV0SGFzaGluZz86IE91dHB1dEhhc2hpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIG5ldyBvdXRwdXQgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UuXG4gICAgICogQnkgZGVmYXVsdCwgd3JpdGVzIG91dHB1dCB0byBhIGZvbGRlciBuYW1lZCBkaXN0LyBpbiB0aGUgY3VycmVudCBwcm9qZWN0LlxuICAgICAqL1xuICAgIG91dHB1dFBhdGg6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBFbmFibGUgYW5kIGRlZmluZSB0aGUgZmlsZSB3YXRjaGluZyBwb2xsIHRpbWUgcGVyaW9kIGluIG1pbGxpc2Vjb25kcy5cbiAgICAgKi9cbiAgICBwb2xsPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFBvbHlmaWxscyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgcG9seWZpbGxzPzogUG9seWZpbGxzO1xuICAgIC8qKlxuICAgICAqIERvIG5vdCB1c2UgdGhlIHJlYWwgcGF0aCB3aGVuIHJlc29sdmluZyBtb2R1bGVzLiBJZiB1bnNldCB0aGVuIHdpbGwgZGVmYXVsdCB0byBgdHJ1ZWAgaWZcbiAgICAgKiBOb2RlSlMgb3B0aW9uIC0tcHJlc2VydmUtc3ltbGlua3MgaXMgc2V0LlxuICAgICAqL1xuICAgIHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIExvZyBwcm9ncmVzcyB0byB0aGUgY29uc29sZSB3aGlsZSBidWlsZGluZy5cbiAgICAgKi9cbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggd2hlcmUgc3R5bGUgcmVzb3VyY2VzIHdpbGwgYmUgcGxhY2VkLCByZWxhdGl2ZSB0byBvdXRwdXRQYXRoLlxuICAgICAqL1xuICAgIHJlc291cmNlc091dHB1dFBhdGg/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHNjcmlwdHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBTY3JpcHRFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIHNlcnZlciBlbnRyeSBwb2ludCB0byB0aGUgYXBwbGljYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50XG4gICAgICogd29ya3NwYWNlLlxuICAgICAqL1xuICAgIHNlcnZlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBzZXJ2aWNlIHdvcmtlciBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNlcnZpY2VXb3JrZXI/OiBhbnk7XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICAgKiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvd29ya3NwYWNlLWNvbmZpZyNzb3VyY2UtbWFwLWNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc291cmNlTWFwPzogU291cmNlTWFwVW5pb247XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgJ3N0YXRzLmpzb24nIGZpbGUgd2hpY2ggY2FuIGJlIGFuYWx5emVkIHVzaW5nIHRvb2xzIHN1Y2ggYXNcbiAgICAgKiAnd2VicGFjay1idW5kbGUtYW5hbHl6ZXInLlxuICAgICAqL1xuICAgIHN0YXRzSnNvbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9ucyB0byBwYXNzIHRvIHN0eWxlIHByZXByb2Nlc3NvcnMuXG4gICAgICovXG4gICAgc3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zPzogU3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zO1xuICAgIC8qKlxuICAgICAqIEdsb2JhbCBzdHlsZXMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLlxuICAgICAqL1xuICAgIHN0eWxlcz86IFN0eWxlRWxlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgdGhlIHVzZSBvZiBzdWJyZXNvdXJjZSBpbnRlZ3JpdHkgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBzdWJyZXNvdXJjZUludGVncml0eT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UuXG4gICAgICovXG4gICAgdHNDb25maWc6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBZGRzIG1vcmUgZGV0YWlscyB0byBvdXRwdXQgbG9nZ2luZy5cbiAgICAgKi9cbiAgICB2ZXJib3NlPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSdW4gYnVpbGQgd2hlbiBmaWxlcyBjaGFuZ2UuXG4gICAgICovXG4gICAgd2F0Y2g/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmb3IgV2ViIFdvcmtlciBtb2R1bGVzLlxuICAgICAqL1xuICAgIHdlYldvcmtlclRzQ29uZmlnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBc3NldFBhdHRlcm4gPSBBc3NldFBhdHRlcm5DbGFzcyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldFBhdHRlcm5DbGFzcyB7XG4gICAgLyoqXG4gICAgICogQWxsb3cgZ2xvYiBwYXR0ZXJucyB0byBmb2xsb3cgc3ltbGluayBkaXJlY3Rvcmllcy4gVGhpcyBhbGxvd3Mgc3ViZGlyZWN0b3JpZXMgb2YgdGhlXG4gICAgICogc3ltbGluayB0byBiZSBzZWFyY2hlZC5cbiAgICAgKi9cbiAgICBmb2xsb3dTeW1saW5rcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHBhdHRlcm4gdG8gbWF0Y2guXG4gICAgICovXG4gICAgZ2xvYjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIGdsb2JzIHRvIGlnbm9yZS5cbiAgICAgKi9cbiAgICBpZ25vcmU/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgaW5wdXQgZGlyZWN0b3J5IHBhdGggaW4gd2hpY2ggdG8gYXBwbHkgJ2dsb2InLiBEZWZhdWx0cyB0byB0aGUgcHJvamVjdCByb290LlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQWJzb2x1dGUgcGF0aCB3aXRoaW4gdGhlIG91dHB1dC5cbiAgICAgKi9cbiAgICBvdXRwdXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWRnZXQge1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlbGluZSBzaXplIGZvciBjb21wYXJpc29uLlxuICAgICAqL1xuICAgIGJhc2VsaW5lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aHJlc2hvbGQgZm9yIGVycm9yIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSAobWluICYgbWF4KS5cbiAgICAgKi9cbiAgICBlcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aHJlc2hvbGQgZm9yIGVycm9yIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZS5cbiAgICAgKi9cbiAgICBtYXhpbXVtRXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gdGhyZXNob2xkIGZvciB3YXJuaW5nIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZS5cbiAgICAgKi9cbiAgICBtYXhpbXVtV2FybmluZz86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSB0aHJlc2hvbGQgZm9yIGVycm9yIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZS5cbiAgICAgKi9cbiAgICBtaW5pbXVtRXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gdGhyZXNob2xkIGZvciB3YXJuaW5nIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZS5cbiAgICAgKi9cbiAgICBtaW5pbXVtV2FybmluZz86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVuZGxlLlxuICAgICAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgYnVkZ2V0LlxuICAgICAqL1xuICAgIHR5cGU6IFR5cGU7XG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3Igd2FybmluZyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgKG1pbiAmIG1heCkuXG4gICAgICovXG4gICAgd2FybmluZz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBidWRnZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFR5cGUge1xuICAgIEFsbCA9IFwiYWxsXCIsXG4gICAgQWxsU2NyaXB0ID0gXCJhbGxTY3JpcHRcIixcbiAgICBBbnkgPSBcImFueVwiLFxuICAgIEFueUNvbXBvbmVudFN0eWxlID0gXCJhbnlDb21wb25lbnRTdHlsZVwiLFxuICAgIEFueVNjcmlwdCA9IFwiYW55U2NyaXB0XCIsXG4gICAgQnVuZGxlID0gXCJidW5kbGVcIixcbiAgICBJbml0aWFsID0gXCJpbml0aWFsXCIsXG59XG5cbi8qKlxuICogRGVmaW5lIHRoZSBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgc2V0dGluZyBvZiBlbGVtZW50cyB0aGF0IHByb3ZpZGUgQ09SUyBzdXBwb3J0LlxuICovXG5leHBvcnQgZW51bSBDcm9zc09yaWdpbiB7XG4gICAgQW5vbnltb3VzID0gXCJhbm9ueW1vdXNcIixcbiAgICBOb25lID0gXCJub25lXCIsXG4gICAgVXNlQ3JlZGVudGlhbHMgPSBcInVzZS1jcmVkZW50aWFsc1wiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVSZXBsYWNlbWVudCB7XG4gICAgcmVwbGFjZTogc3RyaW5nO1xuICAgIHdpdGg6ICAgIHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSB0cmFuc2xhdGlvbnMgZm9yIGkxOG4uXG4gKlxuICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAqL1xuZXhwb3J0IGVudW0gSTE4TlRyYW5zbGF0aW9uIHtcbiAgICBFcnJvciA9IFwiZXJyb3JcIixcbiAgICBJZ25vcmUgPSBcImlnbm9yZVwiLFxuICAgIFdhcm5pbmcgPSBcIndhcm5pbmdcIixcbn1cblxuLyoqXG4gKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICovXG5leHBvcnQgZW51bSBJbmxpbmVTdHlsZUxhbmd1YWdlIHtcbiAgICBDc3MgPSBcImNzc1wiLFxuICAgIExlc3MgPSBcImxlc3NcIixcbiAgICBTYXNzID0gXCJzYXNzXCIsXG4gICAgU2NzcyA9IFwic2Nzc1wiLFxufVxuXG4vKipcbiAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6ZSA9IHN0cmluZ1tdIHwgYm9vbGVhbjtcblxuLyoqXG4gKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgYnVpbGQgb3V0cHV0LiBJbmNsdWRpbmcgbWluaWZpY2F0aW9uIG9mIHNjcmlwdHMgYW5kIHN0eWxlcyxcbiAqIHRyZWUtc2hha2luZywgZGVhZC1jb2RlIGVsaW1pbmF0aW9uLCBpbmxpbmluZyBvZiBjcml0aWNhbCBDU1MgYW5kIGZvbnRzIGlubGluaW5nLiBGb3JcbiAqIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjb3B0aW1pemF0aW9uLWNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIE9wdGltaXphdGlvblVuaW9uID0gYm9vbGVhbiB8IE9wdGltaXphdGlvbkNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGltaXphdGlvbkNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBmb3IgZm9udHMuIFRoaXMgb3B0aW9uIHJlcXVpcmVzIGludGVybmV0IGFjY2Vzcy4gYEhUVFBTX1BST1hZYFxuICAgICAqIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm94eSBzZXJ2ZXIuXG4gICAgICovXG4gICAgZm9udHM/OiBGb250c1VuaW9uO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzY3JpcHRzIG91dHB1dC5cbiAgICAgKi9cbiAgICBzY3JpcHRzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgc3R5bGVzIG91dHB1dC5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBTdHlsZXNVbmlvbjtcbn1cblxuLyoqXG4gKiBFbmFibGVzIG9wdGltaXphdGlvbiBmb3IgZm9udHMuIFRoaXMgb3B0aW9uIHJlcXVpcmVzIGludGVybmV0IGFjY2Vzcy4gYEhUVFBTX1BST1hZYFxuICogZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAqL1xuZXhwb3J0IHR5cGUgRm9udHNVbmlvbiA9IGJvb2xlYW4gfCBGb250c0NsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvbnRzQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFJlZHVjZSByZW5kZXIgYmxvY2tpbmcgcmVxdWVzdHMgYnkgaW5saW5pbmcgZXh0ZXJuYWwgR29vZ2xlIEZvbnRzIGFuZCBBZG9iZSBGb250cyBDU1NcbiAgICAgKiBkZWZpbml0aW9ucyBpbiB0aGUgYXBwbGljYXRpb24ncyBIVE1MIGluZGV4IGZpbGUuIFRoaXMgb3B0aW9uIHJlcXVpcmVzIGludGVybmV0IGFjY2Vzcy5cbiAgICAgKiBgSFRUUFNfUFJPWFlgIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm94eSBzZXJ2ZXIuXG4gICAgICovXG4gICAgaW5saW5lPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgc3R5bGVzIG91dHB1dC5cbiAqL1xuZXhwb3J0IHR5cGUgU3R5bGVzVW5pb24gPSBib29sZWFuIHwgU3R5bGVzQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVzQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEV4dHJhY3QgYW5kIGlubGluZSBjcml0aWNhbCBDU1MgZGVmaW5pdGlvbnMgdG8gaW1wcm92ZSBmaXJzdCBwYWludCB0aW1lLlxuICAgICAqL1xuICAgIGlubGluZUNyaXRpY2FsPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBNaW5pZnkgQ1NTIGRlZmluaXRpb25zIGJ5IHJlbW92aW5nIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBhbmQgY29tbWVudHMsIG1lcmdpbmdcbiAgICAgKiBpZGVudGlmaWVycyBhbmQgbWluaW1pemluZyB2YWx1ZXMuXG4gICAgICovXG4gICAgbWluaWZ5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZWZpbmUgdGhlIG91dHB1dCBmaWxlbmFtZSBjYWNoZS1idXN0aW5nIGhhc2hpbmcgbW9kZS5cbiAqL1xuZXhwb3J0IGVudW0gT3V0cHV0SGFzaGluZyB7XG4gICAgQWxsID0gXCJhbGxcIixcbiAgICBCdW5kbGVzID0gXCJidW5kbGVzXCIsXG4gICAgTWVkaWEgPSBcIm1lZGlhXCIsXG4gICAgTm9uZSA9IFwibm9uZVwiLFxufVxuXG4vKipcbiAqIFBvbHlmaWxscyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gKi9cbmV4cG9ydCB0eXBlIFBvbHlmaWxscyA9IHN0cmluZ1tdIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTY3JpcHRFbGVtZW50ID0gU2NyaXB0Q2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0Q2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlTWFwVW5pb24gPSBib29sZWFuIHwgU291cmNlTWFwQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgdG9vbHMuXG4gICAgICovXG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIGFsbCBzY3JpcHRzLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHN0eWxlcy5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlc29sdmUgdmVuZG9yIHBhY2thZ2VzIHNvdXJjZSBtYXBzLlxuICAgICAqL1xuICAgIHZlbmRvcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBwYXNzIHRvIHN0eWxlIHByZXByb2Nlc3NvcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBQYXRocyB0byBpbmNsdWRlLiBQYXRocyB3aWxsIGJlIHJlc29sdmVkIHRvIHdvcmtzcGFjZSByb290LlxuICAgICAqL1xuICAgIGluY2x1ZGVQYXRocz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTdHlsZUVsZW1lbnQgPSBTdHlsZUNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG4iXX0=
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUE0T3BGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFvQkQ7O0dBRUc7QUFDSCxJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFLOUI7QUErREQ7O0dBRUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsNEJBQVcsQ0FBQTtJQUNYLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBidWlsZGVyIHRhcmdldCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgQ29tbW9uSlMgcGFja2FnZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIHdpdGhvdXQgYSBidWlsZCB0aW1lIHdhcm5pbmcuXG4gICAgICovXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogQnVpbGQgdXNpbmcgQWhlYWQgb2YgVGltZSBjb21waWxhdGlvbi5cbiAgICAgKi9cbiAgICBhb3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhbiBhcHBsaWNhdGlvbiBzaGVsbCBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBhcHBTaGVsbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogSW5kZXhVbmlvbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICAgICAqL1xuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U/OiBJbmxpbmVTdHlsZUxhbmd1YWdlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICAgICAqL1xuICAgIGxvY2FsaXplPzogTG9jYWxpemU7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIGJ1aWxkIG91dHB1dC4gSW5jbHVkaW5nIG1pbmlmaWNhdGlvbiBvZiBzY3JpcHRzIGFuZCBzdHlsZXMsXG4gICAgICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICAgICAqIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICAgICAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI29wdGltaXphdGlvbi1jb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIG9wdGltaXphdGlvbj86IE9wdGltaXphdGlvblVuaW9uO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICAgICAqL1xuICAgIG91dHB1dEhhc2hpbmc/OiBPdXRwdXRIYXNoaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBuZXcgb3V0cHV0IGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuICAgICAqIEJ5IGRlZmF1bHQsIHdyaXRlcyBvdXRwdXQgdG8gYSBmb2xkZXIgbmFtZWQgZGlzdC8gaW4gdGhlIGN1cnJlbnQgcHJvamVjdC5cbiAgICAgKi9cbiAgICBvdXRwdXRQYXRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRW5hYmxlIGFuZCBkZWZpbmUgdGhlIGZpbGUgd2F0Y2hpbmcgcG9sbCB0aW1lIHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gICAgICovXG4gICAgcG9sbD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBQb2x5ZmlsbHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLlxuICAgICAqL1xuICAgIHBvbHlmaWxscz86IFBvbHlmaWxscztcbiAgICAvKipcbiAgICAgKiBQcmVyZW5kZXIgKFNTRykgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBwcmVyZW5kZXI/OiBQcmVyZW5kZXJVbmlvbjtcbiAgICAvKipcbiAgICAgKiBEbyBub3QgdXNlIHRoZSByZWFsIHBhdGggd2hlbiByZXNvbHZpbmcgbW9kdWxlcy4gSWYgdW5zZXQgdGhlbiB3aWxsIGRlZmF1bHQgdG8gYHRydWVgIGlmXG4gICAgICogTm9kZUpTIG9wdGlvbiAtLXByZXNlcnZlLXN5bWxpbmtzIGlzIHNldC5cbiAgICAgKi9cbiAgICBwcmVzZXJ2ZVN5bWxpbmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBMb2cgcHJvZ3Jlc3MgdG8gdGhlIGNvbnNvbGUgd2hpbGUgYnVpbGRpbmcuXG4gICAgICovXG4gICAgcHJvZ3Jlc3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdsb2JhbCBzY3JpcHRzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKi9cbiAgICBzY3JpcHRzPzogU2NyaXB0RWxlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBzZXJ2ZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBzZXJ2ZXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgc2VydmljZSB3b3JrZXIgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzZXJ2aWNlV29ya2VyPzogU2VydmljZVdvcmtlcjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIHNjcmlwdHMgYW5kIHN0eWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICAgICAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzb3VyY2VNYXA/OiBTb3VyY2VNYXBVbmlvbjtcbiAgICAvKipcbiAgICAgKiBTZXJ2ZXIgc2lkZSByZW5kZXIgKFNTUikgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgcnVudGltZS5cbiAgICAgKi9cbiAgICBzc3I/OiBTc3JVbmlvbjtcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSAnc3RhdHMuanNvbicgZmlsZSB3aGljaCBjYW4gYmUgYW5hbHl6ZWQgdXNpbmcgdG9vbHMgc3VjaCBhc1xuICAgICAqICd3ZWJwYWNrLWJ1bmRsZS1hbmFseXplcicuXG4gICAgICovXG4gICAgc3RhdHNKc29uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIHBhc3MgdG8gc3R5bGUgcHJlcHJvY2Vzc29ycy5cbiAgICAgKi9cbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM/OiBTdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHN0eWxlcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgc3R5bGVzPzogU3R5bGVFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0aGUgdXNlIG9mIHN1YnJlc291cmNlIGludGVncml0eSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBwYXRoIGZvciB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUsIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICB0c0NvbmZpZzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFkZHMgbW9yZSBkZXRhaWxzIHRvIG91dHB1dCBsb2dnaW5nLlxuICAgICAqL1xuICAgIHZlcmJvc2U/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJ1biBidWlsZCB3aGVuIGZpbGVzIGNoYW5nZS5cbiAgICAgKi9cbiAgICB3YXRjaD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZvciBXZWIgV29ya2VyIG1vZHVsZXMuXG4gICAgICovXG4gICAgd2ViV29ya2VyVHNDb25maWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFzc2V0UGF0dGVybiA9IEFzc2V0UGF0dGVybkNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UGF0dGVybkNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBBbGxvdyBnbG9iIHBhdHRlcm5zIHRvIGZvbGxvdyBzeW1saW5rIGRpcmVjdG9yaWVzLiBUaGlzIGFsbG93cyBzdWJkaXJlY3RvcmllcyBvZiB0aGVcbiAgICAgKiBzeW1saW5rIHRvIGJlIHNlYXJjaGVkLlxuICAgICAqL1xuICAgIGZvbGxvd1N5bWxpbmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0dGVybiB0byBtYXRjaC5cbiAgICAgKi9cbiAgICBnbG9iOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgZ2xvYnMgdG8gaWdub3JlLlxuICAgICAqL1xuICAgIGlnbm9yZT86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCBkaXJlY3RvcnkgcGF0aCBpbiB3aGljaCB0byBhcHBseSAnZ2xvYicuIERlZmF1bHRzIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBYnNvbHV0ZSBwYXRoIHdpdGhpbiB0aGUgb3V0cHV0LlxuICAgICAqL1xuICAgIG91dHB1dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1ZGdldCB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2VsaW5lIHNpemUgZm9yIGNvbXBhcmlzb24uXG4gICAgICovXG4gICAgYmFzZWxpbmU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIChtaW4gJiBtYXgpLlxuICAgICAqL1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBidW5kbGUuXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiBidWRnZXQuXG4gICAgICovXG4gICAgdHlwZTogVHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciB3YXJuaW5nIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSAobWluICYgbWF4KS5cbiAgICAgKi9cbiAgICB3YXJuaW5nPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGJ1ZGdldC5cbiAqL1xuZXhwb3J0IGVudW0gVHlwZSB7XG4gICAgQWxsID0gXCJhbGxcIixcbiAgICBBbGxTY3JpcHQgPSBcImFsbFNjcmlwdFwiLFxuICAgIEFueSA9IFwiYW55XCIsXG4gICAgQW55Q29tcG9uZW50U3R5bGUgPSBcImFueUNvbXBvbmVudFN0eWxlXCIsXG4gICAgQW55U2NyaXB0ID0gXCJhbnlTY3JpcHRcIixcbiAgICBCdW5kbGUgPSBcImJ1bmRsZVwiLFxuICAgIEluaXRpYWwgPSBcImluaXRpYWxcIixcbn1cblxuLyoqXG4gKiBEZWZpbmUgdGhlIGNyb3Nzb3JpZ2luIGF0dHJpYnV0ZSBzZXR0aW5nIG9mIGVsZW1lbnRzIHRoYXQgcHJvdmlkZSBDT1JTIHN1cHBvcnQuXG4gKi9cbmV4cG9ydCBlbnVtIENyb3NzT3JpZ2luIHtcbiAgICBBbm9ueW1vdXMgPSBcImFub255bW91c1wiLFxuICAgIE5vbmUgPSBcIm5vbmVcIixcbiAgICBVc2VDcmVkZW50aWFscyA9IFwidXNlLWNyZWRlbnRpYWxzXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJlcGxhY2VtZW50IHtcbiAgICByZXBsYWNlOiBzdHJpbmc7XG4gICAgd2l0aDogICAgc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAqXG4gKiBIb3cgdG8gaGFuZGxlIG1pc3NpbmcgdHJhbnNsYXRpb25zIGZvciBpMThuLlxuICovXG5leHBvcnQgZW51bSBJMThOVHJhbnNsYXRpb24ge1xuICAgIEVycm9yID0gXCJlcnJvclwiLFxuICAgIElnbm9yZSA9IFwiaWdub3JlXCIsXG4gICAgV2FybmluZyA9IFwid2FybmluZ1wiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5kZXhVbmlvbiA9IGJvb2xlYW4gfCBJbmRleE9iamVjdCB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleE9iamVjdCB7XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXguXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgb3V0cHV0IHBhdGggb2YgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXggZmlsZS4gVGhlIGZ1bGwgcHJvdmlkZWQgcGF0aFxuICAgICAqIHdpbGwgYmUgdXNlZCBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyZWQgb3V0cHV0IHBhdGguXG4gICAgICovXG4gICAgb3V0cHV0Pzogc3RyaW5nO1xuICAgIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFRoZSBzdHlsZXNoZWV0IGxhbmd1YWdlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgaW5saW5lIGNvbXBvbmVudCBzdHlsZXMuXG4gKi9cbmV4cG9ydCBlbnVtIElubGluZVN0eWxlTGFuZ3VhZ2Uge1xuICAgIENzcyA9IFwiY3NzXCIsXG4gICAgTGVzcyA9IFwibGVzc1wiLFxuICAgIFNhc3MgPSBcInNhc3NcIixcbiAgICBTY3NzID0gXCJzY3NzXCIsXG59XG5cbi8qKlxuICogVHJhbnNsYXRlIHRoZSBidW5kbGVzIGluIG9uZSBvciBtb3JlIGxvY2FsZXMuXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsaXplID0gc3RyaW5nW10gfCBib29sZWFuO1xuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBidWlsZCBvdXRwdXQuIEluY2x1ZGluZyBtaW5pZmljYXRpb24gb2Ygc2NyaXB0cyBhbmQgc3R5bGVzLFxuICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gKiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvd29ya3NwYWNlLWNvbmZpZyNvcHRpbWl6YXRpb24tY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgT3B0aW1pemF0aW9uVW5pb24gPSBib29sZWFuIHwgT3B0aW1pemF0aW9uQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemF0aW9uQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gICAgICogZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBmb250cz86IEZvbnRzVW5pb247XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHNjcmlwdHMgb3V0cHV0LlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICAgICAqL1xuICAgIHN0eWxlcz86IFN0eWxlc1VuaW9uO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICovXG5leHBvcnQgdHlwZSBGb250c1VuaW9uID0gYm9vbGVhbiB8IEZvbnRzQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9udHNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogUmVkdWNlIHJlbmRlciBibG9ja2luZyByZXF1ZXN0cyBieSBpbmxpbmluZyBleHRlcm5hbCBHb29nbGUgRm9udHMgYW5kIEFkb2JlIEZvbnRzIENTU1xuICAgICAqIGRlZmluaXRpb25zIGluIHRoZSBhcHBsaWNhdGlvbidzIEhUTUwgaW5kZXggZmlsZS4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLlxuICAgICAqIGBIVFRQU19QUk9YWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICovXG5leHBvcnQgdHlwZSBTdHlsZXNVbmlvbiA9IGJvb2xlYW4gfCBTdHlsZXNDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBTdHlsZXNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogRXh0cmFjdCBhbmQgaW5saW5lIGNyaXRpY2FsIENTUyBkZWZpbml0aW9ucyB0byBpbXByb3ZlIGZpcnN0IHBhaW50IHRpbWUuXG4gICAgICovXG4gICAgaW5saW5lQ3JpdGljYWw/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE1pbmlmeSBDU1MgZGVmaW5pdGlvbnMgYnkgcmVtb3ZpbmcgZXh0cmFuZW91cyB3aGl0ZXNwYWNlIGFuZCBjb21tZW50cywgbWVyZ2luZ1xuICAgICAqIGlkZW50aWZpZXJzIGFuZCBtaW5pbWl6aW5nIHZhbHVlcy5cbiAgICAgKi9cbiAgICBtaW5pZnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICovXG5leHBvcnQgZW51bSBPdXRwdXRIYXNoaW5nIHtcbiAgICBBbGwgPSBcImFsbFwiLFxuICAgIEJ1bmRsZXMgPSBcImJ1bmRsZXNcIixcbiAgICBNZWRpYSA9IFwibWVkaWFcIixcbiAgICBOb25lID0gXCJub25lXCIsXG59XG5cbi8qKlxuICogUG9seWZpbGxzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IHR5cGUgUG9seWZpbGxzID0gc3RyaW5nW10gfCBzdHJpbmc7XG5cbi8qKlxuICogUHJlcmVuZGVyIChTU0cpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIGJ1aWxkIHRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXJlbmRlclVuaW9uID0gYm9vbGVhbiB8IFByZXJlbmRlckNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBidWlsZGVyIHNob3VsZCBzdGF0aWNhbGx5IGRpc2NvdmVyIHJvdXRlcy5cbiAgICAgKi9cbiAgICBkaXNjb3ZlclJvdXRlcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHJvdXRlcyB0byByZW5kZXIuXG4gICAgICovXG4gICAgcm91dGVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgcm91dGVzIHNlcGFyYXRlZCBieSBuZXdsaW5lcy5cbiAgICAgKi9cbiAgICByb3V0ZXNGaWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTY3JpcHRFbGVtZW50ID0gU2NyaXB0Q2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0Q2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgc2VydmljZSB3b3JrZXIgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU2VydmljZVdvcmtlciA9IGJvb2xlYW4gfCBzdHJpbmc7XG5cbi8qKlxuICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlTWFwVW5pb24gPSBib29sZWFuIHwgU291cmNlTWFwQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgdG9vbHMuXG4gICAgICovXG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIGFsbCBzY3JpcHRzLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHN0eWxlcy5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlc29sdmUgdmVuZG9yIHBhY2thZ2VzIHNvdXJjZSBtYXBzLlxuICAgICAqL1xuICAgIHZlbmRvcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU2VydmVyIHNpZGUgcmVuZGVyIChTU1IpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIHJ1bnRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNzclVuaW9uID0gYm9vbGVhbiB8IFNzckNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNzckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyIGVudHJ5LXBvaW50IHRoYXQgd2hlbiBleGVjdXRlZCB3aWxsIHNwYXduIHRoZSB3ZWIgc2VydmVyLlxuICAgICAqL1xuICAgIGVudHJ5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcGFzcyB0byBzdHlsZSBwcmVwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogUGF0aHMgdG8gaW5jbHVkZS4gUGF0aHMgd2lsbCBiZSByZXNvbHZlZCB0byB3b3Jrc3BhY2Ugcm9vdC5cbiAgICAgKi9cbiAgICBpbmNsdWRlUGF0aHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVFbGVtZW50ID0gU3R5bGVDbGFzcyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBTdHlsZUNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgYnVuZGxlIG5hbWUgZm9yIHRoaXMgZXh0cmEgZW50cnkgcG9pbnQuXG4gICAgICovXG4gICAgYnVuZGxlTmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgYnVuZGxlIHdpbGwgYmUgcmVmZXJlbmNlZCBpbiB0aGUgSFRNTCBmaWxlLlxuICAgICAqL1xuICAgIGluamVjdD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIGZpbGUgdG8gaW5jbHVkZS5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xufVxuIl19
|
|
@@ -220,10 +220,6 @@
|
|
|
220
220
|
"type": "string",
|
|
221
221
|
"description": "The full path for the new output directory, relative to the current workspace.\nBy default, writes output to a folder named dist/ in the current project."
|
|
222
222
|
},
|
|
223
|
-
"resourcesOutputPath": {
|
|
224
|
-
"type": "string",
|
|
225
|
-
"description": "The path where style resources will be placed, relative to outputPath."
|
|
226
|
-
},
|
|
227
223
|
"aot": {
|
|
228
224
|
"type": "boolean",
|
|
229
225
|
"description": "Build using Ahead of Time compilation.",
|
|
@@ -353,6 +349,7 @@
|
|
|
353
349
|
},
|
|
354
350
|
{
|
|
355
351
|
"const": false,
|
|
352
|
+
"type": "boolean",
|
|
356
353
|
"description": "Does not generate a service worker configuration."
|
|
357
354
|
}
|
|
358
355
|
]
|
|
@@ -384,6 +381,7 @@
|
|
|
384
381
|
},
|
|
385
382
|
{
|
|
386
383
|
"const": false,
|
|
384
|
+
"type": "boolean",
|
|
387
385
|
"description": "Does not generate an `index.html` file."
|
|
388
386
|
}
|
|
389
387
|
]
|
|
@@ -418,6 +416,66 @@
|
|
|
418
416
|
"type": "string"
|
|
419
417
|
},
|
|
420
418
|
"default": []
|
|
419
|
+
},
|
|
420
|
+
"prerender": {
|
|
421
|
+
"description": "Prerender (SSG) pages of your application during build time.",
|
|
422
|
+
"default": false,
|
|
423
|
+
"oneOf": [
|
|
424
|
+
{
|
|
425
|
+
"type": "boolean",
|
|
426
|
+
"description": "Enable prerending of pages of your application during build time."
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"type": "object",
|
|
430
|
+
"properties": {
|
|
431
|
+
"routesFile": {
|
|
432
|
+
"type": "string",
|
|
433
|
+
"description": "The path to a file containing routes separated by newlines."
|
|
434
|
+
},
|
|
435
|
+
"routes": {
|
|
436
|
+
"type": "array",
|
|
437
|
+
"description": "The routes to render.",
|
|
438
|
+
"items": {
|
|
439
|
+
"minItems": 1,
|
|
440
|
+
"type": "string",
|
|
441
|
+
"uniqueItems": true
|
|
442
|
+
},
|
|
443
|
+
"default": []
|
|
444
|
+
},
|
|
445
|
+
"discoverRoutes": {
|
|
446
|
+
"type": "boolean",
|
|
447
|
+
"description": "Whether the builder should statically discover routes.",
|
|
448
|
+
"default": true
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"additionalProperties": false
|
|
452
|
+
}
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
"ssr": {
|
|
456
|
+
"description": "Server side render (SSR) pages of your application during runtime.",
|
|
457
|
+
"default": false,
|
|
458
|
+
"oneOf": [
|
|
459
|
+
{
|
|
460
|
+
"type": "boolean",
|
|
461
|
+
"description": "Enable the server bundles to be written to disk."
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"type": "object",
|
|
465
|
+
"properties": {
|
|
466
|
+
"entry": {
|
|
467
|
+
"type": "string",
|
|
468
|
+
"description": "The server entry-point that when executed will spawn the web server."
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"additionalProperties": false
|
|
472
|
+
}
|
|
473
|
+
]
|
|
474
|
+
},
|
|
475
|
+
"appShell": {
|
|
476
|
+
"type": "boolean",
|
|
477
|
+
"description": "Generates an application shell during build time.",
|
|
478
|
+
"default": false
|
|
421
479
|
}
|
|
422
480
|
},
|
|
423
481
|
"additionalProperties": false,
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderContext } from '@angular-devkit/architect';
|
|
9
|
-
import { Schema as BrowserBuilderOptions } from '
|
|
9
|
+
import { Schema as BrowserBuilderOptions } from './schema';
|
|
10
10
|
export declare function logBuilderStatusWarnings(options: BrowserBuilderOptions, context: BuilderContext): void;
|
|
@@ -43,6 +43,7 @@ function logBuilderStatusWarnings(options, context) {
|
|
|
43
43
|
}
|
|
44
44
|
if (unsupportedOption === 'namedChunks' ||
|
|
45
45
|
unsupportedOption === 'vendorChunk' ||
|
|
46
|
+
unsupportedOption === 'resourcesOutputPath' ||
|
|
46
47
|
unsupportedOption === 'deployUrl') {
|
|
47
48
|
context.logger.warn(`The '${unsupportedOption}' option is not used by this builder and will be ignored.`);
|
|
48
49
|
continue;
|
|
@@ -51,4 +52,4 @@ function logBuilderStatusWarnings(options, context) {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
exports.logBuilderStatusWarnings = logBuilderStatusWarnings;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci1zdGF0dXMtd2FybmluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9icm93c2VyLWVzYnVpbGQvYnVpbGRlci1zdGF0dXMtd2FybmluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBS0gsTUFBTSxtQkFBbUIsR0FBdUM7SUFDOUQsU0FBUztJQUVULGlCQUFpQjtJQUNqQixVQUFVO0lBQ1YsZ0VBQWdFO0lBQ2hFLDhCQUE4QjtJQUM5Qiw0QkFBNEI7SUFFNUIsZUFBZTtJQUNmLFdBQVc7SUFFWCxnQ0FBZ0M7SUFDaEMsaUJBQWlCO0lBRWpCLDhEQUE4RDtJQUM5RCxhQUFhO0lBQ2IsYUFBYTtJQUViLHFDQUFxQztJQUNyQyxtQkFBbUI7Q0FDcEIsQ0FBQztBQUVGLFNBQWdCLHdCQUF3QixDQUFDLE9BQThCLEVBQUUsT0FBdUI7SUFDOUYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2pCLHFHQUFxRztRQUNuRyxpREFBaUQ7UUFDakQsMEVBQTBFLENBQzdFLENBQUM7SUFFRiw2QkFBNkI7SUFDN0IsS0FBSyxNQUFNLGlCQUFpQixJQUFJLG1CQUFtQixFQUFFO1FBQ25ELE1BQU0sS0FBSyxHQUFJLE9BQTRDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvRSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtZQUMxQyxTQUFTO1NBQ1Y7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDOUMsU0FBUztTQUNWO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hFLFNBQVM7U0FDVjtRQUVELElBQ0UsaUJBQWlCLEtBQUssYUFBYTtZQUNuQyxpQkFBaUIsS0FBSyxhQUFhO1lBQ25DLGlCQUFpQixLQUFLLHFCQUFxQjtZQUMzQyxpQkFBaUIsS0FBSyxXQUFXLEVBQ2pDO1lBQ0EsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2pCLFFBQVEsaUJBQWlCLDJEQUEyRCxDQUNyRixDQUFDO1lBQ0YsU0FBUztTQUNWO1FBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxpQkFBaUIsZ0RBQWdELENBQUMsQ0FBQztLQUNoRztBQUNILENBQUM7QUFuQ0QsNERBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgQnJvd3NlckJ1aWxkZXJPcHRpb25zIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5jb25zdCBVTlNVUFBPUlRFRF9PUFRJT05TOiBBcnJheTxrZXlvZiBCcm93c2VyQnVpbGRlck9wdGlvbnM+ID0gW1xuICAnYnVkZ2V0cycsXG5cbiAgLy8gKiBpMThuIHN1cHBvcnRcbiAgJ2xvY2FsaXplJyxcbiAgLy8gVGhlIGZvbGxvd2luZyB0d28gaGF2ZSBubyBlZmZlY3Qgd2hlbiBsb2NhbGl6ZSBpcyBub3QgZW5hYmxlZFxuICAvLyAnaTE4bkR1cGxpY2F0ZVRyYW5zbGF0aW9uJyxcbiAgLy8gJ2kxOG5NaXNzaW5nVHJhbnNsYXRpb24nLFxuXG4gIC8vICogRGVwcmVjYXRlZFxuICAnZGVwbG95VXJsJyxcblxuICAvLyAqIEFsd2F5cyBlbmFibGVkIHdpdGggZXNidWlsZFxuICAvLyAnY29tbW9uQ2h1bmsnLFxuXG4gIC8vICogVW51c2VkIGJ5IGJ1aWxkZXIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlXG4gICduYW1lZENodW5rcycsXG4gICd2ZW5kb3JDaHVuaycsXG5cbiAgLy8gKiBDdXJyZW50bHkgdW5zdXBwb3J0ZWQgYnkgZXNidWlsZFxuICAnd2ViV29ya2VyVHNDb25maWcnLFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ0J1aWxkZXJTdGF0dXNXYXJuaW5ncyhvcHRpb25zOiBCcm93c2VyQnVpbGRlck9wdGlvbnMsIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0KSB7XG4gIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgYFRoZSBlc2J1aWxkLWJhc2VkIGJyb3dzZXIgYXBwbGljYXRpb24gYnVpbGRlciAoJ2Jyb3dzZXItZXNidWlsZCcpIGlzIGN1cnJlbnRseSBpbiBkZXZlbG9wZXIgcHJldmlld2AgK1xuICAgICAgJyBhbmQgaXMgbm90IHlldCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UuJyArXG4gICAgICAnIEZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9lc2J1aWxkJyxcbiAgKTtcblxuICAvLyBWYWxpZGF0ZSBzdXBwb3J0ZWQgb3B0aW9uc1xuICBmb3IgKGNvbnN0IHVuc3VwcG9ydGVkT3B0aW9uIG9mIFVOU1VQUE9SVEVEX09QVElPTlMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IChvcHRpb25zIGFzIHVua25vd24gYXMgQnJvd3NlckJ1aWxkZXJPcHRpb25zKVt1bnN1cHBvcnRlZE9wdGlvbl07XG5cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdW5zdXBwb3J0ZWRPcHRpb24gPT09ICduYW1lZENodW5rcycgfHxcbiAgICAgIHVuc3VwcG9ydGVkT3B0aW9uID09PSAndmVuZG9yQ2h1bmsnIHx8XG4gICAgICB1bnN1cHBvcnRlZE9wdGlvbiA9PT0gJ3Jlc291cmNlc091dHB1dFBhdGgnIHx8XG4gICAgICB1bnN1cHBvcnRlZE9wdGlvbiA9PT0gJ2RlcGxveVVybCdcbiAgICApIHtcbiAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAgIGBUaGUgJyR7dW5zdXBwb3J0ZWRPcHRpb259JyBvcHRpb24gaXMgbm90IHVzZWQgYnkgdGhpcyBidWlsZGVyIGFuZCB3aWxsIGJlIGlnbm9yZWQuYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmxvZ2dlci53YXJuKGBUaGUgJyR7dW5zdXBwb3J0ZWRPcHRpb259JyBvcHRpb24gaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZGVyLmApO1xuICB9XG59XG4iXX0=
|