@igo2/geo 1.14.1 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -5
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +59 -21
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +7 -7
- package/esm2020/lib/import-export/shared/export.service.mjs +3 -3
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +16 -7
- package/esm2020/lib/map/shared/map.utils.mjs +2 -1
- package/esm2020/lib/print/print/print.component.mjs +15 -12
- package/esm2020/lib/print/print-form/print-form.component.mjs +46 -23
- package/esm2020/lib/print/shared/print.service.mjs +96 -23
- package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2020/lib/query/shared/query.service.mjs +142 -28
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +27 -8
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +118 -0
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +207 -29
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +2 -2
- package/esm2020/lib/search/search-results/search-results.component.mjs +1 -1
- package/esm2020/lib/search/search-results/search-results.module.mjs +32 -5
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +33 -9
- package/esm2020/lib/search/shared/search.service.mjs +10 -7
- package/esm2020/lib/search/shared/sources/coordinates.mjs +17 -11
- package/esm2020/lib/search/shared/sources/icherche.mjs +7 -7
- package/esm2020/lib/search/shared/sources/ilayer.mjs +4 -4
- package/esm2020/lib/search/shared/sources/source.mjs +1 -1
- package/fesm2015/igo2-geo.mjs +990 -361
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +966 -360
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +9 -2
- package/lib/import-export/shared/export.service.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +7 -4
- package/lib/map/shared/map.utils.d.ts +1 -0
- package/lib/print/shared/print.service.d.ts +10 -1
- package/lib/query/shared/query.interfaces.d.ts +8 -1
- package/lib/query/shared/query.service.d.ts +5 -3
- package/lib/search/search-bar/search-bar.component.d.ts +12 -2
- package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -0
- package/lib/search/search-results/search-results-add-button.component.d.ts +20 -2
- package/lib/search/search-results/search-results-item.component.d.ts +0 -1
- package/lib/search/search-results/search-results.module.d.ts +17 -10
- package/lib/search/search-settings/search-settings.component.d.ts +7 -1
- package/lib/search/shared/search.service.d.ts +3 -1
- package/lib/search/shared/sources/coordinates.d.ts +1 -1
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/package.json +4 -4
|
@@ -22,14 +22,14 @@ export class ExportService {
|
|
|
22
22
|
const exportOlFeatures = this.generateFeature(olFeatures, format);
|
|
23
23
|
return this.exportAsync(exportOlFeatures, format, title, encoding, projectionIn, projectionOut);
|
|
24
24
|
}
|
|
25
|
-
generateFeature(olFeatures, format) {
|
|
25
|
+
generateFeature(olFeatures, format, excludePrefix = '_') {
|
|
26
26
|
if (format === ExportFormat.GPX && this.aggregateInComment) {
|
|
27
27
|
return this.generateAggregatedFeature(olFeatures);
|
|
28
28
|
}
|
|
29
29
|
return olFeatures.map((olFeature) => {
|
|
30
30
|
const keys = olFeature
|
|
31
31
|
.getKeys()
|
|
32
|
-
.filter((key) => !key.startsWith(
|
|
32
|
+
.filter((key) => !key.startsWith(excludePrefix));
|
|
33
33
|
const properties = keys.reduce((acc, key) => {
|
|
34
34
|
acc[key] = olFeature.get(key);
|
|
35
35
|
return acc;
|
|
@@ -192,4 +192,4 @@ ExportService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ExportServ
|
|
|
192
192
|
providedIn: 'root'
|
|
193
193
|
}]
|
|
194
194
|
}], function () { return [{ type: i1.ConfigService }]; }, null); })();
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFbkMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMzQixNQUFNLGlCQUFpQixDQUFDOzs7QUFLekIsTUFBTSxPQUFPLGFBQWE7SUFleEIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZqQyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFHekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ2pELG9DQUFvQyxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FDSixVQUFtQyxFQUNuQyxNQUFvQixFQUNwQixLQUFhLEVBQ2IsUUFBd0IsRUFDeEIs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SSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBbUMsRUFBRSxNQUFjO1FBQ3pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtZQUNwQixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM5QyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDM0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLEtBQUssU0FBUyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztBQTlPTSx5QkFBVyxHQUFHO0lBQ25CLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsWUFBWSxFQUFFLGNBQWM7Q0FDN0IsQ0FBQztBQUVLLDZCQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDOzBFQVZwQyxhQUFhO21FQUFiLGFBQWEsV0FBYixhQUFhLG1CQUZaLE1BQU07dUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IGRvd25sb2FkQ29udGVudCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHtlbmNvZGV9IGZyb20gJ3dpbmRvd3MtMTI1Mic7XG5cbmltcG9ydCB7IEV4cG9ydEZvcm1hdCwgRW5jb2RpbmdGb3JtYXQgfSBmcm9tICcuL2V4cG9ydC50eXBlJztcblxuaW1wb3J0IHtcbiAgRXhwb3J0SW52YWxpZEZpbGVFcnJvcixcbiAgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3Jcbn0gZnJvbSAnLi9leHBvcnQuZXJyb3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0U2VydmljZSB7XG4gIHN0YXRpYyBvZ3JlRm9ybWF0cyA9IHtcbiAgICBHTUw6ICdnbWwnLFxuICAgIEdQWDogJ2dweCcsXG4gICAgS01MOiAna21sJyxcbiAgICBTaGFwZWZpbGU6ICdFU1JJIFNoYXBlZmlsZScsXG4gICAgQ1NWY29tbWE6ICdDU1Zjb21tYScsXG4gICAgQ1NWc2VtaWNvbG9uOiAnQ1NWc2VtaWNvbG9uJ1xuICB9O1xuXG4gIHN0YXRpYyBub09ncmVGYWxsYmFja3MgPSBbJ0dNTCcsICdHUFgnLCAnS01MJ107XG5cbiAgcHJpdmF0ZSBvZ3JlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgYWdncmVnYXRlSW5Db21tZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMub2dyZVVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnaW1wb3J0RXhwb3J0LnVybCcpO1xuICAgIGNvbnN0IGdweEFnZ3JlZ2F0ZUluQ29tbWVudCA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQuZ3B4QWdncmVnYXRlSW5Db21tZW50J1xuICAgICk7XG4gICAgaWYgKGdweEFnZ3JlZ2F0ZUluQ29tbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFnZ3JlZ2F0ZUluQ29tbWVudCA9IGdweEFnZ3JlZ2F0ZUluQ29tbWVudDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBFeHBvcnRGb3JtYXQsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluID0gJ0VQU0c6NDMyNicsXG4gICAgcHJvamVjdGlvbk91dCA9ICdFUFNHOjQzMjYnXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGV4cG9ydE9sRmVhdHVyZXMgPSB0aGlzLmdlbmVyYXRlRmVhdHVyZShvbEZlYXR1cmVzLCBmb3JtYXQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0QXN5bmMoZXhwb3J0T2xGZWF0dXJlcywgZm9ybWF0LCB0aXRsZSwgZW5jb2RpbmcsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRmVhdHVyZShcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdFxuICApOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gRXhwb3J0Rm9ybWF0LkdQWCAmJiB0aGlzLmFnZ3JlZ2F0ZUluQ29tbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVBZ2dyZWdhdGVkRmVhdHVyZShvbEZlYXR1cmVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gb2xGZWF0dXJlXG4gICAgICAgIC5nZXRLZXlzKClcbiAgICAgICAgLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+ICFrZXkuc3RhcnRzV2l0aCgnXycpKTtcbiAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBrZXlzLnJlZHVjZShcbiAgICAgICAgKGFjYzogb2JqZWN0LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gb2xGZWF0dXJlLmdldChrZXkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHsgZ2VvbWV0cnk6IG9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV3IE9sRmVhdHVyZShwcm9wZXJ0aWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVBZ2dyZWdhdGVkRmVhdHVyZShvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSk6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gb2xGZWF0dXJlLmdldEtleXMoKS5maWx0ZXIoKGtleTogc3RyaW5nKSA9PiAha2V5LnN0YXJ0c1dpdGgoJ18nKSk7XG4gICAgICBsZXQgY29tbWVudDogc3RyaW5nID0gJyc7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0ga2V5cy5yZWR1Y2UoKGFjYzogb2JqZWN0LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoa2V5ICYmIGtleSAhPT0gJ2dlb21ldHJ5Jykge1xuICAgICAgICAgIGtleSA9PT0gJ2lkJyAmJiBvbEZlYXR1cmUuZ2V0KCdkcmF3JykgPyBjb21tZW50ICs9IGtleSArICc6JyArIG9sRmVhdHVyZS5nZXQoJ2RyYXcnKSArICcgICBcXHJcXG4nXG4gICAgICAgICAgOiBjb21tZW50ICs9IGtleSArICc6JyArIG9sRmVhdHVyZS5nZXQoa2V5KSArICcgICBcXHJcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGFjY1trZXldID0gb2xGZWF0dXJlLmdldChrZXkpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZ2VvbWV0cnk6IG9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IG5ld0ZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHByb3BlcnRpZXMpO1xuICAgICAgbmV3RmVhdHVyZS5zZXQoJ25hbWUnLCBvbEZlYXR1cmUuZ2V0SWQoKSk7XG4gICAgICBuZXdGZWF0dXJlLnNldCgnY210JywgY29tbWVudCk7XG5cbiAgICAgIHJldHVybiBuZXdGZWF0dXJlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBleHBvcnRBc3luYyhcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVuY29kaW5nOiBFbmNvZGluZ0Zvcm1hdCxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZG9FeHBvcnQgPSAob2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+KSA9PiB7XG4gICAgICBjb25zdCBub3RoaW5nVG9FeHBvcnQgPSB0aGlzLm5vdGhpbmdUb0V4cG9ydChvbEZlYXR1cmVzLCBmb3JtYXQpO1xuICAgICAgaWYgKG5vdGhpbmdUb0V4cG9ydCkge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3IoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2dyZUZvcm1hdHMgPSBPYmplY3Qua2V5cyhFeHBvcnRTZXJ2aWNlLm9ncmVGb3JtYXRzKTtcbiAgICAgIGlmIChvZ3JlRm9ybWF0cy5pbmRleE9mKGZvcm1hdCkgPj0gMCkge1xuICAgICAgICBpZiAoIXRoaXMub2dyZVVybCkge1xuICAgICAgICAgIGlmIChFeHBvcnRTZXJ2aWNlLm5vT2dyZUZhbGxiYWNrcy5pbmRleE9mKGZvcm1hdCkgPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5leHBvcnRUb0ZpbGUob2xGZWF0dXJlcywgb2JzZXJ2ZXIsIGZvcm1hdCwgdGl0bGUsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBFeHBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHBvcnRXaXRoT2dyZShvbEZlYXR1cmVzLCBvYnNlcnZlciwgZm9ybWF0LCB0aXRsZSwgZW5jb2RpbmcsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmV4cG9ydFRvRmlsZShvbEZlYXR1cmVzLCBvYnNlcnZlciwgZm9ybWF0LCB0aXRsZSwgcHJvamVjdGlvbkluLCBwcm9qZWN0aW9uT3V0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGRvRXhwb3J0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBleHBvcnRUb0ZpbGUoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+LFxuICAgIGZvcm1hdDogRXhwb3J0Rm9ybWF0LFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IG9sRm9ybWF0ID0gbmV3IG9sZm9ybWF0W2Zvcm1hdF0oKTtcbiAgICBjb25zdCBmZWF0dXJlc1RleHQgPSBvbEZvcm1hdC53cml0ZUZlYXR1cmVzKG9sRmVhdHVyZXMsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uT3V0LFxuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb25JbixcbiAgICAgIGZlYXR1cmVUeXBlOiAnZmVhdHVyZScsXG4gICAgICBmZWF0dXJlTlM6ICdodHRwOi8vZXhhbXBsZS5jb20vZmVhdHVyZSdcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7dGl0bGV9LiR7Zm9ybWF0LnRvTG93ZXJDYXNlKCl9YDtcblxuICAgIGRvd25sb2FkQ29udGVudChmZWF0dXJlc1RleHQsICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnLCBmaWxlTmFtZSk7XG4gICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwb3J0V2l0aE9ncmUoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+LFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZW5jb2RpbmdUeXBlOiBFbmNvZGluZ0Zvcm1hdCxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IGZlYXR1cmVzVGV4dDogc3RyaW5nID0gbmV3IG9sZm9ybWF0Lkdlb0pTT04oKS53cml0ZUZlYXR1cmVzKFxuICAgICAgb2xGZWF0dXJlcyxcbiAgICAgIHtcbiAgICAgICAgZGF0YVByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW5cbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5vZ3JlVXJsfS9jb252ZXJ0SnNvbmA7XG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcbiAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgnbWV0aG9kJywgJ3Bvc3QnKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuICAgIGZvcm0uc2V0QXR0cmlidXRlKCdhY3Rpb24nLCB1cmwpO1xuXG4gICAgaWYgKGVuY29kaW5nVHlwZSA9PT0gRW5jb2RpbmdGb3JtYXQuVVRGOCkge1xuICAgICAgZm9ybS5hY2NlcHRDaGFyc2V0ID0gJ1VURi04JztcbiAgICAgIGZvcm0uZW5jdHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTg7JztcbiAgICB9IGVsc2UgaWYgKGVuY29kaW5nVHlwZSA9PT0gRW5jb2RpbmdGb3JtYXQuTEFUSU4xKSB7XG4gICAgICBjb25zdCBlbmN0eXBlID0gJ0lTTy04ODU5LTEnO1xuICAgICAgY29uc3QgZmVhdHVyZXNKc29uID0gSlNPTi5wYXJzZShmZWF0dXJlc1RleHQpO1xuICAgICAgZmVhdHVyZXNKc29uLmZlYXR1cmVzLm1hcChmID0+IHtcbiAgICAgICAgY29uc3QgZW5jb2RlZFByb3BlcnRpZXMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlXG4gICAgICAgICAgLmFwcGx5KG51bGwsIGVuY29kZShKU09OLnN0cmluZ2lmeShmLnByb3BlcnRpZXMpLCB7IG1vZGU6ICdyZXBsYWNlbWVudCcgfSkpO1xuICAgICAgICBmLnByb3BlcnRpZXMgPSBKU09OLnBhcnNlKGVuY29kZWRQcm9wZXJ0aWVzKTtcbiAgICAgIH0pO1xuICAgICAgZmVhdHVyZXNUZXh0ID0gSlNPTi5zdHJpbmdpZnkoZmVhdHVyZXNKc29uKTtcbiAgICAgIGNvbnN0IGVuY29kaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgIGVuY29kaW5nLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgIGVuY29kaW5nLnNldEF0dHJpYnV0ZSgnbmFtZScsICdlbmNvZGluZycpO1xuICAgICAgZW5jb2Rpbmcuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGVuY3R5cGUpO1xuICAgICAgZm9ybS5hcHBlbmRDaGlsZChlbmNvZGluZyk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ0NTVnNlbWljb2xvbicpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgb3B0aW9ucy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICBvcHRpb25zLnNldEF0dHJpYnV0ZSgnbmFtZScsICdsY28nKTtcbiAgICAgIG9wdGlvbnMuc2V0QXR0cmlidXRlKCd2YWx1ZScsICdTRVBBUkFUT1I9U0VNSUNPTE9OJyk7XG4gICAgICBmb3JtLmFwcGVuZENoaWxkKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvbnN0IGdlb2pzb25GaWVsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgZ2VvanNvbkZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBnZW9qc29uRmllbGQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2pzb24nKTtcbiAgICBnZW9qc29uRmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGZlYXR1cmVzVGV4dCk7XG4gICAgZm9ybS5hcHBlbmRDaGlsZChnZW9qc29uRmllbGQpO1xuXG4gICAgY29uc3Qgb3V0cHV0TmFtZUZpZWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBsZXQgb3V0cHV0TmFtZSA9IGZvcm1hdCA9PT0gJ1NoYXBlZmlsZScgPyBgJHt0aXRsZX0uemlwYCA6IGAke3RpdGxlfS4ke2Zvcm1hdC50b0xvd2VyQ2FzZSgpfWA7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ0NTVmNvbW1hJyB8fCBmb3JtYXQgPT09ICdDU1ZzZW1pY29sb24nKSB7XG4gICAgICBvdXRwdXROYW1lID0gYCR7dGl0bGV9LmNzdmA7XG4gICAgfVxuICAgIG91dHB1dE5hbWUgPSBvdXRwdXROYW1lLnJlcGxhY2UoJyAnLCAnXycpO1xuICAgIG91dHB1dE5hbWUgPSBvdXRwdXROYW1lLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLnJlcGxhY2UoL+KAmS9nLCBcIidcIik7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBvdXRwdXROYW1lRmllbGQuc2V0QXR0cmlidXRlKCduYW1lJywgJ291dHB1dE5hbWUnKTtcbiAgICBvdXRwdXROYW1lRmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIG91dHB1dE5hbWUpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQob3V0cHV0TmFtZUZpZWxkKTtcblxuICAgIGxldCBvZ3JlRm9ybWF0ID0gRXhwb3J0U2VydmljZS5vZ3JlRm9ybWF0c1tmb3JtYXRdO1xuICAgIGlmIChmb3JtYXQgPT09ICdDU1Zjb21tYScgfHwgZm9ybWF0ID09PSAnQ1NWc2VtaWNvbG9uJykge1xuICAgICAgb2dyZUZvcm1hdCA9ICdDU1YnO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXRGb3JtYXRGaWVsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgb3V0cHV0Rm9ybWF0RmllbGQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgIG91dHB1dEZvcm1hdEZpZWxkLnNldEF0dHJpYnV0ZSgnbmFtZScsICdmb3JtYXQnKTtcbiAgICBvdXRwdXRGb3JtYXRGaWVsZC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgb2dyZUZvcm1hdCk7XG4gICAgZm9ybS5hcHBlbmRDaGlsZChvdXRwdXRGb3JtYXRGaWVsZCk7XG5cbiAgICBmb3JtLnN1Ym1pdCgpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9ybSk7XG5cbiAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RoaW5nVG9FeHBvcnQob2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sIGZvcm1hdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKG9sRmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGZvcm1hdCA9PT0gJ0dQWCcpIHtcbiAgICAgIGNvbnN0IHBvaW50T3JMaW5lID0gb2xGZWF0dXJlcy5maW5kKG9sRmVhdHVyZSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgWydQb2ludCcsICdMaW5lU3RyaW5nJywgJ011bHRpTGluZVN0cmluZyddLmluZGV4T2Yob2xGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpKSA+PSAwXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwb2ludE9yTGluZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFbkMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMzQixNQUFNLGlCQUFpQixDQUFDOzs7QUFLekIsTUFBTSxPQUFPLGFBQWE7SUFleEIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZqQyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFHekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ2pELG9DQUFvQyxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FDSixVQUFtQyxFQUNuQyxNQUFvQixFQUNwQixLQUFhLEVBQ2IsUUFBd0IsRUFDeEIsWUFBWSxHQUFHLFdBQVcsRUFDMUIsYUFBYSxHQUFHLFdBQVc7UUFFM0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTSxlQUFlLENBQ3BCLFVBQW1DLEVBQ25DLE1BQW9CLEVBQ3BCLGdCQUF3QixHQUFHO1FBRTNCLElBQUksTUFBTSxLQUFLLFlBQVksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBZ0MsRUFBRSxFQUFFO1lBQ3pELE1BQU0sSUFBSSxHQUFHLFNBQVM7aUJBQ25CLE9BQU8sRUFBRTtpQkFDVCxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQzVCLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO2dCQUMzQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3RDLENBQUM7WUFDRixPQUFPLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFVBQW1DO1FBQ25FLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWdDLEVBQUUsRUFBRTtZQUN6RCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLE9BQU8sR0FBVyxFQUFFLENBQUM7WUFDekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtvQkFDN0IsR0FBRyxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVM7d0JBQ2hHLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztpQkFDekQ7Z0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUNEO2dCQUNFLFFBQVEsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFO2FBQ2xDLENBQUMsQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRS9CLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FDakIsVUFBbUMsRUFDbkMsTUFBb0IsRUFDcEIsS0FBYSxFQUNiLFFBQXdCLEVBQ3hCLFlBQW9CLEVBQ3BCLGFBQXFCO1FBRXJCLE1BQU0sUUFBUSxHQUFHLENBQUMsUUFBd0IsRUFBRSxFQUFFO1lBQzVDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLElBQUksZUFBZSxFQUFFO2dCQUNuQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRCxPQUFPO2FBQ1I7WUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDakIsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztxQkFDckY7eUJBQU07d0JBQ0wsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUMsQ0FBQztxQkFDOUM7b0JBQ0QsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ2pHO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNyRjtRQUNILENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVTLFlBQVksQ0FDcEIsVUFBbUMsRUFDbkMsUUFBd0IsRUFDeEIsTUFBb0IsRUFDcEIsS0FBYSxFQUNiLFlBQW9CLEVBQ3BCLGFBQXFCO1FBRXJCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUU7WUFDdEQsY0FBYyxFQUFFLGFBQWE7WUFDN0IsaUJBQWlCLEVBQUUsWUFBWTtZQUMvQixXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUUsNEJBQTRCO1NBQ3hDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBRXBELGVBQWUsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxjQUFjLENBQ3BCLFVBQW1DLEVBQ25DLFFBQXdCLEVBQ3hCLE1BQWMsRUFDZCxLQUFhLEVBQ2IsWUFBNEIsRUFDNUIsWUFBb0IsRUFDcEIsYUFBcUI7UUFFckIsSUFBSSxZQUFZLEdBQVcsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUM3RCxVQUFVLEVBQ1Y7WUFDRSxjQUFjLEVBQUUsYUFBYTtZQUM3QixpQkFBaUIsRUFBRSxZQUFZO1NBQ2hDLENBQ0YsQ0FBQztRQUVGLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sY0FBYyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksWUFBWSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxtREFBbUQsQ0FBQztTQUNwRTthQUFNLElBQUksWUFBWSxLQUFLLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDakQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO1lBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLFlBQVk7cUJBQzFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLE1BQU0sS0FBSyxjQUFjLEVBQUU7WUFDN0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7UUFFRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0IsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLFVBQVUsR0FBRyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUM5RixJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksTUFBTSxLQUFLLGNBQWMsRUFBRTtZQUN0RCxVQUFVLEdBQUcsR0FBRyxLQUFLLE1BQU0sQ0FBQztTQUM3QjtRQUNELFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1RixlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuRCxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWxDLElBQUksVUFBVSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sS0FBSyxjQUFjLEVBQUU7WUFDdEQsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUNwQjtRQUNELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakQsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBbUMsRUFBRSxNQUFjO1FBQ3pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtZQUNwQixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM5QyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDM0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLEtBQUssU0FBUyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztBQS9PTSx5QkFBVyxHQUFHO0lBQ25CLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsWUFBWSxFQUFFLGNBQWM7Q0FDN0IsQ0FBQztBQUVLLDZCQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDOzBFQVZwQyxhQUFhO21FQUFiLGFBQWEsV0FBYixhQUFhLG1CQUZaLE1BQU07dUZBRVAsYUFBYTtjQUh6QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IGRvd25sb2FkQ29udGVudCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHtlbmNvZGV9IGZyb20gJ3dpbmRvd3MtMTI1Mic7XG5cbmltcG9ydCB7IEV4cG9ydEZvcm1hdCwgRW5jb2RpbmdGb3JtYXQgfSBmcm9tICcuL2V4cG9ydC50eXBlJztcblxuaW1wb3J0IHtcbiAgRXhwb3J0SW52YWxpZEZpbGVFcnJvcixcbiAgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3Jcbn0gZnJvbSAnLi9leHBvcnQuZXJyb3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0U2VydmljZSB7XG4gIHN0YXRpYyBvZ3JlRm9ybWF0cyA9IHtcbiAgICBHTUw6ICdnbWwnLFxuICAgIEdQWDogJ2dweCcsXG4gICAgS01MOiAna21sJyxcbiAgICBTaGFwZWZpbGU6ICdFU1JJIFNoYXBlZmlsZScsXG4gICAgQ1NWY29tbWE6ICdDU1Zjb21tYScsXG4gICAgQ1NWc2VtaWNvbG9uOiAnQ1NWc2VtaWNvbG9uJ1xuICB9O1xuXG4gIHN0YXRpYyBub09ncmVGYWxsYmFja3MgPSBbJ0dNTCcsICdHUFgnLCAnS01MJ107XG5cbiAgcHJpdmF0ZSBvZ3JlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgYWdncmVnYXRlSW5Db21tZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMub2dyZVVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnaW1wb3J0RXhwb3J0LnVybCcpO1xuICAgIGNvbnN0IGdweEFnZ3JlZ2F0ZUluQ29tbWVudCA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQuZ3B4QWdncmVnYXRlSW5Db21tZW50J1xuICAgICk7XG4gICAgaWYgKGdweEFnZ3JlZ2F0ZUluQ29tbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFnZ3JlZ2F0ZUluQ29tbWVudCA9IGdweEFnZ3JlZ2F0ZUluQ29tbWVudDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBFeHBvcnRGb3JtYXQsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluID0gJ0VQU0c6NDMyNicsXG4gICAgcHJvamVjdGlvbk91dCA9ICdFUFNHOjQzMjYnXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGV4cG9ydE9sRmVhdHVyZXMgPSB0aGlzLmdlbmVyYXRlRmVhdHVyZShvbEZlYXR1cmVzLCBmb3JtYXQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0QXN5bmMoZXhwb3J0T2xGZWF0dXJlcywgZm9ybWF0LCB0aXRsZSwgZW5jb2RpbmcsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVGZWF0dXJlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIGZvcm1hdDogRXhwb3J0Rm9ybWF0LFxuICAgIGV4Y2x1ZGVQcmVmaXg6IHN0cmluZyA9ICdfJ1xuICApOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gRXhwb3J0Rm9ybWF0LkdQWCAmJiB0aGlzLmFnZ3JlZ2F0ZUluQ29tbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVBZ2dyZWdhdGVkRmVhdHVyZShvbEZlYXR1cmVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gb2xGZWF0dXJlXG4gICAgICAgIC5nZXRLZXlzKClcbiAgICAgICAgLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+ICFrZXkuc3RhcnRzV2l0aChleGNsdWRlUHJlZml4KSk7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0ga2V5cy5yZWR1Y2UoXG4gICAgICAgIChhY2M6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBhY2Nba2V5XSA9IG9sRmVhdHVyZS5nZXQoa2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7IGdlb21ldHJ5OiBvbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKSB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIG5ldyBPbEZlYXR1cmUocHJvcGVydGllcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQWdncmVnYXRlZEZlYXR1cmUob2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSB7XG4gICAgcmV0dXJuIG9sRmVhdHVyZXMubWFwKChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4ge1xuICAgICAgY29uc3Qga2V5cyA9IG9sRmVhdHVyZS5nZXRLZXlzKCkuZmlsdGVyKChrZXk6IHN0cmluZykgPT4gIWtleS5zdGFydHNXaXRoKCdfJykpO1xuICAgICAgbGV0IGNvbW1lbnQ6IHN0cmluZyA9ICcnO1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGtleXMucmVkdWNlKChhY2M6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGtleSAmJiBrZXkgIT09ICdnZW9tZXRyeScpIHtcbiAgICAgICAgICBrZXkgPT09ICdpZCcgJiYgb2xGZWF0dXJlLmdldCgnZHJhdycpID8gY29tbWVudCArPSBrZXkgKyAnOicgKyBvbEZlYXR1cmUuZ2V0KCdkcmF3JykgKyAnICAgXFxyXFxuJ1xuICAgICAgICAgIDogY29tbWVudCArPSBrZXkgKyAnOicgKyBvbEZlYXR1cmUuZ2V0KGtleSkgKyAnICAgXFxyXFxuJztcbiAgICAgICAgfVxuICAgICAgICBhY2Nba2V5XSA9IG9sRmVhdHVyZS5nZXQoa2V5KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGdlb21ldHJ5OiBvbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKVxuICAgICAgfSk7XG4gICAgICBjb25zdCBuZXdGZWF0dXJlID0gbmV3IE9sRmVhdHVyZShwcm9wZXJ0aWVzKTtcbiAgICAgIG5ld0ZlYXR1cmUuc2V0KCduYW1lJywgb2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgbmV3RmVhdHVyZS5zZXQoJ2NtdCcsIGNvbW1lbnQpO1xuXG4gICAgICByZXR1cm4gbmV3RmVhdHVyZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwb3J0QXN5bmMoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBFeHBvcnRGb3JtYXQsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGRvRXhwb3J0ID0gKG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPikgPT4ge1xuICAgICAgY29uc3Qgbm90aGluZ1RvRXhwb3J0ID0gdGhpcy5ub3RoaW5nVG9FeHBvcnQob2xGZWF0dXJlcywgZm9ybWF0KTtcbiAgICAgIGlmIChub3RoaW5nVG9FeHBvcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEV4cG9ydE5vdGhpbmdUb0V4cG9ydEVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9ncmVGb3JtYXRzID0gT2JqZWN0LmtleXMoRXhwb3J0U2VydmljZS5vZ3JlRm9ybWF0cyk7XG4gICAgICBpZiAob2dyZUZvcm1hdHMuaW5kZXhPZihmb3JtYXQpID49IDApIHtcbiAgICAgICAgaWYgKCF0aGlzLm9ncmVVcmwpIHtcbiAgICAgICAgICBpZiAoRXhwb3J0U2VydmljZS5ub09ncmVGYWxsYmFja3MuaW5kZXhPZihmb3JtYXQpID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0VG9GaWxlKG9sRmVhdHVyZXMsIG9ic2VydmVyLCBmb3JtYXQsIHRpdGxlLCBwcm9qZWN0aW9uSW4sIHByb2plY3Rpb25PdXQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXhwb3J0SW52YWxpZEZpbGVFcnJvcigpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhwb3J0V2l0aE9ncmUob2xGZWF0dXJlcywgb2JzZXJ2ZXIsIGZvcm1hdCwgdGl0bGUsIGVuY29kaW5nLCBwcm9qZWN0aW9uSW4sIHByb2plY3Rpb25PdXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5leHBvcnRUb0ZpbGUob2xGZWF0dXJlcywgb2JzZXJ2ZXIsIGZvcm1hdCwgdGl0bGUsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkb0V4cG9ydCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwb3J0VG9GaWxlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPixcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHByb2plY3Rpb25Jbjogc3RyaW5nLFxuICAgIHByb2plY3Rpb25PdXQ6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBvbEZvcm1hdCA9IG5ldyBvbGZvcm1hdFtmb3JtYXRdKCk7XG4gICAgY29uc3QgZmVhdHVyZXNUZXh0ID0gb2xGb3JtYXQud3JpdGVGZWF0dXJlcyhvbEZlYXR1cmVzLCB7XG4gICAgICBkYXRhUHJvamVjdGlvbjogcHJvamVjdGlvbk91dCxcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW4sXG4gICAgICBmZWF0dXJlVHlwZTogJ2ZlYXR1cmUnLFxuICAgICAgZmVhdHVyZU5TOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZlYXR1cmUnXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke3RpdGxlfS4ke2Zvcm1hdC50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICBkb3dubG9hZENvbnRlbnQoZmVhdHVyZXNUZXh0LCAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JywgZmlsZU5hbWUpO1xuICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGV4cG9ydFdpdGhPZ3JlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPixcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVuY29kaW5nVHlwZTogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICkge1xuICAgIGxldCBmZWF0dXJlc1RleHQ6IHN0cmluZyA9IG5ldyBvbGZvcm1hdC5HZW9KU09OKCkud3JpdGVGZWF0dXJlcyhcbiAgICAgIG9sRmVhdHVyZXMsXG4gICAgICB7XG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uT3V0LFxuICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbkluXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMub2dyZVVybH0vY29udmVydEpzb25gO1xuICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7XG4gICAgZm9ybS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ21ldGhvZCcsICdwb3N0Jyk7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJywgdXJsKTtcblxuICAgIGlmIChlbmNvZGluZ1R5cGUgPT09IEVuY29kaW5nRm9ybWF0LlVURjgpIHtcbiAgICAgIGZvcm0uYWNjZXB0Q2hhcnNldCA9ICdVVEYtOCc7XG4gICAgICBmb3JtLmVuY3R5cGUgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PXV0Zi04Oyc7XG4gICAgfSBlbHNlIGlmIChlbmNvZGluZ1R5cGUgPT09IEVuY29kaW5nRm9ybWF0LkxBVElOMSkge1xuICAgICAgY29uc3QgZW5jdHlwZSA9ICdJU08tODg1OS0xJztcbiAgICAgIGNvbnN0IGZlYXR1cmVzSnNvbiA9IEpTT04ucGFyc2UoZmVhdHVyZXNUZXh0KTtcbiAgICAgIGZlYXR1cmVzSnNvbi5mZWF0dXJlcy5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IGVuY29kZWRQcm9wZXJ0aWVzID0gU3RyaW5nLmZyb21DaGFyQ29kZVxuICAgICAgICAgIC5hcHBseShudWxsLCBlbmNvZGUoSlNPTi5zdHJpbmdpZnkoZi5wcm9wZXJ0aWVzKSwgeyBtb2RlOiAncmVwbGFjZW1lbnQnIH0pKTtcbiAgICAgICAgZi5wcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShlbmNvZGVkUHJvcGVydGllcyk7XG4gICAgICB9KTtcbiAgICAgIGZlYXR1cmVzVGV4dCA9IEpTT04uc3RyaW5naWZ5KGZlYXR1cmVzSnNvbik7XG4gICAgICBjb25zdCBlbmNvZGluZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICBlbmNvZGluZy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICBlbmNvZGluZy5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZW5jb2RpbmcnKTtcbiAgICAgIGVuY29kaW5nLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBlbmN0eXBlKTtcbiAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoZW5jb2RpbmcpO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09ICdDU1ZzZW1pY29sb24nKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgIG9wdGlvbnMuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgICAgb3B0aW9ucy5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnbGNvJyk7XG4gICAgICBvcHRpb25zLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnU0VQQVJBVE9SPVNFTUlDT0xPTicpO1xuICAgICAgZm9ybS5hcHBlbmRDaGlsZChvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZW9qc29uRmllbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGdlb2pzb25GaWVsZC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgZ2VvanNvbkZpZWxkLnNldEF0dHJpYnV0ZSgnbmFtZScsICdqc29uJyk7XG4gICAgZ2VvanNvbkZpZWxkLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBmZWF0dXJlc1RleHQpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQoZ2VvanNvbkZpZWxkKTtcblxuICAgIGNvbnN0IG91dHB1dE5hbWVGaWVsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgbGV0IG91dHB1dE5hbWUgPSBmb3JtYXQgPT09ICdTaGFwZWZpbGUnID8gYCR7dGl0bGV9LnppcGAgOiBgJHt0aXRsZX0uJHtmb3JtYXQudG9Mb3dlckNhc2UoKX1gO1xuICAgIGlmIChmb3JtYXQgPT09ICdDU1Zjb21tYScgfHwgZm9ybWF0ID09PSAnQ1NWc2VtaWNvbG9uJykge1xuICAgICAgb3V0cHV0TmFtZSA9IGAke3RpdGxlfS5jc3ZgO1xuICAgIH1cbiAgICBvdXRwdXROYW1lID0gb3V0cHV0TmFtZS5yZXBsYWNlKCcgJywgJ18nKTtcbiAgICBvdXRwdXROYW1lID0gb3V0cHV0TmFtZS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKS5yZXBsYWNlKC/igJkvZywgXCInXCIpO1xuICAgIG91dHB1dE5hbWVGaWVsZC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgnbmFtZScsICdvdXRwdXROYW1lJyk7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBvdXRwdXROYW1lKTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKG91dHB1dE5hbWVGaWVsZCk7XG5cbiAgICBsZXQgb2dyZUZvcm1hdCA9IEV4cG9ydFNlcnZpY2Uub2dyZUZvcm1hdHNbZm9ybWF0XTtcbiAgICBpZiAoZm9ybWF0ID09PSAnQ1NWY29tbWEnIHx8IGZvcm1hdCA9PT0gJ0NTVnNlbWljb2xvbicpIHtcbiAgICAgIG9ncmVGb3JtYXQgPSAnQ1NWJztcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0Rm9ybWF0RmllbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIG91dHB1dEZvcm1hdEZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBvdXRwdXRGb3JtYXRGaWVsZC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZm9ybWF0Jyk7XG4gICAgb3V0cHV0Rm9ybWF0RmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIG9ncmVGb3JtYXQpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQob3V0cHV0Rm9ybWF0RmllbGQpO1xuXG4gICAgZm9ybS5zdWJtaXQoKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZvcm0pO1xuXG4gICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aGluZ1RvRXhwb3J0KG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLCBmb3JtYXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChvbEZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChmb3JtYXQgPT09ICdHUFgnKSB7XG4gICAgICBjb25zdCBwb2ludE9yTGluZSA9IG9sRmVhdHVyZXMuZmluZChvbEZlYXR1cmUgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIFsnUG9pbnQnLCAnTGluZVN0cmluZycsICdNdWx0aUxpbmVTdHJpbmcnXS5pbmRleE9mKG9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkgPj0gMFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcG9pbnRPckxpbmUgPT09IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -26,14 +26,23 @@ function MiniBaseMapComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
26
26
|
i0.ɵɵproperty("ngIf", ctx_r0.title);
|
|
27
27
|
} }
|
|
28
28
|
export class MiniBaseMapComponent {
|
|
29
|
-
constructor(layerService, appRef) {
|
|
29
|
+
constructor(layerService, appRef, cdRef) {
|
|
30
30
|
this.layerService = layerService;
|
|
31
31
|
this.appRef = appRef;
|
|
32
|
+
this.cdRef = cdRef;
|
|
32
33
|
this.basemap = new IgoMap({
|
|
33
34
|
controls: {},
|
|
34
35
|
interactions: false
|
|
35
36
|
});
|
|
36
37
|
}
|
|
38
|
+
get display() {
|
|
39
|
+
return this._display;
|
|
40
|
+
}
|
|
41
|
+
set display(value) {
|
|
42
|
+
this._display = value;
|
|
43
|
+
this.cdRef.detectChanges();
|
|
44
|
+
this.basemap.ol.getView().changed();
|
|
45
|
+
}
|
|
37
46
|
get baseLayer() {
|
|
38
47
|
return this._baseLayer;
|
|
39
48
|
}
|
|
@@ -107,8 +116,8 @@ export class MiniBaseMapComponent {
|
|
|
107
116
|
}
|
|
108
117
|
}
|
|
109
118
|
}
|
|
110
|
-
MiniBaseMapComponent.ɵfac = function MiniBaseMapComponent_Factory(t) { return new (t || MiniBaseMapComponent)(i0.ɵɵdirectiveInject(i1.LayerService), i0.ɵɵdirectiveInject(i0.ApplicationRef)); };
|
|
111
|
-
MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBaseMapComponent, selectors: [["igo-mini-basemap"]], inputs: { map: "map", disabled: "disabled",
|
|
119
|
+
MiniBaseMapComponent.ɵfac = function MiniBaseMapComponent_Factory(t) { return new (t || MiniBaseMapComponent)(i0.ɵɵdirectiveInject(i1.LayerService), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
120
|
+
MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBaseMapComponent, selectors: [["igo-mini-basemap"]], inputs: { map: "map", disabled: "disabled", title: "title", display: "display", baseLayer: "baseLayer" }, decls: 2, vars: 1, consts: [[1, "igo-mini-basemap-container"], [3, "click", 4, "ngIf"], [3, "click"], [3, "map"], ["class", "igo-mini-basemap-title", 4, "ngIf"], [1, "igo-mini-basemap-title"]], template: function MiniBaseMapComponent_Template(rf, ctx) { if (rf & 1) {
|
|
112
121
|
i0.ɵɵelementStart(0, "div", 0);
|
|
113
122
|
i0.ɵɵtemplate(1, MiniBaseMapComponent_div_1_Template, 3, 2, "div", 1);
|
|
114
123
|
i0.ɵɵelementEnd();
|
|
@@ -119,15 +128,15 @@ MiniBaseMapComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MiniBa
|
|
|
119
128
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MiniBaseMapComponent, [{
|
|
120
129
|
type: Component,
|
|
121
130
|
args: [{ selector: 'igo-mini-basemap', template: "<div class=\"igo-mini-basemap-container\">\n\n <div *ngIf=\"display\" (click)=\"changeBaseLayer(baseLayer)\">\n <igo-map-browser [map]=\"basemap\"></igo-map-browser>\n <div *ngIf='title' class='igo-mini-basemap-title'> {{title}} </div>\n </div>\n\n</div>\n", styles: [".igo-mini-basemap-container{width:80px;height:80px;background-color:#ffffff03;border:2px solid white;box-shadow:0 1px 4px #0000004d;cursor:pointer;margin-top:5px}.igo-mini-basemap-container:hover .igo-mini-basemap-title{color:#000;text-shadow:0 0 5px white}.igo-mini-basemap-container>div{width:100%;height:100%}.igo-mini-basemap-title{position:relative;top:-76px;height:76px;width:76px;text-align:center;vertical-align:bottom;color:#fff;text-shadow:0 0 5px black;white-space:normal;display:flex;align-items:flex-end;justify-content:center}\n"] }]
|
|
122
|
-
}], function () { return [{ type: i1.LayerService }, { type: i0.ApplicationRef }]; }, { map: [{
|
|
131
|
+
}], function () { return [{ type: i1.LayerService }, { type: i0.ApplicationRef }, { type: i0.ChangeDetectorRef }]; }, { map: [{
|
|
123
132
|
type: Input
|
|
124
133
|
}], disabled: [{
|
|
125
134
|
type: Input
|
|
126
|
-
}], display: [{
|
|
127
|
-
type: Input
|
|
128
135
|
}], title: [{
|
|
129
136
|
type: Input
|
|
137
|
+
}], display: [{
|
|
138
|
+
type: Input
|
|
130
139
|
}], baseLayer: [{
|
|
131
140
|
type: Input
|
|
132
141
|
}] }); })();
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1iYXNlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL21pbmktYmFzZW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9taW5pLWJhc2VtYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztJQ04vQiw4QkFBa0Q7SUFBQyxZQUFVO0lBQUEsaUJBQU07OztJQUFoQixlQUFVO0lBQVYsNkNBQVU7Ozs7SUFGL0QsOEJBQTBEO0lBQXJDLDhKQUFTLGVBQUEsd0NBQTBCLENBQUEsSUFBQztJQUN2RCxxQ0FBbUQ7SUFDbkQsMkVBQW1FO0lBQ3JFLGlCQUFNOzs7SUFGYSxlQUFlO0lBQWYsb0NBQWU7SUFDMUIsZUFBVztJQUFYLG1DQUFXOztBRGdCckIsTUFBTSxPQUFPLG9CQUFvQjtJQXNCL0IsWUFDVSxZQUEwQixFQUMxQixNQUFzQjtRQUR0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVB6QixZQUFPLEdBQUcsSUFBSSxNQUFNLENBQUM7WUFDMUIsUUFBUSxFQUFFLEVBQUU7WUFDWixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFLQyxDQUFDO0lBbEJMLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJ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OEJBQXdDO1FBRXRDLHFFQUdNO1FBRVIsaUJBQU07O1FBTEUsZUFBYTtRQUFiLGtDQUFhOzt1RkRrQlIsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCOzRGQU1uQixHQUFHO2tCQUFYLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBR0YsU0FBUztrQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBBcHBsaWNhdGlvblJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5ZXIsIExheWVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZCc7XG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi9zaGFyZWQnO1xuXG5pbXBvcnQgT2xNYXAgZnJvbSAnb2wvTWFwJztcbmltcG9ydCBPbFZpZXcgZnJvbSAnb2wvVmlldyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1taW5pLWJhc2VtYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWluaUJhc2VNYXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzcGxheTogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgYmFzZUxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZUxheWVyO1xuICB9XG4gIHNldCBiYXNlTGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fYmFzZUxheWVyID0gdmFsdWU7XG4gICAgdGhpcy5oYW5kbGVCYXNlTGF5ZXJDaGFuZ2VkKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9iYXNlTGF5ZXI6IExheWVyO1xuXG4gIHB1YmxpYyBiYXNlbWFwID0gbmV3IElnb01hcCh7XG4gICAgY29udHJvbHM6IHt9LFxuICAgIGludGVyYWN0aW9uczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVNYWluTWFwVmlld0NoYW5nZSh0aGlzLm1hcC5vbC5nZXRWaWV3KCkpO1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLm9sVmlldy5vbignY2hhbmdlJywgY2hhbmdlID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlTWFpbk1hcFZpZXdDaGFuZ2UoKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KSk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXAub2wub24oJ3BvaW50ZXJkcmFnJywgY2hhbmdlID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlTWFpbk1hcFZpZXdDaGFuZ2UoKGNoYW5nZS50YXJnZXQgYXMgT2xNYXApLmdldFZpZXcoKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcudW4oJ2NoYW5nZScsIGNoYW5nZSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sVmlldykpO1xuICAgIH0pO1xuICAgIHRoaXMubWFwLm9sLnVuKCdwb2ludGVyZHJhZycsIGNoYW5nZSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlQmFzZUxheWVyKGJhc2VMYXllcjogTGF5ZXIpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5jaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKG1haW5NYXBWaWV3KSB7XG4gICAgY29uc3QgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzID0gbWFpbk1hcFZpZXcuZ2V0UHJvcGVydGllcygpO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0UmVzb2x1dGlvbihtYWluTWFwVmlld1Byb3BlcnRpZXMucmVzb2x1dGlvbik7XG4gICAgdGhpcy5iYXNlbWFwLnZpZXdDb250cm9sbGVyLm9sVmlldy5zZXRSb3RhdGlvbihtYWluTWFwVmlld1Byb3BlcnRpZXMucm90YXRpb24pO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0Q2VudGVyKHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcigpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFzZUxheWVyQ2hhbmdlZChiYXNlbGF5ZXI6IExheWVyKSB7XG4gICAgdGhpcy5iYXNlbWFwLnJlbW92ZUFsbExheWVycygpO1xuXG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIE9iamVjdC5jcmVhdGUoYmFzZWxheWVyLm9wdGlvbnMpLFxuICAgICAgYmFzZWxheWVyLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIGJhc2VMYXllcjogZmFsc2VcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihvcHRpb25zKTtcbiAgICB0aGlzLmJhc2VtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICAgIHRoaXMuaGFuZGxlTGlua2VkQmFzZUxheWVyKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQmFzZUxheWVyKGJhc2VsYXllcjogTGF5ZXIpIHtcbiAgICBjb25zdCBsaW5rZWRMYXllcnMgPSBiYXNlbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM7XG4gICAgaWYgKCFsaW5rZWRMYXllcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudExpbmtlZElkID0gbGlua2VkTGF5ZXJzLmxpbmtJZDtcbiAgICBjb25zdCBjdXJyZW50TGlua3MgPSBsaW5rZWRMYXllcnMubGlua3M7XG4gICAgY29uc3QgaXNQYXJlbnRMYXllciA9IGN1cnJlbnRMaW5rcyA/IHRydWUgOiBmYWxzZTtcbiAgICBpZiAoaXNQYXJlbnRMYXllciAmJiBjdXJyZW50TGlua2VkSWQgPT09IGJhc2VsYXllci5vcHRpb25zLmxpbmtlZExheWVycy5saW5rSWQpIHtcbiAgICAgIC8vIHNlYXJjaCBmb3IgY2hpbGQgbGF5ZXJzXG4gICAgICBjdXJyZW50TGlua3MubWFwKGxpbmsgPT4ge1xuICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAobGlua2VkSWQgPT4ge1xuICAgICAgICAgIGNvbnN0IGxheWVyVG9BcHBseSA9IHRoaXMubWFwLmxheWVycy5maW5kKGwgPT4gbC5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZCk7XG4gICAgICAgICAgaWYgKGxheWVyVG9BcHBseSkge1xuICAgICAgICAgICAgY29uc3QgbGlua2VkTGF5ZXJPcHRpb25zOiBhbnkgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBPYmplY3QuY3JlYXRlKGxheWVyVG9BcHBseS5vcHRpb25zKSxcbiAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9wdGlvbnMsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDkwMDAsXG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlTGF5ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICB9IGFzIExheWVyT3B0aW9uc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYmFzZW1hcC5hZGRMYXllcih0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihsaW5rZWRMYXllck9wdGlvbnMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWdvLW1pbmktYmFzZW1hcC1jb250YWluZXJcIj5cblxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVwiIChjbGljayk9XCJjaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKVwiPlxuICAgIDxpZ28tbWFwLWJyb3dzZXIgW21hcF09XCJiYXNlbWFwXCI+PC9pZ28tbWFwLWJyb3dzZXI+XG4gICAgPGRpdiAqbmdJZj0ndGl0bGUnIGNsYXNzPSdpZ28tbWluaS1iYXNlbWFwLXRpdGxlJz4ge3t0aXRsZX19IDwvZGl2PlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1iYXNlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL21pbmktYmFzZW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9taW5pLWJhc2VtYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBS04sTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztJQ1AvQiw4QkFBa0Q7SUFBQyxZQUFVO0lBQUEsaUJBQU07OztJQUFoQixlQUFVO0lBQVYsNkNBQVU7Ozs7SUFGL0QsOEJBQTBEO0lBQXJDLDhKQUFTLGVBQUEsd0NBQTBCLENBQUEsSUFBQztJQUN2RCxxQ0FBbUQ7SUFDbkQsMkVBQW1FO0lBQ3JFLGlCQUFNOzs7SUFGYSxlQUFlO0lBQWYsb0NBQWU7SUFDMUIsZUFBVztJQUFYLG1DQUFXOztBRGlCckIsTUFBTSxPQUFPLG9CQUFvQjtJQWdDL0IsWUFDVSxZQUEwQixFQUMxQixNQUFzQixFQUN0QixLQUF3QjtRQUZ4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVIzQixZQUFPLEdBQUcsSUFBSSxNQUFNLENBQUM7WUFDMUIsUUFBUSxFQUFFLEVBQUU7WUFDWixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFNQSxDQUFDO0lBOUJKLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4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LEVBQ3BCOzRCQUNFLE1BQU0sRUFBRSxJQUFJOzRCQUNaLE9BQU8sRUFBRSxJQUFJOzRCQUNiLFNBQVMsRUFBRSxLQUFLO3lCQUNELENBQ2xCLENBQUM7d0JBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO3FCQUMxRTtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzt3RkFySFUsb0JBQW9CO3VFQUFwQixvQkFBb0I7UUNyQmpDLDhCQUF3QztRQUV0QyxxRUFHTTtRQUVSLGlCQUFNOztRQUxFLGVBQWE7UUFBYixrQ0FBYTs7dUZEbUJSLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjs0SEFNbkIsR0FBRztrQkFBWCxLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUdGLE9BQU87a0JBRFYsS0FBSztZQVlGLFNBQVM7a0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXllciwgTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sVmlldyBmcm9tICdvbC9WaWV3JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW1pbmktYmFzZW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9taW5pLWJhc2VtYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9taW5pLWJhc2VtYXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNaW5pQmFzZU1hcENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNwbGF5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5O1xuICB9XG4gIHNldCBkaXNwbGF5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzcGxheSA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuYmFzZW1hcC5vbC5nZXRWaWV3KCkuY2hhbmdlZCgpO1xuICB9XG4gIHByaXZhdGUgX2Rpc3BsYXk6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgZ2V0IGJhc2VMYXllcigpOiBMYXllciB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VMYXllcjtcbiAgfVxuICBzZXQgYmFzZUxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2Jhc2VMYXllciA9IHZhbHVlO1xuICAgIHRoaXMuaGFuZGxlQmFzZUxheWVyQ2hhbmdlZCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfYmFzZUxheWVyOiBMYXllcjtcblxuICBwdWJsaWMgYmFzZW1hcCA9IG5ldyBJZ29NYXAoe1xuICAgIGNvbnRyb2xzOiB7fSxcbiAgICBpbnRlcmFjdGlvbnM6IGZhbHNlXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVNYWluTWFwVmlld0NoYW5nZSh0aGlzLm1hcC5vbC5nZXRWaWV3KCkpO1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLm9sVmlldy5vbignY2hhbmdlJywgY2hhbmdlID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlTWFpbk1hcFZpZXdDaGFuZ2UoKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KSk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXAub2wub24oJ3BvaW50ZXJkcmFnJywgY2hhbmdlID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlTWFpbk1hcFZpZXdDaGFuZ2UoKGNoYW5nZS50YXJnZXQgYXMgT2xNYXApLmdldFZpZXcoKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcudW4oJ2NoYW5nZScsIGNoYW5nZSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sVmlldykpO1xuICAgIH0pO1xuICAgIHRoaXMubWFwLm9sLnVuKCdwb2ludGVyZHJhZycsIGNoYW5nZSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlQmFzZUxheWVyKGJhc2VMYXllcjogTGF5ZXIpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5jaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKG1haW5NYXBWaWV3KSB7XG4gICAgY29uc3QgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzID0gbWFpbk1hcFZpZXcuZ2V0UHJvcGVydGllcygpO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0UmVzb2x1dGlvbihtYWluTWFwVmlld1Byb3BlcnRpZXMucmVzb2x1dGlvbik7XG4gICAgdGhpcy5iYXNlbWFwLnZpZXdDb250cm9sbGVyLm9sVmlldy5zZXRSb3RhdGlvbihtYWluTWFwVmlld1Byb3BlcnRpZXMucm90YXRpb24pO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0Q2VudGVyKHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcigpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFzZUxheWVyQ2hhbmdlZChiYXNlbGF5ZXI6IExheWVyKSB7XG4gICAgdGhpcy5iYXNlbWFwLnJlbW92ZUFsbExheWVycygpO1xuXG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIE9iamVjdC5jcmVhdGUoYmFzZWxheWVyLm9wdGlvbnMpLFxuICAgICAgYmFzZWxheWVyLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIGJhc2VMYXllcjogZmFsc2VcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihvcHRpb25zKTtcbiAgICB0aGlzLmJhc2VtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICAgIHRoaXMuaGFuZGxlTGlua2VkQmFzZUxheWVyKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQmFzZUxheWVyKGJhc2VsYXllcjogTGF5ZXIpIHtcbiAgICBjb25zdCBsaW5rZWRMYXllcnMgPSBiYXNlbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM7XG4gICAgaWYgKCFsaW5rZWRMYXllcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudExpbmtlZElkID0gbGlua2VkTGF5ZXJzLmxpbmtJZDtcbiAgICBjb25zdCBjdXJyZW50TGlua3MgPSBsaW5rZWRMYXllcnMubGlua3M7XG4gICAgY29uc3QgaXNQYXJlbnRMYXllciA9IGN1cnJlbnRMaW5rcyA/IHRydWUgOiBmYWxzZTtcbiAgICBpZiAoaXNQYXJlbnRMYXllciAmJiBjdXJyZW50TGlua2VkSWQgPT09IGJhc2VsYXllci5vcHRpb25zLmxpbmtlZExheWVycy5saW5rSWQpIHtcbiAgICAgIC8vIHNlYXJjaCBmb3IgY2hpbGQgbGF5ZXJzXG4gICAgICBjdXJyZW50TGlua3MubWFwKGxpbmsgPT4ge1xuICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAobGlua2VkSWQgPT4ge1xuICAgICAgICAgIGNvbnN0IGxheWVyVG9BcHBseSA9IHRoaXMubWFwLmxheWVycy5maW5kKGwgPT4gbC5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZCk7XG4gICAgICAgICAgaWYgKGxheWVyVG9BcHBseSkge1xuICAgICAgICAgICAgY29uc3QgbGlua2VkTGF5ZXJPcHRpb25zOiBhbnkgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBPYmplY3QuY3JlYXRlKGxheWVyVG9BcHBseS5vcHRpb25zKSxcbiAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9wdGlvbnMsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDkwMDAsXG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlTGF5ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICB9IGFzIExheWVyT3B0aW9uc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYmFzZW1hcC5hZGRMYXllcih0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihsaW5rZWRMYXllck9wdGlvbnMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWdvLW1pbmktYmFzZW1hcC1jb250YWluZXJcIj5cblxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVwiIChjbGljayk9XCJjaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKVwiPlxuICAgIDxpZ28tbWFwLWJyb3dzZXIgW21hcF09XCJiYXNlbWFwXCI+PC9pZ28tbWFwLWJyb3dzZXI+XG4gICAgPGRpdiAqbmdJZj0ndGl0bGUnIGNsYXNzPSdpZ28tbWluaS1iYXNlbWFwLXRpdGxlJz4ge3t0aXRsZX19IDwvZGl2PlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -363,6 +363,7 @@ export function roundCoordToString(coord, decimal = 3) {
|
|
|
363
363
|
* and for the current UTM zone and MTM zone.
|
|
364
364
|
* @param lonLat [number, number] array of the coordinate to transform.
|
|
365
365
|
* @param projections Projection[] Array of destination projection.
|
|
366
|
+
* @param reverseCoords To reverse coords from latLon to lonLat (search option)
|
|
366
367
|
* @returns Returns an array of converted coordinates.
|
|
367
368
|
*/
|
|
368
369
|
export function lonLatConversion(lonLat, projections) {
|
|
@@ -459,4 +460,4 @@ export function mtmZoneFromLonLat(lonLat) {
|
|
|
459
460
|
}
|
|
460
461
|
return mtmZone;
|
|
461
462
|
}
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9tYXAudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzFDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixHQUFXLEVBQ1gsYUFBcUIsRUFDckIsT0FBOEIsRUFBRTtJQU9oQyxJQUFJLE1BQXdCLENBQUM7SUFDN0IsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSSxHQUFRLENBQUM7SUFFYixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM1QixJQUFJLGFBQXFCLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxD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QUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxBQUFELEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0UsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEs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SUFDdkIsSUFBSSxPQUFPLENBQUM7SUFDWixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5pbXBvcnQgeyBNQUMgfSBmcm9tICdvbC9oYXMnO1xuXG5pbXBvcnQgeyBOdW1iZXJVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgTWFwVmlld1N0YXRlIH0gZnJvbSAnLi9tYXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2plY3Rpb24gfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgZXh0cmFjdHMgYSBjb29yZGluYXRlIHR1cGxlIGZyb20gYSBzdHJpbmcuXG4gKiBAcGFyYW0gc3RyIEFueSBzdHJpbmdcbiAqIEBwYXJhbSBtYXBQcm9qZWN0aW9uIHN0cmluZyBNYXAgUHJvamVjdGlvblxuICogQHBhcmFtIG9wdHMuZm9yY2VOQSBib29sZWFuIEZvcmNlIE5vcnRoIEFtZXJpY2EgWm9uZVxuICogQHJldHVybnMgb2JqZWN0OlxuICogICAgICAgICAgICAgbG9uTGF0OiBDb29yZGluYXRlLFxuICogICAgICAgICAgICAgbWVzc2FnZTogTWVzc2FnZSBvZiBlcnJvcixcbiAqICAgICAgICAgICAgIHJhZGl1czogcmFkaXVzIG9mIHRoZSBjb25maWVuY2Ugb2YgY29vcmRpbmF0ZSxcbiAqICAgICAgICAgICAgIGNvbmY6IGNvbmZpZGVuY2Ugb2YgdGhlIGNvb3JkaW5hdGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0xvbkxhdChcbiAgc3RyOiBzdHJpbmcsXG4gIG1hcFByb2plY3Rpb246IHN0cmluZyxcbiAgb3B0czogeyBmb3JjZU5BPzogYm9vbGVhbiB9ID0ge31cbik6IHtcbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJhZGl1czogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjb25mOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59IHtcbiAgbGV0IGxvbkxhdDogW251bWJlciwgbnVtYmVyXTtcbiAgbGV0IGNvb3JkU3RyOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxvbjogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xvbjogc3RyaW5nO1xuICBsZXQgbWludXRlc0xvbjogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xvbjogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTG9uOiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTG9uOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxhdDogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xhdDogc3RyaW5nO1xuICBsZXQgbWludXRlc0xhdDogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xhdDogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTGF0OiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTGF0OiBzdHJpbmc7XG4gIGxldCB6b25lOiBzdHJpbmc7XG4gIGxldCByYWRpdXM6IHN0cmluZztcbiAgbGV0IGNvbmY6IHN0cmluZztcbiAgbGV0IGxvbjogYW55O1xuICBsZXQgbGF0OiBhbnk7XG5cbiAgY29uc3QgcHJvamVjdGlvblBhdHRlcm4gPSAnKFxcXFxzKjtcXFxccypbXFxcXGRdezQsNn0pJztcbiAgY29uc3QgdG9Qcm9qZWN0aW9uID0gJzQzMjYnO1xuICBsZXQgcHJvamVjdGlvblN0cjogc3RyaW5nO1xuICBjb25zdCBwcm9qZWN0aW9uUmVnZXggPSBuZXcgUmVnRXhwKHByb2plY3Rpb25QYXR0ZXJuLCAnZycpO1xuXG4gIGNvbnN0IGxvbmxhdENvb3JkID0gJyhbLStdKT8oW1xcXFxkXXsxLDN9KShbLC5dKFxcXFxkKykpPyc7XG4gIGNvbnN0IGxvbkxhdFBhdHRlcm4gPSBgJHtsb25sYXRDb29yZH1bXFxcXHMsXSske2xvbmxhdENvb3JkfWA7XG4gIGNvbnN0IGxvbkxhdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bG9uTGF0UGF0dGVybn0kYCwgJ2cnKTtcblxuICBjb25zdCBkbXNDb29yZCA9XG4gICAgJyhbMC05XXsxLDJ9KVs6fMKwXT9cXFxccyooWzAtOV17MSwyfSk/Wzp8XFwnfOKAsnzigJldP1xcXFxzKihbMC05XXsxLDJ9KD86LlswLTldKyl7MCwxfSk/XFxcXHMqW1wifOKAs3zigJ1dP1xcXFxzKic7XG4gIGNvbnN0IGRtc0Nvb3JkUGF0dGVybiA9IGAke2Rtc0Nvb3JkfShbTnxTfEV8V3xPXSksP1xcXFxzKiR7ZG1zQ29vcmR9KFtOfFN8RXxXfE9dKWA7XG4gIGNvbnN0IGRtc1JlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7ZG1zQ29vcmRQYXR0ZXJufSRgLCAnZ2knKTtcblxuICBjb25zdCBwYXR0ZXJuVXRtID1cbiAgICAnKFVUTSktPyhcXFxcZHsxLDJ9KVtcXFxccyxdKihcXFxcZCtbLixdP1xcXFxkKylbXFxcXHMsXSsoXFxcXGQrWy4sXT9cXFxcZCspJztcbiAgY29uc3QgdXRtUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuVXRtfWAsICdnaScpO1xuXG4gIGNvbnN0IHBhdHRlcm5NdG0gPVxuICAgICcoTVRNKS0/KFxcXFxkezEsMn0pW1xcXFxzLF0qKFxcXFxkK1suLF0/XFxcXGQrKVtcXFxccyxdKyhcXFxcZCtbLixdP1xcXFxkKyknO1xuICBjb25zdCBtdG1SZWdleCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm5NdG19YCwgJ2dpJyk7XG5cbiAgY29uc3QgZGRDb29yZCA9ICcoWy0rXSk/KFxcXFxkezEsM30pWywuXShcXFxcZCspJztcbiAgY29uc3QgcGF0dGVybkRkID0gYCR7ZGRDb29yZH1cXFxccypbLF0/XFxcXHMqJHtkZENvb3JkfWA7XG4gIGNvbnN0IGRkUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuRGR9YCwgJ2cnKTtcblxuICBjb25zdCBkbWRDb29yZCA9XG4gICAgJyhbLStdKT8oXFxcXGR7MSwzfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbLixdPyhcXFxcZHsxLDV9KT8nO1xuICBjb25zdCBwYXR0ZXJuRG1kID0gYCR7ZG1kQ29vcmR9XFxcXHMqWywuXT9cXFxccyoke2RtZENvb3JkfWA7XG4gIGNvbnN0IGRtZFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkRtZH1gLCAnZycpO1xuXG4gLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuICBjb25zdCBwYXR0ZXJuQkVMTCA9XG4gICAgJ0xBVFxcXFxzKltcXFxcczpdKlxcXFxzKihbLStdKT8oXFxcXGR7MSwyfSlbXFxcXHMuLF0/KFxcXFxkKyk/W1xcXFxzLixdP1xcXFxzKihcXFxcZHsxLDJ9KFsuLF1cXFxcZCspPyk/XFxcXHMqKE58U3xFfFcpP1xcXFxzKkxPTkdcXFxccypbXFxcXHM6XSpcXFxccyooWy0rXSk/KFxcXFxkezEsM30pW1xcXFxzLixdPyhcXFxcZCspP1tcXFxccy4sXT9cXFxccyooXFxcXGR7MSwyfShbLixdXFxcXGQrKT8pP1xcXFxzKihOfFN8RXxXKT9cXFxccypVTkNcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGQrKVxcXFxzKkNPTkZcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGR7MSwzfSknO1xuICBjb25zdCBiZWxsUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuQkVMTH0/YCwgJ2dpJyk7XG5cbiAgY29uc3QgbW1Db29yZCA9ICcoWy0rXT9cXFxcZCspWywuXT8oXFxcXGQrKT8nO1xuICBjb25zdCBtbVBhdHRlcm4gPSBgJHttbUNvb3JkfVtcXFxccyxdKyR7bW1Db29yZH1gO1xuICBjb25zdCBtbVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bW1QYXR0ZXJufSRgLCAnZycpO1xuXG4gIGxldCBpc1hZQ29vcmRzID0gZmFsc2U7XG5cbiAgc3RyID0gc3RyLnRvTG9jYWxlVXBwZXJDYXNlKCkudHJpbSgpO1xuXG4gIC8vIEV4dHJhY3QgcHJvamVjdGlvblxuICBpZiAocHJvamVjdGlvblJlZ2V4LnRlc3Qoc3RyKSkge1xuICAgIFtjb29yZFN0ciwgcHJvamVjdGlvblN0cl0gPSBzdHIuc3BsaXQoJzsnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gIH0gZWxzZSB7XG4gICAgY29vcmRTdHIgPSBzdHI7XG4gIH1cbiAgaWYgKGxvbkxhdFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBsb24sXG4gICAgICAsXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBsYXQsXG4gICAgICAsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKGxvbkxhdFBhdHRlcm4pO1xuXG4gICAgbG9uID0gcGFyc2VGbG9hdCgobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGxvbiArICcuJyArIGRlY2ltYWxMb24pO1xuICAgIGxhdCA9IHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgfSBlbHNlIGlmIChkbXNSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBtaW51dGVzTG9uLFxuICAgICAgc2Vjb25kc0xvbixcbiAgICAgIGRpcmVjdGlvbkxvbixcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChkbXNDb29yZFBhdHRlcm4pO1xuXG4gICAgaWYgKGRpcmVjdGlvbkxvbiA9PT0gJ1MnIHx8IGRpcmVjdGlvbkxvbiA9PT0gJ04nKSB7XG4gICAgICBkZWdyZWVzTG9uID0gW2RlZ3JlZXNMYXQsIChkZWdyZWVzTGF0ID0gZGVncmVlc0xvbildWzBdO1xuICAgICAgbWludXRlc0xvbiA9IFttaW51dGVzTGF0LCAobWludXRlc0xhdCA9IG1pbnV0ZXNMb24pXVswXTtcbiAgICAgIHNlY29uZHNMb24gPSBbc2Vjb25kc0xhdCwgKHNlY29uZHNMYXQgPSBzZWNvbmRzTG9uKV1bMF07XG4gICAgICBkaXJlY3Rpb25Mb24gPSBbZGlyZWN0aW9uTGF0LCAoZGlyZWN0aW9uTGF0ID0gZGlyZWN0aW9uTG9uKV1bMF07XG4gICAgfVxuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KGRlZ3JlZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICBkaXJlY3Rpb25Mb25cbiAgICApO1xuICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmICh1dG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVyblV0bSk7XG4gICAgY29uc3QgZXBzZ1V0bSA9IE51bWJlcih6b25lKSA8IDEwID8gYEVQU0c6MzI2MCR7em9uZX1gIDogYEVQU0c6MzI2JHt6b25lfWA7XG4gICAgW2xvbiwgbGF0XSA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICBbcGFyc2VGbG9hdChsb24pLCBwYXJzZUZsb2F0KGxhdCldLFxuICAgICAgZXBzZ1V0bSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcbiAgfSBlbHNlIGlmIChtdG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVybk10bSk7XG4gICAgY29uc3QgZXBzZ010bSA9XG4gICAgICBOdW1iZXIoem9uZSkgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBOdW1iZXIoem9uZSl9YDtcbiAgICBbbG9uLCBsYXRdID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgIFtwYXJzZUZsb2F0KGxvbiksIHBhcnNlRmxvYXQobGF0KV0sXG4gICAgICBlcHNnTXRtLFxuICAgICAgJ0VQU0c6NDMyNidcbiAgICApO1xuICB9IGVsc2UgaWYgKGRtZFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBkZWdyZWVzTG9uLFxuICAgICAgbWludXRlc0xvbixcbiAgICAgIHNlY29uZHNMb24sXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EbWQpO1xuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxvbiA/IG5lZ2F0aXZlTG9uIDogJycpICsgZGVncmVlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgIGRpcmVjdGlvbkxvblxuICAgICk7XG4gICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAoZGRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIGRlY2ltYWxMb24sXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EZCk7XG5cbiAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBkZWdyZWVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMb24pLFxuICAgICAgZGlyZWN0aW9uTG9uXG4gICAgKTtcbiAgICBsYXQgPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmIChiZWxsUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgICxcbiAgICAgIGRpcmVjdGlvbkxhdCxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIG1pbnV0ZXNMb24sXG4gICAgICBzZWNvbmRzTG9uLFxuICAgICAgLFxuICAgICAgZGlyZWN0aW9uTG9uLFxuICAgICAgcmFkaXVzLFxuICAgICAgY29uZlxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuQkVMTCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgTm9ydGggQW1lcmljYVxuICAgIGlmICghZGlyZWN0aW9uTG9uKSB7XG4gICAgICBkaXJlY3Rpb25Mb24gPSAnVyc7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgcmVhbCBtaW51dGVzIG9yIGRlY2ltYWxzXG4gICAgaWYgKG1pbnV0ZXNMb24gJiYgbWludXRlc0xvbi5sZW5ndGggPiAyKSB7XG4gICAgICBsb24gPSBwYXJzZUZsb2F0KFxuICAgICAgICAobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGRlZ3JlZXNMb24gKyAnLicgKyBtaW51dGVzTG9uXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgICAgZGlyZWN0aW9uTG9uXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChtaW51dGVzTGF0ICYmIG1pbnV0ZXNMYXQubGVuZ3RoID4gMikge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChcbiAgICAgICAgKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0ICsgJy4nICsgbWludXRlc0xhdFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xhdCksXG4gICAgICAgIGRpcmVjdGlvbkxhdFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobW1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssIGxvbiwgZGVjaW1hbExvbiwgbGF0LCBkZWNpbWFsTGF0XSA9IGNvb3JkU3RyLm1hdGNoKG1tUGF0dGVybik7XG5cbiAgICBpZiAoZGVjaW1hbExvbikge1xuICAgICAgbG9uID0gcGFyc2VGbG9hdChsb24gKyAnLicgKyBkZWNpbWFsTG9uKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjaW1hbExhdCkge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdDogdW5kZWZpbmVkLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBpZiAob3B0cy5mb3JjZU5BICYmICFpc1hZQ29vcmRzKSB7XG4gICAgLy8gU2V0IGEgbmVnYXRpdmUgY29vcmRpbmF0ZSBmb3IgTm9ydGggQW1lcmljYSB6b25lXG4gICAgaWYgKGxvbiA+IDAgJiYgbGF0ID4gMCkge1xuICAgICAgaWYgKGxvbiA+IGxhdCkge1xuICAgICAgICBsb24gPSAtbG9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGF0ID0gLWxhdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnNlIGNvb3JkaW5hdGUgdG8gcmVzcGVjdCBsb25MYXQgY29udmVudGlvblxuICAgIGlmIChsb24gPiBsYXQpIHtcbiAgICAgIGxvbiA9IFtsYXQsIChsYXQgPSBsb24pXVswXTtcbiAgICB9XG4gIH1cblxuICBsb25MYXQgPSBbTnVtYmVyKGxvbiksIE51bWJlcihsYXQpXSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuXG4gIC8vIFJlcHJvamVjdCB0aGUgY29vcmRpbmF0ZSBpZiBwcm9qZWN0aW9uIHBhcmFtZXRlciBoYXZlIGJlZW4gc2V0IGFuZCBjb29yZCBpcyBub3QgNDMyNlxuICBpZiAoXG4gICAgKHByb2plY3Rpb25TdHIgIT09IHVuZGVmaW5lZCAmJiBwcm9qZWN0aW9uU3RyICE9PSB0b1Byb2plY3Rpb24pIHx8XG4gICAgKGxvbkxhdFswXSA+IDE4MCB8fCBsb25MYXRbMF0gPCAtMTgwKSB8fFxuICAgIChsb25MYXRbMV0gPiA5MCB8fCBsb25MYXRbMV0gPCAtOTApXG4gICkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHByb2plY3Rpb25TdHIgPyAnRVBTRzonICsgcHJvamVjdGlvblN0ciA6IG1hcFByb2plY3Rpb247XG4gICAgY29uc3QgZGVzdCA9ICdFUFNHOicgKyB0b1Byb2plY3Rpb247XG5cbiAgICB0cnkge1xuICAgICAgbG9uTGF0ID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsIHNvdXJjZSwgZGVzdCkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWVzc2FnZTogJ1Byb2plY3Rpb24gJyArIHNvdXJjZSArICcgbm90IHN1cHBvcnRlZCcsXG4gICAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgICBjb25mOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIGlmIChNYXRoLmFicyhsb25MYXRbMF0pIDw9IDE4MCAmJiBNYXRoLmFicyhsb25MYXRbMV0pIDw9IDkwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdCxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgcmFkaXVzOiByYWRpdXMgPyBwYXJzZUludChyYWRpdXMsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IGNvbmYgPyBwYXJzZUludChjb25mLCAxMCkgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6ICdDb29yZGluYXRlIG91dCBvZiBMb25naXR1ZGUvTGF0aXR1ZGUgYm91bmRzJyxcbiAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgY29uZjogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgZGVncmVlcyBtaW51dGVzIHNlY29uZHMgdG8gZGRcbiAqIEBwYXJhbSBkZWdyZWVzIERlZ3JlZXNcbiAqIEBwYXJhbSBtaW51dGVzIE1pbnV0ZXNcbiAqIEBwYXJhbSBzZWNvbmRzIFNlY29uZHNcbiAqIEBwYXJhbSBkaXJlY3Rpb24gRGlyZWN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRETVNUb0REKFxuICBkZWdyZWVzOiBudW1iZXIsXG4gIG1pbnV0ZXM6IG51bWJlcixcbiAgc2Vjb25kczogbnVtYmVyLFxuICBkaXJlY3Rpb246IHN0cmluZ1xuKSB7XG4gIG1pbnV0ZXMgPSBtaW51dGVzIHx8IDA7XG4gIHNlY29uZHMgPSBzZWNvbmRzIHx8IDA7XG5cbiAgY29uc3QgbmVnID0gZGVncmVlcyA8IDA7XG4gIGxldCBkZCA9IE1hdGguYWJzKGRlZ3JlZXMpICsgbWludXRlcyAvIDYwICsgc2Vjb25kcyAvIDM2MDA7XG5cbiAgaWYgKG5lZyB8fCBkaXJlY3Rpb24gPT09ICdTJyB8fCBkaXJlY3Rpb24gPT09ICdXJykge1xuICAgIGRkID0gLWRkO1xuICB9IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBOIG9yIEVcbiAgcmV0dXJuIGRkO1xufVxuXG4vKipcbiAqIENvbnZlcnQgZGQgdG8gZGVncmVlcyBtaW51dGVzIHNlY29uZHNcbiAqIEBwYXJhbSBsb25MYXRERCBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGluIGRkXG4gKiBAcGFyYW0gZGVjaW1hbCBudW1iZXIgb2YgZGVjaW1hbHMgZm9yIHNlY29uZHNcbiAqIEByZXR1cm5zIGxvbmdpdHVkZSBhbmQgbGF0aXR1ZGUgaW4gZG1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RERUb0RNUyhcbiAgbG9uTGF0REQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDNcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgbG9uTGF0RE1TID0gW107XG5cbiAgbG9uTGF0REQuZm9yRWFjaChkZCA9PiB7XG4gICAgY29uc3QgZGVncmVlcyA9IGRkIDwgMCA/IE1hdGguY2VpbChkZCkgOiBNYXRoLmZsb29yKGRkKTtcbiAgICBjb25zdCBpbnQgPSBkZCA8IDAgPyAoZGVncmVlcyAtIGRkKSAqIDYwIDogKGRkIC0gZGVncmVlcykgKiA2MDtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihpbnQpO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoKGludCAtIG1pbnV0ZXMpICogNjApLnRvRml4ZWQoZGVjaW1hbCk7XG5cbiAgICBsb25MYXRETVMucHVzaChgJHtkZWdyZWVzfcKwICR7bWludXRlc30nICR7c2Vjb25kc31cImApO1xuICB9KTtcbiAgcmV0dXJuIGxvbkxhdERNUztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBvZiB0d28gdmlldyBzdGF0ZXMgYXJlIGVxdWFsLlxuICogQHBhcmFtIHN0YXRlMSBWaWV3IHN0YXRlXG4gKiBAcGFyYW0gc3RhdGUyIFZpZXcgc3RhdGVcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHZpZXcgc3RhdGVzIGFyZSBlcXVhbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlld1N0YXRlc0FyZUVxdWFsKFxuICBzdGF0ZTE6IE1hcFZpZXdTdGF0ZSxcbiAgc3RhdGUyOiBNYXBWaWV3U3RhdGVcbik6IGJvb2xlYW4ge1xuICBpZiAoc3RhdGUxID09PSB1bmRlZmluZWQgfHwgc3RhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB0b2xlcmFuY2UgPSAxIC8gMTAwMDA7XG4gIHJldHVybiAoXG4gICAgc3RhdGUxLnpvb20gPT09IHN0YXRlMi56b29tICYmXG4gICAgTWF0aC50cnVuYyhzdGF0ZTEuY2VudGVyWzBdIC8gdG9sZXJhbmNlKSA9PT1cbiAgICAgIE1hdGgudHJ1bmMoc3RhdGUyLmNlbnRlclswXSAvIHRvbGVyYW5jZSkgJiZcbiAgICBNYXRoLnRydW5jKHN0YXRlMS5jZW50ZXJbMV0gLyB0b2xlcmFuY2UpID09PVxuICAgICAgTWF0aC50cnVuYyhzdGF0ZTIuY2VudGVyWzFdIC8gdG9sZXJhbmNlKVxuICApO1xufVxuXG4vKipcbiAqIEZvcm1hdCB0aGUgc2NhbGUgdG8gYSBodW1hbiByZWFkYWJsZSB0ZXh0XG4gKiBAcGFyYW0gU2NhbGUgb2YgdGhlIG1hcFxuICogQHJldHVybnMgSHVtYW4gcmVhZGFibGUgc2NhbGUgdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NhbGUoc2NhbGUpIHtcbiAgc2NhbGUgPSBNYXRoLnJvdW5kKHNjYWxlKTtcbiAgaWYgKHNjYWxlIDwgMTAwMDApIHtcbiAgICByZXR1cm4gc2NhbGUgKyAnJztcbiAgfVxuXG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSAvIDEwMDApO1xuICBpZiAoc2NhbGUgPCAxMDAwKSB7XG4gICAgcmV0dXJuIHNjYWxlICsgJ0snO1xuICB9XG5cbiAgc2NhbGUgPSBNYXRoLnJvdW5kKHNjYWxlIC8gMTAwMCk7XG4gIHJldHVybiBzY2FsZSArICdNJztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHJlc29sdXRpb24gZnJvbSBhIHNjYWxlIGRlbm9tXG4gKiBAcGFyYW0gc2NhbGUgU2NhbGUgZGVub21cbiAqIEBwYXJhbSBkcGkgRFBJXG4gKiBAcmV0dXJucyBSZXNvbHV0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKFxuICBzY2FsZTogbnVtYmVyLFxuICBkcGk6IG51bWJlciA9IDk2XG4pOiBudW1iZXIge1xuICBjb25zdCBpbmNoZXNQZXJNZXRlciA9IDM5LjM3MDE7XG4gIHJldHVybiBzY2FsZSAvIChpbmNoZXNQZXJNZXRlciAqIGRwaSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvbHV0aW9uIGZyb20gYSBzY2FsZSBkZW5vbVxuICogQHBhcmFtIFNjYWxlIGRlbm9tXG4gKiBAcmV0dXJucyBSZXNvbHV0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZUZyb21SZXNvbHV0aW9uKFxuICByZXNvbHV0aW9uOiBudW1iZXIsXG4gIHVuaXQ6IHN0cmluZyA9ICdtJyxcbiAgZHBpOiBudW1iZXIgPSA5NlxuKTogbnVtYmVyIHtcbiAgY29uc3QgaW5jaGVzUGVyTWV0ZXIgPSAzOS4zNzAxO1xuICByZXR1cm4gcmVzb2x1dGlvbiAqIG9scHJvai5NRVRFUlNfUEVSX1VOSVRbdW5pdF0gKiBpbmNoZXNQZXJNZXRlciAqIGRwaTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIENUUkwga2V5IGlzIHB1c2hlZCBkdXJpbmcgYW4gT2wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxuICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIENUUkwga2V5IGlzIHB1c2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3RybEtleURvd24oZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pik6IGJvb2xlYW4ge1xuICBjb25zdCBvcmlnaW5hbEV2ZW50ID0gZXZlbnQub3JpZ2luYWxFdmVudDtcbiAgcmV0dXJuIChcbiAgICAhb3JpZ2luYWxFdmVudC5hbHRLZXkgJiZcbiAgICAoTUFDID8gb3JpZ2luYWxFdmVudC5tZXRhS2V5IDogb3JpZ2luYWxFdmVudC5jdHJsS2V5KSAmJlxuICAgICFvcmlnaW5hbEV2ZW50LnNoaWZ0S2V5XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZENvb3JkVG8oY29vcmQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDMpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgcmV0dXJuIFtcbiAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoY29vcmRbMF0sIGRlY2ltYWwpLFxuICAgIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChjb29yZFsxXSwgZGVjaW1hbCldIGFzIFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZENvb3JkVG9TdHJpbmcoY29vcmQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDMpOiBbc3RyaW5nLCBzdHJpbmdde1xuICAgIHJldHVybiByb3VuZENvb3JkVG8oY29vcmQsIGRlY2ltYWwpLm1hcChyID0+IHIudG9TdHJpbmcoKSkgYXMgW3N0cmluZywgc3RyaW5nXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIGNvbnZlcnRlZCBjb29yZGluYXRlcy5cbiAqIENvbnZlcnNpb24gaXMgZG9uZSBmb3IgZXZlcnkgY29uZmlndXJlZCBwcm9qZWN0aW9uc1xuICogYW5kIGZvciB0aGUgY3VycmVudCBVVE0gem9uZSBhbmQgTVRNIHpvbmUuXG4gKiBAcGFyYW0gbG9uTGF0IFtudW1iZXIsIG51bWJlcl0gYXJyYXkgb2YgdGhlIGNvb3JkaW5hdGUgdG8gdHJhbnNmb3JtLlxuICogQHBhcmFtIHByb2plY3Rpb25zICBQcm9qZWN0aW9uW10gQXJyYXkgb2YgZGVzdGluYXRpb24gcHJvamVjdGlvbi5cbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgY29udmVydGVkIGNvb3JkaW5hdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9uTGF0Q29udmVyc2lvbihcbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdLFxuICBwcm9qZWN0aW9uczogUHJvamVjdGlvbltdXG4pOiB7XG4gIGNvZGU6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgY29vcmQ6IFtudW1iZXIsIG51bWJlcl07XG4gIGlnbzJDb29yZEZvcm1hdDogc3RyaW5nO1xufVtdIHtcbiAgY29uc3QgcmF3Q29vcmQzODU3ID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3JykgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29uc3QgY29udmVydGVkTG9uTGF0ID0gW1xuICAgIHtcbiAgICAgIGNvZGU6ICdFUFNHOjM4NTcnLFxuICAgICAgYWxpYXM6ICdXZWIgTWVyY2F0b3InLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkMzg1NyxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7cm91bmRDb29yZFRvKHJhd0Nvb3JkMzg1Nykuam9pbignLCAnKX0gOyAzODU3YFxuICAgIH1cbiAgXTtcblxuICAvLyBkZXRlY3QgdGhlIGN1cnJlbnQgdXRtIHpvbmUuXG4gIGNvbnN0IHV0bVpvbmUgPSB1dG1ab25lRnJvbUxvbkxhdChsb25MYXQpO1xuICBjb25zdCBlcHNnVXRtID0gdXRtWm9uZSA8IDEwID8gYEVQU0c6MzI2MCR7dXRtWm9uZX1gIDogYEVQU0c6MzI2JHt1dG1ab25lfWA7XG4gIGNvbnN0IHV0bU5hbWUgPSBgVVRNLSR7dXRtWm9uZX1gO1xuICBjb25zdCByYXdDb29yZFV0bSA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgZXBzZ1V0bSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgIGNvZGU6IGVwc2dVdG0sXG4gICAgYWxpYXM6ICdVVE0nLFxuICAgIGNvb3JkOiByYXdDb29yZFV0bSxcbiAgICBpZ28yQ29vcmRGb3JtYXQ6IGAke3V0bU5hbWV9ICR7cm91bmRDb29yZFRvKHJhd0Nvb3JkVXRtKS5qb2luKCcsICcpfWBcbiAgfSk7XG5cbiAgLy8gZGV0ZWN0IHRoZSBjdXJyZW50IG10bSB6b25lLlxuICBjb25zdCBtdG1ab25lID0gbXRtWm9uZUZyb21Mb25MYXQobG9uTGF0KTtcbiAgaWYgKG10bVpvbmUpIHtcbiAgICBjb25zdCBlcHNnTXRtID1cbiAgICAgIG10bVpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke210bVpvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBtdG1ab25lfWA7XG4gICAgY29uc3QgbXRtTmFtZSA9IGBNVE0tJHttdG1ab25lfWA7XG4gICAgY29uc3QgcmF3Q29vcmRNdG0gPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsIGVwc2dNdG0pIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgICAgY29kZTogZXBzZ010bSxcbiAgICAgIGFsaWFzOiAnTVRNJyxcbiAgICAgIGNvb3JkOiByYXdDb29yZE10bSxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7bXRtTmFtZX0gJHtyb3VuZENvb3JkVG8ocmF3Q29vcmRNdG0pLmpvaW4oJywgJyl9YFxuICAgIH0pO1xuICB9XG5cbiAgcHJvamVjdGlvbnMuZm9yRWFjaChwcm9qZWN0aW9uID0+IHtcbiAgICBjb25zdCByYXdDb29yZCA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgcHJvamVjdGlvbi5jb2RlKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGNvbnN0IG51bWVyaWNFcHNnQ29kZSA9IHByb2plY3Rpb24uY29kZS5zcGxpdCgnOicpWzFdO1xuICAgIGNvbnZlcnRlZExvbkxhdC5wdXNoKHtcbiAgICAgIGNvZGU6IHByb2plY3Rpb24uY29kZSxcbiAgICAgIGFsaWFzOiBwcm9qZWN0aW9uLmFsaWFzIHx8IHByb2plY3Rpb24uY29kZSxcbiAgICAgIGNvb3JkOiByYXdDb29yZCxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7cm91bmRDb29yZFRvKHJhd0Nvb3JkKS5qb2luKFxuICAgICAgICAnLCAnXG4gICAgICApfSA7ICR7bnVtZXJpY0Vwc2dDb2RlfWBcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRlZExvbkxhdDtcbn1cblxuLyoqXG4gKiBEZXRlY3QgdGhlIGN1cnJlbnQgdXRtIHpvbmUgb2YgdGhlIGxvbi9sYXQgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byBkZXRlY3QgdGhlIFVUTSB6b25lLlxuICogQHJldHVybnMgbnVtYmVyIFRoZSBVVE0gem9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV0bVpvbmVGcm9tTG9uTGF0KGxvbkxhdDogW251bWJlciwgbnVtYmVyXSkge1xuICByZXR1cm4gTWF0aC5jZWlsKChsb25MYXRbMF0gKyAxODApIC8gNik7XG59XG5cbi8qKlxuICogRGV0ZWN0IHRoZSBjdXJyZW50IG10bSB6b25lIG9mIHRoZSBsb24vbGF0IGNvb3JkaW5hdGUuXG4gKiBAcGFyYW0gbG9uTGF0IFtudW1iZXIsIG51bWJlcl0gYXJyYXkgb2YgdGhlIGNvb3JkaW5hdGUgdG8gZGV0ZWN0IHRoZSBNVE0gem9uZS5cbiAqIEByZXR1cm5zIG51bWJlciBUaGUgTVRNIHpvbmUuIFVuZGVmaW5lZCBpZiBvdXRzaWRlIG9mIHRoZSBtdG0gYXBwbGljYXRpb24gem9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG10bVpvbmVGcm9tTG9uTGF0KGxvbkxhdDogW251bWJlciwgbnVtYmVyXSkge1xuICBjb25zdCBsb25nID0gbG9uTGF0WzBdO1xuICBsZXQgbXRtWm9uZTtcbiAgaWYgKGxvbmcgPCAtNTEgJiYgbG9uZyA+IC01NCkge1xuICAgIG10bVpvbmUgPSAxO1xuICB9XG4gIGlmIChsb25nIDwgLTU0ICYmIGxvbmcgPiAtNTcpIHtcbiAgICBtdG1ab25lID0gMjtcbiAgfVxuICBpZiAobG9uZyA8IC01NyAmJiBsb25nID4gLTYwKSB7XG4gICAgbXRtWm9uZSA9IDM7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjAgJiYgbG9uZyA+IC02Mykge1xuICAgIG10bVpvbmUgPSA0O1xuICB9XG4gIGlmIChsb25nIDwgLTYzICYmIGxvbmcgPiAtNjYpIHtcbiAgICBtdG1ab25lID0gNTtcbiAgfVxuICBpZiAobG9uZyA8IC02NiAmJiBsb25nID4gLTY5KSB7XG4gICAgbXRtWm9uZSA9IDY7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjkgJiYgbG9uZyA+IC03Mikge1xuICAgIG10bVpvbmUgPSA3O1xuICB9XG4gIGlmIChsb25nIDwgLTcyICYmIGxvbmcgPiAtNzUpIHtcbiAgICBtdG1ab25lID0gODtcbiAgfVxuICBpZiAobG9uZyA8IC03NSAmJiBsb25nID4gLTc4KSB7XG4gICAgbXRtWm9uZSA9IDk7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNzggJiYgbG9uZyA+IC04MSkge1xuICAgIG10bVpvbmUgPSAxMDtcbiAgfVxuICByZXR1cm4gbXRtWm9uZTtcbn1cbiJdfQ==
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9tYXAudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzFDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixHQUFXLEVBQ1gsYUFBcUIsRUFDckIsT0FBOEIsRUFBRTtJQU9oQyxJQUFJLE1BQXdCLENBQUM7SUFDN0IsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSSxHQUFRLENBQUM7SUFFYixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM1QixJQUFJLGFBQXFCLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxD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QUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxBQUFELEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0UsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEs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SUFDdkIsSUFBSSxPQUFPLENBQUM7SUFDWixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLEVBQUUsQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5pbXBvcnQgeyBNQUMgfSBmcm9tICdvbC9oYXMnO1xuXG5pbXBvcnQgeyBOdW1iZXJVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgTWFwVmlld1N0YXRlIH0gZnJvbSAnLi9tYXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2plY3Rpb24gfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgZXh0cmFjdHMgYSBjb29yZGluYXRlIHR1cGxlIGZyb20gYSBzdHJpbmcuXG4gKiBAcGFyYW0gc3RyIEFueSBzdHJpbmdcbiAqIEBwYXJhbSBtYXBQcm9qZWN0aW9uIHN0cmluZyBNYXAgUHJvamVjdGlvblxuICogQHBhcmFtIG9wdHMuZm9yY2VOQSBib29sZWFuIEZvcmNlIE5vcnRoIEFtZXJpY2EgWm9uZVxuICogQHJldHVybnMgb2JqZWN0OlxuICogICAgICAgICAgICAgbG9uTGF0OiBDb29yZGluYXRlLFxuICogICAgICAgICAgICAgbWVzc2FnZTogTWVzc2FnZSBvZiBlcnJvcixcbiAqICAgICAgICAgICAgIHJhZGl1czogcmFkaXVzIG9mIHRoZSBjb25maWVuY2Ugb2YgY29vcmRpbmF0ZSxcbiAqICAgICAgICAgICAgIGNvbmY6IGNvbmZpZGVuY2Ugb2YgdGhlIGNvb3JkaW5hdGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0xvbkxhdChcbiAgc3RyOiBzdHJpbmcsXG4gIG1hcFByb2plY3Rpb246IHN0cmluZyxcbiAgb3B0czogeyBmb3JjZU5BPzogYm9vbGVhbiB9ID0ge31cbik6IHtcbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJhZGl1czogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjb25mOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59IHtcbiAgbGV0IGxvbkxhdDogW251bWJlciwgbnVtYmVyXTtcbiAgbGV0IGNvb3JkU3RyOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxvbjogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xvbjogc3RyaW5nO1xuICBsZXQgbWludXRlc0xvbjogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xvbjogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTG9uOiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTG9uOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxhdDogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xhdDogc3RyaW5nO1xuICBsZXQgbWludXRlc0xhdDogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xhdDogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTGF0OiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTGF0OiBzdHJpbmc7XG4gIGxldCB6b25lOiBzdHJpbmc7XG4gIGxldCByYWRpdXM6IHN0cmluZztcbiAgbGV0IGNvbmY6IHN0cmluZztcbiAgbGV0IGxvbjogYW55O1xuICBsZXQgbGF0OiBhbnk7XG5cbiAgY29uc3QgcHJvamVjdGlvblBhdHRlcm4gPSAnKFxcXFxzKjtcXFxccypbXFxcXGRdezQsNn0pJztcbiAgY29uc3QgdG9Qcm9qZWN0aW9uID0gJzQzMjYnO1xuICBsZXQgcHJvamVjdGlvblN0cjogc3RyaW5nO1xuICBjb25zdCBwcm9qZWN0aW9uUmVnZXggPSBuZXcgUmVnRXhwKHByb2plY3Rpb25QYXR0ZXJuLCAnZycpO1xuXG4gIGNvbnN0IGxvbmxhdENvb3JkID0gJyhbLStdKT8oW1xcXFxkXXsxLDN9KShbLC5dKFxcXFxkKykpPyc7XG4gIGNvbnN0IGxvbkxhdFBhdHRlcm4gPSBgJHtsb25sYXRDb29yZH1bXFxcXHMsXSske2xvbmxhdENvb3JkfWA7XG4gIGNvbnN0IGxvbkxhdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bG9uTGF0UGF0dGVybn0kYCwgJ2cnKTtcblxuICBjb25zdCBkbXNDb29yZCA9XG4gICAgJyhbMC05XXsxLDJ9KVs6fMKwXT9cXFxccyooWzAtOV17MSwyfSk/Wzp8XFwnfOKAsnzigJldP1xcXFxzKihbMC05XXsxLDJ9KD86LlswLTldKyl7MCwxfSk/XFxcXHMqW1wifOKAs3zigJ1dP1xcXFxzKic7XG4gIGNvbnN0IGRtc0Nvb3JkUGF0dGVybiA9IGAke2Rtc0Nvb3JkfShbTnxTfEV8V3xPXSksP1xcXFxzKiR7ZG1zQ29vcmR9KFtOfFN8RXxXfE9dKWA7XG4gIGNvbnN0IGRtc1JlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7ZG1zQ29vcmRQYXR0ZXJufSRgLCAnZ2knKTtcblxuICBjb25zdCBwYXR0ZXJuVXRtID1cbiAgICAnKFVUTSktPyhcXFxcZHsxLDJ9KVtcXFxccyxdKihcXFxcZCtbLixdP1xcXFxkKylbXFxcXHMsXSsoXFxcXGQrWy4sXT9cXFxcZCspJztcbiAgY29uc3QgdXRtUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuVXRtfWAsICdnaScpO1xuXG4gIGNvbnN0IHBhdHRlcm5NdG0gPVxuICAgICcoTVRNKS0/KFxcXFxkezEsMn0pW1xcXFxzLF0qKFxcXFxkK1suLF0/XFxcXGQrKVtcXFxccyxdKyhcXFxcZCtbLixdP1xcXFxkKyknO1xuICBjb25zdCBtdG1SZWdleCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm5NdG19YCwgJ2dpJyk7XG5cbiAgY29uc3QgZGRDb29yZCA9ICcoWy0rXSk/KFxcXFxkezEsM30pWywuXShcXFxcZCspJztcbiAgY29uc3QgcGF0dGVybkRkID0gYCR7ZGRDb29yZH1cXFxccypbLF0/XFxcXHMqJHtkZENvb3JkfWA7XG4gIGNvbnN0IGRkUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuRGR9YCwgJ2cnKTtcblxuICBjb25zdCBkbWRDb29yZCA9XG4gICAgJyhbLStdKT8oXFxcXGR7MSwzfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbLixdPyhcXFxcZHsxLDV9KT8nO1xuICBjb25zdCBwYXR0ZXJuRG1kID0gYCR7ZG1kQ29vcmR9XFxcXHMqWywuXT9cXFxccyoke2RtZENvb3JkfWA7XG4gIGNvbnN0IGRtZFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkRtZH1gLCAnZycpO1xuXG4gLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuICBjb25zdCBwYXR0ZXJuQkVMTCA9XG4gICAgJ0xBVFxcXFxzKltcXFxcczpdKlxcXFxzKihbLStdKT8oXFxcXGR7MSwyfSlbXFxcXHMuLF0/KFxcXFxkKyk/W1xcXFxzLixdP1xcXFxzKihcXFxcZHsxLDJ9KFsuLF1cXFxcZCspPyk/XFxcXHMqKE58U3xFfFcpP1xcXFxzKkxPTkdcXFxccypbXFxcXHM6XSpcXFxccyooWy0rXSk/KFxcXFxkezEsM30pW1xcXFxzLixdPyhcXFxcZCspP1tcXFxccy4sXT9cXFxccyooXFxcXGR7MSwyfShbLixdXFxcXGQrKT8pP1xcXFxzKihOfFN8RXxXKT9cXFxccypVTkNcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGQrKVxcXFxzKkNPTkZcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGR7MSwzfSknO1xuICBjb25zdCBiZWxsUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuQkVMTH0/YCwgJ2dpJyk7XG5cbiAgY29uc3QgbW1Db29yZCA9ICcoWy0rXT9cXFxcZCspWywuXT8oXFxcXGQrKT8nO1xuICBjb25zdCBtbVBhdHRlcm4gPSBgJHttbUNvb3JkfVtcXFxccyxdKyR7bW1Db29yZH1gO1xuICBjb25zdCBtbVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bW1QYXR0ZXJufSRgLCAnZycpO1xuXG4gIGxldCBpc1hZQ29vcmRzID0gZmFsc2U7XG5cbiAgc3RyID0gc3RyLnRvTG9jYWxlVXBwZXJDYXNlKCkudHJpbSgpO1xuXG4gIC8vIEV4dHJhY3QgcHJvamVjdGlvblxuICBpZiAocHJvamVjdGlvblJlZ2V4LnRlc3Qoc3RyKSkge1xuICAgIFtjb29yZFN0ciwgcHJvamVjdGlvblN0cl0gPSBzdHIuc3BsaXQoJzsnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gIH0gZWxzZSB7XG4gICAgY29vcmRTdHIgPSBzdHI7XG4gIH1cbiAgaWYgKGxvbkxhdFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBsb24sXG4gICAgICAsXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBsYXQsXG4gICAgICAsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKGxvbkxhdFBhdHRlcm4pO1xuXG4gICAgbG9uID0gcGFyc2VGbG9hdCgobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGxvbiArICcuJyArIGRlY2ltYWxMb24pO1xuICAgIGxhdCA9IHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgfSBlbHNlIGlmIChkbXNSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBtaW51dGVzTG9uLFxuICAgICAgc2Vjb25kc0xvbixcbiAgICAgIGRpcmVjdGlvbkxvbixcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChkbXNDb29yZFBhdHRlcm4pO1xuXG4gICAgaWYgKGRpcmVjdGlvbkxvbiA9PT0gJ1MnIHx8IGRpcmVjdGlvbkxvbiA9PT0gJ04nKSB7XG4gICAgICBkZWdyZWVzTG9uID0gW2RlZ3JlZXNMYXQsIChkZWdyZWVzTGF0ID0gZGVncmVlc0xvbildWzBdO1xuICAgICAgbWludXRlc0xvbiA9IFttaW51dGVzTGF0LCAobWludXRlc0xhdCA9IG1pbnV0ZXNMb24pXVswXTtcbiAgICAgIHNlY29uZHNMb24gPSBbc2Vjb25kc0xhdCwgKHNlY29uZHNMYXQgPSBzZWNvbmRzTG9uKV1bMF07XG4gICAgICBkaXJlY3Rpb25Mb24gPSBbZGlyZWN0aW9uTGF0LCAoZGlyZWN0aW9uTGF0ID0gZGlyZWN0aW9uTG9uKV1bMF07XG4gICAgfVxuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KGRlZ3JlZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICBkaXJlY3Rpb25Mb25cbiAgICApO1xuICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmICh1dG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVyblV0bSk7XG4gICAgY29uc3QgZXBzZ1V0bSA9IE51bWJlcih6b25lKSA8IDEwID8gYEVQU0c6MzI2MCR7em9uZX1gIDogYEVQU0c6MzI2JHt6b25lfWA7XG4gICAgW2xvbiwgbGF0XSA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICBbcGFyc2VGbG9hdChsb24pLCBwYXJzZUZsb2F0KGxhdCldLFxuICAgICAgZXBzZ1V0bSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcbiAgfSBlbHNlIGlmIChtdG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVybk10bSk7XG4gICAgY29uc3QgZXBzZ010bSA9XG4gICAgICBOdW1iZXIoem9uZSkgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBOdW1iZXIoem9uZSl9YDtcbiAgICBbbG9uLCBsYXRdID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgIFtwYXJzZUZsb2F0KGxvbiksIHBhcnNlRmxvYXQobGF0KV0sXG4gICAgICBlcHNnTXRtLFxuICAgICAgJ0VQU0c6NDMyNidcbiAgICApO1xuICB9IGVsc2UgaWYgKGRtZFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBkZWdyZWVzTG9uLFxuICAgICAgbWludXRlc0xvbixcbiAgICAgIHNlY29uZHNMb24sXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EbWQpO1xuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxvbiA/IG5lZ2F0aXZlTG9uIDogJycpICsgZGVncmVlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgIGRpcmVjdGlvbkxvblxuICAgICk7XG4gICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAoZGRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIGRlY2ltYWxMb24sXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EZCk7XG5cbiAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBkZWdyZWVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMb24pLFxuICAgICAgZGlyZWN0aW9uTG9uXG4gICAgKTtcbiAgICBsYXQgPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmIChiZWxsUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgICxcbiAgICAgIGRpcmVjdGlvbkxhdCxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIG1pbnV0ZXNMb24sXG4gICAgICBzZWNvbmRzTG9uLFxuICAgICAgLFxuICAgICAgZGlyZWN0aW9uTG9uLFxuICAgICAgcmFkaXVzLFxuICAgICAgY29uZlxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuQkVMTCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgTm9ydGggQW1lcmljYVxuICAgIGlmICghZGlyZWN0aW9uTG9uKSB7XG4gICAgICBkaXJlY3Rpb25Mb24gPSAnVyc7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgcmVhbCBtaW51dGVzIG9yIGRlY2ltYWxzXG4gICAgaWYgKG1pbnV0ZXNMb24gJiYgbWludXRlc0xvbi5sZW5ndGggPiAyKSB7XG4gICAgICBsb24gPSBwYXJzZUZsb2F0KFxuICAgICAgICAobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGRlZ3JlZXNMb24gKyAnLicgKyBtaW51dGVzTG9uXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgICAgZGlyZWN0aW9uTG9uXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChtaW51dGVzTGF0ICYmIG1pbnV0ZXNMYXQubGVuZ3RoID4gMikge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChcbiAgICAgICAgKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0ICsgJy4nICsgbWludXRlc0xhdFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xhdCksXG4gICAgICAgIGRpcmVjdGlvbkxhdFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobW1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssIGxvbiwgZGVjaW1hbExvbiwgbGF0LCBkZWNpbWFsTGF0XSA9IGNvb3JkU3RyLm1hdGNoKG1tUGF0dGVybik7XG5cbiAgICBpZiAoZGVjaW1hbExvbikge1xuICAgICAgbG9uID0gcGFyc2VGbG9hdChsb24gKyAnLicgKyBkZWNpbWFsTG9uKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjaW1hbExhdCkge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdDogdW5kZWZpbmVkLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBpZiAob3B0cy5mb3JjZU5BICYmICFpc1hZQ29vcmRzKSB7XG4gICAgLy8gU2V0IGEgbmVnYXRpdmUgY29vcmRpbmF0ZSBmb3IgTm9ydGggQW1lcmljYSB6b25lXG4gICAgaWYgKGxvbiA+IDAgJiYgbGF0ID4gMCkge1xuICAgICAgaWYgKGxvbiA+IGxhdCkge1xuICAgICAgICBsb24gPSAtbG9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGF0ID0gLWxhdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnNlIGNvb3JkaW5hdGUgdG8gcmVzcGVjdCBsb25MYXQgY29udmVudGlvblxuICAgIGlmIChsb24gPiBsYXQpIHtcbiAgICAgIGxvbiA9IFtsYXQsIChsYXQgPSBsb24pXVswXTtcbiAgICB9XG4gIH1cblxuICBsb25MYXQgPSBbTnVtYmVyKGxvbiksIE51bWJlcihsYXQpXSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuXG4gIC8vIFJlcHJvamVjdCB0aGUgY29vcmRpbmF0ZSBpZiBwcm9qZWN0aW9uIHBhcmFtZXRlciBoYXZlIGJlZW4gc2V0IGFuZCBjb29yZCBpcyBub3QgNDMyNlxuICBpZiAoXG4gICAgKHByb2plY3Rpb25TdHIgIT09IHVuZGVmaW5lZCAmJiBwcm9qZWN0aW9uU3RyICE9PSB0b1Byb2plY3Rpb24pIHx8XG4gICAgKGxvbkxhdFswXSA+IDE4MCB8fCBsb25MYXRbMF0gPCAtMTgwKSB8fFxuICAgIChsb25MYXRbMV0gPiA5MCB8fCBsb25MYXRbMV0gPCAtOTApXG4gICkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHByb2plY3Rpb25TdHIgPyAnRVBTRzonICsgcHJvamVjdGlvblN0ciA6IG1hcFByb2plY3Rpb247XG4gICAgY29uc3QgZGVzdCA9ICdFUFNHOicgKyB0b1Byb2plY3Rpb247XG5cbiAgICB0cnkge1xuICAgICAgbG9uTGF0ID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsIHNvdXJjZSwgZGVzdCkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWVzc2FnZTogJ1Byb2plY3Rpb24gJyArIHNvdXJjZSArICcgbm90IHN1cHBvcnRlZCcsXG4gICAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgICBjb25mOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIGlmIChNYXRoLmFicyhsb25MYXRbMF0pIDw9IDE4MCAmJiBNYXRoLmFicyhsb25MYXRbMV0pIDw9IDkwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdCxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgcmFkaXVzOiByYWRpdXMgPyBwYXJzZUludChyYWRpdXMsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IGNvbmYgPyBwYXJzZUludChjb25mLCAxMCkgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6ICdDb29yZGluYXRlIG91dCBvZiBMb25naXR1ZGUvTGF0aXR1ZGUgYm91bmRzJyxcbiAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgY29uZjogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgZGVncmVlcyBtaW51dGVzIHNlY29uZHMgdG8gZGRcbiAqIEBwYXJhbSBkZWdyZWVzIERlZ3JlZXNcbiAqIEBwYXJhbSBtaW51dGVzIE1pbnV0ZXNcbiAqIEBwYXJhbSBzZWNvbmRzIFNlY29uZHNcbiAqIEBwYXJhbSBkaXJlY3Rpb24gRGlyZWN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRETVNUb0REKFxuICBkZWdyZWVzOiBudW1iZXIsXG4gIG1pbnV0ZXM6IG51bWJlcixcbiAgc2Vjb25kczogbnVtYmVyLFxuICBkaXJlY3Rpb246IHN0cmluZ1xuKSB7XG4gIG1pbnV0ZXMgPSBtaW51dGVzIHx8IDA7XG4gIHNlY29uZHMgPSBzZWNvbmRzIHx8IDA7XG5cbiAgY29uc3QgbmVnID0gZGVncmVlcyA8IDA7XG4gIGxldCBkZCA9IE1hdGguYWJzKGRlZ3JlZXMpICsgbWludXRlcyAvIDYwICsgc2Vjb25kcyAvIDM2MDA7XG5cbiAgaWYgKG5lZyB8fCBkaXJlY3Rpb24gPT09ICdTJyB8fCBkaXJlY3Rpb24gPT09ICdXJykge1xuICAgIGRkID0gLWRkO1xuICB9IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBOIG9yIEVcbiAgcmV0dXJuIGRkO1xufVxuXG4vKipcbiAqIENvbnZlcnQgZGQgdG8gZGVncmVlcyBtaW51dGVzIHNlY29uZHNcbiAqIEBwYXJhbSBsb25MYXRERCBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGluIGRkXG4gKiBAcGFyYW0gZGVjaW1hbCBudW1iZXIgb2YgZGVjaW1hbHMgZm9yIHNlY29uZHNcbiAqIEByZXR1cm5zIGxvbmdpdHVkZSBhbmQgbGF0aXR1ZGUgaW4gZG1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RERUb0RNUyhcbiAgbG9uTGF0REQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDNcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgbG9uTGF0RE1TID0gW107XG5cbiAgbG9uTGF0REQuZm9yRWFjaChkZCA9PiB7XG4gICAgY29uc3QgZGVncmVlcyA9IGRkIDwgMCA/IE1hdGguY2VpbChkZCkgOiBNYXRoLmZsb29yKGRkKTtcbiAgICBjb25zdCBpbnQgPSBkZCA8IDAgPyAoZGVncmVlcyAtIGRkKSAqIDYwIDogKGRkIC0gZGVncmVlcykgKiA2MDtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihpbnQpO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoKGludCAtIG1pbnV0ZXMpICogNjApLnRvRml4ZWQoZGVjaW1hbCk7XG5cbiAgICBsb25MYXRETVMucHVzaChgJHtkZWdyZWVzfcKwICR7bWludXRlc30nICR7c2Vjb25kc31cImApO1xuICB9KTtcbiAgcmV0dXJuIGxvbkxhdERNUztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBvZiB0d28gdmlldyBzdGF0ZXMgYXJlIGVxdWFsLlxuICogQHBhcmFtIHN0YXRlMSBWaWV3IHN0YXRlXG4gKiBAcGFyYW0gc3RhdGUyIFZpZXcgc3RhdGVcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHZpZXcgc3RhdGVzIGFyZSBlcXVhbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlld1N0YXRlc0FyZUVxdWFsKFxuICBzdGF0ZTE6IE1hcFZpZXdTdGF0ZSxcbiAgc3RhdGUyOiBNYXBWaWV3U3RhdGVcbik6IGJvb2xlYW4ge1xuICBpZiAoc3RhdGUxID09PSB1bmRlZmluZWQgfHwgc3RhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB0b2xlcmFuY2UgPSAxIC8gMTAwMDA7XG4gIHJldHVybiAoXG4gICAgc3RhdGUxLnpvb20gPT09IHN0YXRlMi56b29tICYmXG4gICAgTWF0aC50cnVuYyhzdGF0ZTEuY2VudGVyWzBdIC8gdG9sZXJhbmNlKSA9PT1cbiAgICAgIE1hdGgudHJ1bmMoc3RhdGUyLmNlbnRlclswXSAvIHRvbGVyYW5jZSkgJiZcbiAgICBNYXRoLnRydW5jKHN0YXRlMS5jZW50ZXJbMV0gLyB0b2xlcmFuY2UpID09PVxuICAgICAgTWF0aC50cnVuYyhzdGF0ZTIuY2VudGVyWzFdIC8gdG9sZXJhbmNlKVxuICApO1xufVxuXG4vKipcbiAqIEZvcm1hdCB0aGUgc2NhbGUgdG8gYSBodW1hbiByZWFkYWJsZSB0ZXh0XG4gKiBAcGFyYW0gU2NhbGUgb2YgdGhlIG1hcFxuICogQHJldHVybnMgSHVtYW4gcmVhZGFibGUgc2NhbGUgdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2NhbGUoc2NhbGUpIHtcbiAgc2NhbGUgPSBNYXRoLnJvdW5kKHNjYWxlKTtcbiAgaWYgKHNjYWxlIDwgMTAwMDApIHtcbiAgICByZXR1cm4gc2NhbGUgKyAnJztcbiAgfVxuXG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSAvIDEwMDApO1xuICBpZiAoc2NhbGUgPCAxMDAwKSB7XG4gICAgcmV0dXJuIHNjYWxlICsgJ0snO1xuICB9XG5cbiAgc2NhbGUgPSBNYXRoLnJvdW5kKHNjYWxlIC8gMTAwMCk7XG4gIHJldHVybiBzY2FsZSArICdNJztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHJlc29sdXRpb24gZnJvbSBhIHNjYWxlIGRlbm9tXG4gKiBAcGFyYW0gc2NhbGUgU2NhbGUgZGVub21cbiAqIEBwYXJhbSBkcGkgRFBJXG4gKiBAcmV0dXJucyBSZXNvbHV0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKFxuICBzY2FsZTogbnVtYmVyLFxuICBkcGk6IG51bWJlciA9IDk2XG4pOiBudW1iZXIge1xuICBjb25zdCBpbmNoZXNQZXJNZXRlciA9IDM5LjM3MDE7XG4gIHJldHVybiBzY2FsZSAvIChpbmNoZXNQZXJNZXRlciAqIGRwaSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvbHV0aW9uIGZyb20gYSBzY2FsZSBkZW5vbVxuICogQHBhcmFtIFNjYWxlIGRlbm9tXG4gKiBAcmV0dXJucyBSZXNvbHV0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2FsZUZyb21SZXNvbHV0aW9uKFxuICByZXNvbHV0aW9uOiBudW1iZXIsXG4gIHVuaXQ6IHN0cmluZyA9ICdtJyxcbiAgZHBpOiBudW1iZXIgPSA5NlxuKTogbnVtYmVyIHtcbiAgY29uc3QgaW5jaGVzUGVyTWV0ZXIgPSAzOS4zNzAxO1xuICByZXR1cm4gcmVzb2x1dGlvbiAqIG9scHJvai5NRVRFUlNfUEVSX1VOSVRbdW5pdF0gKiBpbmNoZXNQZXJNZXRlciAqIGRwaTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIENUUkwga2V5IGlzIHB1c2hlZCBkdXJpbmcgYW4gT2wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxuICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIENUUkwga2V5IGlzIHB1c2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3RybEtleURvd24oZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pik6IGJvb2xlYW4ge1xuICBjb25zdCBvcmlnaW5hbEV2ZW50ID0gZXZlbnQub3JpZ2luYWxFdmVudDtcbiAgcmV0dXJuIChcbiAgICAhb3JpZ2luYWxFdmVudC5hbHRLZXkgJiZcbiAgICAoTUFDID8gb3JpZ2luYWxFdmVudC5tZXRhS2V5IDogb3JpZ2luYWxFdmVudC5jdHJsS2V5KSAmJlxuICAgICFvcmlnaW5hbEV2ZW50LnNoaWZ0S2V5XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZENvb3JkVG8oY29vcmQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDMpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgcmV0dXJuIFtcbiAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoY29vcmRbMF0sIGRlY2ltYWwpLFxuICAgIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChjb29yZFsxXSwgZGVjaW1hbCldIGFzIFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZENvb3JkVG9TdHJpbmcoY29vcmQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDMpOiBbc3RyaW5nLCBzdHJpbmdde1xuICAgIHJldHVybiByb3VuZENvb3JkVG8oY29vcmQsIGRlY2ltYWwpLm1hcChyID0+IHIudG9TdHJpbmcoKSkgYXMgW3N0cmluZywgc3RyaW5nXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIGNvbnZlcnRlZCBjb29yZGluYXRlcy5cbiAqIENvbnZlcnNpb24gaXMgZG9uZSBmb3IgZXZlcnkgY29uZmlndXJlZCBwcm9qZWN0aW9uc1xuICogYW5kIGZvciB0aGUgY3VycmVudCBVVE0gem9uZSBhbmQgTVRNIHpvbmUuXG4gKiBAcGFyYW0gbG9uTGF0IFtudW1iZXIsIG51bWJlcl0gYXJyYXkgb2YgdGhlIGNvb3JkaW5hdGUgdG8gdHJhbnNmb3JtLlxuICogQHBhcmFtIHByb2plY3Rpb25zICBQcm9qZWN0aW9uW10gQXJyYXkgb2YgZGVzdGluYXRpb24gcHJvamVjdGlvbi5cbiAqIEBwYXJhbSByZXZlcnNlQ29vcmRzIFRvIHJldmVyc2UgY29vcmRzIGZyb20gbGF0TG9uIHRvIGxvbkxhdCAoc2VhcmNoIG9wdGlvbilcbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgY29udmVydGVkIGNvb3JkaW5hdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9uTGF0Q29udmVyc2lvbihcbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdLFxuICBwcm9qZWN0aW9uczogUHJvamVjdGlvbltdXG4pOiB7XG4gIGNvZGU6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgY29vcmQ6IFtudW1iZXIsIG51bWJlcl07XG4gIGlnbzJDb29yZEZvcm1hdDogc3RyaW5nO1xufVtdIHtcbiAgY29uc3QgcmF3Q29vcmQzODU3ID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCAnRVBTRzozODU3JykgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29uc3QgY29udmVydGVkTG9uTGF0ID0gW1xuICAgIHtcbiAgICAgIGNvZGU6ICdFUFNHOjM4NTcnLFxuICAgICAgYWxpYXM6ICdXZWIgTWVyY2F0b3InLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkMzg1NyxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7cm91bmRDb29yZFRvKHJhd0Nvb3JkMzg1Nykuam9pbignLCAnKX0gOyAzODU3YFxuICAgIH1cbiAgXTtcblxuICAvLyBkZXRlY3QgdGhlIGN1cnJlbnQgdXRtIHpvbmUuXG4gIGNvbnN0IHV0bVpvbmUgPSB1dG1ab25lRnJvbUxvbkxhdChsb25MYXQpO1xuICBjb25zdCBlcHNnVXRtID0gdXRtWm9uZSA8IDEwID8gYEVQU0c6MzI2MCR7dXRtWm9uZX1gIDogYEVQU0c6MzI2JHt1dG1ab25lfWA7XG4gIGNvbnN0IHV0bU5hbWUgPSBgVVRNLSR7dXRtWm9uZX1gO1xuICBjb25zdCByYXdDb29yZFV0bSA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgZXBzZ1V0bSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgIGNvZGU6IGVwc2dVdG0sXG4gICAgYWxpYXM6ICdVVE0nLFxuICAgIGNvb3JkOiByYXdDb29yZFV0bSxcbiAgICBpZ28yQ29vcmRGb3JtYXQ6IGAke3V0bU5hbWV9ICR7cm91bmRDb29yZFRvKHJhd0Nvb3JkVXRtKS5qb2luKCcsICcpfWBcbiAgfSk7XG5cbiAgLy8gZGV0ZWN0IHRoZSBjdXJyZW50IG10bSB6b25lLlxuICBjb25zdCBtdG1ab25lID0gbXRtWm9uZUZyb21Mb25MYXQobG9uTGF0KTtcbiAgaWYgKG10bVpvbmUpIHtcbiAgICBjb25zdCBlcHNnTXRtID1cbiAgICAgIG10bVpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke210bVpvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBtdG1ab25lfWA7XG4gICAgY29uc3QgbXRtTmFtZSA9IGBNVE0tJHttdG1ab25lfWA7XG4gICAgY29uc3QgcmF3Q29vcmRNdG0gPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsIGVwc2dNdG0pIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgICAgY29kZTogZXBzZ010bSxcbiAgICAgIGFsaWFzOiAnTVRNJyxcbiAgICAgIGNvb3JkOiByYXdDb29yZE10bSxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7bXRtTmFtZX0gJHtyb3VuZENvb3JkVG8ocmF3Q29vcmRNdG0pLmpvaW4oJywgJyl9YFxuICAgIH0pO1xuICB9XG5cbiAgcHJvamVjdGlvbnMuZm9yRWFjaChwcm9qZWN0aW9uID0+IHtcbiAgICBjb25zdCByYXdDb29yZCA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgcHJvamVjdGlvbi5jb2RlKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGNvbnN0IG51bWVyaWNFcHNnQ29kZSA9IHByb2plY3Rpb24uY29kZS5zcGxpdCgnOicpWzFdO1xuICAgIGNvbnZlcnRlZExvbkxhdC5wdXNoKHtcbiAgICAgIGNvZGU6IHByb2plY3Rpb24uY29kZSxcbiAgICAgIGFsaWFzOiBwcm9qZWN0aW9uLmFsaWFzIHx8IHByb2plY3Rpb24uY29kZSxcbiAgICAgIGNvb3JkOiByYXdDb29yZCxcbiAgICAgIGlnbzJDb29yZEZvcm1hdDogYCR7cm91bmRDb29yZFRvKHJhd0Nvb3JkKS5qb2luKCcsICcpfSA7ICR7bnVtZXJpY0Vwc2dDb2RlfWBcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRlZExvbkxhdDtcbn1cblxuLyoqXG4gKiBEZXRlY3QgdGhlIGN1cnJlbnQgdXRtIHpvbmUgb2YgdGhlIGxvbi9sYXQgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byBkZXRlY3QgdGhlIFVUTSB6b25lLlxuICogQHJldHVybnMgbnVtYmVyIFRoZSBVVE0gem9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV0bVpvbmVGcm9tTG9uTGF0KGxvbkxhdDogW251bWJlciwgbnVtYmVyXSkge1xuICByZXR1cm4gTWF0aC5jZWlsKChsb25MYXRbMF0gKyAxODApIC8gNik7XG59XG5cbi8qKlxuICogRGV0ZWN0IHRoZSBjdXJyZW50IG10bSB6b25lIG9mIHRoZSBsb24vbGF0IGNvb3JkaW5hdGUuXG4gKiBAcGFyYW0gbG9uTGF0IFtudW1iZXIsIG51bWJlcl0gYXJyYXkgb2YgdGhlIGNvb3JkaW5hdGUgdG8gZGV0ZWN0IHRoZSBNVE0gem9uZS5cbiAqIEByZXR1cm5zIG51bWJlciBUaGUgTVRNIHpvbmUuIFVuZGVmaW5lZCBpZiBvdXRzaWRlIG9mIHRoZSBtdG0gYXBwbGljYXRpb24gem9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG10bVpvbmVGcm9tTG9uTGF0KGxvbkxhdDogW251bWJlciwgbnVtYmVyXSkge1xuICBjb25zdCBsb25nID0gbG9uTGF0WzBdO1xuICBsZXQgbXRtWm9uZTtcbiAgaWYgKGxvbmcgPCAtNTEgJiYgbG9uZyA+IC01NCkge1xuICAgIG10bVpvbmUgPSAxO1xuICB9XG4gIGlmIChsb25nIDwgLTU0ICYmIGxvbmcgPiAtNTcpIHtcbiAgICBtdG1ab25lID0gMjtcbiAgfVxuICBpZiAobG9uZyA8IC01NyAmJiBsb25nID4gLTYwKSB7XG4gICAgbXRtWm9uZSA9IDM7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjAgJiYgbG9uZyA+IC02Mykge1xuICAgIG10bVpvbmUgPSA0O1xuICB9XG4gIGlmIChsb25nIDwgLTYzICYmIGxvbmcgPiAtNjYpIHtcbiAgICBtdG1ab25lID0gNTtcbiAgfVxuICBpZiAobG9uZyA8IC02NiAmJiBsb25nID4gLTY5KSB7XG4gICAgbXRtWm9uZSA9IDY7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjkgJiYgbG9uZyA+IC03Mikge1xuICAgIG10bVpvbmUgPSA3O1xuICB9XG4gIGlmIChsb25nIDwgLTcyICYmIGxvbmcgPiAtNzUpIHtcbiAgICBtdG1ab25lID0gODtcbiAgfVxuICBpZiAobG9uZyA8IC03NSAmJiBsb25nID4gLTc4KSB7XG4gICAgbXRtWm9uZSA9IDk7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNzggJiYgbG9uZyA+IC04MSkge1xuICAgIG10bVpvbmUgPSAxMDtcbiAgfVxuICByZXR1cm4gbXRtWm9uZTtcbn1cbiJdfQ==
|
|
@@ -72,25 +72,28 @@ export class PrintComponent {
|
|
|
72
72
|
this.printService.defineNbFileToProcess(nbFileToProcess);
|
|
73
73
|
const resolution = +data.resolution;
|
|
74
74
|
let nbRequests = data.showLegend ? 2 : 1;
|
|
75
|
+
if (data.legendPosition === 'newpage') {
|
|
76
|
+
nbRequests++;
|
|
77
|
+
}
|
|
75
78
|
this.printService
|
|
76
|
-
.downloadMapImage(this.map, resolution, data.imageFormat, data.showProjection, data.showScale, data.
|
|
79
|
+
.downloadMapImage(this.map, resolution, data.imageFormat, data.showProjection, data.showScale, data.title, data.subtitle, data.comment, data.doZipFile, data.legendPosition)
|
|
77
80
|
.pipe(take(1))
|
|
78
81
|
.subscribe(() => {
|
|
79
82
|
nbRequests--;
|
|
80
|
-
if (
|
|
81
|
-
this.
|
|
83
|
+
if (data.legendPosition === 'newpage') {
|
|
84
|
+
this.printService.getLayersLegendImage(this.map, data.imageFormat, data.doZipFile, resolution).then(() => {
|
|
85
|
+
nbRequests--;
|
|
86
|
+
if (!nbRequests) {
|
|
87
|
+
this.disabled$.next(false);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
82
90
|
}
|
|
83
|
-
|
|
84
|
-
if (data.showLegend) {
|
|
85
|
-
this.printService
|
|
86
|
-
.getLayersLegendImage(this.map, data.imageFormat, data.doZipFile, +resolution)
|
|
87
|
-
.then(() => {
|
|
88
|
-
nbRequests--;
|
|
91
|
+
else {
|
|
89
92
|
if (!nbRequests) {
|
|
90
93
|
this.disabled$.next(false);
|
|
91
94
|
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -120,4 +123,4 @@ PrintComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintCompone
|
|
|
120
123
|
}], resolution: [{
|
|
121
124
|
type: Input
|
|
122
125
|
}] }); })();
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQvcHJpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQvcHJpbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFvQnRDLE1BQU0sT0FBTyxjQUFjO0lBa0V6QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpFdkMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBaUVHLENBQUM7SUEvRGxELElBQ0ksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBR0QsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUF3QjtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUF1QjtRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBR0QsSUFDSSxX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NEJBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQzVCO29CQUNILENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzVCO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7OzRFQXRJVSxjQUFjO2lFQUFkLGNBQWM7UUN0QjNCLHlDQVFzQztRQUFwQywyR0FBVSw0QkFBd0IsSUFBQztRQUNyQyxpQkFBaUI7O1FBUmYsK0NBQTZCLGdDQUFBLGdDQUFBLGdDQUFBLDhCQUFBLHNDQUFBLDRCQUFBOzt1RkRxQmxCLGNBQWM7Y0FKMUIsU0FBUzsyQkFDRSxXQUFXOytEQU9qQixHQUFHO2tCQUROLEtBQUs7WUFVRixZQUFZO2tCQURmLEtBQUs7WUFVRixXQUFXO2tCQURkLEtBQUs7WUFVRixXQUFXO2tCQURkLEtBQUs7WUFVRixXQUFXO2tCQURkLEtBQUs7WUFVRixjQUFjO2tCQURqQixLQUFLO1lBVUYsVUFBVTtrQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBQcmludE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuaW50ZXJmYWNlJztcblxuaW1wb3J0IHtcbiAgUHJpbnRPdXRwdXRGb3JtYXQsXG4gIFByaW50UGFwZXJGb3JtYXQsXG4gIFByaW50T3JpZW50YXRpb24sXG4gIFByaW50UmVzb2x1dGlvbixcbiAgUHJpbnRTYXZlSW1hZ2VGb3JtYXQsXG4gIFByaW50TGVnZW5kUG9zaXRpb25cbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xuXG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1wcmludCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmludC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJpbnRDb21wb25lbnQge1xuICBwdWJsaWMgZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLl9tYXA7XG4gIH1cbiAgc2V0IG1hcCh2YWx1ZTogSWdvTWFwKSB7XG4gICAgdGhpcy5fbWFwID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbWFwOiBJZ29NYXA7XG5cbiAgQElucHV0KClcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dEZvcm1hdDtcbiAgfVxuICBzZXQgb3V0cHV0Rm9ybWF0KHZhbHVlOiBQcmludE91dHB1dEZvcm1hdCkge1xuICAgIHRoaXMuX291dHB1dEZvcm1hdCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX291dHB1dEZvcm1hdDogUHJpbnRPdXRwdXRGb3JtYXQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xuICAgIHJldHVybiB0aGlzLl9wYXBlckZvcm1hdDtcbiAgfVxuICBzZXQgcGFwZXJGb3JtYXQodmFsdWU6IFByaW50UGFwZXJGb3JtYXQpIHtcbiAgICB0aGlzLl9wYXBlckZvcm1hdCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3BhcGVyRm9ybWF0OiBQcmludFBhcGVyRm9ybWF0O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBvcmllbnRhdGlvbigpOiBQcmludE9yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gIH1cbiAgc2V0IG9yaWVudGF0aW9uKHZhbHVlOiBQcmludE9yaWVudGF0aW9uKSB7XG4gICAgdGhpcy5fb3JpZW50YXRpb24gPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9vcmllbnRhdGlvbjogUHJpbnRPcmllbnRhdGlvbjtcblxuICBASW5wdXQoKVxuICBnZXQgaW1hZ2VGb3JtYXQoKTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQge1xuICAgIHJldHVybiB0aGlzLl9pbWFnZUZvcm1hdDtcbiAgfVxuICBzZXQgaW1hZ2VGb3JtYXQodmFsdWU6IFByaW50U2F2ZUltYWdlRm9ybWF0KSB7XG4gICAgdGhpcy5faW1hZ2VGb3JtYXQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9pbWFnZUZvcm1hdDogUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XG5cbiAgQElucHV0KClcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uKCk6IFByaW50TGVnZW5kUG9zaXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9sZWdlbmRQb3NpdGlvbjtcbiAgfVxuICBzZXQgbGVnZW5kUG9zaXRpb24odmFsdWU6IFByaW50TGVnZW5kUG9zaXRpb24pIHtcbiAgICB0aGlzLl9sZWdlbmRQb3NpdGlvbiA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2xlZ2VuZFBvc2l0aW9uOiBQcmludExlZ2VuZFBvc2l0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdXRpb247XG4gIH1cbiAgc2V0IHJlc29sdXRpb24odmFsdWU6IFByaW50UmVzb2x1dGlvbikge1xuICAgIHRoaXMuX3Jlc29sdXRpb24gPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9yZXNvbHV0aW9uOiBQcmludFJlc29sdXRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcmludFNlcnZpY2U6IFByaW50U2VydmljZSkge31cblxuICBoYW5kbGVGb3JtU3VibWl0KGRhdGE6IFByaW50T3B0aW9ucykge1xuXG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcblxuICAgIGlmIChkYXRhLmlzUHJpbnRTZXJ2aWNlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLnByaW50U2VydmljZVxuICAgICAgICAucHJpbnQodGhpcy5tYXAsIGRhdGEpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzYWJsZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG5iRmlsZVRvUHJvY2VzcyA9IDE7XG5cbiAgICAgIGlmIChkYXRhLnNob3dMZWdlbmQpIHtcbiAgICAgICAgbmJGaWxlVG9Qcm9jZXNzKys7XG4gICAgICB9XG4gICAgICBpZiAoZGF0YS5pbWFnZUZvcm1hdC50b0xvd2VyQ2FzZSgpID09PSAndGlmZicpIHtcbiAgICAgICAgbmJGaWxlVG9Qcm9jZXNzKys7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJpbnRTZXJ2aWNlLmRlZmluZU5iRmlsZVRvUHJvY2VzcyhuYkZpbGVUb1Byb2Nlc3MpO1xuXG4gICAgICBjb25zdCByZXNvbHV0aW9uID0gK2RhdGEucmVzb2x1dGlvbjtcblxuICAgICAgbGV0IG5iUmVxdWVzdHMgPSBkYXRhLnNob3dMZWdlbmQgPyAyIDogMTtcblxuICAgICAgaWYgKGRhdGEubGVnZW5kUG9zaXRpb24gPT09ICduZXdwYWdlJykge1xuICAgICAgICBuYlJlcXVlc3RzKys7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJpbnRTZXJ2aWNlXG4gICAgICAgIC5kb3dubG9hZE1hcEltYWdlKFxuICAgICAgICAgIHRoaXMubWFwLFxuICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgZGF0YS5pbWFnZUZvcm1hdCxcbiAgICAgICAgICBkYXRhLnNob3dQcm9qZWN0aW9uLFxuICAgICAgICAgIGRhdGEuc2hvd1NjYWxlLFxuICAgICAgICAgIGRhdGEudGl0bGUsXG4gICAgICAgICAgZGF0YS5zdWJ0aXRsZSxcbiAgICAgICAgICBkYXRhLmNvbW1lbnQsXG4gICAgICAgICAgZGF0YS5kb1ppcEZpbGUsXG4gICAgICAgICAgZGF0YS5sZWdlbmRQb3NpdGlvblxuICAgICAgICApXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIG5iUmVxdWVzdHMtLTtcbiAgICAgICAgICBpZihkYXRhLmxlZ2VuZFBvc2l0aW9uID09PSAnbmV3cGFnZScpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbnRTZXJ2aWNlLmdldExheWVyc0xlZ2VuZEltYWdlKFxuICAgICAgICAgICAgICB0aGlzLm1hcCxcbiAgICAgICAgICAgICAgZGF0YS5pbWFnZUZvcm1hdCxcbiAgICAgICAgICAgICAgZGF0YS5kb1ppcEZpbGUsXG4gICAgICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgICAgICkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIG5iUmVxdWVzdHMtLTtcbiAgICAgICAgICAgICAgaWYgKCFuYlJlcXVlc3RzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIW5iUmVxdWVzdHMpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpZ28tcHJpbnQtZm9ybVxuICBbb3V0cHV0Rm9ybWF0XT1cIm91dHB1dEZvcm1hdFwiXG4gIFtwYXBlckZvcm1hdF09XCJwYXBlckZvcm1hdFwiXG4gIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gIFtpbWFnZUZvcm1hdF09XCJpbWFnZUZvcm1hdFwiXG4gIFtyZXNvbHV0aW9uXT1cInJlc29sdXRpb25cIlxuICBbbGVnZW5kUG9zaXRpb25dPVwibGVnZW5kUG9zaXRpb25cIlxuICBbZGlzYWJsZWQkXT1cImRpc2FibGVkJFwiXG4gIChzdWJtaXQpPVwiaGFuZGxlRm9ybVN1Ym1pdCgkZXZlbnQpXCI+XG48L2lnby1wcmludC1mb3JtPlxuIl19
|