@ngtools/webpack 6.1.1 → 6.1.5
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 +2 -2
- package/src/angular_compiler_plugin.d.ts +19 -19
- package/src/angular_compiler_plugin.js +12 -3
- package/src/benchmark.js +1 -1
- package/src/compiler_host.d.ts +4 -4
- package/src/compiler_host.js +2 -1
- package/src/entry_resolver.js +1 -1
- package/src/gather_diagnostics.js +1 -1
- package/src/lazy_routes.js +8 -1
- package/src/loader.js +1 -1
- package/src/ngtools_api.js +1 -1
- package/src/paths-plugin.js +1 -1
- package/src/refactor.js +1 -1
- package/src/resource_loader.d.ts +2 -2
- package/src/resource_loader.js +1 -1
- package/src/transformers/ast_helpers.js +1 -1
- package/src/transformers/elide_imports.js +1 -1
- package/src/transformers/export_lazy_module_map.js +1 -1
- package/src/transformers/export_ngfactory.js +1 -1
- package/src/transformers/insert_import.js +1 -1
- package/src/transformers/interfaces.d.ts +3 -3
- package/src/transformers/make_transform.js +1 -1
- package/src/transformers/register_locale_data.js +1 -1
- package/src/transformers/remove_decorators.js +1 -1
- package/src/transformers/replace_bootstrap.js +1 -1
- package/src/transformers/replace_resources.js +5 -1
- package/src/transformers/replace_server_bootstrap.js +1 -1
- package/src/type_checker.d.ts +4 -4
- package/src/type_checker.js +1 -1
- package/src/type_checker_worker.js +1 -1
- package/src/virtual_file_system_decorator.d.ts +5 -4
- package/src/virtual_file_system_decorator.js +1 -1
- package/src/webpack-input-host.js +1 -1
package/src/benchmark.js
CHANGED
|
@@ -23,4 +23,4 @@ function timeEnd(label) {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.timeEnd = timeEnd;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILHFDQUFxQztBQUNyQyxvREFBb0Q7QUFDcEQsMENBQTBDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztBQUV6QixjQUFxQixLQUFhO0lBQ2hDLElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQjtBQUNILENBQUM7QUFKRCxvQkFJQztBQUVELGlCQUF3QixLQUFhO0lBQ25DLElBQUksVUFBVSxFQUFFO1FBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFKRCwwQkFJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbi8vIEludGVybmFsIGJlbmNobWFyayByZXBvcnRpbmcgZmxhZy5cbi8vIFVzZSB3aXRoIENMSSAtLW5vLXByb2dyZXNzIGZsYWcgZm9yIGJlc3QgcmVzdWx0cy5cbi8vIFRoaXMgc2hvdWxkIGJlIGZhbHNlIGZvciBjb21taXRlZCBjb2RlLlxuY29uc3QgX2JlbmNobWFyayA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gdGltZShsYWJlbDogc3RyaW5nKSB7XG4gIGlmIChfYmVuY2htYXJrKSB7XG4gICAgY29uc29sZS50aW1lKGxhYmVsKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZUVuZChsYWJlbDogc3RyaW5nKSB7XG4gIGlmIChfYmVuY2htYXJrKSB7XG4gICAgY29uc29sZS50aW1lRW5kKGxhYmVsKTtcbiAgfVxufVxuIl19
|
package/src/compiler_host.d.ts
CHANGED
|
@@ -67,7 +67,7 @@ export declare class VirtualFileStats extends VirtualStats {
|
|
|
67
67
|
bufferContent: virtualFs.FileBuffer;
|
|
68
68
|
setSourceFile(sourceFile: ts.SourceFile): void;
|
|
69
69
|
getSourceFile(languageVersion: ts.ScriptTarget, setParentNodes: boolean): ts.SourceFile;
|
|
70
|
-
private resetMetadata
|
|
70
|
+
private resetMetadata;
|
|
71
71
|
isFile(): boolean;
|
|
72
72
|
readonly size: number;
|
|
73
73
|
}
|
|
@@ -84,10 +84,10 @@ export declare class WebpackCompilerHost implements ts.CompilerHost {
|
|
|
84
84
|
private _cache;
|
|
85
85
|
private _resourceLoader?;
|
|
86
86
|
constructor(_options: ts.CompilerOptions, basePath: string, _host?: virtualFs.Host<fs.Stats>);
|
|
87
|
-
private _normalizePath
|
|
87
|
+
private _normalizePath;
|
|
88
88
|
denormalizePath(path: string): string;
|
|
89
89
|
resolve(path: string): Path;
|
|
90
|
-
private _cacheFile
|
|
90
|
+
private _cacheFile;
|
|
91
91
|
readonly dirty: boolean;
|
|
92
92
|
enableCaching(): void;
|
|
93
93
|
resetChangedFileTracker(): void;
|
|
@@ -97,7 +97,7 @@ export declare class WebpackCompilerHost implements ts.CompilerHost {
|
|
|
97
97
|
fileExists(fileName: string, delegate?: boolean): boolean;
|
|
98
98
|
readFile(fileName: string): string | undefined;
|
|
99
99
|
readFileBuffer(fileName: string): Buffer | undefined;
|
|
100
|
-
private findVirtualFile
|
|
100
|
+
private findVirtualFile;
|
|
101
101
|
stat(path: string): VirtualStats | null;
|
|
102
102
|
directoryExists(directoryName: string, delegate?: boolean): boolean;
|
|
103
103
|
getFiles(path: string): string[];
|
package/src/compiler_host.js
CHANGED
|
@@ -170,6 +170,7 @@ class WebpackCompilerHost {
|
|
|
170
170
|
getNgFactoryPaths() {
|
|
171
171
|
return Object.keys(this._files)
|
|
172
172
|
.filter(fileName => fileName.endsWith('.ngfactory.js') || fileName.endsWith('.ngstyle.js'))
|
|
173
|
+
// These paths are used by the virtual file system decorator so we must denormalize them.
|
|
173
174
|
.map(path => this.denormalizePath(path));
|
|
174
175
|
}
|
|
175
176
|
invalidate(fileName) {
|
|
@@ -351,4 +352,4 @@ function workaroundResolve(path) {
|
|
|
351
352
|
return core_1.getSystemPath(core_1.normalize(path)).replace(/\\/g, '/');
|
|
352
353
|
}
|
|
353
354
|
exports.workaroundResolve = workaroundResolve;
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvbmd0b29scy93ZWJwYWNrL3NyYy9jb21waWxlcl9ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsK0NBQWdHO0FBQ2hHLG9EQUEyRDtBQUUzRCwrQkFBK0M7QUFDL0MsaUNBQWlDO0FBU2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBRzlDO0lBV0UsWUFBc0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFWekIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsU0FBSSxHQUFHLEdBQUcsQ0FBQztRQUNYLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLG9CQUFvQjtRQUNqRCxTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRVgsQ0FBQztJQUV2QyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUIsV0FBVyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lB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QUFtQjtJQUNuRCxNQUFNLENBQUMsb0JBQWEsQ0FBQyxnQkFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRkQsOENBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgeyBQYXRoLCBnZXRTeXN0ZW1QYXRoLCBqb2luIGFzIF9qb2luLCBub3JtYWxpemUsIHZpcnR1YWxGcyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IE5vZGVKc1N5bmNIb3N0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBXZWJwYWNrUmVzb3VyY2VMb2FkZXIgfSBmcm9tICcuL3Jlc291cmNlX2xvYWRlcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBPbkVycm9yRm4ge1xuICAobWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbn1cblxuXG5jb25zdCBkZXYgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMCk7XG5cblxuZXhwb3J0IGNsYXNzIFZpcnR1YWxTdGF0cyBpbXBsZW1lbnRzIGZzLlN0YXRzIHtcbiAgcHJvdGVjdGVkIF9jdGltZSA9IG5ldyBEYXRlKCk7XG4gIHByb3RlY3RlZCBfbXRpbWUgPSBuZXcgRGF0ZSgpO1xuICBwcm90ZWN0ZWQgX2F0aW1lID0gbmV3IERhdGUoKTtcbiAgcHJvdGVjdGVkIF9idGltZSA9IG5ldyBEYXRlKCk7XG4gIHByb3RlY3RlZCBfZGV2ID0gZGV2O1xuICBwcm90ZWN0ZWQgX2lubyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMCk7XG4gIHByb3RlY3RlZCBfbW9kZSA9IHBhcnNlSW50KCc3NzcnLCA4KTsgIC8vIFJXWCBmb3IgZXZlcnlvbmUuXG4gIHByb3RlY3RlZCBfdWlkID0gTnVtYmVyKHByb2Nlc3MuZW52WydVSUQnXSkgfHwgMDtcbiAgcHJvdGVjdGVkIF9naWQgPSBOdW1iZXIocHJvY2Vzcy5lbnZbJ0dJRCddKSB8fCAwO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcGF0aDogc3RyaW5nKSB7fVxuXG4gIGlzRmlsZSgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIGlzRGlyZWN0b3J5KCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgaXNCbG9ja0RldmljZSgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIGlzQ2hhcmFjdGVyRGV2aWNlKCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgaXNTeW1ib2xpY0xpbmsoKSB7IHJldHVybiBmYWxzZTsgfVxuICBpc0ZJRk8oKSB7IHJldHVybiBmYWxzZTsgfVxuICBpc1NvY2tldCgpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgZ2V0IGRldigpIHsgcmV0dXJuIHRoaXMuX2RldjsgfVxuICBnZXQgaW5vKCkgeyByZXR1cm4gdGhpcy5faW5vOyB9XG4gIGdldCBtb2RlKCkgeyByZXR1cm4gdGhpcy5fbW9kZTsgfVxuICBnZXQgbmxpbmsoKSB7IHJldHVybiAxOyB9ICAvLyBEZWZhdWx0IHRvIDEgaGFyZCBsaW5rLlxuICBnZXQgdWlkKCkgeyByZXR1cm4gdGhpcy5fdWlkOyB9XG4gIGdldCBnaWQoKSB7IHJldHVybiB0aGlzLl9naWQ7IH1cbiAgZ2V0IHJkZXYoKSB7IHJldHVybiAwOyB9XG4gIGdldCBzaXplKCkgeyByZXR1cm4gMDsgfVxuICBnZXQgYmxrc2l6ZSgpIHsgcmV0dXJuIDUxMjsgfVxuICBnZXQgYmxvY2tzKCkgeyByZXR1cm4gTWF0aC5jZWlsKHRoaXMuc2l6ZSAvIHRoaXMuYmxrc2l6ZSk7IH1cbiAgZ2V0IGF0aW1lKCkgeyByZXR1cm4gdGhpcy5fYXRpbWU7IH1cbiAgZ2V0IGF0aW1lTXMoKSB7IHJldHVybiB0aGlzLl9hdGltZS5nZXRUaW1lKCk7IH1cbiAgZ2V0IG10aW1lKCkgeyByZXR1cm4gdGhpcy5fbXRpbWU7IH1cbiAgZ2V0IG10aW1lTXMoKSB7IHJldHVybiB0aGlzLl9tdGltZS5nZXRUaW1lKCk7IH1cbiAgZ2V0IGN0aW1lKCkgeyByZXR1cm4gdGhpcy5fY3RpbWU7IH1cbiAgZ2V0IGN0aW1lTXMoKSB7IHJldHVybiB0aGlzLl9jdGltZS5nZXRUaW1lKCk7IH1cbiAgZ2V0IGJpcnRodGltZSgpIHsgcmV0dXJuIHRoaXMuX2J0aW1lOyB9XG4gIGdldCBiaXJ0aHRpbWVNcygpIHsgcmV0dXJuIHRoaXMuX2J0aW1lLmdldFRpbWUoKTsgfVxufVxuXG5leHBvcnQgY2xhc3MgVmlydHVhbERpclN0YXRzIGV4dGVuZHMgVmlydHVhbFN0YXRzIHtcbiAgY29uc3RydWN0b3IoX2ZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihfZmlsZU5hbWUpO1xuICB9XG5cbiAgaXNEaXJlY3RvcnkoKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgZ2V0IHNpemUoKSB7IHJldHVybiAxMDI0OyB9XG59XG5cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsRmlsZVN0YXRzIGV4dGVuZHMgVmlydHVhbFN0YXRzIHtcbiAgcHJpdmF0ZSBfc291cmNlRmlsZTogdHMuU291cmNlRmlsZSB8IG51bGw7XG4gIHByaXZhdGUgX2NvbnRlbnQ6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgX2J1ZmZlckNvbnRlbnQ6IHZpcnR1YWxGcy5GaWxlQnVmZmVyIHwgbnVsbDtcblxuICBjb25zdHJ1Y3RvcihfZmlsZU5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKF9maWxlTmFtZSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhfZmlsZU5hbWU6IHN0cmluZywgX2NvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IHN0YXRzID0gbmV3IFZpcnR1YWxGaWxlU3RhdHMoX2ZpbGVOYW1lKTtcbiAgICBzdGF0cy5jb250ZW50ID0gX2NvbnRlbnQ7XG5cbiAgICByZXR1cm4gc3RhdHM7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRnJvbUJ1ZmZlcihfZmlsZU5hbWU6IHN0cmluZywgX2J1ZmZlcjogdmlydHVhbEZzLkZpbGVCdWZmZXIpIHtcbiAgICBjb25zdCBzdGF0cyA9IG5ldyBWaXJ0dWFsRmlsZVN0YXRzKF9maWxlTmFtZSk7XG4gICAgc3RhdHMuYnVmZmVyQ29udGVudCA9IF9idWZmZXI7XG5cbiAgICByZXR1cm4gc3RhdHM7XG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQgJiYgdGhpcy5idWZmZXJDb250ZW50KSB7XG4gICAgICB0aGlzLl9jb250ZW50ID0gdmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyh0aGlzLmJ1ZmZlckNvbnRlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb250ZW50IHx8ICcnO1xuICB9XG4gIHNldCBjb250ZW50KHY6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbnRlbnQgPSB2O1xuICAgIHRoaXMuX2J1ZmZlckNvbnRlbnQgPSBudWxsO1xuICAgIHRoaXMucmVzZXRNZXRhZGF0YSgpO1xuICB9XG5cbiAgZ2V0IGJ1ZmZlckNvbnRlbnQoKSB7XG4gICAgaWYgKCF0aGlzLl9idWZmZXJDb250ZW50ICYmIHRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2J1ZmZlckNvbnRlbnQgPSB2aXJ0dWFsRnMuc3RyaW5nVG9GaWxlQnVmZmVyKHRoaXMuX2NvbnRlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9idWZmZXJDb250ZW50IHx8IHZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoJycpO1xuICB9XG4gIHNldCBidWZmZXJDb250ZW50KGJ1ZjogdmlydHVhbEZzLkZpbGVCdWZmZXIpIHtcbiAgICB0aGlzLl9idWZmZXJDb250ZW50ID0gYnVmO1xuICAgIHRoaXMuX2NvbnRlbnQgPSBudWxsO1xuICAgIHRoaXMucmVzZXRNZXRhZGF0YSgpO1xuICB9XG5cbiAgc2V0U291cmNlRmlsZShzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlKSB7XG4gICAgdGhpcy5fc291cmNlRmlsZSA9IHNvdXJjZUZpbGU7XG4gIH1cbiAgZ2V0U291cmNlRmlsZShsYW5ndWFnZVZlcnNpb246IHRzLlNjcmlwdFRhcmdldCwgc2V0UGFyZW50Tm9kZXM6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuX3NvdXJjZUZpbGUpIHtcbiAgICAgIHRoaXMuX3NvdXJjZUZpbGUgPSB0cy5jcmVhdGVTb3VyY2VGaWxlKFxuICAgICAgICB3b3JrYXJvdW5kUmVzb2x2ZSh0aGlzLl9wYXRoKSxcbiAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICBsYW5ndWFnZVZlcnNpb24sXG4gICAgICAgIHNldFBhcmVudE5vZGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRNZXRhZGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tdGltZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5fc291cmNlRmlsZSA9IG51bGw7XG4gIH1cblxuICBpc0ZpbGUoKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLmNvbnRlbnQubGVuZ3RoOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJwYWNrQ29tcGlsZXJIb3N0IGltcGxlbWVudHMgdHMuQ29tcGlsZXJIb3N0IHtcbiAgcHJpdmF0ZSBfc3luY0hvc3Q6IHZpcnR1YWxGcy5TeW5jRGVsZWdhdGVIb3N0O1xuICBwcml2YXRlIF9maWxlczoge1twYXRoOiBzdHJpbmddOiBWaXJ0dWFsRmlsZVN0YXRzIHwgbnVsbH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBwcml2YXRlIF9kaXJlY3Rvcmllczoge1twYXRoOiBzdHJpbmddOiBWaXJ0dWFsRGlyU3RhdHMgfCBudWxsfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlZEZpbGVzOiB7W3BhdGg6IHN0cmluZ106IGJvb2xlYW59ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcHJpdmF0ZSBfY2hhbmdlZERpcnM6IHtbcGF0aDogc3RyaW5nXTogYm9vbGVhbn0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIHByaXZhdGUgX2Jhc2VQYXRoOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NldFBhcmVudE5vZGVzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2NhY2hlID0gZmFsc2U7XG4gIHByaXZhdGUgX3Jlc291cmNlTG9hZGVyPzogV2VicGFja1Jlc291cmNlTG9hZGVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX29wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcbiAgICBiYXNlUGF0aDogc3RyaW5nLFxuICAgIHByaXZhdGUgX2hvc3Q6IHZpcnR1YWxGcy5Ib3N0PGZzLlN0YXRzPiA9IG5ldyBOb2RlSnNTeW5jSG9zdCgpLFxuICApIHtcbiAgICB0aGlzLl9zeW5jSG9zdCA9IG5ldyB2aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChfaG9zdCk7XG4gICAgdGhpcy5fc2V0UGFyZW50Tm9kZXMgPSB0cnVlO1xuICAgIHRoaXMuX2Jhc2VQYXRoID0gdGhpcy5fbm9ybWFsaXplUGF0aChiYXNlUGF0aCk7XG4gIH1cblxuICBwcml2YXRlIF9ub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IFBhdGgge1xuICAgIHJldHVybiBub3JtYWxpemUocGF0aCk7XG4gIH1cblxuICBkZW5vcm1hbGl6ZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGdldFN5c3RlbVBhdGgobm9ybWFsaXplKHBhdGgpKTtcbiAgfVxuXG4gIHJlc29sdmUocGF0aDogc3RyaW5nKTogUGF0aCB7XG4gICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7XG4gICAgaWYgKHBbMF0gPT0gJy4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplUGF0aChqb2luKHRoaXMuZ2V0Q3VycmVudERpcmVjdG9yeSgpLCBwKSk7XG4gICAgfSBlbHNlIGlmIChwWzBdID09ICcvJyB8fCBwLm1hdGNoKC9eXFx3OlxcLy8pKSB7XG4gICAgICByZXR1cm4gcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZVBhdGgoam9pbih0aGlzLl9iYXNlUGF0aCwgcCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhY2hlRmlsZShmaWxlTmFtZTogc3RyaW5nLCBzdGF0czogVmlydHVhbEZpbGVTdGF0cykge1xuICAgIHRoaXMuX2ZpbGVzW2ZpbGVOYW1lXSA9IHN0YXRzO1xuXG4gICAgbGV0IHAgPSBkaXJuYW1lKGZpbGVOYW1lKTtcbiAgICB3aGlsZSAocCAmJiAhdGhpcy5fZGlyZWN0b3JpZXNbcF0pIHtcbiAgICAgIHRoaXMuX2RpcmVjdG9yaWVzW3BdID0gbmV3IFZpcnR1YWxEaXJTdGF0cyhwKTtcbiAgICAgIHRoaXMuX2NoYW5nZWREaXJzW3BdID0gdHJ1ZTtcbiAgICAgIHAgPSBkaXJuYW1lKHApO1xuICAgIH1cblxuICAgIHRoaXMuX2NoYW5nZWRGaWxlc1tmaWxlTmFtZV0gPSB0cnVlO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jaGFuZ2VkRmlsZXMpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBlbmFibGVDYWNoaW5nKCkge1xuICAgIHRoaXMuX2NhY2hlID0gdHJ1ZTtcbiAgfVxuXG4gIHJlc2V0Q2hhbmdlZEZpbGVUcmFja2VyKCkge1xuICAgIHRoaXMuX2NoYW5nZWRGaWxlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fY2hhbmdlZERpcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB9XG5cbiAgZ2V0Q2hhbmdlZEZpbGVQYXRocygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2NoYW5nZWRGaWxlcyk7XG4gIH1cblxuICBnZXROZ0ZhY3RvcnlQYXRocygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2ZpbGVzKVxuICAgICAgLmZpbHRlcihmaWxlTmFtZSA9PiBmaWxlTmFtZS5lbmRzV2l0aCgnLm5nZmFjdG9yeS5qcycpIHx8IGZpbGVOYW1lLmVuZHNXaXRoKCcubmdzdHlsZS5qcycpKVxuICAgICAgLy8gVGhlc2UgcGF0aHMgYXJlIHVzZWQgYnkgdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW0gZGVjb3JhdG9yIHNvIHdlIG11c3QgZGVub3JtYWxpemUgdGhlbS5cbiAgICAgIC5tYXAocGF0aCA9PiB0aGlzLmRlbm9ybWFsaXplUGF0aChwYXRoIGFzIFBhdGgpKTtcbiAgfVxuXG4gIGludmFsaWRhdGUoZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gdGhpcy5yZXNvbHZlKGZpbGVOYW1lKTtcblxuICAgIGlmIChmdWxsUGF0aCBpbiB0aGlzLl9maWxlcykge1xuICAgICAgdGhpcy5fZmlsZXNbZnVsbFBhdGhdID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBmaWxlIGluIHRoaXMuX2ZpbGVzKSB7XG4gICAgICAgIGlmIChmaWxlLnN0YXJ0c1dpdGgoZnVsbFBhdGggKyAnLycpKSB7XG4gICAgICAgICAgdGhpcy5fZmlsZXNbZmlsZV0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbGVFeGlzdHMoZnVsbFBhdGgpKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VkRmlsZXNbZnVsbFBhdGhdID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBmaWxlRXhpc3RzKGZpbGVOYW1lOiBzdHJpbmcsIGRlbGVnYXRlID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUoZmlsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzW3BdICE9IG51bGxcbiAgICAgIHx8IChkZWxlZ2F0ZSAmJiB0aGlzLl9zeW5jSG9zdC5leGlzdHMobm9ybWFsaXplKHApKSk7XG4gIH1cblxuICByZWFkRmlsZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdGF0cyA9IHRoaXMuZmluZFZpcnR1YWxGaWxlKGZpbGVOYW1lKTtcblxuICAgIHJldHVybiBzdGF0cyAmJiBzdGF0cy5jb250ZW50O1xuICB9XG5cbiAgcmVhZEZpbGVCdWZmZXIoZmlsZU5hbWU6IHN0cmluZyk6IEJ1ZmZlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdHMgPSB0aGlzLmZpbmRWaXJ0dWFsRmlsZShmaWxlTmFtZSk7XG4gICAgaWYgKHN0YXRzKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShzdGF0cy5idWZmZXJDb250ZW50KTtcblxuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRWaXJ0dWFsRmlsZShmaWxlTmFtZTogc3RyaW5nKTogVmlydHVhbEZpbGVTdGF0cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucmVzb2x2ZShmaWxlTmFtZSk7XG5cbiAgICBjb25zdCBzdGF0cyA9IHRoaXMuX2ZpbGVzW3BdO1xuICAgIGlmIChzdGF0cykge1xuICAgICAgcmV0dXJuIHN0YXRzO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlQnVmZmVyID0gdGhpcy5fc3luY0hvc3QucmVhZChwKTtcbiAgICAgIGlmIChmaWxlQnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gVmlydHVhbEZpbGVTdGF0cy5jcmVhdGVGcm9tQnVmZmVyKHAsIGZpbGVCdWZmZXIpO1xuICAgICAgICBpZiAodGhpcy5fY2FjaGUpIHtcbiAgICAgICAgICB0aGlzLl9jYWNoZUZpbGUocCwgc3RhdHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0YXRzO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzdGF0KHBhdGg6IHN0cmluZyk6IFZpcnR1YWxTdGF0cyB8IG51bGwge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUocGF0aCk7XG4gICAgY29uc3Qgc3RhdHMgPSB0aGlzLl9maWxlc1twXSB8fCB0aGlzLl9kaXJlY3Rvcmllc1twXTtcbiAgICBpZiAoIXN0YXRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3luY0hvc3Quc3RhdChwKSBhcyBWaXJ0dWFsU3RhdHMgfCBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0cztcbiAgfVxuXG4gIGRpcmVjdG9yeUV4aXN0cyhkaXJlY3RvcnlOYW1lOiBzdHJpbmcsIGRlbGVnYXRlID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUoZGlyZWN0b3J5TmFtZSk7XG5cbiAgICByZXR1cm4gKHRoaXMuX2RpcmVjdG9yaWVzW3BdICE9IG51bGwpXG4gICAgICAgICAgICB8fCAoZGVsZWdhdGUgJiYgdGhpcy5fc3luY0hvc3QuZXhpc3RzKHApICYmIHRoaXMuX3N5bmNIb3N0LmlzRGlyZWN0b3J5KHApKTtcbiAgfVxuXG4gIGdldEZpbGVzKHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlKHBhdGgpO1xuXG4gICAgY29uc3Qgc3ViZmlsZXMgPSBPYmplY3Qua2V5cyh0aGlzLl9maWxlcylcbiAgICAgIC5maWx0ZXIoZmlsZU5hbWUgPT4gZGlybmFtZShmaWxlTmFtZSkgPT0gcClcbiAgICAgIC5tYXAocCA9PiBiYXNlbmFtZShwKSk7XG5cblxuICAgIGxldCBkZWxlZ2F0ZWQ6IHN0cmluZ1tdO1xuICAgIHRyeSB7XG4gICAgICBkZWxlZ2F0ZWQgPSB0aGlzLl9zeW5jSG9zdC5saXN0KHApLmZpbHRlcigoeDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3N5bmNIb3N0LmlzRmlsZShfam9pbihwLCB4KSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBkZWxlZ2F0ZWQgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZWdhdGVkLmNvbmNhdChzdWJmaWxlcyk7XG4gIH1cblxuICBnZXREaXJlY3RvcmllcyhwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcCA9IHRoaXMucmVzb2x2ZShwYXRoKTtcbiAgICBjb25zdCBzdWJkaXJzID0gT2JqZWN0LmtleXModGhpcy5fZGlyZWN0b3JpZXMpXG4gICAgICAuZmlsdGVyKGZpbGVOYW1lID0+IGRpcm5hbWUoZmlsZU5hbWUpID09IHApXG4gICAgICAubWFwKHBhdGggPT4gYmFzZW5hbWUocGF0aCkpO1xuXG4gICAgbGV0IGRlbGVnYXRlZDogc3RyaW5nW107XG4gICAgdHJ5IHtcbiAgICAgIGRlbGVnYXRlZCA9IHRoaXMuX3N5bmNIb3N0Lmxpc3QocCkuZmlsdGVyKCh4OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fc3luY0hvc3QuaXNEaXJlY3RvcnkoX2pvaW4ocCwgeCkpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgZGVsZWdhdGVkID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlZC5jb25jYXQoc3ViZGlycyk7XG4gIH1cblxuICBnZXRTb3VyY2VGaWxlKGZpbGVOYW1lOiBzdHJpbmcsIGxhbmd1YWdlVmVyc2lvbjogdHMuU2NyaXB0VGFyZ2V0LCBfb25FcnJvcj86IE9uRXJyb3JGbikge1xuICAgIGZpbGVOYW1lID0gdGhpcy5yZXNvbHZlKGZpbGVOYW1lKTtcblxuICAgIGxldCBzdGF0cyA9IHRoaXMuX2ZpbGVzW2ZpbGVOYW1lXTtcbiAgICBpZiAoIXN0YXRzKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5yZWFkRmlsZShmaWxlTmFtZSk7XG5cbiAgICAgIGlmICghdGhpcy5fY2FjaGUgJiYgY29udGVudCkge1xuICAgICAgICByZXR1cm4gdHMuY3JlYXRlU291cmNlRmlsZShcbiAgICAgICAgICB3b3JrYXJvdW5kUmVzb2x2ZShmaWxlTmFtZSksXG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBsYW5ndWFnZVZlcnNpb24sXG4gICAgICAgICAgdGhpcy5fc2V0UGFyZW50Tm9kZXMsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0cyA9IHRoaXMuX2ZpbGVzW2ZpbGVOYW1lXTtcbiAgICAgICAgaWYgKCFzdGF0cykge1xuICAgICAgICAgIC8vIElmIGNhY2hlIGlzIHR1cm5lZCBvbiBhbmQgdGhlIGZpbGUgZXhpc3RzLCB0aGUgcmVhZEZpbGUgY2FsbCB3aWxsIGhhdmUgcG9wdWxhdGVkIHN0YXRzLlxuICAgICAgICAgIC8vIEVtcHR5IHN0YXRzIGF0IHRoaXMgcG9pbnQgbWVhbiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGF0IGFuZCBzbyB3ZSBzaG91bGQgcmV0dXJuXG4gICAgICAgICAgLy8gdW5kZWZpbmVkLlxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdHMgJiYgc3RhdHMuZ2V0U291cmNlRmlsZShsYW5ndWFnZVZlcnNpb24sIHRoaXMuX3NldFBhcmVudE5vZGVzKTtcbiAgfVxuXG4gIGdldCBnZXRDYW5jZWxsYXRpb25Ub2tlbigpIHtcbiAgICAvLyByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZ2V0Q2FuY2VsbGF0aW9uVG9rZW47XG4gICAgLy8gVE9ETzogY29uc2lkZXIgaW1wbGVtZW50aW5nIGEgY2FuY2VsbGF0aW9uIHRva2VuLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXREZWZhdWx0TGliRmlsZU5hbWUob3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRzLmNyZWF0ZUNvbXBpbGVySG9zdChvcHRpb25zLCBmYWxzZSkuZ2V0RGVmYXVsdExpYkZpbGVOYW1lKG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gVGhpcyBpcyBkdWUgdG8gdHlwZXNjcmlwdCBDb21waWxlckhvc3QgaW50ZXJmYWNlIGJlaW5nIHdlaXJkIG9uIHdyaXRlRmlsZS4gVGhpcyBzaHV0cyBkb3duXG4gIC8vIHR5cGluZ3MgaW4gV2ViU3Rvcm0uXG4gIGdldCB3cml0ZUZpbGUoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICBkYXRhOiBzdHJpbmcsXG4gICAgICBfd3JpdGVCeXRlT3JkZXJNYXJrOiBib29sZWFuLFxuICAgICAgX29uRXJyb3I/OiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICAgICAgX3NvdXJjZUZpbGVzPzogUmVhZG9ubHlBcnJheTx0cy5Tb3VyY2VGaWxlPixcbiAgICApOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUoZmlsZU5hbWUpO1xuICAgICAgY29uc3Qgc3RhdHMgPSBWaXJ0dWFsRmlsZVN0YXRzLmNyZWF0ZUZyb21TdHJpbmcocCwgZGF0YSk7XG4gICAgICB0aGlzLl9jYWNoZUZpbGUocCwgc3RhdHMpO1xuICAgIH07XG4gIH1cblxuICBnZXRDdXJyZW50RGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VQYXRoICE9PSBudWxsID8gdGhpcy5fYmFzZVBhdGggOiAnLyc7XG4gIH1cblxuICBnZXRDYW5vbmljYWxGaWxlTmFtZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKGZpbGVOYW1lKTtcbiAgfVxuXG4gIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFwcm9jZXNzLnBsYXRmb3JtLnN0YXJ0c1dpdGgoJ3dpbjMyJyk7XG4gIH1cblxuICBnZXROZXdMaW5lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdcXG4nO1xuICB9XG5cbiAgc2V0UmVzb3VyY2VMb2FkZXIocmVzb3VyY2VMb2FkZXI6IFdlYnBhY2tSZXNvdXJjZUxvYWRlcikge1xuICAgIHRoaXMuX3Jlc291cmNlTG9hZGVyID0gcmVzb3VyY2VMb2FkZXI7XG4gIH1cblxuICByZWFkUmVzb3VyY2UoZmlsZU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl9yZXNvdXJjZUxvYWRlcikge1xuICAgICAgLy8gVGhlc2UgcGF0aHMgYXJlIG1lYW50IHRvIGJlIHVzZWQgYnkgdGhlIGxvYWRlciBzbyB3ZSBtdXN0IGRlbm9ybWFsaXplIHRoZW0uXG4gICAgICBjb25zdCBkZW5vcm1hbGl6ZWRGaWxlTmFtZSA9IHRoaXMuZGVub3JtYWxpemVQYXRoKG5vcm1hbGl6ZShmaWxlTmFtZSkpO1xuXG4gICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VMb2FkZXIuZ2V0KGRlbm9ybWFsaXplZEZpbGVOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZEZpbGUoZmlsZU5hbWUpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIGBUc0NvbXBpbGVyQW90Q29tcGlsZXJUeXBlQ2hlY2tIb3N0QWRhcHRlcmAgaW4gQGFuZ3VsYXIvY29tcGlsZXItY2xpIHNlZW1zIHRvIHJlc29sdmUgbW9kdWxlXG4vLyBuYW1lcyBkaXJlY3RseSB2aWEgYHJlc29sdmVNb2R1bGVOYW1lYCwgd2hpY2ggcHJldmVudHMgZnVsbCBQYXRoIHVzYWdlLlxuLy8gVG8gd29yayBhcm91bmQgdGhpcyB3ZSBtdXN0IHByb3ZpZGUgdGhlIHNhbWUgcGF0aCBmb3JtYXQgYXMgVFMgaW50ZXJuYWxseSB1c2VzIGluXG4vLyB0aGUgU291cmNlRmlsZSBwYXRocy5cbmV4cG9ydCBmdW5jdGlvbiB3b3JrYXJvdW5kUmVzb2x2ZShwYXRoOiBQYXRoIHwgc3RyaW5nKSB7XG4gIHJldHVybiBnZXRTeXN0ZW1QYXRoKG5vcm1hbGl6ZShwYXRoKSkucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xufVxuIl19
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvbmd0b29scy93ZWJwYWNrL3NyYy9jb21waWxlcl9ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsK0NBQWdHO0FBQ2hHLG9EQUEyRDtBQUUzRCwrQkFBK0M7QUFDL0MsaUNBQWlDO0FBU2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBRzlDO0lBV0UsWUFBc0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFWekIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsU0FBSSxHQUFHLEdBQUcsQ0FBQztRQUNYLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLG9CQUFvQjtRQUNqRCxTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRVgsQ0FBQztJQUV2QyxNQUFNLEtBQUssT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFdBQVcsS0FBSyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0IsYUFBYSxL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eXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgUGF0aCwgZ2V0U3lzdGVtUGF0aCwgam9pbiBhcyBfam9pbiwgbm9ybWFsaXplLCB2aXJ0dWFsRnMgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgeyBOb2RlSnNTeW5jSG9zdCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgV2VicGFja1Jlc291cmNlTG9hZGVyIH0gZnJvbSAnLi9yZXNvdXJjZV9sb2FkZXInO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgT25FcnJvckZuIHtcbiAgKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG59XG5cblxuY29uc3QgZGV2ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuXG5cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU3RhdHMgaW1wbGVtZW50cyBmcy5TdGF0cyB7XG4gIHByb3RlY3RlZCBfY3RpbWUgPSBuZXcgRGF0ZSgpO1xuICBwcm90ZWN0ZWQgX210aW1lID0gbmV3IERhdGUoKTtcbiAgcHJvdGVjdGVkIF9hdGltZSA9IG5ldyBEYXRlKCk7XG4gIHByb3RlY3RlZCBfYnRpbWUgPSBuZXcgRGF0ZSgpO1xuICBwcm90ZWN0ZWQgX2RldiA9IGRldjtcbiAgcHJvdGVjdGVkIF9pbm8gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDApO1xuICBwcm90ZWN0ZWQgX21vZGUgPSBwYXJzZUludCgnNzc3JywgOCk7ICAvLyBSV1ggZm9yIGV2ZXJ5b25lLlxuICBwcm90ZWN0ZWQgX3VpZCA9IE51bWJlcihwcm9jZXNzLmVudlsnVUlEJ10pIHx8IDA7XG4gIHByb3RlY3RlZCBfZ2lkID0gTnVtYmVyKHByb2Nlc3MuZW52WydHSUQnXSkgfHwgMDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3BhdGg6IHN0cmluZykge31cblxuICBpc0ZpbGUoKSB7IHJldHVybiBmYWxzZTsgfVxuICBpc0RpcmVjdG9yeSgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIGlzQmxvY2tEZXZpY2UoKSB7IHJldHVybiBmYWxzZTsgfVxuICBpc0NoYXJhY3RlckRldmljZSgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIGlzU3ltYm9saWNMaW5rKCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgaXNGSUZPKCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgaXNTb2NrZXQoKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIGdldCBkZXYoKSB7IHJldHVybiB0aGlzLl9kZXY7IH1cbiAgZ2V0IGlubygpIHsgcmV0dXJuIHRoaXMuX2lubzsgfVxuICBnZXQgbW9kZSgpIHsgcmV0dXJuIHRoaXMuX21vZGU7IH1cbiAgZ2V0IG5saW5rKCkgeyByZXR1cm4gMTsgfSAgLy8gRGVmYXVsdCB0byAxIGhhcmQgbGluay5cbiAgZ2V0IHVpZCgpIHsgcmV0dXJuIHRoaXMuX3VpZDsgfVxuICBnZXQgZ2lkKCkgeyByZXR1cm4gdGhpcy5fZ2lkOyB9XG4gIGdldCByZGV2KCkgeyByZXR1cm4gMDsgfVxuICBnZXQgc2l6ZSgpIHsgcmV0dXJuIDA7IH1cbiAgZ2V0IGJsa3NpemUoKSB7IHJldHVybiA1MTI7IH1cbiAgZ2V0IGJsb2NrcygpIHsgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnNpemUgLyB0aGlzLmJsa3NpemUpOyB9XG4gIGdldCBhdGltZSgpIHsgcmV0dXJuIHRoaXMuX2F0aW1lOyB9XG4gIGdldCBhdGltZU1zKCkgeyByZXR1cm4gdGhpcy5fYXRpbWUuZ2V0VGltZSgpOyB9XG4gIGdldCBtdGltZSgpIHsgcmV0dXJuIHRoaXMuX210aW1lOyB9XG4gIGdldCBtdGltZU1zKCkgeyByZXR1cm4gdGhpcy5fbXRpbWUuZ2V0VGltZSgpOyB9XG4gIGdldCBjdGltZSgpIHsgcmV0dXJuIHRoaXMuX2N0aW1lOyB9XG4gIGdldCBjdGltZU1zKCkgeyByZXR1cm4gdGhpcy5fY3RpbWUuZ2V0VGltZSgpOyB9XG4gIGdldCBiaXJ0aHRpbWUoKSB7IHJldHVybiB0aGlzLl9idGltZTsgfVxuICBnZXQgYmlydGh0aW1lTXMoKSB7IHJldHVybiB0aGlzLl9idGltZS5nZXRUaW1lKCk7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFZpcnR1YWxEaXJTdGF0cyBleHRlbmRzIFZpcnR1YWxTdGF0cyB7XG4gIGNvbnN0cnVjdG9yKF9maWxlTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoX2ZpbGVOYW1lKTtcbiAgfVxuXG4gIGlzRGlyZWN0b3J5KCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gIGdldCBzaXplKCkgeyByZXR1cm4gMTAyNDsgfVxufVxuXG5leHBvcnQgY2xhc3MgVmlydHVhbEZpbGVTdGF0cyBleHRlbmRzIFZpcnR1YWxTdGF0cyB7XG4gIHByaXZhdGUgX3NvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUgfCBudWxsO1xuICBwcml2YXRlIF9jb250ZW50OiBzdHJpbmcgfCBudWxsO1xuICBwcml2YXRlIF9idWZmZXJDb250ZW50OiB2aXJ0dWFsRnMuRmlsZUJ1ZmZlciB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoX2ZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihfZmlsZU5hbWUpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcoX2ZpbGVOYW1lOiBzdHJpbmcsIF9jb250ZW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGF0cyA9IG5ldyBWaXJ0dWFsRmlsZVN0YXRzKF9maWxlTmFtZSk7XG4gICAgc3RhdHMuY29udGVudCA9IF9jb250ZW50O1xuXG4gICAgcmV0dXJuIHN0YXRzO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUZyb21CdWZmZXIoX2ZpbGVOYW1lOiBzdHJpbmcsIF9idWZmZXI6IHZpcnR1YWxGcy5GaWxlQnVmZmVyKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBuZXcgVmlydHVhbEZpbGVTdGF0cyhfZmlsZU5hbWUpO1xuICAgIHN0YXRzLmJ1ZmZlckNvbnRlbnQgPSBfYnVmZmVyO1xuXG4gICAgcmV0dXJuIHN0YXRzO1xuICB9XG5cbiAgZ2V0IGNvbnRlbnQoKSB7XG4gICAgaWYgKCF0aGlzLl9jb250ZW50ICYmIHRoaXMuYnVmZmVyQ29udGVudCkge1xuICAgICAgdGhpcy5fY29udGVudCA9IHZpcnR1YWxGcy5maWxlQnVmZmVyVG9TdHJpbmcodGhpcy5idWZmZXJDb250ZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29udGVudCB8fCAnJztcbiAgfVxuICBzZXQgY29udGVudCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdjtcbiAgICB0aGlzLl9idWZmZXJDb250ZW50ID0gbnVsbDtcbiAgICB0aGlzLnJlc2V0TWV0YWRhdGEoKTtcbiAgfVxuXG4gIGdldCBidWZmZXJDb250ZW50KCkge1xuICAgIGlmICghdGhpcy5fYnVmZmVyQ29udGVudCAmJiB0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9idWZmZXJDb250ZW50ID0gdmlydHVhbEZzLnN0cmluZ1RvRmlsZUJ1ZmZlcih0aGlzLl9jb250ZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYnVmZmVyQ29udGVudCB8fCB2aXJ0dWFsRnMuc3RyaW5nVG9GaWxlQnVmZmVyKCcnKTtcbiAgfVxuICBzZXQgYnVmZmVyQ29udGVudChidWY6IHZpcnR1YWxGcy5GaWxlQnVmZmVyKSB7XG4gICAgdGhpcy5fYnVmZmVyQ29udGVudCA9IGJ1ZjtcbiAgICB0aGlzLl9jb250ZW50ID0gbnVsbDtcbiAgICB0aGlzLnJlc2V0TWV0YWRhdGEoKTtcbiAgfVxuXG4gIHNldFNvdXJjZUZpbGUoc291cmNlRmlsZTogdHMuU291cmNlRmlsZSkge1xuICAgIHRoaXMuX3NvdXJjZUZpbGUgPSBzb3VyY2VGaWxlO1xuICB9XG4gIGdldFNvdXJjZUZpbGUobGFuZ3VhZ2VWZXJzaW9uOiB0cy5TY3JpcHRUYXJnZXQsIHNldFBhcmVudE5vZGVzOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VGaWxlKSB7XG4gICAgICB0aGlzLl9zb3VyY2VGaWxlID0gdHMuY3JlYXRlU291cmNlRmlsZShcbiAgICAgICAgd29ya2Fyb3VuZFJlc29sdmUodGhpcy5fcGF0aCksXG4gICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgbGFuZ3VhZ2VWZXJzaW9uLFxuICAgICAgICBzZXRQYXJlbnROb2Rlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZUZpbGU7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0TWV0YWRhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5fbXRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuX3NvdXJjZUZpbGUgPSBudWxsO1xuICB9XG5cbiAgaXNGaWxlKCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5jb250ZW50Lmxlbmd0aDsgfVxufVxuXG5leHBvcnQgY2xhc3MgV2VicGFja0NvbXBpbGVySG9zdCBpbXBsZW1lbnRzIHRzLkNvbXBpbGVySG9zdCB7XG4gIHByaXZhdGUgX3N5bmNIb3N0OiB2aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdDtcbiAgcHJpdmF0ZSBfZmlsZXM6IHtbcGF0aDogc3RyaW5nXTogVmlydHVhbEZpbGVTdGF0cyB8IG51bGx9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcHJpdmF0ZSBfZGlyZWN0b3JpZXM6IHtbcGF0aDogc3RyaW5nXTogVmlydHVhbERpclN0YXRzIHwgbnVsbH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIHByaXZhdGUgX2NoYW5nZWRGaWxlczoge1twYXRoOiBzdHJpbmddOiBib29sZWFufSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHByaXZhdGUgX2NoYW5nZWREaXJzOiB7W3BhdGg6IHN0cmluZ106IGJvb2xlYW59ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICBwcml2YXRlIF9iYXNlUGF0aDogc3RyaW5nO1xuICBwcml2YXRlIF9zZXRQYXJlbnROb2RlczogYm9vbGVhbjtcblxuICBwcml2YXRlIF9jYWNoZSA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXNvdXJjZUxvYWRlcj86IFdlYnBhY2tSZXNvdXJjZUxvYWRlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9vcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG4gICAgYmFzZVBhdGg6IHN0cmluZyxcbiAgICBwcml2YXRlIF9ob3N0OiB2aXJ0dWFsRnMuSG9zdDxmcy5TdGF0cz4gPSBuZXcgTm9kZUpzU3luY0hvc3QoKSxcbiAgKSB7XG4gICAgdGhpcy5fc3luY0hvc3QgPSBuZXcgdmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3QoX2hvc3QpO1xuICAgIHRoaXMuX3NldFBhcmVudE5vZGVzID0gdHJ1ZTtcbiAgICB0aGlzLl9iYXNlUGF0aCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgoYmFzZVBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpOiBQYXRoIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHBhdGgpO1xuICB9XG5cbiAgZGVub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBnZXRTeXN0ZW1QYXRoKG5vcm1hbGl6ZShwYXRoKSk7XG4gIH1cblxuICByZXNvbHZlKHBhdGg6IHN0cmluZyk6IFBhdGgge1xuICAgIGNvbnN0IHAgPSB0aGlzLl9ub3JtYWxpemVQYXRoKHBhdGgpO1xuICAgIGlmIChwWzBdID09ICcuJykge1xuICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZVBhdGgoam9pbih0aGlzLmdldEN1cnJlbnREaXJlY3RvcnkoKSwgcCkpO1xuICAgIH0gZWxzZSBpZiAocFswXSA9PSAnLycgfHwgcC5tYXRjaCgvXlxcdzpcXC8vKSkge1xuICAgICAgcmV0dXJuIHA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9ub3JtYWxpemVQYXRoKGpvaW4odGhpcy5fYmFzZVBhdGgsIHApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jYWNoZUZpbGUoZmlsZU5hbWU6IHN0cmluZywgc3RhdHM6IFZpcnR1YWxGaWxlU3RhdHMpIHtcbiAgICB0aGlzLl9maWxlc1tmaWxlTmFtZV0gPSBzdGF0cztcblxuICAgIGxldCBwID0gZGlybmFtZShmaWxlTmFtZSk7XG4gICAgd2hpbGUgKHAgJiYgIXRoaXMuX2RpcmVjdG9yaWVzW3BdKSB7XG4gICAgICB0aGlzLl9kaXJlY3Rvcmllc1twXSA9IG5ldyBWaXJ0dWFsRGlyU3RhdHMocCk7XG4gICAgICB0aGlzLl9jaGFuZ2VkRGlyc1twXSA9IHRydWU7XG4gICAgICBwID0gZGlybmFtZShwKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jaGFuZ2VkRmlsZXNbZmlsZU5hbWVdID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBkaXJ0eSgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY2hhbmdlZEZpbGVzKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgZW5hYmxlQ2FjaGluZygpIHtcbiAgICB0aGlzLl9jYWNoZSA9IHRydWU7XG4gIH1cblxuICByZXNldENoYW5nZWRGaWxlVHJhY2tlcigpIHtcbiAgICB0aGlzLl9jaGFuZ2VkRmlsZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2NoYW5nZWREaXJzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIGdldENoYW5nZWRGaWxlUGF0aHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jaGFuZ2VkRmlsZXMpO1xuICB9XG5cbiAgZ2V0TmdGYWN0b3J5UGF0aHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9maWxlcylcbiAgICAgIC5maWx0ZXIoZmlsZU5hbWUgPT4gZmlsZU5hbWUuZW5kc1dpdGgoJy5uZ2ZhY3RvcnkuanMnKSB8fCBmaWxlTmFtZS5lbmRzV2l0aCgnLm5nc3R5bGUuanMnKSlcbiAgICAgIC8vIFRoZXNlIHBhdGhzIGFyZSB1c2VkIGJ5IHRoZSB2aXJ0dWFsIGZpbGUgc3lzdGVtIGRlY29yYXRvciBzbyB3ZSBtdXN0IGRlbm9ybWFsaXplIHRoZW0uXG4gICAgICAubWFwKHBhdGggPT4gdGhpcy5kZW5vcm1hbGl6ZVBhdGgocGF0aCBhcyBQYXRoKSk7XG4gIH1cblxuICBpbnZhbGlkYXRlKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHRoaXMucmVzb2x2ZShmaWxlTmFtZSk7XG5cbiAgICBpZiAoZnVsbFBhdGggaW4gdGhpcy5fZmlsZXMpIHtcbiAgICAgIHRoaXMuX2ZpbGVzW2Z1bGxQYXRoXSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBpbiB0aGlzLl9maWxlcykge1xuICAgICAgICBpZiAoZmlsZS5zdGFydHNXaXRoKGZ1bGxQYXRoICsgJy8nKSkge1xuICAgICAgICAgIHRoaXMuX2ZpbGVzW2ZpbGVdID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5maWxlRXhpc3RzKGZ1bGxQYXRoKSkge1xuICAgICAgdGhpcy5fY2hhbmdlZEZpbGVzW2Z1bGxQYXRoXSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZmlsZUV4aXN0cyhmaWxlTmFtZTogc3RyaW5nLCBkZWxlZ2F0ZSA9IHRydWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlKGZpbGVOYW1lKTtcblxuICAgIHJldHVybiB0aGlzLl9maWxlc1twXSAhPSBudWxsXG4gICAgICB8fCAoZGVsZWdhdGUgJiYgdGhpcy5fc3luY0hvc3QuZXhpc3RzKG5vcm1hbGl6ZShwKSkpO1xuICB9XG5cbiAgcmVhZEZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdHMgPSB0aGlzLmZpbmRWaXJ0dWFsRmlsZShmaWxlTmFtZSk7XG5cbiAgICByZXR1cm4gc3RhdHMgJiYgc3RhdHMuY29udGVudDtcbiAgfVxuXG4gIHJlYWRGaWxlQnVmZmVyKGZpbGVOYW1lOiBzdHJpbmcpOiBCdWZmZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXRzID0gdGhpcy5maW5kVmlydHVhbEZpbGUoZmlsZU5hbWUpO1xuICAgIGlmIChzdGF0cykge1xuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oc3RhdHMuYnVmZmVyQ29udGVudCk7XG5cbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVmlydHVhbEZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IFZpcnR1YWxGaWxlU3RhdHMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUoZmlsZU5hbWUpO1xuXG4gICAgY29uc3Qgc3RhdHMgPSB0aGlzLl9maWxlc1twXTtcbiAgICBpZiAoc3RhdHMpIHtcbiAgICAgIHJldHVybiBzdGF0cztcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZmlsZUJ1ZmZlciA9IHRoaXMuX3N5bmNIb3N0LnJlYWQocCk7XG4gICAgICBpZiAoZmlsZUJ1ZmZlcikge1xuICAgICAgICBjb25zdCBzdGF0cyA9IFZpcnR1YWxGaWxlU3RhdHMuY3JlYXRlRnJvbUJ1ZmZlcihwLCBmaWxlQnVmZmVyKTtcbiAgICAgICAgaWYgKHRoaXMuX2NhY2hlKSB7XG4gICAgICAgICAgdGhpcy5fY2FjaGVGaWxlKHAsIHN0YXRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0cztcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdChwYXRoOiBzdHJpbmcpOiBWaXJ0dWFsU3RhdHMgfCBudWxsIHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlKHBhdGgpO1xuICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fZmlsZXNbcF0gfHwgdGhpcy5fZGlyZWN0b3JpZXNbcF07XG4gICAgaWYgKCFzdGF0cykge1xuICAgICAgcmV0dXJuIHRoaXMuX3N5bmNIb3N0LnN0YXQocCkgYXMgVmlydHVhbFN0YXRzIHwgbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdHM7XG4gIH1cblxuICBkaXJlY3RvcnlFeGlzdHMoZGlyZWN0b3J5TmFtZTogc3RyaW5nLCBkZWxlZ2F0ZSA9IHRydWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlKGRpcmVjdG9yeU5hbWUpO1xuXG4gICAgcmV0dXJuICh0aGlzLl9kaXJlY3Rvcmllc1twXSAhPSBudWxsKVxuICAgICAgICAgICAgfHwgKGRlbGVnYXRlICYmIHRoaXMuX3N5bmNIb3N0LmV4aXN0cyhwKSAmJiB0aGlzLl9zeW5jSG9zdC5pc0RpcmVjdG9yeShwKSk7XG4gIH1cblxuICBnZXRGaWxlcyhwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcCA9IHRoaXMucmVzb2x2ZShwYXRoKTtcblxuICAgIGNvbnN0IHN1YmZpbGVzID0gT2JqZWN0LmtleXModGhpcy5fZmlsZXMpXG4gICAgICAuZmlsdGVyKGZpbGVOYW1lID0+IGRpcm5hbWUoZmlsZU5hbWUpID09IHApXG4gICAgICAubWFwKHAgPT4gYmFzZW5hbWUocCkpO1xuXG5cbiAgICBsZXQgZGVsZWdhdGVkOiBzdHJpbmdbXTtcbiAgICB0cnkge1xuICAgICAgZGVsZWdhdGVkID0gdGhpcy5fc3luY0hvc3QubGlzdChwKS5maWx0ZXIoKHg6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9zeW5jSG9zdC5pc0ZpbGUoX2pvaW4ocCwgeCkpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgZGVsZWdhdGVkID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlZC5jb25jYXQoc3ViZmlsZXMpO1xuICB9XG5cbiAgZ2V0RGlyZWN0b3JpZXMocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmUocGF0aCk7XG4gICAgY29uc3Qgc3ViZGlycyA9IE9iamVjdC5rZXlzKHRoaXMuX2RpcmVjdG9yaWVzKVxuICAgICAgLmZpbHRlcihmaWxlTmFtZSA9PiBkaXJuYW1lKGZpbGVOYW1lKSA9PSBwKVxuICAgICAgLm1hcChwYXRoID0+IGJhc2VuYW1lKHBhdGgpKTtcblxuICAgIGxldCBkZWxlZ2F0ZWQ6IHN0cmluZ1tdO1xuICAgIHRyeSB7XG4gICAgICBkZWxlZ2F0ZWQgPSB0aGlzLl9zeW5jSG9zdC5saXN0KHApLmZpbHRlcigoeDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3N5bmNIb3N0LmlzRGlyZWN0b3J5KF9qb2luKHAsIHgpKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGRlbGVnYXRlZCA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZWQuY29uY2F0KHN1YmRpcnMpO1xuICB9XG5cbiAgZ2V0U291cmNlRmlsZShmaWxlTmFtZTogc3RyaW5nLCBsYW5ndWFnZVZlcnNpb246IHRzLlNjcmlwdFRhcmdldCwgX29uRXJyb3I/OiBPbkVycm9yRm4pIHtcbiAgICBmaWxlTmFtZSA9IHRoaXMucmVzb2x2ZShmaWxlTmFtZSk7XG5cbiAgICBsZXQgc3RhdHMgPSB0aGlzLl9maWxlc1tmaWxlTmFtZV07XG4gICAgaWYgKCFzdGF0cykge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucmVhZEZpbGUoZmlsZU5hbWUpO1xuXG4gICAgICBpZiAoIXRoaXMuX2NhY2hlICYmIGNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIHRzLmNyZWF0ZVNvdXJjZUZpbGUoXG4gICAgICAgICAgd29ya2Fyb3VuZFJlc29sdmUoZmlsZU5hbWUpLFxuICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgbGFuZ3VhZ2VWZXJzaW9uLFxuICAgICAgICAgIHRoaXMuX3NldFBhcmVudE5vZGVzLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdHMgPSB0aGlzLl9maWxlc1tmaWxlTmFtZV07XG4gICAgICAgIGlmICghc3RhdHMpIHtcbiAgICAgICAgICAvLyBJZiBjYWNoZSBpcyB0dXJuZWQgb24gYW5kIHRoZSBmaWxlIGV4aXN0cywgdGhlIHJlYWRGaWxlIGNhbGwgd2lsbCBoYXZlIHBvcHVsYXRlZCBzdGF0cy5cbiAgICAgICAgICAvLyBFbXB0eSBzdGF0cyBhdCB0aGlzIHBvaW50IG1lYW4gdGhlIGZpbGUgZG9lc24ndCBleGlzdCBhdCBhbmQgc28gd2Ugc2hvdWxkIHJldHVyblxuICAgICAgICAgIC8vIHVuZGVmaW5lZC5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRzICYmIHN0YXRzLmdldFNvdXJjZUZpbGUobGFuZ3VhZ2VWZXJzaW9uLCB0aGlzLl9zZXRQYXJlbnROb2Rlcyk7XG4gIH1cblxuICBnZXQgZ2V0Q2FuY2VsbGF0aW9uVG9rZW4oKSB7XG4gICAgLy8gcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmdldENhbmNlbGxhdGlvblRva2VuO1xuICAgIC8vIFRPRE86IGNvbnNpZGVyIGltcGxlbWVudGluZyBhIGNhbmNlbGxhdGlvbiB0b2tlbi5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RGVmYXVsdExpYkZpbGVOYW1lKG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucykge1xuICAgIHJldHVybiB0cy5jcmVhdGVDb21waWxlckhvc3Qob3B0aW9ucywgZmFsc2UpLmdldERlZmF1bHRMaWJGaWxlTmFtZShvcHRpb25zKTtcbiAgfVxuXG4gIC8vIFRoaXMgaXMgZHVlIHRvIHR5cGVzY3JpcHQgQ29tcGlsZXJIb3N0IGludGVyZmFjZSBiZWluZyB3ZWlyZCBvbiB3cml0ZUZpbGUuIFRoaXMgc2h1dHMgZG93blxuICAvLyB0eXBpbmdzIGluIFdlYlN0b3JtLlxuICBnZXQgd3JpdGVGaWxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgZGF0YTogc3RyaW5nLFxuICAgICAgX3dyaXRlQnl0ZU9yZGVyTWFyazogYm9vbGVhbixcbiAgICAgIF9vbkVycm9yPzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgICAgIF9zb3VyY2VGaWxlcz86IFJlYWRvbmx5QXJyYXk8dHMuU291cmNlRmlsZT4sXG4gICAgKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlKGZpbGVOYW1lKTtcbiAgICAgIGNvbnN0IHN0YXRzID0gVmlydHVhbEZpbGVTdGF0cy5jcmVhdGVGcm9tU3RyaW5nKHAsIGRhdGEpO1xuICAgICAgdGhpcy5fY2FjaGVGaWxlKHAsIHN0YXRzKTtcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q3VycmVudERpcmVjdG9yeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9iYXNlUGF0aCAhPT0gbnVsbCA/IHRoaXMuX2Jhc2VQYXRoIDogJy8nO1xuICB9XG5cbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZShmaWxlTmFtZSk7XG4gIH1cblxuICB1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhcHJvY2Vzcy5wbGF0Zm9ybS5zdGFydHNXaXRoKCd3aW4zMicpO1xuICB9XG5cbiAgZ2V0TmV3TGluZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnXFxuJztcbiAgfVxuXG4gIHNldFJlc291cmNlTG9hZGVyKHJlc291cmNlTG9hZGVyOiBXZWJwYWNrUmVzb3VyY2VMb2FkZXIpIHtcbiAgICB0aGlzLl9yZXNvdXJjZUxvYWRlciA9IHJlc291cmNlTG9hZGVyO1xuICB9XG5cbiAgcmVhZFJlc291cmNlKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fcmVzb3VyY2VMb2FkZXIpIHtcbiAgICAgIC8vIFRoZXNlIHBhdGhzIGFyZSBtZWFudCB0byBiZSB1c2VkIGJ5IHRoZSBsb2FkZXIgc28gd2UgbXVzdCBkZW5vcm1hbGl6ZSB0aGVtLlxuICAgICAgY29uc3QgZGVub3JtYWxpemVkRmlsZU5hbWUgPSB0aGlzLmRlbm9ybWFsaXplUGF0aChub3JtYWxpemUoZmlsZU5hbWUpKTtcblxuICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlTG9hZGVyLmdldChkZW5vcm1hbGl6ZWRGaWxlTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYWRGaWxlKGZpbGVOYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBgVHNDb21waWxlckFvdENvbXBpbGVyVHlwZUNoZWNrSG9zdEFkYXB0ZXJgIGluIEBhbmd1bGFyL2NvbXBpbGVyLWNsaSBzZWVtcyB0byByZXNvbHZlIG1vZHVsZVxuLy8gbmFtZXMgZGlyZWN0bHkgdmlhIGByZXNvbHZlTW9kdWxlTmFtZWAsIHdoaWNoIHByZXZlbnRzIGZ1bGwgUGF0aCB1c2FnZS5cbi8vIFRvIHdvcmsgYXJvdW5kIHRoaXMgd2UgbXVzdCBwcm92aWRlIHRoZSBzYW1lIHBhdGggZm9ybWF0IGFzIFRTIGludGVybmFsbHkgdXNlcyBpblxuLy8gdGhlIFNvdXJjZUZpbGUgcGF0aHMuXG5leHBvcnQgZnVuY3Rpb24gd29ya2Fyb3VuZFJlc29sdmUocGF0aDogUGF0aCB8IHN0cmluZykge1xuICByZXR1cm4gZ2V0U3lzdGVtUGF0aChub3JtYWxpemUocGF0aCkpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbn1cbiJdfQ==
|
package/src/entry_resolver.js
CHANGED
|
@@ -137,4 +137,4 @@ function resolveEntryModuleFromMain(mainPath, host, program) {
|
|
|
137
137
|
+ 'to the plugins options.');
|
|
138
138
|
}
|
|
139
139
|
exports.resolveEntryModuleFromMain = resolveEntryModuleFromMain;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlfcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL25ndG9vbHMvd2VicGFjay9zcmMvZW50cnlfcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx5QkFBeUI7QUFDekIsK0JBQTRCO0FBQzVCLGlDQUFpQztBQUNqQyx5Q0FBb0Q7QUFHcEQsc0NBQXNDLFFBQWdDLEVBQ2hDLFVBQWtCLEVBQ2xCLElBQXFCLEVBQ3JCLE9BQW1CO0lBQ3ZELG1CQUFtQjtJQUNuQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1NBQzFFLElBQUksQ0FBQyxDQUFDLEVBQXVCLEVBQUUsRUFBRTtRQUNoQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztTQUN6RSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUE0QixDQUFDLENBQUM7SUFFN0MsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLFFBQVEsQ0FBQztRQUNYLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBSSxJQUFJLENBQUMsZUFBb0MsQ0FBQyxJQUFJLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUN6QyxVQUFVLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN0RixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDOUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLGNBQWMsR0FBRyxJQUFJLGlDQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekUsTUFBTSxXQUFXLEdBQUcsNEJBQTRCLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUYsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUNyQixDQUFDO1lBQ0QsUUFBUSxDQUFDO1FBQ1gsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUErQixDQUFDO1FBQ3JELEdBQUcsQ0FBQyxDQUFDLE1BQU0sU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLDhEQUE4RDtnQkFDOUQsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQzdDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLGlDQUFzQixDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7d0JBQzdFLE1BQU0sV0FBVyxHQUFHLDRCQUE0QixDQUM5QyxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDNUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs0QkFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FBQzt3QkFDckIsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsb0VBQW9FO2dCQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGlDQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7cUJBQ3hFLElBQUksQ0FBQyxDQUFDLEVBQXVCLEVBQUUsRUFBRTtvQkFDaEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQztnQkFDNUQsQ0FBQyxDQUFDLENBQUM7Z0JBRUwsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDZCxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNoQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCw2QkFBNkIsUUFBZ0MsRUFDaEMsVUFBa0IsRUFDbEIsSUFBcUIsRUFDckIsT0FBbUI7SUFDOUMsZ0ZBQWdGO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7U0FDekUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBNEIsQ0FBQyxDQUFDO0lBRTdDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsUUFBUSxDQUFDO1FBQ1gsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUM5RCxRQUFRLENBQUM7UUFDWCxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUN4QyxJQUFJLENBQUMsZUFBb0MsQ0FBQyxJQUFJLEVBQy9DLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDdEYsUUFBUSxDQUFDO1FBQ1gsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDOUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO2VBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDN0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFtQyxDQUFDO1lBQ3RFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLDRCQUE0QjtnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWE7ZUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNqRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWdDLENBQUM7WUFDbkUsR0FBRyxDQUFDLENBQUMsTUFBTSxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLHVEQUF1RDtvQkFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNqRSxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDcEYsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzt3QkFDaEIsTUFBTSxDQUFDLFdBQVcsQ0FBQztvQkFDckIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNkLENBQUM7QUFHRCxvQ0FBMkMsUUFBZ0IsRUFDaEIsSUFBcUIsRUFDckIsT0FBbUI7SUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQ0FBc0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRW5FLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7U0FDekYsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBeUIsQ0FBQztTQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBeUMsQ0FBQztRQUU5RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QjtlQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVU7ZUFDNUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUI7bUJBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLHdCQUF3QixDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWtCLENBQUM7U0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpELEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5QyxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQ7VUFDMUUsaUVBQWlFO1VBQ2pFLHlCQUF5QixDQUFDLENBQUM7QUFDakMsQ0FBQztBQS9CRCxnRUErQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFR5cGVTY3JpcHRGaWxlUmVmYWN0b3IgfSBmcm9tICcuL3JlZmFjdG9yJztcblxuXG5mdW5jdGlvbiBfcmVjdXJzaXZlU3ltYm9sRXhwb3J0TG9va3VwKHJlZmFjdG9yOiBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q6IHRzLkNvbXBpbGVySG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbTogdHMuUHJvZ3JhbSk6IHN0cmluZyB8IG51bGwge1xuICAvLyBDaGVjayB0aGlzIGZpbGUuXG4gIGNvbnN0IGhhc1N5bWJvbCA9IHJlZmFjdG9yLmZpbmRBc3ROb2RlcyhudWxsLCB0cy5TeW50YXhLaW5kLkNsYXNzRGVjbGFyYXRpb24pXG4gICAgLnNvbWUoKGNkOiB0cy5DbGFzc0RlY2xhcmF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gY2QubmFtZSAhPSB1bmRlZmluZWQgJiYgY2QubmFtZS50ZXh0ID09IHN5bWJvbE5hbWU7XG4gICAgfSk7XG4gIGlmIChoYXNTeW1ib2wpIHtcbiAgICByZXR1cm4gcmVmYWN0b3IuZmlsZU5hbWU7XG4gIH1cblxuICAvLyBXZSBmb3VuZCB0aGUgYm9vdHN0cmFwIHZhcmlhYmxlLCBub3cgd2UganVzdCBuZWVkIHRvIGdldCB3aGVyZSBpdCdzIGltcG9ydGVkLlxuICBjb25zdCBleHBvcnRzID0gcmVmYWN0b3IuZmluZEFzdE5vZGVzKG51bGwsIHRzLlN5bnRheEtpbmQuRXhwb3J0RGVjbGFyYXRpb24pXG4gICAgLm1hcChub2RlID0+IG5vZGUgYXMgdHMuRXhwb3J0RGVjbGFyYXRpb24pO1xuXG4gIGZvciAoY29uc3QgZGVjbCBvZiBleHBvcnRzKSB7XG4gICAgaWYgKCFkZWNsLm1vZHVsZVNwZWNpZmllciB8fCBkZWNsLm1vZHVsZVNwZWNpZmllci5raW5kICE9PSB0cy5TeW50YXhLaW5kLlN0cmluZ0xpdGVyYWwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSAoZGVjbC5tb2R1bGVTcGVjaWZpZXIgYXMgdHMuU3RyaW5nTGl0ZXJhbCkudGV4dDtcbiAgICBjb25zdCByZXNvbHZlZE1vZHVsZSA9IHRzLnJlc29sdmVNb2R1bGVOYW1lKFxuICAgICAgbW9kdWxlUGF0aCwgcmVmYWN0b3IuZmlsZU5hbWUsIHByb2dyYW0uZ2V0Q29tcGlsZXJPcHRpb25zKCksIGhvc3QpO1xuICAgIGlmICghcmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRNb2R1bGUgfHwgIXJlc29sdmVkTW9kdWxlLnJlc29sdmVkTW9kdWxlLnJlc29sdmVkRmlsZU5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZSA9IHJlc29sdmVkTW9kdWxlLnJlc29sdmVkTW9kdWxlLnJlc29sdmVkRmlsZU5hbWU7XG4gICAgaWYgKCFkZWNsLmV4cG9ydENsYXVzZSkge1xuICAgICAgY29uc3QgbW9kdWxlUmVmYWN0b3IgPSBuZXcgVHlwZVNjcmlwdEZpbGVSZWZhY3Rvcihtb2R1bGUsIGhvc3QsIHByb2dyYW0pO1xuICAgICAgY29uc3QgbWF5YmVNb2R1bGUgPSBfcmVjdXJzaXZlU3ltYm9sRXhwb3J0TG9va3VwKG1vZHVsZVJlZmFjdG9yLCBzeW1ib2xOYW1lLCBob3N0LCBwcm9ncmFtKTtcbiAgICAgIGlmIChtYXliZU1vZHVsZSkge1xuICAgICAgICByZXR1cm4gbWF5YmVNb2R1bGU7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBiaW5kaW5nID0gZGVjbC5leHBvcnRDbGF1c2UgYXMgdHMuTmFtZWRFeHBvcnRzO1xuICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIGJpbmRpbmcuZWxlbWVudHMpIHtcbiAgICAgIGlmIChzcGVjaWZpZXIubmFtZS50ZXh0ID09IHN5bWJvbE5hbWUpIHtcbiAgICAgICAgLy8gSWYgaXQncyBhIGRpcmVjdG9yeSwgbG9hZCBpdHMgaW5kZXggYW5kIHJlY3Vyc2l2ZWx5IGxvb2t1cC5cbiAgICAgICAgaWYgKGZzLnN0YXRTeW5jKG1vZHVsZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIGNvbnN0IGluZGV4TW9kdWxlID0gam9pbihtb2R1bGUsICdpbmRleC50cycpO1xuICAgICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGluZGV4TW9kdWxlKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhSZWZhY3RvciA9IG5ldyBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yKGluZGV4TW9kdWxlLCBob3N0LCBwcm9ncmFtKTtcbiAgICAgICAgICAgIGNvbnN0IG1heWJlTW9kdWxlID0gX3JlY3Vyc2l2ZVN5bWJvbEV4cG9ydExvb2t1cChcbiAgICAgICAgICAgICAgaW5kZXhSZWZhY3Rvciwgc3ltYm9sTmFtZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICAgICAgICBpZiAobWF5YmVNb2R1bGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG1heWJlTW9kdWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgc291cmNlIGFuZCB2ZXJpZnkgdGhhdCB0aGUgc3ltYm9sIGlzIGF0IGxlYXN0IGEgY2xhc3MuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yKG1vZHVsZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICAgIGNvbnN0IGhhc1N5bWJvbCA9IHNvdXJjZS5maW5kQXN0Tm9kZXMobnVsbCwgdHMuU3ludGF4S2luZC5DbGFzc0RlY2xhcmF0aW9uKVxuICAgICAgICAgIC5zb21lKChjZDogdHMuQ2xhc3NEZWNsYXJhdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNkLm5hbWUgIT0gdW5kZWZpbmVkICYmIGNkLm5hbWUudGV4dCA9PSBzeW1ib2xOYW1lO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChoYXNTeW1ib2wpIHtcbiAgICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIF9zeW1ib2xJbXBvcnRMb29rdXAocmVmYWN0b3I6IFR5cGVTY3JpcHRGaWxlUmVmYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbE5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogdHMuQ29tcGlsZXJIb3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtOiB0cy5Qcm9ncmFtKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIFdlIGZvdW5kIHRoZSBib290c3RyYXAgdmFyaWFibGUsIG5vdyB3ZSBqdXN0IG5lZWQgdG8gZ2V0IHdoZXJlIGl0J3MgaW1wb3J0ZWQuXG4gIGNvbnN0IGltcG9ydHMgPSByZWZhY3Rvci5maW5kQXN0Tm9kZXMobnVsbCwgdHMuU3ludGF4S2luZC5JbXBvcnREZWNsYXJhdGlvbilcbiAgICAubWFwKG5vZGUgPT4gbm9kZSBhcyB0cy5JbXBvcnREZWNsYXJhdGlvbik7XG5cbiAgZm9yIChjb25zdCBkZWNsIG9mIGltcG9ydHMpIHtcbiAgICBpZiAoIWRlY2wuaW1wb3J0Q2xhdXNlIHx8ICFkZWNsLm1vZHVsZVNwZWNpZmllcikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChkZWNsLm1vZHVsZVNwZWNpZmllci5raW5kICE9PSB0cy5TeW50YXhLaW5kLlN0cmluZ0xpdGVyYWwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdmVkTW9kdWxlID0gdHMucmVzb2x2ZU1vZHVsZU5hbWUoXG4gICAgICAoZGVjbC5tb2R1bGVTcGVjaWZpZXIgYXMgdHMuU3RyaW5nTGl0ZXJhbCkudGV4dCxcbiAgICAgIHJlZmFjdG9yLmZpbGVOYW1lLCBwcm9ncmFtLmdldENvbXBpbGVyT3B0aW9ucygpLCBob3N0KTtcbiAgICBpZiAoIXJlc29sdmVkTW9kdWxlLnJlc29sdmVkTW9kdWxlIHx8ICFyZXNvbHZlZE1vZHVsZS5yZXNvbHZlZE1vZHVsZS5yZXNvbHZlZEZpbGVOYW1lKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGUgPSByZXNvbHZlZE1vZHVsZS5yZXNvbHZlZE1vZHVsZS5yZXNvbHZlZEZpbGVOYW1lO1xuICAgIGlmIChkZWNsLmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzXG4gICAgICAgICYmIGRlY2wuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3Mua2luZCA9PSB0cy5TeW50YXhLaW5kLk5hbWVzcGFjZUltcG9ydCkge1xuICAgICAgY29uc3QgYmluZGluZyA9IGRlY2wuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3MgYXMgdHMuTmFtZXNwYWNlSW1wb3J0O1xuICAgICAgaWYgKGJpbmRpbmcubmFtZS50ZXh0ID09IHN5bWJvbE5hbWUpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIGRlZmF1bHQgZXhwb3J0LlxuICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVjbC5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5nc1xuICAgICAgICAgICAgICAgJiYgZGVjbC5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncy5raW5kID09IHRzLlN5bnRheEtpbmQuTmFtZWRJbXBvcnRzKSB7XG4gICAgICBjb25zdCBiaW5kaW5nID0gZGVjbC5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncyBhcyB0cy5OYW1lZEltcG9ydHM7XG4gICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBiaW5kaW5nLmVsZW1lbnRzKSB7XG4gICAgICAgIGlmIChzcGVjaWZpZXIubmFtZS50ZXh0ID09IHN5bWJvbE5hbWUpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgdGhlIHNvdXJjZSBhbmQgcmVjdXJzaXZlbHkgbG9va3VwIHRoZSBpbXBvcnQuXG4gICAgICAgICAgY29uc3Qgc291cmNlID0gbmV3IFR5cGVTY3JpcHRGaWxlUmVmYWN0b3IobW9kdWxlLCBob3N0LCBwcm9ncmFtKTtcbiAgICAgICAgICBjb25zdCBtYXliZU1vZHVsZSA9IF9yZWN1cnNpdmVTeW1ib2xFeHBvcnRMb29rdXAoc291cmNlLCBzeW1ib2xOYW1lLCBob3N0LCBwcm9ncmFtKTtcbiAgICAgICAgICBpZiAobWF5YmVNb2R1bGUpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXliZU1vZHVsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVudHJ5TW9kdWxlRnJvbU1haW4obWFpblBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0OiB0cy5Db21waWxlckhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbTogdHMuUHJvZ3JhbSk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBzb3VyY2UgPSBuZXcgVHlwZVNjcmlwdEZpbGVSZWZhY3RvcihtYWluUGF0aCwgaG9zdCwgcHJvZ3JhbSk7XG5cbiAgY29uc3QgYm9vdHN0cmFwID0gc291cmNlLmZpbmRBc3ROb2Rlcyhzb3VyY2Uuc291cmNlRmlsZSwgdHMuU3ludGF4S2luZC5DYWxsRXhwcmVzc2lvbiwgdHJ1ZSlcbiAgICAubWFwKG5vZGUgPT4gbm9kZSBhcyB0cy5DYWxsRXhwcmVzc2lvbilcbiAgICAuZmlsdGVyKGNhbGwgPT4ge1xuICAgICAgY29uc3QgYWNjZXNzID0gY2FsbC5leHByZXNzaW9uIGFzIHRzLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjtcblxuICAgICAgcmV0dXJuIGFjY2Vzcy5raW5kID09IHRzLlN5bnRheEtpbmQuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uXG4gICAgICAgICAgJiYgYWNjZXNzLm5hbWUua2luZCA9PSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXJcbiAgICAgICAgICAmJiAoYWNjZXNzLm5hbWUudGV4dCA9PSAnYm9vdHN0cmFwTW9kdWxlJ1xuICAgICAgICAgICAgICB8fCBhY2Nlc3MubmFtZS50ZXh0ID09ICdib290c3RyYXBNb2R1bGVGYWN0b3J5Jyk7XG4gICAgfSlcbiAgICAubWFwKG5vZGUgPT4gbm9kZS5hcmd1bWVudHNbMF0gYXMgdHMuSWRlbnRpZmllcilcbiAgICAuZmlsdGVyKG5vZGUgPT4gbm9kZS5raW5kID09IHRzLlN5bnRheEtpbmQuSWRlbnRpZmllcik7XG5cbiAgaWYgKGJvb3RzdHJhcC5sZW5ndGggIT0gMSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGJvb3RzdHJhcFN5bWJvbE5hbWUgPSBib290c3RyYXBbMF0udGV4dDtcbiAgY29uc3QgbW9kdWxlID0gX3N5bWJvbEltcG9ydExvb2t1cChzb3VyY2UsIGJvb3RzdHJhcFN5bWJvbE5hbWUsIGhvc3QsIHByb2dyYW0pO1xuICBpZiAobW9kdWxlKSB7XG4gICAgcmV0dXJuIGAke21vZHVsZS5yZXBsYWNlKC9cXC50cyQvLCAnJyl9IyR7Ym9vdHN0cmFwU3ltYm9sTmFtZX1gO1xuICB9XG5cbiAgLy8gc2hydWcuLi4gc29tZXRoaW5nIGJhZCBoYXBwZW5lZCBhbmQgd2UgY291bGRuJ3QgZmluZCB0aGUgaW1wb3J0IHN0YXRlbWVudC5cbiAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCB0byBmaW5kIGJvb3RzdHJhcCBjb2RlLCBidXQgY291bGQgbm90LiBTcGVjaWZ5IGVpdGhlciAnXG4gICAgKyAnc3RhdGljYWxseSBhbmFseXphYmxlIGJvb3RzdHJhcCBjb2RlIG9yIHBhc3MgaW4gYW4gZW50cnlNb2R1bGUgJ1xuICAgICsgJ3RvIHRoZSBwbHVnaW5zIG9wdGlvbnMuJyk7XG59XG4iXX0=
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlfcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL25ndG9vbHMvd2VicGFjay9zcmMvZW50cnlfcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx5QkFBeUI7QUFDekIsK0JBQTRCO0FBQzVCLGlDQUFpQztBQUNqQyx5Q0FBb0Q7QUFHcEQsc0NBQXNDLFFBQWdDLEVBQ2hDLFVBQWtCLEVBQ2xCLElBQXFCLEVBQ3JCLE9BQW1CO0lBQ3ZELG1CQUFtQjtJQUNuQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1NBQzFFLElBQUksQ0FBQyxDQUFDLEVBQXVCLEVBQUUsRUFBRTtRQUNoQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQztJQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNMLElBQUksU0FBUyxFQUFFO1FBQ2IsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0tBQzFCO0lBRUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7U0FDekUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBNEIsQ0FBQyxDQUFDO0lBRTdDLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxFQUFFO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQ3RGLFNBQVM7U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFJLElBQUksQ0FBQyxlQUFvQyxDQUFDLElBQUksQ0FB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RSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUMsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxJQUFJLE1BQU0sRUFBRTtRQUNWLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0tBQ2hFO0lBRUQsNkVBQTZFO0lBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThEO1VBQzFFLGlFQUFpRTtVQUNqRSx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUEvQkQsZ0VBK0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yIH0gZnJvbSAnLi9yZWZhY3Rvcic7XG5cblxuZnVuY3Rpb24gX3JlY3Vyc2l2ZVN5bWJvbEV4cG9ydExvb2t1cChyZWZhY3RvcjogVHlwZVNjcmlwdEZpbGVSZWZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0OiB0cy5Db21waWxlckhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW06IHRzLlByb2dyYW0pOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gQ2hlY2sgdGhpcyBmaWxlLlxuICBjb25zdCBoYXNTeW1ib2wgPSByZWZhY3Rvci5maW5kQXN0Tm9kZXMobnVsbCwgdHMuU3ludGF4S2luZC5DbGFzc0RlY2xhcmF0aW9uKVxuICAgIC5zb21lKChjZDogdHMuQ2xhc3NEZWNsYXJhdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGNkLm5hbWUgIT0gdW5kZWZpbmVkICYmIGNkLm5hbWUudGV4dCA9PSBzeW1ib2xOYW1lO1xuICAgIH0pO1xuICBpZiAoaGFzU3ltYm9sKSB7XG4gICAgcmV0dXJuIHJlZmFjdG9yLmZpbGVOYW1lO1xuICB9XG5cbiAgLy8gV2UgZm91bmQgdGhlIGJvb3RzdHJhcCB2YXJpYWJsZSwgbm93IHdlIGp1c3QgbmVlZCB0byBnZXQgd2hlcmUgaXQncyBpbXBvcnRlZC5cbiAgY29uc3QgZXhwb3J0cyA9IHJlZmFjdG9yLmZpbmRBc3ROb2RlcyhudWxsLCB0cy5TeW50YXhLaW5kLkV4cG9ydERlY2xhcmF0aW9uKVxuICAgIC5tYXAobm9kZSA9PiBub2RlIGFzIHRzLkV4cG9ydERlY2xhcmF0aW9uKTtcblxuICBmb3IgKGNvbnN0IGRlY2wgb2YgZXhwb3J0cykge1xuICAgIGlmICghZGVjbC5tb2R1bGVTcGVjaWZpZXIgfHwgZGVjbC5tb2R1bGVTcGVjaWZpZXIua2luZCAhPT0gdHMuU3ludGF4S2luZC5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gKGRlY2wubW9kdWxlU3BlY2lmaWVyIGFzIHRzLlN0cmluZ0xpdGVyYWwpLnRleHQ7XG4gICAgY29uc3QgcmVzb2x2ZWRNb2R1bGUgPSB0cy5yZXNvbHZlTW9kdWxlTmFtZShcbiAgICAgIG1vZHVsZVBhdGgsIHJlZmFjdG9yLmZpbGVOYW1lLCBwcm9ncmFtLmdldENvbXBpbGVyT3B0aW9ucygpLCBob3N0KTtcbiAgICBpZiAoIXJlc29sdmVkTW9kdWxlLnJlc29sdmVkTW9kdWxlIHx8ICFyZXNvbHZlZE1vZHVsZS5yZXNvbHZlZE1vZHVsZS5yZXNvbHZlZEZpbGVOYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGUgPSByZXNvbHZlZE1vZHVsZS5yZXNvbHZlZE1vZHVsZS5yZXNvbHZlZEZpbGVOYW1lO1xuICAgIGlmICghZGVjbC5leHBvcnRDbGF1c2UpIHtcbiAgICAgIGNvbnN0IG1vZHVsZVJlZmFjdG9yID0gbmV3IFR5cGVTY3JpcHRGaWxlUmVmYWN0b3IobW9kdWxlLCBob3N0LCBwcm9ncmFtKTtcbiAgICAgIGNvbnN0IG1heWJlTW9kdWxlID0gX3JlY3Vyc2l2ZVN5bWJvbEV4cG9ydExvb2t1cChtb2R1bGVSZWZhY3Rvciwgc3ltYm9sTmFtZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICBpZiAobWF5YmVNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG1heWJlTW9kdWxlO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYmluZGluZyA9IGRlY2wuZXhwb3J0Q2xhdXNlIGFzIHRzLk5hbWVkRXhwb3J0cztcbiAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBiaW5kaW5nLmVsZW1lbnRzKSB7XG4gICAgICBpZiAoc3BlY2lmaWVyLm5hbWUudGV4dCA9PSBzeW1ib2xOYW1lKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYSBkaXJlY3RvcnksIGxvYWQgaXRzIGluZGV4IGFuZCByZWN1cnNpdmVseSBsb29rdXAuXG4gICAgICAgIGlmIChmcy5zdGF0U3luYyhtb2R1bGUpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICBjb25zdCBpbmRleE1vZHVsZSA9IGpvaW4obW9kdWxlLCAnaW5kZXgudHMnKTtcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhpbmRleE1vZHVsZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4UmVmYWN0b3IgPSBuZXcgVHlwZVNjcmlwdEZpbGVSZWZhY3RvcihpbmRleE1vZHVsZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICAgICAgICBjb25zdCBtYXliZU1vZHVsZSA9IF9yZWN1cnNpdmVTeW1ib2xFeHBvcnRMb29rdXAoXG4gICAgICAgICAgICAgIGluZGV4UmVmYWN0b3IsIHN5bWJvbE5hbWUsIGhvc3QsIHByb2dyYW0pO1xuICAgICAgICAgICAgaWYgKG1heWJlTW9kdWxlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBtYXliZU1vZHVsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgdGhlIHNvdXJjZSBhbmQgdmVyaWZ5IHRoYXQgdGhlIHN5bWJvbCBpcyBhdCBsZWFzdCBhIGNsYXNzLlxuICAgICAgICBjb25zdCBzb3VyY2UgPSBuZXcgVHlwZVNjcmlwdEZpbGVSZWZhY3Rvcihtb2R1bGUsIGhvc3QsIHByb2dyYW0pO1xuICAgICAgICBjb25zdCBoYXNTeW1ib2wgPSBzb3VyY2UuZmluZEFzdE5vZGVzKG51bGwsIHRzLlN5bnRheEtpbmQuQ2xhc3NEZWNsYXJhdGlvbilcbiAgICAgICAgICAuc29tZSgoY2Q6IHRzLkNsYXNzRGVjbGFyYXRpb24pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjZC5uYW1lICE9IHVuZGVmaW5lZCAmJiBjZC5uYW1lLnRleHQgPT0gc3ltYm9sTmFtZTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaGFzU3ltYm9sKSB7XG4gICAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBfc3ltYm9sSW1wb3J0TG9va3VwKHJlZmFjdG9yOiBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q6IHRzLkNvbXBpbGVySG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbTogdHMuUHJvZ3JhbSk6IHN0cmluZyB8IG51bGwge1xuICAvLyBXZSBmb3VuZCB0aGUgYm9vdHN0cmFwIHZhcmlhYmxlLCBub3cgd2UganVzdCBuZWVkIHRvIGdldCB3aGVyZSBpdCdzIGltcG9ydGVkLlxuICBjb25zdCBpbXBvcnRzID0gcmVmYWN0b3IuZmluZEFzdE5vZGVzKG51bGwsIHRzLlN5bnRheEtpbmQuSW1wb3J0RGVjbGFyYXRpb24pXG4gICAgLm1hcChub2RlID0+IG5vZGUgYXMgdHMuSW1wb3J0RGVjbGFyYXRpb24pO1xuXG4gIGZvciAoY29uc3QgZGVjbCBvZiBpbXBvcnRzKSB7XG4gICAgaWYgKCFkZWNsLmltcG9ydENsYXVzZSB8fCAhZGVjbC5tb2R1bGVTcGVjaWZpZXIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoZGVjbC5tb2R1bGVTcGVjaWZpZXIua2luZCAhPT0gdHMuU3ludGF4S2luZC5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZE1vZHVsZSA9IHRzLnJlc29sdmVNb2R1bGVOYW1lKFxuICAgICAgKGRlY2wubW9kdWxlU3BlY2lmaWVyIGFzIHRzLlN0cmluZ0xpdGVyYWwpLnRleHQsXG4gICAgICByZWZhY3Rvci5maWxlTmFtZSwgcHJvZ3JhbS5nZXRDb21waWxlck9wdGlvbnMoKSwgaG9zdCk7XG4gICAgaWYgKCFyZXNvbHZlZE1vZHVsZS5yZXNvbHZlZE1vZHVsZSB8fCAhcmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlID0gcmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZTtcbiAgICBpZiAoZGVjbC5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5nc1xuICAgICAgICAmJiBkZWNsLmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzLmtpbmQgPT0gdHMuU3ludGF4S2luZC5OYW1lc3BhY2VJbXBvcnQpIHtcbiAgICAgIGNvbnN0IGJpbmRpbmcgPSBkZWNsLmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzIGFzIHRzLk5hbWVzcGFjZUltcG9ydDtcbiAgICAgIGlmIChiaW5kaW5nLm5hbWUudGV4dCA9PSBzeW1ib2xOYW1lKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBkZWZhdWx0IGV4cG9ydC5cbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlY2wuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3NcbiAgICAgICAgICAgICAgICYmIGRlY2wuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3Mua2luZCA9PSB0cy5TeW50YXhLaW5kLk5hbWVkSW1wb3J0cykge1xuICAgICAgY29uc3QgYmluZGluZyA9IGRlY2wuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3MgYXMgdHMuTmFtZWRJbXBvcnRzO1xuICAgICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2YgYmluZGluZy5lbGVtZW50cykge1xuICAgICAgICBpZiAoc3BlY2lmaWVyLm5hbWUudGV4dCA9PSBzeW1ib2xOYW1lKSB7XG4gICAgICAgICAgLy8gQ3JlYXRlIHRoZSBzb3VyY2UgYW5kIHJlY3Vyc2l2ZWx5IGxvb2t1cCB0aGUgaW1wb3J0LlxuICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBUeXBlU2NyaXB0RmlsZVJlZmFjdG9yKG1vZHVsZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICAgICAgY29uc3QgbWF5YmVNb2R1bGUgPSBfcmVjdXJzaXZlU3ltYm9sRXhwb3J0TG9va3VwKHNvdXJjZSwgc3ltYm9sTmFtZSwgaG9zdCwgcHJvZ3JhbSk7XG4gICAgICAgICAgaWYgKG1heWJlTW9kdWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF5YmVNb2R1bGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbnRyeU1vZHVsZUZyb21NYWluKG1haW5QYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogdHMuQ29tcGlsZXJIb3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW06IHRzLlByb2dyYW0pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgc291cmNlID0gbmV3IFR5cGVTY3JpcHRGaWxlUmVmYWN0b3IobWFpblBhdGgsIGhvc3QsIHByb2dyYW0pO1xuXG4gIGNvbnN0IGJvb3RzdHJhcCA9IHNvdXJjZS5maW5kQXN0Tm9kZXMoc291cmNlLnNvdXJjZUZpbGUsIHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24sIHRydWUpXG4gICAgLm1hcChub2RlID0+IG5vZGUgYXMgdHMuQ2FsbEV4cHJlc3Npb24pXG4gICAgLmZpbHRlcihjYWxsID0+IHtcbiAgICAgIGNvbnN0IGFjY2VzcyA9IGNhbGwuZXhwcmVzc2lvbiBhcyB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb247XG5cbiAgICAgIHJldHVybiBhY2Nlc3Mua2luZCA9PSB0cy5TeW50YXhLaW5kLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvblxuICAgICAgICAgICYmIGFjY2Vzcy5uYW1lLmtpbmQgPT0gdHMuU3ludGF4S2luZC5JZGVudGlmaWVyXG4gICAgICAgICAgJiYgKGFjY2Vzcy5uYW1lLnRleHQgPT0gJ2Jvb3RzdHJhcE1vZHVsZSdcbiAgICAgICAgICAgICAgfHwgYWNjZXNzLm5hbWUudGV4dCA9PSAnYm9vdHN0cmFwTW9kdWxlRmFjdG9yeScpO1xuICAgIH0pXG4gICAgLm1hcChub2RlID0+IG5vZGUuYXJndW1lbnRzWzBdIGFzIHRzLklkZW50aWZpZXIpXG4gICAgLmZpbHRlcihub2RlID0+IG5vZGUua2luZCA9PSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXIpO1xuXG4gIGlmIChib290c3RyYXAubGVuZ3RoICE9IDEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBib290c3RyYXBTeW1ib2xOYW1lID0gYm9vdHN0cmFwWzBdLnRleHQ7XG4gIGNvbnN0IG1vZHVsZSA9IF9zeW1ib2xJbXBvcnRMb29rdXAoc291cmNlLCBib290c3RyYXBTeW1ib2xOYW1lLCBob3N0LCBwcm9ncmFtKTtcbiAgaWYgKG1vZHVsZSkge1xuICAgIHJldHVybiBgJHttb2R1bGUucmVwbGFjZSgvXFwudHMkLywgJycpfSMke2Jvb3RzdHJhcFN5bWJvbE5hbWV9YDtcbiAgfVxuXG4gIC8vIHNocnVnLi4uIHNvbWV0aGluZyBiYWQgaGFwcGVuZWQgYW5kIHdlIGNvdWxkbid0IGZpbmQgdGhlIGltcG9ydCBzdGF0ZW1lbnQuXG4gIHRocm93IG5ldyBFcnJvcignVHJpZWQgdG8gZmluZCBib290c3RyYXAgY29kZSwgYnV0IGNvdWxkIG5vdC4gU3BlY2lmeSBlaXRoZXIgJ1xuICAgICsgJ3N0YXRpY2FsbHkgYW5hbHl6YWJsZSBib290c3RyYXAgY29kZSBvciBwYXNzIGluIGFuIGVudHJ5TW9kdWxlICdcbiAgICArICd0byB0aGUgcGx1Z2lucyBvcHRpb25zLicpO1xufVxuIl19
|
|
@@ -71,4 +71,4 @@ function gatherDiagnostics(program, jitMode, benchmarkLabel, cancellationToken)
|
|
|
71
71
|
return allDiagnostics;
|
|
72
72
|
}
|
|
73
73
|
exports.gatherDiagnostics = gatherDiagnostics;
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0aGVyX2RpYWdub3N0aWNzLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL2dhdGhlcl9kaWFnbm9zdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILGlDQUFpQztBQUNqQywyQ0FBNEM7QUFJNUM7SUFBQTtRQUNVLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBZS9CLENBQUM7SUFiQyxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztTQUMzQztJQUNILENBQUM7Q0FDRjtBQWhCRCw4Q0FnQkM7QUFFRCxtQkFBMEIsS0FBa0I7SUFDMUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUZELDhCQUVDO0FBRUQsMkJBQ0UsT0FBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsaUJBQXFDO0lBRXJDLE1BQU0sY0FBYyxHQUFzQyxFQUFFLENBQUM7SUFDN0QsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFFakMsMEJBQThDLEVBQUs7UUFDakQsSUFBSSxxQkFBcUIsRUFBRTtZQUN6QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUU5QixxQkFBcUIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQztTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxTQUFTLEdBQUcsT0FBcUIsQ0FBQztRQUN4QywrQkFBK0I7UUFDL0IsZ0JBQUksQ0FBQyxHQUFHLGNBQWMsK0NBQStDLENBQUMsQ0FBQztRQUN2RSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsbUJBQU8sQ0FBQyxHQUFHLGNBQWMsK0NBQStDLENBQUMsQ0FBQztRQUUxRSw4QkFBOEI7UUFDOUIsZ0JBQUksQ0FBQyxHQUFHLGNBQWMsOENBQThDLENBQUMsQ0FBQztRQUN0RSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsbUJBQU8sQ0FBQyxHQUFHLGNBQWMsOENBQThDLENBQUMsQ0FBQztLQUMxRTtTQUFNO1FBQ0wsTUFBTSxjQUFjLEdBQUcsT0FBa0IsQ0FBQztRQUUxQywwQ0FBMEM7UUFDMUMsZ0JBQUksQ0FBQyxHQUFHLGNBQWMsaURBQWlELENBQUMsQ0FBQztRQUN6RSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsbUJBQU8sQ0FBQyxHQUFHLGNBQWMsaURBQWlELENBQUMsQ0FBQztRQUU1RSwrREFBK0Q7UUFDL0QsZ0JBQUksQ0FBQyxHQUFHLGNBQWMsZ0RBQWdELENBQUMsQ0FBQztRQUN4RSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsbUJBQU8sQ0FBQyxHQUFHLGNBQWMsZ0RBQWdELENBQUMsQ0FBQztRQUUzRSxxQ0FBcUM7UUFDckMsZ0JBQUksQ0FBQyxHQUFHLGNBQWMsZ0RBQWdELENBQUMsQ0FBQztRQUN4RSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsbUJBQU8sQ0FBQyxHQUFHLGNBQWMsZ0RBQWdELENBQUMsQ0FBQztLQUM1RTtJQUVELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFuREQsOENBbURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyB0aW1lLCB0aW1lRW5kIH0gZnJvbSAnLi9iZW5jaG1hcmsnO1xuaW1wb3J0IHsgRGlhZ25vc3RpYywgRGlhZ25vc3RpY3MsIFByb2dyYW0gfSBmcm9tICcuL25ndG9vbHNfYXBpJztcblxuXG5leHBvcnQgY2xhc3MgQ2FuY2VsbGF0aW9uVG9rZW4gaW1wbGVtZW50cyB0cy5DYW5jZWxsYXRpb25Ub2tlbiB7XG4gIHByaXZhdGUgX2lzQ2FuY2VsbGVkID0gZmFsc2U7XG5cbiAgcmVxdWVzdENhbmNlbGxhdGlvbigpIHtcbiAgICB0aGlzLl9pc0NhbmNlbGxlZCA9IHRydWU7XG4gIH1cblxuICBpc0NhbmNlbGxhdGlvblJlcXVlc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNDYW5jZWxsZWQ7XG4gIH1cblxuICB0aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCkge1xuICAgIGlmICh0aGlzLmlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyB0cy5PcGVyYXRpb25DYW5jZWxlZEV4Y2VwdGlvbigpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRXJyb3JzKGRpYWdzOiBEaWFnbm9zdGljcykge1xuICByZXR1cm4gZGlhZ3Muc29tZShkID0+IGQuY2F0ZWdvcnkgPT09IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5FcnJvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnYXRoZXJEaWFnbm9zdGljcyhcbiAgcHJvZ3JhbTogdHMuUHJvZ3JhbSB8IFByb2dyYW0sXG4gIGppdE1vZGU6IGJvb2xlYW4sXG4gIGJlbmNobWFya0xhYmVsOiBzdHJpbmcsXG4gIGNhbmNlbGxhdGlvblRva2VuPzogQ2FuY2VsbGF0aW9uVG9rZW4sXG4pOiBEaWFnbm9zdGljcyB7XG4gIGNvbnN0IGFsbERpYWdub3N0aWNzOiBBcnJheTx0cy5EaWFnbm9zdGljIHwgRGlhZ25vc3RpYz4gPSBbXTtcbiAgbGV0IGNoZWNrT3RoZXJEaWFnbm9zdGljcyA9IHRydWU7XG5cbiAgZnVuY3Rpb24gY2hlY2tEaWFnbm9zdGljczxUIGV4dGVuZHMgRnVuY3Rpb24+KGZuOiBUKSB7XG4gICAgaWYgKGNoZWNrT3RoZXJEaWFnbm9zdGljcykge1xuICAgICAgY29uc3QgZGlhZ3MgPSBmbih1bmRlZmluZWQsIGNhbmNlbGxhdGlvblRva2VuKTtcbiAgICAgIGlmIChkaWFncykge1xuICAgICAgICBhbGxEaWFnbm9zdGljcy5wdXNoKC4uLmRpYWdzKTtcblxuICAgICAgICBjaGVja090aGVyRGlhZ25vc3RpY3MgPSAhaGFzRXJyb3JzKGRpYWdzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoaml0TW9kZSkge1xuICAgIGNvbnN0IHRzUHJvZ3JhbSA9IHByb2dyYW0gYXMgdHMuUHJvZ3JhbTtcbiAgICAvLyBDaGVjayBzeW50YWN0aWMgZGlhZ25vc3RpY3MuXG4gICAgdGltZShgJHtiZW5jaG1hcmtMYWJlbH0uZ2F0aGVyRGlhZ25vc3RpY3MudHMuZ2V0U3ludGFjdGljRGlhZ25vc3RpY3NgKTtcbiAgICBjaGVja0RpYWdub3N0aWNzKHRzUHJvZ3JhbS5nZXRTeW50YWN0aWNEaWFnbm9zdGljcy5iaW5kKHRzUHJvZ3JhbSkpO1xuICAgIHRpbWVFbmQoYCR7YmVuY2htYXJrTGFiZWx9LmdhdGhlckRpYWdub3N0aWNzLnRzLmdldFN5bnRhY3RpY0RpYWdub3N0aWNzYCk7XG5cbiAgICAvLyBDaGVjayBzZW1hbnRpYyBkaWFnbm9zdGljcy5cbiAgICB0aW1lKGAke2JlbmNobWFya0xhYmVsfS5nYXRoZXJEaWFnbm9zdGljcy50cy5nZXRTZW1hbnRpY0RpYWdub3N0aWNzYCk7XG4gICAgY2hlY2tEaWFnbm9zdGljcyh0c1Byb2dyYW0uZ2V0U2VtYW50aWNEaWFnbm9zdGljcy5iaW5kKHRzUHJvZ3JhbSkpO1xuICAgIHRpbWVFbmQoYCR7YmVuY2htYXJrTGFiZWx9LmdhdGhlckRpYWdub3N0aWNzLnRzLmdldFNlbWFudGljRGlhZ25vc3RpY3NgKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhbmd1bGFyUHJvZ3JhbSA9IHByb2dyYW0gYXMgUHJvZ3JhbTtcblxuICAgIC8vIENoZWNrIFR5cGVTY3JpcHQgc3ludGFjdGljIGRpYWdub3N0aWNzLlxuICAgIHRpbWUoYCR7YmVuY2htYXJrTGFiZWx9LmdhdGhlckRpYWdub3N0aWNzLm5nLmdldFRzU3ludGFjdGljRGlhZ25vc3RpY3NgKTtcbiAgICBjaGVja0RpYWdub3N0aWNzKGFuZ3VsYXJQcm9ncmFtLmdldFRzU3ludGFjdGljRGlhZ25vc3RpY3MuYmluZChhbmd1bGFyUHJvZ3JhbSkpO1xuICAgIHRpbWVFbmQoYCR7YmVuY2htYXJrTGFiZWx9LmdhdGhlckRpYWdub3N0aWNzLm5nLmdldFRzU3ludGFjdGljRGlhZ25vc3RpY3NgKTtcblxuICAgIC8vIENoZWNrIFR5cGVTY3JpcHQgc2VtYW50aWMgYW5kIEFuZ3VsYXIgc3RydWN0dXJlIGRpYWdub3N0aWNzLlxuICAgIHRpbWUoYCR7YmVuY2htYXJrTGFiZWx9LmdhdGhlckRpYWdub3N0aWNzLm5nLmdldFRzU2VtYW50aWNEaWFnbm9zdGljc2ApO1xuICAgIGNoZWNrRGlhZ25vc3RpY3MoYW5ndWxhclByb2dyYW0uZ2V0VHNTZW1hbnRpY0RpYWdub3N0aWNzLmJpbmQoYW5ndWxhclByb2dyYW0pKTtcbiAgICB0aW1lRW5kKGAke2JlbmNobWFya0xhYmVsfS5nYXRoZXJEaWFnbm9zdGljcy5uZy5nZXRUc1NlbWFudGljRGlhZ25vc3RpY3NgKTtcblxuICAgIC8vIENoZWNrIEFuZ3VsYXIgc2VtYW50aWMgZGlhZ25vc3RpY3NcbiAgICB0aW1lKGAke2JlbmNobWFya0xhYmVsfS5nYXRoZXJEaWFnbm9zdGljcy5uZy5nZXROZ1NlbWFudGljRGlhZ25vc3RpY3NgKTtcbiAgICBjaGVja0RpYWdub3N0aWNzKGFuZ3VsYXJQcm9ncmFtLmdldE5nU2VtYW50aWNEaWFnbm9zdGljcy5iaW5kKGFuZ3VsYXJQcm9ncmFtKSk7XG4gICAgdGltZUVuZChgJHtiZW5jaG1hcmtMYWJlbH0uZ2F0aGVyRGlhZ25vc3RpY3MubmcuZ2V0TmdTZW1hbnRpY0RpYWdub3N0aWNzYCk7XG4gIH1cblxuICByZXR1cm4gYWxsRGlhZ25vc3RpY3M7XG59XG4iXX0=
|
package/src/lazy_routes.js
CHANGED
|
@@ -44,16 +44,22 @@ function findLazyRoutes(filePath, host, program, compilerOptions) {
|
|
|
44
44
|
}
|
|
45
45
|
const sf = sourceFile;
|
|
46
46
|
return refactor_1.findAstNodes(null, sourceFile, ts.SyntaxKind.ObjectLiteralExpression, true)
|
|
47
|
+
// Get all their property assignments.
|
|
47
48
|
.map((node) => {
|
|
48
49
|
return refactor_1.findAstNodes(node, sf, ts.SyntaxKind.PropertyAssignment, false);
|
|
49
50
|
})
|
|
51
|
+
// Take all `loadChildren` elements.
|
|
50
52
|
.reduce((acc, props) => {
|
|
51
53
|
return acc.concat(props.filter(literal => {
|
|
52
54
|
return _getContentOfKeyLiteral(sf, literal.name) == 'loadChildren';
|
|
53
55
|
}));
|
|
54
56
|
}, [])
|
|
57
|
+
// Get only string values.
|
|
55
58
|
.filter((node) => node.initializer.kind == ts.SyntaxKind.StringLiteral)
|
|
59
|
+
// Get the string value.
|
|
56
60
|
.map((node) => node.initializer.text)
|
|
61
|
+
// Map those to either [path, absoluteModulePath], or [path, null] if the module pointing to
|
|
62
|
+
// does not exist.
|
|
57
63
|
.map((routePath) => {
|
|
58
64
|
const moduleName = routePath.split('#')[0];
|
|
59
65
|
const compOptions = (program && program.getCompilerOptions()) || compilerOptions || {};
|
|
@@ -71,6 +77,7 @@ function findLazyRoutes(filePath, host, program, compilerOptions) {
|
|
|
71
77
|
return [routePath, null];
|
|
72
78
|
}
|
|
73
79
|
})
|
|
80
|
+
// Reduce to the LazyRouteMap map.
|
|
74
81
|
.reduce((acc, [routePath, resolvedModuleName]) => {
|
|
75
82
|
if (resolvedModuleName) {
|
|
76
83
|
acc[routePath] = resolvedModuleName;
|
|
@@ -79,4 +86,4 @@ function findLazyRoutes(filePath, host, program, compilerOptions) {
|
|
|
79
86
|
}, {});
|
|
80
87
|
}
|
|
81
88
|
exports.findLazyRoutes = findLazyRoutes;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eV9yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL25ndG9vbHMvd2VicGFjay9zcmMvbGF6eV9yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCwrQkFBcUM7QUFDckMsaUNBQWlDO0FBQ2pDLHlDQUFtRDtBQUduRCxpQ0FBaUMsT0FBc0IsRUFBRSxJQUFhO0lBQ3BFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRTtRQUN6QyxPQUFRLElBQXNCLENBQUMsSUFBSSxDQUFDO0tBQ3JDO1NBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO1FBQ25ELE9BQVEsSUFBeUIsQ0FBQyxJQUFJLENBQUM7S0FDeEM7U0FBTTtRQUNMLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDO0FBUUQsd0JBQ0UsUUFBZ0IsRUFDaEIsSUFBcUIsRUFDckIsT0FBb0IsRUFDcEIsZUFBb0M7SUFFcEMsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsZUFBZSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ2hEO0lBQ0QsTUFBTSxRQUFRLEdBQUcsa0JBQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUUsSUFBSSxVQUFxQyxDQUFDO0lBQzFDLElBQUksT0FBTyxFQUFFO1FBQ1gsVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDOUM7SUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdB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SSxrQkFBa0IsRUFBRTtZQUN0QixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7U0FDckM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNYLENBQUM7QUF2RUQsd0NBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBmaW5kQXN0Tm9kZXMsIHJlc29sdmUgfSBmcm9tICcuL3JlZmFjdG9yJztcblxuXG5mdW5jdGlvbiBfZ2V0Q29udGVudE9mS2V5TGl0ZXJhbChfc291cmNlOiB0cy5Tb3VyY2VGaWxlLCBub2RlOiB0cy5Ob2RlKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChub2RlLmtpbmQgPT0gdHMuU3ludGF4S2luZC5JZGVudGlmaWVyKSB7XG4gICAgcmV0dXJuIChub2RlIGFzIHRzLklkZW50aWZpZXIpLnRleHQ7XG4gIH0gZWxzZSBpZiAobm9kZS5raW5kID09IHRzLlN5bnRheEtpbmQuU3RyaW5nTGl0ZXJhbCkge1xuICAgIHJldHVybiAobm9kZSBhcyB0cy5TdHJpbmdMaXRlcmFsKS50ZXh0O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBMYXp5Um91dGVNYXAge1xuICBbcGF0aDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTGF6eVJvdXRlcyhcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgaG9zdDogdHMuQ29tcGlsZXJIb3N0LFxuICBwcm9ncmFtPzogdHMuUHJvZ3JhbSxcbiAgY29tcGlsZXJPcHRpb25zPzogdHMuQ29tcGlsZXJPcHRpb25zLFxuKTogTGF6eVJvdXRlTWFwIHtcbiAgaWYgKCFjb21waWxlck9wdGlvbnMpIHtcbiAgICBpZiAoIXByb2dyYW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwYXNzIGVpdGhlciBwcm9ncmFtIG9yIGNvbXBpbGVyT3B0aW9ucyB0byBmaW5kTGF6eVJvdXRlcy4nKTtcbiAgICB9XG4gICAgY29tcGlsZXJPcHRpb25zID0gcHJvZ3JhbS5nZXRDb21waWxlck9wdGlvbnMoKTtcbiAgfVxuICBjb25zdCBmaWxlTmFtZSA9IHJlc29sdmUoZmlsZVBhdGgsIGhvc3QsIGNvbXBpbGVyT3B0aW9ucykucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBsZXQgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSB8IHVuZGVmaW5lZDtcbiAgaWYgKHByb2dyYW0pIHtcbiAgICBzb3VyY2VGaWxlID0gcHJvZ3JhbS5nZXRTb3VyY2VGaWxlKGZpbGVOYW1lKTtcbiAgfVxuXG4gIGlmICghc291cmNlRmlsZSkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBob3N0LnJlYWRGaWxlKGZpbGVOYW1lKTtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgc291cmNlRmlsZSA9IHRzLmNyZWF0ZVNvdXJjZUZpbGUoZmlsZU5hbWUsIGNvbnRlbnQsIHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghc291cmNlRmlsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlIGZpbGUgbm90IGZvdW5kOiAnJHtmaWxlTmFtZX0nLmApO1xuICB9XG4gIGNvbnN0IHNmOiB0cy5Tb3VyY2VGaWxlID0gc291cmNlRmlsZTtcblxuICByZXR1cm4gZmluZEFzdE5vZGVzKG51bGwsIHNvdXJjZUZpbGUsIHRzLlN5bnRheEtpbmQuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24sIHRydWUpXG4gICAgLy8gR2V0IGFsbCB0aGVpciBwcm9wZXJ0eSBhc3NpZ25tZW50cy5cbiAgICAubWFwKChub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbikgPT4ge1xuICAgICAgcmV0dXJuIGZpbmRBc3ROb2Rlcyhub2RlLCBzZiwgdHMuU3ludGF4S2luZC5Qcm9wZXJ0eUFzc2lnbm1lbnQsIGZhbHNlKTtcbiAgICB9KVxuICAgIC8vIFRha2UgYWxsIGBsb2FkQ2hpbGRyZW5gIGVsZW1lbnRzLlxuICAgIC5yZWR1Y2UoKGFjYzogdHMuUHJvcGVydHlBc3NpZ25tZW50W10sIHByb3BzOiB0cy5Qcm9wZXJ0eUFzc2lnbm1lbnRbXSkgPT4ge1xuICAgICAgcmV0dXJuIGFjYy5jb25jYXQocHJvcHMuZmlsdGVyKGxpdGVyYWwgPT4ge1xuICAgICAgICByZXR1cm4gX2dldENvbnRlbnRPZktleUxpdGVyYWwoc2YsIGxpdGVyYWwubmFtZSkgPT0gJ2xvYWRDaGlsZHJlbic7XG4gICAgICB9KSk7XG4gICAgfSwgW10pXG4gICAgLy8gR2V0IG9ubHkgc3RyaW5nIHZhbHVlcy5cbiAgICAuZmlsdGVyKChub2RlOiB0cy5Qcm9wZXJ0eUFzc2lnbm1lbnQpID0+IG5vZGUuaW5pdGlhbGl6ZXIua2luZCA9PSB0cy5TeW50YXhLaW5kLlN0cmluZ0xpdGVyYWwpXG4gICAgLy8gR2V0IHRoZSBzdHJpbmcgdmFsdWUuXG4gICAgLm1hcCgobm9kZTogdHMuUHJvcGVydHlBc3NpZ25tZW50KSA9PiAobm9kZS5pbml0aWFsaXplciBhcyB0cy5TdHJpbmdMaXRlcmFsKS50ZXh0KVxuICAgIC8vIE1hcCB0aG9zZSB0byBlaXRoZXIgW3BhdGgsIGFic29sdXRlTW9kdWxlUGF0aF0sIG9yIFtwYXRoLCBudWxsXSBpZiB0aGUgbW9kdWxlIHBvaW50aW5nIHRvXG4gICAgLy8gZG9lcyBub3QgZXhpc3QuXG4gICAgLm1hcCgocm91dGVQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZVBhdGguc3BsaXQoJyMnKVswXTtcbiAgICAgIGNvbnN0IGNvbXBPcHRpb25zID0gKHByb2dyYW0gJiYgcHJvZ3JhbS5nZXRDb21waWxlck9wdGlvbnMoKSkgfHwgY29tcGlsZXJPcHRpb25zIHx8IHt9O1xuICAgICAgY29uc3QgcmVzb2x2ZWRNb2R1bGVOYW1lOiB0cy5SZXNvbHZlZE1vZHVsZVdpdGhGYWlsZWRMb29rdXBMb2NhdGlvbnMgPSBtb2R1bGVOYW1lWzBdID09ICcuJ1xuICAgICAgICA/ICh7XG4gICAgICAgICAgICByZXNvbHZlZE1vZHVsZTogeyByZXNvbHZlZEZpbGVOYW1lOiBqb2luKGRpcm5hbWUoZmlsZVBhdGgpLCBtb2R1bGVOYW1lKSArICcudHMnIH0sXG4gICAgICAgICAgfSBhcyB0cy5SZXNvbHZlZE1vZHVsZVdpdGhGYWlsZWRMb29rdXBMb2NhdGlvbnMpXG4gICAgICAgIDogdHMucmVzb2x2ZU1vZHVsZU5hbWUobW9kdWxlTmFtZSwgZmlsZVBhdGgsIGNvbXBPcHRpb25zLCBob3N0KTtcbiAgICAgIGlmIChyZXNvbHZlZE1vZHVsZU5hbWUucmVzb2x2ZWRNb2R1bGVcbiAgICAgICAgICAmJiByZXNvbHZlZE1vZHVsZU5hbWUucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZVxuICAgICAgICAgICYmIGhvc3QuZmlsZUV4aXN0cyhyZXNvbHZlZE1vZHVsZU5hbWUucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIFtyb3V0ZVBhdGgsIHJlc29sdmVkTW9kdWxlTmFtZS5yZXNvbHZlZE1vZHVsZS5yZXNvbHZlZEZpbGVOYW1lXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbcm91dGVQYXRoLCBudWxsXTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC8vIFJlZHVjZSB0byB0aGUgTGF6eVJvdXRlTWFwIG1hcC5cbiAgICAucmVkdWNlKChhY2M6IExhenlSb3V0ZU1hcCwgW3JvdXRlUGF0aCwgcmVzb2x2ZWRNb2R1bGVOYW1lXTogW3N0cmluZywgc3RyaW5nIHwgbnVsbF0pID0+IHtcbiAgICAgIGlmIChyZXNvbHZlZE1vZHVsZU5hbWUpIHtcbiAgICAgICAgYWNjW3JvdXRlUGF0aF0gPSByZXNvbHZlZE1vZHVsZU5hbWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufVxuIl19
|
package/src/loader.js
CHANGED
|
@@ -92,4 +92,4 @@ function ngcLoader() {
|
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
exports.ngcLoader = ngcLoader;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILHFCQUFxQjtBQUNyQixvREFBb0Q7QUFDcEQsd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUU3Qix1RUFBa0U7QUFDbEUsMkNBQTRDO0FBRzVDLE1BQU0sa0JBQWtCLEdBQUcsb0NBQW9DLENBQUM7QUFFaEU7SUFDRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNqRCxNQUFNLFNBQVMsR0FBRyxhQUFhLGNBQWMsR0FBRyxDQUFDO0lBRWpELEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsZ0JBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUFDO0lBQy9ELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDO2NBQzNDLGtEQUFrRCxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxtRkFBbUY7SUFDbkYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sWUFBWSwrQ0FBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEU7Y0FDeEYsMEVBQTBFO2NBQzFFLHNGQUFzRixDQUN6RixDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFJLENBQUMsU0FB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LE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQsbUJBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQixFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDWCxtQkFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25CLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQXZGRCw4QkF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLyBUT0RPOiBmaXggdHlwaW5ncy5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1nbG9iYWwtdHNsaW50LWRpc2FibGVcbi8vIHRzbGludDpkaXNhYmxlOm5vLWFueVxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGxvYWRlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBpbGVyUGx1Z2luIH0gZnJvbSAnLi9hbmd1bGFyX2NvbXBpbGVyX3BsdWdpbic7XG5pbXBvcnQgeyB0aW1lLCB0aW1lRW5kIH0gZnJvbSAnLi9iZW5jaG1hcmsnO1xuXG5cbmNvbnN0IHNvdXJjZU1hcHBpbmdVcmxSZSA9IC9eXFwvXFwvIyBzb3VyY2VNYXBwaW5nVVJMPVteXFxyXFxuXSovZ207XG5cbmV4cG9ydCBmdW5jdGlvbiBuZ2NMb2FkZXIodGhpczogbG9hZGVyLkxvYWRlckNvbnRleHQpIHtcbiAgY29uc3QgY2IgPSB0aGlzLmFzeW5jKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVOYW1lOiBzdHJpbmcgPSB0aGlzLnJlc291cmNlUGF0aDtcbiAgY29uc3QgdGltZUxhYmVsID0gYG5nY0xvYWRlciske3NvdXJjZUZpbGVOYW1lfStgO1xuXG4gIGlmICghY2IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgbG9hZGVyIG5lZWRzIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIHdlYnBhY2sgY29tcGlsYXRpb25zLicpO1xuICB9XG5cbiAgdGltZSh0aW1lTGFiZWwpO1xuXG4gIGNvbnN0IHBsdWdpbiA9IHRoaXMuX2NvbXBpbGF0aW9uLl9uZ1Rvb2xzV2VicGFja1BsdWdpbkluc3RhbmNlO1xuICBpZiAoIXBsdWdpbikge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIEFuZ3VsYXJDb21waWxlclBsdWdpbiB3YXMgbm90IGZvdW5kLiAnXG4gICAgICAgICAgICAgICAgICArICdUaGUgQG5ndG9vbHMvd2VicGFjayBsb2FkZXIgcmVxdWlyZXMgdGhlIHBsdWdpbi4nKTtcbiAgfVxuXG4gIC8vIFdlIG11c3QgdmVyaWZ5IHRoYXQgdGhlIHBsdWdpbiBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgcmlnaHQgY2xhc3MuXG4gIC8vIFRocm93IGFuIGVycm9yIGlmIGl0IGlzbid0LCB0aGF0IG9mdGVuIG1lYW5zIG11bHRpcGxlIEBuZ3Rvb2xzL3dlYnBhY2sgaW5zdGFsbHMuXG4gIGlmICghKHBsdWdpbiBpbnN0YW5jZW9mIEFuZ3VsYXJDb21waWxlclBsdWdpbikgfHwgIXBsdWdpbi5kb25lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbmd1bGFyIENvbXBpbGVyIHdhcyBkZXRlY3RlZCBidXQgaXQgd2FzIGFuIGluc3RhbmNlIG9mIHRoZSB3cm9uZyBjbGFzcy5cXG4nXG4gICAgICArICdUaGlzIGxpa2VseSBtZWFucyB5b3UgaGF2ZSBzZXZlcmFsIEBuZ3Rvb2xzL3dlYnBhY2sgcGFja2FnZXMgaW5zdGFsbGVkLiAnXG4gICAgICArICdZb3UgY2FuIGNoZWNrIHRoaXMgd2l0aCBgbnBtIGxzIEBuZ3Rvb2xzL3dlYnBhY2tgLCBhbmQgdGhlbiByZW1vdmUgdGhlIGV4dHJhIGNvcGllcy4nLFxuICAgICk7XG4gIH1cblxuICB0aW1lKHRpbWVMYWJlbCArICcubmdjTG9hZGVyLkFuZ3VsYXJDb21waWxlclBsdWdpbicpO1xuICBwbHVnaW4uZG9uZVxuICAgIC50aGVuKCgpID0+IHtcbiAgICAgIHRpbWVFbmQodGltZUxhYmVsICsgJy5uZ2NMb2FkZXIuQW5ndWxhckNvbXBpbGVyUGx1Z2luJyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbHVnaW4uZ2V0Q29tcGlsZWRGaWxlKHNvdXJjZUZpbGVOYW1lKTtcblxuICAgICAgaWYgKHJlc3VsdC5zb3VyY2VNYXApIHtcbiAgICAgICAgLy8gUHJvY2VzcyBzb3VyY2VtYXBzIGZvciBXZWJwYWNrLlxuICAgICAgICAvLyBSZW1vdmUgdGhlIHNvdXJjZU1hcHBpbmdVUkwuXG4gICAgICAgIHJlc3VsdC5vdXRwdXRUZXh0ID0gcmVzdWx0Lm91dHB1dFRleHQucmVwbGFjZShzb3VyY2VNYXBwaW5nVXJsUmUsICcnKTtcbiAgICAgICAgLy8gU2V0IHRoZSBtYXAgc291cmNlIHRvIHVzZSB0aGUgZnVsbCBwYXRoIG9mIHRoZSBmaWxlLlxuICAgICAgICBjb25zdCBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKHJlc3VsdC5zb3VyY2VNYXApO1xuICAgICAgICBzb3VyY2VNYXAuc291cmNlcyA9IHNvdXJjZU1hcC5zb3VyY2VzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKHNvdXJjZUZpbGVOYW1lKSwgZmlsZU5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnNvdXJjZU1hcCA9IHNvdXJjZU1hcDtcbiAgICAgIH1cblxuICAgICAgLy8gTWFudWFsbHkgYWRkIHRoZSBkZXBlbmRlbmNpZXMgZm9yIFRTIGZpbGVzLlxuICAgICAgLy8gVHlwZSBvbmx5IGltcG9ydHMgd2lsbCBiZSBzdHJpcHBlZCBvdXQgYnkgY29tcGlsYXRpb24gc28gd2UgbmVlZCB0byBhZGQgdGhlbSBhc1xuICAgICAgLy8gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgLy8gQ29tcG9uZW50IHJlc291cmNlcyBmaWxlcyAoaHRtbCBhbmQgY3NzIHRlbXBsYXRlcykgYWxzbyBuZWVkIHRvIGJlIGFkZGVkIG1hbnVhbGx5IGZvclxuICAgICAgLy8gQU9ULCBzbyB0aGF0IHRoaXMgZmlsZSBpcyByZWxvYWRlZCB3aGVuIHRoZXkgY2hhbmdlLlxuICAgICAgaWYgKHNvdXJjZUZpbGVOYW1lLmVuZHNXaXRoKCcudHMnKSkge1xuICAgICAgICByZXN1bHQuZXJyb3JEZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4gdGhpcy5hZGREZXBlbmRlbmN5KGRlcCkpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwbHVnaW4uZ2V0RGVwZW5kZW5jaWVzKHNvdXJjZUZpbGVOYW1lKTtcbiAgICAgICAgZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgICAgICBwbHVnaW4udXBkYXRlQ2hhbmdlZEZpbGVFeHRlbnNpb25zKHBhdGguZXh0bmFtZShkZXApKTtcbiAgICAgICAgICB0aGlzLmFkZERlcGVuZGVuY3koZGVwKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5nRmFjdG9yeSBmaWxlcyBkZXBlbmQgb24gdGhlIGNvbXBvbmVudCB0ZW1wbGF0ZSwgYnV0IHdlIGNhbid0IGtub3cgd2hhdCB0aGF0IGZpbGVcbiAgICAgIC8vIGlzIChpZiBhbnkpLiBTbyB3ZSBhZGQgYWxsIHRoZSBkZXBlbmRlbmNpZXMgdGhhdCB0aGUgb3JpZ2luYWwgY29tcG9uZW50IGZpbGUgaGFzXG4gICAgICAvLyB0byB0aGUgZmFjdG9yeSBhcyB3ZWxsLCB3aGljaCBpbmNsdWRlcyBodG1sIGFuZCBjc3MgdGVtcGxhdGVzLCBhbmQgdGhlIGNvbXBvbmVudFxuICAgICAgLy8gaXRzZWxmIChmb3IgaW5saW5lIGh0bWwvdGVtcGxhdGVzIHRlbXBsYXRlcykuXG4gICAgICBjb25zdCBuZ0ZhY3RvcnlSZSA9IC9cXC5uZ2ZhY3RvcnkuanMkLztcbiAgICAgIGlmIChuZ0ZhY3RvcnlSZS50ZXN0KHNvdXJjZUZpbGVOYW1lKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEZpbGUgPSBzb3VyY2VGaWxlTmFtZS5yZXBsYWNlKG5nRmFjdG9yeVJlLCAnLnRzJyk7XG4gICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jeShvcmlnaW5hbEZpbGUpO1xuICAgICAgICBjb25zdCBvcmlnRGVwZW5kZW5jaWVzID0gcGx1Z2luLmdldERlcGVuZGVuY2llcyhvcmlnaW5hbEZpbGUpO1xuICAgICAgICBvcmlnRGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHRoaXMuYWRkRGVwZW5kZW5jeShkZXApKTtcbiAgICAgIH1cblxuICAgICAgLy8gTmdTdHlsZSBmaWxlcyBkZXBlbmQgb24gdGhlIHN0eWxlIGZpbGUgdGhleSByZXByZXNlbnQuXG4gICAgICAvLyBFLmcuIGBzb21lLXN0eWxlLmxlc3Muc2hpbS5uZ3N0eWxlLmpzYCBkZXBlbmRzIG9uIGBzb21lLXN0eWxlLmxlc3NgLlxuICAgICAgLy8gVGhvc2UgZmlsZXMgY2FuIGluIHR1cm4gZGVwZW5kIG9uIG90aGVycywgc28gd2UgaGF2ZSB0byBhZGQgdGhlbSBhbGwuXG4gICAgICBjb25zdCBuZ1N0eWxlUmUgPSAvKD86XFwuc2hpbSk/XFwubmdzdHlsZVxcLmpzJC87XG4gICAgICBpZiAobmdTdHlsZVJlLnRlc3Qoc291cmNlRmlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlRmlsZSA9IHNvdXJjZUZpbGVOYW1lLnJlcGxhY2UobmdTdHlsZVJlLCAnJyk7XG4gICAgICAgIGNvbnN0IHN0eWxlRGVwZW5kZW5jaWVzID0gcGx1Z2luLmdldFJlc291cmNlRGVwZW5kZW5jaWVzKHN0eWxlRmlsZSk7XG4gICAgICAgIHN0eWxlRGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHRoaXMuYWRkRGVwZW5kZW5jeShkZXApKTtcbiAgICAgIH1cblxuICAgICAgdGltZUVuZCh0aW1lTGFiZWwpO1xuICAgICAgY2IobnVsbCwgcmVzdWx0Lm91dHB1dFRleHQsIHJlc3VsdC5zb3VyY2VNYXAgYXMgYW55KTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgdGltZUVuZCh0aW1lTGFiZWwpO1xuICAgICAgY2IoZXJyKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILHFCQUFxQjtBQUNyQixvREFBb0Q7QUFDcEQsd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUU3Qix1RUFBa0U7QUFDbEUsMkNBQTRDO0FBRzVDLE1BQU0sa0JBQWtCLEdBQUcsb0NBQW9DLENBQUM7QUFFaEU7SUFDRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNqRCxNQUFNLFNBQVMsR0FBRyxhQUFhLGNBQWMsR0FBRyxDQUFDO0lBRWpELElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7S0FDcEY7SUFFRCxnQkFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUM7SUFDL0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDO2NBQzNDLGtEQUFrRCxDQUFDLENBQUM7S0FDckU7SUFFRCxvRUFBb0U7SUFDcEUsbUZBQW1GO0lBQ25GLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSwrQ0FBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtRQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RTtjQUN4RiwwRUFBMEU7Y0FDMUUsc0ZBQXNGLENBQ3pGLENBQUM7S0FDSDtJQUVELGdCQUFJLENBQUMsU0FBUyxHQUFHLGtDQUFrQyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLElBQUk7U0FDUixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1Qs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Q0FBQztJQUN2RCxDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDWCxtQkFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25CLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQXZGRCw4QkF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLyBUT0RPOiBmaXggdHlwaW5ncy5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1nbG9iYWwtdHNsaW50LWRpc2FibGVcbi8vIHRzbGludDpkaXNhYmxlOm5vLWFueVxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGxvYWRlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBpbGVyUGx1Z2luIH0gZnJvbSAnLi9hbmd1bGFyX2NvbXBpbGVyX3BsdWdpbic7XG5pbXBvcnQgeyB0aW1lLCB0aW1lRW5kIH0gZnJvbSAnLi9iZW5jaG1hcmsnO1xuXG5cbmNvbnN0IHNvdXJjZU1hcHBpbmdVcmxSZSA9IC9eXFwvXFwvIyBzb3VyY2VNYXBwaW5nVVJMPVteXFxyXFxuXSovZ207XG5cbmV4cG9ydCBmdW5jdGlvbiBuZ2NMb2FkZXIodGhpczogbG9hZGVyLkxvYWRlckNvbnRleHQpIHtcbiAgY29uc3QgY2IgPSB0aGlzLmFzeW5jKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVOYW1lOiBzdHJpbmcgPSB0aGlzLnJlc291cmNlUGF0aDtcbiAgY29uc3QgdGltZUxhYmVsID0gYG5nY0xvYWRlciske3NvdXJjZUZpbGVOYW1lfStgO1xuXG4gIGlmICghY2IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgbG9hZGVyIG5lZWRzIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIHdlYnBhY2sgY29tcGlsYXRpb25zLicpO1xuICB9XG5cbiAgdGltZSh0aW1lTGFiZWwpO1xuXG4gIGNvbnN0IHBsdWdpbiA9IHRoaXMuX2NvbXBpbGF0aW9uLl9uZ1Rvb2xzV2VicGFja1BsdWdpbkluc3RhbmNlO1xuICBpZiAoIXBsdWdpbikge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIEFuZ3VsYXJDb21waWxlclBsdWdpbiB3YXMgbm90IGZvdW5kLiAnXG4gICAgICAgICAgICAgICAgICArICdUaGUgQG5ndG9vbHMvd2VicGFjayBsb2FkZXIgcmVxdWlyZXMgdGhlIHBsdWdpbi4nKTtcbiAgfVxuXG4gIC8vIFdlIG11c3QgdmVyaWZ5IHRoYXQgdGhlIHBsdWdpbiBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgcmlnaHQgY2xhc3MuXG4gIC8vIFRocm93IGFuIGVycm9yIGlmIGl0IGlzbid0LCB0aGF0IG9mdGVuIG1lYW5zIG11bHRpcGxlIEBuZ3Rvb2xzL3dlYnBhY2sgaW5zdGFsbHMuXG4gIGlmICghKHBsdWdpbiBpbnN0YW5jZW9mIEFuZ3VsYXJDb21waWxlclBsdWdpbikgfHwgIXBsdWdpbi5kb25lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbmd1bGFyIENvbXBpbGVyIHdhcyBkZXRlY3RlZCBidXQgaXQgd2FzIGFuIGluc3RhbmNlIG9mIHRoZSB3cm9uZyBjbGFzcy5cXG4nXG4gICAgICArICdUaGlzIGxpa2VseSBtZWFucyB5b3UgaGF2ZSBzZXZlcmFsIEBuZ3Rvb2xzL3dlYnBhY2sgcGFja2FnZXMgaW5zdGFsbGVkLiAnXG4gICAgICArICdZb3UgY2FuIGNoZWNrIHRoaXMgd2l0aCBgbnBtIGxzIEBuZ3Rvb2xzL3dlYnBhY2tgLCBhbmQgdGhlbiByZW1vdmUgdGhlIGV4dHJhIGNvcGllcy4nLFxuICAgICk7XG4gIH1cblxuICB0aW1lKHRpbWVMYWJlbCArICcubmdjTG9hZGVyLkFuZ3VsYXJDb21waWxlclBsdWdpbicpO1xuICBwbHVnaW4uZG9uZVxuICAgIC50aGVuKCgpID0+IHtcbiAgICAgIHRpbWVFbmQodGltZUxhYmVsICsgJy5uZ2NMb2FkZXIuQW5ndWxhckNvbXBpbGVyUGx1Z2luJyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbHVnaW4uZ2V0Q29tcGlsZWRGaWxlKHNvdXJjZUZpbGVOYW1lKTtcblxuICAgICAgaWYgKHJlc3VsdC5zb3VyY2VNYXApIHtcbiAgICAgICAgLy8gUHJvY2VzcyBzb3VyY2VtYXBzIGZvciBXZWJwYWNrLlxuICAgICAgICAvLyBSZW1vdmUgdGhlIHNvdXJjZU1hcHBpbmdVUkwuXG4gICAgICAgIHJlc3VsdC5vdXRwdXRUZXh0ID0gcmVzdWx0Lm91dHB1dFRleHQucmVwbGFjZShzb3VyY2VNYXBwaW5nVXJsUmUsICcnKTtcbiAgICAgICAgLy8gU2V0IHRoZSBtYXAgc291cmNlIHRvIHVzZSB0aGUgZnVsbCBwYXRoIG9mIHRoZSBmaWxlLlxuICAgICAgICBjb25zdCBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKHJlc3VsdC5zb3VyY2VNYXApO1xuICAgICAgICBzb3VyY2VNYXAuc291cmNlcyA9IHNvdXJjZU1hcC5zb3VyY2VzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKHNvdXJjZUZpbGVOYW1lKSwgZmlsZU5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0LnNvdXJjZU1hcCA9IHNvdXJjZU1hcDtcbiAgICAgIH1cblxuICAgICAgLy8gTWFudWFsbHkgYWRkIHRoZSBkZXBlbmRlbmNpZXMgZm9yIFRTIGZpbGVzLlxuICAgICAgLy8gVHlwZSBvbmx5IGltcG9ydHMgd2lsbCBiZSBzdHJpcHBlZCBvdXQgYnkgY29tcGlsYXRpb24gc28gd2UgbmVlZCB0byBhZGQgdGhlbSBhc1xuICAgICAgLy8gYXMgZGVwZW5kZW5jaWVzLlxuICAgICAgLy8gQ29tcG9uZW50IHJlc291cmNlcyBmaWxlcyAoaHRtbCBhbmQgY3NzIHRlbXBsYXRlcykgYWxzbyBuZWVkIHRvIGJlIGFkZGVkIG1hbnVhbGx5IGZvclxuICAgICAgLy8gQU9ULCBzbyB0aGF0IHRoaXMgZmlsZSBpcyByZWxvYWRlZCB3aGVuIHRoZXkgY2hhbmdlLlxuICAgICAgaWYgKHNvdXJjZUZpbGVOYW1lLmVuZHNXaXRoKCcudHMnKSkge1xuICAgICAgICByZXN1bHQuZXJyb3JEZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4gdGhpcy5hZGREZXBlbmRlbmN5KGRlcCkpO1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBwbHVnaW4uZ2V0RGVwZW5kZW5jaWVzKHNvdXJjZUZpbGVOYW1lKTtcbiAgICAgICAgZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgICAgICBwbHVnaW4udXBkYXRlQ2hhbmdlZEZpbGVFeHRlbnNpb25zKHBhdGguZXh0bmFtZShkZXApKTtcbiAgICAgICAgICB0aGlzLmFkZERlcGVuZGVuY3koZGVwKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5nRmFjdG9yeSBmaWxlcyBkZXBlbmQgb24gdGhlIGNvbXBvbmVudCB0ZW1wbGF0ZSwgYnV0IHdlIGNhbid0IGtub3cgd2hhdCB0aGF0IGZpbGVcbiAgICAgIC8vIGlzIChpZiBhbnkpLiBTbyB3ZSBhZGQgYWxsIHRoZSBkZXBlbmRlbmNpZXMgdGhhdCB0aGUgb3JpZ2luYWwgY29tcG9uZW50IGZpbGUgaGFzXG4gICAgICAvLyB0byB0aGUgZmFjdG9yeSBhcyB3ZWxsLCB3aGljaCBpbmNsdWRlcyBodG1sIGFuZCBjc3MgdGVtcGxhdGVzLCBhbmQgdGhlIGNvbXBvbmVudFxuICAgICAgLy8gaXRzZWxmIChmb3IgaW5saW5lIGh0bWwvdGVtcGxhdGVzIHRlbXBsYXRlcykuXG4gICAgICBjb25zdCBuZ0ZhY3RvcnlSZSA9IC9cXC5uZ2ZhY3RvcnkuanMkLztcbiAgICAgIGlmIChuZ0ZhY3RvcnlSZS50ZXN0KHNvdXJjZUZpbGVOYW1lKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEZpbGUgPSBzb3VyY2VGaWxlTmFtZS5yZXBsYWNlKG5nRmFjdG9yeVJlLCAnLnRzJyk7XG4gICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jeShvcmlnaW5hbEZpbGUpO1xuICAgICAgICBjb25zdCBvcmlnRGVwZW5kZW5jaWVzID0gcGx1Z2luLmdldERlcGVuZGVuY2llcyhvcmlnaW5hbEZpbGUpO1xuICAgICAgICBvcmlnRGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHRoaXMuYWRkRGVwZW5kZW5jeShkZXApKTtcbiAgICAgIH1cblxuICAgICAgLy8gTmdTdHlsZSBmaWxlcyBkZXBlbmQgb24gdGhlIHN0eWxlIGZpbGUgdGhleSByZXByZXNlbnQuXG4gICAgICAvLyBFLmcuIGBzb21lLXN0eWxlLmxlc3Muc2hpbS5uZ3N0eWxlLmpzYCBkZXBlbmRzIG9uIGBzb21lLXN0eWxlLmxlc3NgLlxuICAgICAgLy8gVGhvc2UgZmlsZXMgY2FuIGluIHR1cm4gZGVwZW5kIG9uIG90aGVycywgc28gd2UgaGF2ZSB0byBhZGQgdGhlbSBhbGwuXG4gICAgICBjb25zdCBuZ1N0eWxlUmUgPSAvKD86XFwuc2hpbSk/XFwubmdzdHlsZVxcLmpzJC87XG4gICAgICBpZiAobmdTdHlsZVJlLnRlc3Qoc291cmNlRmlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlRmlsZSA9IHNvdXJjZUZpbGVOYW1lLnJlcGxhY2UobmdTdHlsZVJlLCAnJyk7XG4gICAgICAgIGNvbnN0IHN0eWxlRGVwZW5kZW5jaWVzID0gcGx1Z2luLmdldFJlc291cmNlRGVwZW5kZW5jaWVzKHN0eWxlRmlsZSk7XG4gICAgICAgIHN0eWxlRGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHRoaXMuYWRkRGVwZW5kZW5jeShkZXApKTtcbiAgICAgIH1cblxuICAgICAgdGltZUVuZCh0aW1lTGFiZWwpO1xuICAgICAgY2IobnVsbCwgcmVzdWx0Lm91dHB1dFRleHQsIHJlc3VsdC5zb3VyY2VNYXAgYXMgYW55KTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgdGltZUVuZCh0aW1lTGFiZWwpO1xuICAgICAgY2IoZXJyKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
package/src/ngtools_api.js
CHANGED
|
@@ -63,4 +63,4 @@ exports.createProgram = getApiMember(ngtools2, 'createProgram', 'ngtools2');
|
|
|
63
63
|
exports.createCompilerHost = getApiMember(ngtools2, 'createCompilerHost', 'ngtools2');
|
|
64
64
|
exports.formatDiagnostics = getApiMember(ngtools2, 'formatDiagnostics', 'ngtools2');
|
|
65
65
|
exports.EmitFlags = getApiMember(ngtools2, 'EmitFlags', 'ngtools2');
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0b29sc19hcGkuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL25ndG9vbHMvd2VicGFjay9zcmMvbmd0b29sc19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSw2QkFBNkI7QUFHaEIsUUFBQSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDekIsUUFBQSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDekIsUUFBQSxNQUFNLEdBQUcsU0FBc0IsQ0FBQztBQVE3QyxnQkFBZ0IsR0FBVyxFQUFFLEVBQVU7SUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxzQkFDRSxHQUFhLEVBQ2IsSUFBTyxFQUNQLE9BQWU7SUFFZixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsc0VBQXNFO0FBQ3RFLG1HQUFtRztBQUNuRyx3RkFBd0Y7QUFDeEYsZ0JBQWdCO0FBQ2hCO0lBQ0UsSUFBSSxPQUFPLENBQUM7SUFFWixtQ0FBbUM7SUFDbkMsSUFBSTtRQUNGLE9BQU8sR0FBSSxPQUFPLENBQUMsdUJBQXVCLENBQWdCLENBQUMsT0FBTyxDQUFDO0tBQ3BFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2hHO0lBRUQsa0dBQWtHO0lBQ2xHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNqRSxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFO2NBQzNGLCtDQUErQyxDQUFDLENBQUM7S0FDdEQ7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRTtjQUM3RSx1QkFBdUIsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7S0FDOUM7QUFDSCxDQUFDO0FBdEJELHdEQXNCQztBQUVELGdHQUFnRztBQUNoRyxVQUFVO0FBQ1YsSUFBSSxXQUFXLEdBQXNCLElBQUksQ0FBQztBQUMxQyxJQUFJO0lBQ0YsV0FBVyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0NBQ2hEO0FBQUMsV0FBTTtJQUNOLDBEQUEwRDtJQUMxRCxvRkFBb0Y7SUFDcEYseUJBQXlCO0NBQzFCO0FBRVksUUFBQSxPQUFPLEdBQXVCLFlBQVksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ25GLFFBQUEsdUJBQXVCLEdBQUcsWUFBWSxDQUNqRCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGNBQWMsQ0FDZixDQUFDO0FBQ1csUUFBQSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRWhHLDZGQUE2RjtBQUM3RixVQUFVO0FBQ1YsSUFBSSxRQUFRLEdBQTBCLElBQUksQ0FBQztBQUMzQyxJQUFJO0lBQ0YsUUFBUSxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0NBQ3REO0FBQUMsV0FBTTtJQUNOLDBEQUEwRDtDQUMzRDtBQUVZLFFBQUEsYUFBYSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3BFLFFBQUEsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM5RSxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDNUUsUUFBQSxTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLyBXZSBkaXNhYmxlIGltcGxpY2l0IGRlcGVuZGVuY2NpZXMgYmVjYXVzZSB0aG9zZSBhcmUgb25seSBmb3IgdHlwaW5ncyBhbmQgZG9uJ3QgaGF2ZSBhIHJ1bnRpbWVcbi8vIGVxdWl2YWxlbnQuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZ2xvYmFsLXRzbGludC1kaXNhYmxlXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1pbXBsaWNpdC1kZXBlbmRlbmNpZXNcbmltcG9ydCAqIGFzIG5nYyBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGknO1xuaW1wb3J0ICogYXMgbmd0b29scyBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvbmd0b29sczInO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9DT0RFID0gMTAwO1xuZXhwb3J0IGNvbnN0IFVOS05PV05fRVJST1JfQ09ERSA9IDUwMDtcbmV4cG9ydCBjb25zdCBTT1VSQ0UgPSAnYW5ndWxhcicgYXMgJ2FuZ3VsYXInO1xuXG5leHBvcnQgdHlwZSBDb21waWxlck9wdGlvbnMgPSBuZ2MuQ29tcGlsZXJPcHRpb25zO1xuZXhwb3J0IHR5cGUgQ29tcGlsZXJIb3N0ID0gbmd0b29scy5Db21waWxlckhvc3Q7XG5leHBvcnQgdHlwZSBQcm9ncmFtID0gbmd0b29scy5Qcm9ncmFtO1xuZXhwb3J0IHR5cGUgRGlhZ25vc3RpYyA9IG5ndG9vbHMuRGlhZ25vc3RpYztcbmV4cG9ydCB0eXBlIERpYWdub3N0aWNzID0gUmVhZG9ubHlBcnJheTx0cy5EaWFnbm9zdGljIHwgRGlhZ25vc3RpYz47XG5cbmZ1bmN0aW9uIF9lcnJvcihhcGk6IHN0cmluZywgZm46IHN0cmluZyk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBBUEkgJyArIGFwaSArICcsIGZ1bmN0aW9uICcgKyBmbik7XG59XG5cbmZ1bmN0aW9uIGdldEFwaU1lbWJlcjxULCBLIGV4dGVuZHMga2V5b2YgVD4oXG4gIGFwaTogVCB8IG51bGwsXG4gIGZ1bmM6IEssXG4gIGFwaU5hbWU6IHN0cmluZyxcbik6IFRbS10ge1xuICByZXR1cm4gYXBpICYmIGFwaVtmdW5jXSB8fCBfZXJyb3IoYXBpTmFtZSwgZnVuYy50b1N0cmluZygpKTtcbn1cblxuLy8gTWFudWFsbHkgY2hlY2sgZm9yIENvbXBpbGVyIENMSSBhdmFpbGFiaWxpdHkgYW5kIHN1cHBvcnRlZCB2ZXJzaW9uLlxuLy8gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBAbmd0b29scy93ZWJwYWNrIGRvZXMgbm90IGRlcGVuZCBkaXJlY3RseSBvbiBAYW5ndWxhci9jb21waWxlci1jbGksIHNpbmNlXG4vLyBpdCBpcyBpbnN0YWxsZWQgYXMgcGFydCBvZiBnbG9iYWwgQW5ndWxhciBDTEkgaW5zdGFsbHMgYW5kIGNvbXBpbGVyLWNsaSBpcyBub3Qgb2YgaXRzXG4vLyBkZXBlbmRlbmNpZXMuXG5leHBvcnQgZnVuY3Rpb24gQ29tcGlsZXJDbGlJc1N1cHBvcnRlZCgpIHtcbiAgbGV0IHZlcnNpb247XG5cbiAgLy8gQ2hlY2sgdGhhdCBBbmd1bGFyIGlzIGF2YWlsYWJsZS5cbiAgdHJ5IHtcbiAgICB2ZXJzaW9uID0gKHJlcXVpcmUoJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaScpIGFzIHR5cGVvZiBuZ2MpLlZFUlNJT047XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcIkBhbmd1bGFyL2NvbXBpbGVyLWNsaVwiIHBhY2thZ2Ugd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQuIEVycm9yOiAnICsgZSk7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IEFuZ3VsYXIgaXMgYWxzbyBub3QgcGFydCBvZiB0aGlzIG1vZHVsZSdzIG5vZGVfbW9kdWxlcyAoaXQgc2hvdWxkIGJlIHRoZSBwcm9qZWN0J3MpLlxuICBjb25zdCBjb21waWxlckNsaVBhdGggPSByZXF1aXJlLnJlc29sdmUoJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaScpO1xuICBpZiAoY29tcGlsZXJDbGlQYXRoLnN0YXJ0c1dpdGgocGF0aC5kaXJuYW1lKF9fZGlybmFtZSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgQG5ndG9vbHMvd2VicGFjayBwbHVnaW4gbm93IHJlbGllcyBvbiB0aGUgcHJvamVjdCBAYW5ndWxhci9jb21waWxlci1jbGkuICdcbiAgICAgICsgJ1BsZWFzZSBjbGVhbiB5b3VyIG5vZGVfbW9kdWxlcyBhbmQgcmVpbnN0YWxsLicpO1xuICB9XG5cbiAgLy8gVGhyb3cgaWYgd2UncmUgbGVzcyB0aGFuIDUueFxuICBpZiAoTnVtYmVyKHZlcnNpb24ubWFqb3IpIDwgNSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVmVyc2lvbiBvZiBAYW5ndWxhci9jb21waWxlci1jbGkgbmVlZHMgdG8gYmUgNS4wLjAgb3IgZ3JlYXRlci4gJ1xuICAgICAgKyBgQ3VycmVudCB2ZXJzaW9uIGlzIFwiJHt2ZXJzaW9uLmZ1bGx9XCIuYCk7XG4gIH1cbn1cblxuLy8gVGhlc2UgaW1wb3J0cyBkbyBub3QgZXhpc3Qgb24gYSBnbG9iYWwgaW5zdGFsbCBmb3IgQW5ndWxhciBDTEksIHNvIHdlIGNhbm5vdCB1c2UgYSBzdGF0aWMgRVM2XG4vLyBpbXBvcnQuXG5sZXQgY29tcGlsZXJDbGk6IHR5cGVvZiBuZ2MgfCBudWxsID0gbnVsbDtcbnRyeSB7XG4gIGNvbXBpbGVyQ2xpID0gcmVxdWlyZSgnQGFuZ3VsYXIvY29tcGlsZXItY2xpJyk7XG59IGNhdGNoIHtcbiAgLy8gRG9uJ3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByaXZhdGUgQVBJIGRvZXMgbm90IGV4aXN0LlxuICAvLyBJbnN0ZWFkLCB0aGUgYENvbXBpbGVyQ2xpSXNTdXBwb3J0ZWRgIG1ldGhvZCBzaG91bGQgcmV0dXJuIHRocm93IGFuZCBpbmRpY2F0ZSB0aGVcbiAgLy8gcGx1Z2luIGNhbm5vdCBiZSB1c2VkLlxufVxuXG5leHBvcnQgY29uc3QgVkVSU0lPTjogdHlwZW9mIG5nYy5WRVJTSU9OID0gZ2V0QXBpTWVtYmVyKGNvbXBpbGVyQ2xpLCAnVkVSU0lPTicsICdjb21waWxlci1jbGknKTtcbmV4cG9ydCBjb25zdCBfX05HVE9PTFNfUFJJVkFURV9BUElfMiA9IGdldEFwaU1lbWJlcihcbiAgY29tcGlsZXJDbGksXG4gICdfX05HVE9PTFNfUFJJVkFURV9BUElfMicsXG4gICdjb21waWxlci1jbGknLFxuKTtcbmV4cG9ydCBjb25zdCByZWFkQ29uZmlndXJhdGlvbiA9IGdldEFwaU1lbWJlcihjb21waWxlckNsaSwgJ3JlYWRDb25maWd1cmF0aW9uJywgJ2NvbXBpbGVyLWNsaScpO1xuXG4vLyBUaGVzZSBpbXBvcnRzIGRvIG5vdCBleGlzdCBvbiBBbmd1bGFyIHZlcnNpb25zIGxvd2VyIHRoYW4gNSwgc28gd2UgY2Fubm90IHVzZSBhIHN0YXRpYyBFUzZcbi8vIGltcG9ydC5cbmxldCBuZ3Rvb2xzMjogdHlwZW9mIG5ndG9vbHMgfCBudWxsID0gbnVsbDtcbnRyeSB7XG4gIG5ndG9vbHMyID0gcmVxdWlyZSgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL25ndG9vbHMyJyk7XG59IGNhdGNoIHtcbiAgLy8gRG9uJ3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByaXZhdGUgQVBJIGRvZXMgbm90IGV4aXN0LlxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlUHJvZ3JhbSA9IGdldEFwaU1lbWJlcihuZ3Rvb2xzMiwgJ2NyZWF0ZVByb2dyYW0nLCAnbmd0b29sczInKTtcbmV4cG9ydCBjb25zdCBjcmVhdGVDb21waWxlckhvc3QgPSBnZXRBcGlNZW1iZXIobmd0b29sczIsICdjcmVhdGVDb21waWxlckhvc3QnLCAnbmd0b29sczInKTtcbmV4cG9ydCBjb25zdCBmb3JtYXREaWFnbm9zdGljcyA9IGdldEFwaU1lbWJlcihuZ3Rvb2xzMiwgJ2Zvcm1hdERpYWdub3N0aWNzJywgJ25ndG9vbHMyJyk7XG5leHBvcnQgY29uc3QgRW1pdEZsYWdzID0gZ2V0QXBpTWVtYmVyKG5ndG9vbHMyLCAnRW1pdEZsYWdzJywgJ25ndG9vbHMyJyk7XG4iXX0=
|
package/src/paths-plugin.js
CHANGED
|
@@ -139,4 +139,4 @@ function resolveWithPaths(request, callback, compilerOptions, host, cache) {
|
|
|
139
139
|
callback(null, request);
|
|
140
140
|
}
|
|
141
141
|
exports.resolveWithPaths = resolveWithPaths;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHMtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL3BhdGhzLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFPakMsMEJBQ0UsT0FBbUMsRUFDbkMsUUFBOEMsRUFDOUMsZUFBbUMsRUFDbkMsSUFBcUIsRUFDckIsS0FBZ0M7SUFFaEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0QsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4QixNQUFNLENBQUM7SUFDVCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEIsTUFBTSxDQUFDO0lBQ1QsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFL0MsbUNBQW1DO0lBQ25DLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4QixNQUFNLENBQUM7SUFDVCxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENB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QUE4RDtZQUM5RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN2RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFFRCxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE1BQU0sQ0FBQztJQUNULENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztJQUNqQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUE5SkQsNENBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtcbiAgQ2FsbGJhY2ssXG4gIE5vcm1hbE1vZHVsZUZhY3RvcnlSZXF1ZXN0LFxufSBmcm9tICcuL3dlYnBhY2snO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2l0aFBhdGhzKFxuICByZXF1ZXN0OiBOb3JtYWxNb2R1bGVGYWN0b3J5UmVxdWVzdCxcbiAgY2FsbGJhY2s6IENhbGxiYWNrPE5vcm1hbE1vZHVsZUZhY3RvcnlSZXF1ZXN0PixcbiAgY29tcGlsZXJPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG4gIGhvc3Q6IHRzLkNvbXBpbGVySG9zdCxcbiAgY2FjaGU/OiB0cy5Nb2R1bGVSZXNvbHV0aW9uQ2FjaGUsXG4pIHtcbiAgaWYgKCFyZXF1ZXN0IHx8ICFyZXF1ZXN0LnJlcXVlc3QgfHwgIWNvbXBpbGVyT3B0aW9ucy5wYXRocykge1xuICAgIGNhbGxiYWNrKG51bGwsIHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gT25seSB3b3JrIG9uIEphdmFzY3JpcHQvVHlwZVNjcmlwdCBpc3N1ZXJzLlxuICBpZiAoIXJlcXVlc3QuY29udGV4dEluZm8uaXNzdWVyIHx8ICFyZXF1ZXN0LmNvbnRleHRJbmZvLmlzc3Vlci5tYXRjaCgvXFwuW2p0XXMkLykpIHtcbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVxdWVzdCA9IHJlcXVlc3QucmVxdWVzdC50cmltKCk7XG5cbiAgLy8gUmVsYXRpdmUgcmVxdWVzdHMgYXJlIG5vdCBtYXBwZWRcbiAgaWYgKG9yaWdpbmFsUmVxdWVzdC5zdGFydHNXaXRoKCcuJykgfHwgb3JpZ2luYWxSZXF1ZXN0LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIGNhbGxiYWNrKG51bGwsIHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQW1kIHJlcXVlc3RzIGFyZSBub3QgbWFwcGVkXG4gIGlmIChvcmlnaW5hbFJlcXVlc3Quc3RhcnRzV2l0aCgnISF3ZWJwYWNrIGFtZCcpKSB7XG4gICAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBjaGVjayBpZiBhbnkgcGF0aCBtYXBwaW5nIHJ1bGVzIGFyZSByZWxldmFudFxuICBjb25zdCBwYXRoTWFwT3B0aW9ucyA9IFtdO1xuICBmb3IgKGNvbnN0IHBhdHRlcm4gaW4gY29tcGlsZXJPcHRpb25zLnBhdGhzKSB7XG4gICAgLy8gZ2V0IHBvdGVudGlhbHMgYW5kIHJlbW92ZSBkdXBsaWNhdGVzOyBKUyBTZXQgbWFpbnRhaW5zIGluc2VydGlvbiBvcmRlclxuICAgIGNvbnN0IHBvdGVudGlhbHMgPSBBcnJheS5mcm9tKG5ldyBTZXQoY29tcGlsZXJPcHRpb25zLnBhdGhzW3BhdHRlcm5dKSk7XG4gICAgaWYgKHBvdGVudGlhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBubyBwb3RlbnRpYWwgcmVwbGFjZW1lbnRzIHNvIHNraXBcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIGNhbiBvbmx5IGNvbnRhaW4gemVybyBvciBvbmVcbiAgICBjb25zdCBzdGFySW5kZXggPSBwYXR0ZXJuLmluZGV4T2YoJyonKTtcbiAgICBpZiAoc3RhckluZGV4ID09PSAtMSkge1xuICAgICAgaWYgKHBhdHRlcm4gPT09IG9yaWdpbmFsUmVxdWVzdCkge1xuICAgICAgICBwYXRoTWFwT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICBzdGFySW5kZXgsXG4gICAgICAgICAgcGFydGlhbDogJycsXG4gICAgICAgICAgcG90ZW50aWFscyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGFySW5kZXggPT09IDAgJiYgcGF0dGVybi5sZW5ndGggPT09IDEpIHtcbiAgICAgIHBhdGhNYXBPcHRpb25zLnB1c2goe1xuICAgICAgICBzdGFySW5kZXgsXG4gICAgICAgIHBhcnRpYWw6IG9yaWdpbmFsUmVxdWVzdCxcbiAgICAgICAgcG90ZW50aWFscyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoc3RhckluZGV4ID09PSBwYXR0ZXJuLmxlbmd0aCAtIDEpIHtcbiAgICAgIGlmIChvcmlnaW5hbFJlcXVlc3Quc3RhcnRzV2l0aChwYXR0ZXJuLnNsaWNlKDAsIC0xKSkpIHtcbiAgICAgICAgcGF0aE1hcE9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgc3RhckluZGV4LFxuICAgICAgICAgIHBhcnRpYWw6IG9yaWdpbmFsUmVxdWVzdC5zbGljZShwYXR0ZXJuLmxlbmd0aCAtIDEpLFxuICAgICAgICAgIHBvdGVudGlhbHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBbcHJlZml4LCBzdWZmaXhdID0gcGF0dGVybi5zcGxpdCgnKicpO1xuICAgICAgaWYgKG9yaWdpbmFsUmVxdWVzdC5zdGFydHNXaXRoKHByZWZpeCkgJiYgb3JpZ2luYWxSZXF1ZXN0LmVuZHNXaXRoKHN1ZmZpeCkpIHtcbiAgICAgICAgcGF0aE1hcE9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgc3RhckluZGV4LFxuICAgICAgICAgIHBhcnRpYWw6IG9yaWdpbmFsUmVxdWVzdC5zbGljZShwcmVmaXgubGVuZ3RoKS5zbGljZSgwLCAtc3VmZml4Lmxlbmd0aCksXG4gICAgICAgICAgcG90ZW50aWFscyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhdGhNYXBPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIGNhbGxiYWNrKG51bGwsIHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gZXhhY3QgbWF0Y2hlcyB0YWtlIHByaW9yaXR5IHRoZW4gbGFyZ2VzdCBwcmVmaXggbWF0Y2hcbiAgcGF0aE1hcE9wdGlvbnMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChhLnN0YXJJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGIuc3RhckluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBiLnN0YXJJbmRleCAtIGEuc3RhckluZGV4O1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHBhdGhNYXBPcHRpb25zWzBdLnBvdGVudGlhbHMubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3Qgb25seVBvdGVudGlhbCA9IHBhdGhNYXBPcHRpb25zWzBdLnBvdGVudGlhbHNbMF07XG4gICAgbGV0IHJlcGxhY2VtZW50O1xuICAgIGNvbnN0IHN0YXJJbmRleCA9IG9ubHlQb3RlbnRpYWwuaW5kZXhPZignKicpO1xuICAgIGlmIChzdGFySW5kZXggPT09IC0xKSB7XG4gICAgICByZXBsYWNlbWVudCA9IG9ubHlQb3RlbnRpYWw7XG4gICAgfSBlbHNlIGlmIChzdGFySW5kZXggPT09IG9ubHlQb3RlbnRpYWwubGVuZ3RoIC0gMSkge1xuICAgICAgcmVwbGFjZW1lbnQgPSBvbmx5UG90ZW50aWFsLnNsaWNlKDAsIC0xKSArIHBhdGhNYXBPcHRpb25zWzBdLnBhcnRpYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IFtwcmVmaXgsIHN1ZmZpeF0gPSBvbmx5UG90ZW50aWFsLnNwbGl0KCcqJyk7XG4gICAgICByZXBsYWNlbWVudCA9IHByZWZpeCArIHBhdGhNYXBPcHRpb25zWzBdLnBhcnRpYWwgKyBzdWZmaXg7XG4gICAgfVxuXG4gICAgcmVxdWVzdC5yZXF1ZXN0ID0gcGF0aC5yZXNvbHZlKGNvbXBpbGVyT3B0aW9ucy5iYXNlVXJsIHx8ICcnLCByZXBsYWNlbWVudCk7XG4gICAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBUT0RPOiBUaGUgZm9sbG93aW5nIGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHBvdGVudGlhbCBhbmQgd2lsbCBub3QgYmVcbiAgLy8gICAgICAgbmVlZGVkIG9uY2UgdGhpcyBpcyB0dXJuZWQgaW50byBhIGZ1bGwgd2VicGFjayByZXNvbHZlciBwbHVnaW5cblxuICBjb25zdCBtb2R1bGVSZXNvbHZlciA9IHRzLnJlc29sdmVNb2R1bGVOYW1lKFxuICAgIG9yaWdpbmFsUmVxdWVzdCxcbiAgICByZXF1ZXN0LmNvbnRleHRJbmZvLmlzc3VlcixcbiAgICBjb21waWxlck9wdGlvbnMsXG4gICAgaG9zdCxcbiAgICBjYWNoZSxcbiAgKTtcblxuICBjb25zdCBtb2R1bGVGaWxlUGF0aCA9IG1vZHVsZVJlc29sdmVyLnJlc29sdmVkTW9kdWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgJiYgbW9kdWxlUmVzb2x2ZXIucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyByZXN1bHQsIGxldCB3ZWJwYWNrIHRyeSB0byByZXNvbHZlXG4gIGlmICghbW9kdWxlRmlsZVBhdGgpIHtcbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIElmIFR5cGVTY3JpcHQgZ2l2ZXMgdXMgYSBgLmQudHNgLCBpdCBpcyBwcm9iYWJseSBhIG5vZGUgbW9kdWxlXG4gIGlmIChtb2R1bGVGaWxlUGF0aC5lbmRzV2l0aCgnLmQudHMnKSkge1xuICAgIC8vIElmIGluIGEgcGFja2FnZSwgbGV0IHdlYnBhY2sgcmVzb2x2ZSB0aGUgcGFja2FnZVxuICAgIGNvbnN0IHBhY2thZ2VSb290UGF0aCA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUobW9kdWxlRmlsZVBhdGgpLCAncGFja2FnZS5qc29uJyk7XG4gICAgaWYgKCFob3N0LmZpbGVFeGlzdHMocGFja2FnZVJvb3RQYXRoKSkge1xuICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIGZpbGUgd2l0aCBhIC5qcyBleHRlbnNpb24gdXNlIHRoYXRcbiAgICAgIGNvbnN0IGpzRmlsZVBhdGggPSBtb2R1bGVGaWxlUGF0aC5zbGljZSgwLCAtNSkgKyAnLmpzJztcbiAgICAgIGlmIChob3N0LmZpbGVFeGlzdHMoanNGaWxlUGF0aCkpIHtcbiAgICAgICAgcmVxdWVzdC5yZXF1ZXN0ID0ganNGaWxlUGF0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlcXVlc3QucmVxdWVzdCA9IG1vZHVsZUZpbGVQYXRoO1xuICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcbn1cbiJdfQ==
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHMtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9uZ3Rvb2xzL3dlYnBhY2svc3JjL3BhdGhzLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFPakMsMEJBQ0UsT0FBbUMsRUFDbkMsUUFBOEMsRUFDOUMsZUFBbUMsRUFDbkMsSUFBcUIsRUFDckIsS0FBZ0M7SUFFaEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO1FBQzFELFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEIsT0FBTztLQUNSO0lBRUQsOENBQThDO0lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUNoRixRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE9BQU87S0FDUjtJQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFL0MsbUNBQW1DO0lBQ25DLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEIsT0FBTztLQUNSO0lBRUQsOEJBQThCO0lBQzlCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUMvQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLE9BQU87S0FDUjtJQUVELCtDQUErQztJQUMvQyxNQUFNLGNB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QUFPO0tBQ1I7SUFFRCxpRUFBaUU7SUFDakUsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3BDLG1EQUFtRDtRQUNuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDckMsOERBQThEO1lBQzlELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3ZELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7YUFDOUI7U0FDRjtRQUVELFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEIsT0FBTztLQUNSO0lBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7SUFDakMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBOUpELDRDQThKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7XG4gIENhbGxiYWNrLFxuICBOb3JtYWxNb2R1bGVGYWN0b3J5UmVxdWVzdCxcbn0gZnJvbSAnLi93ZWJwYWNrJztcblxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdpdGhQYXRocyhcbiAgcmVxdWVzdDogTm9ybWFsTW9kdWxlRmFjdG9yeVJlcXVlc3QsXG4gIGNhbGxiYWNrOiBDYWxsYmFjazxOb3JtYWxNb2R1bGVGYWN0b3J5UmVxdWVzdD4sXG4gIGNvbXBpbGVyT3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zLFxuICBob3N0OiB0cy5Db21waWxlckhvc3QsXG4gIGNhY2hlPzogdHMuTW9kdWxlUmVzb2x1dGlvbkNhY2hlLFxuKSB7XG4gIGlmICghcmVxdWVzdCB8fCAhcmVxdWVzdC5yZXF1ZXN0IHx8ICFjb21waWxlck9wdGlvbnMucGF0aHMpIHtcbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIE9ubHkgd29yayBvbiBKYXZhc2NyaXB0L1R5cGVTY3JpcHQgaXNzdWVycy5cbiAgaWYgKCFyZXF1ZXN0LmNvbnRleHRJbmZvLmlzc3VlciB8fCAhcmVxdWVzdC5jb250ZXh0SW5mby5pc3N1ZXIubWF0Y2goL1xcLltqdF1zJC8pKSB7XG4gICAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFJlcXVlc3QgPSByZXF1ZXN0LnJlcXVlc3QudHJpbSgpO1xuXG4gIC8vIFJlbGF0aXZlIHJlcXVlc3RzIGFyZSBub3QgbWFwcGVkXG4gIGlmIChvcmlnaW5hbFJlcXVlc3Quc3RhcnRzV2l0aCgnLicpIHx8IG9yaWdpbmFsUmVxdWVzdC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEFtZCByZXF1ZXN0cyBhcmUgbm90IG1hcHBlZFxuICBpZiAob3JpZ2luYWxSZXF1ZXN0LnN0YXJ0c1dpdGgoJyEhd2VicGFjayBhbWQnKSkge1xuICAgIGNhbGxiYWNrKG51bGwsIHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gY2hlY2sgaWYgYW55IHBhdGggbWFwcGluZyBydWxlcyBhcmUgcmVsZXZhbnRcbiAgY29uc3QgcGF0aE1hcE9wdGlvbnMgPSBbXTtcbiAgZm9yIChjb25zdCBwYXR0ZXJuIGluIGNvbXBpbGVyT3B0aW9ucy5wYXRocykge1xuICAgIC8vIGdldCBwb3RlbnRpYWxzIGFuZCByZW1vdmUgZHVwbGljYXRlczsgSlMgU2V0IG1haW50YWlucyBpbnNlcnRpb24gb3JkZXJcbiAgICBjb25zdCBwb3RlbnRpYWxzID0gQXJyYXkuZnJvbShuZXcgU2V0KGNvbXBpbGVyT3B0aW9ucy5wYXRoc1twYXR0ZXJuXSkpO1xuICAgIGlmIChwb3RlbnRpYWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gbm8gcG90ZW50aWFsIHJlcGxhY2VtZW50cyBzbyBza2lwXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBjYW4gb25seSBjb250YWluIHplcm8gb3Igb25lXG4gICAgY29uc3Qgc3RhckluZGV4ID0gcGF0dGVybi5pbmRleE9mKCcqJyk7XG4gICAgaWYgKHN0YXJJbmRleCA9PT0gLTEpIHtcbiAgICAgIGlmIChwYXR0ZXJuID09PSBvcmlnaW5hbFJlcXVlc3QpIHtcbiAgICAgICAgcGF0aE1hcE9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgc3RhckluZGV4LFxuICAgICAgICAgIHBhcnRpYWw6ICcnLFxuICAgICAgICAgIHBvdGVudGlhbHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhckluZGV4ID09PSAwICYmIHBhdHRlcm4ubGVuZ3RoID09PSAxKSB7XG4gICAgICBwYXRoTWFwT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgc3RhckluZGV4LFxuICAgICAgICBwYXJ0aWFsOiBvcmlnaW5hbFJlcXVlc3QsXG4gICAgICAgIHBvdGVudGlhbHMsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHN0YXJJbmRleCA9PT0gcGF0dGVybi5sZW5ndGggLSAxKSB7XG4gICAgICBpZiAob3JpZ2luYWxSZXF1ZXN0LnN0YXJ0c1dpdGgocGF0dGVybi5zbGljZSgwLCAtMSkpKSB7XG4gICAgICAgIHBhdGhNYXBPcHRpb25zLnB1c2goe1xuICAgICAgICAgIHN0YXJJbmRleCxcbiAgICAgICAgICBwYXJ0aWFsOiBvcmlnaW5hbFJlcXVlc3Quc2xpY2UocGF0dGVybi5sZW5ndGggLSAxKSxcbiAgICAgICAgICBwb3RlbnRpYWxzLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgW3ByZWZpeCwgc3VmZml4XSA9IHBhdHRlcm4uc3BsaXQoJyonKTtcbiAgICAgIGlmIChvcmlnaW5hbFJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpICYmIG9yaWdpbmFsUmVxdWVzdC5lbmRzV2l0aChzdWZmaXgpKSB7XG4gICAgICAgIHBhdGhNYXBPcHRpb25zLnB1c2goe1xuICAgICAgICAgIHN0YXJJbmRleCxcbiAgICAgICAgICBwYXJ0aWFsOiBvcmlnaW5hbFJlcXVlc3Quc2xpY2UocHJlZml4Lmxlbmd0aCkuc2xpY2UoMCwgLXN1ZmZpeC5sZW5ndGgpLFxuICAgICAgICAgIHBvdGVudGlhbHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXRoTWFwT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICBjYWxsYmFjayhudWxsLCByZXF1ZXN0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGV4YWN0IG1hdGNoZXMgdGFrZSBwcmlvcml0eSB0aGVuIGxhcmdlc3QgcHJlZml4IG1hdGNoXG4gIHBhdGhNYXBPcHRpb25zLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoYS5zdGFySW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfSBlbHNlIGlmIChiLnN0YXJJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYi5zdGFySW5kZXggLSBhLnN0YXJJbmRleDtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChwYXRoTWFwT3B0aW9uc1swXS5wb3RlbnRpYWxzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IG9ubHlQb3RlbnRpYWwgPSBwYXRoTWFwT3B0aW9uc1swXS5wb3RlbnRpYWxzWzBdO1xuICAgIGxldCByZXBsYWNlbWVudDtcbiAgICBjb25zdCBzdGFySW5kZXggPSBvbmx5UG90ZW50aWFsLmluZGV4T2YoJyonKTtcbiAgICBpZiAoc3RhckluZGV4ID09PSAtMSkge1xuICAgICAgcmVwbGFjZW1lbnQgPSBvbmx5UG90ZW50aWFsO1xuICAgIH0gZWxzZSBpZiAoc3RhckluZGV4ID09PSBvbmx5UG90ZW50aWFsLmxlbmd0aCAtIDEpIHtcbiAgICAgIHJlcGxhY2VtZW50ID0gb25seVBvdGVudGlhbC5zbGljZSgwLCAtMSkgKyBwYXRoTWFwT3B0aW9uc1swXS5wYXJ0aWFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBbcHJlZml4LCBzdWZmaXhdID0gb25seVBvdGVudGlhbC5zcGxpdCgnKicpO1xuICAgICAgcmVwbGFjZW1lbnQgPSBwcmVmaXggKyBwYXRoTWFwT3B0aW9uc1swXS5wYXJ0aWFsICsgc3VmZml4O1xuICAgIH1cblxuICAgIHJlcXVlc3QucmVxdWVzdCA9IHBhdGgucmVzb2x2ZShjb21waWxlck9wdGlvbnMuYmFzZVVybCB8fCAnJywgcmVwbGFjZW1lbnQpO1xuICAgIGNhbGxiYWNrKG51bGwsIHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gVE9ETzogVGhlIGZvbGxvd2luZyBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBwb3RlbnRpYWwgYW5kIHdpbGwgbm90IGJlXG4gIC8vICAgICAgIG5lZWRlZCBvbmNlIHRoaXMgaXMgdHVybmVkIGludG8gYSBmdWxsIHdlYnBhY2sgcmVzb2x2ZXIgcGx1Z2luXG5cbiAgY29uc3QgbW9kdWxlUmVzb2x2ZXIgPSB0cy5yZXNvbHZlTW9kdWxlTmFtZShcbiAgICBvcmlnaW5hbFJlcXVlc3QsXG4gICAgcmVxdWVzdC5jb250ZXh0SW5mby5pc3N1ZXIsXG4gICAgY29tcGlsZXJPcHRpb25zLFxuICAgIGhvc3QsXG4gICAgY2FjaGUsXG4gICk7XG5cbiAgY29uc3QgbW9kdWxlRmlsZVBhdGggPSBtb2R1bGVSZXNvbHZlci5yZXNvbHZlZE1vZHVsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1vZHVsZVJlc29sdmVyLnJlc29sdmVkTW9kdWxlLnJlc29sdmVkRmlsZU5hbWU7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gcmVzdWx0LCBsZXQgd2VicGFjayB0cnkgdG8gcmVzb2x2ZVxuICBpZiAoIW1vZHVsZUZpbGVQYXRoKSB7XG4gICAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBJZiBUeXBlU2NyaXB0IGdpdmVzIHVzIGEgYC5kLnRzYCwgaXQgaXMgcHJvYmFibHkgYSBub2RlIG1vZHVsZVxuICBpZiAobW9kdWxlRmlsZVBhdGguZW5kc1dpdGgoJy5kLnRzJykpIHtcbiAgICAvLyBJZiBpbiBhIHBhY2thZ2UsIGxldCB3ZWJwYWNrIHJlc29sdmUgdGhlIHBhY2thZ2VcbiAgICBjb25zdCBwYWNrYWdlUm9vdFBhdGggPSBwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKG1vZHVsZUZpbGVQYXRoKSwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmICghaG9zdC5maWxlRXhpc3RzKHBhY2thZ2VSb290UGF0aCkpIHtcbiAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBmaWxlIHdpdGggYSAuanMgZXh0ZW5zaW9uIHVzZSB0aGF0XG4gICAgICBjb25zdCBqc0ZpbGVQYXRoID0gbW9kdWxlRmlsZVBhdGguc2xpY2UoMCwgLTUpICsgJy5qcyc7XG4gICAgICBpZiAoaG9zdC5maWxlRXhpc3RzKGpzRmlsZVBhdGgpKSB7XG4gICAgICAgIHJlcXVlc3QucmVxdWVzdCA9IGpzRmlsZVBhdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICByZXF1ZXN0LnJlcXVlc3QgPSBtb2R1bGVGaWxlUGF0aDtcbiAgY2FsbGJhY2sobnVsbCwgcmVxdWVzdCk7XG59XG4iXX0=
|