vcomply-workflow-engine 2.6.105 → 2.6.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/vcomply-workflow-engine.umd.js +103 -24
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency.service.js +2 -2
- package/esm2015/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.js +8 -10
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +2 -2
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +85 -14
- package/esm2015/lib/workflow-risk/workflow-risk.component.ngfactory.js +217 -113
- package/esm2015/lib/workflow-risk/workflow-risk.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-services/add-risk.service.js +10 -1
- package/esm2015/lib/workflow-services/add-risk.service.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +102 -24
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +5 -0
- package/lib/workflow-services/add-risk.service.d.ts +1 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -85,7 +85,7 @@ export class FrequencyService {
|
|
|
85
85
|
const hr = hr_min[0];
|
|
86
86
|
const min = hr_min[1];
|
|
87
87
|
let return_time = '';
|
|
88
|
-
if (meridian.toLowerCase() == 'pm') {
|
|
88
|
+
if ((meridian === null || meridian === void 0 ? void 0 : meridian.toLowerCase()) == 'pm') {
|
|
89
89
|
if (hr == 12) {
|
|
90
90
|
return_time = 12 + ':' + min + ':00';
|
|
91
91
|
}
|
|
@@ -463,4 +463,4 @@ FrequencyService.ctorParameters = () => [
|
|
|
463
463
|
{ type: AuthService },
|
|
464
464
|
{ type: Configurations, decorators: [{ type: Optional }] }
|
|
465
465
|
];
|
|
466
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBbUIsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFLakMsTUFBTSxPQUFPLGdCQUFnQjtJQXFFM0IsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBckUzQixlQUFVLEdBQWtCO1lBQ2pDLFNBQVM7WUFDVCxVQUFVO1lBQ1YsT0FBTztZQUNQLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixRQUFRO1lBQ1IsV0FBVztZQUNYLFNBQVM7WUFDVCxVQUFVO1lBQ1YsVUFBVTtTQUNYLENBQUE7UUFFTSxZQUFPLEdBQWtCO1lBQzlCLFFBQVE7WUFDUixTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFFBQVE7U0FDVCxDQUFDLENBQUMsZ0JBQWdCO1FBRVosbUJBQWMsR0FBa0I7WUFDckMsK0JBQStCO1lBQy9CLGlDQUFpQztZQUNqQyxrQ0FB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QUM7Z0JBQy9CLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDO1lBQzNCO2dCQUNFLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztTQUNqQztRQUNELE9BQU87WUFDTCxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLHNCQUFzQixFQUFFLHNCQUFzQjtTQUMvQyxDQUFBO0lBQ0gsQ0FBQztJQUdELCtCQUErQjtRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNmLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRywrQkFBK0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ2pGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVM7O1FBQ3RCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMzQixRQUFRLEVBQUUsTUFBQSxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLFdBQVcsMENBQUUsUUFBUTtTQUNsRCxDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7WUEzYkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBSVYsV0FBVztZQURYLGNBQWMsdUJBK0VsQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnN9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIG1vbnRoQXJyYXk6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnSmFudWFyeScsXHJcbiAgICAnRmVicnVhcnknLFxyXG4gICAgJ01hcmNoJyxcclxuICAgICdBcHJpbCcsXHJcbiAgICAnTWF5JyxcclxuICAgICdKdW5lJyxcclxuICAgICdKdWx5JyxcclxuICAgICdBdWd1c3QnLFxyXG4gICAgJ1NlcHRlbWJlcicsXHJcbiAgICAnT2N0b2JlcicsXHJcbiAgICAnTm92ZW1iZXInLFxyXG4gICAgJ0RlY2VtYmVyJ1xyXG4gIF1cclxuXHJcbiAgcHVibGljIGRheU5hbWU6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnTW9uZGF5JywgXHJcbiAgICAnVHVlc2RheScsIFxyXG4gICAgJ1dlZG5lc2RheScsIFxyXG4gICAgJ1RodXJzZGF5JywgXHJcbiAgICAnRnJpZGF5JywgXHJcbiAgICAnU2F0dXJkYXknLCBcclxuICAgICdTdW5kYXknXHJcbiAgXTsgLy8gZnVsbCBkYXkgbmFtZVxyXG5cclxuICBwdWJsaWMgcXVhcnRlcmx5TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnSmFudWFyeSwgQXByaWwsIEp1bHksIE9jdG9iZXInLCBcclxuICAgICdGZWJydWFyeSwgTWF5LCBBdWd1c3QsIE5vdmVtYmVyJywgXHJcbiAgICAnTWFyY2gsIEp1bmUsIFNlcHRlbWJlciwgRGVjZW1iZXInXTtcclxuXHJcbiAgcHVibGljIGRhdGVDb25maWcgPSB7XHJcbiAgICBmb3JtYXQ6IFwiREQgTU1NIFlZWVlcIixcclxuICAgIHNob3dHb1RvQ3VycmVudDogZmFsc2VcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZnJlcXVlbmN5SW5mbyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHBhdHRlcm46ICcnLFxyXG4gICAgY2FzZTogJycsXHJcbiAgICBmYWlsZWRBZnRlcjogMCxcclxuICAgIHdpbmRvdzogMCxcclxuICAgIHRpbWVJbjEyaHI6ICcnLFxyXG4gICAgdGltZUluMjRIcjogJycsXHJcbiAgICBsaWZlY3ljbGVEZXRhaWxzOiAnMDAwMC0wMC0wMH5+MCcsXHJcbiAgICBzdGFydEZyb206IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxyXG4gICAgcmVwb3J0SWQ6IDAsXHJcbiAgICBmYWlsZWRfdGltZV91dGM6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxyXG4gICAgY29udGludW91c19mYWlsZWRfZGF5czogMCxcclxuICAgIGRhdGVPZk1vZGlmaWVkOiAwLFxyXG4gICAgc3RhcnREYXRlOiAnJyxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZnJlcXVlbmN5RGV0YWlsczogb2JqZWN0ID0ge1xyXG4gICAgcGF0dGVybjogJycsXHJcbiAgICBub3RpZmljYXRpb25QZW5kaW5nOiAwLFxyXG4gICAgZGF0ZU9mTW9kaWZpZWQ6IDAsXHJcbiAgICBkZWFjdGl2YXRpb25WYWx1ZTogMCxcclxuICAgIHNlbGVjdGVkUmVwb3J0OiAwLFxyXG4gICAgbGlmZWN5Y2xlOiAnMDAwMC0wMC0wMH5+MCcsXHJcbiAgICBzdGFydERhdGU6IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLzEwMDApLFxyXG4gICAgc3RhcnRPblRoZURheTogIE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLzEwMDApLFxyXG4gICAgd2luZG93OiAwLFxyXG4gICAgZmFpbGVkOiAwLFxyXG4gICAgdGltZTogJzExOjU5IHBtJ1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZW52ICE6IGFueTtcclxuICBjb25zdHJ1Y3RvciggXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHsgXHJcbiAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgIHRpbWVGcm9tMTJoVG8yNGgodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCB0aW1lX2FyciA9IHZhbHVlLnNwbGl0KCcgJyk7XHJcbiAgICAgIGNvbnN0IG1lcmlkaWFuID0gdGltZV9hcnJbMV07XHJcbiAgICAgIGNvbnN0IGhyX21pbiA9IHRpbWVfYXJyWzBdLnNwbGl0KCc6JykubWFwKE51bWJlcik7XHJcbiAgICAgIGNvbnN0IGhyID0gaHJfbWluWzBdO1xyXG4gICAgICBjb25zdCBtaW4gPSBocl9taW5bMV07XHJcblxyXG4gICAgICBsZXQgcmV0dXJuX3RpbWUgPSAnJztcclxuXHJcbiAgICAgIGlmIChtZXJpZGlhbi50b0xvd2VyQ2FzZSgpID09ICdwbScpIHtcclxuICAgICAgICBpZiAoaHIgPT0gMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gMTIgKyAnOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9IGVsc2UgaWYgKGhyIDwgMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gK2hyICsgMTIgKyAnOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGhyID09IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9ICcwMDonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChociA8IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9IGhyICsgJzonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmV0dXJuX3RpbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGltZUluMTIodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgaHI7XHJcbiAgICAgIGxldCBtaW47XHJcbiAgICAgIGxldCBtZXJpZGlhbjtcclxuICAgICAgaWYgKHZhbHVlLnNwbGl0KCc6JylbMF0gPj0gMTIpIHtcclxuICAgICAgICBociA9IHZhbHVlLnNwbGl0KCc6JylbMF0gPT09ICcxMicgPyAxMiA6IHZhbHVlLnNwbGl0KCc6JylbMF0gLSAxMjtcclxuICAgICAgICBtaW4gPSB2YWx1ZS5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgIGlmKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gID0gXCIwXCIgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ3BtJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBociA9IHZhbHVlLnNwbGl0KCc6JylbMF0gPT0gJzAwJyA/IDEyIDogdmFsdWUuc3BsaXQoJzonKVswXTtcclxuICAgICAgICBtaW4gPSB2YWx1ZS5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgIGlmKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gID0gXCIwXCIgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ2FtJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaHIgKyAnOicgKyBtaW4gKyAnICcgKyBtZXJpZGlhbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtTdGFydERhdGUocm93OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdyb3cuLi4uJywgcm93KTtcclxuICAgIGxldCBjYWxjdWxhdGVkRGF5Om51bWJlciA9IDA7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGdldERhdGUgPSBuZXcgRGF0ZShwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwKS5nZXREYXRlKCk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBzdGFydE1vbnRoID0gbmV3IERhdGUocGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpICogMTAwMCkuZ2V0TW9udGgoKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwICYmXHJcbiAgICAgIChyb3cuZnJlcXVlbmN5X3RlbXBsYXRlID09PSAnZXZlcnkgd2VlaycgfHwgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDIgd2Vla3MnIHx8IHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAzIHdlZWtzJylcclxuICAgICkge1xyXG4gICAgICBsZXQgZGF5c1RvQmVBZGRlZCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XHJcbiAgICAgICAgaWYgKChjdXJyZW50RGF0ZSArIGkpICUgNyA9PT0gc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICBkYXlzVG9CZUFkZGVkID0gaTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0aW1lc3RhbXBUb0JlQWRkZWQgPSBkYXlzVG9CZUFkZGVkICogMjQgKiA2MCAqIDYwICogMTAwMDtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgdGltZXN0YW1wVG9CZUFkZGVkKS5nZXRUaW1lKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDEnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwICYmXHJcbiAgICAgICEocm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IHdlZWsnIHx8IHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAyIHdlZWtzJyB8fCByb3cuZnJlcXVlbmN5X3RlbXBsYXRlID09PSAnZXZlcnkgMyB3ZWVrcycpICYmXHJcbiAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgIT09ICdldmVyeSBkYXknXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgbW9tZW50VW5peCA9IG1vbWVudChnZXREYXRlICsgJy0nICsgKG5ldyBEYXRlKCkuZ2V0TW9udGgoKSArIDEpICsgJy0nICsgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgJyAwMDowMCcsICdERC1NTS1ZWVlZIEhIOm1tJykudW5peCgpO1xyXG4gICAgICBjYWxjdWxhdGVkRGF5ID0gbW9tZW50VW5peCAqIDEwMDA7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdnZXREYXRlJywgZ2V0RGF0ZSwgbmV3IERhdGUoKS5nZXRNb250aCgpICsgMiArICctJyArIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgbW9tZW50VW5peCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDInLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSBpZiAocm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IGRheScgJiYgcGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpIDwgRGF0ZS5ub3coKSAvIDEwMDApIHtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IERhdGUubm93KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDMnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGN1bGF0ZWREYXkgPSBwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwO1xyXG4gICAgICBjb25zb2xlLmxvZygnY2FsY3VsYXRlZERheSA0JywgY2FsY3VsYXRlZERheSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FsY3VsYXRlZERheSAvIDEwMDA7XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtGcmVxdWVuY3koZnJlcXVlbmN5OiBhbnksIHN0YXJ0X2RhdGU6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc29sZS5sb2coJ2ZyZXF1ZW5jeScsIGZyZXF1ZW5jeSwgc3RhcnRfZGF0ZSk7XHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0X2RhdGUgKiAxMDAwKTtcclxuICAgICAgY29uc29sZS5sb2coJ3N0cmF0IGRhdGUnLCBzdGFydF9kYXRlLCBzdGFydERhdGUpO1xyXG4gICAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgICAgY29uc3Qgc2Vjb25kSGFsZk1vbnRoID0gWyc3JywgJzgnLCAnOScsICcxMCcsICcxMScsICcxMiddO1xyXG4gICAgICBjb25zdCBnZXREYXlEYXRhID0gc3RhcnREYXRlLmdldERheSgpID09PSAwID8gNyA6IHN0YXJ0RGF0ZS5nZXREYXkoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBzdGFydERhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgbGV0IHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgc3dpdGNoIChtb250aCkge1xyXG4gICAgICAgIGNhc2UgMDpcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgY2FzZSA2OlxyXG4gICAgICAgIGNhc2UgOTpcclxuICAgICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgY2FzZSA3OlxyXG4gICAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Miw1LDgsMTF+MCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgIGNhc2UgODpcclxuICAgICAgICBjYXNlIDExOlxyXG4gICAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjMsNiw5LDEyfjAnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gXTtcclxuICAgICAgbGV0IGZyZXF1ZW5jeV9wYXR0ZXJuO1xyXG5cclxuICAgICAgZnJlcXVlbmN5ID0gZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxldCBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMDtcclxuICAgICAgLy8gQCA9PiBkYXkgKDEgdG8gNylcclxuICAgICAgLy8gIyA9PiBtb250aCAoMSB0byAxMilcclxuICAgICAgLy8gPyA9PiBtb250aCAlIDIgPT0gMCA/IFwiMiw0LDYsOCwxMCwxMlwiIDogXCIxLDMsNSw3LDksMTFcIlxyXG5cclxuICAgICAgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHdlZWsnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnb25lIHRpbWUnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMH4nICsgc3RhcnREYXRlLmdldEZ1bGxZZWFyKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAxMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEwJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB3ZWVrcycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcyficgKyBnZXREYXlEYXRhICsgJ34wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBmb3J0bmlnaHQnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4nICsgZ2V0RGF5RGF0YSArICd+MH4xNCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDMgd2Vla3MnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4zJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnM34nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+MSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJ+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDQ1IGRheXMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnM34nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArICgoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSAlIDIgPT0gMCA/ICcyLDQsNiw4LDEwLDEyJyA6ICcxLDMsNSw3LDksMTEnKSArICd+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHF1YXJ0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnN34nICsgc3RhcnREYXRlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEyMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEyMCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnaGFsZiB5ZWFybHknKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZigoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBpbmRleDIgPSBzZWNvbmRIYWxmTW9udGguaW5kZXhPZigoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gaW5kZXgxID4gLTEgPyAnficgKyBmaXJzdEhhbGZNb250aFtpbmRleDFdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gKyAnfjAnIDogJ34nICsgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArICcsJyArIHNlY29uZEhhbGZNb250aFtpbmRleDJdICsgJ34wJztcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICczficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgcGF0dGVybjtcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAneWVhcmx5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjInO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDMgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSA0IHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+NCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgNSB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjUnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEwIHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ3RvIGJlIGRlY2lkZWQgbGF0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuZWRpdERhdGEuZnJlcXVlbmN5X2RldGFpbHMgPSBmcmVxdWVuY3lfcGF0dGVybjtcclxuXHJcbiAgICAgIHJldHVybiB7ZnJlcXVlbmN5X3BhdHRlcm4sIGNvbnRpbnVvdXNfZmFpbGVkX2RheXN9O1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3J0SGFuZF9mcmVxQ2FsKGZyZXF1ZW5jeTogYW55LCBkYXk6IGFueSwgbW9udGg6IGFueSwgeWVhcj86IGFueSkge1xyXG4gICAgY29uc3QgbW9udGhOYW1lcyA9IFtcclxuICAgICAgeyB2YWx1ZTogMSwgbW9udGg6ICdKYW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDIsIG1vbnRoOiAnRmViJyB9LFxyXG4gICAgICB7IHZhbHVlOiAzLCBtb250aDogJ01hcicgfSxcclxuICAgICAgeyB2YWx1ZTogNCwgbW9udGg6ICdBcHInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDUsIG1vbnRoOiAnTWF5JyB9LFxyXG4gICAgICB7IHZhbHVlOiA2LCBtb250aDogJ0p1bicgfSxcclxuICAgICAgeyB2YWx1ZTogNywgbW9udGg6ICdKdWwnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDgsIG1vbnRoOiAnQXVnJyB9LFxyXG4gICAgICB7IHZhbHVlOiA5LCBtb250aDogJ1NlcCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTAsIG1vbnRoOiAnT2N0JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMSwgbW9udGg6ICdOb3YnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEyLCBtb250aDogJ0RlYycgfSxcclxuICAgIF07XHJcbiAgICBsZXQgZnJlcXVlbmN5X2RldGFpbHM7XHJcbiAgICBsZXQgY29udGludW91c19mYWlsZWRfZGF5cyA9IDA7XHJcbiAgICBjb25zdCBkYXRlX3ZhbHVlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBkYXRlX3ZhbHVlLnNldE1vbnRoKHR5cGVvZiBtb250aCAhPT0gJ251bWJlcicgPyBtb250aE5hbWVzLmZpbHRlcigoeCkgPT4geC5tb250aCA9PT0gbW9udGg/LnN1YnN0cmluZygwLCAzKSlbMF0/LnZhbHVlIC0gMSA6IG1vbnRoKTtcclxuICAgIGlmICgheWVhcikge1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldEZ1bGxZZWFyKDIwICsgbW9udGguc3BsaXQoXCInXCIpWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICB9XHJcbiAgICBkYXRlX3ZhbHVlLnNldERhdGUoZGF5KTtcclxuICAgIGxldCBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgIGNvbnN0IHNlY29uZEhhbGZNb250aCA9IFsnNycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInXTtcclxuICAgIGZyZXF1ZW5jeSA9IGZyZXF1ZW5jeS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHN3aXRjaCAoZGF0ZV92YWx1ZS5nZXRNb250aCgpKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgIGNhc2UgOTpcclxuICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICBjYXNlIDc6XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjIsNSw4LDExfjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgY2FzZSA4OlxyXG4gICAgICBjYXNlIDExOlxyXG4gICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34zLDYsOSwxMn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNvbnN0IGdldERheSA9IGRhdGVfdmFsdWUuZ2V0RGF5KCkgPT09IDAgPyA3IDogZGF0ZV92YWx1ZS5nZXREYXkoKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5KSB7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IHdlZWsnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZSB0aW1lJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcwficgKyAnJyArIGRhdGVfdmFsdWUuZ2V0RnVsbFllYXIoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBkYXknOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgYWx0ZXJuYXRlIGRheSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAxMCBkYXlzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xMCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAyIHdlZWtzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBmb3J0bmlnaHQnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+JyArIGdldERheSArICd+MH4xNCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAzIHdlZWtzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+Myc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBtb250aCc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnM34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyfjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNDUgZGF5cyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgYWx0ZXJuYXRlIG1vbnRoJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICczficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArICgoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgJSAyID09PSAwID8gJzIsNCw2LDgsMTAsMTInIDogJzEsMyw1LDcsOSwxMScpICsgJ34wJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IHF1YXJ0ZXInOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzd+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgcXVhcnRlclBhdHRlcm47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEyMCBkYXlzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xMjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGFsZiB5ZWFybHknOlxyXG4gICAgICAgIGNvbnN0IGluZGV4MSA9IGZpcnN0SGFsZk1vbnRoLmluZGV4T2YoKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGNvbnN0IGluZGV4MiA9IHNlY29uZEhhbGZNb250aC5pbmRleE9mKChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gaW5kZXgxID4gLTEgPyAnficgKyBmaXJzdEhhbGZNb250aFtpbmRleDFdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gKyAnfjAnIDogJ34nICsgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArICcsJyArIHNlY29uZEhhbGZNb250aFtpbmRleDJdICsgJ34wJztcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICczficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArIHBhdHRlcm47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2FubnVhbCc6XHJcbiAgICAgIGNhc2UgJ3llYXJseSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNH4nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnficgKyAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgKyAnfjEnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAyIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+Mic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDMgeWVhcnMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNCB5ZWFycyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNH4nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnficgKyAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgKyAnfjQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSA1IHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+NSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEwIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvbmdvaW5nJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxMH4wfjB+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvIGJlIGRlY2lkZWQgbGF0ZXInOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzV+MH4wfjAnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGF0dGVybjogZnJlcXVlbmN5X2RldGFpbHMsXHJcbiAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXM6IGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3JlcG9ydHMvb25Db21wbGV0aW9uT2ZSZXBvcnRzJywgeyBoZWFkZXJzIH0pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUaW1lWm9uZShkYXRlOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW52RGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgICB0aW1lWm9uZTogdGhpcy5hdXRoU2VydmljZT8udXNlckRldGFpbHM/LnRpbWV6b25lLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBpbnZEYXRlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
466
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBbUIsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFLakMsTUFBTSxPQUFPLGdCQUFnQjtJQXFFM0IsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBckUzQixlQUFVLEdBQWtCO1lBQ2pDLFNBQVM7WUFDVCxVQUFVO1lBQ1YsT0FBTztZQUNQLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLE1BQU07WUFDTixRQUFRO1lBQ1IsV0FBVztZQUNYLFNBQVM7WUFDVCxVQUFVO1lBQ1YsVUFBVTtTQUNYLENBQUE7UUFFTSxZQUFPLEdBQWtCO1lBQzlCLFFBQVE7WUFDUixTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFFBQVE7U0FDVCxDQUFDLENBQUMsZ0JBQWdCO1FBRVosbUJBQWMsR0FBa0I7WUFDckMsK0JBQStCO1lBQy9CLGlDQUFpQztZQUNqQyxrQ0FB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bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc30gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeVNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgbW9udGhBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdKYW51YXJ5JyxcclxuICAgICdGZWJydWFyeScsXHJcbiAgICAnTWFyY2gnLFxyXG4gICAgJ0FwcmlsJyxcclxuICAgICdNYXknLFxyXG4gICAgJ0p1bmUnLFxyXG4gICAgJ0p1bHknLFxyXG4gICAgJ0F1Z3VzdCcsXHJcbiAgICAnU2VwdGVtYmVyJyxcclxuICAgICdPY3RvYmVyJyxcclxuICAgICdOb3ZlbWJlcicsXHJcbiAgICAnRGVjZW1iZXInXHJcbiAgXVxyXG5cclxuICBwdWJsaWMgZGF5TmFtZTogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdNb25kYXknLCBcclxuICAgICdUdWVzZGF5JywgXHJcbiAgICAnV2VkbmVzZGF5JywgXHJcbiAgICAnVGh1cnNkYXknLCBcclxuICAgICdGcmlkYXknLCBcclxuICAgICdTYXR1cmRheScsIFxyXG4gICAgJ1N1bmRheSdcclxuICBdOyAvLyBmdWxsIGRheSBuYW1lXHJcblxyXG4gIHB1YmxpYyBxdWFydGVybHlNb250aDogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdKYW51YXJ5LCBBcHJpbCwgSnVseSwgT2N0b2JlcicsIFxyXG4gICAgJ0ZlYnJ1YXJ5LCBNYXksIEF1Z3VzdCwgTm92ZW1iZXInLCBcclxuICAgICdNYXJjaCwgSnVuZSwgU2VwdGVtYmVyLCBEZWNlbWJlciddO1xyXG5cclxuICBwdWJsaWMgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGZvcm1hdDogXCJERCBNTU0gWVlZWVwiLFxyXG4gICAgc2hvd0dvVG9DdXJyZW50OiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBmcmVxdWVuY3lJbmZvID0ge1xyXG4gICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgcGF0dGVybjogJycsXHJcbiAgICBjYXNlOiAnJyxcclxuICAgIGZhaWxlZEFmdGVyOiAwLFxyXG4gICAgd2luZG93OiAwLFxyXG4gICAgdGltZUluMTJocjogJycsXHJcbiAgICB0aW1lSW4yNEhyOiAnJyxcclxuICAgIGxpZmVjeWNsZURldGFpbHM6ICcwMDAwLTAwLTAwfn4wJyxcclxuICAgIHN0YXJ0RnJvbTogTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCksXHJcbiAgICByZXBvcnRJZDogMCxcclxuICAgIGZhaWxlZF90aW1lX3V0YzogTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCksXHJcbiAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzOiAwLFxyXG4gICAgZGF0ZU9mTW9kaWZpZWQ6IDAsXHJcbiAgICBzdGFydERhdGU6ICcnLFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBmcmVxdWVuY3lEZXRhaWxzOiBvYmplY3QgPSB7XHJcbiAgICBwYXR0ZXJuOiAnJyxcclxuICAgIG5vdGlmaWNhdGlvblBlbmRpbmc6IDAsXHJcbiAgICBkYXRlT2ZNb2RpZmllZDogMCxcclxuICAgIGRlYWN0aXZhdGlvblZhbHVlOiAwLFxyXG4gICAgc2VsZWN0ZWRSZXBvcnQ6IDAsXHJcbiAgICBsaWZlY3ljbGU6ICcwMDAwLTAwLTAwfn4wJyxcclxuICAgIHN0YXJ0RGF0ZTogTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvMTAwMCksXHJcbiAgICBzdGFydE9uVGhlRGF5OiAgTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvMTAwMCksXHJcbiAgICB3aW5kb3c6IDAsXHJcbiAgICBmYWlsZWQ6IDAsXHJcbiAgICB0aW1lOiAnMTE6NTkgcG0nXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBlbnYgITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKCBcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykgeyBcclxuICAgICAgaWYgKGNvbmZpZykge1xyXG4gICAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgdGltZUZyb20xMmhUbzI0aCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHRpbWVfYXJyID0gdmFsdWUuc3BsaXQoJyAnKTtcclxuICAgICAgY29uc3QgbWVyaWRpYW4gPSB0aW1lX2FyclsxXTtcclxuICAgICAgY29uc3QgaHJfbWluID0gdGltZV9hcnJbMF0uc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcclxuICAgICAgY29uc3QgaHIgPSBocl9taW5bMF07XHJcbiAgICAgIGNvbnN0IG1pbiA9IGhyX21pblsxXTtcclxuXHJcbiAgICAgIGxldCByZXR1cm5fdGltZSA9ICcnO1xyXG5cclxuICAgICAgaWYgKG1lcmlkaWFuPy50b0xvd2VyQ2FzZSgpID09ICdwbScpIHtcclxuICAgICAgICBpZiAoaHIgPT0gMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gMTIgKyAnOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9IGVsc2UgaWYgKGhyIDwgMTIpIHtcclxuICAgICAgICAgIHJldHVybl90aW1lID0gK2hyICsgMTIgKyAnOicgKyBtaW4gKyAnOjAwJztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGhyID09IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9ICcwMDonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChociA8IDEyKSB7XHJcbiAgICAgICAgICByZXR1cm5fdGltZSA9IGhyICsgJzonICsgbWluICsgJzowMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmV0dXJuX3RpbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGltZUluMTIodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgaHI7XHJcbiAgICAgIGxldCBtaW47XHJcbiAgICAgIGxldCBtZXJpZGlhbjtcclxuICAgICAgaWYgKHZhbHVlLnNwbGl0KCc6JylbMF0gPj0gMTIpIHtcclxuICAgICAgICBociA9IHZhbHVlLnNwbGl0KCc6JylbMF0gPT09ICcxMicgPyAxMiA6IHZhbHVlLnNwbGl0KCc6JylbMF0gLSAxMjtcclxuICAgICAgICBtaW4gPSB2YWx1ZS5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgIGlmKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gID0gXCIwXCIgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ3BtJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBociA9IHZhbHVlLnNwbGl0KCc6JylbMF0gPT0gJzAwJyA/IDEyIDogdmFsdWUuc3BsaXQoJzonKVswXTtcclxuICAgICAgICBtaW4gPSB2YWx1ZS5zcGxpdCgnOicpWzFdO1xyXG4gICAgICAgIGlmKG1pbi5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBtaW4gID0gXCIwXCIgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1lcmlkaWFuID0gJ2FtJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaHIgKyAnOicgKyBtaW4gKyAnICcgKyBtZXJpZGlhbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtTdGFydERhdGUocm93OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdyb3cuLi4uJywgcm93KTtcclxuICAgIGxldCBjYWxjdWxhdGVkRGF5Om51bWJlciA9IDA7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGdldERhdGUgPSBuZXcgRGF0ZShwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwKS5nZXREYXRlKCk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBzdGFydE1vbnRoID0gbmV3IERhdGUocGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpICogMTAwMCkuZ2V0TW9udGgoKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwICYmXHJcbiAgICAgIChyb3cuZnJlcXVlbmN5X3RlbXBsYXRlID09PSAnZXZlcnkgd2VlaycgfHwgcm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IDIgd2Vla3MnIHx8IHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAzIHdlZWtzJylcclxuICAgICkge1xyXG4gICAgICBsZXQgZGF5c1RvQmVBZGRlZCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XHJcbiAgICAgICAgaWYgKChjdXJyZW50RGF0ZSArIGkpICUgNyA9PT0gc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICBkYXlzVG9CZUFkZGVkID0gaTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0aW1lc3RhbXBUb0JlQWRkZWQgPSBkYXlzVG9CZUFkZGVkICogMjQgKiA2MCAqIDYwICogMTAwMDtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgdGltZXN0YW1wVG9CZUFkZGVkKS5nZXRUaW1lKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDEnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHBhcnNlSW50KHJvdy5zdGFydF9kYXRlKSA8IERhdGUubm93KCkgLyAxMDAwICYmXHJcbiAgICAgICEocm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IHdlZWsnIHx8IHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgPT09ICdldmVyeSAyIHdlZWtzJyB8fCByb3cuZnJlcXVlbmN5X3RlbXBsYXRlID09PSAnZXZlcnkgMyB3ZWVrcycpICYmXHJcbiAgICAgIHJvdy5mcmVxdWVuY3lfdGVtcGxhdGUgIT09ICdldmVyeSBkYXknXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgbW9tZW50VW5peCA9IG1vbWVudChnZXREYXRlICsgJy0nICsgKG5ldyBEYXRlKCkuZ2V0TW9udGgoKSArIDEpICsgJy0nICsgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgJyAwMDowMCcsICdERC1NTS1ZWVlZIEhIOm1tJykudW5peCgpO1xyXG4gICAgICBjYWxjdWxhdGVkRGF5ID0gbW9tZW50VW5peCAqIDEwMDA7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdnZXREYXRlJywgZ2V0RGF0ZSwgbmV3IERhdGUoKS5nZXRNb250aCgpICsgMiArICctJyArIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgbW9tZW50VW5peCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDInLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSBpZiAocm93LmZyZXF1ZW5jeV90ZW1wbGF0ZSA9PT0gJ2V2ZXJ5IGRheScgJiYgcGFyc2VJbnQocm93LnN0YXJ0X2RhdGUpIDwgRGF0ZS5ub3coKSAvIDEwMDApIHtcclxuICAgICAgY2FsY3VsYXRlZERheSA9IERhdGUubm93KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdjYWxjdWxhdGVkRGF5IDMnLCBjYWxjdWxhdGVkRGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGN1bGF0ZWREYXkgPSBwYXJzZUludChyb3cuc3RhcnRfZGF0ZSkgKiAxMDAwO1xyXG4gICAgICBjb25zb2xlLmxvZygnY2FsY3VsYXRlZERheSA0JywgY2FsY3VsYXRlZERheSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FsY3VsYXRlZERheSAvIDEwMDA7XHJcbiAgfVxyXG5cclxuICBmcmFtZXdvcmtGcmVxdWVuY3koZnJlcXVlbmN5OiBhbnksIHN0YXJ0X2RhdGU6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc29sZS5sb2coJ2ZyZXF1ZW5jeScsIGZyZXF1ZW5jeSwgc3RhcnRfZGF0ZSk7XHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0X2RhdGUgKiAxMDAwKTtcclxuICAgICAgY29uc29sZS5sb2coJ3N0cmF0IGRhdGUnLCBzdGFydF9kYXRlLCBzdGFydERhdGUpO1xyXG4gICAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgICAgY29uc3Qgc2Vjb25kSGFsZk1vbnRoID0gWyc3JywgJzgnLCAnOScsICcxMCcsICcxMScsICcxMiddO1xyXG4gICAgICBjb25zdCBnZXREYXlEYXRhID0gc3RhcnREYXRlLmdldERheSgpID09PSAwID8gNyA6IHN0YXJ0RGF0ZS5nZXREYXkoKTtcclxuICAgICAgY29uc3QgbW9udGggPSBzdGFydERhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgbGV0IHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgc3dpdGNoIChtb250aCkge1xyXG4gICAgICAgIGNhc2UgMDpcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgY2FzZSA2OlxyXG4gICAgICAgIGNhc2UgOTpcclxuICAgICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34xLDQsNywxMH4wJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTpcclxuICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgY2FzZSA3OlxyXG4gICAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+Miw1LDgsMTF+MCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgIGNhc2UgODpcclxuICAgICAgICBjYXNlIDExOlxyXG4gICAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjMsNiw5LDEyfjAnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy8gXTtcclxuICAgICAgbGV0IGZyZXF1ZW5jeV9wYXR0ZXJuO1xyXG5cclxuICAgICAgZnJlcXVlbmN5ID0gZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGxldCBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMDtcclxuICAgICAgLy8gQCA9PiBkYXkgKDEgdG8gNylcclxuICAgICAgLy8gIyA9PiBtb250aCAoMSB0byAxMilcclxuICAgICAgLy8gPyA9PiBtb250aCAlIDIgPT0gMCA/IFwiMiw0LDYsOCwxMCwxMlwiIDogXCIxLDMsNSw3LDksMTFcIlxyXG5cclxuICAgICAgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHdlZWsnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnb25lIHRpbWUnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMH4nICsgc3RhcnREYXRlLmdldEZ1bGxZZWFyKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgZGF5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSAxMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEwJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB3ZWVrcycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcyficgKyBnZXREYXlEYXRhICsgJ34wfjInO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBmb3J0bmlnaHQnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4nICsgZ2V0RGF5RGF0YSArICd+MH4xNCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDMgd2Vla3MnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMn4nICsgZ2V0RGF5RGF0YSArICd+MH4zJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnM34nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+MSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJ+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDQ1IGRheXMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSBhbHRlcm5hdGUgbW9udGgnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnM34nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArICgoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSAlIDIgPT0gMCA/ICcyLDQsNiw4LDEwLDEyJyA6ICcxLDMsNSw3LDksMTEnKSArICd+MCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IHF1YXJ0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnN34nICsgc3RhcnREYXRlLmdldERhdGUoKSArIHF1YXJ0ZXJQYXR0ZXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEyMCBkYXlzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzF+MH4wfjEyMCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnaGFsZiB5ZWFybHknKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZmlyc3RIYWxmTW9udGguaW5kZXhPZigoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBpbmRleDIgPSBzZWNvbmRIYWxmTW9udGguaW5kZXhPZigoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gaW5kZXgxID4gLTEgPyAnficgKyBmaXJzdEhhbGZNb250aFtpbmRleDFdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gKyAnfjAnIDogJ34nICsgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArICcsJyArIHNlY29uZEhhbGZNb250aFtpbmRleDJdICsgJ34wJztcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICczficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgcGF0dGVybjtcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAneWVhcmx5Jykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgMiB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjInO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDMgeWVhcnMnKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnNH4nICsgc3RhcnREYXRlLmdldERhdGUoKSArICd+JyArIChzdGFydERhdGUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgfSBlbHNlIGlmIChmcmVxdWVuY3kgPT09ICdldmVyeSA0IHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+NCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnZXZlcnkgNSB5ZWFycycpIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICc0ficgKyBzdGFydERhdGUuZ2V0RGF0ZSgpICsgJ34nICsgKHN0YXJ0RGF0ZS5nZXRNb250aCgpICsgMSkgKyAnfjUnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ2V2ZXJ5IDEwIHllYXJzJykge1xyXG4gICAgICAgIGZyZXF1ZW5jeV9wYXR0ZXJuID0gJzR+JyArIHN0YXJ0RGF0ZS5nZXREYXRlKCkgKyAnficgKyAoc3RhcnREYXRlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICB9IGVsc2UgaWYgKGZyZXF1ZW5jeSA9PT0gJ3RvIGJlIGRlY2lkZWQgbGF0ZXInKSB7XHJcbiAgICAgICAgZnJlcXVlbmN5X3BhdHRlcm4gPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmcmVxdWVuY3lfcGF0dGVybiA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuZWRpdERhdGEuZnJlcXVlbmN5X2RldGFpbHMgPSBmcmVxdWVuY3lfcGF0dGVybjtcclxuXHJcbiAgICAgIHJldHVybiB7ZnJlcXVlbmN5X3BhdHRlcm4sIGNvbnRpbnVvdXNfZmFpbGVkX2RheXN9O1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3J0SGFuZF9mcmVxQ2FsKGZyZXF1ZW5jeTogYW55LCBkYXk6IGFueSwgbW9udGg6IGFueSwgeWVhcj86IGFueSkge1xyXG4gICAgY29uc3QgbW9udGhOYW1lcyA9IFtcclxuICAgICAgeyB2YWx1ZTogMSwgbW9udGg6ICdKYW4nIH0sXHJcbiAgICAgIHsgdmFsdWU6IDIsIG1vbnRoOiAnRmViJyB9LFxyXG4gICAgICB7IHZhbHVlOiAzLCBtb250aDogJ01hcicgfSxcclxuICAgICAgeyB2YWx1ZTogNCwgbW9udGg6ICdBcHInIH0sXHJcbiAgICAgIHsgdmFsdWU6IDUsIG1vbnRoOiAnTWF5JyB9LFxyXG4gICAgICB7IHZhbHVlOiA2LCBtb250aDogJ0p1bicgfSxcclxuICAgICAgeyB2YWx1ZTogNywgbW9udGg6ICdKdWwnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDgsIG1vbnRoOiAnQXVnJyB9LFxyXG4gICAgICB7IHZhbHVlOiA5LCBtb250aDogJ1NlcCcgfSxcclxuICAgICAgeyB2YWx1ZTogMTAsIG1vbnRoOiAnT2N0JyB9LFxyXG4gICAgICB7IHZhbHVlOiAxMSwgbW9udGg6ICdOb3YnIH0sXHJcbiAgICAgIHsgdmFsdWU6IDEyLCBtb250aDogJ0RlYycgfSxcclxuICAgIF07XHJcbiAgICBsZXQgZnJlcXVlbmN5X2RldGFpbHM7XHJcbiAgICBsZXQgY29udGludW91c19mYWlsZWRfZGF5cyA9IDA7XHJcbiAgICBjb25zdCBkYXRlX3ZhbHVlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBkYXRlX3ZhbHVlLnNldE1vbnRoKHR5cGVvZiBtb250aCAhPT0gJ251bWJlcicgPyBtb250aE5hbWVzLmZpbHRlcigoeCkgPT4geC5tb250aCA9PT0gbW9udGg/LnN1YnN0cmluZygwLCAzKSlbMF0/LnZhbHVlIC0gMSA6IG1vbnRoKTtcclxuICAgIGlmICgheWVhcikge1xyXG4gICAgICBkYXRlX3ZhbHVlLnNldEZ1bGxZZWFyKDIwICsgbW9udGguc3BsaXQoXCInXCIpWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGVfdmFsdWUuc2V0RnVsbFllYXIoeWVhcik7XHJcbiAgICB9XHJcbiAgICBkYXRlX3ZhbHVlLnNldERhdGUoZGF5KTtcclxuICAgIGxldCBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICBjb25zdCBmaXJzdEhhbGZNb250aCA9IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnXTtcclxuICAgIGNvbnN0IHNlY29uZEhhbGZNb250aCA9IFsnNycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInXTtcclxuICAgIGZyZXF1ZW5jeSA9IGZyZXF1ZW5jeS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHN3aXRjaCAoZGF0ZV92YWx1ZS5nZXRNb250aCgpKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgIGNhc2UgOTpcclxuICAgICAgICBxdWFydGVyUGF0dGVybiA9ICd+MSw0LDcsMTB+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICBjYXNlIDc6XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgcXVhcnRlclBhdHRlcm4gPSAnfjIsNSw4LDExfjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgY2FzZSA4OlxyXG4gICAgICBjYXNlIDExOlxyXG4gICAgICAgIHF1YXJ0ZXJQYXR0ZXJuID0gJ34zLDYsOSwxMn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNvbnN0IGdldERheSA9IGRhdGVfdmFsdWUuZ2V0RGF5KCkgPT09IDAgPyA3IDogZGF0ZV92YWx1ZS5nZXREYXkoKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5KSB7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IHdlZWsnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzJ+JyArIGdldERheSArICd+MH4xJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZSB0aW1lJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcwficgKyAnJyArIGRhdGVfdmFsdWUuZ2V0RnVsbFllYXIoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBkYXknOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+MH4wfjEnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgYWx0ZXJuYXRlIGRheSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAxMCBkYXlzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xMCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAyIHdlZWtzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+Mic7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBmb3J0bmlnaHQnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzF+JyArIGdldERheSArICd+MH4xNCc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDE1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAzIHdlZWtzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcyficgKyBnZXREYXkgKyAnfjB+Myc7XHJcbiAgICAgICAgY29udGludW91c19mYWlsZWRfZGF5cyA9IDEwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSBtb250aCc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnM34nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyfjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNDUgZGF5cyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnMX4wfjB+NDUnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgYWx0ZXJuYXRlIG1vbnRoJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICczficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArICgoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgJSAyID09PSAwID8gJzIsNCw2LDgsMTAsMTInIDogJzEsMyw1LDcsOSwxMScpICsgJ34wJztcclxuICAgICAgICBjb250aW51b3VzX2ZhaWxlZF9kYXlzID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IHF1YXJ0ZXInOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzd+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgcXVhcnRlclBhdHRlcm47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEyMCBkYXlzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxfjB+MH4xMjAnO1xyXG4gICAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSAxNTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGFsZiB5ZWFybHknOlxyXG4gICAgICAgIGNvbnN0IGluZGV4MSA9IGZpcnN0SGFsZk1vbnRoLmluZGV4T2YoKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGNvbnN0IGluZGV4MiA9IHNlY29uZEhhbGZNb250aC5pbmRleE9mKChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gaW5kZXgxID4gLTEgPyAnficgKyBmaXJzdEhhbGZNb250aFtpbmRleDFdICsgJywnICsgc2Vjb25kSGFsZk1vbnRoW2luZGV4MV0gKyAnfjAnIDogJ34nICsgZmlyc3RIYWxmTW9udGhbaW5kZXgyXSArICcsJyArIHNlY29uZEhhbGZNb250aFtpbmRleDJdICsgJ34wJztcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICczficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArIHBhdHRlcm47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2FubnVhbCc6XHJcbiAgICAgIGNhc2UgJ3llYXJseSc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNH4nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnficgKyAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgKyAnfjEnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSAyIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+Mic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDMgeWVhcnMnOlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzR+JyArIGRhdGVfdmFsdWUuZ2V0RGF0ZSgpICsgJ34nICsgKGRhdGVfdmFsdWUuZ2V0TW9udGgoKSArIDEpICsgJ34zJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXZlcnkgNCB5ZWFycyc6XHJcbiAgICAgICAgZnJlcXVlbmN5X2RldGFpbHMgPSAnNH4nICsgZGF0ZV92YWx1ZS5nZXREYXRlKCkgKyAnficgKyAoZGF0ZV92YWx1ZS5nZXRNb250aCgpICsgMSkgKyAnfjQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdldmVyeSA1IHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+NSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V2ZXJ5IDEwIHllYXJzJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICc0ficgKyBkYXRlX3ZhbHVlLmdldERhdGUoKSArICd+JyArIChkYXRlX3ZhbHVlLmdldE1vbnRoKCkgKyAxKSArICd+MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdvbmdvaW5nJzpcclxuICAgICAgICBmcmVxdWVuY3lfZGV0YWlscyA9ICcxMH4wfjB+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvIGJlIGRlY2lkZWQgbGF0ZXInOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGZyZXF1ZW5jeV9kZXRhaWxzID0gJzV+MH4wfjAnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGF0dGVybjogZnJlcXVlbmN5X2RldGFpbHMsXHJcbiAgICAgIGNvbnRpbnVvdXNfZmFpbGVkX2RheXM6IGNvbnRpbnVvdXNfZmFpbGVkX2RheXMgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3JlcG9ydHMvb25Db21wbGV0aW9uT2ZSZXBvcnRzJywgeyBoZWFkZXJzIH0pXHJcbiAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUaW1lWm9uZShkYXRlOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW52RGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgICB0aW1lWm9uZTogdGhpcy5hdXRoU2VydmljZT8udXNlckRldGFpbHM/LnRpbWV6b25lLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBpbnZEYXRlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -168,27 +168,25 @@ export class FrequencyDialogAnnualComponent {
|
|
|
168
168
|
getPlaceholderForGt1() {
|
|
169
169
|
let placeholder = '';
|
|
170
170
|
if (this.yearlyDay === 1) {
|
|
171
|
-
placeholder = '1st ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
171
|
+
placeholder = '1st of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
172
172
|
}
|
|
173
173
|
if (this.yearlyDay === 2) {
|
|
174
|
-
placeholder = '2nd ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
174
|
+
placeholder = '2nd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
175
175
|
}
|
|
176
176
|
if (this.yearlyDay === 3) {
|
|
177
|
-
placeholder = '3rd ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
177
|
+
placeholder = '3rd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
178
178
|
}
|
|
179
179
|
if (this.yearlyDay > 3) {
|
|
180
|
-
|
|
181
|
-
placeholder =
|
|
182
|
-
this.yearlyDay + 'th of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
180
|
+
placeholder = this.yearlyDay + 'th of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
183
181
|
}
|
|
184
182
|
if (this.yearlyDay === 31 || this.yearlyDay === 21) {
|
|
185
|
-
placeholder = this.yearlyDay + 'st of
|
|
183
|
+
placeholder = this.yearlyDay + 'st of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
186
184
|
}
|
|
187
185
|
if (this.yearlyDay === 22) {
|
|
188
|
-
placeholder = this.yearlyDay + 'nd of
|
|
186
|
+
placeholder = this.yearlyDay + 'nd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
189
187
|
}
|
|
190
188
|
if (this.yearlyDay === 23) {
|
|
191
|
-
placeholder = this.yearlyDay + 'rd of
|
|
189
|
+
placeholder = this.yearlyDay + 'rd of ' + this.shortMonth[this.yearlySelected] + ', Interval: every ' + this.yearlyInput + ' years by ' + this.yearlyInterval;
|
|
192
190
|
}
|
|
193
191
|
return placeholder;
|
|
194
192
|
}
|
|
@@ -209,4 +207,4 @@ FrequencyDialogAnnualComponent.propDecorators = {
|
|
|
209
207
|
startDate: [{ type: Input }],
|
|
210
208
|
frequencyDetails: [{ type: Output }]
|
|
211
209
|
};
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3JFLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQzs7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXpCdEQsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixtQkFBYyxHQUFXLFVBQVUsQ0FBQztRQUNwQyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQUcsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsMENBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsMkJBQXNCLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0QywrQkFBMEIsR0FBVyxDQUFDLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsQ0FBQztRQUM5RSxxQkFBZ0IsR0FBUSxlQUFlLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFbEQsZUFBVSxHQUFpQixFQUFFLENBQUM7UUFHckIsU0FBSSxHQUFNLEVBQUUsQ0FBQztRQUViLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUV6QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBR0ssQ0FBQztJQUUzRCxRQUFROztRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztRQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLE9BQU8sS0FBSSxFQUFFLElBQUksUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCOztRQUNmLE1BQU0sV0FBVyxHQUFHLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFVBQVUsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQy9CLHFDQUFxQztRQUNyQyw4REFBOEQ7UUFDOUQsSUFBSTtRQUNKLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxTQUFTLElBQUcsSUFBSSxDQUFDLENBQUE7UUFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsU0FBUyxtQ0FBSSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFNBQVMsQ0FBQTtRQUMvRSxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxDQUFDO1FBQy9DLDJDQUEyQztRQUMzQywrRkFBK0Y7UUFDL0YsaUVBQWlFO1FBQ2pFLElBQUk7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxTQUFTLENBQUM7UUFDdEQsMERBQTBEO1FBQzFELHlDQUF5QztRQUN6QyxpREFBaUQ7UUFDakQseUNBQXlDO1FBQ3pDLFdBQVc7UUFDWCx5Q0FBeUM7UUFDekMsSUFBSTtJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVTs7UUFFeEIsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzdDLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUN4RCxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7Z0JBQ3hDLE1BQU07U0FDVDtRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLDBDQUFFLE9BQU8sRUFBRSxJQUFHLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQztRQUMxRyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBRTFHO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHRCxhQUFhLENBQUMsS0FBVTtRQUNsQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdELHFDQUFxQztJQUNyQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNqSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsV0FBZ0I7UUFDdEMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUcsV0FBVyxLQUFLLENBQUMsRUFBRTtZQUNwQixXQUFXLEdBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDNUM7YUFBTTtZQUNMLFdBQVcsR0FBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtTQUMzQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsb0JBQW9CO1FBQ2xCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVcsR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDckc7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVcsR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDckc7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVcsR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDckc7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNySDtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDbEQsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3JIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDckg7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNySDtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsb0JBQW9CO1FBQ2xCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVcsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1STtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsV0FBVyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVJO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixXQUFXLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDNUk7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLDRDQUE0QztZQUM1QyxXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDcEo7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ2xELFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNySDtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3JIO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDckg7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUVyQixDQUFDOzs7WUFwTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLGlrRUFBdUQ7O2FBRXhEOzs7WUFOUSxnQkFBZ0I7Ozs0QkEwQnRCLEtBQUs7bUJBQ0wsS0FBSzt3QkFFTCxLQUFLOytCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ0FubnVhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIG1vbnRoTGlzdDogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICB5ZWFybHlJbnRlcnZhbDogc3RyaW5nID0gJzExOjU5IHBtJztcclxuICB5ZWFybHlJbnB1dDogbnVtYmVyID0gMTtcclxuICB5ZWFybHlGYWlsZWQ6IG51bWJlciA9IDU7XHJcbiAgeWVhcmx5V2luZG93OiBudW1iZXIgPSAzMDtcclxuICB5ZWFybHlEYXkgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERhdGUoKTtcclxuICB5ZWFybHlMaWZlQ3ljbGVTdGFydCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKTtcclxuICB5ZWFybHlMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUodGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMCk7XHJcbiAgeWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlOiBudW1iZXIgPSAxMDtcclxuICB5ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZTogbnVtYmVyID0gMjtcclxuICB5ZWFybHlTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0TW9udGgoKTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgcHJldmlvdXNTdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgc2hvcnRNb250aDpBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBASW5wdXQoKSBtb2RlOiBhbnk9Jyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG5cclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vbnRoTGlzdCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAobW9udGggPT4gbW9udGguc3Vic3RyaW5nKDAsIDMpKTtcclxuICAgIGlmKHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybiAhPSAnJyAmJiBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDQpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKS5tYXAoTnVtYmVyKTtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXR0ZXJuSW5mb1syXSAtIDE7XHJcbiAgICAvLyBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy55ZWFybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMueWVhcmx5RGF5ID0gcGF0dGVybkluZm9bMV1cclxuICAgIC8vIGlmKE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKSA+IDApIHtcclxuICAgIC8vICAgdGhpcy55ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLnllYXJseUxpZmVjeWNsZU9jY3VyYW5jZSA9IE51bWJlcihwYXR0ZXJuSW5mb1sxXSk7XHJcbiAgICB0aGlzLnllYXJseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGUgKiAxMDAwKVxyXG4gICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RnJvbSA/PyB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZVxyXG4gICAgdGhpcy55ZWFybHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIC8vIGlmKCBsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpXHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGU7XHJcbiAgICAvLyBpZiggdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUgPT0gJzAwMDAtMDAtMDB+fjAnKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gICAgLy8gfSBlbHNlIGlmKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xyXG4gICAgLy8gICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAxO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDpzdHJpbmcpIHtcclxuICAgIHRoaXMueWVhcmx5SW50ZXJ2YWwgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMueWVhcmx5RGF5ID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2VkRmlyc3QoZXZlbnQ6IGFueSkge1xyXG4gICB0aGlzLnllYXJseUlucHV0ID0gZXZlbnQudmFsdWU7XHJcbiAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XHJcblxyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldFRpbWUoKSAvIDEwMDAgKyA4NjQwMDAwMCk7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gMCkge1xyXG4gICAgICBlbmRCeURhdGUgPSBldmVudC5lbmRzQnkgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKSA6IGVuZEJ5RGF0ZTtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gZW5kQnlEYXRlO1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xyXG4gICAgICAgICAgdGhpcy55ZWFybHlXaW5kb3cgPSBldmVudC52YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy55ZWFybHlGYWlsZWQgPSBldmVudC52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG5cclxuICAvLyBmcmVxdWVuY3kgcGF0dGVybiBhbmQgZGV0YWlscyBpbmZvXHJcbiAgZ2V0QW5udWFsRnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gIHRoaXMuZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoTnVtYmVyKHRoaXMueWVhcmx5SW5wdXQpKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID0gNCArICd+JyArIHRoaXMueWVhcmx5RGF5ICsgJ34nICsgKHRoaXMueWVhcmx5U2VsZWN0ZWQgKyAxKSArICd+JyArIHRoaXMueWVhcmx5SW5wdXQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICd5ZWFybHknO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy55ZWFybHlGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy55ZWFybHlXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKHRoaXMueWVhcmx5SW50ZXJ2YWwpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgY29uc29sZS5sb2coXCIgdGhpcy5mcmVxdWVuY3lJbmZvID09PlwiLCAgdGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG5cclxuICBnZXRGcmVxdWVuY3lQbGFjZWhvbGRlcih5ZWFybHlJbnB1dDogYW55KSB7IFxyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICBpZih5ZWFybHlJbnB1dCA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICB0aGlzLmdldFBsYWNlaG9sZGVyRm9yU3QyKCk7IFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAgdGhpcy5nZXRQbGFjZWhvbGRlckZvckd0MSgpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBzbWFsbGVyIHRoYW4gMiB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvclN0MigpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzFzdCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICcybmQgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnM3JkIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3RoIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzMSB8fCB0aGlzLnllYXJseURheSA9PT0gMjEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICdzdCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICduZCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICdyZCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIC8vIGlmIHllYXJseUlucHV0IGlzIGdyZWF0ZXIgdGhhbiAxIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGNhbGxlZFxyXG4gIGdldFBsYWNlaG9sZGVyRm9yR3QxKCkge1xyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnMXN0ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnLCBJbnRlcnZhbDogZXZlcnkgJyArIHRoaXMueWVhcmx5SW5wdXQgKyAnIHllYXJzIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzJuZCAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICczcmQgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPiAzKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArICd0aCBvZiAgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3N0IG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ25kIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3JkIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gICAgXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3JFLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQzs7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXpCdEQsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixtQkFBYyxHQUFXLFVBQVUsQ0FBQztRQUNwQyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQUcsTUFBQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsMENBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsMkJBQXNCLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLDZCQUF3QixHQUFXLEVB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LElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQy9KO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFFckIsQ0FBQzs7O1lBbE5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2Qyxpa0VBQXVEOzthQUV4RDs7O1lBTlEsZ0JBQWdCOzs7NEJBMEJ0QixLQUFLO21CQUNMLEtBQUs7d0JBRUwsS0FBSzsrQkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dBbm51YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBtb250aExpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgeWVhcmx5SW50ZXJ2YWw6IHN0cmluZyA9ICcxMTo1OSBwbSc7XHJcbiAgeWVhcmx5SW5wdXQ6IG51bWJlciA9IDE7XHJcbiAgeWVhcmx5RmFpbGVkOiBudW1iZXIgPSA1O1xyXG4gIHllYXJseVdpbmRvdzogbnVtYmVyID0gMzA7XHJcbiAgeWVhcmx5RGF5ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKHRoaXMueWVhcmx5TGlmZUN5Y2xlU3RhcnQuZ2V0VGltZSgpICsgODY0MDAwMDApO1xyXG4gIHllYXJseUxpZmVjeWNsZU9jY3VyYW5jZTogbnVtYmVyID0gMTA7XHJcbiAgeWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGU6IG51bWJlciA9IDI7XHJcbiAgeWVhcmx5U2VsZWN0ZWQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldE1vbnRoKCk7XHJcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xyXG4gIHByZXZpb3VzU3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xyXG4gIHNob3J0TW9udGg6QXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgbW9kZTogYW55PScnO1xyXG5cclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuXHJcbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb250aExpc3QgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5zaG9ydE1vbnRoID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXkubWFwKG1vbnRoID0+IG1vbnRoLnN1YnN0cmluZygwLCAzKSk7XHJcbiAgICBpZih0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiYgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA0KSB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IHBhdHRlcm5JbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+JykubWFwKE51bWJlcik7XHJcbiAgICB0aGlzLnllYXJseVNlbGVjdGVkID0gcGF0dGVybkluZm9bMl0gLSAxO1xyXG4gICAgLy8gY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ubGlmZWN5Y2xlLnNwbGl0KCd+ficpO1xyXG4gICAgdGhpcy55ZWFybHlJbnRlcnZhbCA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkVGltZTtcclxuICAgIHRoaXMueWVhcmx5V2luZG93ID0gdGhpcy5mcmVxdWVuY3lEYXRhPy53aW5kb3c7XHJcbiAgICB0aGlzLnllYXJseUlucHV0ID0gcGF0dGVybkluZm9bM107XHJcbiAgICB0aGlzLnllYXJseURheSA9IHBhdHRlcm5JbmZvWzFdXHJcbiAgICAvLyBpZihOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy55ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMClcclxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydEZyb20gPz8gdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGVcclxuICAgIHRoaXMueWVhcmx5RmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWQ7XHJcbiAgICAvLyBpZiggbGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XHJcbiAgICAvLyAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChsaWZlY3ljbGVJbmZvWzBdICsgJyAxMTo1OSBwbScsICdERC1NTU1NLVlZWVkgSEg6bW0gYScpLnVuaXgoKVxyXG4gICAgLy8gICB0aGlzLnllYXJseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShkYXRlU2VsZWN0ZWQgKiAxMDAwKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ubGlmZWN5Y2xlO1xyXG4gICAgLy8gaWYoIHRoaXMuZnJlcXVlbmN5RGF0YT8ubGlmZWN5Y2xlID09ICcwMDAwLTAwLTAwfn4wJykge1xyXG4gICAgLy8gICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcclxuICAgIC8vIH0gZWxzZSBpZihsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgdGhpcy55ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6c3RyaW5nKSB7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnllYXJseURheSA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgdGhpcy55ZWFybHlJbnB1dCA9IGV2ZW50LnZhbHVlO1xyXG4gICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRNb250aChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnllYXJseVNlbGVjdGVkID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG5cclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gZXZlbnQuZW5kc0J5ICsgJ35+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+JyArIGV2ZW50LmVuZGFmdGVyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnN0YXJ0RnJvbS50b1N0cmluZygpLmxlbmd0aCA+IDEwKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20gLyAxMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xyXG4gICAgfVxyXG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IodGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5ID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KCkgOiBlbmRCeURhdGU7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBcclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgICAgIHRoaXMueWVhcmx5V2luZG93ID0gZXZlbnQudmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMueWVhcmx5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gZnJlcXVlbmN5IHBhdHRlcm4gYW5kIGRldGFpbHMgaW5mb1xyXG4gIGdldEFubnVhbEZyZXF1ZW5jeSgpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9ICB0aGlzLmdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKE51bWJlcih0aGlzLnllYXJseUlucHV0KSk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9IDQgKyAnficgKyB0aGlzLnllYXJseURheSArICd+JyArICh0aGlzLnllYXJseVNlbGVjdGVkICsgMSkgKyAnficgKyB0aGlzLnllYXJseUlucHV0O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAneWVhcmx5JztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMueWVhcmx5RmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMueWVhcmx5V2luZG93O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aCh0aGlzLnllYXJseUludGVydmFsKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcclxuICAgIGNvbnNvbGUubG9nKFwiIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT5cIiwgIHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoeWVhcmx5SW5wdXQ6IGFueSkgeyBcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYoeWVhcmx5SW5wdXQgPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAgdGhpcy5nZXRQbGFjZWhvbGRlckZvclN0MigpOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gIHRoaXMuZ2V0UGxhY2Vob2xkZXJGb3JHdDEoKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgeWVhcmx5SW5wdXQgaXMgc21hbGxlciB0aGFuIDIgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2FsbGVkXHJcbiAgZ2V0UGxhY2Vob2xkZXJGb3JTdDIoKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICcxc3Qgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnMm5kIG9mIGV2ZXJ5ICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzNyZCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICd0aCBvZiBldmVyeSAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAnc3Qgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAnbmQgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy55ZWFybHlEYXkgKyAncmQgb2YgZXZlcnkgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBncmVhdGVyIHRoYW4gMSB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvckd0MSgpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gJzFzdCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9ICcybmQgb2YgJyArIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArICcsIEludGVydmFsOiBldmVyeSAnICsgdGhpcy55ZWFybHlJbnB1dCArICcgeWVhcnMgYnkgJyArIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSAnM3JkIG9mICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnLCBJbnRlcnZhbDogZXZlcnkgJyArIHRoaXMueWVhcmx5SW5wdXQgKyAnIHllYXJzIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMueWVhcmx5RGF5ICsgJ3RoIG9mICcgKyB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gKyAnLCBJbnRlcnZhbDogZXZlcnkgJyArIHRoaXMueWVhcmx5SW5wdXQgKyAnIHllYXJzIGJ5ICcgKyB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzMSB8fCB0aGlzLnllYXJseURheSA9PT0gMjEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICdzdCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICduZCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnllYXJseURheSArICdyZCBvZiAnICsgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICsgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgKyB0aGlzLnllYXJseUlucHV0ICsgJyB5ZWFycyBieSAnICsgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICAgIFxyXG4gIH1cclxufVxyXG4iXX0=
|