Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ambl-on/lcu-ambl-on-common

Package Overview
Dependencies
Maintainers
2
Versions
420
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ambl-on/lcu-ambl-on-common - npm Package Compare versions

Comparing version 0.2.413-my-atlas to 0.2.414-my-atlas

24

esm2015/lib/services/map.service.js

@@ -38,2 +38,6 @@ /**

this.MarkerList = Constants.DEFAULT_MARKER_INFO;
/**
* The hamburger menu subject to detect click event
*/
this.HamburgerMenuSubject = new Subject();
this.primaryMap =

@@ -49,2 +53,3 @@ this.tempStorage.GetLastUsedId() !== ''

this.MapChanged = new EventEmitter();
this.HamburgerMenuSubject = new Subject();
// console.log("constructor called");

@@ -57,2 +62,14 @@ }

*/
GetHamburgerSubject() {
return this.HamburgerMenuSubject;
}
/**
* @return {?}
*/
ToggleHamburgerMenu() {
this.HamburgerMenuSubject.next(false);
}
/**
* @return {?}
*/
GetLegendLocations() {

@@ -441,3 +458,8 @@ this.LegendLocations = this.tempStorage.GetLocationLegend();

/**
* The hamburger menu subject to detect click event
* @type {?}
*/
MapService.prototype.HamburgerMenuSubject;
/**
* @type {?}
* @protected

@@ -452,2 +474,2 @@ */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQXlCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTTFELE1BQU0sT0FBTyxVQUFVOzs7Ozs7SUErQ3JCLFlBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBcEUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7UUFwQm5GLGtCQUFhLEdBQXNCLElBQUksT0FBTyxFQUFZLENBQUM7UUFFM0QsMkJBQXNCLEdBQXVCLElBQUksT0FBTyxFQUFhLENBQUM7Ozs7UUFLdEUscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUV4QyxvQkFBZSxHQUFxQixFQUFFLENBQUM7Ozs7UUFPdkMsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7UUFLOUQsSUFBSSxDQUFDLFVBQVU7WUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUU7Z0JBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEs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b3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcbmltcG9ydCB7IFVzZXJzU3RhdGVNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uL3N0YXRlL3VzZXJzL3VzZXJzLXN0YXRlLW1hbmFnZXIuY29udGV4dCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuICAvLyBGSUVMRFNcclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0O1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zOiBBcnJheTxNYXBNYXJrZXI+ID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9XHJcbiAgICAgIHRoaXMudGVtcFN0b3JhZ2UuR2V0TGFzdFVzZWRJZCgpICE9PSAnJ1xyXG4gICAgICAgID8gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBCeUlkKHRoaXMudGVtcFN0b3JhZ2UuR2V0TGFzdFVzZWRJZCgpKVxyXG4gICAgICAgIDogdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KClbMF07XHJcbiAgICB0aGlzLm1hcExpc3QgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKS5maWx0ZXIobWFwID0+IG1hcC5pZCAhPT0gdGhpcy5wcmltYXJ5TWFwLmlkKTtcclxuICAgIHRoaXMuTWFwQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SW5kaXZpZHVhbE1hcD4oKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiY29uc3RydWN0b3IgY2FsbGVkXCIpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG1hcCB0byByZXRyaWV2ZVxyXG4gICAqXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKlxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gYWRkXHJcbiAgICpcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBsYXQgVGhlIGxhdGl0dWRlIHRvIHBhbiB0b1xyXG4gICAqIEBwYXJhbSBsbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKlxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3QgVGhlIGxpc3Qgb2YgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKlxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gdGhpcy5DaGVja0ZvckR1cGxpY2F0ZXMobGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0XHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZUxlZ2VuZExvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIlZpc2libGUgbG9jYXRpb25zXCIsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IGxpc3Q7XHJcbiAgfVxyXG5cclxuICBDaGVja0ZvckR1cGxpY2F0ZXMobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IEFycmF5PE1hcE1hcmtlcj4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJDaGVja2luZyBmb3IgZHVwbGljYXRlcyBpbjogXCIsIGxpc3QpO1xyXG4gICAgY29uc3QgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgY29uc3QgaWRzID0gbGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgaWRzVW5pcXVlID0gaWRzLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gaWRzLmluZGV4T2YoaXRlbSkgPj0gaW5kZXg7XHJcbiAgICB9KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidW5pcXVlIGlkcyBsZW5ndGggPSBcIiwgaWRzVW5pcXVlLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlkc1VuaXF1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wTWFya2VyID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkJ5SWQoaWRzVW5pcXVlW2ldKTtcclxuICAgICAgLy8gaWYgaXRzIGluIHRoZSBtYXN0ZXJsaXN0XHJcbiAgICAgIGlmICh0ZW1wTWFya2VyKSB7XHJcbiAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAucHVzaChsaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IGlkc1VuaXF1ZVtpXSlbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkNoZWNrZWQgZm9yIGR1cGxpY2F0ZXNcIiwgdGVtcCk7XHJcbiAgICByZXR1cm4gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byByZXBsYWNlIHRoZSBvbmxkIG9uZSB3aXRoXHJcbiAgICpcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKlxyXG4gICAqIGEgdGh1bWJuYWlsIGxpc3QgY29udGFpbnMgdGhlIGltZyB1cmwsIHRoZSB0aXRsZSBvZiB0aGUgbWFwLCBhbmQgdGhlIGxhdCBhbmQgbG9uZyBvZiB0aGUgb3JnaW5cclxuICAgKlxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIGNvbnN0IHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wID0gbmV3IFRodW1ibmFpbExpc3RNb2RlbChcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLFxyXG4gICAgICAgIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSxcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLnRpdGxlLFxyXG4gICAgICAgICtMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsXHJcbiAgICAgICAgK0xpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZ1xyXG4gICAgICApO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIENhbGxzIHRoZSBwcm90ZWN0ZWQgbWV0aG9kIFwic2V0TWFwc1dpdGhQcmltYXJ5SWRcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcmltYXJ5TWFwQ2hhbmdlZChpZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGFsbCB0aGUgbWFwcyBmcm9tIHRoZSBkYiAoZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSlcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTWFwcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuRGVsZXRlTWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRJbmRpdmlkdWFsTWFwc0Zyb21Vc2VyTWFwcyhtYXBzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIG1hcHMubWFwKG1hcCA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgSW5kaXZpZHVhbE1hcCh7XHJcbiAgICAgICAgaWQ6IG1hcC5JRCxcclxuICAgICAgICB0aXRsZTogbWFwLlRpdGxlLFxyXG4gICAgICAgIG9yaWdpbjogeyBsYXQ6IG1hcC5MYXRpdHVkZSwgbG5nOiBtYXAuTG9uZ2l0dWRlIH0sXHJcbiAgICAgICAgem9vbTogbWFwLlpvb20sXHJcbiAgICAgICAgbG9jYXRpb25MaXN0OiBbXVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE1hcE1hcmtlcnNGcm9tTG9jYXRpb25zKGxvY2F0aW9uczogYW55W10sIG1hcElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1hcE1hcmtlcnMgPSB0aGlzLmNvbnZlcnRMb2NhdGlvbkRhdGFUb01hcE1hcmtlcnMobG9jYXRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdExvY2F0aW9uTGlzdChtYXBNYXJrZXJzLCBtYXBJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBIRUxQRVJTXHJcblxyXG4gIHByb3RlY3RlZCBmb3JtYXRMb2NhdGlvbkxpc3QobG9jYXRpb25zOiBBcnJheTxhbnk+LCBtYXBJZDogc3RyaW5nKTogQXJyYXk8TWFwTWFya2VyPiB7XHJcbiAgICBsb2NhdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICAobG9jLm1hcF9pZCA9IG1hcElkKSxcclxuICAgICAgKGxvYy5pZCA9IGxvYy5JRCk7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBsb2MuaWNvbk5hbWUgPSBsb2MuaWNvbk5hbWUgPT09ICdob3RlbCcgPyAnbG9kZ2luZycgOiBsb2MuaWNvbk5hbWU7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZSA9PT0gJ3VuZXNjbycgPyAnVU5FU0NPJyA6IGxvYy5pY29uTmFtZTtcclxuICAgICAgLy8gbG9jLnRpdGxlID0gbG9jLlRpdGxlO1xyXG4gICAgICAvLyBsb2MubGF0ID0gbG9jLkxhdGl0dWRlO1xyXG4gICAgICAvLyBsb2MubG5nID0gbG9jLkxvbmdpdHVkZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxvY2F0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIGNvbmZpZ3VyYXRpb24gZnJvbSB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYSB0aHVtYm5haWxcclxuICAgKiBAcGFyYW0gd2lkdGggT3B0aW9uYWwgd2lkdGggcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSBoZWlndGgpXHJcbiAgICogQHBhcmFtIGhlaWdodCBPcHRpb25hbCBoZWlnaHQgcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSB3aWR0aClcclxuICAgKlxyXG4gICAqIFRha2VzIGEgbWFwIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcmV0dXJucyBhIGdvb2dsZSBtYXBzIHN0YXRpYyBtYXAgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbFxyXG4gICAqXHJcbiAgICogSW4gb3JkZXIgdG8gc3BlY2lmeSBoZWlnaHQgYW5kIHdpZHRoLCB5b3UgbXVzdCBzcGVjaWZ5IEJPVEgsIG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgMzAweDMwMFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRNYXBUaHVtYm5haWwobWFwOiBJbmRpdmlkdWFsTWFwLCB3aWR0aD8sIGhlaWdodD8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwP2NlbnRlcj0ke21hcC5vcmlnaW4ubGF0fSwke21hcC5vcmlnaW4ubG5nfVxyXG4gICAgJnpvb209JHttYXAuem9vbSAtIDJ9XHJcbiAgICAmc2l6ZT0ke2hlaWdodCAmJiB3aWR0aCA/IHdpZHRoIDogMzAwfXgke2hlaWdodCAmJiB3aWR0aCA/IGhlaWdodCA6IDMwMH1cclxuICAgICZrZXk9QUl6YVN5QXNLaDRfVFhwWVY1N1NCczdqM2I2cUZjSlVHNmZOSG9VYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBwcmltYXJ5IG1hcCB0byB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZCxcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHNlY29uZGFyeSBtYXBzIHRvIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgbWludXMgdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWRcclxuICAgKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb252ZXJ0TG9jYXRpb25EYXRhVG9NYXBNYXJrZXJzKGxvY2F0aW9uczogYW55W10pIHtcclxuICAgIHJldHVybiBsb2NhdGlvbnMubWFwKGxvY2F0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIDxNYXBNYXJrZXI+e1xyXG4gICAgICAgIGFkZHJlc3M6IGxvY2F0aW9uLkFkZHJlc3MsXHJcbiAgICAgICAgaWNvbk5hbWU6IGxvY2F0aW9uLkljb24sXHJcbiAgICAgICAgdGl0bGU6IGxvY2F0aW9uLlRpdGxlLFxyXG4gICAgICAgIGxhdDogbG9jYXRpb24uTGF0aXR1ZGUsXHJcbiAgICAgICAgbG5nOiBsb2NhdGlvbi5Mb25naXR1ZGUsXHJcbiAgICAgICAgcGhvbmVOdW1iZXI6IGxvY2F0aW9uLlRlbGVwaG9uZSxcclxuICAgICAgICB0b3duOiBsb2NhdGlvbi5Ub3duLFxyXG4gICAgICAgIGNvdW50cnk6IGxvY2F0aW9uLkNvdW50cnksXHJcbiAgICAgICAgLy8gaWNvblVybDpudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQXlCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTTFELE1BQU0sT0FBTyxVQUFVOzs7Ozs7SUFxRHJCLFlBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBcEUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7UUExQm5GLGtCQUFhLEdBQXNCLElBQUksT0FBTyxFQUFZLENBQUM7UUFFM0QsMkJBQXNCLEdBQXVCLElBQUksT0FBTyxFQUFhLENBQUM7Ozs7UUFLdEUscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUV4QyxvQkFBZSxHQUFxQixFQUFFLENBQUM7Ozs7UUFPdkMsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7Ozs7UUFLekQseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU1uRCxJQUFJLENBQUMsVUFBVTtZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRTtnQkFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFX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Y0FBYzs7Ozs7Ozs7O0lBV3JCLGdDQUFvQzs7Ozs7O0lBS3BDLDZCQUF3Qzs7Ozs7SUFPeEMsaUNBQW1COzs7OztJQUtuQixnQ0FBK0M7Ozs7O0lBSy9DLG1DQUFrRTs7SUFFbEUsNENBQTZFOzs7OztJQUs3RSxzQ0FBK0M7O0lBRS9DLHFDQUE4Qzs7SUFFOUMsbUNBQWdEOzs7OztJQUtoRCxnQ0FBZ0U7Ozs7O0lBS2hFLDBDQUFxRDs7Ozs7SUFLekMsaUNBQXlDOzs7OztJQUFFLCtCQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXJrZXJJbmZvLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBUaHVtYm5haWxMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGh1bWJuYWlsLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUZW1wU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYXRpb25Mb2FkZXIgfSBmcm9tICcuLi91dGlscy9sb2NhdGlvbi1sb2FkZXInO1xyXG5pbXBvcnQgeyBVc2Vyc1N0YXRlTWFuYWdlckNvbnRleHQgfSBmcm9tICcuLi9zdGF0ZS91c2Vycy91c2Vycy1zdGF0ZS1tYW5hZ2VyLmNvbnRleHQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwU2VydmljZSB7XHJcbiAgLy8gRklFTERTXHJcbiAgLyoqXHJcbiAgICogVGhlIHByaW1hcnkgbWFwIHRvIGJlIGRpc3BsYXllZCAtIHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgbWFwIGJlaW5nIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBwcmltYXJ5TWFwOiBJbmRpdmlkdWFsTWFwO1xyXG5cclxuICAvKipcclxuICAgKiBMaXN0IG9mIHNlY29uZGFyeSBtYXBzIGF2YWlsYWJsZSB0byBjaG9vc2UgYXMgcHJpbWFyeSBhbmQgYWxzbyBmb3IgdXNlIGFzIGxheWVycyBpbiB0aGUgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbWFwTGlzdDogQXJyYXk8SW5kaXZpZHVhbE1hcD47XHJcblxyXG4gIC8vIFBST1BFUlRJRVNcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBDdXJhdGVkTGlzdDtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgbmV3IHByaW1hcnkgbWFwIGFueSB0aW1lIHRoZSBtYXBzIChwcmltYXJ5IGFuZCBzZWNvbmRhcnkpIGFyZSBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIE1hcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB0aGF0IGVtaXRzIGxhdC9sbmcgZm9yIG1hcCBwYW5uaW5nXHJcbiAgICovXHJcbiAgcHVibGljIExhdExuZ0VtaXR0ZXI6IFN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcblxyXG4gIHB1YmxpYyBCYXNpY0luZm9XaW5kb3dFbWl0dGVyOiBTdWJqZWN0PE1hcE1hcmtlcj4gPSBuZXcgU3ViamVjdDxNYXBNYXJrZXI+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYWN0aXZlIHNlY29uZGFyeSBsb2NhdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIFZpc2libGVMb2NhdGlvbnM6IEFycmF5PE1hcE1hcmtlcj4gPSBbXTtcclxuXHJcbiAgcHVibGljIExlZ2VuZExvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgVGh1bWJuYWlsTGlzdDogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIE1hcmtlckxpc3Q6IE1hcmtlckluZm9bXSA9IENvbnN0YW50cy5ERUZBVUxUX01BUktFUl9JTkZPO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBoYW1idXJnZXIgbWVudSBzdWJqZWN0IHRvIGRldGVjdCBjbGljayBldmVudFxyXG4gKi9cclxuICBwdWJsaWMgSGFtYnVyZ2VyTWVudVN1YmplY3QgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuXHJcbiAgLy8gQ09OU1RSVUNUT1JTXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0ZW1wU3RvcmFnZTogVGVtcFN0b3JhZ2VTZXJ2aWNlLCBwcm90ZWN0ZWQgbG9jTG9hZGVyOiBMb2NhdGlvbkxvYWRlcikge1xyXG4gICAgdGhpcy5wcmltYXJ5TWFwID1cclxuICAgICAgdGhpcy50ZW1wU3RvcmFnZS5HZXRMYXN0VXNlZElkKCkgIT09ICcnXHJcbiAgICAgICAgPyB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcEJ5SWQodGhpcy50ZW1wU3RvcmFnZS5HZXRMYXN0VXNlZElkKCkpXHJcbiAgICAgICAgOiB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKVswXTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSB0aGlzLnByaW1hcnlNYXAuaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPigpO1xyXG4gICAgdGhpcy5IYW1idXJnZXJNZW51U3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImNvbnN0cnVjdG9yIGNhbGxlZFwiKTtcclxuICB9XHJcblxyXG4gIC8vIExJRkUgQ1lDTEVcclxuXHJcbiAgLy8gQVBJIE1FVEhPRFNcclxuXHJcbiAgcHVibGljIEdldEhhbWJ1cmdlclN1YmplY3QoKXtcclxuICAgIHJldHVybiB0aGlzLkhhbWJ1cmdlck1lbnVTdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFRvZ2dsZUhhbWJ1cmdlck1lbnUoKXtcclxuICAgIHRoaXMuSGFtYnVyZ2VyTWVudVN1YmplY3QubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG1hcCB0byByZXRyaWV2ZVxyXG4gICAqXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKlxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gYWRkXHJcbiAgICpcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBsYXQgVGhlIGxhdGl0dWRlIHRvIHBhbiB0b1xyXG4gICAqIEBwYXJhbSBsbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKlxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3QgVGhlIGxpc3Qgb2YgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKlxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gdGhpcy5DaGVja0ZvckR1cGxpY2F0ZXMobGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0XHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZUxlZ2VuZExvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIlZpc2libGUgbG9jYXRpb25zXCIsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IGxpc3Q7XHJcbiAgfVxyXG5cclxuICBDaGVja0ZvckR1cGxpY2F0ZXMobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IEFycmF5PE1hcE1hcmtlcj4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJDaGVja2luZyBmb3IgZHVwbGljYXRlcyBpbjogXCIsIGxpc3QpO1xyXG4gICAgY29uc3QgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgY29uc3QgaWRzID0gbGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgaWRzVW5pcXVlID0gaWRzLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gaWRzLmluZGV4T2YoaXRlbSkgPj0gaW5kZXg7XHJcbiAgICB9KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidW5pcXVlIGlkcyBsZW5ndGggPSBcIiwgaWRzVW5pcXVlLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlkc1VuaXF1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wTWFya2VyID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkJ5SWQoaWRzVW5pcXVlW2ldKTtcclxuICAgICAgLy8gaWYgaXRzIGluIHRoZSBtYXN0ZXJsaXN0XHJcbiAgICAgIGlmICh0ZW1wTWFya2VyKSB7XHJcbiAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAucHVzaChsaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IGlkc1VuaXF1ZVtpXSlbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkNoZWNrZWQgZm9yIGR1cGxpY2F0ZXNcIiwgdGVtcCk7XHJcbiAgICByZXR1cm4gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byByZXBsYWNlIHRoZSBvbmxkIG9uZSB3aXRoXHJcbiAgICpcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKlxyXG4gICAqIGEgdGh1bWJuYWlsIGxpc3QgY29udGFpbnMgdGhlIGltZyB1cmwsIHRoZSB0aXRsZSBvZiB0aGUgbWFwLCBhbmQgdGhlIGxhdCBhbmQgbG9uZyBvZiB0aGUgb3JnaW5cclxuICAgKlxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIGNvbnN0IHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wID0gbmV3IFRodW1ibmFpbExpc3RNb2RlbChcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLFxyXG4gICAgICAgIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSxcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLnRpdGxlLFxyXG4gICAgICAgICtMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsXHJcbiAgICAgICAgK0xpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZ1xyXG4gICAgICApO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIENhbGxzIHRoZSBwcm90ZWN0ZWQgbWV0aG9kIFwic2V0TWFwc1dpdGhQcmltYXJ5SWRcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcmltYXJ5TWFwQ2hhbmdlZChpZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGFsbCB0aGUgbWFwcyBmcm9tIHRoZSBkYiAoZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSlcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTWFwcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuRGVsZXRlTWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRJbmRpdmlkdWFsTWFwc0Zyb21Vc2VyTWFwcyhtYXBzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIG1hcHMubWFwKG1hcCA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgSW5kaXZpZHVhbE1hcCh7XHJcbiAgICAgICAgaWQ6IG1hcC5JRCxcclxuICAgICAgICB0aXRsZTogbWFwLlRpdGxlLFxyXG4gICAgICAgIG9yaWdpbjogeyBsYXQ6IG1hcC5MYXRpdHVkZSwgbG5nOiBtYXAuTG9uZ2l0dWRlIH0sXHJcbiAgICAgICAgem9vbTogbWFwLlpvb20sXHJcbiAgICAgICAgbG9jYXRpb25MaXN0OiBbXVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE1hcE1hcmtlcnNGcm9tTG9jYXRpb25zKGxvY2F0aW9uczogYW55W10sIG1hcElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1hcE1hcmtlcnMgPSB0aGlzLmNvbnZlcnRMb2NhdGlvbkRhdGFUb01hcE1hcmtlcnMobG9jYXRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdExvY2F0aW9uTGlzdChtYXBNYXJrZXJzLCBtYXBJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBIRUxQRVJTXHJcblxyXG4gIHByb3RlY3RlZCBmb3JtYXRMb2NhdGlvbkxpc3QobG9jYXRpb25zOiBBcnJheTxhbnk+LCBtYXBJZDogc3RyaW5nKTogQXJyYXk8TWFwTWFya2VyPiB7XHJcbiAgICBsb2NhdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICAobG9jLm1hcF9pZCA9IG1hcElkKSxcclxuICAgICAgKGxvYy5pZCA9IGxvYy5JRCk7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBsb2MuaWNvbk5hbWUgPSBsb2MuaWNvbk5hbWUgPT09ICdob3RlbCcgPyAnbG9kZ2luZycgOiBsb2MuaWNvbk5hbWU7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZSA9PT0gJ3VuZXNjbycgPyAnVU5FU0NPJyA6IGxvYy5pY29uTmFtZTtcclxuICAgICAgLy8gbG9jLnRpdGxlID0gbG9jLlRpdGxlO1xyXG4gICAgICAvLyBsb2MubGF0ID0gbG9jLkxhdGl0dWRlO1xyXG4gICAgICAvLyBsb2MubG5nID0gbG9jLkxvbmdpdHVkZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxvY2F0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIGNvbmZpZ3VyYXRpb24gZnJvbSB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYSB0aHVtYm5haWxcclxuICAgKiBAcGFyYW0gd2lkdGggT3B0aW9uYWwgd2lkdGggcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSBoZWlndGgpXHJcbiAgICogQHBhcmFtIGhlaWdodCBPcHRpb25hbCBoZWlnaHQgcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSB3aWR0aClcclxuICAgKlxyXG4gICAqIFRha2VzIGEgbWFwIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcmV0dXJucyBhIGdvb2dsZSBtYXBzIHN0YXRpYyBtYXAgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbFxyXG4gICAqXHJcbiAgICogSW4gb3JkZXIgdG8gc3BlY2lmeSBoZWlnaHQgYW5kIHdpZHRoLCB5b3UgbXVzdCBzcGVjaWZ5IEJPVEgsIG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgMzAweDMwMFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRNYXBUaHVtYm5haWwobWFwOiBJbmRpdmlkdWFsTWFwLCB3aWR0aD8sIGhlaWdodD8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwP2NlbnRlcj0ke21hcC5vcmlnaW4ubGF0fSwke21hcC5vcmlnaW4ubG5nfVxyXG4gICAgJnpvb209JHttYXAuem9vbSAtIDJ9XHJcbiAgICAmc2l6ZT0ke2hlaWdodCAmJiB3aWR0aCA/IHdpZHRoIDogMzAwfXgke2hlaWdodCAmJiB3aWR0aCA/IGhlaWdodCA6IDMwMH1cclxuICAgICZrZXk9QUl6YVN5QXNLaDRfVFhwWVY1N1NCczdqM2I2cUZjSlVHNmZOSG9VYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBwcmltYXJ5IG1hcCB0byB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZCxcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHNlY29uZGFyeSBtYXBzIHRvIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgbWludXMgdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWRcclxuICAgKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb252ZXJ0TG9jYXRpb25EYXRhVG9NYXBNYXJrZXJzKGxvY2F0aW9uczogYW55W10pIHtcclxuICAgIHJldHVybiBsb2NhdGlvbnMubWFwKGxvY2F0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIDxNYXBNYXJrZXI+e1xyXG4gICAgICAgIGFkZHJlc3M6IGxvY2F0aW9uLkFkZHJlc3MsXHJcbiAgICAgICAgaWNvbk5hbWU6IGxvY2F0aW9uLkljb24sXHJcbiAgICAgICAgdGl0bGU6IGxvY2F0aW9uLlRpdGxlLFxyXG4gICAgICAgIGxhdDogbG9jYXRpb24uTGF0aXR1ZGUsXHJcbiAgICAgICAgbG5nOiBsb2NhdGlvbi5Mb25naXR1ZGUsXHJcbiAgICAgICAgcGhvbmVOdW1iZXI6IGxvY2F0aW9uLlRlbGVwaG9uZSxcclxuICAgICAgICB0b3duOiBsb2NhdGlvbi5Ub3duLFxyXG4gICAgICAgIGNvdW50cnk6IGxvY2F0aW9uLkNvdW50cnksXHJcbiAgICAgICAgLy8gaWNvblVybDpudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19

@@ -35,2 +35,6 @@ /**

this.MarkerList = Constants.DEFAULT_MARKER_INFO;
/**
* The hamburger menu subject to detect click event
*/
this.HamburgerMenuSubject = new Subject();
this.primaryMap =

@@ -46,2 +50,3 @@ this.tempStorage.GetLastUsedId() !== ''

this.MapChanged = new EventEmitter();
this.HamburgerMenuSubject = new Subject();
// console.log("constructor called");

@@ -56,3 +61,3 @@ }

