@igo2/integration 1.14.2 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/about/about-tool/about-tool.component.mjs +2 -2
- package/esm2020/lib/about/about.module.mjs +1 -1
- package/esm2020/lib/analytics/analytics-listener.service.mjs +59 -4
- package/esm2020/lib/analytics/analytics.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog.state.mjs +1 -1
- package/esm2020/lib/context/context-editor-tool/context-editor-tool.component.mjs +2 -2
- package/esm2020/lib/context/context-manager-tool/context-manager-tool.component.mjs +2 -2
- package/esm2020/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +2 -2
- package/esm2020/lib/context/context-share-tool/context-share-tool.component.mjs +2 -2
- package/esm2020/lib/context/context.module.mjs +1 -1
- package/esm2020/lib/context/context.state.mjs +1 -1
- package/esm2020/lib/directions/directions-tool/directions-tool.component.mjs +3 -6
- package/esm2020/lib/directions/directions.module.mjs +1 -1
- package/esm2020/lib/directions/directions.state.mjs +1 -1
- package/esm2020/lib/draw/draw.module.mjs +1 -1
- package/esm2020/lib/draw/draw.state.mjs +1 -2
- package/esm2020/lib/draw/drawing-tool/drawing-tool.component.mjs +2 -2
- package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.mjs +1 -1
- package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +2 -2
- package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.mjs +1 -1
- package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +2 -2
- package/esm2020/lib/filter/filter.module.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +2 -2
- package/esm2020/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +4 -4
- package/esm2020/lib/filter/time-filter-tool/time-filter-tool.component.mjs +2 -2
- package/esm2020/lib/import-export/import-export-tool/import-export-tool.component.mjs +26 -22
- package/esm2020/lib/import-export/import-export.module.mjs +8 -5
- package/esm2020/lib/import-export/import-export.state.mjs +1 -1
- package/esm2020/lib/integration.module.mjs +1 -1
- package/esm2020/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +64 -65
- package/esm2020/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +2 -2
- package/esm2020/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +2 -2
- package/esm2020/lib/map/layer-list-tool.state.mjs +1 -1
- package/esm2020/lib/map/map-details-tool/map-details-tool.component.mjs +2 -2
- package/esm2020/lib/map/map-legend/map-legend-tool.component.mjs +2 -2
- package/esm2020/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +5 -8
- package/esm2020/lib/map/map-proximity.state.mjs +9 -5
- package/esm2020/lib/map/map-tool/map-tool.component.mjs +2 -2
- package/esm2020/lib/map/map-tools/map-tools.component.mjs +78 -61
- package/esm2020/lib/map/map.module.mjs +5 -2
- package/esm2020/lib/map/map.state.mjs +1 -1
- package/esm2020/lib/measure/measure.module.mjs +1 -1
- package/esm2020/lib/measure/measure.state.mjs +1 -1
- package/esm2020/lib/measure/measurer-tool/measurer-tool.component.mjs +2 -2
- package/esm2020/lib/measure/measurer-tool/measurer-tool.module.mjs +1 -1
- package/esm2020/lib/print/print-tool/print-tool.component.mjs +2 -2
- package/esm2020/lib/print/print.module.mjs +1 -1
- package/esm2020/lib/search/query.state.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-bar-binding.directive.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2020/lib/search/search-results-tool/search-results-tool.component.mjs +20 -20
- package/esm2020/lib/search/search-results-tool/search-results-tool.module.mjs +1 -1
- package/esm2020/lib/search/search.module.mjs +1 -1
- package/esm2020/lib/search/search.state.mjs +29 -4
- package/esm2020/lib/storage/storage.module.mjs +1 -1
- package/esm2020/lib/storage/storage.state.mjs +1 -1
- package/esm2020/lib/tool/tool.module.mjs +1 -1
- package/esm2020/lib/tool/tool.state.mjs +1 -1
- package/esm2020/lib/workspace/shared/edition-actions.service.mjs +1 -1
- package/esm2020/lib/workspace/shared/feature-actions.service.mjs +1 -1
- package/esm2020/lib/workspace/shared/index.mjs +1 -1
- package/esm2020/lib/workspace/shared/wfs-actions.service.mjs +1 -1
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2020/lib/workspace/workspace-button/workspace-button.component.mjs +2 -2
- package/esm2020/lib/workspace/workspace.module.mjs +1 -1
- package/esm2020/lib/workspace/workspace.state.mjs +1 -1
- package/fesm2015/igo2-integration.mjs +318 -216
- package/fesm2015/igo2-integration.mjs.map +1 -1
- package/fesm2020/igo2-integration.mjs +314 -216
- package/fesm2020/igo2-integration.mjs.map +1 -1
- package/lib/analytics/analytics-listener.service.d.ts +7 -1
- package/lib/draw/draw.state.d.ts +0 -1
- package/lib/import-export/import-export-tool/import-export-tool.component.d.ts +3 -1
- package/lib/import-export/import-export.module.d.ts +1 -1
- package/lib/map/map-proximity.state.d.ts +4 -1
- package/lib/map/map-tools/map-tools.component.d.ts +1 -0
- package/lib/map/map.module.d.ts +1 -1
- package/lib/search/search-results-tool/search-results-tool.component.d.ts +4 -5
- package/lib/search/search.state.d.ts +8 -2
- package/ngcc.config.js +3 -3
- package/package.json +8 -5
|
@@ -53,10 +53,7 @@ let DirectionsToolComponent = class DirectionsToolComponent {
|
|
|
53
53
|
ngOnInit() {
|
|
54
54
|
const warningShown = this.storageService.get('direction.warning.shown');
|
|
55
55
|
if (!warningShown) {
|
|
56
|
-
|
|
57
|
-
const title = translate.instant('igo.integration.directions.warning.title');
|
|
58
|
-
const msg = translate.instant('igo.integration.directions.warning.message');
|
|
59
|
-
this.messageService.info(msg, title, { timeOut: 20000 });
|
|
56
|
+
this.messageService.info('igo.integration.directions.warning.message', 'igo.integration.directions.warning.title', { timeOut: 20000 });
|
|
60
57
|
this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);
|
|
61
58
|
}
|
|
62
59
|
this.contextState.context$.subscribe(c => {
|
|
@@ -82,6 +79,6 @@ DirectionsToolComponent = __decorate([
|
|
|
82
79
|
export { DirectionsToolComponent };
|
|
83
80
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsToolComponent, [{
|
|
84
81
|
type: Component,
|
|
85
|
-
args: [{ selector: 'igo-directions-tool', template: "<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounceTime]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \n</igo-directions>" }]
|
|
82
|
+
args: [{ selector: 'igo-directions-tool', template: "<igo-directions\r\n [contextUri]=\"currentContextUri\"\r\n [debounceTime]=\"debounceTime\"\r\n [stopsStore]=\"stopsStore\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \r\n</igo-directions>" }]
|
|
86
83
|
}], function () { return [{ type: i1.DirectionState }, { type: i2.MapState }, { type: i3.LanguageService }, { type: i3.MessageService }, { type: i3.StorageService }, { type: i4.ContextState }, { type: i5.AuthService }]; }, null); })();
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLXRvb2wvZGlyZWN0aW9ucy10b29sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLXRvb2wvZGlyZWN0aW9ucy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFtQyxZQUFZLEVBQWtCLE1BQU0sWUFBWSxDQUFDOzs7Ozs7OztJQWlCOUUsdUJBQXVCLFNBQXZCLHVCQUF1QjtJQTBDbEMsWUFDVSxjQUE4QixFQUM5QixRQUFrQixFQUNsQixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixjQUE4QixFQUMvQixZQUEwQixFQUN6QixXQUF3QjtRQU54QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUMvQixDQUFDO0lBL0NKOzs7T0FHRztJQUNILElBQUksVUFBVSxLQUFpQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUV2RSxJQUFJLFlBQVksS0FBYSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUV2RTs7O09BR0c7SUFDRixJQUFJLGlCQUFpQixLQUF3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBRTdGOzs7T0FHRztJQUNILElBQUksa0JBQWtCLEtBQXlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFFL0Y7OztPQUdHO0lBQ0YsSUFBSSxnQkFBZ0IsS0FBdUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUUxRjs7O09BR0c7SUFDRixJQUFJLGtCQUFrQixLQUFvQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBRzNGOzs7T0FHRztJQUNILElBQUksR0FBRyxLQUFhLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBWS9DLFFBQVE7UUFDTixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBWSxDQUFDO1FBQ25GLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RCLDRDQUE0QyxFQUM1QywwQ0FBMEMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEY7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGLENBQUE7OEZBbkVZLHVCQUF1QjswRUFBdkIsdUJBQXVCO1FDckJwQyxvQ0FRaUI7O1FBUGIsa0RBQWdDLGtDQUFBLDhCQUFBLDRDQUFBLDBDQUFBLDhDQUFBLDhDQUFBOztBRG9CdkIsdUJBQXVCO0lBVG5DLGFBQWEsQ0FBQztRQUNiLElBQUksRUFBRSxZQUFZO1FBQ2xCLEtBQUssRUFBRSxrQ0FBa0M7UUFDekMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQztHQUtXLHVCQUF1QixDQW1FbkM7U0FuRVksdUJBQXVCO3VGQUF2Qix1QkFBdUI7Y0FKbkMsU0FBUzsyQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFN0b3JhZ2VTY29wZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgSWdvTWFwLCBSb3V0ZXNGZWF0dXJlU3RvcmUsIFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlLCBTdGVwRmVhdHVyZVN0b3JlIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb250ZXh0U3RhdGUgfSBmcm9tICcuLi8uLi9jb250ZXh0L2NvbnRleHQuc3RhdGUnO1xyXG5cclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uU3RhdGUgfSBmcm9tICcuLi9kaXJlY3Rpb25zLnN0YXRlJztcclxuXHJcbkBUb29sQ29tcG9uZW50KHtcclxuICBuYW1lOiAnZGlyZWN0aW9ucycsXHJcbiAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24udG9vbHMuZGlyZWN0aW9ucycsXHJcbiAgaWNvbjogJ2RpcmVjdGlvbnMnXHJcbn0pXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtdG9vbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtdG9vbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNUb29sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRDb250ZXh0VXJpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogc3RvcHNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgc3RvcHNTdG9yZSgpOiBTdG9wc1N0b3JlIHsgcmV0dXJuIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZTsgfVxyXG5cclxuICBnZXQgZGVib3VuY2VUaW1lKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmRpcmVjdGlvblN0YXRlLmRlYm91bmNlVGltZTsgfVxyXG5cclxuICAvKipcclxuICAgKiBzdG9wc1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gICBnZXQgc3RvcHNGZWF0dXJlU3RvcmUoKTogU3RvcHNGZWF0dXJlU3RvcmUgeyByZXR1cm4gdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc0ZlYXR1cmVTdG9yZTsgfVxyXG5cclxuICAvKipcclxuICAgKiByb3V0ZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgcm91dGVzRmVhdHVyZVN0b3JlKCk6IFJvdXRlc0ZlYXR1cmVTdG9yZSB7IHJldHVybiB0aGlzLmRpcmVjdGlvblN0YXRlLnJvdXRlc0ZlYXR1cmVTdG9yZTsgfVxyXG5cclxuICAvKipcclxuICAgKiBzdGVwIHN0b3JlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgIGdldCBzdGVwRmVhdHVyZVN0b3JlKCk6IFN0ZXBGZWF0dXJlU3RvcmUgeyByZXR1cm4gdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdGVwRmVhdHVyZVN0b3JlOyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHN0ZXAgc3RvcmVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICAgZ2V0IHpvb21Ub0FjdGl2ZVJvdXRlJCgpOiBTdWJqZWN0PHZvaWQ+IHsgcmV0dXJuIHRoaXMuZGlyZWN0aW9uU3RhdGUuem9vbVRvQWN0aXZlUm91dGUkOyB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBNYXAgdG8gbWVhc3VyZSBvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBtYXAoKTogSWdvTWFwIHsgcmV0dXJuIHRoaXMubWFwU3RhdGUubWFwOyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25TdGF0ZTogRGlyZWN0aW9uU3RhdGUsXHJcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvbnRleHRTdGF0ZTogQ29udGV4dFN0YXRlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgd2FybmluZ1Nob3duID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2RpcmVjdGlvbi53YXJuaW5nLnNob3duJykgYXMgYm9vbGVhbjtcclxuICAgIGlmICghd2FybmluZ1Nob3duKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhcclxuICAgICAgICAnaWdvLmludGVncmF0aW9uLmRpcmVjdGlvbnMud2FybmluZy5tZXNzYWdlJyxcclxuICAgICAgICAnaWdvLmludGVncmF0aW9uLmRpcmVjdGlvbnMud2FybmluZy50aXRsZScsIHsgdGltZU91dDogMjAwMDAgfSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdkaXJlY3Rpb24ud2FybmluZy5zaG93bicsIHRydWUsIFN0b3JhZ2VTY29wZS5TRVNTSU9OKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dFN0YXRlLmNvbnRleHQkLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0VXJpID0gYy51cmk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlnby1kaXJlY3Rpb25zXHJcbiAgICBbY29udGV4dFVyaV09XCJjdXJyZW50Q29udGV4dFVyaVwiXHJcbiAgICBbZGVib3VuY2VUaW1lXT1cImRlYm91bmNlVGltZVwiXHJcbiAgICBbc3RvcHNTdG9yZV09XCJzdG9wc1N0b3JlXCJcclxuICAgIFtzdG9wc0ZlYXR1cmVTdG9yZV09XCJzdG9wc0ZlYXR1cmVTdG9yZVwiXHJcbiAgICBbc3RlcEZlYXR1cmVTdG9yZV09XCJzdGVwRmVhdHVyZVN0b3JlXCJcclxuICAgIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCJcclxuICAgIFt6b29tVG9BY3RpdmVSb3V0ZSRdPVwiem9vbVRvQWN0aXZlUm91dGUkXCI+ICBcclxuPC9pZ28tZGlyZWN0aW9ucz4iXX0=
|
|
@@ -23,4 +23,4 @@ IgoAppDirectionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [I
|
|
|
23
23
|
}]
|
|
24
24
|
}], null, null); })();
|
|
25
25
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppDirectionsModule, { declarations: [DirectionsToolComponent], imports: [IgoDirectionsModule], exports: [DirectionsToolComponent] }); })();
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixzQkFBc0IsRUFDdkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQVF0RixNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7NEZBTlUsc0JBQXNCO3dFQUF0QixzQkFBc0I7NEVBTHZCLG1CQUFtQjt1RkFLbEIsc0JBQXNCO2NBTmxDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDOUIsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQzs7d0ZBQ1ksc0JBQXNCLG1CQUpsQix1QkFBdUIsYUFENUIsbUJBQW1CLGFBRW5CLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgTmdNb2R1bGUsXHJcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJZ29EaXJlY3Rpb25zTW9kdWxlIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc1Rvb2xDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtdG9vbC9kaXJlY3Rpb25zLXRvb2wuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0lnb0RpcmVjdGlvbnNNb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW0RpcmVjdGlvbnNUb29sQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbRGlyZWN0aW9uc1Rvb2xDb21wb25lbnRdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvQXBwRGlyZWN0aW9uc01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29BcHBEaXJlY3Rpb25zTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvQXBwRGlyZWN0aW9uc01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -61,4 +61,4 @@ DirectionState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Direction
|
|
|
61
61
|
providedIn: 'root'
|
|
62
62
|
}]
|
|
63
63
|
}], function () { return [{ type: i1.MapState }]; }, null); })();
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFtQixVQUFVLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRy9COztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUE2QnpCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEzQi9CLHVCQUFrQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpEOztXQUVHO1FBQ0ksZUFBVSxHQUFlLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5EOztXQUVHO1FBQ0ksc0JBQWlCLEdBQXNCLElBQUksaUJBQWlCLENBQUMsRUFBRSxFQUFFO1lBQ3RFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDSSx1QkFBa0IsR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7WUFDekUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztTQUN2QixDQUFDLENBQUM7UUFFSSxxQkFBZ0IsR0FBcUIsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7WUFDbkUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztTQUN2QixDQUFDLENBQUM7UUFFSSxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUloQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtZQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO29CQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQTJCLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxDQUFDO2lCQUNwRjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtvQkFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUEyQixDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQztpQkFDckY7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7YUFDbEY7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLEVBQUU7Z0JBQ2hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDbkU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzRFQXJEVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBbnlMYXllck9wdGlvbnMsIFN0b3BzU3RvcmUsIFN0b3BzRmVhdHVyZVN0b3JlLCBSb3V0ZXNGZWF0dXJlU3RvcmUsIFN0ZXBGZWF0dXJlU3RvcmUgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vbWFwL21hcC5zdGF0ZSc7XHJcblxyXG4vKipcclxuICogU2VydmljZSB0aGF0IGhvbGRzIHRoZSBzdGF0ZSBvZiB0aGUgZGlyZWN0aW9uIG1vZHVsZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uU3RhdGUge1xyXG5cclxuICBwdWJsaWMgem9vbVRvQWN0aXZlUm91dGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgdGhhdCBob2xkcyB0aGUgc3RvcFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlID0gbmV3IFN0b3BzU3RvcmUoW10pO1xyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSB0aGF0IGhvbGRzIHRoZSBkcml2aW5nIHN0b3BzIGFzIGZlYXR1cmVcclxuICAgKi9cclxuICBwdWJsaWMgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlID0gbmV3IFN0b3BzRmVhdHVyZVN0b3JlKFtdLCB7XHJcbiAgICBtYXA6IHRoaXMubWFwU3RhdGUubWFwXHJcbiAgfSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIHRoYXQgaG9sZHMgdGhlIGRyaXZpbmcgcm91dGUgYXMgZmVhdHVyZVxyXG4gICAqL1xyXG4gIHB1YmxpYyByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZSA9IG5ldyBSb3V0ZXNGZWF0dXJlU3RvcmUoW10sIHtcclxuICAgIG1hcDogdGhpcy5tYXBTdGF0ZS5tYXBcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmUgPSBuZXcgU3RlcEZlYXR1cmVTdG9yZShbXSwge1xyXG4gICAgbWFwOiB0aGlzLm1hcFN0YXRlLm1hcFxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgZGVib3VuY2VUaW1lOiBudW1iZXIgPSAyMDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwU3RhdGU6IE1hcFN0YXRlKSB7XHJcblxyXG4gICAgdGhpcy5tYXBTdGF0ZS5tYXAub2wub25jZSgncmVuZGVyY29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZW1wdHkkLnN1YnNjcmliZSgoZW1wdHkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllcj8ub3B0aW9ucykge1xyXG4gICAgICAgICAgKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIub3B0aW9ucyBhcyBBbnlMYXllck9wdGlvbnMpLnNob3dJbkxheWVyTGlzdCA9ICFlbXB0eTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbXB0eSQuc3Vic2NyaWJlKChlbXB0eSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllcj8ub3B0aW9ucykge1xyXG4gICAgICAgICAgKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm9wdGlvbnMgYXMgQW55TGF5ZXJPcHRpb25zKS5zaG93SW5MYXllckxpc3QgPSAhZW1wdHk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWFwU3RhdGUubWFwLmxheWVycyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLm1hcFN0YXRlLm1hcC5nZXRMYXllckJ5SWQoJ2lnby1kaXJlY3Rpb24tc3RvcHMtbGF5ZXInKSkge1xyXG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS5kZWxldGVNYW55KHRoaXMuc3RvcHNTdG9yZS5hbGwoKSk7XHJcbiAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuYWxsKCkpOyAvLyBub3QgbmVjZXNzYXJ5XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLm1hcFN0YXRlLm1hcC5nZXRMYXllckJ5SWQoJ2lnby1kaXJlY3Rpb24tcm91dGUtbGF5ZXInKSkge1xyXG4gICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmRlbGV0ZU1hbnkodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuYWxsKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -18,4 +18,4 @@ IgoAppDrawModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [IgoDraw
|
|
|
18
18
|
}]
|
|
19
19
|
}], null, null); })();
|
|
20
20
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppDrawModule, { declarations: [DrawingToolComponent], imports: [IgoDrawingToolModule], exports: [DrawingToolComponent] }); })();
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2RyYXcvZHJhdy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBUzdFLE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFOakIsb0JBQW9CO3VGQU1uQixnQkFBZ0I7Y0FQNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUMvQixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFO29CQUNQLG9CQUFvQjtpQkFDckI7YUFDRjs7d0ZBQ1ksZ0JBQWdCLG1CQUxaLG9CQUFvQixhQUR6QixvQkFBb0IsYUFHNUIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElnb0RyYXdpbmdUb29sTW9kdWxlIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgRHJhd2luZ1Rvb2xDb21wb25lbnQgfSBmcm9tICcuL2RyYXdpbmctdG9vbC9kcmF3aW5nLXRvb2wuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0lnb0RyYXdpbmdUb29sTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtEcmF3aW5nVG9vbENvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHJhd2luZ1Rvb2xDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29BcHBEcmF3TW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -8,7 +8,6 @@ import * as i1 from "../map/map.state";
|
|
|
8
8
|
export class DrawState {
|
|
9
9
|
constructor(mapState) {
|
|
10
10
|
this.mapState = mapState;
|
|
11
|
-
this.searchLayerStores = [];
|
|
12
11
|
this.stores = [];
|
|
13
12
|
this.layersID = [];
|
|
14
13
|
this.drawControls = [];
|
|
@@ -37,4 +36,4 @@ DrawState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DrawState, fac
|
|
|
37
36
|
providedIn: 'root'
|
|
38
37
|
}]
|
|
39
38
|
}], function () { return [{ type: i1.MapState }]; }, null); })();
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFlLFlBQVksRUFBZ0MsTUFBTSxXQUFXLENBQUM7OztBQUdwRjs7R0FFRztBQUlILE1BQU0sT0FBTyxTQUFTO0lBT3BCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFML0IsV0FBTSxHQUFvQyxFQUFFLENBQUM7UUFDN0MsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUE0QixFQUFFLENBQUM7UUFJaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUM7b0JBQzNDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7b0JBQ3pFLFlBQVksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO29CQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDL0M7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksQ0FBa0IsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7O2tFQXZCVSxTQUFTOytEQUFULFNBQVMsV0FBVCxTQUFTLG1CQUZSLE1BQU07dUZBRVAsU0FBUztjQUhyQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEcmF3Q29udHJvbCwgRmVhdHVyZVN0b3JlLCBGZWF0dXJlV2l0aERyYXcsIFZlY3RvckxheWVyIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi9tYXAvbWFwLnN0YXRlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIG9mIHRoZSBtZWFzdXJlIG1vZHVsZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd1N0YXRlIHtcclxuXHJcbiAgcHVibGljIHN0b3JlczogRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoRHJhdz5bXSA9IFtdO1xyXG4gIHB1YmxpYyBsYXllcnNJRDogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZHJhd0NvbnRyb2xzOiBbc3RyaW5nLCBEcmF3Q29udHJvbF1bXSA9IFtdO1xyXG4gIHB1YmxpYyBhY3RpdmVEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSkge1xyXG4gICAgdGhpcy5tYXBTdGF0ZS5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxheWVyc0lELmZvckVhY2gobGF5ZXJJZCA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1hcFN0YXRlLm1hcC5nZXRMYXllckJ5SWQobGF5ZXJJZCkpe1xyXG4gICAgICAgICAgbGV0IGRlbGV0ZWRTdG9yZSA9IHRoaXMuc3RvcmVzLmZpbmQoc3RvcmUgPT4gc3RvcmUubGF5ZXIuaWQgPT09IGxheWVySWQpO1xyXG4gICAgICAgICAgZGVsZXRlZFN0b3JlLmRlbGV0ZU1hbnkoZGVsZXRlZFN0b3JlLmFsbCgpKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzLnNwbGljZSh0aGlzLnN0b3Jlcy5pbmRleE9mKGRlbGV0ZWRTdG9yZSwwKSwgMSk7XHJcbiAgICAgICAgICB0aGlzLmxheWVyc0lELnNwbGljZSh0aGlzLmxheWVyc0lELmluZGV4T2YobGF5ZXJJZCwwKSwgMSk7XHJcbiAgICAgICAgICBsZXQgZHJhd0NvbnRyb2xJbmRleCA9IHRoaXMuZHJhd0NvbnRyb2xzLmZpbmRJbmRleChkYyA9PiBkY1swXSA9PT0gbGF5ZXJJZCk7XHJcbiAgICAgICAgICB0aGlzLmRyYXdDb250cm9scy5zcGxpY2UoZHJhd0NvbnRyb2xJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgZm9yIChsZXQgc3RvcmUgb2YgdGhpcy5zdG9yZXMpe1xyXG4gICAgICBzdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZVdpdGhEcmF3PihbXSwge21hcDogdGhpcy5tYXBTdGF0ZS5tYXB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -67,6 +67,6 @@ DrawingToolComponent = __decorate([
|
|
|
67
67
|
export { DrawingToolComponent };
|
|
68
68
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawingToolComponent, [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw\n [stores]=\"stores\"\n [map]=\"map\"\n (layersIDEvent)=\"addLayersID($event)\"\n [activeDrawingLayer]=\"activeDrawingLayer\"\n [drawControls]=\"drawControls\"\n (drawControlsEvent)=\"addDrawControls($event)\"\n (activeLayerChange)=\"activeDrawingLayer = $event\">\n</igo-draw>\n" }]
|
|
70
|
+
args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw\r\n [stores]=\"stores\"\r\n [map]=\"map\"\r\n (layersIDEvent)=\"addLayersID($event)\"\r\n [activeDrawingLayer]=\"activeDrawingLayer\"\r\n [drawControls]=\"drawControls\"\r\n (drawControlsEvent)=\"addDrawControls($event)\"\r\n (activeLayerChange)=\"activeDrawingLayer = $event\">\r\n</igo-draw>\r\n" }]
|
|
71
71
|
}], function () { return [{ type: i1.DrawState }, { type: i2.MapState }]; }, null); })();
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUs3Qzs7R0FFRztJQVdVLG9CQUFvQixTQUFwQixvQkFBb0I7SUEyQy9CLFlBQW9CLFNBQW9CLEVBQVUsUUFBa0I7UUFBaEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBMUN4RTs7O09BR0c7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxFQUEwQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxLQUFrQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQWM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUEwQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBR0YsQ0FBQTt3RkE1Q1ksb0JBQW9CO3VFQUFwQixvQkFBb0I7UUN2QmpDLG1DQU9zRDtRQUpsRCx5SEFBaUIsdUJBQW1CLElBQUMsb0hBR2hCLDJCQUF1QixJQUhQLHVKQUFBO1FBS3pDLGlCQUFXOztRQVBQLG1DQUFpQixnQkFBQSw4Q0FBQSxrQ0FBQTs7QURzQlIsb0JBQW9CO0lBVmhDLGFBQWEsQ0FBQztRQUNiLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLDRCQUE0QjtRQUNuQyxJQUFJLEVBQUUsTUFBTTtLQUNiLENBQUM7R0FNVyxvQkFBb0IsQ0E0Q2hDO1NBNUNZLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxuICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSwgSWdvTWFwLCBEcmF3Q29udHJvbCwgRmVhdHVyZVdpdGhEcmF3LCBWZWN0b3JMYXllcn0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgRHJhd1N0YXRlIH0gZnJvbSAnLi4vZHJhdy5zdGF0ZSc7XHJcblxyXG4vKipcclxuICogVG9vbCB0byBtZWFzdXJlIGxlbmd0aHMgYW5kIGFyZWFzXHJcbiAqL1xyXG5AVG9vbENvbXBvbmVudCh7XHJcbiAgbmFtZTogJ2RyYXcnLFxyXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLmRyYXcnLFxyXG4gIGljb246ICdkcmF3J1xyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kcmF3aW5nLXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3aW5nLXRvb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3aW5nVG9vbENvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogTWFwIHRvIG1lYXN1cmUgb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgc3RvcmVzKCk6IEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aERyYXc+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLnN0b3JlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcCB0byBtZWFzdXJlIG9uXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwU3RhdGUubWFwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxheWVyc0lEKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLmRyYXdTdGF0ZS5sYXllcnNJRDtcclxuICB9XHJcblxyXG4gIGdldCBkcmF3Q29udHJvbHMoKTogW3N0cmluZywgRHJhd0NvbnRyb2xdW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLmRyYXdDb250cm9scztcclxuICB9XHJcbiAgc2V0IGRyYXdDb250cm9scyhkYzpbc3RyaW5nLCBEcmF3Q29udHJvbF1bXSl7XHJcbiAgICB0aGlzLmRyYXdTdGF0ZS5kcmF3Q29udHJvbHMgPSBkYztcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVEcmF3aW5nTGF5ZXIoKTogVmVjdG9yTGF5ZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLmFjdGl2ZURyYXdpbmdMYXllcjtcclxuICB9XHJcbiAgc2V0IGFjdGl2ZURyYXdpbmdMYXllcih2YWx1ZTogVmVjdG9yTGF5ZXIpIHtcclxuICAgIHRoaXMuZHJhd1N0YXRlLmFjdGl2ZURyYXdpbmdMYXllciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZExheWVyc0lEKGxheWVySUQ6c3RyaW5nKXtcclxuICAgIHRoaXMubGF5ZXJzSUQucHVzaChsYXllcklEKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGREcmF3Q29udHJvbHMoZGM6W3N0cmluZywgRHJhd0NvbnRyb2xdW10pe1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbHMgPSBkYztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZHJhd1N0YXRlOiBEcmF3U3RhdGUsIHByaXZhdGUgbWFwU3RhdGU6IE1hcFN0YXRlKSB7fVxyXG59XHJcbiIsIjxpZ28tZHJhd1xyXG4gICAgW3N0b3Jlc109XCJzdG9yZXNcIlxyXG4gICAgW21hcF09XCJtYXBcIlxyXG4gICAgKGxheWVyc0lERXZlbnQpPVwiYWRkTGF5ZXJzSUQoJGV2ZW50KVwiXHJcbiAgICBbYWN0aXZlRHJhd2luZ0xheWVyXT1cImFjdGl2ZURyYXdpbmdMYXllclwiXHJcbiAgICBbZHJhd0NvbnRyb2xzXT1cImRyYXdDb250cm9sc1wiXHJcbiAgICAoZHJhd0NvbnRyb2xzRXZlbnQpPVwiYWRkRHJhd0NvbnRyb2xzKCRldmVudClcIlxyXG4gICAgKGFjdGl2ZUxheWVyQ2hhbmdlKT1cImFjdGl2ZURyYXdpbmdMYXllciA9ICRldmVudFwiPlxyXG48L2lnby1kcmF3PlxyXG4iXX0=
|
|
@@ -7,4 +7,4 @@ export function toolSlideInOut(speed = '300ms', type = 'ease-in-out') {
|
|
|
7
7
|
transition('void => enter', animate(speed + ' ' + type))
|
|
8
8
|
]);
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLW9nYy1maWx0ZXItdG9vbC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2ZpbHRlci9hY3RpdmUtb2djLWZpbHRlci10b29sL2FjdGl2ZS1vZ2MtZmlsdGVyLXRvb2wuYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUVSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBSyxHQUFHLE9BQU8sRUFDZixJQUFJLEdBQUcsYUFBYTtJQUVwQixPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUMvQixLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQyxDQUNIO1FBQ0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN6RCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICB0cmlnZ2VyLFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgYW5pbWF0ZSxcclxuICBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGFcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b29sU2xpZGVJbk91dChcclxuICBzcGVlZCA9ICczMDBtcycsXHJcbiAgdHlwZSA9ICdlYXNlLWluLW91dCdcclxuKTogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIHtcclxuICByZXR1cm4gdHJpZ2dlcigndG9vbFNsaWRlSW5PdXQnLCBbXHJcbiAgICBzdGF0ZShcclxuICAgICAgJ2VudGVyJyxcclxuICAgICAgc3R5bGUoe1xyXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknXHJcbiAgICAgIH0pXHJcbiAgICApLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiBlbnRlcicsIGFuaW1hdGUoc3BlZWQgKyAnICcgKyB0eXBlKSlcclxuICBdKTtcclxufVxyXG4iXX0=
|
|
@@ -39,6 +39,6 @@ ActiveOgcFilterToolComponent = __decorate([
|
|
|
39
39
|
export { ActiveOgcFilterToolComponent };
|
|
40
40
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActiveOgcFilterToolComponent, [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'igo-active-ogc-filter-tool', animations: [toolSlideInOut()], template: "<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\">\n</igo-ogc-filterable-item>\n\n\n" }]
|
|
42
|
+
args: [{ selector: 'igo-active-ogc-filter-tool', animations: [toolSlideInOut()], template: "<igo-ogc-filterable-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-ogc-filterable-item>\r\n\r\n\r\n" }]
|
|
43
43
|
}], function () { return [{ type: i1.MapState }]; }, null); })();
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLW9nYy1maWx0ZXItdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2ZpbHRlci9hY3RpdmUtb2djLWZpbHRlci10b29sL2FjdGl2ZS1vZ2MtZmlsdGVyLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvYWN0aXZlLW9nYy1maWx0ZXItdG9vbC9hY3RpdmUtb2djLWZpbHRlci10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7O0lBYXZELDRCQUE0QixTQUE1Qiw0QkFBNEI7SUFpQnZDLFlBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGOUIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQUVlLENBQUM7SUFmekMsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDL0IsT0FBTyxHQUFHLENBQUM7YUFDWjtTQUNGO1FBQ0QsT0FBTztJQUNULENBQUM7Q0FLRixDQUFBO3dHQWxCWSw0QkFBNEI7K0VBQTVCLDRCQUE0QjtRQ25CekMsNkNBSzBCOztRQUp0Qiw2QkFBVyxvQkFBQSxpQkFBQSxnQ0FBQTs2RkRnQkQsQ0FBQyxjQUFjLEVBQUUsQ0FBQztBQUVuQiw0QkFBNEI7SUFYeEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixLQUFLLEVBQUUsaUNBQWlDO1FBQ3hDLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLFVBQVU7S0FDbkIsQ0FBQztHQU1XLDRCQUE0QixDQWtCeEM7U0FsQlksNEJBQTRCO3VGQUE1Qiw0QkFBNEI7Y0FMeEMsU0FBUzsyQkFDRSw0QkFBNEIsY0FFMUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vLi4vbWFwL21hcC5zdGF0ZSc7XHJcbmltcG9ydCB7IExheWVyLCBJZ29NYXAgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5cclxuaW1wb3J0IHsgdG9vbFNsaWRlSW5PdXQgfSBmcm9tICcuL2FjdGl2ZS1vZ2MtZmlsdGVyLXRvb2wuYW5pbWF0aW9uJztcclxuXHJcbkBUb29sQ29tcG9uZW50KHtcclxuICBuYW1lOiAnYWN0aXZlT2djRmlsdGVyJyxcclxuICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi50b29scy5vZ2NGaWx0ZXInLFxyXG4gIGljb246ICdmaWx0ZXInLFxyXG4gIHBhcmVudDogJ21hcFRvb2xzJ1xyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1hY3RpdmUtb2djLWZpbHRlci10b29sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZlLW9nYy1maWx0ZXItdG9vbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW3Rvb2xTbGlkZUluT3V0KCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVPZ2NGaWx0ZXJUb29sQ29tcG9uZW50IHtcclxuXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwU3RhdGUubWFwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxheWVyKCk6IExheWVyIHtcclxuICAgIGZvciAoY29uc3QgbGF5IG9mIHRoaXMubWFwLmxheWVycykge1xyXG4gICAgICBpZiAobGF5Lm9wdGlvbnMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGxheTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFuaW1hdGUgPSAnZW50ZXInO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFwU3RhdGU6IE1hcFN0YXRlKSB7fVxyXG59XHJcbiIsIjxpZ28tb2djLWZpbHRlcmFibGUtaXRlbVxyXG4gICAgW21hcF09XCJtYXBcIlxyXG4gICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgIFtoZWFkZXJdPVwiZmFsc2VcIlxyXG4gICAgW0B0b29sU2xpZGVJbk91dF09XCJhbmltYXRlXCI+XHJcbjwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XHJcblxyXG5cclxuIl19
|
|
@@ -7,4 +7,4 @@ export function toolSlideInOut(speed = '300ms', type = 'ease-in-out') {
|
|
|
7
7
|
transition('void => enter', animate(speed + ' ' + type))
|
|
8
8
|
]);
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUVSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsS0FBSyxHQUFHLE9BQU8sRUFDZixJQUFJLEdBQUcsYUFBYTtJQUVwQixPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUMvQixLQUFLLENBQ0gsT0FBTyxFQUNQLEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQyxDQUNIO1FBQ0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN6RCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICB0cmlnZ2VyLFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgYW5pbWF0ZSxcclxuICBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGFcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b29sU2xpZGVJbk91dChcclxuICBzcGVlZCA9ICczMDBtcycsXHJcbiAgdHlwZSA9ICdlYXNlLWluLW91dCdcclxuKTogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIHtcclxuICByZXR1cm4gdHJpZ2dlcigndG9vbFNsaWRlSW5PdXQnLCBbXHJcbiAgICBzdGF0ZShcclxuICAgICAgJ2VudGVyJyxcclxuICAgICAgc3R5bGUoe1xyXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknXHJcbiAgICAgIH0pXHJcbiAgICApLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiBlbnRlcicsIGFuaW1hdGUoc3BlZWQgKyAnICcgKyB0eXBlKSlcclxuICBdKTtcclxufVxyXG4iXX0=
|
|
@@ -39,6 +39,6 @@ ActiveTimeFilterToolComponent = __decorate([
|
|
|
39
39
|
export { ActiveTimeFilterToolComponent };
|
|
40
40
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActiveTimeFilterToolComponent, [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'igo-active-time-filter-tool', animations: [toolSlideInOut()], template: "<igo-time-filter-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\">\n</igo-time-filter-item>\n" }]
|
|
42
|
+
args: [{ selector: 'igo-active-time-filter-tool', animations: [toolSlideInOut()], template: "<igo-time-filter-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-time-filter-item>\r\n" }]
|
|
43
43
|
}], function () { return [{ type: i1.MapState }]; }, null); })();
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7SUFheEQsNkJBQTZCLFNBQTdCLDZCQUE2QjtJQWlCeEMsWUFBbUIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUY5QixZQUFPLEdBQUcsT0FBTyxDQUFDO0lBRWUsQ0FBQztJQWZ6QyxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUMvQixPQUFPLEdBQUcsQ0FBQzthQUNaO1NBQ0Y7UUFDRCxPQUFPO0lBQ1QsQ0FBQztDQUtGLENBQUE7MEdBbEJZLDZCQUE2QjtnRkFBN0IsNkJBQTZCO1FDbEIxQywwQ0FLdUI7O1FBSm5CLDZCQUFXLG9CQUFBLGlCQUFBLGdDQUFBOzBGRGVELENBQUMsY0FBYyxFQUFFLENBQUM7QUFFbkIsNkJBQTZCO0lBWHpDLGFBQWEsQ0FBQztRQUNiLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsS0FBSyxFQUFFLGtDQUFrQztRQUN6QyxJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxVQUFVO0tBQ25CLENBQUM7R0FNVyw2QkFBNkIsQ0FrQnpDO1NBbEJZLDZCQUE2Qjt1RkFBN0IsNkJBQTZCO2NBTHpDLFNBQVM7MkJBQ0UsNkJBQTZCLGNBRTNCLENBQUMsY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRvb2xDb21wb25lbnQgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uLy4uL21hcC9tYXAuc3RhdGUnO1xyXG5pbXBvcnQgeyBJZ29NYXAsIExheWVyIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgdG9vbFNsaWRlSW5PdXQgfSBmcm9tICcuL2FjdGl2ZS10aW1lLWZpbHRlci10b29sLmFuaW1hdGlvbic7XHJcblxyXG5AVG9vbENvbXBvbmVudCh7XHJcbiAgbmFtZTogJ2FjdGl2ZVRpbWVGaWx0ZXInLFxyXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLnRpbWVGaWx0ZXInLFxyXG4gIGljb246ICdoaXN0b3J5JyxcclxuICBwYXJlbnQ6ICdtYXBUb29scydcclxufSlcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3RpdmUtdGltZS1maWx0ZXItdG9vbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW3Rvb2xTbGlkZUluT3V0KCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVUaW1lRmlsdGVyVG9vbENvbXBvbmVudCB7XHJcblxyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDtcclxuICB9XHJcblxyXG4gIGdldCBsYXllcigpOiBMYXllciB7XHJcbiAgICBmb3IgKGNvbnN0IGxheSBvZiB0aGlzLm1hcC5sYXllcnMpIHtcclxuICAgICAgaWYgKGxheS5vcHRpb25zLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBsYXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhbmltYXRlID0gJ2VudGVyJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hcFN0YXRlOiBNYXBTdGF0ZSkge31cclxufVxyXG4iLCI8aWdvLXRpbWUtZmlsdGVyLWl0ZW1cclxuICAgIFttYXBdPVwibWFwXCJcclxuICAgIFtsYXllcl09XCJsYXllclwiXHJcbiAgICBbaGVhZGVyXT1cImZhbHNlXCJcclxuICAgIFtAdG9vbFNsaWRlSW5PdXRdPVwiYW5pbWF0ZVwiPlxyXG48L2lnby10aW1lLWZpbHRlci1pdGVtPlxyXG4iXX0=
|
|
@@ -48,4 +48,4 @@ IgoAppFilterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [IgoFi
|
|
|
48
48
|
TimeFilterToolComponent,
|
|
49
49
|
ActiveTimeFilterToolComponent,
|
|
50
50
|
SpatialFilterToolComponent] }); })();
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZmlsdGVyL2ZpbHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixzQkFBc0IsRUFDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOztBQW9CekcsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O29GQU5VLGtCQUFrQjtvRUFBbEIsa0JBQWtCO3dFQWpCbkIsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZO3VGQWlCNUMsa0JBQWtCO2NBbEI5QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUM7Z0JBQ3hELFlBQVksRUFBRTtvQkFDWixzQkFBc0I7b0JBQ3RCLDRCQUE0QjtvQkFDNUIsdUJBQXVCO29CQUN2Qiw2QkFBNkI7b0JBQzdCLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHNCQUFzQjtvQkFDdEIsNEJBQTRCO29CQUM1Qix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtvQkFDN0IsMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQzs7d0ZBQ1ksa0JBQWtCLG1CQWYzQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qiw2QkFBNkI7UUFDN0IsMEJBQTBCLGFBTmxCLGVBQWUsRUFBRSxjQUFjLEVBQUUsWUFBWSxhQVNyRCxzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qiw2QkFBNkI7UUFDN0IsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBOZ01vZHVsZSxcclxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUFcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IElnb0ZpbHRlck1vZHVsZSwgSWdvUXVlcnlNb2R1bGUgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJUb29sQ29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyLXRvb2wvb2djLWZpbHRlci10b29sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJUb29sQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLWZpbHRlci10b29sL3RpbWUtZmlsdGVyLXRvb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhdGlhbEZpbHRlclRvb2xDb21wb25lbnQgfSBmcm9tICcuL3NwYXRpYWwtZmlsdGVyLXRvb2wvc3BhdGlhbC1maWx0ZXItdG9vbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3RpdmVUaW1lRmlsdGVyVG9vbENvbXBvbmVudCB9IGZyb20gJy4vYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wvYWN0aXZlLXRpbWUtZmlsdGVyLXRvb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aXZlT2djRmlsdGVyVG9vbENvbXBvbmVudCB9IGZyb20gJy4vYWN0aXZlLW9nYy1maWx0ZXItdG9vbC9hY3RpdmUtb2djLWZpbHRlci10b29sLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtJZ29GaWx0ZXJNb2R1bGUsIElnb1F1ZXJ5TW9kdWxlLCBDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgT2djRmlsdGVyVG9vbENvbXBvbmVudCxcclxuICAgIEFjdGl2ZU9nY0ZpbHRlclRvb2xDb21wb25lbnQsXHJcbiAgICBUaW1lRmlsdGVyVG9vbENvbXBvbmVudCxcclxuICAgIEFjdGl2ZVRpbWVGaWx0ZXJUb29sQ29tcG9uZW50LFxyXG4gICAgU3BhdGlhbEZpbHRlclRvb2xDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE9nY0ZpbHRlclRvb2xDb21wb25lbnQsXHJcbiAgICBBY3RpdmVPZ2NGaWx0ZXJUb29sQ29tcG9uZW50LFxyXG4gICAgVGltZUZpbHRlclRvb2xDb21wb25lbnQsXHJcbiAgICBBY3RpdmVUaW1lRmlsdGVyVG9vbENvbXBvbmVudCxcclxuICAgIFNwYXRpYWxGaWx0ZXJUb29sQ29tcG9uZW50XHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0FwcEZpbHRlck1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29BcHBGaWx0ZXJNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBJZ29BcHBGaWx0ZXJNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW11cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -20,6 +20,6 @@ OgcFilterToolComponent = __decorate([
|
|
|
20
20
|
export { OgcFilterToolComponent };
|
|
21
21
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterToolComponent, [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: 'igo-ogc-filter-tool', template: "<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\n\n\n" }]
|
|
23
|
+
args: [{ selector: 'igo-ogc-filter-tool', template: "<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\r\n\r\n\r\n" }]
|
|
24
24
|
}], function () { return []; }, null); })();
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItdG9vbC9vZ2MtZmlsdGVyLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlci10b29sL29nYy1maWx0ZXItdG9vbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7SUFXaEMsc0JBQXNCLFNBQXRCLHNCQUFzQjtJQUNqQyxnQkFBZSxDQUFDO0NBQ2pCLENBQUE7NEZBRlksc0JBQXNCO3lFQUF0QixzQkFBc0I7UUNibkMsNkNBQStFOztBRGFsRSxzQkFBc0I7SUFUbEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLFdBQVc7UUFDakIsS0FBSyxFQUFFLGlDQUFpQztRQUN4QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7R0FLVyxzQkFBc0IsQ0FFbEM7U0FGWSxzQkFBc0I7dUZBQXRCLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5AVG9vbENvbXBvbmVudCh7XHJcbiAgbmFtZTogJ29nY0ZpbHRlcicsXHJcbiAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24udG9vbHMub2djRmlsdGVyJyxcclxuICBpY29uOiAnZmlsdGVyJ1xyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyLXRvb2wuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJUb29sQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbn1cclxuIiwiPGlnby1vZ2MtZmlsdGVyYWJsZS1saXN0IGlnb09nY0ZpbHRlcmFibGVMaXN0QmluZGluZz48L2lnby1vZ2MtZmlsdGVyYWJsZS1saXN0PlxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -226,14 +226,14 @@ let SpatialFilterToolComponent = class SpatialFilterToolComponent {
|
|
|
226
226
|
thematic.zeroResults = true;
|
|
227
227
|
}
|
|
228
228
|
if (features.length >= 10000) {
|
|
229
|
-
this.messageService.alert(
|
|
229
|
+
this.messageService.alert('igo.geo.spatialFilter.maxSizeAlert', 'igo.geo.spatialFilter.warning', { timeOut: 10000 });
|
|
230
230
|
}
|
|
231
231
|
})));
|
|
232
232
|
});
|
|
233
233
|
forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
|
|
234
234
|
this.loading = false;
|
|
235
235
|
if (zeroResults) {
|
|
236
|
-
this.messageService.alert(
|
|
236
|
+
this.messageService.alert('igo.geo.spatialFilter.zeroResults', 'igo.geo.spatialFilter.warning', { timeOut: 10000 });
|
|
237
237
|
}
|
|
238
238
|
});
|
|
239
239
|
}
|
|
@@ -524,7 +524,7 @@ SpatialFilterToolComponent = __decorate([
|
|
|
524
524
|
export { SpatialFilterToolComponent };
|
|
525
525
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SpatialFilterToolComponent, [{
|
|
526
526
|
type: Component,
|
|
527
|
-
args: [{ selector: 'igo-spatial-filter-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-panel>\n <igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [zone]=\"zone\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zoneChange)=\"onZoneChange($event)\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\">\n </igo-spatial-filter-type>\n\n <igo-spatial-filter-item\n [type]=\"type\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zone]=\"zone\"\n [loading]=\"loading\"\n [store]=\"store\"\n [layers]=\"activeLayers\"\n [allLayers]=\"layers\"\n [thematicLength]=\"thematicLength\"\n (radiusEvent)=\"buffer = $event\"\n (bufferEvent)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n (freehandControl)=\"freehandDrawIsActive = $event\"\n (drawZoneEvent)=\"zone = $event\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (itemTypeChange)=\"itemType = $event\"\n (thematicChange)=\"thematics = $event\"\n (toggleSearch)=\"getOutputToggleSearch()\"\n (clearButtonEvent)=\"clearMap()\"\n (clearSearchEvent)=\"getOutputClearSearch()\"\n (export)=\"activateExportTool()\"\n (openWorkspace)=\"activateWorkspace()\"\n (entityChange)=\"activateWorkspace($event)\">\n </igo-spatial-filter-item>\n</igo-panel>\n\n<igo-panel>\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\n </ng-container>\n</igo-panel>" }]
|
|
527
|
+
args: [{ selector: 'igo-spatial-filter-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-panel>\r\n <igo-spatial-filter-type\r\n [store]=\"spatialListStore\"\r\n [selectedQueryType]=\"queryType\"\r\n [zone]=\"zone\"\r\n [layers]=\"activeLayers\"\r\n (eventType)=\"getOutputType($event)\"\r\n (eventQueryType)=\"getOutputQueryType($event)\"\r\n (zoneChange)=\"onZoneChange($event)\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (bufferChange)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\">\r\n </igo-spatial-filter-type>\r\n\r\n <igo-spatial-filter-item\r\n [type]=\"type\"\r\n [queryType]=\"queryType\"\r\n [map]=\"map\"\r\n [zone]=\"zone\"\r\n [loading]=\"loading\"\r\n [store]=\"store\"\r\n [layers]=\"activeLayers\"\r\n [allLayers]=\"layers\"\r\n [thematicLength]=\"thematicLength\"\r\n (radiusEvent)=\"buffer = $event\"\r\n (bufferEvent)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\"\r\n (freehandControl)=\"freehandDrawIsActive = $event\"\r\n (drawZoneEvent)=\"zone = $event\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (itemTypeChange)=\"itemType = $event\"\r\n (thematicChange)=\"thematics = $event\"\r\n (toggleSearch)=\"getOutputToggleSearch()\"\r\n (clearButtonEvent)=\"clearMap()\"\r\n (clearSearchEvent)=\"getOutputClearSearch()\"\r\n (export)=\"activateExportTool()\"\r\n (openWorkspace)=\"activateWorkspace()\"\r\n (entityChange)=\"activateWorkspace($event)\">\r\n </igo-spatial-filter-item>\r\n</igo-panel>\r\n\r\n<igo-panel>\r\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </ng-container>\r\n</igo-panel>" }]
|
|
528
528
|
}], function () { return [{ type: i1.MatIconRegistry }, { type: i2.SpatialFilterService }, { type: i2.DataSourceService }, { type: i2.LayerService }, { type: i3.MapState }, { type: i4.MessageService }, { type: i4.LanguageService }, { type: i5.ImportExportState }, { type: i6.ToolState }, { type: i7.WorkspaceState }, { type: i0.ChangeDetectorRef }]; }, { type: [{
|
|
529
529
|
type: Input
|
|
530
530
|
}], itemType: [{
|
|
@@ -532,4 +532,4 @@ export { SpatialFilterToolComponent };
|
|
|
532
532
|
}], freehandDrawIsActive: [{
|
|
533
533
|
type: Input
|
|
534
534
|
}] }); })();
|
|
535
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1maWx0ZXItdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2ZpbHRlci9zcGF0aWFsLWZpbHRlci10b29sL3NwYXRpYWwtZmlsdGVyLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvc3BhdGlhbC1maWx0ZXItdG9vbC9zcGF0aWFsLWZpbHRlci10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFFaEgsT0FBTyxFQUFjLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsV0FBVyxFQUlYLGlCQUFpQixFQUNqQixxQkFBcUIsRUFLckIsd0JBQXdCLEVBRXhCLGlCQUFpQixFQUNsQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLGVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUloRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7SUNPbEMsNkJBQTBEO0lBQ3hELHlDQUErRDtJQUNqRSwwQkFBZTs7O0lBRFEsZUFBbUI7SUFBbkIsb0NBQW1C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QkFBQSw0QkFBQSx5QkFBQSxzQ0FBQTtRQTJCQSxlQUErQjtRQUEvQixrRUFBK0I7O0FEZ0JuQywwQkFBMEI7SUFkdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCLENBQUM7SUFDRjs7T0FFRztHQU9VLDBCQUEwQixDQW1pQnRDO1NBbmlCWSwwQkFBMEI7dUZBQTFCLDBCQUEwQjtjQU50QyxTQUFTOzJCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTt1V0FPdEMsSUFBSTtrQkFBWixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBJZ29NYXAsXG4gIERhdGFTb3VyY2VTZXJ2aWNlLFxuICBMYXllclNlcnZpY2UsXG4gIEZlYXR1cmUsXG4gIG1vdmVUb09sRmVhdHVyZXMsXG4gIEZlYXR1cmVNb3Rpb24sXG4gIENsdXN0ZXJEYXRhU291cmNlLFxuICBmZWF0dXJlVG9PbCxcbiAgRGF0YVNvdXJjZSxcbiAgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFNwYXRpYWxGaWx0ZXJTZXJ2aWNlLFxuICBTcGF0aWFsRmlsdGVyVHlwZSxcbiAgU3BhdGlhbEZpbHRlckl0ZW1UeXBlLFxuICBTcGF0aWFsRmlsdGVyUXVlcnlUeXBlLFxuICBTcGF0aWFsRmlsdGVyVGhlbWF0aWMsXG4gIExheWVyLFxuICBWZWN0b3JMYXllcixcbiAgY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlLFxuICBFeHBvcnRPcHRpb25zLFxuICBNZWFzdXJlTGVuZ3RoVW5pdFxufSBmcm9tICdAaWdvMi9nZW8nO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUsIFRvb2xDb21wb25lbnQgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IG9sRm9ybWF0R2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgb2xTb3VyY2VDbHVzdGVyIGZyb20gJ29sL3NvdXJjZS9DbHVzdGVyJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vLi4vbWFwL21hcC5zdGF0ZSc7XG5pbXBvcnQgeyBJbXBvcnRFeHBvcnRNb2RlLCBJbXBvcnRFeHBvcnRTdGF0ZSB9IGZyb20gJy4vLi4vLi4vaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0LnN0YXRlJztcbmltcG9ydCAqIGFzIG9sc3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbC90b29sLnN0YXRlJztcbmltcG9ydCB7IFdvcmtzcGFjZVN0YXRlIH0gZnJvbSAnLi4vLi4vd29ya3NwYWNlL3dvcmtzcGFjZS5zdGF0ZSc7XG5pbXBvcnQgeyBFdmVudHNLZXkgfSBmcm9tICdvbC9ldmVudHMnO1xuXG4vKipcbiAqIFRvb2wgdG8gYXBwbHkgc3BhdGlhbCBmaWx0ZXJcbiAqL1xuQFRvb2xDb21wb25lbnQoe1xuICBuYW1lOiAnc3BhdGlhbEZpbHRlcicsXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLnNwYXRpYWxGaWx0ZXInLFxuICBpY29uOiAnc2VsZWN0aW9uLW1hcmtlcidcbn0pXG4vKipcbiAqIFNwYXRpYWwgRmlsdGVyIFR5cGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNwYXRpYWwtZmlsdGVyLXRvb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BhdGlhbC1maWx0ZXItdG9vbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwYXRpYWwtZmlsdGVyLXRvb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU3BhdGlhbEZpbHRlclRvb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XG4gIH1cblxuICBASW5wdXQoKSB0eXBlOiBTcGF0aWFsRmlsdGVyVHlwZTtcbiAgQElucHV0KCkgaXRlbVR5cGU6IFNwYXRpYWxGaWx0ZXJJdGVtVHlwZSA9IFNwYXRpYWxGaWx0ZXJJdGVtVHlwZS5BZGRyZXNzO1xuICBASW5wdXQoKSBmcmVlaGFuZERyYXdJc0FjdGl2ZTogYm9vbGVhbjtcblxuICBwdWJsaWMgbGF5ZXJzOiBMYXllcltdID0gW107XG4gIHB1YmxpYyBhY3RpdmVMYXllcnM6IExheWVyW10gPSBbXTtcblxuICBwdWJsaWMgcXVlcnlUeXBlOiBTcGF0aWFsRmlsdGVyUXVlcnlUeXBlO1xuICBwdWJsaWMgdGhlbWF0aWNzOiBTcGF0aWFsRmlsdGVyVGhlbWF0aWNbXTtcbiAgcHVibGljIHpvbmU6IEZlYXR1cmU7XG4gIHB1YmxpYyB6b25lV2l0aEJ1ZmZlcjogRmVhdHVyZTtcbiAgcHVibGljIGJ1ZmZlciA9IDA7XG5cbiAgcHVibGljIGl0ZXJhdG9yID0gMTtcblxuICBwdWJsaWMgc2VsZWN0ZWRGZWF0dXJlJDogQmVoYXZpb3JTdWJqZWN0PEZlYXR1cmU+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICBwcml2YXRlIGZvcm1hdCA9IG5ldyBvbEZvcm1hdEdlb0pTT04oKTtcblxuICBwdWJsaWMgc3RvcmU6IEVudGl0eVN0b3JlPEZlYXR1cmU+ID0gbmV3IEVudGl0eVN0b3JlPEZlYXR1cmU+KFtdKTsgLy8gU3RvcmUgdG8gcHJpbnQgcmVzdWx0cyBhdCB0aGUgZW5kXG5cbiAgcHVibGljIHNwYXRpYWxMaXN0U3RvcmU6IEVudGl0eVN0b3JlPEZlYXR1cmU+ID0gbmV3IEVudGl0eVN0b3JlPEZlYXR1cmU+KFtdKTtcblxuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyB0aGVtYXRpY0xlbmd0aCA9IDA7XG5cbiAgcHVibGljIG1lYXN1cmVVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCA9IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycztcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgbW92ZWVuZEtleTogRXZlbnRzS2V5O1xuXG4gIHB1YmxpYyBkZWZhdWx0U3R5bGU6IG9sc3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IG9sc3R5bGUuU3R5bGUpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWF0SWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXG4gICAgcHJpdmF0ZSBzcGF0aWFsRmlsdGVyU2VydmljZTogU3BhdGlhbEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlU2VydmljZTogRGF0YVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1wb3J0RXhwb3J0U3RhdGU6IEltcG9ydEV4cG9ydFN0YXRlLFxuICAgIHByaXZhdGUgdG9vbFN0YXRlOiBUb29sU3RhdGUsXG4gICAgcHJpdmF0ZSB3b3Jrc3BhY2VTdGF0ZTogV29ya3NwYWNlU3RhdGUsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5tYXAubGF5ZXJzKSB7XG4gICAgICBpZiAobGF5ZXIudGl0bGUgJiYgbGF5ZXIudGl0bGUuaW5jbHVkZXModGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5zcGF0aWFsRmlsdGVyJykpKSB7XG4gICAgICAgIHRoaXMubGF5ZXJzLnB1c2gobGF5ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0T3V0cHV0VHlwZShldmVudDogU3BhdGlhbEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSBldmVudDtcbiAgICB0aGlzLnF1ZXJ5VHlwZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldE91dHB1dFF1ZXJ5VHlwZShldmVudDogU3BhdGlhbEZpbHRlclF1ZXJ5VHlwZSkge1xuICAgIHRoaXMucXVlcnlUeXBlID0gZXZlbnQ7XG4gICAgaWYgKHRoaXMucXVlcnlUeXBlKSB7XG4gICAgICB0aGlzLmxvYWRGaWx0ZXJMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgYWN0aXZhdGVFeHBvcnRUb29sKCkge1xuICAgIGNvbnN0IGlkcyA9IFtdO1xuICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCgnXlpvbmUgXFxcXGQrJyk7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmxheWVycykge1xuICAgICAgaWYgKCFsYXllci50aXRsZS5tYXRjaChyZSkpIHtcbiAgICAgICAgaWRzLnB1c2gobGF5ZXIuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmltcG9ydEV4cG9ydFN0YXRlLnNldE1vZGUoSW1wb3J0RXhwb3J0TW9kZS5leHBvcnQpO1xuICAgIHRoaXMuaW1wb3J0RXhwb3J0U3RhdGUuc2V0c0V4cG9ydE9wdGlvbnMoeyBsYXllcnM6IGlkcyB9IGFzIEV4cG9ydE9wdGlvbnMpO1xuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdpbXBvcnRFeHBvcnQnKTtcbiAgfVxuXG4gIGFjdGl2YXRlV29ya3NwYWNlKHJlY29yZD8pIHtcbiAgICBsZXQgbGF5ZXJUb09wZW5Xa3M7XG4gICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS5zdG9yZS5lbnRpdGllcyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCFyZWNvcmQgJiYgdGhpcy5hY3RpdmVMYXllcnMubGVuZ3RoICYmIHRoaXMud29ya3NwYWNlU3RhdGUuc3RvcmUuYWxsKCkubGVuZ3RoID4gMSkge1xuICAgICAgICBpZiAodGhpcy5pdGVtVHlwZSA9PT0gU3BhdGlhbEZpbHRlckl0ZW1UeXBlLlRoZW1hdGljcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCB0aGVtYXRpYyBvZiB0aGlzLnRoZW1hdGljcykge1xuICAgICAgICAgICAgICBpZiAoIXRoZW1hdGljLnplcm9SZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgbGF5ZXJUb09wZW5Xa3MgPSB0aGlzLmFjdGl2ZUxheWVycy5maW5kKGxheWVyID0+IGxheWVyLnRpdGxlLmluY2x1ZGVzKHRoZW1hdGljLm5hbWUgKyAnICcgKyB0aGlzLml0ZXJhdG9yLnRvU3RyaW5nKCkpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gJ0FkcmVzc2VzICcgKyB0aGlzLml0ZXJhdG9yLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgICAgICAgICBpZiAobGF5ZXIudGl0bGUuaW5jbHVkZXModGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgbGF5ZXJUb09wZW5Xa3MgPSBsYXllcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGF5ZXJUb09wZW5Xa3MpIHtcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZVN0YXRlLndvcmtzcGFjZVBhbmVsRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUuc2V0QWN0aXZlV29ya3NwYWNlQnlJZChsYXllclRvT3Blbldrcy5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmVjb3JkICYmIHRoaXMuYWN0aXZlTGF5ZXJzLmxlbmd0aCAmJiB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmFsbCgpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RXb3Jrc3BhY2VFbnRpdHkocmVjb3JkKTtcbiAgICAgICAgdGhpcy5tb3ZlZW5kS2V5ID0gdGhpcy5tYXAub2wub24oJ21vdmVlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RXb3Jrc3BhY2VFbnRpdHkocmVjb3JkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFdvcmtzcGFjZUVudGl0eShyZWNvcmQpIHtcbiAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmFsbCgpLmZvckVhY2god29ya3NwYWNlID0+IHtcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoe3NlbGVjdGVkOiBmYWxzZX0pO1xuICAgICAgaWYgKHdvcmtzcGFjZS50aXRsZS5pbmNsdWRlcyhyZWNvcmQuYWRkZWRbMF0ubWV0YS50aXRsZSkpIHtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS5zZXRBY3RpdmVXb3Jrc3BhY2VCeUlkKHdvcmtzcGFjZS5pZCk7XG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVNYW55KHJlY29yZC5hZGRlZCwge3NlbGVjdGVkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWx0ZXJMaXN0KCkge1xuICAgIHRoaXMuc3BhdGlhbEZpbHRlclNlcnZpY2VcbiAgICAgIC5sb2FkRmlsdGVyTGlzdCh0aGlzLnF1ZXJ5VHlwZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiB7XG4gICAgICAgIGZlYXR1cmVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICBpZiAoYS5wcm9wZXJ0aWVzLm5vbSA8IGIucHJvcGVydGllcy5ub20pIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGEucHJvcGVydGllcy5ub20gPiBiLnByb3BlcnRpZXMubm9tKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNwYXRpYWxMaXN0U3RvcmUuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zcGF0aWFsTGlzdFN0b3JlLmxvYWQoZmVhdHVyZXMpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRPdXRwdXRUb2dnbGVTZWFyY2goKSB7XG4gICAgdGhpcy5sb2FkVGhlbWF0aWNzKCk7XG4gIH1cblxuICBnZXRPdXRwdXRDbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnpvbmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5xdWVyeVR5cGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBjbGVhck1hcCgpIHtcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcnModGhpcy5sYXllcnMpO1xuICAgIHRoaXMubGF5ZXJzID0gW107XG4gICAgdGhpcy5hY3RpdmVMYXllcnMgPSBbXTtcbiAgICB0aGlzLnRoZW1hdGljTGVuZ3RoID0gMDtcbiAgICB0aGlzLml0ZXJhdG9yID0gMTtcbiAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkKSB7XG4gICAgICB0aGlzLnpvbmUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnF1ZXJ5VHlwZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRUaGVtYXRpY3MoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBsZXQgemVyb1Jlc3VsdHMgPSB0cnVlO1xuICAgIGxldCB0aGVtYXRpY3M7XG4gICAgaWYgKHRoaXMuYnVmZmVyID09PSAwIHx8IHRoaXMudHlwZSA9PT0gU3BhdGlhbEZpbHRlclR5cGUuUG9pbnQpIHtcbiAgICAgIHRoaXMudHJ5QWRkRmVhdHVyZXNUb01hcChbdGhpcy56b25lXSk7XG4gICAgfVxuICAgIGlmICh0aGlzLml0ZW1UeXBlICE9PSBTcGF0aWFsRmlsdGVySXRlbVR5cGUuVGhlbWF0aWNzKSB7XG4gICAgICBjb25zdCB0aGVtZTogU3BhdGlhbEZpbHRlclRoZW1hdGljID0ge1xuICAgICAgICBuYW1lOiAnJ1xuICAgICAgfTtcbiAgICAgIHRoZW1hdGljcyA9IFt0aGVtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoZW1hdGljcyA9IHRoaXMudGhlbWF0aWNzO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZWFzdXJlVW5pdCA9PT0gTWVhc3VyZUxlbmd0aFVuaXQuS2lsb21ldGVycyAmJiB0aGlzLnR5cGUgIT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvaW50KSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyICogMTAwMDtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gU3BhdGlhbEZpbHRlclR5cGUuUG9seWdvbikge1xuICAgICAgdGhpcy5idWZmZXIgPSAwOyAvLyB0byBhdm9pZCBidWZmZXIgZW50ZXIgYSBzZWNvbmQgdGltZSBpbiB0ZXJyQVBJXG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMkOiBPYnNlcnZhYmxlPEZlYXR1cmVbXT5bXSA9IFtdO1xuICAgIHRoZW1hdGljcy5mb3JFYWNoKHRoZW1hdGljID0+IHtcbiAgICAgIG9ic2VydmFibGVzJC5wdXNoKFxuICAgICAgICB0aGlzLnNwYXRpYWxGaWx0ZXJTZXJ2aWNlXG4gICAgICAgICAgLmxvYWRGaWx0ZXJJdGVtKFxuICAgICAgICAgICAgdGhpcy56b25lLFxuICAgICAgICAgICAgdGhpcy5pdGVtVHlwZSxcbiAgICAgICAgICAgIHRoaXMucXVlcnlUeXBlLFxuICAgICAgICAgICAgdGhlbWF0aWMsXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRhcCgoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmluc2VydE1hbnkoZmVhdHVyZXMpO1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlc1BvaW50OiBGZWF0dXJlW10gPSBbXTtcbiAgICAgICAgICAgICAgY29uc3QgZmVhdHVyZXNMaW5lUG9seTogRmVhdHVyZVtdID0gW107XG4gICAgICAgICAgICAgIGxldCBpZFBvaW50O1xuICAgICAgICAgICAgICBsZXQgaWRMaW5lUG9seTtcbiAgICAgICAgICAgICAgZmVhdHVyZXMuZm9yRWFjaChmZWF0dXJlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnKSB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMubG9uZ2l0dWRlID0gZmVhdHVyZS5nZW9tZXRyeS5jb29yZGluYXRlc1swXTtcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy5sYXRpdHVkZSA9IGZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV07XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlc1BvaW50LnB1c2goZmVhdHVyZSk7XG4gICAgICAgICAgICAgICAgICBpZFBvaW50ID0gZmVhdHVyZS5tZXRhLmlkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlc0xpbmVQb2x5LnB1c2goZmVhdHVyZSk7XG4gICAgICAgICAgICAgICAgICBpZExpbmVQb2x5ID0gZmVhdHVyZS5tZXRhLmlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgdGhpcy50cnlBZGRQb2ludFRvTWFwKGZlYXR1cmVzUG9pbnQsIGlkUG9pbnQpO1xuICAgICAgICAgICAgICB0aGlzLnRyeUFkZExheWVyVG9NYXAoZmVhdHVyZXNMaW5lUG9seSwgaWRMaW5lUG9seSk7XG4gICAgICAgICAgICAgIGlmIChmZWF0dXJlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB6ZXJvUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudGhlbWF0aWNMZW5ndGggKz0gMTtcbiAgICAgICAgICAgICAgICB0aGVtYXRpYy56ZXJvUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoZW1hdGljLnplcm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPj0gMTAwMDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIubWF4U2l6ZUFsZXJ0J1xuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLndhcm5pbmcnXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgeyB0aW1lT3V0OiAxMDAwMCB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMkKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGlmICh6ZXJvUmVzdWx0cykge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci56ZXJvUmVzdWx0cydcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci53YXJuaW5nJ1xuICAgICAgICAgICksXG4gICAgICAgICAgeyB0aW1lT3V0OiAxMDAwMCB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblpvbmVDaGFuZ2UoZmVhdHVyZTogRmVhdHVyZSwgYnVmZmVyPzogYm9vbGVhbikge1xuICAgIHRoaXMuem9uZSA9IGZlYXR1cmU7XG4gICAgaWYgKGZlYXR1cmUpIHtcbiAgICAgIGJ1ZmZlciA/IHRoaXMudHJ5QWRkRmVhdHVyZXNUb01hcChbZmVhdHVyZV0sIHRydWUpIDogdGhpcy50cnlBZGRGZWF0dXJlc1RvTWFwKFtmZWF0dXJlXSk7XG4gICAgICB0aGlzLnpvb21Ub0ZlYXR1cmVFeHRlbnQoZmVhdHVyZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgem9uZSBmZWF0dXJlIHRvIHRoZSBtYXAgb3ZlcmxheVxuICAgKi9cbiAgcHVibGljIHRyeUFkZEZlYXR1cmVzVG9NYXAoZmVhdHVyZXM6IEZlYXR1cmVbXSwgYnVmZmVyPzogYm9vbGVhbikge1xuICAgIGxldCBpID0gMTtcbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgZmVhdHVyZXMpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlByZWRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmxheWVycykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxheWVyLm9wdGlvbnMuX2ludGVybmFsICYmXG4gICAgICAgICAgICBsYXllci5vcHRpb25zLl9pbnRlcm5hbC5jb2RlID09PSBmZWF0dXJlLnByb3BlcnRpZXMuY29kZSAmJlxuICAgICAgICAgICAgIWJ1ZmZlclxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKCFsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sYXllcnMuaW5kZXhPZihsYXllcik7XG4gICAgICAgICAgICAgIHRoaXMubGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUxheWVycyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVycy5pbmRleE9mKGxheWVyKTtcbiAgICAgICAgICAgIHRoaXMubGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYnVmZmVyKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmFjdGl2ZUxheWVycykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlTGF5ZXJzLmxlbmd0aCA9PT0gMSAmJiBsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sYXllcnMuaW5kZXhPZihsYXllcik7XG4gICAgICAgICAgICAgIHRoaXMubGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVMYXllcnMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5sYXllcnMpIHtcbiAgICAgICAgaWYgKGxheWVyLnRpdGxlPy5zdGFydHNXaXRoKCdab25lJykpIHtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gKF9mZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gKGZlYXR1cmVzWzBdIGFzIGFueSkuY29vcmRpbmF0ZXM7XG4gICAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XG4gICAgICAgICAgICByYWRpdXM6IGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgID8gdGhpcy5idWZmZXIgL1xuICAgICAgICAgICAgICAgIE1hdGguY29zKChNYXRoLlBJIC8gMTgwKSAqIGNvb3JkaW5hdGVzWzFdKSAvXG4gICAgICAgICAgICAgICAgcmVzb2x1dGlvblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xuICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjAwLCAyMDAsIDIwLCAwLjIpJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XG4gICAgICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgICAgICBjb2xvcjogJ29yYW5nZSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgd2lkdGg6IDEsXG4gICAgICAgICAgICBjb2xvcjogJ29yYW5nZSdcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAsIDAuMiknXG4gICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKHtcbiAgICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgICBxdWVyeWFibGU6IHRydWVcbiAgICAgICAgfSBhcyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucylcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sTGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcih7XG4gICAgICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgICAgICAgICB0aXRsZTogKCdab25lICcgKyBpICsgJyAtICcgKyB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5zcGF0aWFsRmlsdGVyJ1xuICAgICAgICAgICAgKSkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgd29ya3NwYWNlOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIF9pbnRlcm5hbDoge1xuICAgICAgICAgICAgICBjb2RlOlxuICAgICAgICAgICAgICAgIHRoaXMudHlwZSA9PT0gU3BhdGlhbEZpbHRlclR5cGUuUHJlZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgPyBmZWF0dXJlLnByb3BlcnRpZXMuY29kZVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlXG4gICAgICAgICAgfSkgYXMgVmVjdG9yTGF5ZXI7XG4gICAgICAgICAgY29uc3QgZmVhdHVyZXNPbCA9IGZlYXR1cmVzLm1hcChmID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVG9PbChmLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodGhpcy50eXBlICE9PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5Qb2ludCA/ICdDZXJjbGUnIDogJ1BvbHlnb25lJztcbiAgICAgICAgICAgIGZlYXR1cmVzT2xbMF0uc2V0KCdub20nLCAnWm9uZScsIHRydWUpO1xuICAgICAgICAgICAgZmVhdHVyZXNPbFswXS5zZXQoJ3R5cGUnLCB0eXBlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgb2wgPSBkYXRhU291cmNlLm9sIGFzIG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+IHwgb2xTb3VyY2VDbHVzdGVyO1xuICAgICAgICAgIG9sLmFkZEZlYXR1cmVzKGZlYXR1cmVzT2wpO1xuICAgICAgICAgIG9sTGF5ZXIub2wuc2V0U3R5bGUodGhpcy5kZWZhdWx0U3R5bGUpO1xuICAgICAgICAgIHRoaXMubWFwLmFkZExheWVyKG9sTGF5ZXIpO1xuICAgICAgICAgIHRoaXMubGF5ZXJzLnB1c2gob2xMYXllcik7XG4gICAgICAgICAgdGhpcy5hY3RpdmVMYXllcnMucHVzaChvbExheWVyKTtcbiAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgcG9pbnQgZmVhdHVyZXMgdG8gdGhlIG1hcFxuICAgKiBOZWNlc3NhcnkgdG8gY3JlYXRlIGNsdXN0ZXJzXG4gICAqL1xuICBwcml2YXRlIHRyeUFkZFBvaW50VG9NYXAoZmVhdHVyZXM6IEZlYXR1cmVbXSwgaWQpIHtcbiAgICBsZXQgaSA9IDE7XG4gICAgaWYgKGZlYXR1cmVzLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMubWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmxheWVycykge1xuICAgICAgICBpZiAobGF5ZXIudGl0bGU/LnN0YXJ0c1dpdGgoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSkpIHtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZUFzeW5jRGF0YVNvdXJjZSh7XG4gICAgICAgICAgdHlwZTogJ2NsdXN0ZXInLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICAgICAgICBkaXN0YW5jZTogMTIwLFxuICAgICAgICAgIG1ldGE6IHtcbiAgICAgICAgICAgIHRpdGxlOiAnQ2x1c3RlcidcbiAgICAgICAgICB9XG4gICAgICAgIH0gYXMgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTb3VyY2U6IENsdXN0ZXJEYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaWNvbiA9IGZlYXR1cmVzWzBdLm1ldGEuaWNvbjtcbiAgICAgICAgICBsZXQgc3R5bGU6IG9sc3R5bGUuU3R5bGU7XG4gICAgICAgICAgaWYgKCFpY29uKSB7XG4gICAgICAgICAgICBzdHlsZSA9IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHlsZSA9IHRoaXMuY3JlYXRlU3ZnSWNvbihpY29uKSB8fCBjcmVhdGVPdmVybGF5TWFya2VyU3R5bGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBvbExheWVyID0gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xuICAgICAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgICAgICAgICAgdGl0bGU6IChmZWF0dXJlc1swXS5tZXRhLnRpdGxlICsgJyAnICsgaSArICcgLSAnICsgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcbiAgICAgICAgICAgICkpIGFzIHN0cmluZyxcbiAgICAgICAgICAgIHNvdXJjZTogZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICBzdHlsZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgZmVhdHVyZXNPbCA9IGZlYXR1cmVzLm1hcChmZWF0dXJlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVG9PbChmZWF0dXJlLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBvbCA9IGRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VDbHVzdGVyO1xuICAgICAgICAgIG9sLmdldFNvdXJjZSgpLmFkZEZlYXR1cmVzKGZlYXR1cmVzT2wpO1xuICAgICAgICAgIGlmICh0aGlzLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBvbExheWVyLmlkKSkge1xuICAgICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIoXG4gICAgICAgICAgICAgIHRoaXMubGF5ZXJzLmZpbmQobGF5ZXIgPT4gbGF5ZXIuaWQgPT09IG9sTGF5ZXIuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaSA9IGkgLSAxO1xuICAgICAgICAgICAgb2xMYXllci50aXRsZSA9IChmZWF0dXJlc1swXS5tZXRhLnRpdGxlICsgJyAnICsgaSArICcgLSAnICsgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcbiAgICAgICAgICAgICkpIGFzIHN0cmluZztcbiAgICAgICAgICAgIG9sTGF5ZXIub3B0aW9ucy50aXRsZSA9IG9sTGF5ZXIudGl0bGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXRlcmF0b3IgPSBpO1xuICAgICAgICAgIHRoaXMubWFwLmFkZExheWVyKG9sTGF5ZXIpO1xuICAgICAgICAgIHRoaXMubGF5ZXJzLnB1c2gob2xMYXllcik7XG4gICAgICAgICAgdGhpcy5wdXNoTGF5ZXIob2xMYXllcik7XG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3ZnSWNvbihpY29uKTogb2xzdHlsZS5TdHlsZSB7XG4gICAgbGV0IHN0eWxlOiBvbHN0eWxlLlN0eWxlO1xuICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmdldE5hbWVkU3ZnSWNvbihpY29uKS5zdWJzY3JpYmUoc3ZnT2JqID0+IHtcbiAgICAgIGNvbnN0IHhtbFNlcmlhbGl6ZXIgPSBuZXcgWE1MU2VyaWFsaXplcigpO1xuICAgICAgc3ZnT2JqLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMzAnKTtcbiAgICAgIHN2Z09iai5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsICczMCcpO1xuICAgICAgc3ZnT2JqLnNldEF0dHJpYnV0ZSgnZmlsbCcsICdyZ2JhKDAsIDEyOCwgMjU1KScpO1xuICAgICAgc3ZnT2JqLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywgJ3doaXRlJyk7XG4gICAgICBjb25zdCBzdmcgPSB4bWxTZXJpYWxpemVyLnNlcmlhbGl6ZVRvU3RyaW5nKHN2Z09iaik7XG4gICAgICBzdHlsZSA9IG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkljb24oe1xuICAgICAgICAgIHNyYzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCcgKyBzdmdcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuICAvKipcbiAgICogVHJ5IHRvIGFkZCBsaW5lIG9yIHBvbHlnb24gZmVhdHVyZXMgdG8gdGhlIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSB0cnlBZGRMYXllclRvTWFwKGZlYXR1cmVzOiBGZWF0dXJlW10sIGlkKSB7XG4gICAgbGV0IGkgPSAxO1xuICAgIGlmIChmZWF0dXJlcy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLm1hcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5sYXllcnMpIHtcbiAgICAgICAgaWYgKGxheWVyLnRpdGxlPy5zdGFydHNXaXRoKGZlYXR1cmVzWzBdLm1ldGEudGl0bGUpKSB7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgIC5jcmVhdGVBc3luY0RhdGFTb3VyY2Uoe1xuICAgICAgICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgICB9IGFzIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhU291cmNlOiBEYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xMYXllciA9IHRoaXMubGF5ZXJTZXJ2aWNlLmNyZWF0ZUxheWVyKHtcbiAgICAgICAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcbiAgICAgICAgICAgIHRpdGxlOiAoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSArICcgJyArIGkgKyAnIC0gJyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLnNwYXRpYWxGaWx0ZXInXG4gICAgICAgICAgICApKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgZmVhdHVyZXNPbCA9IGZlYXR1cmVzLm1hcChmZWF0dXJlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVG9PbChmZWF0dXJlLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBvbCA9IGRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT47XG4gICAgICAgICAgb2wuYWRkRmVhdHVyZXMoZmVhdHVyZXNPbCk7XG4gICAgICAgICAgaWYgKHRoaXMubGF5ZXJzLmZpbmQobGF5ZXIgPT4gbGF5ZXIuaWQgPT09IG9sTGF5ZXIuaWQpKSB7XG4gICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihcbiAgICAgICAgICAgICAgdGhpcy5sYXllcnMuZmluZChsYXllciA9PiBsYXllci5pZCA9PT0gb2xMYXllci5pZClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpID0gaSAtIDE7XG4gICAgICAgICAgICBvbExheWVyLnRpdGxlID0gKGZlYXR1cmVzWzBdLm1ldGEudGl0bGUgKyAnICcgKyBpICsgJyAtICcgKyB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5zcGF0aWFsRmlsdGVyJ1xuICAgICAgICAgICAgKSkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgb2xMYXllci5vcHRpb25zLnRpdGxlID0gb2xMYXllci50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIob2xMYXllcik7XG4gICAgICAgICAgdGhpcy5sYXllcnMucHVzaChvbExheWVyKTtcbiAgICAgICAgICB0aGlzLnB1c2hMYXllcihvbExheWVyKTtcbiAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgem9vbVRvRmVhdHVyZUV4dGVudChmZWF0dXJlKSB7XG4gICAgaWYgKGZlYXR1cmUpIHtcbiAgICAgIGNvbnN0IG9sRmVhdHVyZSA9IHRoaXMuZm9ybWF0LnJlYWRGZWF0dXJlKGZlYXR1cmUsIHtcbiAgICAgICAgZGF0YVByb2plY3Rpb246IGZlYXR1cmUucHJvamVjdGlvbixcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb25cbiAgICAgIH0pO1xuICAgICAgbW92ZVRvT2xGZWF0dXJlcyh0aGlzLm1hcCwgW29sRmVhdHVyZV0sIEZlYXR1cmVNb3Rpb24uWm9vbSk7XG4gICAgfVxuICB9XG5cbiAgcHVzaExheWVyKGxheWVyKSB7XG4gICAgZm9yIChjb25zdCBsYXkgb2YgdGhpcy5hY3RpdmVMYXllcnMpIHtcbiAgICAgIGlmIChsYXkuaWQgPT09IGxheWVyLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZUxheWVycy5wdXNoKGxheWVyKTtcbiAgfVxufVxuIiwiPGlnby1wYW5lbD5cbiAgPGlnby1zcGF0aWFsLWZpbHRlci10eXBlXG4gICAgW3N0b3JlXT1cInNwYXRpYWxMaXN0U3RvcmVcIlxuICAgIFtzZWxlY3RlZFF1ZXJ5VHlwZV09XCJxdWVyeVR5cGVcIlxuICAgIFt6b25lXT1cInpvbmVcIlxuICAgIFtsYXllcnNdPVwiYWN0aXZlTGF5ZXJzXCJcbiAgICAoZXZlbnRUeXBlKT1cImdldE91dHB1dFR5cGUoJGV2ZW50KVwiXG4gICAgKGV2ZW50UXVlcnlUeXBlKT1cImdldE91dHB1dFF1ZXJ5VHlwZSgkZXZlbnQpXCJcbiAgICAoem9uZUNoYW5nZSk9XCJvblpvbmVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHpvbmVXaXRoQnVmZmVyQ2hhbmdlKT1cIm9uWm9uZUNoYW5nZSgkZXZlbnQsIHRydWUpXCJcbiAgICAoYnVmZmVyQ2hhbmdlKT1cImJ1ZmZlciA9ICRldmVudFwiXG4gICAgKG1lYXN1cmVVbml0Q2hhbmdlKT1cIm1lYXN1cmVVbml0ID0gJGV2ZW50XCI+XG4gIDwvaWdvLXNwYXRpYWwtZmlsdGVyLXR5cGU+XG5cbiAgPGlnby1zcGF0aWFsLWZpbHRlci1pdGVtXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3F1ZXJ5VHlwZV09XCJxdWVyeVR5cGVcIlxuICAgIFttYXBdPVwibWFwXCJcbiAgICBbem9uZV09XCJ6b25lXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbc3RvcmVdPVwic3RvcmVcIlxuICAgIFtsYXllcnNdPVwiYWN0aXZlTGF5ZXJzXCJcbiAgICBbYWxsTGF5ZXJzXT1cImxheWVyc1wiXG4gICAgW3RoZW1hdGljTGVuZ3RoXT1cInRoZW1hdGljTGVuZ3RoXCJcbiAgICAocmFkaXVzRXZlbnQpPVwiYnVmZmVyID0gJGV2ZW50XCJcbiAgICAoYnVmZmVyRXZlbnQpPVwiYnVmZmVyID0gJGV2ZW50XCJcbiAgICAobWVhc3VyZVVuaXRDaGFuZ2UpPVwibWVhc3VyZVVuaXQgPSAkZXZlbnRcIlxuICAgIChmcmVlaGFuZENvbnRyb2wpPVwiZnJlZWhhbmREcmF3SXNBY3RpdmUgPSAkZXZlbnRcIlxuICAgIChkcmF3Wm9uZUV2ZW50KT1cInpvbmUgPSAkZXZlbnRcIlxuICAgICh6b25lV2l0aEJ1ZmZlckNoYW5nZSk9XCJvblpvbmVDaGFuZ2UoJGV2ZW50LCB0cnVlKVwiXG4gICAgKGl0ZW1UeXBlQ2hhbmdlKT1cIml0ZW1UeXBlID0gJGV2ZW50XCJcbiAgICAodGhlbWF0aWNDaGFuZ2UpPVwidGhlbWF0aWNzID0gJGV2ZW50XCJcbiAgICAodG9nZ2xlU2VhcmNoKT1cImdldE91dHB1dFRvZ2dsZVNlYXJjaCgpXCJcbiAgICAoY2xlYXJCdXR0b25FdmVudCk9XCJjbGVhck1hcCgpXCJcbiAgICAoY2xlYXJTZWFyY2hFdmVudCk9XCJnZXRPdXRwdXRDbGVhclNlYXJjaCgpXCJcbiAgICAoZXhwb3J0KT1cImFjdGl2YXRlRXhwb3J0VG9vbCgpXCJcbiAgICAob3BlbldvcmtzcGFjZSk9XCJhY3RpdmF0ZVdvcmtzcGFjZSgpXCJcbiAgICAoZW50aXR5Q2hhbmdlKT1cImFjdGl2YXRlV29ya3NwYWNlKCRldmVudClcIj5cbiAgPC9pZ28tc3BhdGlhbC1maWx0ZXItaXRlbT5cbjwvaWdvLXBhbmVsPlxuXG48aWdvLXBhbmVsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGZWF0dXJlJCB8IGFzeW5jIGFzIGZlYXR1cmVcIj5cbiAgICA8aWdvLWZlYXR1cmUtZGV0YWlscyBbZmVhdHVyZV09XCJmZWF0dXJlXCI+PC9pZ28tZmVhdHVyZS1kZXRhaWxzPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvaWdvLXBhbmVsPiJdfQ==
|
|
535
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1maWx0ZXItdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2ZpbHRlci9zcGF0aWFsLWZpbHRlci10b29sL3NwYXRpYWwtZmlsdGVyLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9maWx0ZXIvc3BhdGlhbC1maWx0ZXItdG9vbC9zcGF0aWFsLWZpbHRlci10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFFaEgsT0FBTyxFQUFjLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsV0FBVyxFQUlYLGlCQUFpQixFQUNqQixxQkFBcUIsRUFLckIsd0JBQXdCLEVBRXhCLGlCQUFpQixFQUNsQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLGVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUloRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7SUNPbEMsNkJBQTBEO0lBQ3hELHlDQUErRDtJQUNqRSwwQkFBZTs7O0lBRFEsZUFBbUI7SUFBbkIsb0NBQW1C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dEM7U0EzaEJZLDBCQUEwQjt1RkFBMUIsMEJBQTBCO2NBTnRDLFNBQVM7MkJBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNO3VXQU90QyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIElnb01hcCxcclxuICBEYXRhU291cmNlU2VydmljZSxcclxuICBMYXllclNlcnZpY2UsXHJcbiAgRmVhdHVyZSxcclxuICBtb3ZlVG9PbEZlYXR1cmVzLFxyXG4gIEZlYXR1cmVNb3Rpb24sXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2UsXHJcbiAgZmVhdHVyZVRvT2wsXHJcbiAgRGF0YVNvdXJjZSxcclxuICBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyxcclxuICBTcGF0aWFsRmlsdGVyU2VydmljZSxcclxuICBTcGF0aWFsRmlsdGVyVHlwZSxcclxuICBTcGF0aWFsRmlsdGVySXRlbVR5cGUsXHJcbiAgU3BhdGlhbEZpbHRlclF1ZXJ5VHlwZSxcclxuICBTcGF0aWFsRmlsdGVyVGhlbWF0aWMsXHJcbiAgTGF5ZXIsXHJcbiAgVmVjdG9yTGF5ZXIsXHJcbiAgY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlLFxyXG4gIEV4cG9ydE9wdGlvbnMsXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXRcclxufSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSwgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCBvbEZvcm1hdEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcbmltcG9ydCBvbFNvdXJjZUNsdXN0ZXIgZnJvbSAnb2wvc291cmNlL0NsdXN0ZXInO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgSW1wb3J0RXhwb3J0TW9kZSwgSW1wb3J0RXhwb3J0U3RhdGUgfSBmcm9tICcuLy4uLy4uL2ltcG9ydC1leHBvcnQvaW1wb3J0LWV4cG9ydC5zdGF0ZSc7XHJcbmltcG9ydCAqIGFzIG9sc3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFRvb2xTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2wvdG9vbC5zdGF0ZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZVN0YXRlIH0gZnJvbSAnLi4vLi4vd29ya3NwYWNlL3dvcmtzcGFjZS5zdGF0ZSc7XHJcbmltcG9ydCB7IEV2ZW50c0tleSB9IGZyb20gJ29sL2V2ZW50cyc7XHJcblxyXG4vKipcclxuICogVG9vbCB0byBhcHBseSBzcGF0aWFsIGZpbHRlclxyXG4gKi9cclxuQFRvb2xDb21wb25lbnQoe1xyXG4gIG5hbWU6ICdzcGF0aWFsRmlsdGVyJyxcclxuICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi50b29scy5zcGF0aWFsRmlsdGVyJyxcclxuICBpY29uOiAnc2VsZWN0aW9uLW1hcmtlcidcclxufSlcclxuLyoqXHJcbiAqIFNwYXRpYWwgRmlsdGVyIFR5cGVcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNwYXRpYWwtZmlsdGVyLXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGF0aWFsLWZpbHRlci10b29sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGF0aWFsLWZpbHRlci10b29sLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwYXRpYWxGaWx0ZXJUb29sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHR5cGU6IFNwYXRpYWxGaWx0ZXJUeXBlO1xyXG4gIEBJbnB1dCgpIGl0ZW1UeXBlOiBTcGF0aWFsRmlsdGVySXRlbVR5cGUgPSBTcGF0aWFsRmlsdGVySXRlbVR5cGUuQWRkcmVzcztcclxuICBASW5wdXQoKSBmcmVlaGFuZERyYXdJc0FjdGl2ZTogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGxheWVyczogTGF5ZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBhY3RpdmVMYXllcnM6IExheWVyW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHF1ZXJ5VHlwZTogU3BhdGlhbEZpbHRlclF1ZXJ5VHlwZTtcclxuICBwdWJsaWMgdGhlbWF0aWNzOiBTcGF0aWFsRmlsdGVyVGhlbWF0aWNbXTtcclxuICBwdWJsaWMgem9uZTogRmVhdHVyZTtcclxuICBwdWJsaWMgem9uZVdpdGhCdWZmZXI6IEZlYXR1cmU7XHJcbiAgcHVibGljIGJ1ZmZlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBpdGVyYXRvciA9IDE7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEZlYXR1cmUkOiBCZWhhdmlvclN1YmplY3Q8RmVhdHVyZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgdW5kZWZpbmVkXHJcbiAgKTtcclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXQgPSBuZXcgb2xGb3JtYXRHZW9KU09OKCk7XHJcblxyXG4gIHB1YmxpYyBzdG9yZTogRW50aXR5U3RvcmU8RmVhdHVyZT4gPSBuZXcgRW50aXR5U3RvcmU8RmVhdHVyZT4oW10pOyAvLyBTdG9yZSB0byBwcmludCByZXN1bHRzIGF0IHRoZSBlbmRcclxuXHJcbiAgcHVibGljIHNwYXRpYWxMaXN0U3RvcmU6IEVudGl0eVN0b3JlPEZlYXR1cmU+ID0gbmV3IEVudGl0eVN0b3JlPEZlYXR1cmU+KFtdKTtcclxuXHJcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHRoZW1hdGljTGVuZ3RoID0gMDtcclxuXHJcbiAgcHVibGljIG1lYXN1cmVVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCA9IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycztcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgbW92ZWVuZEtleTogRXZlbnRzS2V5O1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdFN0eWxlOiBvbHN0eWxlLlN0eWxlIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBvbHN0eWxlLlN0eWxlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBzcGF0aWFsRmlsdGVyU2VydmljZTogU3BhdGlhbEZpbHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFTb3VyY2VTZXJ2aWNlOiBEYXRhU291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaW1wb3J0RXhwb3J0U3RhdGU6IEltcG9ydEV4cG9ydFN0YXRlLFxyXG4gICAgcHJpdmF0ZSB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcclxuICAgIHByaXZhdGUgd29ya3NwYWNlU3RhdGU6IFdvcmtzcGFjZVN0YXRlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLm1hcC5sYXllcnMpIHtcclxuICAgICAgaWYgKGxheWVyLnRpdGxlICYmIGxheWVyLnRpdGxlLmluY2x1ZGVzKHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcicpKSkge1xyXG4gICAgICAgIHRoaXMubGF5ZXJzLnB1c2gobGF5ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRPdXRwdXRUeXBlKGV2ZW50OiBTcGF0aWFsRmlsdGVyVHlwZSkge1xyXG4gICAgdGhpcy50eXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLnF1ZXJ5VHlwZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldE91dHB1dFF1ZXJ5VHlwZShldmVudDogU3BhdGlhbEZpbHRlclF1ZXJ5VHlwZSkge1xyXG4gICAgdGhpcy5xdWVyeVR5cGUgPSBldmVudDtcclxuICAgIGlmICh0aGlzLnF1ZXJ5VHlwZSkge1xyXG4gICAgICB0aGlzLmxvYWRGaWx0ZXJMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZUV4cG9ydFRvb2woKSB7XHJcbiAgICBjb25zdCBpZHMgPSBbXTtcclxuICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCgnXlpvbmUgXFxcXGQrJyk7XHJcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHRoaXMubGF5ZXJzKSB7XHJcbiAgICAgIGlmICghbGF5ZXIudGl0bGUubWF0Y2gocmUpKSB7XHJcbiAgICAgICAgaWRzLnB1c2gobGF5ZXIuaWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmltcG9ydEV4cG9ydFN0YXRlLnNldE1vZGUoSW1wb3J0RXhwb3J0TW9kZS5leHBvcnQpO1xyXG4gICAgdGhpcy5pbXBvcnRFeHBvcnRTdGF0ZS5zZXRzRXhwb3J0T3B0aW9ucyh7IGxheWVyczogaWRzIH0gYXMgRXhwb3J0T3B0aW9ucyk7XHJcbiAgICB0aGlzLnRvb2xTdGF0ZS50b29sYm94LmFjdGl2YXRlVG9vbCgnaW1wb3J0RXhwb3J0Jyk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZVdvcmtzcGFjZShyZWNvcmQ/KSB7XHJcbiAgICBsZXQgbGF5ZXJUb09wZW5Xa3M7XHJcbiAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmVudGl0aWVzJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICghcmVjb3JkICYmIHRoaXMuYWN0aXZlTGF5ZXJzLmxlbmd0aCAmJiB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmFsbCgpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtVHlwZSA9PT0gU3BhdGlhbEZpbHRlckl0ZW1UeXBlLlRoZW1hdGljcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRoZW1hdGljIG9mIHRoaXMudGhlbWF0aWNzKSB7XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGVtYXRpYy56ZXJvUmVzdWx0cykge1xyXG4gICAgICAgICAgICAgICAgbGF5ZXJUb09wZW5Xa3MgPSB0aGlzLmFjdGl2ZUxheWVycy5maW5kKGxheWVyID0+IGxheWVyLnRpdGxlLmluY2x1ZGVzKHRoZW1hdGljLm5hbWUgKyAnICcgKyB0aGlzLml0ZXJhdG9yLnRvU3RyaW5nKCkpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9ICdBZHJlc3NlcyAnICsgdGhpcy5pdGVyYXRvci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChsYXllci50aXRsZS5pbmNsdWRlcyh0aXRsZSkpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyVG9PcGVuV2tzID0gbGF5ZXI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsYXllclRvT3Blbldrcykge1xyXG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2VQYW5lbEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUuc2V0QWN0aXZlV29ya3NwYWNlQnlJZChsYXllclRvT3Blbldrcy5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHJlY29yZCAmJiB0aGlzLmFjdGl2ZUxheWVycy5sZW5ndGggJiYgdGhpcy53b3Jrc3BhY2VTdGF0ZS5zdG9yZS5hbGwoKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RXb3Jrc3BhY2VFbnRpdHkocmVjb3JkKTtcclxuICAgICAgICB0aGlzLm1vdmVlbmRLZXkgPSB0aGlzLm1hcC5vbC5vbignbW92ZWVuZCcsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0V29ya3NwYWNlRW50aXR5KHJlY29yZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RXb3Jrc3BhY2VFbnRpdHkocmVjb3JkKSB7XHJcbiAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmFsbCgpLmZvckVhY2god29ya3NwYWNlID0+IHtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7c2VsZWN0ZWQ6IGZhbHNlfSk7XHJcbiAgICAgIGlmICh3b3Jrc3BhY2UudGl0bGUuaW5jbHVkZXMocmVjb3JkLmFkZGVkWzBdLm1ldGEudGl0bGUpKSB7XHJcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS5zZXRBY3RpdmVXb3Jrc3BhY2VCeUlkKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZU1hbnkocmVjb3JkLmFkZGVkLCB7c2VsZWN0ZWQ6IHRydWV9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRGaWx0ZXJMaXN0KCkge1xyXG4gICAgdGhpcy5zcGF0aWFsRmlsdGVyU2VydmljZVxyXG4gICAgICAubG9hZEZpbHRlckxpc3QodGhpcy5xdWVyeVR5cGUpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGZlYXR1cmVzOiBGZWF0dXJlW10pID0+IHtcclxuICAgICAgICBmZWF0dXJlcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYS5wcm9wZXJ0aWVzLm5vbSA8IGIucHJvcGVydGllcy5ub20pIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGEucHJvcGVydGllcy5ub20gPiBiLnByb3BlcnRpZXMubm9tKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zcGF0aWFsTGlzdFN0b3JlLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5zcGF0aWFsTGlzdFN0b3JlLmxvYWQoZmVhdHVyZXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE91dHB1dFRvZ2dsZVNlYXJjaCgpIHtcclxuICAgIHRoaXMubG9hZFRoZW1hdGljcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3V0cHV0Q2xlYXJTZWFyY2goKSB7XHJcbiAgICB0aGlzLnpvbmUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnF1ZXJ5VHlwZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNsZWFyTWFwKCkge1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXJzKHRoaXMubGF5ZXJzKTtcclxuICAgIHRoaXMubGF5ZXJzID0gW107XHJcbiAgICB0aGlzLmFjdGl2ZUxheWVycyA9IFtdO1xyXG4gICAgdGhpcy50aGVtYXRpY0xlbmd0aCA9IDA7XHJcbiAgICB0aGlzLml0ZXJhdG9yID0gMTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlByZWRlZmluZWQpIHtcclxuICAgICAgdGhpcy56b25lID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnF1ZXJ5VHlwZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFRoZW1hdGljcygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgemVyb1Jlc3VsdHMgPSB0cnVlO1xyXG4gICAgbGV0IHRoZW1hdGljcztcclxuICAgIGlmICh0aGlzLmJ1ZmZlciA9PT0gMCB8fCB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvaW50KSB7XHJcbiAgICAgIHRoaXMudHJ5QWRkRmVhdHVyZXNUb01hcChbdGhpcy56b25lXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pdGVtVHlwZSAhPT0gU3BhdGlhbEZpbHRlckl0ZW1UeXBlLlRoZW1hdGljcykge1xyXG4gICAgICBjb25zdCB0aGVtZTogU3BhdGlhbEZpbHRlclRoZW1hdGljID0ge1xyXG4gICAgICAgIG5hbWU6ICcnXHJcbiAgICAgIH07XHJcbiAgICAgIHRoZW1hdGljcyA9IFt0aGVtZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGVtYXRpY3MgPSB0aGlzLnRoZW1hdGljcztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1lYXN1cmVVbml0ID09PSBNZWFzdXJlTGVuZ3RoVW5pdC5LaWxvbWV0ZXJzICYmIHRoaXMudHlwZSAhPT0gU3BhdGlhbEZpbHRlclR5cGUuUG9pbnQpIHtcclxuICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLmJ1ZmZlciAqIDEwMDA7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5Qb2x5Z29uKSB7XHJcbiAgICAgIHRoaXMuYnVmZmVyID0gMDsgLy8gdG8gYXZvaWQgYnVmZmVyIGVudGVyIGEgc2Vjb25kIHRpbWUgaW4gdGVyckFQSVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGVzJDogT2JzZXJ2YWJsZTxGZWF0dXJlW10+W10gPSBbXTtcclxuICAgIHRoZW1hdGljcy5mb3JFYWNoKHRoZW1hdGljID0+IHtcclxuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goXHJcbiAgICAgICAgdGhpcy5zcGF0aWFsRmlsdGVyU2VydmljZVxyXG4gICAgICAgICAgLmxvYWRGaWx0ZXJJdGVtKFxyXG4gICAgICAgICAgICB0aGlzLnpvbmUsXHJcbiAgICAgICAgICAgIHRoaXMuaXRlbVR5cGUsXHJcbiAgICAgICAgICAgIHRoaXMucXVlcnlUeXBlLFxyXG4gICAgICAgICAgICB0aGVtYXRpYyxcclxuICAgICAgICAgICAgdGhpcy5idWZmZXJcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKGZlYXR1cmVzOiBGZWF0dXJlW10pID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmluc2VydE1hbnkoZmVhdHVyZXMpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzUG9pbnQ6IEZlYXR1cmVbXSA9IFtdO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzTGluZVBvbHk6IEZlYXR1cmVbXSA9IFtdO1xyXG4gICAgICAgICAgICAgIGxldCBpZFBvaW50O1xyXG4gICAgICAgICAgICAgIGxldCBpZExpbmVQb2x5O1xyXG4gICAgICAgICAgICAgIGZlYXR1cmVzLmZvckVhY2goZmVhdHVyZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnKSB7XHJcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy5sb25naXR1ZGUgPSBmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMubGF0aXR1ZGUgPSBmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICAgICAgICBmZWF0dXJlc1BvaW50LnB1c2goZmVhdHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgIGlkUG9pbnQgPSBmZWF0dXJlLm1ldGEuaWQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBmZWF0dXJlc0xpbmVQb2x5LnB1c2goZmVhdHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgIGlkTGluZVBvbHkgPSBmZWF0dXJlLm1ldGEuaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMudHJ5QWRkUG9pbnRUb01hcChmZWF0dXJlc1BvaW50LCBpZFBvaW50KTtcclxuICAgICAgICAgICAgICB0aGlzLnRyeUFkZExheWVyVG9NYXAoZmVhdHVyZXNMaW5lUG9seSwgaWRMaW5lUG9seSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZlYXR1cmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgemVyb1Jlc3VsdHMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGhlbWF0aWNMZW5ndGggKz0gMTtcclxuICAgICAgICAgICAgICAgIHRoZW1hdGljLnplcm9SZXN1bHRzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhlbWF0aWMuemVyb1Jlc3VsdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA+PSAxMDAwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hbGVydChcclxuICAgICAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5tYXhTaXplQWxlcnQnLFxyXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLndhcm5pbmcnLFxyXG4gICAgICAgICAgICAgICAgICB7IHRpbWVPdXQ6IDEwMDAwIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMkKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoemVyb1Jlc3VsdHMpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxyXG4gICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci56ZXJvUmVzdWx0cycsXHJcbiAgICAgICAgICAnaWdvLmdlby5zcGF0aWFsRmlsdGVyLndhcm5pbmcnLFxyXG4gICAgICAgICAgeyB0aW1lT3V0OiAxMDAwMCB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblpvbmVDaGFuZ2UoZmVhdHVyZTogRmVhdHVyZSwgYnVmZmVyPzogYm9vbGVhbikge1xyXG4gICAgdGhpcy56b25lID0gZmVhdHVyZTtcclxuICAgIGlmIChmZWF0dXJlKSB7XHJcbiAgICAgIGJ1ZmZlciA/IHRoaXMudHJ5QWRkRmVhdHVyZXNUb01hcChbZmVhdHVyZV0sIHRydWUpIDogdGhpcy50cnlBZGRGZWF0dXJlc1RvTWFwKFtmZWF0dXJlXSk7XHJcbiAgICAgIHRoaXMuem9vbVRvRmVhdHVyZUV4dGVudChmZWF0dXJlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBhZGQgem9uZSBmZWF0dXJlIHRvIHRoZSBtYXAgb3ZlcmxheVxyXG4gICAqL1xyXG4gIHB1YmxpYyB0cnlBZGRGZWF0dXJlc1RvTWFwKGZlYXR1cmVzOiBGZWF0dXJlW10sIGJ1ZmZlcj86IGJvb2xlYW4pIHtcclxuICAgIGxldCBpID0gMTtcclxuICAgIGZvciAoY29uc3QgZmVhdHVyZSBvZiBmZWF0dXJlcykge1xyXG4gICAgICBpZiAodGhpcy50eXBlID09PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmxheWVycykge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBsYXllci5vcHRpb25zLl9pbnRlcm5hbCAmJlxyXG4gICAgICAgICAgICBsYXllci5vcHRpb25zLl9pbnRlcm5hbC5jb2RlID09PSBmZWF0dXJlLnByb3BlcnRpZXMuY29kZSAmJlxyXG4gICAgICAgICAgICAhYnVmZmVyXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgaWYgKCFsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVycy5pbmRleE9mKGxheWVyKTtcclxuICAgICAgICAgICAgICB0aGlzLmxheWVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTGF5ZXJzID0gW107XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5sYXllcnMuaW5kZXhPZihsYXllcik7XHJcbiAgICAgICAgICAgIHRoaXMubGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGJ1ZmZlcikge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmFjdGl2ZUxheWVycykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVMYXllcnMubGVuZ3RoID09PSAxICYmIGxheWVyLnRpdGxlPy5zdGFydHNXaXRoKCdab25lJykpIHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGF5ZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWN0aXZlTGF5ZXJzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBsYXllciBvZiB0aGlzLmxheWVycykge1xyXG4gICAgICAgIGlmIChsYXllci50aXRsZT8uc3RhcnRzV2l0aCgnWm9uZScpKSB7XHJcbiAgICAgICAgICBpKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gKF9mZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSAoZmVhdHVyZXNbMF0gYXMgYW55KS5jb29yZGluYXRlcztcclxuICAgICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XHJcbiAgICAgICAgICAgIHJhZGl1czogY29vcmRpbmF0ZXNcclxuICAgICAgICAgICAgICA/IHRoaXMuYnVmZmVyIC9cclxuICAgICAgICAgICAgICAgIE1hdGguY29zKChNYXRoLlBJIC8gMTgwKSAqIGNvb3JkaW5hdGVzWzFdKSAvXHJcbiAgICAgICAgICAgICAgICByZXNvbHV0aW9uXHJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAsIDAuMiknXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEsXHJcbiAgICAgICAgICAgICAgY29sb3I6ICdvcmFuZ2UnXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgd2lkdGg6IDEsXHJcbiAgICAgICAgICAgIGNvbG9yOiAnb3JhbmdlJ1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDIwMCwgMjAwLCAyMCwgMC4yKSdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcclxuICAgICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKHtcclxuICAgICAgICAgIHR5cGU6ICd2ZWN0b3InLFxyXG4gICAgICAgICAgcXVlcnlhYmxlOiB0cnVlXHJcbiAgICAgICAgfSBhcyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucylcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG9sTGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcih7XHJcbiAgICAgICAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgICAgICAgICAgdGl0bGU6ICgnWm9uZSAnICsgaSArICcgLSAnICsgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uc3BhdGlhbEZpbHRlci5zcGF0aWFsRmlsdGVyJ1xyXG4gICAgICAgICAgICApKSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIHdvcmtzcGFjZTogeyBlbmFibGVkOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIF9pbnRlcm5hbDoge1xyXG4gICAgICAgICAgICAgIGNvZGU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlByZWRlZmluZWRcclxuICAgICAgICAgICAgICAgICAgPyBmZWF0dXJlLnByb3BlcnRpZXMuY29kZVxyXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRydWVcclxuICAgICAgICAgIH0pIGFzIFZlY3RvckxheWVyO1xyXG4gICAgICAgICAgY29uc3QgZmVhdHVyZXNPbCA9IGZlYXR1cmVzLm1hcChmID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmVUb09sKGYsIHRoaXMubWFwLnByb2plY3Rpb24pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy50eXBlICE9PSBTcGF0aWFsRmlsdGVyVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUgPT09IFNwYXRpYWxGaWx0ZXJUeXBlLlBvaW50ID8gJ0NlcmNsZScgOiAnUG9seWdvbmUnO1xyXG4gICAgICAgICAgICBmZWF0dXJlc09sWzBdLnNldCgnbm9tJywgJ1pvbmUnLCB0cnVlKTtcclxuICAgICAgICAgICAgZmVhdHVyZXNPbFswXS5zZXQoJ3R5cGUnLCB0eXBlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IG9sID0gZGF0YVNvdXJjZS5vbCBhcyBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PiB8IG9sU291cmNlQ2x1c3RlcjtcclxuICAgICAgICAgIG9sLmFkZEZlYXR1cmVzKGZlYXR1cmVzT2wpO1xyXG4gICAgICAgICAgb2xMYXllci5vbC5zZXRTdHlsZSh0aGlzLmRlZmF1bHRTdHlsZSk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5hZGRMYXllcihvbExheWVyKTtcclxuICAgICAgICAgIHRoaXMubGF5ZXJzLnB1c2gob2xMYXllcik7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUxheWVycy5wdXNoKG9sTGF5ZXIpO1xyXG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gYWRkIHBvaW50IGZlYXR1cmVzIHRvIHRoZSBtYXBcclxuICAgKiBOZWNlc3NhcnkgdG8gY3JlYXRlIGNsdXN0ZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0cnlBZGRQb2ludFRvTWFwKGZlYXR1cmVzOiBGZWF0dXJlW10sIGlkKSB7XHJcbiAgICBsZXQgaSA9IDE7XHJcbiAgICBpZiAoZmVhdHVyZXMubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLm1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5sYXllcnMpIHtcclxuICAgICAgICBpZiAobGF5ZXIudGl0bGU/LnN0YXJ0c1dpdGgoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSkpIHtcclxuICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVBc3luY0RhdGFTb3VyY2Uoe1xyXG4gICAgICAgICAgdHlwZTogJ2NsdXN0ZXInLFxyXG4gICAgICAgICAgaWQsXHJcbiAgICAgICAgICBxdWVyeWFibGU6IHRydWUsXHJcbiAgICAgICAgICBkaXN0YW5jZTogMTIwLFxyXG4gICAgICAgICAgbWV0YToge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0NsdXN0ZXInXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucylcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTb3VyY2U6IENsdXN0ZXJEYXRhU291cmNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpY29uID0gZmVhdHVyZXNbMF0ubWV0YS5pY29uO1xyXG4gICAgICAgICAgbGV0IHN0eWxlOiBvbHN0eWxlLlN0eWxlO1xyXG4gICAgICAgICAgaWYgKCFpY29uKSB7XHJcbiAgICAgICAgICAgIHN0eWxlID0gY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzdHlsZSA9IHRoaXMuY3JlYXRlU3ZnSWNvbihpY29uKSB8fCBjcmVhdGVPdmVybGF5TWFya2VyU3R5bGUoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBvbExheWVyID0gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xyXG4gICAgICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICAgICAgICAgIHRpdGxlOiAoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSArICcgJyArIGkgKyAnIC0gJyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcclxuICAgICAgICAgICAgKSkgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgIHN0eWxlXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBjb25zdCBmZWF0dXJlc09sID0gZmVhdHVyZXMubWFwKGZlYXR1cmUgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZmVhdHVyZVRvT2woZmVhdHVyZSwgdGhpcy5tYXAucHJvamVjdGlvbik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGNvbnN0IG9sID0gZGF0YVNvdXJjZS5vbCBhcyBvbFNvdXJjZUNsdXN0ZXI7XHJcbiAgICAgICAgICBvbC5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlcyhmZWF0dXJlc09sKTtcclxuICAgICAgICAgIGlmICh0aGlzLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBvbExheWVyLmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihcclxuICAgICAgICAgICAgICB0aGlzLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBvbExheWVyLmlkKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpID0gaSAtIDE7XHJcbiAgICAgICAgICAgIG9sTGF5ZXIudGl0bGUgPSAoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSArICcgJyArIGkgKyAnIC0gJyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcclxuICAgICAgICAgICAgKSkgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICBvbExheWVyLm9wdGlvbnMudGl0bGUgPSBvbExheWVyLnRpdGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pdGVyYXRvciA9IGk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5hZGRMYXllcihvbExheWVyKTtcclxuICAgICAgICAgIHRoaXMubGF5ZXJzLnB1c2gob2xMYXllcik7XHJcbiAgICAgICAgICB0aGlzLnB1c2hMYXllcihvbExheWVyKTtcclxuICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTdmdJY29uKGljb24pOiBvbHN0eWxlLlN0eWxlIHtcclxuICAgIGxldCBzdHlsZTogb2xzdHlsZS5TdHlsZTtcclxuICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmdldE5hbWVkU3ZnSWNvbihpY29uKS5zdWJzY3JpYmUoc3ZnT2JqID0+IHtcclxuICAgICAgY29uc3QgeG1sU2VyaWFsaXplciA9IG5ldyBYTUxTZXJpYWxpemVyKCk7XHJcbiAgICAgIHN2Z09iai5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzMwJyk7XHJcbiAgICAgIHN2Z09iai5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsICczMCcpO1xyXG4gICAgICBzdmdPYmouc2V0QXR0cmlidXRlKCdmaWxsJywgJ3JnYmEoMCwgMTI4LCAyNTUpJyk7XHJcbiAgICAgIHN2Z09iai5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICd3aGl0ZScpO1xyXG4gICAgICBjb25zdCBzdmcgPSB4bWxTZXJpYWxpemVyLnNlcmlhbGl6ZVRvU3RyaW5nKHN2Z09iaik7XHJcbiAgICAgIHN0eWxlID0gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5JY29uKHtcclxuICAgICAgICAgIHNyYzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCcgKyBzdmdcclxuICAgICAgICB9KVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUcnkgdG8gYWRkIGxpbmUgb3IgcG9seWdvbiBmZWF0dXJlcyB0byB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0cnlBZGRMYXllclRvTWFwKGZlYXR1cmVzOiBGZWF0dXJlW10sIGlkKSB7XHJcbiAgICBsZXQgaSA9IDE7XHJcbiAgICBpZiAoZmVhdHVyZXMubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLm1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5sYXllcnMpIHtcclxuICAgICAgICBpZiAobGF5ZXIudGl0bGU/LnN0YXJ0c1dpdGgoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSkpIHtcclxuICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVBc3luY0RhdGFTb3VyY2Uoe1xyXG4gICAgICAgICAgdHlwZTogJ3ZlY3RvcicsXHJcbiAgICAgICAgICBpZCxcclxuICAgICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxyXG4gICAgICAgIH0gYXMgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMpXHJcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhU291cmNlOiBEYXRhU291cmNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvbExheWVyID0gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xyXG4gICAgICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICAgICAgICAgIHRpdGxlOiAoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSArICcgJyArIGkgKyAnIC0gJyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcclxuICAgICAgICAgICAgKSkgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRydWVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc3QgZmVhdHVyZXNPbCA9IGZlYXR1cmVzLm1hcChmZWF0dXJlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmVUb09sKGZlYXR1cmUsIHRoaXMubWFwLnByb2plY3Rpb24pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBvbCA9IGRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT47XHJcbiAgICAgICAgICBvbC5hZGRGZWF0dXJlcyhmZWF0dXJlc09sKTtcclxuICAgICAgICAgIGlmICh0aGlzLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBvbExheWVyLmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihcclxuICAgICAgICAgICAgICB0aGlzLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBvbExheWVyLmlkKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpID0gaSAtIDE7XHJcbiAgICAgICAgICAgIG9sTGF5ZXIudGl0bGUgPSAoZmVhdHVyZXNbMF0ubWV0YS50aXRsZSArICcgJyArIGkgKyAnIC0gJyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnNwYXRpYWxGaWx0ZXIuc3BhdGlhbEZpbHRlcidcclxuICAgICAgICAgICAgKSkgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICBvbExheWVyLm9wdGlvbnMudGl0bGUgPSBvbExheWVyLnRpdGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIob2xMYXllcik7XHJcbiAgICAgICAgICB0aGlzLmxheWVycy5wdXNoKG9sTGF5ZXIpO1xyXG4gICAgICAgICAgdGhpcy5wdXNoTGF5ZXIob2xMYXllcik7XHJcbiAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21Ub0ZlYXR1cmVFeHRlbnQoZmVhdHVyZSkge1xyXG4gICAgaWYgKGZlYXR1cmUpIHtcclxuICAgICAgY29uc3Qgb2xGZWF0dXJlID0gdGhpcy5mb3JtYXQucmVhZEZlYXR1cmUoZmVhdHVyZSwge1xyXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiBmZWF0dXJlLnByb2plY3Rpb24sXHJcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb25cclxuICAgICAgfSk7XHJcbiAgICAgIG1vdmVUb09sRmVhdHVyZXModGhpcy5tYXAsIFtvbEZlYXR1cmVdLCBGZWF0dXJlTW90aW9uLlpvb20pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVzaExheWVyKGxheWVyKSB7XHJcbiAgICBmb3IgKGNvbnN0IGxheSBvZiB0aGlzLmFjdGl2ZUxheWVycykge1xyXG4gICAgICBpZiAobGF5LmlkID09PSBsYXllci5pZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWN0aXZlTGF5ZXJzLnB1c2gobGF5ZXIpO1xyXG4gIH1cclxufVxyXG4iLCI8aWdvLXBhbmVsPlxyXG4gIDxpZ28tc3BhdGlhbC1maWx0ZXItdHlwZVxyXG4gICAgW3N0b3JlXT1cInNwYXRpYWxMaXN0U3RvcmVcIlxyXG4gICAgW3NlbGVjdGVkUXVlcnlUeXBlXT1cInF1ZXJ5VHlwZVwiXHJcbiAgICBbem9uZV09XCJ6b25lXCJcclxuICAgIFtsYXllcnNdPVwiYWN0aXZlTGF5ZXJzXCJcclxuICAgIChldmVudFR5cGUpPVwiZ2V0T3V0cHV0VHlwZSgkZXZlbnQpXCJcclxuICAgIChldmVudFF1ZXJ5VHlwZSk9XCJnZXRPdXRwdXRRdWVyeVR5cGUoJGV2ZW50KVwiXHJcbiAgICAoem9uZUNoYW5nZSk9XCJvblpvbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoem9uZVdpdGhCdWZmZXJDaGFuZ2UpPVwib25ab25lQ2hhbmdlKCRldmVudCwgdHJ1ZSlcIlxyXG4gICAgKGJ1ZmZlckNoYW5nZSk9XCJidWZmZXIgPSAkZXZlbnRcIlxyXG4gICAgKG1lYXN1cmVVbml0Q2hhbmdlKT1cIm1lYXN1cmVVbml0ID0gJGV2ZW50XCI+XHJcbiAgPC9pZ28tc3BhdGlhbC1maWx0ZXItdHlwZT5cclxuXHJcbiAgPGlnby1zcGF0aWFsLWZpbHRlci1pdGVtXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgIFtxdWVyeVR5cGVdPVwicXVlcnlUeXBlXCJcclxuICAgIFttYXBdPVwibWFwXCJcclxuICAgIFt6b25lXT1cInpvbmVcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbc3RvcmVdPVwic3RvcmVcIlxyXG4gICAgW2xheWVyc109XCJhY3RpdmVMYXllcnNcIlxyXG4gICAgW2FsbExheWVyc109XCJsYXllcnNcIlxyXG4gICAgW3RoZW1hdGljTGVuZ3RoXT1cInRoZW1hdGljTGVuZ3RoXCJcclxuICAgIChyYWRpdXNFdmVudCk9XCJidWZmZXIgPSAkZXZlbnRcIlxyXG4gICAgKGJ1ZmZlckV2ZW50KT1cImJ1ZmZlciA9ICRldmVudFwiXHJcbiAgICAobWVhc3VyZVVuaXRDaGFuZ2UpPVwibWVhc3VyZVVuaXQgPSAkZXZlbnRcIlxyXG4gICAgKGZyZWVoYW5kQ29udHJvbCk9XCJmcmVlaGFuZERyYXdJc0FjdGl2ZSA9ICRldmVudFwiXHJcbiAgICAoZHJhd1pvbmVFdmVudCk9XCJ6b25lID0gJGV2ZW50XCJcclxuICAgICh6b25lV2l0aEJ1ZmZlckNoYW5nZSk9XCJvblpvbmVDaGFuZ2UoJGV2ZW50LCB0cnVlKVwiXHJcbiAgICAoaXRlbVR5cGVDaGFuZ2UpPVwiaXRlbVR5cGUgPSAkZXZlbnRcIlxyXG4gICAgKHRoZW1hdGljQ2hhbmdlKT1cInRoZW1hdGljcyA9ICRldmVudFwiXHJcbiAgICAodG9nZ2xlU2VhcmNoKT1cImdldE91dHB1dFRvZ2dsZVNlYXJjaCgpXCJcclxuICAgIChjbGVhckJ1dHRvbkV2ZW50KT1cImNsZWFyTWFwKClcIlxyXG4gICAgKGNsZWFyU2VhcmNoRXZlbnQpPVwiZ2V0T3V0cHV0Q2xlYXJTZWFyY2goKVwiXHJcbiAgICAoZXhwb3J0KT1cImFjdGl2YXRlRXhwb3J0VG9vbCgpXCJcclxuICAgIChvcGVuV29ya3NwYWNlKT1cImFjdGl2YXRlV29ya3NwYWNlKClcIlxyXG4gICAgKGVudGl0eUNoYW5nZSk9XCJhY3RpdmF0ZVdvcmtzcGFjZSgkZXZlbnQpXCI+XHJcbiAgPC9pZ28tc3BhdGlhbC1maWx0ZXItaXRlbT5cclxuPC9pZ28tcGFuZWw+XHJcblxyXG48aWdvLXBhbmVsPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZlYXR1cmUkIHwgYXN5bmMgYXMgZmVhdHVyZVwiPlxyXG4gICAgPGlnby1mZWF0dXJlLWRldGFpbHMgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiPjwvaWdvLWZlYXR1cmUtZGV0YWlscz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9pZ28tcGFuZWw+Il19
|