vc-create-dashboard 3.0.85 → 3.0.87

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.
@@ -195,12 +195,12 @@ export class ConfigureWidgetsComponent {
195
195
  visibility: true,
196
196
  module: 'COMPLIANCE',
197
197
  subWidgets: [
198
- {
199
- title: 'Overview',
200
- id: 'key_responsibilities_overview_flag',
201
- value: false,
202
- visibility: true,
203
- },
198
+ // {
199
+ // title: 'Overview',
200
+ // id: 'key_responsibilities_overview_flag',
201
+ // value: false,
202
+ // visibility: true,
203
+ // },
204
204
  {
205
205
  title: 'My Responsibilities',
206
206
  id: 'key_my_responsibilities_flag',
@@ -347,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
347
347
  }], mode: [{
348
348
  type: Input
349
349
  }] } });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCMUI7SUFDRDtJQUNDO0lBMUJBLG1CQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELHFCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hFLGNBQWMsQ0FBTztJQUNyQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFlBQVksR0FBNkMsRUFBRSxDQUFDO0lBQzVELGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEIsTUFBTSxHQUEwQixZQUFZLENBQUM7SUFDcEMsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQzlCLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGNBQWMsR0FBRyxLQUFL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QUU7Z0JBQzdCLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQ3pDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxnREFBZ0Q7UUFDaEQsNEJBQTRCO1FBQzVCLHFDQUFxQztRQUNyQyxvREFBb0Q7UUFDcEQsdUNBQXVDO1FBQ3ZDLFVBQVU7UUFDVixNQUFNO1FBQ04sTUFBTTtJQUNSLENBQUM7d0dBalhVLHlCQUF5Qjs0RkFBekIseUJBQXlCLCtWQ3JCdEMsaXBLQTZJQTs7NEZEeEhhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7b0tBS3ZCLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBT0UsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmUtd2lkZ2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgd2lkZ2V0RGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aWRnZXQtZGF0YS1tb2RlbCc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLXJlZic7XHJcbmltcG9ydCB7IHdpZGdldENvbmZpZyB9IGZyb20gJy4vd2lkZ2V0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbmZpZ3VyZS13aWRnZXRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmVXaWRnZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSB3aWRnZXRzRGF0YU1vZGlmaWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VDb25maWd1cmVXaWRnZXRzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjaGVja2JveFN0YXR1cyE6IGFueTtcclxuICBzZWFyY2g6IHN0cmluZyA9ICcnO1xyXG4gIGNoZWNrZWRBcnJheTogQXJyYXk8eyBpbmRleDogbnVtYmVyOyBzdGF0dXM6IG51bWJlciB9PiA9IFtdO1xyXG4gIHNlbGVjdGVkV2lkZ2V0czogQXJyYXk8d2lkZ2V0RGF0YU1vZGVsPiA9IFtdO1xyXG4gIEFTU0VUUyA9IEFTU0VUUztcclxuICBtb2R1bGU6ICdDT01QTElBTkNFJyB8ICdSSVNLJyA9ICdDT01QTElBTkNFJztcclxuICBASW5wdXQoKSBzZWxlY3RlZFdpZGdldHNEYXRhOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBkaXNwbGF5ZWRXaWRnZXRzOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzaG93UmlzayA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dDb21wbGlhbmNlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIG5vRGF0YVRleHQgPVxyXG4gICAgJ1lvdSBoYXZlIG5vdCBjb25maWd1cmVkIGFueSB3aWRnZXRzLiBDbGljayBvbiB0aGUgPHN0cm9uZz5Db25maWd1cmUgV2lkZ2V0czwvc3Ryb25nPiBidXR0b24gdG8gYmVnaW4uJztcclxuXHJcbiAgc2VsZWN0ZWRXaWRnZXRJZHM6IGFueSA9IFtdO1xyXG4gIHN1YlJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1YktleVJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dXaWRnZXRzID0gdHJ1ZTtcclxuICBjb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDk7XHJcbiAgcmlza1dpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlndXJlV2lkZ2V0c1NlcnZpY2U6IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlFZGl0TW9kZVdpZGdldENhdGFsb2coKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwbHlDcmVhdGVNb2RlV2lkZ2V0VmlzaWJpbGl0eSgpO1xyXG4gICAgICB0aGlzLmFwcGx5U2F2ZWRXaWRnZXRTZWxlY3Rpb24odGhpcy5zZWxlY3RlZFdpZGdldHNEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZHVsZSA9IHRoaXMuc2hvd0NvbXBsaWFuY2UgPyAnQ09NUExJQU5DRScgOiAnUklTSyc7XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVESVQ6IHNob3cgZnVsbCB3aWRnZXQgY2F0YWxvZzsgY2hlY2sgaXRlbXMgcHJlc2VudCBpbiBnZXRXaWRnZXRzIHdpZGdldEFyci4gKi9cclxuICBwcml2YXRlIGFwcGx5RWRpdE1vZGVXaWRnZXRDYXRhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGVsZS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICBlbGUudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgIChlbGUuc3ViV2lkZ2V0cyA/PyBbXSkuZm9yRWFjaCgoc3ViOiBhbnkpID0+IHtcclxuICAgICAgICBzdWIudmFsdWUgPSBmYWxzZTtcclxuICAgICAgICBzdWIudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZpbHRlcihcclxuICAgICAgKHcpID0+IHcudmlzaWJpbGl0eVxyXG4gICAgKS5sZW5ndGg7XHJcbiAgICB0aGlzLnJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENSRUFURTogbGltaXQgdmlzaWJsZSB0aWxlcyB0byBkaXNwbGF5ZWRXaWRnZXRzIHdoZW4gcHJvdmlkZWQuICovXHJcbiAgcHJpdmF0ZSBhcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc3BsYXllZFdpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpO1xyXG4gICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDA7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIGNvbnN0IGZpbmFsRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuZGlzcGxheWVkV2lkZ2V0cyldO1xyXG4gICAgZmluYWxEYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmlzaWJsZVN1YkNvZGVzID0gKGVsZW1lbnQuc3ViX3dpZGdldHMgPz8gW10pLm1hcChcclxuICAgICAgICAgICAgKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnksIHN1YkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSB2aXNpYmxlU3ViQ29kZXMuaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgc3ViRWxlbWVudC5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQrKztcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbihzYXZlZFdpZGdldHM6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhID0gWy4uLm5ldyBTZXQoc2F2ZWRXaWRnZXRzID8/IFtdKV07XHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudD8uc3RhdGUgJiYgZWxlbWVudC5zdGF0ZSAhPT0gJ0FDVElWRScpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZS5pZCAhPT0gZWxlbWVudC53aWRnZXRfY29kZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbGUudmFsdWUgPSB0cnVlO1xyXG4gICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwICYmIGVsZW1lbnQuc3ViX3dpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgYWN0aXZlU3ViQ29kZXMgPSAoZWxlbWVudC5zdWJfd2lkZ2V0cyA/PyBbXSlcclxuICAgICAgICAgICAgLmZpbHRlcigoc3Vid2lkZ2V0OiBhbnkpID0+IHN1YndpZGdldC5zdGF0ZSA9PT0gJ0FDVElWRScpXHJcbiAgICAgICAgICAgIC5tYXAoKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzW3N1YkluZGV4XS52YWx1ZSA9IGFjdGl2ZVN1YkNvZGVzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIHN1YkVsZW1lbnQuaWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgd2lkZ2V0c0xpc3QgPSB7XHJcbiAgICBDT01QTElBTkNFOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ292ZXJ2aWV3JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUHJvZ3JhbXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLm92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYWxlbmRhcicsXHJcbiAgICAgICAgaWQ6ICdjb21wbGlhbmNlX2NhbGVuZGFyX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0eSBDYWxlbmRhciBzaG93cyB0aGUgZHVlIGRhdGVzIG9mIHJlc3BvbnNpYmlsaXRpZXMgaW4gYSBjYWxlbmRhciBmb3JtYXQuIFRoZSByZXNwb25zaWJpbGl0aWVzIGFyZSBjb2xvciBjb2RlZCB0byByZWZsZWN0IHRoZSBzdGF0dXMgb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc3BvbnNpYmlsaXR5Q2FsZW5kZXJXaWRnZXQsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlJyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXRpZXNfYnlfYXNzaWduZWUnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXNzaWduZWUgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiByZXNwb25zaWJpbGl0aWVzIGJ5IHVzZXJzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5yZXNwb25zaWJpbGl0aWVzQnlBc3NpZ25lZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXR5X2NlbnRlcl9vdmVydmlld19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiByZXNwb25zaWJpbGl0aWVzIGFuZCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5yZXNwb25zaWJpbGl0eUNlbnRlck92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBpZDogJ215X3Jlc3BvbnNpYmlsaXRpZXMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUsIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSByZXZpZXdpbmcgYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSBvdmVyc2VlaW5nLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5teVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXHJcbiAgICAgICAgdGFiT3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBSZXZpZXdpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ3Jldmlld2VyX3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIE92ZXJzZWVpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2NjX3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ0tleSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBpZDogJ2tleV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2Yga2V5IHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nLCB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZyBhbmQgdGhhdCB5b3UgaGF2ZSBhc3NpZ25lZCB0byBhbm90aGVyIHBlcnNvbi4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMua2V5UmVzcG9uc2liaWxpdGllc1dpZGdldCxcclxuICAgICAgICB0YWJPcHRpb246IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllc19vdmVydmlld19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfbXlfcmVzcG9uc2liaWxpdGllc19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBSZXZpZXdpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2tleV9pX2FtX3Jldmlld2luZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBPdmVyc2VlaW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfaV9hbV9vdmVyc2VlaW5nX2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1RyZW5kIEFuYWx5c2lzJyxcclxuICAgICAgICBpZDogJ3RyZW5kX2FuYWx5c2lzX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBUcmVuZCBBbmFseXNpcyBpcyBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBvdmVyIGEgcGVyaW9kLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy50cmVuZEFuYWx5c2lzV2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICBcclxuICB9O1xyXG5cclxuICBzZWxlY3RXaWRnZXQoXHJcbiAgICBldmVudDogYW55LFxyXG4gICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICB3aWRnZXRJZDogc3RyaW5nLFxyXG4gICAgc3ViV2lkZ2V0SWQ/OiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdLmZpbmRJbmRleChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gd2lkZ2V0SWRcclxuICAgICk7XHJcbiAgICBjb25zdCBpc1N1YldpZGdldEFkZGFibGUgPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5maW5kSW5kZXgoXHJcbiAgICAgICh3aWRnZXQ6IGFueSkgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZFxyXG4gICAgKTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMubGVuZ3RoID49IDEwICYmXHJcbiAgICAgICAgIShzdWJXaWRnZXRJZCAmJiBpc1N1YldpZGdldEFkZGFibGUgPj0gMClcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdZb3UgY2Fubm90IGFkZCBtb3JlIHRoYW4gMTAgd2lkZ2V0cy4nLCAnYWxlcnQnKTtcclxuICAgICAgICB0aGlzLnNob3dXaWRnZXRzID0gZmFsc2U7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dXaWRnZXRzID0gdHJ1ZTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZSkgPT4gKGVsZS52YWx1ZSA9IHRydWUpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiAoZWxlLnZhbHVlID0gZmFsc2UpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGlzQWxsV2lkZ2V0c1JlbW92ZWQgPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bXHJcbiAgICAgICAgICAgIHdpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnN1YldpZGdldHMuZXZlcnkoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGlzQWxsV2lkZ2V0c1JlbW92ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkV2lkZ2V0cygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXaWRnZXQod2lkZ2V0OiB3aWRnZXRDb25maWcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXS5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmlkID09IHdpZGdldC5pZFxyXG4gICAgKTtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAoZWxlOiBhbnkpID0+IChlbGUudmFsdWUgPSBmYWxzZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5leHRDbGljaygpIHtcclxuICAgIHRoaXMud2lkZ2V0c0RhdGFNb2RpZmllZC5lbWl0KHRoaXMuc2VsZWN0ZWRXaWRnZXRzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdpZGdldHMgPSBbXTtcclxuICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICB0aGlzLmNsb3NlQ29uZmlndXJlV2lkZ2V0cy5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpIHtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3QuQ09NUExJQU5DRS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICBlbGUudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgc3ViRWxlbWVudC52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAvLyAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAvLyAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICBzdWJFbGVtZW50LnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cyB2eC1kLWJsb2NrXCIgKm5nSWY9XCJzaG93V2lkZ2V0c1wiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgIENvbmZpZ3VyZSBXaWRnZXRzXHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1iYWNrIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbS0wIHZ4LXAtMCB2eC1kLWlubGluZS1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZUNvbmZpZ3VyZURhc2hib2FyZCgpXCJcclxuICAgID5cclxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNlwiPiYjeGU5MWQ7PC9pPiBCYWNrXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXRhYlwiPlxyXG4gICAgICA8dWw+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIm1vZHVsZSA9PT0gJ0NPTVBMSUFOQ0UnXCJcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0NvbXBsaWFuY2VcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1vZHVsZSA9ICdDT01QTElBTkNFJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICBDb21wbGlhbmNlPHNwYW4+e3sgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgW2NsYXNzLmFjdGl2ZV09XCJtb2R1bGUgPT09ICdSSVNLJ1wiICpuZ0lmPVwic2hvd1Jpc2tcIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm1vZHVsZSA9ICdSSVNLJ1wiPlxyXG4gICAgICAgICAgICBSaXNrczxzcGFuPnt7IHJpc2tXaWRnZXRzRGlzcGxheUNvdW50IH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXNlYXJjaCB2eC1tYi0yXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggd2lkZ2V0c1wiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWxpc3QgdngtZC1mbGV4IHZ4LWZsZXgtd3JhcFwiXHJcbiAgICAgICpuZ0lmPVwiKHdpZGdldHNMaXN0W21vZHVsZV0gfCBzZWFyY2ggOiBzZWFyY2gpLmxlbmd0aCAhPT0gMFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHdpZGdldHNMaXN0W21vZHVsZV0gfCBzZWFyY2ggOiBzZWFyY2hcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW1cIiAqbmdJZj1cIndpZGdldD8udmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYmxvY2tcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0V2lkZ2V0KCRldmVudC50YXJnZXQuY2hlY2tlZCwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWljb25cIj5cclxuICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrLWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICBjeT1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgcj1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2stY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0taGVhZFwiPlxyXG4gICAgICAgICAgICAgIDxoNFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLXRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwid2lkZ2V0Py50aXRsZVwiXHJcbiAgICAgICAgICAgICAgPjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIndpZGdldD8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID48L3A+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhd2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1idXR0b24gYWRkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQodHJ1ZSwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICArIEFERFxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwid2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1idXR0b24gcmVtb3ZlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQoZmFsc2UsIG1vZHVsZSwgd2lkZ2V0LmlkKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgLSBSZW1vdmVcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJvZHlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBbbmdTcmNdPVwid2lkZ2V0Py53aWRnZXRJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzkwXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjEzXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdGluZy1vcHRpb24gdngtZC1mbGV4XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwid2lkZ2V0Py5zdWJXaWRnZXRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJXaWRnZXQgb2Ygd2lkZ2V0LnN1YldpZGdldHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3ViV2lkZ2V0LnZpc2liaWxpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0V2lkZ2V0KCRldmVudCwgbW9kdWxlLCB3aWRnZXQuaWQsIHN1YldpZGdldC5pZClcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInN1YldpZGdldC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHN1YldpZGdldC50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBObyBEYXRhIEltYWdlIC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgKm5nSWY9XCIod2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaCkubGVuZ3RoID09PSAwXCJcclxuICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5jb25maWd1cmVfd2lkZ2V0XCJcclxuICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxyXG4gICAgPlxyXG4gICAgPC9hcHAtbm8tZGF0YT5cclxuXHJcbiAgICA8ZmxvYXRpbmctYmFyXHJcbiAgICAgIChzdWJtaXRFdmVudCk9XCJvbk5leHRDbGljaygpXCJcclxuICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKClcIlxyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkV2lkZ2V0c1wiXHJcbiAgICAgIChkZWxldGVFdmVudCk9XCJyZW1vdmVXaWRnZXQoJGV2ZW50KVwiXHJcbiAgICA+PC9mbG9hdGluZy1iYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCMUI7SUFDRDtJQUNDO0lBMUJBLG1CQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELHFCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hFLGNBQWMsQ0FBTztJQUNyQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFlBQVksR0FBNkMsRUFBRSxDQUFDO0lBQzVELGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEIsTUFBTSxHQUEwQixZQUFZLENBQUM7SUFDcEMsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQzlCLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGNBQWMsR0FBRyxLQUFL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VSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUN6QyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0RBQWdEO1FBQ2hELDRCQUE0QjtRQUM1QixxQ0FBcUM7UUFDckMsb0RBQW9EO1FBQ3BELHVDQUF1QztRQUN2QyxVQUFVO1FBQ1YsTUFBTTtRQUNOLE1BQU07SUFDUixDQUFDO3dHQWpYVSx5QkFBeUI7NEZBQXpCLHlCQUF5QiwrVkNyQnRDLGlwS0E2SUE7OzRGRHhIYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO29LQUt2QixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQU9FLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlndXJlLXdpZGdldHMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHdpZGdldERhdGFNb2RlbCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2lkZ2V0LWRhdGEtbW9kZWwnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy1yZWYnO1xyXG5pbXBvcnQgeyB3aWRnZXRDb25maWcgfSBmcm9tICcuL3dpZGdldC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25maWd1cmUtd2lkZ2V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAT3V0cHV0KCkgd2lkZ2V0c0RhdGFNb2RpZmllZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ29uZmlndXJlV2lkZ2V0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2hlY2tib3hTdGF0dXMhOiBhbnk7XHJcbiAgc2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBjaGVja2VkQXJyYXk6IEFycmF5PHsgaW5kZXg6IG51bWJlcjsgc3RhdHVzOiBudW1iZXIgfT4gPSBbXTtcclxuICBzZWxlY3RlZFdpZGdldHM6IEFycmF5PHdpZGdldERhdGFNb2RlbD4gPSBbXTtcclxuICBBU1NFVFMgPSBBU1NFVFM7XHJcbiAgbW9kdWxlOiAnQ09NUExJQU5DRScgfCAnUklTSycgPSAnQ09NUExJQU5DRSc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRXaWRnZXRzRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgZGlzcGxheWVkV2lkZ2V0czogYW55ID0gW107XHJcbiAgQElucHV0KCkgc2hvd1Jpc2sgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Q29tcGxpYW5jZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcclxuICBub0RhdGFUZXh0ID1cclxuICAgICdZb3UgaGF2ZSBub3QgY29uZmlndXJlZCBhbnkgd2lkZ2V0cy4gQ2xpY2sgb24gdGhlIDxzdHJvbmc+Q29uZmlndXJlIFdpZGdldHM8L3N0cm9uZz4gYnV0dG9uIHRvIGJlZ2luLic7XHJcblxyXG4gIHNlbGVjdGVkV2lkZ2V0SWRzOiBhbnkgPSBbXTtcclxuICBzdWJSZXNwb25zaWJpbGl0aWVzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdWJLZXlSZXNwb25zaWJpbGl0aWVzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG4gIHJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gOTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlOiBDb25maWd1cmVXaWRnZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdpZGdldHMgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5hcHBseUVkaXRNb2RlV2lkZ2V0Q2F0YWxvZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk7XHJcbiAgICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kdWxlID0gdGhpcy5zaG93Q29tcGxpYW5jZSA/ICdDT01QTElBTkNFJyA6ICdSSVNLJztcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRURJVDogc2hvdyBmdWxsIHdpZGdldCBjYXRhbG9nOyBjaGVjayBpdGVtcyBwcmVzZW50IGluIGdldFdpZGdldHMgd2lkZ2V0QXJyLiAqL1xyXG4gIHByaXZhdGUgYXBwbHlFZGl0TW9kZVdpZGdldENhdGFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgZWxlLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgKGVsZS5zdWJXaWRnZXRzID8/IFtdKS5mb3JFYWNoKChzdWI6IGFueSkgPT4ge1xyXG4gICAgICAgIHN1Yi52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgIHN1Yi52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZmlsdGVyKFxyXG4gICAgICAodykgPT4gdy52aXNpYmlsaXR5LFxyXG4gICAgKS5sZW5ndGg7XHJcbiAgICB0aGlzLnJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENSRUFURTogbGltaXQgdmlzaWJsZSB0aWxlcyB0byBkaXNwbGF5ZWRXaWRnZXRzIHdoZW4gcHJvdmlkZWQuICovXHJcbiAgcHJpdmF0ZSBhcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc3BsYXllZFdpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpO1xyXG4gICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDA7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIGNvbnN0IGZpbmFsRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuZGlzcGxheWVkV2lkZ2V0cyldO1xyXG4gICAgZmluYWxEYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmlzaWJsZVN1YkNvZGVzID0gKGVsZW1lbnQuc3ViX3dpZGdldHMgPz8gW10pLm1hcChcclxuICAgICAgICAgICAgKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGUsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzW3N1YkluZGV4XS52aXNpYmlsaXR5ID0gdmlzaWJsZVN1YkNvZGVzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIHN1YkVsZW1lbnQuaWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCsrO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVNhdmVkV2lkZ2V0U2VsZWN0aW9uKHNhdmVkV2lkZ2V0czogYW55W10pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGEgPSBbLi4ubmV3IFNldChzYXZlZFdpZGdldHMgPz8gW10pXTtcclxuICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50Py5zdGF0ZSAmJiBlbGVtZW50LnN0YXRlICE9PSAnQUNUSVZFJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52YWx1ZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDAgJiYgZWxlbWVudC5zdWJfd2lkZ2V0cz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTdWJDb2RlcyA9IChlbGVtZW50LnN1Yl93aWRnZXRzID8/IFtdKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4gc3Vid2lkZ2V0LnN0YXRlID09PSAnQUNUSVZFJylcclxuICAgICAgICAgICAgLm1hcCgoc3Vid2lkZ2V0OiBhbnkpID0+IHN1YndpZGdldC53aWRnZXRfY29kZSk7XHJcbiAgICAgICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnksIHN1YkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZhbHVlID0gYWN0aXZlU3ViQ29kZXMuaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgc3ViRWxlbWVudC5pZCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgd2lkZ2V0c0xpc3QgPSB7XHJcbiAgICBDT01QTElBTkNFOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ292ZXJ2aWV3JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUHJvZ3JhbXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLm92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYWxlbmRhcicsXHJcbiAgICAgICAgaWQ6ICdjb21wbGlhbmNlX2NhbGVuZGFyX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0eSBDYWxlbmRhciBzaG93cyB0aGUgZHVlIGRhdGVzIG9mIHJlc3BvbnNpYmlsaXRpZXMgaW4gYSBjYWxlbmRhciBmb3JtYXQuIFRoZSByZXNwb25zaWJpbGl0aWVzIGFyZSBjb2xvciBjb2RlZCB0byByZWZsZWN0IHRoZSBzdGF0dXMgb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc3BvbnNpYmlsaXR5Q2FsZW5kZXJXaWRnZXQsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlJyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXRpZXNfYnlfYXNzaWduZWUnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBieSB1c2Vycy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzcG9uc2liaWxpdGllc0J5QXNzaWduZWUsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdyZXNwb25zaWJpbGl0eV9jZW50ZXJfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAnVGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUmVzcG9uc2liaWxpdHkgQ2VudGVycy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzcG9uc2liaWxpdHlDZW50ZXJPdmVydmlld1dpZGdldCxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMubXlSZXNwb25zaWJpbGl0aWVzV2lkZ2V0LFxyXG4gICAgICAgIHRhYk9wdGlvbjogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnTXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgICAgIGlkOiAnbXlfcmVzcG9uc2liaWxpdHlfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gUmV2aWV3aW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdyZXZpZXdlcl9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBPdmVyc2VlaW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdjY19yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdLZXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIHBlcmZvcm1hbmNlIG9mIGtleSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSwgdGhhdCB5b3UgYXJlIHJldmlld2luZywgdGhhdCB5b3UgYXJlIG92ZXJzZWVpbmcgYW5kIHRoYXQgeW91IGhhdmUgYXNzaWduZWQgdG8gYW5vdGhlciBwZXJzb24uJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmtleVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXHJcbiAgICAgICAgdGFiT3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgdGl0bGU6ICdPdmVydmlldycsXHJcbiAgICAgICAgICAvLyAgIGlkOiAna2V5X3Jlc3BvbnNpYmlsaXRpZXNfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgICAvLyAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgIC8vICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnTXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X215X3Jlc3BvbnNpYmlsaXRpZXNfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gUmV2aWV3aW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfaV9hbV9yZXZpZXdpbmdfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gT3ZlcnNlZWluZycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X2lfYW1fb3ZlcnNlZWluZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdUcmVuZCBBbmFseXNpcycsXHJcbiAgICAgICAgaWQ6ICd0cmVuZF9hbmFseXNpc19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGUgVHJlbmQgQW5hbHlzaXMgaXMgYSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBlcmZvcm1hbmNlIG9mIHJlc3BvbnNpYmlsaXRpZXMgb3ZlciBhIHBlcmlvZC4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMudHJlbmRBbmFseXNpc1dpZGdldCxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0V2lkZ2V0KFxyXG4gICAgZXZlbnQ6IGFueSxcclxuICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgd2lkZ2V0SWQ6IHN0cmluZyxcclxuICAgIHN1YldpZGdldElkPzogc3RyaW5nLFxyXG4gICkge1xyXG4gICAgY29uc3Qgd2lkZ2V0SW5kZXggPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV0uZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSB3aWRnZXRJZCxcclxuICAgICk7XHJcbiAgICBjb25zdCBpc1N1YldpZGdldEFkZGFibGUgPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5maW5kSW5kZXgoXHJcbiAgICAgICh3aWRnZXQ6IGFueSkgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZCxcclxuICAgICk7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLmxlbmd0aCA+PSAxMCAmJlxyXG4gICAgICAgICEoc3ViV2lkZ2V0SWQgJiYgaXNTdWJXaWRnZXRBZGRhYmxlID49IDApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnWW91IGNhbm5vdCBhZGQgbW9yZSB0aGFuIDEwIHdpZGdldHMuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKCFzdWJXaWRnZXRJZCkge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGUpID0+IChlbGUudmFsdWUgPSB0cnVlKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHN1YldpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW1xyXG4gICAgICAgICAgICB3aWRnZXRJbmRleFxyXG4gICAgICAgICAgXS5zdWJXaWRnZXRzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSBzdWJXaWRnZXRJZCk7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHNbXHJcbiAgICAgICAgICAgIHN1YldpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICghc3ViV2lkZ2V0SWQpIHtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IChlbGUudmFsdWUgPSBmYWxzZSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGlzQWxsV2lkZ2V0c1JlbW92ZWQgPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bXHJcbiAgICAgICAgICAgIHdpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnN1YldpZGdldHMuZXZlcnkoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGlzQWxsV2lkZ2V0c1JlbW92ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkV2lkZ2V0cygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXaWRnZXQod2lkZ2V0OiB3aWRnZXRDb25maWcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXS5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmlkID09IHdpZGdldC5pZCxcclxuICAgICk7XHJcbiAgICB0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZvckVhY2goXHJcbiAgICAgICAgKGVsZTogYW55KSA9PiAoZWxlLnZhbHVlID0gZmFsc2UpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIG9uTmV4dENsaWNrKCkge1xyXG4gICAgdGhpcy53aWRnZXRzRGF0YU1vZGlmaWVkLmVtaXQodGhpcy5zZWxlY3RlZFdpZGdldHMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDb25maWd1cmVEYXNoYm9hcmQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cyA9IFtdO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIHRoaXMuY2xvc2VDb25maWd1cmVXaWRnZXRzLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2V0V2lkZ2V0c1Zpc2liaWxpdHlUb0ZhbHNlKCkge1xyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBzdWJFbGVtZW50LnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgZWxlLnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIC8vICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgIHN1YkVsZW1lbnQudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzIHZ4LWQtYmxvY2tcIiAqbmdJZj1cInNob3dXaWRnZXRzXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cclxuICAgICAgQ29uZmlndXJlIFdpZGdldHNcclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWJhY2sgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1tLTAgdngtcC0wIHZ4LWQtaW5saW5lLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgKGNsaWNrKT1cImNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKClcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTE2XCI+JiN4ZTkxZDs8L2k+IEJhY2tcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtdGFiXCI+XHJcbiAgICAgIDx1bD5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwibW9kdWxlID09PSAnQ09NUExJQU5DRSdcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q29tcGxpYW5jZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwibW9kdWxlID0gJ0NPTVBMSUFOQ0UnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgIENvbXBsaWFuY2U8c3Bhbj57eyBjb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cIm1vZHVsZSA9PT0gJ1JJU0snXCIgKm5nSWY9XCJzaG93Umlza1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibW9kdWxlID0gJ1JJU0snXCI+XHJcbiAgICAgICAgICAgIFJpc2tzPHNwYW4+e3sgcmlza1dpZGdldHNEaXNwbGF5Q291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtc2VhcmNoIHZ4LW1iLTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCB3aWRnZXRzXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtbGlzdCB2eC1kLWZsZXggdngtZmxleC13cmFwXCJcclxuICAgICAgKm5nSWY9XCIod2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaCkubGVuZ3RoICE9PSAwXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cImxldCB3aWRnZXQgb2Ygd2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbVwiICpuZ0lmPVwid2lkZ2V0Py52aXNpYmlsaXR5XCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJibG9ja1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIndpZGdldC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RXaWRnZXQoJGV2ZW50LnRhcmdldC5jaGVja2VkLCBtb2R1bGUsIHdpZGdldC5pZClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2staWNvblwiPlxyXG4gICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2stY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgY3g9XCIyNlwiXHJcbiAgICAgICAgICAgICAgICAgIGN5PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICByPVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVjay1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgPGg0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0tdGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ3aWRnZXQ/LnRpdGxlXCJcclxuICAgICAgICAgICAgICA+PC9oND5cclxuICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwid2lkZ2V0Py5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgPjwvcD5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiF3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJ1dHRvbiBhZGRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldCh0cnVlLCBtb2R1bGUsIHdpZGdldC5pZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICsgQUREXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJ1dHRvbiByZW1vdmVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldChmYWxzZSwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAtIFJlbW92ZVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0tYm9keVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJ3aWRnZXQ/LndpZGdldEltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3OTBcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2MTNcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0aW5nLW9wdGlvbiB2eC1kLWZsZXhcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ3aWRnZXQ/LnN1YldpZGdldHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YldpZGdldCBvZiB3aWRnZXQuc3ViV2lkZ2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJXaWRnZXQudmlzaWJpbGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RXaWRnZXQoJGV2ZW50LCBtb2R1bGUsIHdpZGdldC5pZCwgc3ViV2lkZ2V0LmlkKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic3ViV2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgc3ViV2lkZ2V0LnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIE5vIERhdGEgSW1hZ2UgLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbm8tZGF0YVxyXG4gICAgICAqbmdJZj1cIih3aWRnZXRzTGlzdFttb2R1bGVdIHwgc2VhcmNoIDogc2VhcmNoKS5sZW5ndGggPT09IDBcIlxyXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLmNvbmZpZ3VyZV93aWRnZXRcIlxyXG4gICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICA+XHJcbiAgICA8L2FwcC1uby1kYXRhPlxyXG5cclxuICAgIDxmbG9hdGluZy1iYXJcclxuICAgICAgKHN1Ym1pdEV2ZW50KT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAoY2FuY2VsRXZlbnQpPVwiY2xvc2VDb25maWd1cmVEYXNoYm9hcmQoKVwiXHJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRXaWRnZXRzXCJcclxuICAgICAgKGRlbGV0ZUV2ZW50KT1cInJlbW92ZVdpZGdldCgkZXZlbnQpXCJcclxuICAgID48L2Zsb2F0aW5nLWJhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -17,6 +17,8 @@ export class ResponsibilityCenterComponent {
17
17
  radioSelection = false;
18
18
  ASSETS = ASSETS;
19
19
  selectedIds = [];
20
+ selectedIdLookup = {};
21
+ isAllSelected = false;
20
22
  animation = false;
21
23
  search = '';
22
24
  footerDetails = {
@@ -38,6 +40,7 @@ export class ResponsibilityCenterComponent {
38
40
  return ele[this.rcIdKey];
39
41
  }
40
42
  });