*/
MapService.prototype.GetLegendLocations =
MapService.prototype.GetHamburgerSubject =
// LIFE CYCLE

@@ -64,2 +69,20 @@ // API METHODS

function () {
return this.HamburgerMenuSubject;
};
/**
* @return {?}
*/
MapService.prototype.ToggleHamburgerMenu = /**
* @return {?}
*/
function () {
this.HamburgerMenuSubject.next(false);
};
/**
* @return {?}
*/
MapService.prototype.GetLegendLocations = /**
* @return {?}
*/
function () {
this.LegendLocations = this.tempStorage.GetLocationLegend();

@@ -695,3 +718,8 @@ return this.LegendLocations;

/**
* The hamburger menu subject to detect click event
* @type {?}
*/
MapService.prototype.HamburgerMenuSubject;
/**
* @type {?}
* @protected

@@ -706,2 +734,2 @@ */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQXlCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBRzFEO0lBZ0RFLGVBQWU7SUFFZixvQkFBc0IsV0FBK0IsRUFBWSxTQUF5QjtRQUExRixpQkFRQztRQVJxQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFBWSxjQUFTLEdBQVQsU0FBUyxDQUFnQjs7OztRQXBCbkYsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQzs7OztRQU92QyxlQUFVLEdBQWlCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztRQUs5RCxJQUFJLENBQUMsVUFBVTtZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRTtnQkFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFB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QkFBVztnQkFDaEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO2dCQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dCQUN0QixHQUFHLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQ3ZCLFdBQVcsRUFBRSxRQUFRLENBQUMsU0FBUztnQkFDL0IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUNuQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87YUFFMUIsRUFBQSxDQUFDO1FBQ0osQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkFoVkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFOUSxrQkFBa0I7Z0JBQ2xCLGNBQWM7OztxQkFOdkI7Q0EwVkMsQUFqVkQsSUFpVkM7U0E5VVksVUFBVTs7Ozs7OztJQUtyQixnQ0FBb0M7Ozs7OztJQUtwQyw2QkFBd0M7Ozs7O0lBT3hDLGlDQUFtQjs7Ozs7SUFLbkIsZ0NBQStDOzs7OztJQUsvQyxtQ0FBa0U7O0lBRWxFLDRDQUE2RTs7Ozs7SUFLN0Usc0NBQStDOztJQUUvQyxxQ0FBOEM7O0lBRTlDLG1DQUFnRDs7Ozs7SUFLaEQsZ0NBQWdFOzs7OztJQUlwRCxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcbmltcG9ydCB7IFVzZXJzU3RhdGVNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uL3N0YXRlL3VzZXJzL3VzZXJzLXN0YXRlLW1hbmFnZXIuY29udGV4dCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuICAvLyBGSUVMRFNcclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0O1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zOiBBcnJheTxNYXBNYXJrZXI+ID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9XHJcbiAgICAgIHRoaXMudGVtcFN0b3JhZ2UuR2V0TGFzdFVzZWRJZCgpICE9PSAnJ1xyXG4gICAgICAgID8gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBCeUlkKHRoaXMudGVtcFN0b3JhZ2UuR2V0TGFzdFVzZWRJZCgpKVxyXG4gICAgICAgIDogdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KClbMF07XHJcbiAgICB0aGlzLm1hcExpc3QgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKS5maWx0ZXIobWFwID0+IG1hcC5pZCAhPT0gdGhpcy5wcmltYXJ5TWFwLmlkKTtcclxuICAgIHRoaXMuTWFwQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SW5kaXZpZHVhbE1hcD4oKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiY29uc3RydWN0b3IgY2FsbGVkXCIpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG1hcCB0byByZXRyaWV2ZVxyXG4gICAqXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKlxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gYWRkXHJcbiAgICpcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBsYXQgVGhlIGxhdGl0dWRlIHRvIHBhbiB0b1xyXG4gICAqIEBwYXJhbSBsbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKlxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3QgVGhlIGxpc3Qgb2YgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKlxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gdGhpcy5DaGVja0ZvckR1cGxpY2F0ZXMobGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0XHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZUxlZ2VuZExvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIlZpc2libGUgbG9jYXRpb25zXCIsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IGxpc3Q7XHJcbiAgfVxyXG5cclxuICBDaGVja0ZvckR1cGxpY2F0ZXMobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IEFycmF5PE1hcE1hcmtlcj4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJDaGVja2luZyBmb3IgZHVwbGljYXRlcyBpbjogXCIsIGxpc3QpO1xyXG4gICAgY29uc3QgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgY29uc3QgaWRzID0gbGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgaWRzVW5pcXVlID0gaWRzLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gaWRzLmluZGV4T2YoaXRlbSkgPj0gaW5kZXg7XHJcbiAgICB9KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidW5pcXVlIGlkcyBsZW5ndGggPSBcIiwgaWRzVW5pcXVlLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlkc1VuaXF1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wTWFya2VyID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkJ5SWQoaWRzVW5pcXVlW2ldKTtcclxuICAgICAgLy8gaWYgaXRzIGluIHRoZSBtYXN0ZXJsaXN0XHJcbiAgICAgIGlmICh0ZW1wTWFya2VyKSB7XHJcbiAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAucHVzaChsaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IGlkc1VuaXF1ZVtpXSlbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkNoZWNrZWQgZm9yIGR1cGxpY2F0ZXNcIiwgdGVtcCk7XHJcbiAgICByZXR1cm4gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byByZXBsYWNlIHRoZSBvbmxkIG9uZSB3aXRoXHJcbiAgICpcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKlxyXG4gICAqIGEgdGh1bWJuYWlsIGxpc3QgY29udGFpbnMgdGhlIGltZyB1cmwsIHRoZSB0aXRsZSBvZiB0aGUgbWFwLCBhbmQgdGhlIGxhdCBhbmQgbG9uZyBvZiB0aGUgb3JnaW5cclxuICAgKlxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIGNvbnN0IHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0ZW1wID0gbmV3IFRodW1ibmFpbExpc3RNb2RlbChcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLFxyXG4gICAgICAgIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSxcclxuICAgICAgICBMaXN0T2ZNYXBzW2ldLnRpdGxlLFxyXG4gICAgICAgICtMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsXHJcbiAgICAgICAgK0xpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZ1xyXG4gICAgICApO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIENhbGxzIHRoZSBwcm90ZWN0ZWQgbWV0aG9kIFwic2V0TWFwc1dpdGhQcmltYXJ5SWRcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcmltYXJ5TWFwQ2hhbmdlZChpZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGFsbCB0aGUgbWFwcyBmcm9tIHRoZSBkYiAoZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSlcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTWFwcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuRGVsZXRlTWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRJbmRpdmlkdWFsTWFwc0Zyb21Vc2VyTWFwcyhtYXBzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIG1hcHMubWFwKG1hcCA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgSW5kaXZpZHVhbE1hcCh7XHJcbiAgICAgICAgaWQ6IG1hcC5JRCxcclxuICAgICAgICB0aXRsZTogbWFwLlRpdGxlLFxyXG4gICAgICAgIG9yaWdpbjogeyBsYXQ6IG1hcC5MYXRpdHVkZSwgbG5nOiBtYXAuTG9uZ2l0dWRlIH0sXHJcbiAgICAgICAgem9vbTogbWFwLlpvb20sXHJcbiAgICAgICAgbG9jYXRpb25MaXN0OiBbXVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE1hcE1hcmtlcnNGcm9tTG9jYXRpb25zKGxvY2F0aW9uczogYW55W10sIG1hcElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1hcE1hcmtlcnMgPSB0aGlzLmNvbnZlcnRMb2NhdGlvbkRhdGFUb01hcE1hcmtlcnMobG9jYXRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdExvY2F0aW9uTGlzdChtYXBNYXJrZXJzLCBtYXBJZCk7XHJcbiAgfVxyXG5cclxuICAvLyBIRUxQRVJTXHJcblxyXG4gIHByb3RlY3RlZCBmb3JtYXRMb2NhdGlvbkxpc3QobG9jYXRpb25zOiBBcnJheTxhbnk+LCBtYXBJZDogc3RyaW5nKTogQXJyYXk8TWFwTWFya2VyPiB7XHJcbiAgICBsb2NhdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICAobG9jLm1hcF9pZCA9IG1hcElkKSxcclxuICAgICAgKGxvYy5pZCA9IGxvYy5JRCk7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBsb2MuaWNvbk5hbWUgPSBsb2MuaWNvbk5hbWUgPT09ICdob3RlbCcgPyAnbG9kZ2luZycgOiBsb2MuaWNvbk5hbWU7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZSA9PT0gJ3VuZXNjbycgPyAnVU5FU0NPJyA6IGxvYy5pY29uTmFtZTtcclxuICAgICAgLy8gbG9jLnRpdGxlID0gbG9jLlRpdGxlO1xyXG4gICAgICAvLyBsb2MubGF0ID0gbG9jLkxhdGl0dWRlO1xyXG4gICAgICAvLyBsb2MubG5nID0gbG9jLkxvbmdpdHVkZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxvY2F0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIGNvbmZpZ3VyYXRpb24gZnJvbSB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYSB0aHVtYm5haWxcclxuICAgKiBAcGFyYW0gd2lkdGggT3B0aW9uYWwgd2lkdGggcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSBoZWlndGgpXHJcbiAgICogQHBhcmFtIGhlaWdodCBPcHRpb25hbCBoZWlnaHQgcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSB3aWR0aClcclxuICAgKlxyXG4gICAqIFRha2VzIGEgbWFwIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcmV0dXJucyBhIGdvb2dsZSBtYXBzIHN0YXRpYyBtYXAgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbFxyXG4gICAqXHJcbiAgICogSW4gb3JkZXIgdG8gc3BlY2lmeSBoZWlnaHQgYW5kIHdpZHRoLCB5b3UgbXVzdCBzcGVjaWZ5IEJPVEgsIG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgMzAweDMwMFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRNYXBUaHVtYm5haWwobWFwOiBJbmRpdmlkdWFsTWFwLCB3aWR0aD8sIGhlaWdodD8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwP2NlbnRlcj0ke21hcC5vcmlnaW4ubGF0fSwke21hcC5vcmlnaW4ubG5nfVxyXG4gICAgJnpvb209JHttYXAuem9vbSAtIDJ9XHJcbiAgICAmc2l6ZT0ke2hlaWdodCAmJiB3aWR0aCA/IHdpZHRoIDogMzAwfXgke2hlaWdodCAmJiB3aWR0aCA/IGhlaWdodCA6IDMwMH1cclxuICAgICZrZXk9QUl6YVN5QXNLaDRfVFhwWVY1N1NCczdqM2I2cUZjSlVHNmZOSG9VYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBwcmltYXJ5IG1hcCB0byB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZCxcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHNlY29uZGFyeSBtYXBzIHRvIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgbWludXMgdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWRcclxuICAgKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb252ZXJ0TG9jYXRpb25EYXRhVG9NYXBNYXJrZXJzKGxvY2F0aW9uczogYW55W10pIHtcclxuICAgIHJldHVybiBsb2NhdGlvbnMubWFwKGxvY2F0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIDxNYXBNYXJrZXI+e1xyXG4gICAgICAgIGFkZHJlc3M6IGxvY2F0aW9uLkFkZHJlc3MsXHJcbiAgICAgICAgaWNvbk5hbWU6IGxvY2F0aW9uLkljb24sXHJcbiAgICAgICAgdGl0bGU6IGxvY2F0aW9uLlRpdGxlLFxyXG4gICAgICAgIGxhdDogbG9jYXRpb24uTGF0aXR1ZGUsXHJcbiAgICAgICAgbG5nOiBsb2NhdGlvbi5Mb25naXR1ZGUsXHJcbiAgICAgICAgcGhvbmVOdW1iZXI6IGxvY2F0aW9uLlRlbGVwaG9uZSxcclxuICAgICAgICB0b3duOiBsb2NhdGlvbi5Ub3duLFxyXG4gICAgICAgIGNvdW50cnk6IGxvY2F0aW9uLkNvdW50cnksXHJcbiAgICAgICAgLy8gaWNvblVybDpudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQXlCLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBRzFEO0lBc0RFLGVBQWU7SUFFZixvQkFBc0IsV0FBK0IsRUFBWSxTQUF5QjtRQUExRixpQkFTQztRQVRxQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFBWSxjQUFTLEdBQVQsU0FBUyxDQUFnQjs7OztRQTFCbkYsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQzs7OztRQU92QyxlQUFVLEdBQWlCLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQzs7OztRQUt6RCx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTW5ELElBQUksQ0FBQyxVQUFVO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxFQUFFLEtBQUssS0FBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQTdCLENBQTZCLEVBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ3BELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ25ELHFDQUFxQztJQUN2QyxDQUFDO0lBRUQsYUFBYTtJQUViLGNBQWM7Ozs7OztJQUVQLHdDQUFtQjs7Ozs7O0lBQTFCO1FBQ0UsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQzs7OztJQUVNLHdDQUFtQjs7O0lBQTFCO1FBQ0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDOzs7O0lBRU0sdUNBQWtCOzs7SUFBekI7UUFDRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHOzs7OztJQUNJLHFDQUFnQjs7OztJQUF2QjtRQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksa0NBQWE7Ozs7SUFBcEI7UUFDRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHOzs7OztJQUNJLCtCQUFVOzs7O0lBQWpCO1FBQ0UsdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksK0JBQVU7Ozs7SUFBakI7UUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7OztJQUNJLCtCQUFVOzs7Ozs7O0lBQWpCLFVBQWtCLEVBQUU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFiLENBQWEsRUFBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHOzs7Ozs7O0lBQ0ksa0NBQWE7Ozs7OztJQUFwQjtRQUNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0ksMkJBQU07Ozs7Ozs7SUFBYixVQUFjLEdBQUc7UUFDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7Ozs7Ozs7OztJQUNJLGlDQUFZOzs7Ozs7OztJQUFuQixVQUFvQixHQUFHLEVBQUUsR0FBRztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7OztPQUlHOzs7Ozs7O0lBQ0kscUNBQWdCOzs7Ozs7SUFBdkIsVUFBd0IsTUFBaUI7UUFDdkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0ksMkNBQXNCOzs7Ozs7O0lBQTdCLFVBQThCLElBQUk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRDs7O09BR0c7Ozs7OztJQUNJLDBDQUFxQjs7Ozs7SUFBNUIsVUFBNkIsSUFBSTtRQUMvQiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFFRCx1Q0FBa0I7Ozs7SUFBbEIsVUFBbUIsSUFBc0I7OztZQUVqQyxJQUFJLEdBQXFCLElBQUksS0FBSyxFQUFhOztZQUUvQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUc7Ozs7UUFBQyxVQUFTLElBQUk7WUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pCLENBQUMsRUFBQzs7WUFDSSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU07Ozs7O1FBQUMsVUFBUyxJQUFJLEVBQUUsS0FBSztZQUMvQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3BDLENBQUMsRUFBQztnQ0FFTyxDQUFDOztnQkFDRixVQUFVLEdBQUcsT0FBSyxXQUFXLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSwyQkFBMkI7WUFDM0IsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNOzs7O2dCQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQXhCLENBQXdCLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdEOzs7UUFSSCx5REFBeUQ7UUFDekQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO29CQUFoQyxDQUFDO1NBUVQ7UUFDRCwrQ0FBK0M7UUFDL0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHOzs7Ozs7SUFDSSx3Q0FBbUI7Ozs7O0lBQTFCLFVBQTJCLElBQUk7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0ksK0JBQVU7Ozs7Ozs7SUFBakIsVUFBa0IsR0FBa0I7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ksdUNBQWtCOzs7Ozs7OztJQUF6QixVQUEwQixVQUFnQzs7WUFDbEQsaUJBQWlCLEdBQUcsSUFBSSxLQUFLLEVBQXNCO1FBQ3pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDcEMsSUFBSSxHQUFHLElBQUksa0JBQWtCLENBQ2pDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzdDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ25CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQ3pCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQzFCO1lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO1FBQ0Q7O1dBRUc7UUFDSCxpQkFBaUIsQ0FBQyxJQUFJOzs7OztRQUFDLFVBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxFQUFDLENBQUM7UUFDSCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7T0FLRzs7Ozs7Ozs7SUFDSSxzQ0FBaUI7Ozs7Ozs7SUFBeEIsVUFBeUIsRUFBRTtRQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHOzs7OztJQUNJLCtCQUFVOzs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7Ozs7OztJQUNJLGtEQUE2Qjs7Ozs7SUFBcEMsVUFBcUMsSUFBVztRQUM5QyxPQUFPLElBQUksQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ2pCLE9BQU8sSUFBSSxhQUFhLENBQUM7Z0JBQ3ZCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7Z0JBQ2hCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFO2dCQUNqRCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLEVBQUU7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFTSwrQ0FBMEI7Ozs7O0lBQWpDLFVBQWtDLFNBQWdCLEVBQUUsS0FBYTs7WUFDekQsVUFBVSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVOzs7Ozs7OztJQUVBLHVDQUFrQjs7Ozs7Ozs7SUFBNUIsVUFBNkIsU0FBcUIsRUFBRSxLQUFhO1FBQy9ELFNBQVMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ25CLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNuRSxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDbkUseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiwyQkFBMkI7UUFDN0IsQ0FBQyxFQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHOzs7Ozs7Ozs7Ozs7O0lBQ08sb0NBQWU7Ozs7Ozs7Ozs7OztJQUF6QixVQUEwQixHQUFrQixFQUFFLEtBQU0sRUFBRSxNQUFPO1FBQzNELE9BQU8sMkRBQXlELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxxQkFDeEYsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLHNCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyx3REFDMUIsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHOzs7Ozs7Ozs7Ozs7O0lBQ08seUNBQW9COzs7Ozs7Ozs7Ozs7SUFBOUIsVUFBK0IsRUFBVTtRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Ozs7O0lBRVMsb0RBQStCOzs7OztJQUF6QyxVQUEwQyxTQUFnQjtRQUN4RCxPQUFPLFNBQVMsQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQSxRQUFRO1lBQzNCLE9BQU8sbUJBQVc7Z0JBQ2hCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztnQkFDekIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUN2QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLEdBQUcsRUFBRSxRQUFRLENBQUMsUUFBUTtnQkFDdEIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUN2QixXQUFXLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQy9CLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtnQkFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO2FBRTFCLEVBQUEsQ0FBQztRQUNKLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0JBL1ZGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTlEsa0JBQWtCO2dCQUNsQixjQUFjOzs7cUJBTnZCO0NBeVdDLEFBaFdELElBZ1dDO1NBN1ZZLFVBQVU7Ozs7Ozs7SUFLckIsZ0NBQW9DOzs7Ozs7SUFLcEMsNkJBQXdDOzs7OztJQU94QyxpQ0FBbUI7Ozs7O0lBS25CLGdDQUErQzs7Ozs7SUFLL0MsbUNBQWtFOztJQUVsRSw0Q0FBNkU7Ozs7O0lBSzdFLHNDQUErQzs7SUFFL0MscUNBQThDOztJQUU5QyxtQ0FBZ0Q7Ozs7O0lBS2hELGdDQUFnRTs7Ozs7SUFLaEUsMENBQXFEOzs7OztJQUt6QyxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcbmltcG9ydCB7IFVzZXJzU3RhdGVNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uL3N0YXRlL3VzZXJzL3VzZXJzLXN0YXRlLW1hbmFnZXIuY29udGV4dCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuICAvLyBGSUVMRFNcclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0O1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zOiBBcnJheTxNYXBNYXJrZXI+ID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4vKipcclxuICogVGhlIGhhbWJ1cmdlciBtZW51IHN1YmplY3QgdG8gZGV0ZWN0IGNsaWNrIGV2ZW50XHJcbiAqL1xyXG4gIHB1YmxpYyBIYW1idXJnZXJNZW51U3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG5cclxuICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlbXBTdG9yYWdlOiBUZW1wU3RvcmFnZVNlcnZpY2UsIHByb3RlY3RlZCBsb2NMb2FkZXI6IExvY2F0aW9uTG9hZGVyKSB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPVxyXG4gICAgICB0aGlzLnRlbXBTdG9yYWdlLkdldExhc3RVc2VkSWQoKSAhPT0gJydcclxuICAgICAgICA/IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwQnlJZCh0aGlzLnRlbXBTdG9yYWdlLkdldExhc3RVc2VkSWQoKSlcclxuICAgICAgICA6IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpWzBdO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IHRoaXMucHJpbWFyeU1hcC5pZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+KCk7XHJcbiAgICB0aGlzLkhhbWJ1cmdlck1lbnVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiY29uc3RydWN0b3IgY2FsbGVkXCIpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0SGFtYnVyZ2VyU3ViamVjdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuSGFtYnVyZ2VyTWVudVN1YmplY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVG9nZ2xlSGFtYnVyZ2VyTWVudSgpe1xyXG4gICAgdGhpcy5IYW1idXJnZXJNZW51U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRMZWdlbmRMb2NhdGlvbnMoKSB7XHJcbiAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25MZWdlbmQoKTtcclxuICAgIHJldHVybiB0aGlzLkxlZ2VuZExvY2F0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhpcyBtYXBsaXN0IGxpc3Qgb2YgdGh1bWJuYWlscyBhbmQgdGhlaXIgaW5mb1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRUaHVtYm5haWxMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuVGh1bWJuYWlsTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHByaW1hcnkgbWFwIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRQcmltYXJ5TWFwKCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMucHJpbWFyeU1hcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc2Vjb25kYXJ5IChub24tcHJpbWFyeSkgbWFwc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBMaXN0KCk6IEFycmF5PEluZGl2aWR1YWxNYXA+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRoZSBtYXBzIGluIHRoZSBkYlxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRBbGxNYXBzKCk6IEFycmF5PEluZGl2aWR1YWxNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbWFwIHRvIHJldHJpZXZlXHJcbiAgICpcclxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgbWFwIHdpdGggYSBzcGVjaWZpYyBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBCeUlkKGlkKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0LmZpbmQobWFwID0+IG1hcC5pZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIG1hcFxyXG4gICAqXHJcbiAgICogVGhpcyB3aWxsIGNhbGwgYSBiYWNrIGVuZCBzZXJ2aWNlIGV2ZW50dWFsbHkgYW5kIHRoZW4gZm9ybWF0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5XHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcmtlckxpc3QoKTogTWFya2VySW5mb1tdIHtcclxuICAgIHJldHVybiB0aGlzLk1hcmtlckxpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBhZGRcclxuICAgKlxyXG4gICAqIEFkZHMgdGhlIG1hcCB0byB0aGUgbWFwIGFycmF5XHJcbiAgICovXHJcbiAgcHVibGljIEFkZE1hcChtYXApOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TWFwc1dpdGhQcmltYXJ5SWQobWFwLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogQHBhcmFtIGxuZyBUaGUgbG9uZ2l0dWRlIHRvIHBhbiB0b1xyXG4gICAqXHJcbiAgICogVGFrZXMgYSBsYXQvbG5nIGFuZCBlbWl0cyBldmVudCBmb3IgbWFwIHRvIGxpc3RlbiB0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBDaGFuZ2VMYXRMbmcobGF0LCBsbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuTGF0TG5nRW1pdHRlci5uZXh0KFtsYXQsIGxuZ10pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICpcclxuICAgKiBUYWtlcyBhIG1hcmtlciBmcm9tIHRoZSBsZWdlbmQgYW5kIHNlbmQgdG8gbGN1LW1hcFxyXG4gICAqL1xyXG4gIHB1YmxpYyBEaXNwbGF5QmFzaWNJbmZvKG1hcmtlcjogTWFwTWFya2VyKTogdm9pZCB7XHJcbiAgICB0aGlzLkJhc2ljSW5mb1dpbmRvd0VtaXR0ZXIubmV4dChtYXJrZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbGlzdCBUaGUgbGlzdCBvZiB2aXNpYmxlIGxvY2F0aW9uc1xyXG4gICAqXHJcbiAgICogV2hlbiBtYXAgdXBkYXRlcyB0aGUgdmlzaWJsZSBsb2NhdGlvbnMsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLlZpc2libGVMb2NhdGlvbnMgPSB0aGlzLkNoZWNrRm9yRHVwbGljYXRlcyhsaXN0KTtcclxuICAgIGlmICh0aGlzLlZpc2libGVMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLlVwZGF0ZUxlZ2VuZExvY2F0aW9ucyh0aGlzLlZpc2libGVMb2NhdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgbGVnZW5kIGFycmF5XHJcbiAgICogQHBhcmFtIGxpc3RcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiVmlzaWJsZSBsb2NhdGlvbnNcIiwgdGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gbGlzdDtcclxuICB9XHJcblxyXG4gIENoZWNrRm9yRHVwbGljYXRlcyhsaXN0OiBBcnJheTxNYXBNYXJrZXI+KTogQXJyYXk8TWFwTWFya2VyPiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkNoZWNraW5nIGZvciBkdXBsaWNhdGVzIGluOiBcIiwgbGlzdCk7XHJcbiAgICBjb25zdCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgICBjb25zdCBpZHMgPSBsaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBpZHNVbmlxdWUgPSBpZHMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIHJldHVybiBpZHMuaW5kZXhPZihpdGVtKSA+PSBpbmRleDtcclxuICAgIH0pO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJ1bmlxdWUgaWRzIGxlbmd0aCA9IFwiLCBpZHNVbmlxdWUubGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzVW5pcXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHRlbXBNYXJrZXIgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uQnlJZChpZHNVbmlxdWVbaV0pO1xyXG4gICAgICAvLyBpZiBpdHMgaW4gdGhlIG1hc3Rlcmxpc3RcclxuICAgICAgaWYgKHRlbXBNYXJrZXIpIHtcclxuICAgICAgICB0ZW1wLnB1c2godGVtcE1hcmtlcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcC5wdXNoKGxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWRzVW5pcXVlW2ldKVswXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKFwiQ2hlY2tlZCBmb3IgZHVwbGljYXRlc1wiLCB0ZW1wKTtcclxuICAgIHJldHVybiB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbGlzdCBzYXZlcyB0aGUgbGVnZW5kIHRvIGxvY2FsIHN0b3JhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZUxlZ2VuZExvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlNhdmVMb2NhdGlvbkxlZ2VuZChsaXN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHJlcGxhY2UgdGhlIG9ubGQgb25lIHdpdGhcclxuICAgKlxyXG4gICAqIFRoaXMgcmVwbGFjZXMgdGhlIG1hcCBpbiB0aGUgZGIgd2l0aCB0aGUgbWFwIChiYXNlZCBvbiBpZClcclxuICAgKi9cclxuICBwdWJsaWMgUmVwbGFjZU1hcChtYXA6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuUmVwbGFjZU1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gTGlzdE9mTWFwcyBUaGUgbGlzdCBvZiBtYXBzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0IHRoZSB0aHVtYm5haWxzIGFuZCBvdGhlciBpbmZvIGZvclxyXG4gICAqXHJcbiAgICogYSB0aHVtYm5haWwgbGlzdCBjb250YWlucyB0aGUgaW1nIHVybCwgdGhlIHRpdGxlIG9mIHRoZSBtYXAsIGFuZCB0aGUgbGF0IGFuZCBsb25nIG9mIHRoZSBvcmdpblxyXG4gICAqXHJcbiAgICovXHJcbiAgcHVibGljIEJ1aWxkVGh1bWJuYWlsTGlzdChMaXN0T2ZNYXBzOiBBcnJheTxJbmRpdmlkdWFsTWFwPik6IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4ge1xyXG4gICAgY29uc3QgdGVtcFRodW1ibmFpbExpc3QgPSBuZXcgQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPigpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMaXN0T2ZNYXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHRlbXAgPSBuZXcgVGh1bWJuYWlsTGlzdE1vZGVsKFxyXG4gICAgICAgIExpc3RPZk1hcHNbaV0sXHJcbiAgICAgICAgdGhpcy5nZXRNYXBUaHVtYm5haWwoTGlzdE9mTWFwc1tpXSwgMjAwLCAyMDApLFxyXG4gICAgICAgIExpc3RPZk1hcHNbaV0udGl0bGUsXHJcbiAgICAgICAgK0xpc3RPZk1hcHNbaV0ub3JpZ2luLmxhdCxcclxuICAgICAgICArTGlzdE9mTWFwc1tpXS5vcmlnaW4ubG5nXHJcbiAgICAgICk7XHJcbiAgICAgIHRlbXBUaHVtYm5haWxMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc29ydHMgYmFzZWQgb24gdGhlIFRpdGxlIG9mIHRoZSBtYXAgc28gdGhlIHRodW1ibmFpbCBsaXN0IGlzIGluIGFscGhhYmV0aWNhbCBvcmRlclxyXG4gICAgICovXHJcbiAgICB0ZW1wVGh1bWJuYWlsTGlzdC5zb3J0KCh0MSwgdDIpID0+IHtcclxuICAgICAgcmV0dXJuIHQxLlRpdGxlLnRvVXBwZXJDYXNlKCkgPiB0Mi5UaXRsZS50b1VwcGVyQ2FzZSgpID8gMSA6IC0xO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGVtcFRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqXHJcbiAgICogQ2FsbHMgdGhlIHByb3RlY3RlZCBtZXRob2QgXCJzZXRNYXBzV2l0aFByaW1hcnlJZFwiXHJcbiAgICovXHJcbiAgcHVibGljIFByaW1hcnlNYXBDaGFuZ2VkKGlkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYWxsIHRoZSBtYXBzIGZyb20gdGhlIGRiIChmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEZWxldGVNYXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5EZWxldGVNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEdldEluZGl2aWR1YWxNYXBzRnJvbVVzZXJNYXBzKG1hcHM6IGFueVtdKSB7XHJcbiAgICByZXR1cm4gbWFwcy5tYXAobWFwID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBJbmRpdmlkdWFsTWFwKHtcclxuICAgICAgICBpZDogbWFwLklELFxyXG4gICAgICAgIHRpdGxlOiBtYXAuVGl0bGUsXHJcbiAgICAgICAgb3JpZ2luOiB7IGxhdDogbWFwLkxhdGl0dWRlLCBsbmc6IG1hcC5Mb25naXR1ZGUgfSxcclxuICAgICAgICB6b29tOiBtYXAuWm9vbSxcclxuICAgICAgICBsb2NhdGlvbkxpc3Q6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TWFwTWFya2Vyc0Zyb21Mb2NhdGlvbnMobG9jYXRpb25zOiBhbnlbXSwgbWFwSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgbWFwTWFya2VycyA9IHRoaXMuY29udmVydExvY2F0aW9uRGF0YVRvTWFwTWFya2Vycyhsb2NhdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0TG9jYXRpb25MaXN0KG1hcE1hcmtlcnMsIG1hcElkKTtcclxuICB9XHJcblxyXG4gIC8vIEhFTFBFUlNcclxuXHJcbiAgcHJvdGVjdGVkIGZvcm1hdExvY2F0aW9uTGlzdChsb2NhdGlvbnM6IEFycmF5PGFueT4sIG1hcElkOiBzdHJpbmcpOiBBcnJheTxNYXBNYXJrZXI+IHtcclxuICAgIGxvY2F0aW9ucy5mb3JFYWNoKGxvYyA9PiB7XHJcbiAgICAgIChsb2MubWFwX2lkID0gbWFwSWQpLFxyXG4gICAgICAobG9jLmlkID0gbG9jLklEKTtcclxuICAgICAgbG9jLmljb25OYW1lID0gbG9jLmljb25OYW1lLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxvYy5pY29uTmFtZSA9IGxvYy5pY29uTmFtZSA9PT0gJ2hvdGVsJyA/ICdsb2RnaW5nJyA6IGxvYy5pY29uTmFtZTtcclxuICAgICAgbG9jLmljb25OYW1lID0gbG9jLmljb25OYW1lID09PSAndW5lc2NvJyA/ICdVTkVTQ08nIDogbG9jLmljb25OYW1lO1xyXG4gICAgICAvLyBsb2MudGl0bGUgPSBsb2MuVGl0bGU7XHJcbiAgICAgIC8vIGxvYy5sYXQgPSBsb2MuTGF0aXR1ZGU7XHJcbiAgICAgIC8vIGxvYy5sbmcgPSBsb2MuTG9uZ2l0dWRlO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbG9jYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgY29uZmlndXJhdGlvbiBmcm9tIHdoaWNoIHlvdSB3YW50IHRvIGNyZWF0ZSBhIHRodW1ibmFpbFxyXG4gICAqIEBwYXJhbSB3aWR0aCBPcHRpb25hbCB3aWR0aCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIGhlaWd0aClcclxuICAgKiBAcGFyYW0gaGVpZ2h0IE9wdGlvbmFsIGhlaWdodCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIHdpZHRoKVxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXAgY29uZmlndXJhdGlvbiBmaWxlIGFuZCByZXR1cm5zIGEgZ29vZ2xlIG1hcHMgc3RhdGljIG1hcCB0byBiZSB1c2VkIGFzIGEgdGh1bWJuYWlsXHJcbiAgICpcclxuICAgKiBJbiBvcmRlciB0byBzcGVjaWZ5IGhlaWdodCBhbmQgd2lkdGgsIHlvdSBtdXN0IHNwZWNpZnkgQk9USCwgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBpcyAzMDB4MzAwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldE1hcFRodW1ibmFpbChtYXA6IEluZGl2aWR1YWxNYXAsIHdpZHRoPywgaGVpZ2h0Pyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2VudGVyPSR7bWFwLm9yaWdpbi5sYXR9LCR7bWFwLm9yaWdpbi5sbmd9XHJcbiAgICAmem9vbT0ke21hcC56b29tIC0gMn1cclxuICAgICZzaXplPSR7aGVpZ2h0ICYmIHdpZHRoID8gd2lkdGggOiAzMDB9eCR7aGVpZ2h0ICYmIHdpZHRoID8gaGVpZ2h0IDogMzAwfVxyXG4gICAgJmtleT1BSXphU3lBc0toNF9UWHBZVjU3U0JzN2ozYjZxRmNKVUc2Zk5Ib1VgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHByaW1hcnkgbWFwIHRvIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkLFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgc2Vjb25kYXJ5IG1hcHMgdG8gYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBtaW51cyB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZFxyXG4gICAqXHJcbiAgICogRW1pdHMgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRNYXBzV2l0aFByaW1hcnlJZChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQuZW1pdCh0aGlzLnByaW1hcnlNYXApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNvbnZlcnRMb2NhdGlvbkRhdGFUb01hcE1hcmtlcnMobG9jYXRpb25zOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGxvY2F0aW9ucy5tYXAobG9jYXRpb24gPT4ge1xyXG4gICAgICByZXR1cm4gPE1hcE1hcmtlcj57XHJcbiAgICAgICAgYWRkcmVzczogbG9jYXRpb24uQWRkcmVzcyxcclxuICAgICAgICBpY29uTmFtZTogbG9jYXRpb24uSWNvbixcclxuICAgICAgICB0aXRsZTogbG9jYXRpb24uVGl0bGUsXHJcbiAgICAgICAgbGF0OiBsb2NhdGlvbi5MYXRpdHVkZSxcclxuICAgICAgICBsbmc6IGxvY2F0aW9uLkxvbmdpdHVkZSxcclxuICAgICAgICBwaG9uZU51bWJlcjogbG9jYXRpb24uVGVsZXBob25lLFxyXG4gICAgICAgIHRvd246IGxvY2F0aW9uLlRvd24sXHJcbiAgICAgICAgY291bnRyeTogbG9jYXRpb24uQ291bnRyeSxcclxuICAgICAgICAvLyBpY29uVXJsOm51bGxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=

@@ -41,3 +41,9 @@ import { EventEmitter } from '@angular/core';

MarkerList: MarkerInfo[];
/**
* The hamburger menu subject to detect click event
*/
HamburgerMenuSubject: Subject<boolean>;
constructor(tempStorage: TempStorageService, locLoader: LocationLoader);
GetHamburgerSubject(): Subject<boolean>;
ToggleHamburgerMenu(): void;
GetLegendLocations(): MapMarker[];

@@ -44,0 +50,0 @@ /**

2

package.json
{
"name": "@ambl-on/lcu-ambl-on-common",
"version": "0.2.413-my-atlas",
"version": "0.2.414-my-atlas",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^7.2.0",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc