@dotglitch/ngx-common 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20,7 +20,8 @@ export class CommandPaletteComponent {
|
|
|
20
20
|
this.filteredCommands = [];
|
|
21
21
|
}
|
|
22
22
|
ngOnInit() {
|
|
23
|
-
this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)
|
|
23
|
+
this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)
|
|
24
|
+
.filter(c => c.visibleInList != false);
|
|
24
25
|
this.filteredCommands = this.commands;
|
|
25
26
|
// Reset the filter labels
|
|
26
27
|
this.commands.forEach(command => command['_renderedLabel'] = '');
|
|
@@ -38,11 +39,13 @@ export class CommandPaletteComponent {
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
if (evt.key == "ArrowDown") {
|
|
41
|
-
this.activeIndex = Math.min(this.filteredCommands.length, this.activeIndex + 1);
|
|
42
|
+
this.activeIndex = Math.min(this.filteredCommands.length - 1, this.activeIndex + 1);
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
45
|
this.activeIndex = 0;
|
|
45
46
|
this.commands.forEach(c => c['_renderedLabel'] = '');
|
|
47
|
+
// Check in the next tick to get the input's
|
|
48
|
+
// value so that it's updated
|
|
46
49
|
setTimeout(() => {
|
|
47
50
|
this.queryString = evt.target.value;
|
|
48
51
|
// Whitespace doesn't count.
|
|
@@ -106,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
106
109
|
type: HostListener,
|
|
107
110
|
args: ["window:blur"]
|
|
108
111
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFjbEUsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNxQixjQUFxQyxFQUNyQyxNQUF5QjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSOUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQW9CLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7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QUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLE9BQU8sRUFBRTtvQkFDVCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxhQUFhLENBQUM7b0JBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0o7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxNQUFNO1FBQ0YsdUJBQXVCO0lBQzNCLENBQUM7OEdBM0dRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlMQ3BCcEMsK2pEQTRDQSxzc0NEL0JRLGNBQWMscWpCQUNkLGVBQWUsMmpCQUNmLGlCQUFpQixpakJBQ2pCLGlCQUFpQjs7MkZBSVosdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNJLHFCQUFxQixXQUd0Qjt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7cUJBQ3BCLGNBQ1csSUFBSTtxSEFJUCxjQUFjO3NCQUF0QixLQUFLO2dCQXVHTixNQUFNO3NCQURMLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kQWN0aW9uLCBDb21tYW5kUGFsZXR0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tYW5kLXBhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBTaG9ydGN1dENvbXBvbmVudCB9IGZyb20gJy4vc2hvcnRjdXQvc2hvcnRjdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY29tbWFuZC1wYWxldHRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tYW5kLXBhbGV0dGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBTaG9ydGN1dENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBxdWVyeVN0cmluZyA9IFwiXCI7XG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgY29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuICAgIGZpbHRlcmVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFBhbGV0dGU6IENvbW1hbmRQYWxldHRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxhbnk+XG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZFBhbGV0dGUuZ2V0UmVnaXN0ZXJlZENvbW1hbmRzKHRoaXMuY29udGV4dEVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZpbHRlcmVkQ29tbWFuZHMgPSB0aGlzLmNvbW1hbmRzO1xuXG4gICAgICAgIC8vIFJlc2V0IHRoZSBmaWx0ZXIgbGFiZWxzXG4gICAgICAgIHRoaXMuY29tbWFuZHMuZm9yRWFjaChjb21tYW5kID0+IGNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gPSAnJyk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgIC8vIEZpcmUgdGhlIGZpcnN0IGNvbW1hbmRcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKHRoaXMuZmlsdGVyZWRDb21tYW5kc1t0aGlzLmFjdGl2ZUluZGV4XSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldnQua2V5ID09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICAgICAvLyBGaXJlIHRoZSBmaXJzdCBjb21tYW5kXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gTWF0aC5tYXgodGhpcy5hY3RpdmVJbmRleC0xLCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldnQua2V5ID09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBNYXRoLm1pbih0aGlzLmZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoLCB0aGlzLmFjdGl2ZUluZGV4KzEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5mb3JFYWNoKGMgPT4gY1snX3JlbmRlcmVkTGFiZWwnXSA9ICcnKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdHJpbmcgPSAoZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSBkb2Vzbid0IGNvdW50LlxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlTdHJpbmcudHJpbSgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5Q2hhcnMgPSB0aGlzLnF1ZXJ5U3RyaW5nXG4gICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2YgdGhpcy5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGFiZWwgfSA9IGNvbW1hbmQ7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kQ2hhcnMgPSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlbmRlcmVkTGFiZWwgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgaXNNYXRjaCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgcXVlcnlDaGFycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNvbW1hbmRDaGFycy5pbmRleE9mKGNoYXIsIGxhc3RJbmRleCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4LCBpbmRleCkgKyBgPGI+JHtsYWJlbC5zbGljZShpbmRleCwgaW5kZXgrMSkgfTwvYj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXgrMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gPSByZW5kZXJlZExhYmVsO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkQ29tbWFuZHMucHVzaChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb21tYW5kcyA9IG1hdGNoZWRDb21tYW5kcztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZFBhbGV0dGUuaW52b2tlQWN0aW9uKGNvbW1hbmQpO1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiKVxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgcGFkZGluZzogOHB4IDhweCAwIDhweFwiPlxuICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFt2YWx1ZV09XCJxdWVyeVN0cmluZ1wiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICA+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5AaWYgKGZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoID09IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWFuZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1hbmQgc2VsZWN0ZWRcIj48ZGl2IGNsYXNzPVwibGFiZWxcIj5ObyBtYXRjaGluZyByZXN1bHRzLjwvZGl2PjwvZGl2PlxuICAgIDwvZGl2PlxufVxuQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb21tYW5kc1wiXG4gICAgICAgIFtzdHlsZS5mbGV4XT1cIihmaWx0ZXJlZENvbW1hbmRzLmxlbmd0aCAqIDI4KSArICdweCdcIlxuICAgID5cbiAgICAgICAgPG5nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCIyOFwiIHNjcm9sbFZpZXdwb3J0PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgY29tbWFuZCBvZiBmaWx0ZXJlZENvbW1hbmRzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tbWFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpbmRleD09YWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUNvbW1hbmQoY29tbWFuZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gfHwgY29tbWFuZC5sYWJlbCB8fCBjb21tYW5kLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2hvcnRjdXQgb2YgKGNvbW1hbmQuc2hvcnRjdXRLZXk/LmZpbmQgPyBjb21tYW5kLnNob3J0Y3V0S2V5IDogW2NvbW1hbmQuc2hvcnRjdXRLZXldKTsgdHJhY2sgc2hvcnRjdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3J0Y3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtc2hvcnRjdXQgW3Nob3J0Y3V0XT1cInNob3J0Y3V0XCI+PC9hcHAtc2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICA8L2Rpdj5cbn1cblxuIl19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFjbEUsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNxQixjQUFxQyxFQUNyQyxNQUF5QjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSOUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQW9CLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3pFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLElB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Q0FBQyxDQUFFLE1BQU0sQ0FBQzt3QkFDMUYsU0FBUyxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7cUJBQ3ZCO2lCQUNKO2dCQUVELGFBQWEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLE9BQU8sRUFBRTtvQkFDVCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxhQUFhLENBQUM7b0JBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0o7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxNQUFNO1FBQ0YsdUJBQXVCO0lBQzNCLENBQUM7OEdBOUdRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlMQ3BCcEMsK2pEQTRDQSxzc0NEL0JRLGNBQWMscWpCQUNkLGVBQWUsMmpCQUNmLGlCQUFpQixpakJBQ2pCLGlCQUFpQjs7MkZBSVosdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNJLHFCQUFxQixXQUd0Qjt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7cUJBQ3BCLGNBQ1csSUFBSTtxSEFJUCxjQUFjO3NCQUF0QixLQUFLO2dCQTBHTixNQUFNO3NCQURMLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kQWN0aW9uLCBDb21tYW5kUGFsZXR0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tYW5kLXBhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBTaG9ydGN1dENvbXBvbmVudCB9IGZyb20gJy4vc2hvcnRjdXQvc2hvcnRjdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY29tbWFuZC1wYWxldHRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tYW5kLXBhbGV0dGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBTaG9ydGN1dENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBxdWVyeVN0cmluZyA9IFwiXCI7XG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgY29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuICAgIGZpbHRlcmVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFBhbGV0dGU6IENvbW1hbmRQYWxldHRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxhbnk+XG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZFBhbGV0dGUuZ2V0UmVnaXN0ZXJlZENvbW1hbmRzKHRoaXMuY29udGV4dEVsZW1lbnQpXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy52aXNpYmxlSW5MaXN0ICE9IGZhbHNlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcblxuICAgICAgICAvLyBSZXNldCB0aGUgZmlsdGVyIGxhYmVsc1xuICAgICAgICB0aGlzLmNvbW1hbmRzLmZvckVhY2goY29tbWFuZCA9PiBjb21tYW5kWydfcmVuZGVyZWRMYWJlbCddID0gJycpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2dC5rZXkgPT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAvLyBGaXJlIHRoZSBmaXJzdCBjb21tYW5kXG4gICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJlZENvbW1hbmRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZCh0aGlzLmZpbHRlcmVkQ29tbWFuZHNbdGhpcy5hY3RpdmVJbmRleF0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgLy8gRmlyZSB0aGUgZmlyc3QgY29tbWFuZFxuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IE1hdGgubWF4KHRoaXMuYWN0aXZlSW5kZXgtMSwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gTWF0aC5taW4odGhpcy5maWx0ZXJlZENvbW1hbmRzLmxlbmd0aC0xLCB0aGlzLmFjdGl2ZUluZGV4KzEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5mb3JFYWNoKGMgPT4gY1snX3JlbmRlcmVkTGFiZWwnXSA9ICcnKTtcblxuICAgICAgICAvLyBDaGVjayBpbiB0aGUgbmV4dCB0aWNrIHRvIGdldCB0aGUgaW5wdXQnc1xuICAgICAgICAvLyB2YWx1ZSBzbyB0aGF0IGl0J3MgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdHJpbmcgPSAoZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSBkb2Vzbid0IGNvdW50LlxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlTdHJpbmcudHJpbSgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5Q2hhcnMgPSB0aGlzLnF1ZXJ5U3RyaW5nXG4gICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2YgdGhpcy5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGFiZWwgfSA9IGNvbW1hbmQ7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kQ2hhcnMgPSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlbmRlcmVkTGFiZWwgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgaXNNYXRjaCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgcXVlcnlDaGFycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNvbW1hbmRDaGFycy5pbmRleE9mKGNoYXIsIGxhc3RJbmRleCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4LCBpbmRleCkgKyBgPGI+JHtsYWJlbC5zbGljZShpbmRleCwgaW5kZXgrMSkgfTwvYj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXgrMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gPSByZW5kZXJlZExhYmVsO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkQ29tbWFuZHMucHVzaChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb21tYW5kcyA9IG1hdGNoZWRDb21tYW5kcztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZFBhbGV0dGUuaW52b2tlQWN0aW9uKGNvbW1hbmQpO1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiKVxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgcGFkZGluZzogOHB4IDhweCAwIDhweFwiPlxuICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFt2YWx1ZV09XCJxdWVyeVN0cmluZ1wiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICA+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5AaWYgKGZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoID09IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWFuZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1hbmQgc2VsZWN0ZWRcIj48ZGl2IGNsYXNzPVwibGFiZWxcIj5ObyBtYXRjaGluZyByZXN1bHRzLjwvZGl2PjwvZGl2PlxuICAgIDwvZGl2PlxufVxuQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb21tYW5kc1wiXG4gICAgICAgIFtzdHlsZS5mbGV4XT1cIihmaWx0ZXJlZENvbW1hbmRzLmxlbmd0aCAqIDI4KSArICdweCdcIlxuICAgID5cbiAgICAgICAgPG5nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCIyOFwiIHNjcm9sbFZpZXdwb3J0PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgY29tbWFuZCBvZiBmaWx0ZXJlZENvbW1hbmRzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tbWFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpbmRleD09YWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUNvbW1hbmQoY29tbWFuZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gfHwgY29tbWFuZC5sYWJlbCB8fCBjb21tYW5kLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2hvcnRjdXQgb2YgKGNvbW1hbmQuc2hvcnRjdXRLZXk/LmZpbmQgPyBjb21tYW5kLnNob3J0Y3V0S2V5IDogW2NvbW1hbmQuc2hvcnRjdXRLZXldKTsgdHJhY2sgc2hvcnRjdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3J0Y3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtc2hvcnRjdXQgW3Nob3J0Y3V0XT1cInNob3J0Y3V0XCI+PC9hcHAtc2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICA8L2Rpdj5cbn1cblxuIl19
|
|
@@ -392,4 +392,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
392
392
|
type: HostListener,
|
|
393
393
|
args: ["window:resize"]
|
|
394
394
|
}] } });
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFVLFdBQVcsRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFDbEwsT0FBTyxFQUFnQixpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBMkIsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsU0FBcUIsRUFBRSxPQUFZLEVBQUUsRUFBRTtJQUM1RSxNQUFNLElBQUksR0FBRztRQUNULElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSyxFQUFFLFNBQVM7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FB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QU07c0JBQXJCLEtBQUs7Z0JBQ1UsRUFBRTtzQkFBakIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBeVNFLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgY2FsY01lbnVJdGVtQm91bmRzID0gYXN5bmMgKG1lbnVJdGVtczogTWVudUl0ZW1bXSwgZGF0YU9iajogYW55KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgZGF0YTogZGF0YU9iaixcbiAgICAgICAgaXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgc2VsZkNvcmRzOiB7IGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiB9LFxuICAgICAgICBvd25lckNvcmRzOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCBkYXRhKTtcbn1cblxuY29uc3QgY2FsY0NvbXBvbmVudEJvdW5kcyA9IGFzeW5jIChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YTogYW55KSA9PiB7XG4gICAgLy8gRm9yY2libHkgYm9vdHN0cmFwIHRoZSBjdHggbWVudSBvdXRzaWRlIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24ncyB6b25lLlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IE1BVF9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGRhdGEgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICBkZWwuc3R5bGUubGVmdCA9ICctMTAwMHZ3JztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkZWwpO1xuXG4gICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoY29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVjdDtcbn1cblxuY29uc3QgJGRhdGEgPSBTeW1ib2woXCJkYXRhXCIpO1xuY29uc3QgJGhvdmVyID0gU3ltYm9sKFwiaG92ZXJcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBQb3J0YWxNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgVG9vbHRpcERpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1zOiBNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IE1lbnVPcHRpb25zO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5T3ZlcmxhcCA9IDMyO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBob3ZlckRlbGF5ID0gMzAwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93RGVidWdPdmVybGF5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBvd25lckNvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHNlbGZDb3JkcztcbiAgICBASW5wdXQoKSBwYXJlbnRJdGVtO1xuICAgIEBJbnB1dCgpIHBhcmVudENvbnRleHQ7XG5cbiAgICBwdWJsaWMgaGFzQm9vdHN0cmFwcGVkID0gZmFsc2U7XG4gICAgcHVibGljIHBvaW50ZXJJc09uVm9pZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0xvY2tlZE9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRlckhhc0JlZW5PdmVyTWFzayA9IGZhbHNlO1xuXG4gICAgY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMFxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgc2xhc2hlcyBvciBkb3RzIC0tIHRoYXQgd2lsbCBjbGVhcmx5IGV4Y2x1ZGUgaXQgZnJvbSBiZWluZyBhIG1hdCBpY29uXG4gICAgcHVibGljIHJlYWRvbmx5IG1hdEljb25SeCA9IC9bXFwvXFwuXS9pO1xuICAgIHNob3dJY29uQ29sdW1uID0gdHJ1ZTtcbiAgICBzaG93U2hvcnRjdXRDb2x1bW4gPSB0cnVlO1xuXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdGVtcGxhdGVUeXBlOiBcInRlbXBsYXRlXCIgfCBcImNvbXBvbmVudFwiO1xuICAgIGNvbXBvbmVudFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gICAgcHJpdmF0ZSBjaGlsZERpYWxvZ3M6IE1hdERpYWxvZ1JlZjxhbnk+W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIC8vIG9wdGlvbmFsIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGVzdGltYXRpbmcgZGltZW5zaW9uc1xuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PlxuICAgICkge1xuICAgICAgICAvLyBEZWZhdWx0cyBhcmUgc2V0IGJlZm9yZSBASW5wdXQoKSBob29rcyBldmFsdWF0ZVxuICAgICAgICB0aGlzLmRpYWxvZyA9IHRoaXMuZGlhbG9nIHx8IHRoaXMuX2RhdGE/LmRpYWxvZztcbiAgICAgICAgdGhpcy5kYXRhICA9IHRoaXMuX2RhdGE/LmRhdGE7XG4gICAgICAgIHRoaXMub3duZXJDb3JkcyA9IHRoaXMuX2RhdGE/Lm93bmVyQ29yZHM7XG4gICAgICAgIHRoaXMuc2VsZkNvcmRzID0gdGhpcy5fZGF0YT8uc2VsZkNvcmRzO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZGF0YT8uaXRlbXM7XG4gICAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5fZGF0YT8uY29uZmlnO1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5fZGF0YT8uaWQ7XG4gICAgICAgIHRoaXMucGFyZW50SXRlbSA9IHRoaXMuX2RhdGE/LnBhcmVudEl0ZW07XG4gICAgICAgIHRoaXMucGFyZW50Q29udGV4dCA9IHRoaXMuX2RhdGE/LnBhcmVudENvbnRleHQ7XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IF9kYXRhLnRlbXBsYXRlO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVUeXBlID0gdGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmID8gXCJ0ZW1wbGF0ZVwiIDogXCJjb21wb25lbnRcIjtcblxuICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZVR5cGUgPT0gXCJjb21wb25lbnRcIikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMudGVtcGxhdGUgYXMgYW55KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgICAgIHRoaXMuaXRlbXM/LmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGkgPT0gXCJzdHJpbmdcIikgcmV0dXJuO1xuXG4gICAgICAgICAgICAvLyBTZXQgZGVmYXVsdHNcbiAgICAgICAgICAgIGlbJ19kaXNhYmxlZCddID0gZmFsc2U7XG4gICAgICAgICAgICBpWydfdmlzaWJsZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIGlbJ19jb250ZXh0J10gPSAodHlwZW9mIGkuY29udGV4dCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaS5jb250ZXh0KHRoaXMuZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpLmNvbnRleHQ7XG5cbiAgICAgICAgICAgIGlmIChpLmxhYmVsKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19mb3JtYXR0ZWRMYWJlbCddID0gdGhpcy5mb3JtYXRMYWJlbChpLmxhYmVsKTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkuaXNEaXNhYmxlZCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgdHJ5IHsgaVsnX2Rpc2FibGVkJ10gPSBpLmlzRGlzYWJsZWQodGhpcy5kYXRhIHx8IHt9LCBpWydfY29udGV4dCddKTsgfSBjYXRjaChlKSB7IGNvbnNvbGUud2FybihlKSB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaS5pc1Zpc2libGUgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ192aXNpYmxlJ10gPSBpLmlzVmlzaWJsZSh0aGlzLmRhdGEgfHwge30sIGlbJ19jb250ZXh0J10pOyB9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKSB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaS5saW5rVGVtcGxhdGUgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19saW5rJ10gPSBpLmxpbmtUZW1wbGF0ZSh0aGlzLmRhdGEgfHwge30sIGlbJ19jb250ZXh0J10pOyB9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKSB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgdGhlIGljb24gY29sdW1uIGlmIHRoZXJlIGFyZSBhbnkgaXRlbXMgd2l0aCBhbiBpY29uXG4gICAgICAgIHRoaXMuc2hvd0ljb25Db2x1bW4gPSAhIXRoaXMuaXRlbXM/LmZpbmQoaSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpID09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgaVsnaWNvbiddID09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBpWydpY29uJ10ubGVuZ3RoID4gMlxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNob3dTaG9ydGN1dENvbHVtbiA9ICEhdGhpcy5pdGVtcz8uZmluZChpID0+XG4gICAgICAgICAgICAgICAgdHlwZW9mIGkgPT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpWydzaG9ydGN1dCddID09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBpWydzaG9ydGN1dCddLmxlbmd0aCA+IDJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMub3duZXJDb3Jkcykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZlkgPSBwYXJzZUludCh0aGlzLnNlbGZDb3Jkcy50b3A/LnJlcGxhY2UoJ3B4JywgJycpIHx8ICcwJyk7XG4gICAgICAgICAgICBjb25zdCBzZWxmWCA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLmxlZnQ/LnJlcGxhY2UoJ3B4JywgJycpIHx8ICcwJyk7XG5cbiAgICAgICAgICAgIHRoaXMuY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgICAgICAgICAgdG9wOiB0aGlzLm93bmVyQ29yZHMueSAtIHNlbGZZIC0gKHRoaXMub3ZlcmxheU92ZXJsYXAvMiksXG4gICAgICAgICAgICAgICAgbGVmdDogdGhpcy5vd25lckNvcmRzLnggLSBzZWxmWCAtICh0aGlzLm92ZXJsYXlPdmVybGFwLzIpLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5vd25lckNvcmRzLmhlaWdodCArIHRoaXMub3ZlcmxheU92ZXJsYXAsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMub3duZXJDb3Jkcy53aWR0aCArIHRoaXMub3ZlcmxheU92ZXJsYXBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNCb290c3RyYXBwZWQgPSB0cnVlO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBldnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hcIiwgZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMuY2hpbGREaWFsb2dzLmZvckVhY2goZCA9PiBkLmNsb3NlKHtbJGRhdGFdOiB0cnVlfSkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGFzeW5jIG9uTWVudUl0ZW1DbGljayhpdGVtOiBNZW51SXRlbSwgcm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnc3RyaW5nJykgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpdGVtLnNlcGFyYXRvcikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IGl0ZW1bJ19jb250ZXh0J107XG5cbiAgICAgICAgLy8gSWYgY2FjaGUgaXMgZW5hYmxlZCwgb25seSBsb2FkIGlmIHdlIGRvbid0IGhhdmUgYW55IGNoaWxkcmVuLlxuICAgICAgICBjb25zdCBmb3JjZUxvYWQgPSAoaXRlbS5jYWNoZVJlc29sdmVkQ2hpbGRyZW4gPyAhaXRlbS5jaGlsZHJlbiA6IHRydWUpO1xuXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuUmVzb2x2ZXIgJiYgZm9yY2VMb2FkKSB7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IHRydWU7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGF3YWl0IGl0ZW0uY2hpbGRyZW5SZXNvbHZlcih0aGlzLmRhdGEsIGNvbnRleHQpO1xuICAgICAgICAgICAgaXRlbVsnX2lzUmVzb2x2aW5nJ10gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgaXRlbS5jaGlsZHJlbiA9PSBcImZ1bmN0aW9uXCIgJiYgZm9yY2VMb2FkKSB7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IHRydWU7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGF3YWl0IGl0ZW0uY2hpbGRyZW4odGhpcy5kYXRhLCBjb250ZXh0KTtcbiAgICAgICAgICAgIGl0ZW1bJ19pc1Jlc29sdmluZyddID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGl0ZW0uY2hpbGRyZW47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbVsnX2NoaWxkcmVuJ10gfHwgaXRlbS5jaGlsZFRlbXBsYXRlKVxuICAgICAgICAgICAgcm93Wydfb3BlbiddID0gdHJ1ZTtcblxuICAgICAgICBpZiAoIWl0ZW0uY2hpbGRUZW1wbGF0ZSAmJiAhaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtLmFjdGlvbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBpdGVtLmFjdGlvbih0aGlzLmRhdGEsIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZShyZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIG5vIGFjdGlvbiwgdGhpcyBpcyBzaW1wbHkgYSB0ZXh0IGl0ZW0uXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5lZWQgWCBwb3MsIFkgcG9zLCB3aWR0aCBhbmQgaGVpZ2h0XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHJvdy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBjb3JkcyA9IHtcbiAgICAgICAgICAgIHRvcDogbnVsbCxcbiAgICAgICAgICAgIGxlZnQ6IG51bGwsXG4gICAgICAgICAgICBib3R0b206IG51bGwsXG4gICAgICAgICAgICByaWdodDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFNldCBwb3NpdGlvbiBjb29yZGluYXRlc1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGF3YWl0IChpdGVtLmNoaWxkVGVtcGxhdGVcbiAgICAgICAgICAgID8gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCB7IHRlbXBsYXRlOiBpdGVtLmNoaWxkVGVtcGxhdGUgfSlcbiAgICAgICAgICAgIDogY2FsY01lbnVJdGVtQm91bmRzKGl0ZW1bJ19jaGlsZHJlbiddLCB0aGlzLmRhdGEpKTtcblxuICAgICAgICBpZiAoYm91bmRzLnkgKyBoZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpXG4gICAgICAgICAgICBjb3Jkcy5ib3R0b20gPSBcIjBweFwiO1xuICAgICAgICBpZiAoYm91bmRzLnggKyBib3VuZHMud2lkdGggKyB3aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKVxuICAgICAgICAgICAgY29yZHMubGVmdCA9ICgoYm91bmRzLnggLSB3aWR0aCkpICsgXCJweFwiO1xuXG4gICAgICAgIGlmICghY29yZHMuYm90dG9tKSBjb3Jkcy50b3AgID0gYm91bmRzLnkgKyBcInB4XCI7XG4gICAgICAgIGlmICghY29yZHMubGVmdCkgICBjb3Jkcy5sZWZ0ID0gYm91bmRzLnggKyBib3VuZHMud2lkdGggKyBcInB4XCI7XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihNZW51Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtbWVudVwiXS5jb25jYXQodGhpcy5jb25maWc/LmN1c3RvbUNsYXNzIHx8IFtdKSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFwibmd4LW1lbnUtYmFja2Ryb3BcIixcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogcm93LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIHNlbGZDb3JkczogY29yZHMsXG4gICAgICAgICAgICAgICAgcGFyZW50SXRlbTogaXRlbSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtWydfY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogaXRlbS5jaGlsZFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IF9zID0gZGlhbG9nUmVmXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBDbGlja2VkIFwidm9pZFwiIG9uIGEgc3VibWVudVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PSBcIm9iamVjdFwiICYmIHJlc3VsdFskZGF0YV0gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlbnQgYmFjayB0byBwYXJlbnQgbWVudSAtLSBkbyBub3QgY2xvc2UgKHNhbWUgYXMgcmVzdWx0ID09IG51bGwpXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIiAmJiByZXN1bHRbJGRhdGFdID09IGZhbHNlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBHb3Qgc29tZSBvdGhlciByZXN1bHQgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmZvcm0gYWN0aW9uIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0uYWN0aW9uID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKGF3YWl0IGl0ZW0uYWN0aW9uKHJlc3VsdCwgY29udGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBjbG9zZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJvd1snX29wZW4nXSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGREaWFsb2dzLnNwbGljZSh0aGlzLmNoaWxkRGlhbG9ncy5pbmRleE9mKGRpYWxvZ1JlZiksIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIF9zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jaGlsZERpYWxvZ3MucHVzaChkaWFsb2dSZWYpO1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhYmVsXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBmb3JtYXRMYWJlbChsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsLnJlcGxhY2UoL18oW2EtejAtOV0pXy9pLCAobWF0Y2gsIGdyb3VwKSA9PiBgPHU+JHtncm91cH08L3U+YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgdGhlIGNvbnRleHQgbWVudSB1bmRlciB0aGVzZSBjaXJjdW1zdGFuY2VzXG4gICAgICovXG4gICAgLy8gQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgWydldmVudCddKVxuICAgIC8vIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiLCBbJ2V2ZW50J10pXG4gICAgY2xvc2UocmVzdWx0Pykge1xuICAgICAgICB0aGlzLmNoaWxkRGlhbG9ncy5mb3JFYWNoKGQgPT4gZC5jbG9zZSgpKVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICBjbG9zZU9uVm9pZChmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2tlZE9wZW4gfHwgZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2Uoe1skZGF0YV06IGZvcmNlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGFydEhvdmVyVGltZXIoaXRlbSwgcm93KSB7XG5cbiAgICAgICAgLy8gSW52ZXJ0IGNoZWNrIHRvIG1ha2UgdGhlIGxvZ2ljIHNpbXBsZXJcbiAgICAgICAgLy8gVEw7RFI6IGlmIChhbnkpIG9mIHRoZXNlIGFyZSB0cnVlLCB3ZSB3aWxsIGRvIHRoZSBob3ZlciBhY3Rpb25cbiAgICAgICAgaWYgKCEoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGl0ZW0uY2hpbGRyZW4pICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0uY2hpbGRyZW4gPT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICAgICAgICBpdGVtLmNoaWxkVGVtcGxhdGUgfHxcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW5SZXNvbHZlclxuICAgICAgICApKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGl0ZW1bJGhvdmVyXSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIGl0ZW1bJGhvdmVyXTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLnBvaW50ZXJJc09uVm9pZCkge1xuICAgICAgICAgICAgICAgIHJvd1snX29wZW4nXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2soaXRlbSwgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5ob3ZlckRlbGF5KTtcbiAgICB9XG4gICAgc3RvcEhvdmVyVGltZXIoaXRlbSkge1xuICAgICAgICBpdGVtWyRob3Zlcl0gJiYgY2xlYXJUaW1lb3V0KGl0ZW1bJGhvdmVyXSk7XG4gICAgICAgIGRlbGV0ZSBpdGVtWyRob3Zlcl07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRpYWxvZyBpcyBjbGlwcGluZyBvZmZzY3JlZW5cbiAgICAgKiBpZiBzbywgbW92ZSBpdCBiYWNrIGludG8gdmlldy5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHByaXZhdGUgb25SZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIWVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB4LCB5IH0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLm5neC1tZW51XCIpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIE1vdmUgYmFjayBpbnRvIHZpZXcgaWYgd2UncmUgY2xpcHBpbmcgb3V0c2lkZSBvZiB0aGUgYm90dG9tXG4gICAgICAgIGlmICh5ICsgaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gKGhlaWdodCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIjtcbiAgICAgICAgICAgIHRhcmdldC5zdHlsZVsnbWFyZ2luLXRvcCddID0gbmV3VG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92ZSBiYWNrIGludG8gdmlldyBpZiB3ZSdyZSBjbGlwcGluZyBvZmYgdGhlIHJpZ2h0XG4gICAgICAgIGlmICh4ICsgd2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgICAgY29uc3QgbmV3TGVmdCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtICh3aWR0aCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIlxuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlWydtYXJnaW4tbGVmdCddID0gbmV3TGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSB2b2lkIGVsZW1lbnQgZ2V0cyBzdHVjayBvcGVuLCBtYWtlIHdoZWVsIGV2ZW50cyBwYXNzIHRocm91Z2guXG4gICAgb25XaGVlbChldnQ6IFdoZWVsRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoZXZ0LmNsaWVudFgsIGV2dC5jbGllbnRZKTtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcblxuICAgICAgICB0YXJnZXQuc2Nyb2xsKHtcbiAgICAgICAgICAgIHRvcDogZXZ0LmRlbHRhWSArIHRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgICAgICBsZWZ0OiBldnQuZGVsdGFYICsgdGFyZ2V0LnNjcm9sbExlZnQsXG4gICAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIlxuICAgICAgICB9KVxuICAgIH1cbn1cbiIsIjwhLS0gTW91c2UgZXZlbnQgYmxvY2tlciBmb3IgcG9pbnRlciBsZWF2ZSAtLT5cbjxkaXZcbiAgICAqbmdJZj1cImNvdmVyUmVjdENvcmRzXCJcbiAgICBjbGFzcz1cIm93bmVyLW1hc2tcIlxuICAgIFtzdHlsZS50b3BdPVwiY292ZXJSZWN0Q29yZHMudG9wICsgJ3B4J1wiXG4gICAgW3N0eWxlLmxlZnRdPVwiY292ZXJSZWN0Q29yZHMubGVmdCArICdweCdcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiY292ZXJSZWN0Q29yZHMuaGVpZ2h0ICsgJ3B4J1wiXG4gICAgW3N0eWxlLndpZHRoXT1cImNvdmVyUmVjdENvcmRzLndpZHRoICsgJ3B4J1wiXG4gICAgW3N0eWxlLmJhY2tncm91bmRdPVwic2hvd0RlYnVnT3ZlcmxheSA/ICcjZjAwNCcgOiAnIzAwMDAnXCJcbiAgICBzdHlsZT1cInotaW5kZXg6IC0xXCJcbiAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJIYXNCZWVuT3Zlck1hc2s9dHJ1ZVwiXG4+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ2b2lkXCJcbiAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzaG93RGVidWdPdmVybGF5ID8gJyMwMGY0JyA6ICcjMDAwMCdcIlxuICAgIChwb2ludGVyZW50ZXIpPVwicG9pbnRlcklzT25Wb2lkID0gdHJ1ZTsgaGFzQm9vdHN0cmFwcGVkICYmICFpc0xvY2tlZE9wZW4gJiYgY2xvc2VPblZvaWQoKVwiXG4gICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgKHBvaW50ZXJkb3duKT1cImhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCh0cnVlKVwiXG4gICAgKHBvaW50ZXJtb3ZlKT1cImhhc0Jvb3RzdHJhcHBlZCAmJiAhaXNMb2NrZWRPcGVuICYmIGNsb3NlT25Wb2lkKClcIlxuICAgICh3aGVlbCk9XCJvbldoZWVsKCRldmVudClcIlxuPjwvZGl2PlxuXG48dGFibGUgKm5nSWY9XCIhdGVtcGxhdGVcIj5cbiAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICAgIDwhLS0gQSByb3cgd2l0aCBhIGNsaWNrIGFjdGlvbiAtLT5cbiAgICAgICAgICAgIDx0ciAjcm93XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtICE9ICdzZXBhcmF0b3InICYmIGl0ZW0uc2VwYXJhdG9yICE9IHRydWUgJiYgaXRlbVsnX3Zpc2libGUnXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW1bJ19kaXNhYmxlZCddXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWl0ZW1bJ19kaXNhYmxlZCddICYmIG9uTWVudUl0ZW1DbGljayhpdGVtLCByb3cpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwicm93Wydob3ZlciddXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJyb3dbJ19vcGVuJ11cIlxuICAgICAgICAgICAgICAgIChwb2ludGVyZW50ZXIpPVwicm93Wydob3ZlciddID0gdHJ1ZTsgc3RhcnRIb3ZlclRpbWVyKGl0ZW0sIHJvdylcIlxuICAgICAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicm93Wydob3ZlciddID0gZmFsc2U7IHN0b3BIb3ZlclRpbWVyKGl0ZW0pXCJcbiAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImljb25cIiAqbmdJZj1cInNob3dJY29uQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJtYXRJY29uUngudGVzdChpdGVtLmljb24pOyBlbHNlIG1hdEljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWF0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbZm9udEljb25dPVwiaXRlbS5pY29uXCIgW3N0eWxlLmNvbG9yXT1cIml0ZW0uaWNvbkNvbG9yXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPCEtLSAnTm9ybWFsJyBhY3Rpb24gYmFzZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwic2hvd0ljb25Db2x1bW4gPyAwIDogJzE2cHgnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAjYW5jaG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS5saW5rVGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA/IHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkoaXRlbS5sYWJlbFRlbXBsYXRlKT8ucHJvdG90eXBlOyBlbHNlIHNpbXBsZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGl0ZW0pLmxhYmVsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICckaW1wbGljaXQnOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlhbG9nJzogZGlhbG9nUmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGV4dCc6IGl0ZW1bJ19jb250ZXh0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpdGVtJzogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VsZW1lbnQnOiBhbmNob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51JzogdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISRhbnkoaXRlbSk/LmxhYmVsVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW1bJ19mb3JtYXR0ZWRMYWJlbCddXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiRhbnkoaXRlbSk/LmxhYmVsVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3skYW55KGl0ZW0pPy5sYWJlbFRlbXBsYXRlKGRhdGEgfHwge30pfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwic2hvcnRjdXRcIiAqbmdJZj1cInNob3dTaG9ydGN1dENvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uc2hvcnRjdXRMYWJlbH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJtaW4td2lkdGg6IDE2cHhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtWydjaGlsZHJlbiddPy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtWydfY2hpbGRyZW4nXT8ubGVuZ3RoID4gMCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkVGVtcGxhdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuPy5bJ2NhbGwnXSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW5SZXNvbHZlclxuICAgICAgICAgICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWl0ZW1bJ19pc1Jlc29sdmluZyddXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvbl9yaWdodFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtWydfaXNSZXNvbHZpbmcnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgIDwhLS0gU2VwYXJhdG9yIHdpdGggbGFiZWwgLS0+XG4gICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0gIT0gJ3NlcGFyYXRvcicgJiYgaXRlbS5zZXBhcmF0b3IgPT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiMiArIChzaG93SWNvbkNvbHVtbiA/IDEgOiAwKSArIChzaG93U2hvcnRjdXRDb2x1bW4gPyAxIDogMClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtWydsYWJlbCddIHx8ICcnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICA8IS0tIFNlcGFyYXRvciAtLT5cbiAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbSA9PSAnc2VwYXJhdG9yJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIjIgKyAoc2hvd0ljb25Db2x1bW4gPyAxIDogMCkgKyAoc2hvd1Nob3J0Y3V0Q29sdW1uID8gMSA6IDApXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVUeXBlID09ICd0ZW1wbGF0ZSc7IGVsc2UgcG9ydGFsT3V0bGV0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgJyRpbXBsaWNpdCc6IGRhdGEsXG4gICAgICAgICAgICAgICAgJ2RpYWxvZyc6IGRpYWxvZ1JlZixcbiAgICAgICAgICAgICAgICAnY29udGV4dCc6IHBhcmVudENvbnRleHQsXG4gICAgICAgICAgICAgICAgJ2l0ZW0nOiBwYXJlbnRJdGVtLFxuICAgICAgICAgICAgICAgICdlbGVtZW50JzogdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdtZW51JzogdGhpc1xuICAgICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNwb3J0YWxPdXRsZXRcbiAgICAgICAgW2Nka1BvcnRhbE91dGxldF09XCJjb21wb25lbnRQb3J0YWxcIlxuICAgIC8+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiAqbmdJZj1cInNob3dEZWJ1Z092ZXJsYXlcIj5cbiAgICA8ZGl2Pmhiczoge3toYXNCb290c3RyYXBwZWR9fTwvZGl2PlxuICAgIDxkaXY+cG92OiB7e3BvaW50ZXJJc09uVm9pZH19PC9kaXY+XG4gICAgPGRpdj5pbG86IHt7aXNMb2NrZWRPcGVufX08L2Rpdj5cbiAgICA8ZGl2Pmhib206IHt7cG9pbnRlckhhc0JlZW5PdmVyTWFza319PC9kaXY+XG5cbiAgICA8ZGl2PnR5cGU6IHt7dGVtcGxhdGVUeXBlfX08L2Rpdj5cbjwvZGl2PlxuIl19
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxXQUFXLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFFdEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFNBQXFCLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxJQUFJLEdBQUc7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUss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O3NCQUFyQixLQUFLO2dCQUNVLEVBQUU7c0JBQWpCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQXlTRSxRQUFRO3NCQURmLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgY2FsY01lbnVJdGVtQm91bmRzID0gYXN5bmMgKG1lbnVJdGVtczogTWVudUl0ZW1bXSwgZGF0YU9iajogYW55KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgZGF0YTogZGF0YU9iaixcbiAgICAgICAgaXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgc2VsZkNvcmRzOiB7IGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiB9LFxuICAgICAgICBvd25lckNvcmRzOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCBkYXRhKTtcbn1cblxuY29uc3QgY2FsY0NvbXBvbmVudEJvdW5kcyA9IGFzeW5jIChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YTogYW55KSA9PiB7XG4gICAgLy8gRm9yY2libHkgYm9vdHN0cmFwIHRoZSBjdHggbWVudSBvdXRzaWRlIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24ncyB6b25lLlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IE1BVF9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGRhdGEgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICBkZWwuc3R5bGUubGVmdCA9ICctMTAwMHZ3JztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkZWwpO1xuXG4gICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoY29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVjdDtcbn1cblxuY29uc3QgJGRhdGEgPSBTeW1ib2woXCJkYXRhXCIpO1xuY29uc3QgJGhvdmVyID0gU3ltYm9sKFwiaG92ZXJcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBQb3J0YWxNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgVG9vbHRpcERpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1zOiBNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IE1lbnVPcHRpb25zO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5T3ZlcmxhcCA9IDMyO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBob3ZlckRlbGF5ID0gMzAwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93RGVidWdPdmVybGF5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBvd25lckNvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHNlbGZDb3JkcztcbiAgICBASW5wdXQoKSBwYXJlbnRJdGVtO1xuICAgIEBJbnB1dCgpIHBhcmVudENvbnRleHQ7XG5cbiAgICBwdWJsaWMgaGFzQm9vdHN0cmFwcGVkID0gZmFsc2U7XG4gICAgcHVibGljIHBvaW50ZXJJc09uVm9pZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0xvY2tlZE9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRlckhhc0JlZW5PdmVyTWFzayA9IGZhbHNlO1xuXG4gICAgY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMFxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgc2xhc2hlcyBvciBkb3RzIC0tIHRoYXQgd2lsbCBjbGVhcmx5IGV4Y2x1ZGUgaXQgZnJvbSBiZWluZyBhIG1hdCBpY29uXG4gICAgcHVibGljIHJlYWRvbmx5IG1hdEljb25SeCA9IC9bXFwvXFwuXS9pO1xuICAgIHNob3dJY29uQ29sdW1uID0gdHJ1ZTtcbiAgICBzaG93U2hvcnRjdXRDb2x1bW4gPSB0cnVlO1xuXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdGVtcGxhdGVUeXBlOiBcInRlbXBsYXRlXCIgfCBcImNvbXBvbmVudFwiO1xuICAgIGNvbXBvbmVudFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gICAgcHJpdmF0ZSBjaGlsZERpYWxvZ3M6IE1hdERpYWxvZ1JlZjxhbnk+W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIC8vIG9wdGlvbmFsIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGVzdGltYXRpbmcgZGltZW5zaW9uc1xuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PlxuICAgICkge1xuICAgICAgICAvLyBEZWZhdWx0cyBhcmUgc2V0IGJlZm9yZSBASW5wdXQoKSBob29rcyBldmFsdWF0ZVxuICAgICAgICB0aGlzLmRpYWxvZyA9IHRoaXMuZGlhbG9nIHx8IHRoaXMuX2RhdGE/LmRpYWxvZztcbiAgICAgICAgdGhpcy5kYXRhICA9IHRoaXMuX2RhdGE/LmRhdGE7XG4gICAgICAgIHRoaXMub3duZXJDb3JkcyA9IHRoaXMuX2RhdGE/Lm93bmVyQ29yZHM7XG4gICAgICAgIHRoaXMuc2VsZkNvcmRzID0gdGhpcy5fZGF0YT8uc2VsZkNvcmRzO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZGF0YT8uaXRlbXM7XG4gICAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5fZGF0YT8uY29uZmlnO1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5fZGF0YT8uaWQ7XG4gICAgICAgIHRoaXMucGFyZW50SXRlbSA9IHRoaXMuX2RhdGE/LnBhcmVudEl0ZW07XG4gICAgICAgIHRoaXMucGFyZW50Q29udGV4dCA9IHRoaXMuX2RhdGE/LnBhcmVudENvbnRleHQ7XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IF9kYXRhLnRlbXBsYXRlO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVUeXBlID0gdGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmID8gXCJ0ZW1wbGF0ZVwiIDogXCJjb21wb25lbnRcIjtcblxuICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZVR5cGUgPT0gXCJjb21wb25lbnRcIikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMudGVtcGxhdGUgYXMgYW55KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgICAgIHRoaXMuaXRlbXM/LmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGkgPT0gXCJzdHJpbmdcIikgcmV0dXJuO1xuXG4gICAgICAgICAgICAvLyBTZXQgZGVmYXVsdHNcbiAgICAgICAgICAgIGlbJ19kaXNhYmxlZCddID0gZmFsc2U7XG4gICAgICAgICAgICBpWydfdmlzaWJsZSddID0gdHJ1ZTtcbiAgICAgICAgICAgIGlbJ19jb250ZXh0J10gPSAodHlwZW9mIGkuY29udGV4dCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaS5jb250ZXh0KHRoaXMuZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpLmNvbnRleHQ7XG5cbiAgICAgICAgICAgIGlmIChpLmxhYmVsKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19mb3JtYXR0ZWRMYWJlbCddID0gdGhpcy5mb3JtYXRMYWJlbChpLmxhYmVsKTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkuaXNEaXNhYmxlZCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgdHJ5IHsgaVsnX2Rpc2FibGVkJ10gPSBpLmlzRGlzYWJsZWQodGhpcy5kYXRhIHx8IHt9LCBpWydfY29udGV4dCddKTsgfSBjYXRjaChlKSB7IGNvbnNvbGUud2FybihlKSB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaS5pc1Zpc2libGUgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ192aXNpYmxlJ10gPSBpLmlzVmlzaWJsZSh0aGlzLmRhdGEgfHwge30sIGlbJ19jb250ZXh0J10pOyB9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKSB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaS5saW5rVGVtcGxhdGUgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19saW5rJ10gPSBpLmxpbmtUZW1wbGF0ZSh0aGlzLmRhdGEgfHwge30sIGlbJ19jb250ZXh0J10pOyB9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKSB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNob3cgdGhlIGljb24gY29sdW1uIGlmIHRoZXJlIGFyZSBhbnkgaXRlbXMgd2l0aCBhbiBpY29uXG4gICAgICAgIHRoaXMuc2hvd0ljb25Db2x1bW4gPSAhIXRoaXMuaXRlbXM/LmZpbmQoaSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpID09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgaVsnaWNvbiddID09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBpWydpY29uJ10ubGVuZ3RoID4gMlxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNob3dTaG9ydGN1dENvbHVtbiA9ICEhdGhpcy5pdGVtcz8uZmluZChpID0+XG4gICAgICAgICAgICAgICAgdHlwZW9mIGkgPT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpWydzaG9ydGN1dCddID09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBpWydzaG9ydGN1dCddLmxlbmd0aCA+IDJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMub3duZXJDb3Jkcykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZlkgPSBwYXJzZUludCh0aGlzLnNlbGZDb3Jkcy50b3A/LnJlcGxhY2UoJ3B4JywgJycpIHx8ICcwJyk7XG4gICAgICAgICAgICBjb25zdCBzZWxmWCA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLmxlZnQ/LnJlcGxhY2UoJ3B4JywgJycpIHx8ICcwJyk7XG5cbiAgICAgICAgICAgIHRoaXMuY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgICAgICAgICAgdG9wOiB0aGlzLm93bmVyQ29yZHMueSAtIHNlbGZZIC0gKHRoaXMub3ZlcmxheU92ZXJsYXAvMiksXG4gICAgICAgICAgICAgICAgbGVmdDogdGhpcy5vd25lckNvcmRzLnggLSBzZWxmWCAtICh0aGlzLm92ZXJsYXlPdmVybGFwLzIpLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5vd25lckNvcmRzLmhlaWdodCArIHRoaXMub3ZlcmxheU92ZXJsYXAsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMub3duZXJDb3Jkcy53aWR0aCArIHRoaXMub3ZlcmxheU92ZXJsYXBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNCb290c3RyYXBwZWQgPSB0cnVlO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBldnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hcIiwgZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMuY2hpbGREaWFsb2dzLmZvckVhY2goZCA9PiBkLmNsb3NlKHtbJGRhdGFdOiB0cnVlfSkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGFzeW5jIG9uTWVudUl0ZW1DbGljayhpdGVtOiBNZW51SXRlbSwgcm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnc3RyaW5nJykgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpdGVtLnNlcGFyYXRvcikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IGl0ZW1bJ19jb250ZXh0J107XG5cbiAgICAgICAgLy8gSWYgY2FjaGUgaXMgZW5hYmxlZCwgb25seSBsb2FkIGlmIHdlIGRvbid0IGhhdmUgYW55IGNoaWxkcmVuLlxuICAgICAgICBjb25zdCBmb3JjZUxvYWQgPSAoaXRlbS5jYWNoZVJlc29sdmVkQ2hpbGRyZW4gPyAhaXRlbS5jaGlsZHJlbiA6IHRydWUpO1xuXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuUmVzb2x2ZXIgJiYgZm9yY2VMb2FkKSB7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IHRydWU7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGF3YWl0IGl0ZW0uY2hpbGRyZW5SZXNvbHZlcih0aGlzLmRhdGEsIGNvbnRleHQpO1xuICAgICAgICAgICAgaXRlbVsnX2lzUmVzb2x2aW5nJ10gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgaXRlbS5jaGlsZHJlbiA9PSBcImZ1bmN0aW9uXCIgJiYgZm9yY2VMb2FkKSB7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IHRydWU7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGF3YWl0IGl0ZW0uY2hpbGRyZW4odGhpcy5kYXRhLCBjb250ZXh0KTtcbiAgICAgICAgICAgIGl0ZW1bJ19pc1Jlc29sdmluZyddID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpdGVtWydfY2hpbGRyZW4nXSA9IGl0ZW0uY2hpbGRyZW47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbVsnX2NoaWxkcmVuJ10gfHwgaXRlbS5jaGlsZFRlbXBsYXRlKVxuICAgICAgICAgICAgcm93Wydfb3BlbiddID0gdHJ1ZTtcblxuICAgICAgICBpZiAoIWl0ZW0uY2hpbGRUZW1wbGF0ZSAmJiAhaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtLmFjdGlvbiA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBpdGVtLmFjdGlvbih0aGlzLmRhdGEsIGNvbnRleHQpXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZShyZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIG5vIGFjdGlvbiwgdGhpcyBpcyBzaW1wbHkgYSB0ZXh0IGl0ZW0uXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5lZWQgWCBwb3MsIFkgcG9zLCB3aWR0aCBhbmQgaGVpZ2h0XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHJvdy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBjb3JkcyA9IHtcbiAgICAgICAgICAgIHRvcDogbnVsbCxcbiAgICAgICAgICAgIGxlZnQ6IG51bGwsXG4gICAgICAgICAgICBib3R0b206IG51bGwsXG4gICAgICAgICAgICByaWdodDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFNldCBwb3NpdGlvbiBjb29yZGluYXRlc1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGF3YWl0IChpdGVtLmNoaWxkVGVtcGxhdGVcbiAgICAgICAgICAgID8gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCB7IHRlbXBsYXRlOiBpdGVtLmNoaWxkVGVtcGxhdGUgfSlcbiAgICAgICAgICAgIDogY2FsY01lbnVJdGVtQm91bmRzKGl0ZW1bJ19jaGlsZHJlbiddLCB0aGlzLmRhdGEpKTtcblxuICAgICAgICBpZiAoYm91bmRzLnkgKyBoZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpXG4gICAgICAgICAgICBjb3Jkcy5ib3R0b20gPSBcIjBweFwiO1xuICAgICAgICBpZiAoYm91bmRzLnggKyBib3VuZHMud2lkdGggKyB3aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKVxuICAgICAgICAgICAgY29yZHMubGVmdCA9ICgoYm91bmRzLnggLSB3aWR0aCkpICsgXCJweFwiO1xuXG4gICAgICAgIGlmICghY29yZHMuYm90dG9tKSBjb3Jkcy50b3AgID0gYm91bmRzLnkgKyBcInB4XCI7XG4gICAgICAgIGlmICghY29yZHMubGVmdCkgICBjb3Jkcy5sZWZ0ID0gYm91bmRzLnggKyBib3VuZHMud2lkdGggKyBcInB4XCI7XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihNZW51Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtbWVudVwiXS5jb25jYXQodGhpcy5jb25maWc/LmN1c3RvbUNsYXNzIHx8IFtdKSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFwibmd4LW1lbnUtYmFja2Ryb3BcIixcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogcm93LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIHNlbGZDb3JkczogY29yZHMsXG4gICAgICAgICAgICAgICAgcGFyZW50SXRlbTogaXRlbSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtWydfY2hpbGRyZW4nXSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogaXRlbS5jaGlsZFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IF9zID0gZGlhbG9nUmVmXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBDbGlja2VkIFwidm9pZFwiIG9uIGEgc3VibWVudVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PSBcIm9iamVjdFwiICYmIHJlc3VsdFskZGF0YV0gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlbnQgYmFjayB0byBwYXJlbnQgbWVudSAtLSBkbyBub3QgY2xvc2UgKHNhbWUgYXMgcmVzdWx0ID09IG51bGwpXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgPT0gXCJvYmplY3RcIiAmJiByZXN1bHRbJGRhdGFdID09IGZhbHNlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBHb3Qgc29tZSBvdGhlciByZXN1bHQgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmZvcm0gYWN0aW9uIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0uYWN0aW9uID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKGF3YWl0IGl0ZW0uYWN0aW9uKHJlc3VsdCwgY29udGV4dCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBjbG9zZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJvd1snX29wZW4nXSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGREaWFsb2dzLnNwbGljZSh0aGlzLmNoaWxkRGlhbG9ncy5pbmRleE9mKGRpYWxvZ1JlZiksIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIF9zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jaGlsZERpYWxvZ3MucHVzaChkaWFsb2dSZWYpO1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhYmVsXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBmb3JtYXRMYWJlbChsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsLnJlcGxhY2UoL18oW2EtejAtOV0pXy9pLCAobWF0Y2gsIGdyb3VwKSA9PiBgPHU+JHtncm91cH08L3U+YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgdGhlIGNvbnRleHQgbWVudSB1bmRlciB0aGVzZSBjaXJjdW1zdGFuY2VzXG4gICAgICovXG4gICAgLy8gQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgWydldmVudCddKVxuICAgIC8vIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiLCBbJ2V2ZW50J10pXG4gICAgY2xvc2UocmVzdWx0Pykge1xuICAgICAgICB0aGlzLmNoaWxkRGlhbG9ncy5mb3JFYWNoKGQgPT4gZC5jbG9zZSgpKVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICBjbG9zZU9uVm9pZChmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2tlZE9wZW4gfHwgZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2Uoe1skZGF0YV06IGZvcmNlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGFydEhvdmVyVGltZXIoaXRlbSwgcm93KSB7XG5cbiAgICAgICAgLy8gSW52ZXJ0IGNoZWNrIHRvIG1ha2UgdGhlIGxvZ2ljIHNpbXBsZXJcbiAgICAgICAgLy8gVEw7RFI6IGlmIChhbnkpIG9mIHRoZXNlIGFyZSB0cnVlLCB3ZSB3aWxsIGRvIHRoZSBob3ZlciBhY3Rpb25cbiAgICAgICAgaWYgKCEoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGl0ZW0uY2hpbGRyZW4pICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCB8fFxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0uY2hpbGRyZW4gPT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICAgICAgICBpdGVtLmNoaWxkVGVtcGxhdGUgfHxcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW5SZXNvbHZlclxuICAgICAgICApKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGl0ZW1bJGhvdmVyXSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIGl0ZW1bJGhvdmVyXTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLnBvaW50ZXJJc09uVm9pZCkge1xuICAgICAgICAgICAgICAgIHJvd1snX29wZW4nXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2soaXRlbSwgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5ob3ZlckRlbGF5KTtcbiAgICB9XG4gICAgc3RvcEhvdmVyVGltZXIoaXRlbSkge1xuICAgICAgICBpdGVtWyRob3Zlcl0gJiYgY2xlYXJUaW1lb3V0KGl0ZW1bJGhvdmVyXSk7XG4gICAgICAgIGRlbGV0ZSBpdGVtWyRob3Zlcl07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRpYWxvZyBpcyBjbGlwcGluZyBvZmZzY3JlZW5cbiAgICAgKiBpZiBzbywgbW92ZSBpdCBiYWNrIGludG8gdmlldy5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHByaXZhdGUgb25SZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIWVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB4LCB5IH0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLm5neC1tZW51XCIpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIE1vdmUgYmFjayBpbnRvIHZpZXcgaWYgd2UncmUgY2xpcHBpbmcgb3V0c2lkZSBvZiB0aGUgYm90dG9tXG4gICAgICAgIGlmICh5ICsgaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gKGhlaWdodCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIjtcbiAgICAgICAgICAgIHRhcmdldC5zdHlsZVsnbWFyZ2luLXRvcCddID0gbmV3VG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92ZSBiYWNrIGludG8gdmlldyBpZiB3ZSdyZSBjbGlwcGluZyBvZmYgdGhlIHJpZ2h0XG4gICAgICAgIGlmICh4ICsgd2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgICAgY29uc3QgbmV3TGVmdCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtICh3aWR0aCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIlxuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlWydtYXJnaW4tbGVmdCddID0gbmV3TGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSB2b2lkIGVsZW1lbnQgZ2V0cyBzdHVjayBvcGVuLCBtYWtlIHdoZWVsIGV2ZW50cyBwYXNzIHRocm91Z2guXG4gICAgb25XaGVlbChldnQ6IFdoZWVsRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoZXZ0LmNsaWVudFgsIGV2dC5jbGllbnRZKTtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcblxuICAgICAgICB0YXJnZXQuc2Nyb2xsKHtcbiAgICAgICAgICAgIHRvcDogZXZ0LmRlbHRhWSArIHRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgICAgICBsZWZ0OiBldnQuZGVsdGFYICsgdGFyZ2V0LnNjcm9sbExlZnQsXG4gICAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIlxuICAgICAgICB9KVxuICAgIH1cbn1cbiIsIjwhLS0gTW91c2UgZXZlbnQgYmxvY2tlciBmb3IgcG9pbnRlciBsZWF2ZSAtLT5cbjxkaXZcbiAgICAqbmdJZj1cImNvdmVyUmVjdENvcmRzXCJcbiAgICBjbGFzcz1cIm93bmVyLW1hc2tcIlxuICAgIFtzdHlsZS50b3BdPVwiY292ZXJSZWN0Q29yZHMudG9wICsgJ3B4J1wiXG4gICAgW3N0eWxlLmxlZnRdPVwiY292ZXJSZWN0Q29yZHMubGVmdCArICdweCdcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiY292ZXJSZWN0Q29yZHMuaGVpZ2h0ICsgJ3B4J1wiXG4gICAgW3N0eWxlLndpZHRoXT1cImNvdmVyUmVjdENvcmRzLndpZHRoICsgJ3B4J1wiXG4gICAgW3N0eWxlLmJhY2tncm91bmRdPVwic2hvd0RlYnVnT3ZlcmxheSA/ICcjZjAwNCcgOiAnIzAwMDAnXCJcbiAgICBzdHlsZT1cInotaW5kZXg6IC0xXCJcbiAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJIYXNCZWVuT3Zlck1hc2s9dHJ1ZVwiXG4+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ2b2lkXCJcbiAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJzaG93RGVidWdPdmVybGF5ID8gJyMwMGY0JyA6ICcjMDAwMCdcIlxuICAgIChwb2ludGVyZW50ZXIpPVwicG9pbnRlcklzT25Wb2lkID0gdHJ1ZTsgaGFzQm9vdHN0cmFwcGVkICYmICFpc0xvY2tlZE9wZW4gJiYgY2xvc2VPblZvaWQoKVwiXG4gICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgKHBvaW50ZXJkb3duKT1cImhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCh0cnVlKVwiXG4gICAgKHBvaW50ZXJtb3ZlKT1cImhhc0Jvb3RzdHJhcHBlZCAmJiAhaXNMb2NrZWRPcGVuICYmIGNsb3NlT25Wb2lkKClcIlxuICAgICh3aGVlbCk9XCJvbldoZWVsKCRldmVudClcIlxuPjwvZGl2PlxuXG48dGFibGUgKm5nSWY9XCIhdGVtcGxhdGVcIj5cbiAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICAgIDwhLS0gQSByb3cgd2l0aCBhIGNsaWNrIGFjdGlvbiAtLT5cbiAgICAgICAgICAgIDx0ciAjcm93XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtICE9ICdzZXBhcmF0b3InICYmIGl0ZW0uc2VwYXJhdG9yICE9IHRydWUgJiYgaXRlbVsnX3Zpc2libGUnXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW1bJ19kaXNhYmxlZCddXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWl0ZW1bJ19kaXNhYmxlZCddICYmIG9uTWVudUl0ZW1DbGljayhpdGVtLCByb3cpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwicm93Wydob3ZlciddXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJyb3dbJ19vcGVuJ11cIlxuICAgICAgICAgICAgICAgIChwb2ludGVyZW50ZXIpPVwicm93Wydob3ZlciddID0gdHJ1ZTsgc3RhcnRIb3ZlclRpbWVyKGl0ZW0sIHJvdylcIlxuICAgICAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicm93Wydob3ZlciddID0gZmFsc2U7IHN0b3BIb3ZlclRpbWVyKGl0ZW0pXCJcbiAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImljb25cIiAqbmdJZj1cInNob3dJY29uQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJtYXRJY29uUngudGVzdChpdGVtLmljb24pOyBlbHNlIG1hdEljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWF0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbZm9udEljb25dPVwiaXRlbS5pY29uXCIgW3N0eWxlLmNvbG9yXT1cIml0ZW0uaWNvbkNvbG9yXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPCEtLSAnTm9ybWFsJyBhY3Rpb24gYmFzZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwic2hvd0ljb25Db2x1bW4gPyAwIDogJzE2cHgnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAjYW5jaG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS5saW5rVGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA/IHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkoaXRlbS5sYWJlbFRlbXBsYXRlKT8ucHJvdG90eXBlOyBlbHNlIHNpbXBsZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGl0ZW0pLmxhYmVsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICckaW1wbGljaXQnOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlhbG9nJzogZGlhbG9nUmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGV4dCc6IGl0ZW1bJ19jb250ZXh0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpdGVtJzogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VsZW1lbnQnOiBhbmNob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51JzogdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISRhbnkoaXRlbSk/LmxhYmVsVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW1bJ19mb3JtYXR0ZWRMYWJlbCddXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiRhbnkoaXRlbSk/LmxhYmVsVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3skYW55KGl0ZW0pPy5sYWJlbFRlbXBsYXRlKGRhdGEgfHwge30pfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwic2hvcnRjdXRcIiAqbmdJZj1cInNob3dTaG9ydGN1dENvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uc2hvcnRjdXRMYWJlbH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJtaW4td2lkdGg6IDE2cHhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtWydjaGlsZHJlbiddPy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtWydfY2hpbGRyZW4nXT8ubGVuZ3RoID4gMCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkVGVtcGxhdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuPy5bJ2NhbGwnXSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW5SZXNvbHZlclxuICAgICAgICAgICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWl0ZW1bJ19pc1Jlc29sdmluZyddXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvbl9yaWdodFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtWydfaXNSZXNvbHZpbmcnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgIDwhLS0gU2VwYXJhdG9yIHdpdGggbGFiZWwgLS0+XG4gICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0gIT0gJ3NlcGFyYXRvcicgJiYgaXRlbS5zZXBhcmF0b3IgPT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwiMiArIChzaG93SWNvbkNvbHVtbiA/IDEgOiAwKSArIChzaG93U2hvcnRjdXRDb2x1bW4gPyAxIDogMClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtWydsYWJlbCddIHx8ICcnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICA8IS0tIFNlcGFyYXRvciAtLT5cbiAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbSA9PSAnc2VwYXJhdG9yJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIjIgKyAoc2hvd0ljb25Db2x1bW4gPyAxIDogMCkgKyAoc2hvd1Nob3J0Y3V0Q29sdW1uID8gMSA6IDApXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVUeXBlID09ICd0ZW1wbGF0ZSc7IGVsc2UgcG9ydGFsT3V0bGV0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgJyRpbXBsaWNpdCc6IGRhdGEsXG4gICAgICAgICAgICAgICAgJ2RpYWxvZyc6IGRpYWxvZ1JlZixcbiAgICAgICAgICAgICAgICAnY29udGV4dCc6IHBhcmVudENvbnRleHQsXG4gICAgICAgICAgICAgICAgJ2l0ZW0nOiBwYXJlbnRJdGVtLFxuICAgICAgICAgICAgICAgICdlbGVtZW50JzogdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdtZW51JzogdGhpc1xuICAgICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNwb3J0YWxPdXRsZXRcbiAgICAgICAgW2Nka1BvcnRhbE91dGxldF09XCJjb21wb25lbnRQb3J0YWxcIlxuICAgIC8+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiAqbmdJZj1cInNob3dEZWJ1Z092ZXJsYXlcIj5cbiAgICA8ZGl2Pmhiczoge3toYXNCb290c3RyYXBwZWR9fTwvZGl2PlxuICAgIDxkaXY+cG92OiB7e3BvaW50ZXJJc09uVm9pZH19PC9kaXY+XG4gICAgPGRpdj5pbG86IHt7aXNMb2NrZWRPcGVufX08L2Rpdj5cbiAgICA8ZGl2Pmhib206IHt7cG9pbnRlckhhc0JlZW5PdmVyTWFza319PC9kaXY+XG5cbiAgICA8ZGl2PnR5cGU6IHt7dGVtcGxhdGVUeXBlfX08L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2295,7 +2295,8 @@ class CommandPaletteComponent {
|
|
|
2295
2295
|
this.filteredCommands = [];
|
|
2296
2296
|
}
|
|
2297
2297
|
ngOnInit() {
|
|
2298
|
-
this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)
|
|
2298
|
+
this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)
|
|
2299
|
+
.filter(c => c.visibleInList != false);
|
|
2299
2300
|
this.filteredCommands = this.commands;
|
|
2300
2301
|
// Reset the filter labels
|
|
2301
2302
|
this.commands.forEach(command => command['_renderedLabel'] = '');
|
|
@@ -2313,11 +2314,13 @@ class CommandPaletteComponent {
|
|
|
2313
2314
|
return;
|
|
2314
2315
|
}
|
|
2315
2316
|
if (evt.key == "ArrowDown") {
|
|
2316
|
-
this.activeIndex = Math.min(this.filteredCommands.length, this.activeIndex + 1);
|
|
2317
|
+
this.activeIndex = Math.min(this.filteredCommands.length - 1, this.activeIndex + 1);
|
|
2317
2318
|
return;
|
|
2318
2319
|
}
|
|
2319
2320
|
this.activeIndex = 0;
|
|
2320
2321
|
this.commands.forEach(c => c['_renderedLabel'] = '');
|
|
2322
|
+
// Check in the next tick to get the input's
|
|
2323
|
+
// value so that it's updated
|
|
2321
2324
|
setTimeout(() => {
|
|
2322
2325
|
this.queryString = evt.target.value;
|
|
2323
2326
|
// Whitespace doesn't count.
|