43
+ this.updateSelectionState();
41
44
  }
42
45
  ngOnInit() {
43
46
  this.animation = true;
@@ -46,7 +49,7 @@ export class ResponsibilityCenterComponent {
46
49
  }, 300);
47
50
  }
48
51
  isSelected(id) {
49
- return this.selectedIds.some((selected) => selected == id);
52
+ return id != null && id !== '' && this.selectedIdLookup[id] === true;
50
53
  }
51
54
  selectRc(rc, mode) {
52
55
  if (this.radioSelection) {
@@ -84,6 +87,7 @@ export class ResponsibilityCenterComponent {
84
87
  this.setList();
85
88
  }
86
89
  setList() {
90
+ this.updateSelectionState();
87
91
  const data = [];
88
92
  const rcList = [...new Set(this.responsibilityCentersList)];
89
93
  rcList.forEach((element) => {
@@ -94,8 +98,18 @@ export class ResponsibilityCenterComponent {
94
98
  this.selectedResponsibilityCenters = data;
95
99
  this.footerDetails.selectedData = this.selectedResponsibilityCenters;
96
100
  }
97
- checkSelectAll() {
98
- return this.responsibilityCentersList.every((rc) => this.isSelected(rc[this.rcIdKey]));
101
+ updateSelectionState() {
102
+ const lookup = {};
103
+ this.selectedIds.forEach((id) => {
104
+ if (id != null && id !== '') {
105
+ lookup[id] = true;
106
+ }
107
+ });
108
+ this.selectedIdLookup = lookup;
109
+ const list = this.responsibilityCentersList;
110
+ this.isAllSelected =
111
+ list.length > 0 &&
112
+ list.every((rc) => lookup[rc[this.rcIdKey]] === true);
99
113
  }
100
114
  findRcById(id) {
101
115
  return this.responsibilityCentersList.find((ele) => ele?.[this.rcIdKey] == id ||
@@ -119,6 +133,7 @@ export class ResponsibilityCenterComponent {
119
133
  const resolved = this.resolveSelectedId(id);
120
134
  if (resolved != null && resolved !== '' && !this.isSelected(resolved)) {
121
135
  this.selectedIds.push(resolved);
136
+ this.selectedIdLookup[resolved] = true;
122
137
  }
123
138
  });
124
139
  }
@@ -203,11 +218,11 @@ export class ResponsibilityCenterComponent {
203
218
  this.closeRcList.emit();
204
219
  }
205
220
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsibilityCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
206
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResponsibilityCenterComponent, selector: "app-responsibility-center", inputs: { responsibilityCentersList: "responsibilityCentersList", selectedResponsibilityCenters: "selectedResponsibilityCenters", rcIdKey: "rcIdKey", radioSelection: "radioSelection" }, outputs: { saveSelectedList: "saveSelectedList", closeRcList: "closeRcList" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Responsibility Center(s)\r\n </div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Responsibility Center\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"responsibilityCentersList | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"checkSelectAll()\"\r\n (ngValueChange)=\"selectAll($event)\"\r\n >\r\n <strong>{{\r\n checkSelectAll() ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelected(rc.item_id)\"\r\n (ngValueChange)=\"selectRc(rc.item_id, $event)\"\r\n >\r\n <ul class=\"responsibility-center-list-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{ entity }}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent)=\"selectRc($event.item_id, false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "buttonIcon", "iconClass"], outputs: ["buttonAction"] }, { kind: "pipe", type: i7.FilterPipe, name: "filter" }] });
221
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResponsibilityCenterComponent, selector: "app-responsibility-center", inputs: { responsibilityCentersList: "responsibilityCentersList", selectedResponsibilityCenters: "selectedResponsibilityCenters", rcIdKey: "rcIdKey", radioSelection: "radioSelection" }, outputs: { saveSelectedList: "saveSelectedList", closeRcList: "closeRcList" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Responsibility Center(s)\r\n </div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Responsibility Center\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"responsibilityCentersList | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"isAllSelected\"\r\n (ngValueChange)=\"selectAll($event)\"\r\n >\r\n <strong>{{\r\n isAllSelected ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox\r\n [ngValue]=\"!!selectedIdLookup[rc.item_id]\"\r\n (ngValueChange)=\"selectRc(rc.item_id, $event)\"\r\n >\r\n <ul class=\"responsibility-center-list-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{ entity }}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent)=\"selectRc($event.item_id, false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[arTooltip]", inputs: ["arTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }, { kind: "component", type: i6.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "buttonIcon", "iconClass"], outputs: ["buttonAction"] }, { kind: "pipe", type: i7.FilterPipe, name: "filter" }] });
207
222
  }
208
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsibilityCenterComponent, decorators: [{
209
224
  type: Component,
210
- args: [{ selector: 'app-responsibility-center', template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Responsibility Center(s)\r\n </div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Responsibility Center\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"responsibilityCentersList | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"checkSelectAll()\"\r\n (ngValueChange)=\"selectAll($event)\"\r\n >\r\n <strong>{{\r\n checkSelectAll() ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox\r\n [ngValue]=\"isSelected(rc.item_id)\"\r\n (ngValueChange)=\"selectRc(rc.item_id, $event)\"\r\n >\r\n <ul class=\"responsibility-center-list-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{ entity }}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent)=\"selectRc($event.item_id, false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\n"] }]
225
+ args: [{ selector: 'app-responsibility-center', template: "<div class=\"responsibility-center\" [class.animate-slideInRight]=\"animation\">\r\n <div\r\n class=\"responsibility-center-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Responsibility Center(s)\r\n </div>\r\n </div>\r\n <div class=\"responsibility-center-body\">\r\n <div class=\"responsibility-center-search vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"search\"\r\n placeholder=\"Search Responsibility Center\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"responsibilityCentersList | filter : search as searchList\"\r\n >\r\n <div class=\"select-all\" *ngIf=\"searchList.length > 1\">\r\n <app-cs-checkbox\r\n [ngValue]=\"isAllSelected\"\r\n (ngValueChange)=\"selectAll($event)\"\r\n >\r\n <strong>{{\r\n isAllSelected ? \"Deselect All\" : \"Select All\"\r\n }}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"responsibility-center-list\" *ngIf=\"searchList.length > 0\">\r\n <li *ngFor=\"let rc of searchList; let i = index\">\r\n <app-cs-checkbox\r\n [ngValue]=\"!!selectedIdLookup[rc.item_id]\"\r\n (ngValueChange)=\"selectRc(rc.item_id, $event)\"\r\n >\r\n <ul class=\"responsibility-center-list-name\">\r\n <li\r\n *ngFor=\"let entity of rc.rc_name; let j = index\"\r\n [arTooltip]=\"entity\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n >\r\n <i class=\"icons\" *ngIf=\"j !== 0\">&#xe910;</i>\r\n {{ entity }}\r\n <!-- <span class=\"name\">{{entity}}</span> -->\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data\r\n *ngIf=\"searchList.length == 0\"\r\n [noDataImage]=\"ASSETS.search_data\"\r\n [noDataText]=\"'No data to display'\"\r\n >\r\n </app-no-data>\r\n </ng-container>\r\n\r\n <div class=\"responsibility-center-footer\">\r\n <app-dashboard-footer\r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeRcList.emit()\"\r\n (deleteEvent)=\"selectRc($event.item_id, false)\"\r\n (submitEvent)=\"save()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .responsibility-center{background:#fff;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .responsibility-center-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .responsibility-center-body{height:calc(100vh - 2.75rem);padding:2rem;position:relative}::ng-deep .responsibility-center-body .select-all{display:flex;padding-bottom:1rem}::ng-deep .responsibility-center-body .select-all app-cs-checkbox{display:flex}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value{font-weight:600!important;max-width:unset!important;font-size:12px!important}::ng-deep .responsibility-center-body .select-all app-cs-checkbox label span.value strong{color:#161b2f!important;font-weight:600!important}::ng-deep .responsibility-center-body ul{padding:0;margin:0}::ng-deep .responsibility-center-body ul.responsibility-center-list{display:block;height:calc(100vh - 256px);margin-bottom:16px;overflow:hidden;overflow-y:auto}::ng-deep .responsibility-center-body ul.responsibility-center-list::-webkit-scrollbar-track{background:transparent}::ng-deep .responsibility-center-body ul.responsibility-center-list li{width:100%;padding:0 0 1rem;list-style:none}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio{display:flex}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label{width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox label span.value,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li{list-style:none;color:#747576;font-size:12px;font-weight:400;width:auto;padding:0 8px 0 0;max-width:100%;display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li i,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li i{font-size:8px;padding-right:4px;color:#747576;position:relative}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li span.name,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li span.name{list-style:none;color:#747576;font-size:12px;font-weight:400;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:auto;min-width:calc(100% - 20px);padding:0}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:first-child,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:first-child{color:#1e5dd3;max-width:100%}::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-checkbox ul.responsibility-center-list-name li:last-of-type,::ng-deep .responsibility-center-body ul.responsibility-center-list li app-cs-radio ul.responsibility-center-list-name li:last-of-type{color:#34aa44}::ng-deep .responsibility-center-search{position:relative}::ng-deep .responsibility-center-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .responsibility-center-search input:focus{border-color:#1e5dd3}::ng-deep .responsibility-center-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}\n"] }]
211
226
  }], ctorParameters: function () { return []; }, propDecorators: { saveSelectedList: [{
212
227
  type: Output
213
228
  }], closeRcList: [{
@@ -221,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
221
236
  }], radioSelection: [{
222
237
  type: Input
223
238
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLDZCQUE2QjtJQUM5QixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztJQUMvQiw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDbkMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUVoQixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLGFBQWEsR0FBMEI7UUFDckMsWUFBWSxFQUFFLEVBQUU7UUFDaEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixpQkFBaUIsRUFBRSxXQUFXO1FB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QUs7Z0JBQ0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uL2NvbnN0YW50cy9hc3NldHMuY29uc3RhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVzcG9uc2liaWxpdHktY2VudGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXNwb25zaWJpbGl0eS1jZW50ZXIuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpYmlsaXR5Q2VudGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSBzYXZlU2VsZWN0ZWRMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVJjTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBbXTtcclxuICBASW5wdXQoKSByY0lkS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgcmFkaW9TZWxlY3Rpb24gPSBmYWxzZTtcclxuICBBU1NFVFMgPSBBU1NFVFM7XHJcblxyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHNlYXJjaCA9ICcnO1xyXG4gIGZvb3RlckRldGFpbHM6IERhc2hib2FyZEZvb3RlckNvbmZpZyA9IHtcclxuICAgIHNlbGVjdGVkRGF0YTogW10sXHJcbiAgICBub25SZW1vdmFibGVMaXN0OiBbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnaXRlbV9uYW1lJyxcclxuICAgIGVsZW1lbnRJZDogJ2l0ZW1faWQnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyIHNlbGVjdGVkJyxcclxuICAgIHBsdXJhbFRleHQ6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHNlbGVjdGVkJyxcclxuICAgIHNob3dGcmVxdWVuY3k6IGZhbHNlLFxyXG4gICAgZnJlcXVlbmN5VGV4dDogJycsXHJcbiAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycztcclxuICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzLm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZVt0aGlzLnJjSWRLZXldKSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZVt0aGlzLnJjSWRLZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgaXNTZWxlY3RlZChpZDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZElkcy5zb21lKChzZWxlY3RlZCkgPT4gc2VsZWN0ZWQgPT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmMocmM6IGFueSwgbW9kZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5yYWRpb1NlbGVjdGlvbikge1xyXG4gICAgICBpZiAobW9kZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2gocmMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50UmMgPSB0aGlzLmZpbmRSY0J5SWQocmMpO1xyXG4gICAgY29uc3QgaWRzVG9Ub2dnbGUgPSBbcmMsIC4uLnRoaXMuZ2V0RGVzY2VuZGFudElkcyhwYXJlbnRSYyldO1xyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgdGhpcy5hZGRTZWxlY3RlZElkcyhpZHNUb1RvZ2dsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkSWRzKGlkc1RvVG9nZ2xlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RSYyhldmVudFt0aGlzLnJjSWRLZXldLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5yY0lkS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0KCkge1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XHJcbiAgICBjb25zdCByY0xpc3QgPSBbLi4ubmV3IFNldCh0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QpXTtcclxuICAgIHJjTGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChlbGVtZW50W3RoaXMucmNJZEtleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM7XHJcbiAgfVxyXG5cclxuICBjaGVja1NlbGVjdEFsbCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZXZlcnkoKHJjOiBhbnkpID0+XHJcbiAgICAgIHRoaXMuaXNTZWxlY3RlZChyY1t0aGlzLnJjSWRLZXldKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFJjQnlJZChpZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LmZpbmQoXHJcbiAgICAgIChlbGU6IGFueSkgPT5cclxuICAgICAgICBlbGU/Llt0aGlzLnJjSWRLZXldID09IGlkIHx8XHJcbiAgICAgICAgZWxlPy5pdGVtX2lkID09IGlkIHx8XHJcbiAgICAgICAgZWxlPy5yY19pZCA9PSBpZCB8fFxyXG4gICAgICAgIGVsZT8ucmNpZCA9PSBpZCB8fFxyXG4gICAgICAgIGVsZT8uaWQgPT0gaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5vZGVJZChyYzogYW55KSB7XHJcbiAgICBpZiAoIXJjKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJjW3RoaXMucmNJZEtleV0gPz8gcmMuaXRlbV9pZCA/PyByYy5yY19pZCA/PyByYy5yY2lkID8/IHJjLmlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNvbHZlU2VsZWN0ZWRJZChpZDogYW55KSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHRoaXMuZmluZFJjQnlJZChpZCk7XHJcbiAgICByZXR1cm4gbWF0Y2ggPyB0aGlzLmdldE5vZGVJZChtYXRjaCkgOiBpZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWRJZHMoaWRzOiBhbnlbXSkge1xyXG4gICAgaWRzLmZvckVhY2goKGlkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlU2VsZWN0ZWRJZChpZCk7XHJcbiAgICAgIGlmIChyZXNvbHZlZCAhPSBudWxsICYmIHJlc29sdmVkICE9PSAnJyAmJiAhdGhpcy5pc1NlbGVjdGVkKHJlc29sdmVkKSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChyZXNvbHZlZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZElkcyhpZHM6IGFueVtdKSB7XHJcbiAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVTZWxlY3RlZElkKGlkKTtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleChcclxuICAgICAgICAoc2VsZWN0ZWQpID0+IHNlbGVjdGVkID09IGlkIHx8IHNlbGVjdGVkID09IHJlc29sdmVkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIERpcmVjdCBhbmQgbmVzdGVkIGNoaWxkIFJDIGlkcyBmb3IgYSBzZWxlY3RlZCBwYXJlbnQuICovXHJcbiAgcHJpdmF0ZSBnZXREZXNjZW5kYW50SWRzKHBhcmVudFJjOiBhbnkpOiBhbnlbXSB7XHJcbiAgICBpZiAoIXBhcmVudFJjKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJlbnRJZCA9IHRoaXMuZ2V0Tm9kZUlkKHBhcmVudFJjKTtcclxuICAgIGNvbnN0IGNvbGxlY3RlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgY29uc3QgdmlzaXRlZE5vZGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgICBjb25zdCBpZHM6IGFueVtdID0gW107XHJcblxyXG4gICAgY29uc3QgYWRkID0gKGlkOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGlkID09IG51bGwgfHwgaWQgPT09ICcnIHx8IGlkID09IHBhcmVudElkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGtleSA9IFN0cmluZyhpZCk7XHJcbiAgICAgIGlmIChjb2xsZWN0ZWQuaGFzKGtleSkpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29sbGVjdGVkLmFkZChrZXkpO1xyXG4gICAgICBpZHMucHVzaChpZCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHdhbGtOb2RlID0gKG5vZGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIW5vZGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5nZXROb2RlSWQobm9kZSk7XHJcbiAgICAgIGlmIChub2RlSWQgIT0gbnVsbCAmJiBub2RlSWQgIT09ICcnKSB7XHJcbiAgICAgICAgY29uc3QgdmlzaXRLZXkgPSBTdHJpbmcobm9kZUlkKTtcclxuICAgICAgICBpZiAodmlzaXRlZE5vZGVzLmhhcyh2aXNpdEtleSkpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmlzaXRlZE5vZGVzLmFkZCh2aXNpdEtleSk7XHJcbiAgICAgIH1cclxuICAgICAgKG5vZGUuaXRlbV9jaGlsZF9pZHMgPz8gW10pLmZvckVhY2goKGNoaWxkSWQ6IGFueSkgPT4gYWRkKGNoaWxkSWQpKTtcclxuICAgICAgWy4uLihub2RlLmNoaWxkcmVuID8/IFtdKSwgLi4uKG5vZGUuaXRlbXMgPz8gW10pXS5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgYWRkKHRoaXMuZ2V0Tm9kZUlkKGNoaWxkKSk7XHJcbiAgICAgICAgd2Fsa05vZGUoY2hpbGQpO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICB3YWxrTm9kZShwYXJlbnRSYyk7XHJcblxyXG4gICAgKHBhcmVudFJjLml0ZW1fY2hpbGRfaWRzID8/IFtdKS5mb3JFYWNoKChjaGlsZElkOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgY2hpbGRSYyA9IHRoaXMuZmluZFJjQnlJZChjaGlsZElkKTtcclxuICAgICAgaWYgKGNoaWxkUmMgJiYgY2hpbGRSYyAhPT0gcGFyZW50UmMpIHtcclxuICAgICAgICB3YWxrTm9kZShjaGlsZFJjKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcGFyZW50UGF0aCA9IEFycmF5LmlzQXJyYXkocGFyZW50UmMucmNfbmFtZSkgPyBwYXJlbnRSYy5yY19uYW1lIDogW107XHJcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZm9yRWFjaCgocmM6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Tm9kZUlkKHJjKTtcclxuICAgICAgaWYgKGlkID09IHBhcmVudElkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGFuY2VzdG9ySWRzID0gcmM/LnBhcmVudF9yY19pZHMgPz8gW107XHJcbiAgICAgIGlmIChhbmNlc3Rvcklkcy5zb21lKChhbmNlc3RvcklkOiBhbnkpID0+IGFuY2VzdG9ySWQgPT0gcGFyZW50SWQpKSB7XHJcbiAgICAgICAgYWRkKGlkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGF0aCA9IEFycmF5LmlzQXJyYXkocmMucmNfbmFtZSkgPyByYy5yY19uYW1lIDogW107XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwYXJlbnRQYXRoLmxlbmd0aCAmJlxyXG4gICAgICAgIHBhdGgubGVuZ3RoID4gcGFyZW50UGF0aC5sZW5ndGggJiZcclxuICAgICAgICBwYXJlbnRQYXRoLmV2ZXJ5KChuYW1lOiBhbnksIGk6IG51bWJlcikgPT4gcGF0aFtpXSA9PT0gbmFtZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgYWRkKGlkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGlkcztcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZExpc3QuZW1pdCh0aGlzLnNlbGVjdGVkSWRzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVJjTGlzdC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXJcIiBbY2xhc3MuYW5pbWF0ZS1zbGlkZUluUmlnaHRdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgIFNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJlc3BvbnNpYmlsaXR5LWNlbnRlci1zZWFyY2ggdngtbWItMlwiPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0IHwgZmlsdGVyIDogc2VhcmNoIGFzIHNlYXJjaExpc3RcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbFwiICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgW25nVmFsdWVdPVwiY2hlY2tTZWxlY3RBbGwoKVwiXHJcbiAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHN0cm9uZz57e1xyXG4gICAgICAgICAgICBjaGVja1NlbGVjdEFsbCgpID8gXCJEZXNlbGVjdCBBbGxcIiA6IFwiU2VsZWN0IEFsbFwiXHJcbiAgICAgICAgICB9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHVsIGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLWxpc3RcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcmMgb2Ygc2VhcmNoTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJpc1NlbGVjdGVkKHJjLml0ZW1faWQpXCJcclxuICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0UmMocmMuaXRlbV9pZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInJlc3BvbnNpYmlsaXR5LWNlbnRlci1saXN0LW5hbWVcIj5cclxuICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbnRpdHkgb2YgcmMucmNfbmFtZTsgbGV0IGogPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICBbYXJUb29sdGlwXT1cImVudGl0eVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cImogIT09IDBcIj4mI3hlOTEwOzwvaT5cclxuICAgICAgICAgICAgICAgIHt7IGVudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm5hbWVcIj57e2VudGl0eX19PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcclxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcclxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItZm9vdGVyXCI+XHJcbiAgICAgIDxhcHAtZGFzaGJvYXJkLWZvb3RlclxyXG4gICAgICAgIFtmb290ZXJEZXRhaWxzXT1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgICAgIChjYW5jZWxFdmVudCk9XCJjbG9zZVJjTGlzdC5lbWl0KClcIlxyXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJzZWxlY3RSYygkZXZlbnQuaXRlbV9pZCwgZmFsc2UpXCJcclxuICAgICAgICAoc3VibWl0RXZlbnQpPVwic2F2ZSgpXCJcclxuICAgICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9yZXNwb25zaWJpbGl0eS1jZW50ZXIvcmVzcG9uc2liaWxpdHktY2VudGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLDZCQUE2QjtJQUM5QixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztJQUMvQiw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDbkMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUVoQixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLGdCQUFnQixHQUE0QixFQUFFLENBQUM7SUFDL0MsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixhQUFhLEdBQTBCO1FBQ3JDLFlBQVksRUFB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VUFBVSxDQUFDLE1BQU07Z0JBQy9CLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQzVEO2dCQUNBLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBN09VLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLCtWQ2hCMUMsNi9FQXNFQTs7NEZEdERhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwyQkFBMkI7MEVBSzNCLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhc2hib2FyZEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL3VpLWtpdC9kYXNoYm9hcmQtZm9vdGVyL2Rhc2hib2FyZC1mb290ZXItY29uZmlnJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNwb25zaWJpbGl0eS1jZW50ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzcG9uc2liaWxpdHlDZW50ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZExpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlUmNMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycyA9IFtdO1xyXG4gIEBJbnB1dCgpIHJjSWRLZXkgPSAnJztcclxuICBASW5wdXQoKSByYWRpb1NlbGVjdGlvbiA9IGZhbHNlO1xyXG4gIEFTU0VUUyA9IEFTU0VUUztcclxuXHJcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRJZExvb2t1cDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICBpc0FsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgc2VhcmNoID0gJyc7XHJcbiAgZm9vdGVyRGV0YWlsczogRGFzaGJvYXJkRm9vdGVyQ29uZmlnID0ge1xyXG4gICAgc2VsZWN0ZWREYXRhOiBbXSxcclxuICAgIG5vblJlbW92YWJsZUxpc3Q6IFtdLFxyXG4gICAgZGlzcGxheUVsZW1lbnRLZXk6ICdpdGVtX25hbWUnLFxyXG4gICAgZWxlbWVudElkOiAnaXRlbV9pZCcsXHJcbiAgICBzaW5ndWxhclRleHQ6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXIgc2VsZWN0ZWQnLFxyXG4gICAgcGx1cmFsVGV4dDogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcnMgc2VsZWN0ZWQnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogZmFsc2UsXHJcbiAgICBmcmVxdWVuY3lUZXh0OiAnJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlW3RoaXMucmNJZEtleV0pIHtcclxuICAgICAgICByZXR1cm4gZWxlW3RoaXMucmNJZEtleV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb25TdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKGlkOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpZCAhPSBudWxsICYmIGlkICE9PSAnJyAmJiB0aGlzLnNlbGVjdGVkSWRMb29rdXBbaWRdID09PSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmMocmM6IGFueSwgbW9kZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5yYWRpb1NlbGVjdGlvbikge1xyXG4gICAgICBpZiAobW9kZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2gocmMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50UmMgPSB0aGlzLmZpbmRSY0J5SWQocmMpO1xyXG4gICAgY29uc3QgaWRzVG9Ub2dnbGUgPSBbcmMsIC4uLnRoaXMuZ2V0RGVzY2VuZGFudElkcyhwYXJlbnRSYyldO1xyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgdGhpcy5hZGRTZWxlY3RlZElkcyhpZHNUb1RvZ2dsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkSWRzKGlkc1RvVG9nZ2xlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RSYyhldmVudFt0aGlzLnJjSWRLZXldLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgbGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5yY0lkS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0KCkge1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb25TdGF0ZSgpO1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XHJcbiAgICBjb25zdCByY0xpc3QgPSBbLi4ubmV3IFNldCh0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QpXTtcclxuICAgIHJjTGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChlbGVtZW50W3RoaXMucmNJZEtleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnMgPSBkYXRhO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGlvblN0YXRlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbG9va3VwOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5mb3JFYWNoKChpZCkgPT4ge1xyXG4gICAgICBpZiAoaWQgIT0gbnVsbCAmJiBpZCAhPT0gJycpIHtcclxuICAgICAgICBsb29rdXBbaWRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRMb29rdXAgPSBsb29rdXA7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0O1xyXG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID1cclxuICAgICAgbGlzdC5sZW5ndGggPiAwICYmXHJcbiAgICAgIGxpc3QuZXZlcnkoKHJjOiBhbnkpID0+IGxvb2t1cFtyY1t0aGlzLnJjSWRLZXldXSA9PT0gdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRSY0J5SWQoaWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdC5maW5kKFxyXG4gICAgICAoZWxlOiBhbnkpID0+XHJcbiAgICAgICAgZWxlPy5bdGhpcy5yY0lkS2V5XSA9PSBpZCB8fFxyXG4gICAgICAgIGVsZT8uaXRlbV9pZCA9PSBpZCB8fFxyXG4gICAgICAgIGVsZT8ucmNfaWQgPT0gaWQgfHxcclxuICAgICAgICBlbGU/LnJjaWQgPT0gaWQgfHxcclxuICAgICAgICBlbGU/LmlkID09IGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXROb2RlSWQocmM6IGFueSkge1xyXG4gICAgaWYgKCFyYykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiByY1t0aGlzLnJjSWRLZXldID8/IHJjLml0ZW1faWQgPz8gcmMucmNfaWQgPz8gcmMucmNpZCA/PyByYy5pZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZVNlbGVjdGVkSWQoaWQ6IGFueSkge1xyXG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLmZpbmRSY0J5SWQoaWQpO1xyXG4gICAgcmV0dXJuIG1hdGNoID8gdGhpcy5nZXROb2RlSWQobWF0Y2gpIDogaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFNlbGVjdGVkSWRzKGlkczogYW55W10pIHtcclxuICAgIGlkcy5mb3JFYWNoKChpZCkgPT4ge1xyXG4gICAgICBjb25zdCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZVNlbGVjdGVkSWQoaWQpO1xyXG4gICAgICBpZiAocmVzb2x2ZWQgIT0gbnVsbCAmJiByZXNvbHZlZCAhPT0gJycgJiYgIXRoaXMuaXNTZWxlY3RlZChyZXNvbHZlZCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2gocmVzb2x2ZWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZExvb2t1cFtyZXNvbHZlZF0gPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWRJZHMoaWRzOiBhbnlbXSkge1xyXG4gICAgaWRzLmZvckVhY2goKGlkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlU2VsZWN0ZWRJZChpZCk7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoXHJcbiAgICAgICAgKHNlbGVjdGVkKSA9PiBzZWxlY3RlZCA9PSBpZCB8fCBzZWxlY3RlZCA9PSByZXNvbHZlZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBEaXJlY3QgYW5kIG5lc3RlZCBjaGlsZCBSQyBpZHMgZm9yIGEgc2VsZWN0ZWQgcGFyZW50LiAqL1xyXG4gIHByaXZhdGUgZ2V0RGVzY2VuZGFudElkcyhwYXJlbnRSYzogYW55KTogYW55W10ge1xyXG4gICAgaWYgKCFwYXJlbnRSYykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50SWQgPSB0aGlzLmdldE5vZGVJZChwYXJlbnRSYyk7XHJcbiAgICBjb25zdCBjb2xsZWN0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGNvbnN0IHZpc2l0ZWROb2RlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgY29uc3QgaWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGFkZCA9IChpZDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpZCA9PSBudWxsIHx8IGlkID09PSAnJyB8fCBpZCA9PSBwYXJlbnRJZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXkgPSBTdHJpbmcoaWQpO1xyXG4gICAgICBpZiAoY29sbGVjdGVkLmhhcyhrZXkpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxlY3RlZC5hZGQoa2V5KTtcclxuICAgICAgaWRzLnB1c2goaWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB3YWxrTm9kZSA9IChub2RlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5vZGVJZCA9IHRoaXMuZ2V0Tm9kZUlkKG5vZGUpO1xyXG4gICAgICBpZiAobm9kZUlkICE9IG51bGwgJiYgbm9kZUlkICE9PSAnJykge1xyXG4gICAgICAgIGNvbnN0IHZpc2l0S2V5ID0gU3RyaW5nKG5vZGVJZCk7XHJcbiAgICAgICAgaWYgKHZpc2l0ZWROb2Rlcy5oYXModmlzaXRLZXkpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZpc2l0ZWROb2Rlcy5hZGQodmlzaXRLZXkpO1xyXG4gICAgICB9XHJcbiAgICAgIChub2RlLml0ZW1fY2hpbGRfaWRzID8/IFtdKS5mb3JFYWNoKChjaGlsZElkOiBhbnkpID0+IGFkZChjaGlsZElkKSk7XHJcbiAgICAgIFsuLi4obm9kZS5jaGlsZHJlbiA/PyBbXSksIC4uLihub2RlLml0ZW1zID8/IFtdKV0uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGFkZCh0aGlzLmdldE5vZGVJZChjaGlsZCkpO1xyXG4gICAgICAgIHdhbGtOb2RlKGNoaWxkKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgd2Fsa05vZGUocGFyZW50UmMpO1xyXG5cclxuICAgIChwYXJlbnRSYy5pdGVtX2NoaWxkX2lkcyA/PyBbXSkuZm9yRWFjaCgoY2hpbGRJZDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNoaWxkUmMgPSB0aGlzLmZpbmRSY0J5SWQoY2hpbGRJZCk7XHJcbiAgICAgIGlmIChjaGlsZFJjICYmIGNoaWxkUmMgIT09IHBhcmVudFJjKSB7XHJcbiAgICAgICAgd2Fsa05vZGUoY2hpbGRSYyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHBhcmVudFBhdGggPSBBcnJheS5pc0FycmF5KHBhcmVudFJjLnJjX25hbWUpID8gcGFyZW50UmMucmNfbmFtZSA6IFtdO1xyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0LmZvckVhY2goKHJjOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaWQgPSB0aGlzLmdldE5vZGVJZChyYyk7XHJcbiAgICAgIGlmIChpZCA9PSBwYXJlbnRJZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBhbmNlc3RvcklkcyA9IHJjPy5wYXJlbnRfcmNfaWRzID8/IFtdO1xyXG4gICAgICBpZiAoYW5jZXN0b3JJZHMuc29tZSgoYW5jZXN0b3JJZDogYW55KSA9PiBhbmNlc3RvcklkID09IHBhcmVudElkKSkge1xyXG4gICAgICAgIGFkZChpZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHBhdGggPSBBcnJheS5pc0FycmF5KHJjLnJjX25hbWUpID8gcmMucmNfbmFtZSA6IFtdO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcGFyZW50UGF0aC5sZW5ndGggJiZcclxuICAgICAgICBwYXRoLmxlbmd0aCA+IHBhcmVudFBhdGgubGVuZ3RoICYmXHJcbiAgICAgICAgcGFyZW50UGF0aC5ldmVyeSgobmFtZTogYW55LCBpOiBudW1iZXIpID0+IHBhdGhbaV0gPT09IG5hbWUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIGFkZChpZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBpZHM7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5zYXZlU2VsZWN0ZWRMaXN0LmVtaXQodGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIHRoaXMuY2xvc2VSY0xpc3QuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyXCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlxyXG4gICAgICBTZWxlY3QgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHktY2VudGVyLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItc2VhcmNoIHZ4LW1iLTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXR5IENlbnRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0lmPVwicmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCB8IGZpbHRlciA6IHNlYXJjaCBhcyBzZWFyY2hMaXN0XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGxcIiAqbmdJZj1cInNlYXJjaExpc3QubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxhcHAtY3MtY2hlY2tib3hcclxuICAgICAgICAgIFtuZ1ZhbHVlXT1cImlzQWxsU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzdHJvbmc+e3tcclxuICAgICAgICAgICAgaXNBbGxTZWxlY3RlZCA/IFwiRGVzZWxlY3QgQWxsXCIgOiBcIlNlbGVjdCBBbGxcIlxyXG4gICAgICAgICAgfX08L3N0cm9uZz5cclxuICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx1bCBjbGFzcz1cInJlc3BvbnNpYmlsaXR5LWNlbnRlci1saXN0XCIgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHJjIG9mIHNlYXJjaExpc3Q7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcclxuICAgICAgICAgICAgW25nVmFsdWVdPVwiISFzZWxlY3RlZElkTG9va3VwW3JjLml0ZW1faWRdXCJcclxuICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0UmMocmMuaXRlbV9pZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInJlc3BvbnNpYmlsaXR5LWNlbnRlci1saXN0LW5hbWVcIj5cclxuICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbnRpdHkgb2YgcmMucmNfbmFtZTsgbGV0IGogPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICBbYXJUb29sdGlwXT1cImVudGl0eVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAqbmdJZj1cImogIT09IDBcIj4mI3hlOTEwOzwvaT5cclxuICAgICAgICAgICAgICAgIHt7IGVudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm5hbWVcIj57e2VudGl0eX19PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PSAwXCJcclxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcclxuICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eS1jZW50ZXItZm9vdGVyXCI+XHJcbiAgICAgIDxhcHAtZGFzaGJvYXJkLWZvb3RlclxyXG4gICAgICAgIFtmb290ZXJEZXRhaWxzXT1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgICAgIChjYW5jZWxFdmVudCk9XCJjbG9zZVJjTGlzdC5lbWl0KClcIlxyXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJzZWxlY3RSYygkZXZlbnQuaXRlbV9pZCwgZmFsc2UpXCJcclxuICAgICAgICAoc3VibWl0RXZlbnQpPVwic2F2ZSgpXCJcclxuICAgICAgPjwvYXBwLWRhc2hib2FyZC1mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==