ngx-scandoc 1.3.4 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -224,6 +224,9 @@ export class ScanComponent extends BaseComponent {
|
|
|
224
224
|
this.showDialog = true;
|
|
225
225
|
this.cd.detectChanges();
|
|
226
226
|
}
|
|
227
|
+
// reset manual scan popup interval
|
|
228
|
+
this.verificationErrorSent = false;
|
|
229
|
+
this.startTime = Date.now();
|
|
227
230
|
this.displayInfo = 'scandoc.info.turn';
|
|
228
231
|
}
|
|
229
232
|
}
|
|
@@ -276,40 +279,16 @@ export class ScanComponent extends BaseComponent {
|
|
|
276
279
|
// save current image after 10sec
|
|
277
280
|
let MANUAL_INTERVAL = this.scanProvider.config.manualScanDelay;
|
|
278
281
|
const diff = (Date.now() - this.startTime) / 1000;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
//this.scanProvider.config.development
|
|
283
|
-
) {
|
|
282
|
+
const showDialog = diff > MANUAL_INTERVAL;
|
|
283
|
+
console.log('Mdiff', diff, showDialog, this.verificationErrorSent);
|
|
284
|
+
if (showDialog && !this.verificationErrorSent) {
|
|
284
285
|
this.verificationErrorSent = true;
|
|
285
286
|
console.warn('[HANDLE ERROR]');
|
|
286
287
|
this.zone.run(() => {
|
|
287
|
-
//
|
|
288
|
-
|
|
289
|
-
//
|
|
290
|
-
// {
|
|
291
|
-
// duration: 10000,
|
|
292
|
-
// viewContainerRef: this.view,
|
|
293
|
-
// }
|
|
294
|
-
// );
|
|
295
|
-
// this.__subs(ref.onAction()).subscribe((resp) => {
|
|
296
|
-
// this.manualMode(type);
|
|
297
|
-
// });
|
|
298
|
-
if (!this.scanSecondSide) {
|
|
299
|
-
this.promptManual = true;
|
|
300
|
-
// MANUAL_INTERVAL += 10;
|
|
301
|
-
}
|
|
302
|
-
// this.verificationErrorSent = false;
|
|
288
|
+
// if (!this.scanSecondSide) {
|
|
289
|
+
this.promptManual = true;
|
|
290
|
+
// }
|
|
303
291
|
this.startTime = Date.now();
|
|
304
|
-
//this.promptManual = true;
|
|
305
|
-
// this.dialogs.promptManual().subscribe((resp: any) => {
|
|
306
|
-
// console.warn(resp);
|
|
307
|
-
// if (resp) {
|
|
308
|
-
// this.manualMode(type);
|
|
309
|
-
// }
|
|
310
|
-
// this.startTime = Date.now();
|
|
311
|
-
// this.verificationErrorSent = false;
|
|
312
|
-
// });
|
|
313
292
|
});
|
|
314
293
|
// this.verificationErrorSent = true;
|
|
315
294
|
// const dataUrl = this.handleBitmapImage(img.bitmap);
|
|
@@ -717,4 +696,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
717
696
|
type: HostListener,
|
|
718
697
|
args: ['window:resize', ['$event']]
|
|
719
698
|
}] } });
|
|
720
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL3NjYW4vc2Nhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL3NjYW4vc2Nhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUlaLHVCQUF1QixFQUN2QixLQUFLLEVBSUwsV0FBVyxHQUdaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdELE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU1oRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQTBCbEQsTUFBTSxPQUFPLGFBQ1gsU0FBUSxhQUFhO0lBZ0dyQixZQUNTLEVBQXFCLEVBQ3BCLElBQVksRUFDYixjQUF3QyxFQUN2QyxRQUFrQixFQUNsQixjQUE4QixFQUM5QixRQUFrQixFQUVsQixTQUEyQixFQUUzQixRQUFxQixFQUNyQixJQUFzQixFQUV0QixJQUFrQixDQUFDLDhCQUE4Qjs7UUFFekQsS0FBSyxFQUFFLENBQUM7UUFkRCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ2IsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3ZDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMs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QUFmLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkEyREUsVUFBVTtzQkFBbEIsS0FBSztnQkFNMkIsS0FBSztzQkFBckMsV0FBVzt1QkFBQyxjQUFjO2dCQUszQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBIb3N0TGlzdGVuZXIsXG4gIEVsZW1lbnRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgTmdab25lLFxuICBJbmplY3RvcixcbiAgSG9zdEJpbmRpbmcsXG4gIFZpZXdSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBmb3JrSm9pbiwgZnJvbSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIG1hcCwgZGVsYXksIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNjYW5Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY2FuLnByb3ZpZGVyJztcbmltcG9ydCB7IFdlYmNhbUltYWdlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL3dlYmNhbS9kb21haW4vd2ViY2FtLWltYWdlJztcbmltcG9ydCB7IFdlYmNhbUluaXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy93ZWJjYW0vZG9tYWluL3dlYmNhbS1pbml0LWVycm9yJztcbmltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9hdXRoLnByb3ZpZGVyJztcbmltcG9ydCB7IE5neFNjYW5kb2NDYW1lcmFQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jYW1lcmEucHJvdmlkZXInO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbGF5b3V0LnByb3ZpZGVyJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdpbmRvdyBleHRlbmRzIFdpbmRvdyB7XG4gIFRleHREZXRlY3RvcjogYW55O1xufVxuXG5pbnRlcmZhY2UgVHJvdWJsZXNob290aW5nIHtcbiAgUmVxdWVzdDogYW55O1xuICBSZXNwb25zZTogYW55O1xuICBFeHBlY3RlZE91dHB1dDogYW55O1xuICBBY2NlcHRUZXJtc0FuZENvbmRpdGlvbnM6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBUaW1lc3RhbXBzIHtcbiAgdGltZTogbnVtYmVyO1xuICBsb2FkOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1zY2FuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjYW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY2FuLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FuQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBzY2FuQmxhc3REYXRhOiBhbnkgPSBbXG4gICAge1xuICAgICAgdGl0bGU6ICdwbXMuZGlhbG9ncy5jb21wb25lbnRzLnNjYW5Qcm9maWxlLmZyb250JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAncG1zLmRpYWxvZ3MuY29tcG9uZW50cy5zY2FuUHJvZmlsZS5mcm9udERlc2NyaXB0aW9uJyxcbiAgICAgIHNpZGU6ICdGUk9OVCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ3Btcy5kaWFsb2dzLmNvbXBvbmVudHMuc2NhblByb2ZpbGUuYmFjaycsXG4gICAgICBkZXNjcmlwdGlvbjogJ3Btcy5kaWFsb2dzLmNvbXBvbmVudHMuc2NhblByb2ZpbGUuYmFja0Rlc2NyaXB0aW9uJyxcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgc2lkZTogJ0JBQ0snLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIHR5cGUgPSAnZGVza3RvcCc7XG4gIEBJbnB1dCgpIGRpYWxvZ3M6IGFueTtcbiAgQE91dHB1dCgpIGFjdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGRldmljZUlkPzogc3RyaW5nO1xuXG4gIHNjYW5SZXN1bHRzID0gbmV3IFN1YmplY3QoKTtcbiAgc2NhblNlY29uZFNpZGUgPSBmYWxzZTtcbiAgc3RhcnRUaW1lOiBudW1iZXIgPSAwO1xuXG4gIHNjYW5JblByb2dyZXNzID0gZmFsc2U7XG5cbiAgLy8gd2ViY2FtIHNuYXBzaG90IHRyaWdnZXJcbiAgZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgaW1hZ2VIYW5kbGVyU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBzZWxlY3RlZFNpZGU6IGFueTtcbiAgaW1hZ2VzOiBhbnk7XG4gIHNjYW5UaW1lb3V0OiBhbnk7XG4gIHByZXZpZXc6IGFueSA9IG51bGw7XG4gIHNjYW5UeXBlOiBhbnk7XG5cbiAgZXJyb3JDb2RlID0gJzEwMDAnO1xuICBkaXNwbGF5SW5mbzogYW55ID0gJ3NjYW5kb2MuaW5mby5wb3NpdGlvbic7XG5cbiAgdmVyaWZpY2F0aW9uRXJyb3JTZW50ID0gZmFsc2U7XG4gIGVycm9yID0gZmFsc2U7XG4gIGNhbWVyYVJlYWR5ID0gZmFsc2U7XG4gIHJlc3VsdDogYW55O1xuICBzY2FuaW5nID0gZmFsc2U7XG5cbiAgcHJvbXB0TWFudWFsID0gZmFsc2U7XG5cbiAgZnJvbnRJbWFnZTogYW55O1xuICBiYWNrSW1hZ2U6IGFueTtcblxuICBpbWFnZUhhbmRsZXIgPSBuZXcgU3ViamVjdCgpO1xuICBtYW51YWxEYXRhU2V0ID0gZmFsc2U7XG4gIGxvZ0RhdGE6IFRyb3VibGVzaG9vdGluZyA9IHtcbiAgICBBY2NlcHRUZXJtc0FuZENvbmRpdGlvbnM6IHRydWUsXG4gICAgUmVxdWVzdDogbnVsbCxcbiAgICBSZXNwb25zZTogbnVsbCxcbiAgICBFeHBlY3RlZE91dHB1dDogbnVsbCxcbiAgfTtcblxuICBzY2FuRGF0YXM6IGFueSA9IFtdO1xuICBzY2FuU2lkZTogYW55O1xuICBpZFNjYW46IGFueSA9IG51bGw7XG4gIHdlYmNhbUltYWdlPzogV2ViY2FtSW1hZ2U7XG4gIG1vZGVsOiBhbnk7XG4gIHZhbGlkYXRpb24gPSBmYWxzZTtcbiAgc2Nhbm5lZEltYWdlczogYW55W10gPSBbXTtcbiAgc2NhbkRlbGF5OiBhbnkgPSAwO1xuICBwdWJsaWMgdHJpZ2dlcjogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAvLyBzd2l0Y2ggdG8gbmV4dCAvIHByZXZpb3VzIC8gc3BlY2lmaWMgd2ViY2FtOyB0cnVlL2ZhbHNlOiBmb3J3YXJkL2JhY2t3YXJkcywgc3RyaW5nOiBkZXZpY2VJZFxuICBwdWJsaWMgbmV4dFdlYmNhbTogU3ViamVjdDxib29sZWFuIHwgc3RyaW5nPiA9IG5ldyBTdWJqZWN0PFxuICAgIGJvb2xlYW4gfCBzdHJpbmdcbiAgPigpO1xuICBpbWFnZVZlcmlmaWVkID0gZmFsc2U7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbWFudWFsID0gZmFsc2U7XG4gIGlzTW9iaWxlID0gdGhpcy5wbGF0Zm9ybS5JT1MgfHwgdGhpcy5wbGF0Zm9ybS5BTkRST0lEO1xuICBASW5wdXQoKSBzaG93RGlhbG9nID0gZmFsc2U7XG4gIHNjYW5JbWFnZVRpbWVzdGFtcHM6IFRpbWVzdGFtcHMgPSB7XG4gICAgdGltZTogMCxcbiAgICBsb2FkOiAwLFxuICB9O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubW9iaWxlJykgZ2V0IGNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmlzTW9iaWxlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKCkge1xuICAgIGlmICh0aGlzLnJlc3VsdCkge1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2NhblByb3ZpZGVyITogU2NhblByb3ZpZGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHVibGljIGNhbWVyYVByb3ZpZGVyOiBOZ3hTY2FuZG9jQ2FtZXJhUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBsYXlvdXRQcm92aWRlcjogTGF5b3V0UHJvdmlkZXIsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG5cbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcblxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgdmlldzogVmlld0NvbnRhaW5lclJlZixcblxuICAgIHByaXZhdGUgYXV0aDogQXV0aFByb3ZpZGVyIC8vIHByaXZhdGUgYXBpOiBTZXJ2ZXJQcm92aWRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2NhblByb3ZpZGVyID0gdGhpcy5pbmplY3Rvci5nZXQoU2NhblByb3ZpZGVyKTtcblxuICAgIGlmICghdGhpcy5zY2FuUHJvdmlkZXIuY29uZmlnLmRldmVsb3BtZW50KSB7XG4gICAgICAvLyBjb25zb2xlID0ge1xuICAgICAgLy8gICBsb2c6ICguLi5hcmdzOiBhbnkpID0+IHt9LFxuICAgICAgLy8gICB0aW1lOiAoLi4uYXJnczogYW55KSA9PiB7fSxcbiAgICAgIC8vICAgdGltZUVuZDogKC4uLmFyZ3M6IGFueSkgPT4ge30sXG4gICAgICAvLyAgIHdhcm46ICguLi5hcmdzOiBhbnkpID0+IHt9LFxuICAgICAgLy8gICBlcnJvcjogKC4uLmFyZ3M6IGFueSkgPT4ge30sXG4gICAgICAvLyB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRMb2dEYXRhKCkge1xuICAgIHRoaXMubG9nRGF0YSA9IHtcbiAgICAgIFJlcXVlc3Q6IG51bGwsXG4gICAgICBSZXNwb25zZTogbnVsbCxcbiAgICAgIEV4cGVjdGVkT3V0cHV0OiBudWxsLFxuICAgICAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBpbml0KCkge1xuICAgIHRoaXMuYXV0aC5hY2Nlc1Rva2VuLnN1YnNjcmliZSgpO1xuICAgIHRoaXMucmVzZXRMb2dEYXRhKCk7XG4gICAgLy8gdGhpcy5yZXN1bHQ9dHJ1ZTtcbiAgICAvLyB0aGlzLnJlc3VsdCA9e307XG5cbiAgICBjb25zb2xlLmxvZygnSU5JVCBTQ0FOJyk7XG4gIH1cblxuICBjb250aW51ZSgpIHtcbiAgICB0aGlzLmRvY3VtZW50VHlwZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTaWRlLmltYWdlID0gdGhpcy53ZWJjYW1JbWFnZTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2lkZS5zaWRlID09PSAnRlJPTlQnKSB7XG4gICAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YVsxXS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIHNjYW4oKSB7XG4gICAgdGhpcy50cmlnZ2VyLm5leHQobmV3IERhdGUoKS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUltYWdlKHdlYmNhbUltYWdlOiBXZWJjYW1JbWFnZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXJ0VGltZSA9PT0gMCkge1xuICAgICAgdGhpcy5zdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIH1cbiAgICAvLyBjb25zb2xlLmxvZygnW3JlY2VpdmVkIHdlYmNhbSBpbWFnZV0nLCB3ZWJjYW1JbWFnZSk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgaWYgKHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcy5sb2FkID4gMCkge1xuICAgICAgICBjb25zdCB7IGxvYWQgfSA9IHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcztcbiAgICAgICAgY29uc3QgZGlmZiA9IHRpbWUgLSBsb2FkO1xuICAgICAgICAvLyAgIGNvbnNvbGUubG9nKCd0aW1lOicsIGRpZmYpO1xuICAgICAgICB0aGlzLnNjYW5EZWxheSA9IGRpZmY7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcy5sb2FkID0gdGltZTtcblxuICAgICAgaWYgKHdlYmNhbUltYWdlLmltYWdlRGF0YSkge1xuICAgICAgICB0aGlzLnNjYW5uZWRJbWFnZXMucHVzaCh3ZWJjYW1JbWFnZSk7XG4gICAgICAgIHRoaXMuaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcih3ZWJjYW1JbWFnZSwgJ3dvcmtlcicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGlmICh0aGlzLnNjYW5uZWRJbWFnZXMubGVuZ3RoID4gNCAmJiAhdGhpcy52YWxpZGF0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5jb25maWcuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICB0aGlzLnNjYW5uZWRJbWFnZXMuZm9yRWFjaCgoaW1nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25zb2xlQmFja2dyb3VuZCA9XG4gICAgICAgICAgICAgIFwiZm9udC1zaXplOjEwMHB4O2JhY2tncm91bmQtaW1hZ2U6IHVybCgnXCIgK1xuICAgICAgICAgICAgICBpbWcuaW1hZ2VSZXNpemVkICtcbiAgICAgICAgICAgICAgXCInKTtiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XCI7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgICAgJywgY29uc29sZUJhY2tncm91bmQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vICAgdGhpcy5mcm9udEltYWdlID0gd2ViY2FtSW1hZ2UuaW1hZ2VSZXNpemVkO1xuXG4gICAgICAgIGNvbnNvbGUudGltZUVuZCgnc2NhbicpO1xuICAgICAgICBjb25zb2xlLnRpbWUoJ3NjYW4nKTtcbiAgICAgICAgLy8gZ2V0IGxhc3QgMTBcbiAgICAgICAgY29uc29sZS5sb2coJ0NBUFRVUkVEOicsIHRoaXMuc2Nhbm5lZEltYWdlcy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLnNjYW5uZWRJbWFnZXMuc2xpY2UoLTUpO1xuICAgICAgICAvLyBzZXQgaW1hZ2VzIHRvIDBcbiAgICAgICAgdGhpcy5zY2FubmVkSW1hZ2VzID0gW107XG4gICAgICAgIGNvbnN0IGltYWdlc0FycmF5ID0gaW1hZ2VzLm1hcCgobSkgPT4gbS5pbWFnZVJlc2l6ZWQuc3BsaXQoJywnKVsxXSk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVCdXJzdERhdGEoaW1hZ2VzQXJyYXksIGltYWdlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5jYW1lcmFSZWFkeSkge1xuICAgICAgICAgIHRoaXMuc2NhbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJ1cnN0RGF0YShcbiAgICBpbWFnZXNBcnJheTogYW55LFxuICAgIGltYWdlczogYW55LFxuICAgIHR5cGU6ICd3b3JrZXInIHwgJ3BsYWluJyA9ICdwbGFpbidcbiAgKSB7XG4gICAgdGhpcy5fX3N1YnModGhpcy5zY2FuUHJvdmlkZXIuYnVyc3QoaW1hZ2VzQXJyYXkpKS5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xuICAgICAgdGhpcy5kaXNwbGF5SW5mbyA9ICdzY2FuZG9jLmluZm8uYycgKyByZXNwLkluZm9Db2RlO1xuICAgICAgLy8gY29uc29sZS50aW1lRW5kKCd2YWxpZGF0aW9uUE9TVCcpO1xuICAgICAgY29uc29sZS5sb2coJ0FuYWx5c2lzVGltZScsIHJlc3AuQW5hbHlzaXNUaW1lKTtcbiAgICAgIGNvbnN0IHsgRG9jVHlwZSwgU2VyaWVzLCBTaWRlLCBJbmZvQ29kZSB9ID0gcmVzcDtcblxuICAgICAgLy8gaWYgKEluZm9Db2RlID09PSAnMTAwNicgJiYgdGhpcy5pZFNjYW4pIHtcbiAgICAgIC8vICAgdGhpcy5oYW5kbGVMb25nVmFsaWRhdGlvbkVycm9yKGltYWdlKTtcbiAgICAgIC8vIH1cblxuICAgICAgaWYgKHJlc3AuVmFsaWRhdGVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUluZm8gPSAnJztcbiAgICAgICAgY29uc29sZS5sb2coJ1tTQ0FOTkVEIElOREVYXScsIHJlc3AuSW5kZXgpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEltYWdlID0gaW1hZ2VzW3Jlc3AuSW5kZXhdO1xuXG4gICAgICAgIC8vIHRoaXMucHJldmlldyA9IHRoaXMud2ViY2FtSW1hZ2UuaW1hZ2VBc0RhdGFVcmw7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGxldCBpbWFnZSA9IHNlbGVjdGVkSW1hZ2U7XG4gICAgICAgIGlmICh0eXBlID09ICd3b3JrZXInKSB7XG4gICAgICAgICAgY29uc3QgZGF0YVVybCA9IHRoaXMuaGFuZGxlQml0bWFwSW1hZ2Uoc2VsZWN0ZWRJbWFnZS5iaXRtYXApO1xuICAgICAgICAgIGltYWdlID0geyBkYXRhVXJsIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoSW5mb0NvZGUgPT09ICcxMDA3Jykge1xuICAgICAgICAgIC8vIEZvciBJRCBhc2sgZm9yIG90aGVyIHNpZGVcbiAgICAgICAgICBpZiAoU2lkZSA9PT0gJ0ZST05UJykge1xuICAgICAgICAgICAgdGhpcy5zY2FuQmxhc3REYXRhWzBdLmltYWdlID0gaW1hZ2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YVsxXS5pbWFnZSA9IGltYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNjYW5CbGFzdERhdGFbMF0uaW1hZ2UgJiYgdGhpcy5zY2FuQmxhc3REYXRhWzFdLmltYWdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1VQTE9BRCcpO1xuICAgICAgICAgICAgaWYgKHR5cGUgPT0gJ3dvcmtlcicpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbWFnZUhhbmRsZXIubmV4dCh7IHR5cGU6ICdzdG9wJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2NhbkJsYXN0RmluaXNoKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IFNpZGUgPT09ICdGUk9OVCcgPyAxIDogMDtcbiAgICAgICAgICAgIHRoaXMuc2NhblNlY29uZFNpZGUgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLnNpbmdsZVNjYW4odGhpcy5zY2FuQmxhc3REYXRhW251bV0pO1xuXG4gICAgICAgICAgICB0aGlzLmlkU2NhbiA9IHRoaXMuc2NhbkJsYXN0RGF0YVtudW1dLnNpZGU7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93RGlhbG9nKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbmZvID0gJ3NjYW5kb2MuaW5mby50dXJuJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zY2FuQmxhc3REYXRhWzBdLmltYWdlID0gaW1hZ2U7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdVUExPQUQnKTtcbiAgICAgICAgICBpZiAodHlwZSA9PSAnd29ya2VyJykge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUhhbmRsZXIubmV4dCh7IHR5cGU6ICdzdG9wJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zY2FuQmxhc3RGaW5pc2goKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nhbm5lZEltYWdlcyA9IFtdO1xuXG4gICAgICAgIC8vIHRoaXMuc2NhbkJsYXN0RGF0YVswXS5pbWFnZSA9IHNlbGVjdGVkSW1hZ2U7XG5cbiAgICAgICAgLy90aGlzLnNjYW5CbGFzdEZpbmlzaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2NhbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy52YWxpZGF0aW9uID0gZmFsc2U7XG5cbiAgICB0aGlzLnNjYW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJbml0RXJyb3IoZXJyb3I6IFdlYmNhbUluaXRFcnJvcik6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgfVxuXG4gIGdldCBzY2FuQmxhc3RDYW5VcGxvYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbkJsYXN0RGF0YVswXS5pbWFnZSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsTW9kZSh0eXBlOiAnd29ya2VyJyB8ICdwbGFpbicgPSAncGxhaW4nKSB7XG4gICAgdGhpcy5tYW51YWwgPSB0cnVlO1xuICAgIHRoaXMucHJvbXB0TWFudWFsID0gZmFsc2U7XG4gICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIHRoaXMuY2FtZXJhUHJvdmlkZXIuJHNob3dTd2l0Y2gubmV4dChmYWxzZSk7XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXh0cmFjdGlvbkVycm9yKGRhdGE6IGFueSkge1xuICAgIHRoaXMubG9nRGF0YS5FeHBlY3RlZE91dHB1dCA9IHt9O1xuICAgIC8vIGlmICh0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQ/Ll9hdmF0YXIpIHtcbiAgICAvLyAgIGRlbGV0ZSB0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQuX2F2YXRhcjtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5zY2FuUHJvdmlkZXIuc2VuZExvZyh0aGlzLmxvZ0RhdGEpLnN1YnNjcmliZSgpO1xuXG4gICAgY29uc29sZS5sb2coJ0xPRyBEQVRBJywgdGhpcy5sb2dEYXRhKTtcbiAgICB0aGlzLl9fc3Vicyh0aGlzLnNjYW5Qcm92aWRlci5zZW5kTG9nKHRoaXMubG9nRGF0YSkpLnN1YnNjcmliZSgpO1xuICB9XG4gIHByaXZhdGUgaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcihcbiAgICBpbWc6IGFueSxcbiAgICB0eXBlOiAnd29ya2VyJyB8ICdwbGFpbicgPSAncGxhaW4nXG4gICkge1xuICAgIC8vIHNhdmUgY3VycmVudCBpbWFnZSBhZnRlciAxMHNlY1xuICAgIGxldCBNQU5VQUxfSU5URVJWQUwgPSB0aGlzLnNjYW5Qcm92aWRlci5jb25maWcubWFudWFsU2NhbkRlbGF5O1xuICAgIGNvbnN0IGRpZmYgPSAoRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnRUaW1lKSAvIDEwMDA7XG5cbiAgICBpZiAoXG4gICAgICBkaWZmID4gTUFOVUFMX0lOVEVSVkFMICYmXG4gICAgICAhdGhpcy52ZXJpZmljYXRpb25FcnJvclNlbnRcblxuICAgICAgLy8mJlxuICAgICAgLy90aGlzLnNjYW5Qcm92aWRlci5jb25maWcuZGV2ZWxvcG1lbnRcbiAgICApIHtcbiAgICAgIHRoaXMudmVyaWZpY2F0aW9uRXJyb3JTZW50ID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUud2FybignW0hBTkRMRSBFUlJPUl0nKTtcblxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIC8vIGNvbnN0IHJlZiA9IHRoaXMuc25hY2tCYXIub3BlbihcbiAgICAgICAgLy8gICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdzY2FuZG9jLm1hbnVhbCcpLFxuICAgICAgICAvLyAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3NjYW5kb2MueWVzJyksXG4gICAgICAgIC8vICAge1xuICAgICAgICAvLyAgICAgZHVyYXRpb246IDEwMDAwLFxuICAgICAgICAvLyAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3LFxuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gKTtcblxuICAgICAgICAvLyB0aGlzLl9fc3VicyhyZWYub25BY3Rpb24oKSkuc3Vic2NyaWJlKChyZXNwKSA9PiB7XG4gICAgICAgIC8vICAgdGhpcy5tYW51YWxNb2RlKHR5cGUpO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgaWYgKCF0aGlzLnNjYW5TZWNvbmRTaWRlKSB7XG4gICAgICAgICAgdGhpcy5wcm9tcHRNYW51YWwgPSB0cnVlO1xuXG4gICAgICAgICAgLy8gIE1BTlVBTF9JTlRFUlZBTCArPSAxMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMudmVyaWZpY2F0aW9uRXJyb3JTZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvL3RoaXMucHJvbXB0TWFudWFsID0gdHJ1ZTtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2dzLnByb21wdE1hbnVhbCgpLnN1YnNjcmliZSgocmVzcDogYW55KSA9PiB7XG4gICAgICAgIC8vICAgY29uc29sZS53YXJuKHJlc3ApO1xuICAgICAgICAvLyAgIGlmIChyZXNwKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm1hbnVhbE1vZGUodHlwZSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgLy8gICB0aGlzLnZlcmlmaWNhdGlvbkVycm9yU2VudCA9IGZhbHNlO1xuICAgICAgICAvLyB9KTtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcy52ZXJpZmljYXRpb25FcnJvclNlbnQgPSB0cnVlO1xuICAgICAgLy8gY29uc3QgZGF0YVVybCA9IHRoaXMuaGFuZGxlQml0bWFwSW1hZ2UoaW1nLmJpdG1hcCk7XG5cbiAgICAgIC8vIGNvbnNvbGUud2FybignU0VOVCcpO1xuICAgICAgLy8gLy8gIHRoaXMuZGlzcGxheUluZm8gPSAnQ2FudCBkZXRlY3QgZG9jdW1lbnQhJztcbiAgICAgIC8vIHRoaXMubG9nRGF0YS5SZXF1ZXN0ID0gdGhpcy5fX3N1YnMoXG4gICAgICAvLyAgIHRoaXMuc2NhblByb3ZpZGVyLnNlbmRMb2coe1xuICAgICAgLy8gICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIC8vICAgICBFeHBlY3RlZE91dHB1dDoge30sXG4gICAgICAvLyAgICAgUmVxdWVzdDoge1xuICAgICAgLy8gICAgICAgdmVyaWZpY2F0aW9uOiBkYXRhVXJsLnNwbGl0KCcsJylbMV0sXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICBSZXNwb25zZToge1xuICAgICAgLy8gICAgICAgVHJhbnNhY3Rpb25JRDogdXVpZHY0KCksXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgfSlcbiAgICAgIC8vICkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyAgdGhpcy5yZXN1bHQgPSB0cnVlO1xuXG4gICAgdGhpcy5jYW1lcmFQcm92aWRlci4kc2hvd1N3aXRjaC5uZXh0KHRydWUpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gdGhpcy5zY2FuUmVzdWx0cy5uZXh0KHsgdHlwZTogJ21vZGVsJywgZGF0YToge30gfSk7XG5cbiAgICB0aGlzLl9fc3Vicyh0aGlzLmNhbWVyYVByb3ZpZGVyLndlYmNhbU9ic2VydmFibGUpLnN1YnNjcmliZSgocmVzcCkgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFSZWFkeSA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2FubmVkSW1hZ2VzID0gW107XG4gICAgfSk7XG4gICAgdGhpcy5fX3N1YnModGhpcy5jYW1lcmFQcm92aWRlci5zZWxmaWUkKS5zdWJzY3JpYmUoKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuc2VsZmllKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmF1dG9TY2FuKCk7XG5cbiAgICB0aGlzLl9fc3Vicyh0aGlzLmxheW91dFByb3ZpZGVyLmJyZWFrcG9pbnQkKS5zdWJzY3JpYmUoKHY6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc01vYmlsZSA9ICF2Lm1hdGNoZXMgfHwgdGhpcy5wbGF0Zm9ybS5JT1MgfHwgdGhpcy5wbGF0Zm9ybS5BTkRST0lEO1xuICAgICAgY29uc29sZS5sb2coJ01OT0JJTEUnLCB0aGlzLmlzTW9iaWxlKTtcbiAgICB9KTtcblxuICAgIC8vIHRoaXMuaW1hZ2VIYW5kbGVyU3Vic2NyaXB0aW9uID0gdGhpcy5pbWFnZUhhbmRsZXIuc3Vic2NyaWJlKFxuICAgIC8vICAgKHdlYmNhbUltYWdlOiBhbnkpID0+IHtcbiAgICAvLyAgICAgLy8gcmV0dXJuO1xuICAgIC8vICAgICBpZiAodGhpcy5zdGFydFRpbWUgPT09IDApIHtcbiAgICAvLyAgICAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgIC8vICAgICAgIGlmICh3ZWJjYW1JbWFnZS5iYXNlNjQpIHtcbiAgICAvLyAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgIC8vICAgICAgICAgaWYgKHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcy5sb2FkID4gMCkge1xuICAgIC8vICAgICAgICAgICBjb25zdCB7IGxvYWQgfSA9IHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcztcbiAgICAvLyAgICAgICAgICAgY29uc3QgZGlmZiA9IHRpbWUgLSBsb2FkO1xuICAgIC8vICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ1RJTUUnLCBkaWZmKTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5zY2FuRGVsYXkgPSBkaWZmO1xuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICB0aGlzLnNjYW5JbWFnZVRpbWVzdGFtcHMubG9hZCA9IHRpbWU7XG5cbiAgICAvLyAgICAgICAgIHRoaXMuc2Nhbm5lZEltYWdlcy5wdXNoKHdlYmNhbUltYWdlKTtcbiAgICAvLyAgICAgICAgIHRoaXMuaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcih3ZWJjYW1JbWFnZSwgJ3dvcmtlcicpO1xuICAgIC8vICAgICAgIH1cblxuICAgIC8vICAgICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vICAgICAgIGlmICh0aGlzLnNjYW5uZWRJbWFnZXMubGVuZ3RoID4gNCAmJiAhdGhpcy52YWxpZGF0aW9uKSB7XG4gICAgLy8gICAgICAgICAvLyBnZXQgbGFzdCAxMFxuICAgIC8vICAgICAgICAgY29uc29sZS50aW1lRW5kKCd2YWxpZGF0aW9uVE9UQUxfVUknKTtcbiAgICAvLyAgICAgICAgIGNvbnNvbGUudGltZSgndmFsaWRhdGlvblRPVEFMX1VJJyk7XG4gICAgLy8gICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLnNjYW5uZWRJbWFnZXMuc2xpY2UoLTUpO1xuICAgIC8vICAgICAgICAgLy8gc2V0IGltYWdlcyB0byAwXG4gICAgLy8gICAgICAgICB0aGlzLnNjYW5uZWRJbWFnZXMgPSBbXTtcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKGltYWdlcyk7XG5cbiAgICAvLyAgICAgICAgIGNvbnN0IGltYWdlc0FycmF5ID0gaW1hZ2VzLm1hcCgobSkgPT4gbS5iYXNlNjQuc3BsaXQoJywnKVsxXSk7XG4gICAgLy8gICAgICAgICB0aGlzLnZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgLy8gICAgICAgICAvLyB0aGlzLmhhbmRsZUJ1cnN0RGF0YShpbWFnZXNBcnJheSwgaW1hZ2VzLCAnd29ya2VyJyk7XG5cbiAgICAvLyAgICAgICAgIGNvbnNvbGUudGltZSgndmFsaWRhdGlvblBPU1QnKTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vICAgfVxuICAgIC8vICk7XG4gIH1cblxuICBoYW5kbGVCaXRtYXBJbWFnZShiaXRtYXA6IGFueSkge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYml0bWFwO1xuXG4gICAgY29uc3Qgb2Zmc2NyZWVuU21hbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBvZmZzY3JlZW5TbWFsbC53aWR0aCA9IHdpZHRoO1xuICAgIG9mZnNjcmVlblNtYWxsLmhlaWdodCA9IGhlaWdodDtcbiAgICBjb25zdCBjdHg6IGFueSA9IG9mZnNjcmVlblNtYWxsLmdldENvbnRleHQoJ2JpdG1hcHJlbmRlcmVyJyk7XG5cbiAgICBpZiAoY3R4KSB7XG4gICAgICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICBjdHgudHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoYml0bWFwKTtcbiAgICAgIGJpdG1hcC5jbG9zZSgpO1xuICAgICAgY29uc3QgZGF0YSA9IGN0eC5jYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhdXRvU2NhbigpIHtcbiAgICBjb25zdCBzaWRlID0gdGhpcy5zY2FuQmxhc3REYXRhWzBdO1xuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICB0aGlzLnNpbmdsZVNjYW4oc2lkZSk7XG4gIH1cblxuICBzaW5nbGVTY2FuKHNpZGU6IGFueSkge1xuICAgIHRoaXMuc2NhblR5cGUgPSBzaWRlLnNpZGU7XG4gICAgdGhpcy5wcmV2aWV3ID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkU2lkZSA9IHNpZGU7XG5cbiAgICB0aGlzLnNlbGVjdGVkU2lkZS5pbWFnZSA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zY2FuQmxhc3REYXRhWzFdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBtYW51YWxTY2FuRGF0YShkYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICB0aGlzLnNjYW5CbGFzdERhdGEgPSBkYXRhO1xuICAgIHRoaXMubWFudWFsID0gZmFsc2U7XG4gICAgdGhpcy5tYW51YWxEYXRhU2V0ID0gdHJ1ZTtcbiAgICB0aGlzLnNjYW5CbGFzdEZpbmlzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdCYXNlNjQobnVtOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnR0VUIDY0Jyk7XG5cbiAgICBpZiAodGhpcy5tYW51YWxEYXRhU2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5zY2FuQmxhc3REYXRhW251bV0uaW1hZ2UuX2ltYWdlQXNEYXRhVXJsLnNwbGl0KCcsJylbMV07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNjYW5CbGFzdERhdGFbbnVtXS5pbWFnZS5kYXRhVXJsLnNwbGl0KCcsJylbMV07XG4gIH1cbiAgc2NhbkJsYXN0RmluaXNoKCkge1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFQcm92aWRlci4kc2hvd1N3aXRjaC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgICBjb25zb2xlLnRpbWUoJ3VwbG9hZCcpO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdtb2JpbGUnKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuZW1pdCh7IGRhdGE6IHRoaXMuc2NhbkJsYXN0RGF0YSB9KTtcbiAgICAgIHRoaXMucmV0YWtlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICAvLyBjb25zdCBsb2FkaW5nID0gdGhpcy5kaWFsb2dzLmxvYWRpbmcoKTtcbiAgICB0aGlzLnNjYW5pbmcgPSB0cnVlO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGNvbnNvbGUudGltZSgncGF5bG9hZCcpO1xuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIERhdGFGaWVsZHM6IHtcbiAgICAgICAgRnJvbnRJbWFnZVR5cGU6ICdiYXNlNjQnLFxuICAgICAgICBGcm9udEltYWdlQ3JvcHBlZDogZmFsc2UsXG4gICAgICAgIEJhY2tJbWFnZVR5cGU6ICdiYXNlNjQnLFxuICAgICAgICBCYWNrSW1hZ2VDcm9wcGVkOiBmYWxzZSxcbiAgICAgICAgRnJvbnRJbWFnZTogdGhpcy5nZXRJbWdCYXNlNjQoMCksXG4gICAgICAgIEJhY2tJbWFnZTogdGhpcy5zY2FuQmxhc3REYXRhWzFdLmltYWdlID8gdGhpcy5nZXRJbWdCYXNlNjQoMSkgOiBudWxsLFxuICAgICAgfSxcbiAgICAgIFNldHRpbmdzOiB7XG4gICAgICAgIFNob3VsZFZhbGlkYXRlOiB0cnVlLFxuICAgICAgICBTaG91bGRSZXR1cm5Eb2N1bWVudEltYWdlOiB0cnVlLFxuICAgICAgICBTaG91bGRSZXR1cm5GYWNlSWZEZXRlY3RlZDogdHJ1ZSxcbiAgICAgICAgU2tpcEltYWdlU2l6ZUNoZWNrOiB0cnVlLFxuICAgICAgICBDYW5TdG9yZUltYWdlczogdGhpcy5zY2FuUHJvdmlkZXIuY2FuU3RvcmVJbWFnZXMsXG4gICAgICB9LFxuICAgICAgLy8gQ2FsbEJhY2tVcmw6ICdodHRwOi8vZGVtbzo1MDAwL3JlcG9ydC9leHRyYWN0ZWQvJyxcbiAgICB9O1xuICAgIHRoaXMuZnJvbnRJbWFnZSA9ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBwYXlsb2FkLkRhdGFGaWVsZHMuRnJvbnRJbWFnZTtcbiAgICB0aGlzLmJhY2tJbWFnZSA9ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBwYXlsb2FkLkRhdGFGaWVsZHMuQmFja0ltYWdlO1xuICAgIGlmICghdGhpcy5zY2FuQmxhc3REYXRhWzFdLmltYWdlKSB7XG4gICAgICBwYXlsb2FkLlNldHRpbmdzLklnbm9yZUJhY2tJbWFnZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubG9nRGF0YS5SZXF1ZXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG5cbiAgICBjb25zb2xlLnRpbWVFbmQoJ3BheWxvYWQnKTtcbiAgICB0aGlzLl9fc3VicyhcbiAgICAgIHRoaXMuc2NhblByb3ZpZGVyLmJsYXN0UG9zdChwYXlsb2FkKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tYW51YWxEYXRhU2V0KSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ01BTlVBTCBEQVRBIFNFVCcsZSk7XG4gICAgICAgICAgICB0aGlzLmxvZ0RhdGEuUmVzcG9uc2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUuZXJyb3IpKTtcblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHRyYWN0aW9uRXJyb3Ioe30pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0VFRScsIGUpO1xuICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvL2NvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gZGF0YS5EYXRhO1xuICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3VwbG9hZCcpO1xuICAgICAgICBjb25zb2xlLnRpbWUoJ3BhcnNlJyk7XG4gICAgICAgIC8vIGRhdGEuSW5mb0NvZGUgPSAnMTAwMSc7XG4gICAgICAgIGNvbnNvbGUudGltZSgncCcpO1xuICAgICAgICB0aGlzLmxvZ0RhdGEuUmVzcG9uc2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgY29uc29sZS50aW1lRW5kKCdwJyk7XG4gICAgICAgIC8vbG9hZGluZy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmRvY3VtZW50VHlwZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zY2FuaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGRhdGEuSW5mb0NvZGUgPT09ICcxMDAxJykge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbRVJST1JdIDEwMDEnKTtcbiAgICAgICAgICB0aGlzLmVycm9yQ29kZSA9ICcxMDAxJztcbiAgICAgICAgICAvLyB0aGlzLnNjYW5TaWRlID0gMDtcblxuICAgICAgICAgIHRoaXMucHJldmlldyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLkluZm9Db2RlID09PSAnMTAwMicpIHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnW0VSUk9SXSAxMDAyJyk7XG4gICAgICAgICAgdGhpcy5lcnJvckNvZGUgPSAnMTAwMic7XG4gICAgICAgICAgLy8gdGhpcy5zY2FuU2lkZSA9IDA7XG5cbiAgICAgICAgICB0aGlzLnByZXZpZXcgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0cyAmJiBkYXRhLk1ldGFkYXRhLmxlbmd0aCA+IDAgJiYgZGF0YS5JbmZvQ29kZSA9PT0gJzEwMDAnKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4dHJhY3Rpb24gdGltZScsIGRhdGEuQW5hbHlzaXNUaW1lKTtcblxuICAgICAgICAgIC8vICB0aGlzLnpvbmUucnVuKCgpID0+IHtcblxuICAgICAgICAgIGNvbnNvbGUudGltZSgncGFyc2VibGFzdCcpO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2NhblByb3ZpZGVyLnBhcnNlQmxhc3QocmVzdWx0cyk7XG4gICAgICAgICAgY29uc29sZS50aW1lRW5kKCdwYXJzZWJsYXN0Jyk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ1JFUycsIHRoaXMucmVzdWx0KTtcbiAgICAgICAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzdWx0Lm1vZGVsO1xuXG4gICAgICAgICAgaWYgKGRhdGEuSW1hZ2VEYXRhPy5GYWNlSW1hZ2UpIHtcbiAgICAgICAgICAgIG1vZGVsLl9hdmF0YXIgPVxuICAgICAgICAgICAgICAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZGF0YS5JbWFnZURhdGE/LkZhY2VJbWFnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGF0YS5JbWFnZURhdGE/LkRvY3VtZW50cykge1xuICAgICAgICAgICAgY29uc3QgeyBEb2N1bWVudHMgfSA9IGRhdGEuSW1hZ2VEYXRhO1xuICAgICAgICAgICAgbW9kZWwuaW1hZ2VzID0gRG9jdW1lbnRzLm1hcCgoaW1hZ2U6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBEb2N1bWVudHNbaV0gfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ01PREVMJywgdGhpcy5tb2RlbCk7XG4gICAgICAgICAgdGhpcy5hY3Rpb25zLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ3NjYW5GaW5pc2gnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgICAgICAgaW1hZ2VzOiB0aGlzLmltYWdlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuc2NhblByb3ZpZGVyLmNvbmZpZy5oaWRlUmVzdWx0cykge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCdmZicpO1xuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICB0aGlzLnNjYW5SZXN1bHRzLm5leHQoeyB0eXBlOiAnbW9kZWwnLCBkYXRhOiBtb2RlbCB9KTtcbiAgICAgICAgICAgICAgLy8gdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIC8vICB9KTtcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCdmZicpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFUlJPUicpO1xuICAgICAgICAgIGlmICh0aGlzLm1hbnVhbERhdGFTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXh0cmFjdGlvbkVycm9yKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB0aGlzLnNjYW5TaWRlID0gMDtcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIHRoaXMucmV0cnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3BhcnNlJyk7XG4gICAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICAvLyBsb2FkaW5nLmNsb3NlKCk7XG4gICAgICAgIC8vIHRoaXMuc2NhblNpZGUgPSAwO1xuICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2NhbmluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZXRyeSgpIHtcbiAgICB0aGlzLnByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmVycm9yQ29kZSA9ICcxMDAwJztcbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICB0aGlzLmNhbWVyYVByb3ZpZGVyLiRzaG93U3dpdGNoLm5leHQodHJ1ZSk7XG4gICAgaWYgKHRoaXMuZXJyb3IpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgZWxlbWVudC5pbWFnZSA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLmF1dG9TY2FuKCk7XG4gICAgdGhpcy5zY2FuKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmV0YWtlKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMucHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhblNpZGUgPSAwO1xuICAgIHRoaXMuY2FtZXJhUHJvdmlkZXIuJHNob3dTd2l0Y2gubmV4dCh0cnVlKTtcbiAgICB0aGlzLmltYWdlVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjYW5EYXRhcyA9IFtdO1xuICAgIHRoaXMuc2NhbmluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW1hZ2VzID0gW107XG4gICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlkU2NhbiA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhbkJsYXN0RGF0YS5mb3JFYWNoKChtOiBhbnkpID0+IHtcbiAgICAgIG0uaW1hZ2UgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zY2FuU2Vjb25kU2lkZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5hdXRvU2NhbigpO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1c2UoKSB7XG4gICAgLy8gc2F2ZSBpbWFnZXM/P1xuXG4gICAgaWYgKHRoaXMuc2NhblByb3ZpZGVyLmNhblN0b3JlSW1hZ2VzKSB7XG4gICAgICB0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpKTtcbiAgICAgIGlmICh0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQ/Ll9hdmF0YXIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubG9nRGF0YS5FeHBlY3RlZE91dHB1dC5fYXZhdGFyO1xuICAgICAgfVxuICAgICAgdGhpcy5fX3N1YnModGhpcy5zY2FuUHJvdmlkZXIuc2VuZExvZyh0aGlzLmxvZ0RhdGEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubG9nRGF0YSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25zLmVtaXQoe1xuICAgICAgdHlwZTogJ3NjYW5EYXRhQ2xvc2UnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgaW1hZ2VzOiB0aGlzLmltYWdlcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgc2VsZmllKCkge1xuICAgIGNvbnN0IGF2YXRhciA9IHRoaXMubW9kZWw/Ll9hdmF0YXI7XG4gICAgdGhpcy5kaWFsb2dzXG4gICAgICAuc2NhblNlbGZpZSh7IGF2YXRhciB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xuICAgICAgICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5lbmFibGVWZXJpZmljYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VWZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2NhblJlc3VsdHMubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiAnYXZhdGFyJyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3AuaW1hZ2VBc0RhdGFVcmwsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gdGhpcy5tb2RlbC5fYXZhdGFyID0gcmVzcC5pbWFnZUFzRGF0YVVybDtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjYW1lcmFPZmYoZXY6IGFueSkge1xuICAgIHRoaXMuY2FtZXJhUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHZpZGVvUmVhZHkoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICBjb25zb2xlLmxvZygnUkVBRFknLCBldmVudCk7XG4gICAgdGhpcy5jYW1lcmFSZWFkeSA9IGV2ZW50O1xuICAgIGlmICh0aGlzLmNhbWVyYVJlYWR5ICYmICF0aGlzLnNjYW5JblByb2dyZXNzICYmICF0aGlzLm1hbnVhbCkge1xuICAgICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY2FuKCk7XG4gICAgICB9LCAyMCk7XG4gICAgfVxuICB9XG5cbiAgbWFudWFsU2V0KGtleTogYm9vbGVhbikge1xuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5jb25maWcuc2hvd01hbnVhbE1vZGUpIHtcbiAgICAgICAgdGhpcy5tYW51YWxNb2RlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGlvbnMuZW1pdCh7XG4gICAgICAgICAgdHlwZTogJ21hbnVhbE1vZGUnLFxuICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9tcHRNYW51YWwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY2FuVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2NhblRpbWVvdXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbWFnZUhhbmRsZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaW1hZ2VIYW5kbGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0RFU1RST1hZJyk7XG5cbiAgICB0aGlzLl9fZGVzdHJveSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ0lmPVwiY2FtZXJhUHJvdmlkZXIucmVjdFBvc2l0aW9uLnQgPiAwICYmIGRpc3BsYXlJbmZvICYmICFyZXN1bHQgJiYgIW1hbnVhbFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJoaW50XCIgW25nU3R5bGVdPVwieyB0b3A6IGNhbWVyYVByb3ZpZGVyLmhpbnRQb3NpdGlvbiArICdweCcgfVwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPlxuICAgICAge3sgZGlzcGxheUluZm8gfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RGlhbG9nXCI+XG4gIDxkaXYgY2xhc3M9XCJwYWdlVHVyblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5uZXJcIj5cbiAgICAgICAgPG1hdC1pY29uPjM2MDwvbWF0LWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlkU2NhbiA9PT0gJ0JBQ0snXCI+XG4gICAgICAgICAgICB7eyBcInNjYW5kb2MudHVybkFuZENhcHR1cmUuYmFja1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlkU2NhbiA9PT0gJ0ZST05UJ1wiPlxuICAgICAgICAgICAge3sgXCJzY2FuZG9jLnR1cm5BbmRDYXB0dXJlLmZyb250XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBtYXQtcmFpc2VkLWJ1dHRvbj5PazwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9tcHRNYW51YWxcIj5cbiAgPGRpdiBjbGFzcz1cIm1hbnVhbE1vZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XG4gICAgICAgIDxtYXQtaWNvbj5zY3JlZW5zaG90X2tleWJvYXJkPC9tYXQtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICB7eyBcInNjYW5kb2MubWFudWFsXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogOHB4XCJcbiAgICAgICAgICAoY2xpY2spPVwibWFudWFsU2V0KHRydWUpXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJzY2FuZG9jLnllc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogOHB4XCJcbiAgICAgICAgICAoY2xpY2spPVwibWFudWFsU2V0KGZhbHNlKVwiXG4gICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5ub1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwicmVzdWx0XCI+XG4gIDxzZWN0aW9uPlxuICAgIDxuZ3gtc2Nhbi1yZXN1bHRzXG4gICAgICAoYWN0aW9uKT1cInNlbGZpZSgpXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgW2RhdGFdPVwic2NhblJlc3VsdHNcIlxuICAgID48L25neC1zY2FuLXJlc3VsdHM+XG5cbiAgICA8Zm9vdGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTRcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwicmV0YWtlKClcIj5cbiAgICAgICAgICB7eyBcInNjYW5kb2MucmVUYWtlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZXJyb3IgfHwgZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cIm1sLTRcIlxuICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInVzZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy51c2VEYXRhXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtYW51YWxcIj5cbiAgPHNlY3Rpb24+XG4gICAgPG5neC1tYW51YWwtc2NhbiAoYWN0aW9uKT1cIm1hbnVhbFNjYW5EYXRhKCRldmVudClcIj48L25neC1tYW51YWwtc2Nhbj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc3VsdCAmJiBkb2N1bWVudFR5cGVTZWxlY3RlZCAmJiAhbWFudWFsXCI+XG4gIDxzZWN0aW9uPlxuICAgIDxkaXYgI3dyYXBlciBjbGFzcz1cIndyYXBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cIighY2FtZXJhUmVhZHkgJiYgIXByZXZpZXcpIHx8IHNjYW5pbmdcIj5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlcnJvclwiPlxuICAgICAgICA8bmd4LXNjYW5kb2Mtd2ViY2FtXG4gICAgICAgICAgKm5nSWY9XCIhcHJldmlldyAmJiAhc2NhbmluZ1wiXG4gICAgICAgICAgY2xhc3M9XCJtYWluXCJcbiAgICAgICAgICAjd2ViY2FtXG4gICAgICAgICAgdHlwZT1cImRvY3VtZW50XCJcbiAgICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgICBbaW1hZ2VIYW5kbGVyXT1cImltYWdlSGFuZGxlclwiXG4gICAgICAgICAgKGltYWdlQ2FwdHVyZSk9XCJoYW5kbGVJbWFnZSgkZXZlbnQpXCJcbiAgICAgICAgICAoaW5pdEVycm9yKT1cImhhbmRsZUluaXRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAoZGVzdHJveWVkKT1cImNhbWVyYU9mZigkZXZlbnQpXCJcbiAgICAgICAgICAodmlkZW9SZWFkeSk9XCJ2aWRlb1JlYWR5KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmd4LXNjYW5kb2Mtd2ViY2FtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJldmlld0RhdGFcIlxuICAgICAgICAqbmdJZj1cInByZXZpZXdcIlxuICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMTYgZXJyb3JcIiAqbmdJZj1cImVycm9yXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwibWwtOFwiPnt7XG4gICAgICAgICAgICAgICAgXCJzY2FuZG9jLnVuYWJsZVRvRGV0ZWN0SWRcIiB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JDb2RlID09PSAnMTAwMSdcIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuZXh0cmFjdGlvbi5jMTAwMVwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JDb2RlID09PSAnMTAwMidcIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuZXh0cmFjdGlvbi5jMTAwMlwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDx1bCAqbmdJZj1cImVycm9yQ29kZSA9PT0gJzEwMDAnXCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MucGxhY2VJZENsb3NlVG9EZXZpY2VcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3sgXCJzY2FuZG9jLmVuc3VyZVN1ZmZpY2llbnRMaWdodFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuaG9sZERvY3VtZW50U3RlYWR5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHt7IFwic2NhbmRvYy5tYWtlU3VyZUFsbEVkZ2VzT2ZUaGVJZEFyZVZpc2libGVcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIFwic2NhbmRvYy5tYWtlU3VyZVRoZXJlQXJlTm9HbGFyZUFuZFNoYWRvd3NPblRoZUlkXCIgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjYW5QcmV2aWV3XCIgKm5nSWY9XCIhZXJyb3IgJiYgIXNjYW5pbmdcIj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJweS0xNlwiIHN0eWxlPVwiZm9udC1zaXplOiAxNnB4XCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIFwic2NhbmRvYy5lbnN1cmVBbGxUZXh0c0FyZVZpc2libGVcIlxuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImltYWdlXCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIHByZXZpZXcgKyAnKSdcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmb290ZXIgKm5nSWY9XCJwcmV2aWV3XCI+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkaXNwbGF5SW5mb1wiICpuZ0lmPVwiIXByZXZpZXcgJiYgY2FtZXJhUmVhZHlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SW5mb1wiPlxuICAgICAgICB7eyBkaXNwbGF5SW5mbyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+IC0tPlxuICAgICAgPCEtLSA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAyNnB4XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE4cHhcIlxuICAgICAgICAqbmdJZj1cImlkU2NhbiAmJiAhcHJldmlldyAmJiBjYW1lcmFSZWFkeVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpZFNjYW4gPT09ICdCQUNLJ1wiPlxuICAgICAgICAgIFR1cm4gZG9jdW1lbnQgYW5kOlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5jYXB0dXJlQmFja1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWRTY2FuID09PSAnRlJPTlQnXCI+XG4gICAgICAgICAgVHVybiBkb2N1bWVudCBhbmQ6XG4gICAgICAgICAge3sgXCJzY2FuZG9jLmNhcHR1cmVGcm9udFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwicHJldmlld1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJyZXRyeSgpXCI+XG4gICAgICAgICAge3sgXCJzY2FuZG9jLnJldHJ5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlcnJvclwiXG4gICAgICAgICAgY2xhc3M9XCJtbC00XCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjb250aW51ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5jb250aW51ZVdpdGhTZWxlY3RlZEltYWdlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
699
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL3NjYW4vc2Nhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NhbmRvYy9zcmMvY29yZS9jb21wb25lbnRzL3NjYW4vc2Nhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUlaLHVCQUF1QixFQUN2QixLQUFLLEVBSUwsV0FBVyxHQUdaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdELE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU1oRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQTBCbEQsTUFBTSxPQUFPLGFBQ1gsU0FBUSxhQUFhO0lBZ0dyQixZQUNTLEVBQXFCLEVBQ3BCLElBQVksRUFDYixjQUF3QyxFQUN2QyxRQUFrQixFQUNsQixjQUE4QixFQUM5QixRQUFrQixFQUVsQixTQUEyQixFQUUzQixRQUFxQixFQUNyQixJQUFzQixFQUV0QixJQUFrQixDQUFDLDhCQUE4Qjs7UUFFekQsS0FBSyxFQUFFLENBQUM7UUFkRCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ2IsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3ZDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsbUJBQWMs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O3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0NoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgSG9zdExpc3RlbmVyLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE5nWm9uZSxcbiAgSW5qZWN0b3IsXG4gIEhvc3RCaW5kaW5nLFxuICBWaWV3UmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZm9ya0pvaW4sIGZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgc3dpdGNoTWFwLCBtYXAsIGRlbGF5LCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTY2FuUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvc2Nhbi5wcm92aWRlcic7XG5pbXBvcnQgeyBXZWJjYW1JbWFnZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy93ZWJjYW0vZG9tYWluL3dlYmNhbS1pbWFnZSc7XG5pbXBvcnQgeyBXZWJjYW1Jbml0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbXBvbmVudHMvd2ViY2FtL2RvbWFpbi93ZWJjYW0taW5pdC1lcnJvcic7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC5wcm92aWRlcic7XG5pbXBvcnQgeyBOZ3hTY2FuZG9jQ2FtZXJhUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY2FtZXJhLnByb3ZpZGVyJztcbmltcG9ydCB7IExheW91dFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2xheW91dC5wcm92aWRlcic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIElXaW5kb3cgZXh0ZW5kcyBXaW5kb3cge1xuICBUZXh0RGV0ZWN0b3I6IGFueTtcbn1cblxuaW50ZXJmYWNlIFRyb3VibGVzaG9vdGluZyB7XG4gIFJlcXVlc3Q6IGFueTtcbiAgUmVzcG9uc2U6IGFueTtcbiAgRXhwZWN0ZWRPdXRwdXQ6IGFueTtcbiAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGltZXN0YW1wcyB7XG4gIHRpbWU6IG51bWJlcjtcbiAgbG9hZDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtc2NhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2FuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nhbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NhbkNvbXBvbmVudFxuICBleHRlbmRzIEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgc2NhbkJsYXN0RGF0YTogYW55ID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAncG1zLmRpYWxvZ3MuY29tcG9uZW50cy5zY2FuUHJvZmlsZS5mcm9udCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ3Btcy5kaWFsb2dzLmNvbXBvbmVudHMuc2NhblByb2ZpbGUuZnJvbnREZXNjcmlwdGlvbicsXG4gICAgICBzaWRlOiAnRlJPTlQnLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdwbXMuZGlhbG9ncy5jb21wb25lbnRzLnNjYW5Qcm9maWxlLmJhY2snLFxuICAgICAgZGVzY3JpcHRpb246ICdwbXMuZGlhbG9ncy5jb21wb25lbnRzLnNjYW5Qcm9maWxlLmJhY2tEZXNjcmlwdGlvbicsXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgIHNpZGU6ICdCQUNLJyxcbiAgICB9LFxuICBdO1xuICBASW5wdXQoKSB0eXBlID0gJ2Rlc2t0b3AnO1xuICBASW5wdXQoKSBkaWFsb2dzOiBhbnk7XG4gIEBPdXRwdXQoKSBhY3Rpb25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBkZXZpY2VJZD86IHN0cmluZztcblxuICBzY2FuUmVzdWx0cyA9IG5ldyBTdWJqZWN0KCk7XG4gIHNjYW5TZWNvbmRTaWRlID0gZmFsc2U7XG4gIHN0YXJ0VGltZTogbnVtYmVyID0gMDtcblxuICBzY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gIC8vIHdlYmNhbSBzbmFwc2hvdCB0cmlnZ2VyXG4gIGRvY3VtZW50VHlwZVNlbGVjdGVkID0gZmFsc2U7XG4gIGltYWdlSGFuZGxlclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgc2VsZWN0ZWRTaWRlOiBhbnk7XG4gIGltYWdlczogYW55O1xuICBzY2FuVGltZW91dDogYW55O1xuICBwcmV2aWV3OiBhbnkgPSBudWxsO1xuICBzY2FuVHlwZTogYW55O1xuXG4gIGVycm9yQ29kZSA9ICcxMDAwJztcbiAgZGlzcGxheUluZm86IGFueSA9ICdzY2FuZG9jLmluZm8ucG9zaXRpb24nO1xuXG4gIHZlcmlmaWNhdGlvbkVycm9yU2VudCA9IGZhbHNlO1xuICBlcnJvciA9IGZhbHNlO1xuICBjYW1lcmFSZWFkeSA9IGZhbHNlO1xuICByZXN1bHQ6IGFueTtcbiAgc2NhbmluZyA9IGZhbHNlO1xuXG4gIHByb21wdE1hbnVhbCA9IGZhbHNlO1xuXG4gIGZyb250SW1hZ2U6IGFueTtcbiAgYmFja0ltYWdlOiBhbnk7XG5cbiAgaW1hZ2VIYW5kbGVyID0gbmV3IFN1YmplY3QoKTtcbiAgbWFudWFsRGF0YVNldCA9IGZhbHNlO1xuICBsb2dEYXRhOiBUcm91Ymxlc2hvb3RpbmcgPSB7XG4gICAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiB0cnVlLFxuICAgIFJlcXVlc3Q6IG51bGwsXG4gICAgUmVzcG9uc2U6IG51bGwsXG4gICAgRXhwZWN0ZWRPdXRwdXQ6IG51bGwsXG4gIH07XG5cbiAgc2NhbkRhdGFzOiBhbnkgPSBbXTtcbiAgc2NhblNpZGU6IGFueTtcbiAgaWRTY2FuOiBhbnkgPSBudWxsO1xuICB3ZWJjYW1JbWFnZT86IFdlYmNhbUltYWdlO1xuICBtb2RlbDogYW55O1xuICB2YWxpZGF0aW9uID0gZmFsc2U7XG4gIHNjYW5uZWRJbWFnZXM6IGFueVtdID0gW107XG4gIHNjYW5EZWxheTogYW55ID0gMDtcbiAgcHVibGljIHRyaWdnZXI6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgLy8gc3dpdGNoIHRvIG5leHQgLyBwcmV2aW91cyAvIHNwZWNpZmljIHdlYmNhbTsgdHJ1ZS9mYWxzZTogZm9yd2FyZC9iYWNrd2FyZHMsIHN0cmluZzogZGV2aWNlSWRcbiAgcHVibGljIG5leHRXZWJjYW06IFN1YmplY3Q8Ym9vbGVhbiB8IHN0cmluZz4gPSBuZXcgU3ViamVjdDxcbiAgICBib29sZWFuIHwgc3RyaW5nXG4gID4oKTtcbiAgaW1hZ2VWZXJpZmllZCA9IGZhbHNlO1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1hbnVhbCA9IGZhbHNlO1xuICBpc01vYmlsZSA9IHRoaXMucGxhdGZvcm0uSU9TIHx8IHRoaXMucGxhdGZvcm0uQU5EUk9JRDtcbiAgQElucHV0KCkgc2hvd0RpYWxvZyA9IGZhbHNlO1xuICBzY2FuSW1hZ2VUaW1lc3RhbXBzOiBUaW1lc3RhbXBzID0ge1xuICAgIHRpbWU6IDAsXG4gICAgbG9hZDogMCxcbiAgfTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vYmlsZScpIGdldCBjbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc01vYmlsZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvblJlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5yZXN1bHQpIHtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHNjYW5Qcm92aWRlciE6IFNjYW5Qcm92aWRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHB1YmxpYyBjYW1lcmFQcm92aWRlcjogTmd4U2NhbmRvY0NhbWVyYVByb3ZpZGVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgbGF5b3V0UHJvdmlkZXI6IExheW91dFByb3ZpZGVyLFxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG5cbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBwcml2YXRlIHZpZXc6IFZpZXdDb250YWluZXJSZWYsXG5cbiAgICBwcml2YXRlIGF1dGg6IEF1dGhQcm92aWRlciAvLyBwcml2YXRlIGFwaTogU2VydmVyUHJvdmlkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNjYW5Qcm92aWRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KFNjYW5Qcm92aWRlcik7XG5cbiAgICBpZiAoIXRoaXMuc2NhblByb3ZpZGVyLmNvbmZpZy5kZXZlbG9wbWVudCkge1xuICAgICAgLy8gY29uc29sZSA9IHtcbiAgICAgIC8vICAgbG9nOiAoLi4uYXJnczogYW55KSA9PiB7fSxcbiAgICAgIC8vICAgdGltZTogKC4uLmFyZ3M6IGFueSkgPT4ge30sXG4gICAgICAvLyAgIHRpbWVFbmQ6ICguLi5hcmdzOiBhbnkpID0+IHt9LFxuICAgICAgLy8gICB3YXJuOiAoLi4uYXJnczogYW55KSA9PiB7fSxcbiAgICAgIC8vICAgZXJyb3I6ICguLi5hcmdzOiBhbnkpID0+IHt9LFxuICAgICAgLy8gfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0TG9nRGF0YSgpIHtcbiAgICB0aGlzLmxvZ0RhdGEgPSB7XG4gICAgICBSZXF1ZXN0OiBudWxsLFxuICAgICAgUmVzcG9uc2U6IG51bGwsXG4gICAgICBFeHBlY3RlZE91dHB1dDogbnVsbCxcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLmF1dGguYWNjZXNUb2tlbi5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc2V0TG9nRGF0YSgpO1xuICAgIC8vIHRoaXMucmVzdWx0PXRydWU7XG4gICAgLy8gdGhpcy5yZXN1bHQgPXt9O1xuXG4gICAgY29uc29sZS5sb2coJ0lOSVQgU0NBTicpO1xuICB9XG5cbiAgY29udGludWUoKSB7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2lkZS5pbWFnZSA9IHRoaXMud2ViY2FtSW1hZ2U7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFNpZGUuc2lkZSA9PT0gJ0ZST05UJykge1xuICAgICAgICB0aGlzLnNjYW5CbGFzdERhdGFbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBzY2FuKCkge1xuICAgIHRoaXMudHJpZ2dlci5uZXh0KG5ldyBEYXRlKCkuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJbWFnZSh3ZWJjYW1JbWFnZTogV2ViY2FtSW1hZ2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFydFRpbWUgPT09IDApIHtcbiAgICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgLy8gY29uc29sZS5sb2coJ1tyZWNlaXZlZCB3ZWJjYW0gaW1hZ2VdJywgd2ViY2FtSW1hZ2UpO1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICAgIGlmICh0aGlzLnNjYW5JbWFnZVRpbWVzdGFtcHMubG9hZCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBsb2FkIH0gPSB0aGlzLnNjYW5JbWFnZVRpbWVzdGFtcHM7XG4gICAgICAgIGNvbnN0IGRpZmYgPSB0aW1lIC0gbG9hZDtcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZygndGltZTonLCBkaWZmKTtcbiAgICAgICAgdGhpcy5zY2FuRGVsYXkgPSBkaWZmO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNjYW5JbWFnZVRpbWVzdGFtcHMubG9hZCA9IHRpbWU7XG5cbiAgICAgIGlmICh3ZWJjYW1JbWFnZS5pbWFnZURhdGEpIHtcbiAgICAgICAgdGhpcy5zY2FubmVkSW1hZ2VzLnB1c2god2ViY2FtSW1hZ2UpO1xuICAgICAgICB0aGlzLmhhbmRsZUxvbmdWYWxpZGF0aW9uRXJyb3Iod2ViY2FtSW1hZ2UsICd3b3JrZXInKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBpZiAodGhpcy5zY2FubmVkSW1hZ2VzLmxlbmd0aCA+IDQgJiYgIXRoaXMudmFsaWRhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5zY2FuUHJvdmlkZXIuY29uZmlnLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgdGhpcy5zY2FubmVkSW1hZ2VzLmZvckVhY2goKGltZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29uc29sZUJhY2tncm91bmQgPVxuICAgICAgICAgICAgICBcImZvbnQtc2l6ZToxMDBweDtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ1wiICtcbiAgICAgICAgICAgICAgaW1nLmltYWdlUmVzaXplZCArXG4gICAgICAgICAgICAgIFwiJyk7YmFja2dyb3VuZC1zaXplOiBjb250YWluOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1wiO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJyVjICAgICcsIGNvbnNvbGVCYWNrZ3JvdW5kKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyAgIHRoaXMuZnJvbnRJbWFnZSA9IHdlYmNhbUltYWdlLmltYWdlUmVzaXplZDtcblxuICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3NjYW4nKTtcbiAgICAgICAgY29uc29sZS50aW1lKCdzY2FuJyk7XG4gICAgICAgIC8vIGdldCBsYXN0IDEwXG4gICAgICAgIGNvbnNvbGUubG9nKCdDQVBUVVJFRDonLCB0aGlzLnNjYW5uZWRJbWFnZXMubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gdGhpcy5zY2FubmVkSW1hZ2VzLnNsaWNlKC01KTtcbiAgICAgICAgLy8gc2V0IGltYWdlcyB0byAwXG4gICAgICAgIHRoaXMuc2Nhbm5lZEltYWdlcyA9IFtdO1xuICAgICAgICBjb25zdCBpbWFnZXNBcnJheSA9IGltYWdlcy5tYXAoKG0pID0+IG0uaW1hZ2VSZXNpemVkLnNwbGl0KCcsJylbMV0pO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlQnVyc3REYXRhKGltYWdlc0FycmF5LCBpbWFnZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY2FtZXJhUmVhZHkpIHtcbiAgICAgICAgICB0aGlzLnNjYW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVCdXJzdERhdGEoXG4gICAgaW1hZ2VzQXJyYXk6IGFueSxcbiAgICBpbWFnZXM6IGFueSxcbiAgICB0eXBlOiAnd29ya2VyJyB8ICdwbGFpbicgPSAncGxhaW4nXG4gICkge1xuICAgIHRoaXMuX19zdWJzKHRoaXMuc2NhblByb3ZpZGVyLmJ1cnN0KGltYWdlc0FycmF5KSkuc3Vic2NyaWJlKChyZXNwOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZGlzcGxheUluZm8gPSAnc2NhbmRvYy5pbmZvLmMnICsgcmVzcC5JbmZvQ29kZTtcbiAgICAgIC8vIGNvbnNvbGUudGltZUVuZCgndmFsaWRhdGlvblBPU1QnKTtcbiAgICAgIGNvbnNvbGUubG9nKCdBbmFseXNpc1RpbWUnLCByZXNwLkFuYWx5c2lzVGltZSk7XG4gICAgICBjb25zdCB7IERvY1R5cGUsIFNlcmllcywgU2lkZSwgSW5mb0NvZGUgfSA9IHJlc3A7XG5cbiAgICAgIC8vIGlmIChJbmZvQ29kZSA9PT0gJzEwMDYnICYmIHRoaXMuaWRTY2FuKSB7XG4gICAgICAvLyAgIHRoaXMuaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcihpbWFnZSk7XG4gICAgICAvLyB9XG5cbiAgICAgIGlmIChyZXNwLlZhbGlkYXRlZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlJbmZvID0gJyc7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbU0NBTk5FRCBJTkRFWF0nLCByZXNwLkluZGV4KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbWFnZSA9IGltYWdlc1tyZXNwLkluZGV4XTtcblxuICAgICAgICAvLyB0aGlzLnByZXZpZXcgPSB0aGlzLndlYmNhbUltYWdlLmltYWdlQXNEYXRhVXJsO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBsZXQgaW1hZ2UgPSBzZWxlY3RlZEltYWdlO1xuICAgICAgICBpZiAodHlwZSA9PSAnd29ya2VyJykge1xuICAgICAgICAgIGNvbnN0IGRhdGFVcmwgPSB0aGlzLmhhbmRsZUJpdG1hcEltYWdlKHNlbGVjdGVkSW1hZ2UuYml0bWFwKTtcbiAgICAgICAgICBpbWFnZSA9IHsgZGF0YVVybCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEluZm9Db2RlID09PSAnMTAwNycpIHtcbiAgICAgICAgICAvLyBGb3IgSUQgYXNrIGZvciBvdGhlciBzaWRlXG4gICAgICAgICAgaWYgKFNpZGUgPT09ICdGUk9OVCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YVswXS5pbWFnZSA9IGltYWdlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjYW5CbGFzdERhdGFbMV0uaW1hZ2UgPSBpbWFnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5zY2FuQmxhc3REYXRhWzBdLmltYWdlICYmIHRoaXMuc2NhbkJsYXN0RGF0YVsxXS5pbWFnZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdVUExPQUQnKTtcbiAgICAgICAgICAgIGlmICh0eXBlID09ICd3b3JrZXInKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW1hZ2VIYW5kbGVyLm5leHQoeyB0eXBlOiAnc3RvcCcgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNjYW5CbGFzdEZpbmlzaCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBTaWRlID09PSAnRlJPTlQnID8gMSA6IDA7XG4gICAgICAgICAgICB0aGlzLnNjYW5TZWNvbmRTaWRlID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5zaW5nbGVTY2FuKHRoaXMuc2NhbkJsYXN0RGF0YVtudW1dKTtcblxuICAgICAgICAgICAgdGhpcy5pZFNjYW4gPSB0aGlzLnNjYW5CbGFzdERhdGFbbnVtXS5zaWRlO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd0RpYWxvZykge1xuICAgICAgICAgICAgICB0aGlzLnNob3dEaWFsb2cgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlc2V0IG1hbnVhbCBzY2FuIHBvcHVwIGludGVydmFsXG4gICAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbkVycm9yU2VudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbmZvID0gJ3NjYW5kb2MuaW5mby50dXJuJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zY2FuQmxhc3REYXRhWzBdLmltYWdlID0gaW1hZ2U7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdVUExPQUQnKTtcbiAgICAgICAgICBpZiAodHlwZSA9PSAnd29ya2VyJykge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUhhbmRsZXIubmV4dCh7IHR5cGU6ICdzdG9wJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zY2FuQmxhc3RGaW5pc2goKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nhbm5lZEltYWdlcyA9IFtdO1xuXG4gICAgICAgIC8vIHRoaXMuc2NhbkJsYXN0RGF0YVswXS5pbWFnZSA9IHNlbGVjdGVkSW1hZ2U7XG5cbiAgICAgICAgLy90aGlzLnNjYW5CbGFzdEZpbmlzaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2NhbigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy52YWxpZGF0aW9uID0gZmFsc2U7XG5cbiAgICB0aGlzLnNjYW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJbml0RXJyb3IoZXJyb3I6IFdlYmNhbUluaXRFcnJvcik6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgfVxuXG4gIGdldCBzY2FuQmxhc3RDYW5VcGxvYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NhbkJsYXN0RGF0YVswXS5pbWFnZSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsTW9kZSh0eXBlOiAnd29ya2VyJyB8ICdwbGFpbicgPSAncGxhaW4nKSB7XG4gICAgdGhpcy5tYW51YWwgPSB0cnVlO1xuICAgIHRoaXMucHJvbXB0TWFudWFsID0gZmFsc2U7XG4gICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIHRoaXMuY2FtZXJhUHJvdmlkZXIuJHNob3dTd2l0Y2gubmV4dChmYWxzZSk7XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXh0cmFjdGlvbkVycm9yKGRhdGE6IGFueSkge1xuICAgIHRoaXMubG9nRGF0YS5FeHBlY3RlZE91dHB1dCA9IHt9O1xuICAgIC8vIGlmICh0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQ/Ll9hdmF0YXIpIHtcbiAgICAvLyAgIGRlbGV0ZSB0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQuX2F2YXRhcjtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5zY2FuUHJvdmlkZXIuc2VuZExvZyh0aGlzLmxvZ0RhdGEpLnN1YnNjcmliZSgpO1xuXG4gICAgY29uc29sZS5sb2coJ0xPRyBEQVRBJywgdGhpcy5sb2dEYXRhKTtcbiAgICB0aGlzLl9fc3Vicyh0aGlzLnNjYW5Qcm92aWRlci5zZW5kTG9nKHRoaXMubG9nRGF0YSkpLnN1YnNjcmliZSgpO1xuICB9XG4gIHByaXZhdGUgaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcihcbiAgICBpbWc6IGFueSxcbiAgICB0eXBlOiAnd29ya2VyJyB8ICdwbGFpbicgPSAncGxhaW4nXG4gICkge1xuICAgIC8vIHNhdmUgY3VycmVudCBpbWFnZSBhZnRlciAxMHNlY1xuICAgIGxldCBNQU5VQUxfSU5URVJWQUwgPSB0aGlzLnNjYW5Qcm92aWRlci5jb25maWcubWFudWFsU2NhbkRlbGF5O1xuICAgIGNvbnN0IGRpZmYgPSAoRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnRUaW1lKSAvIDEwMDA7XG5cbiAgICBjb25zdCBzaG93RGlhbG9nID0gZGlmZiA+IE1BTlVBTF9JTlRFUlZBTDtcbiAgICBjb25zb2xlLmxvZygnTWRpZmYnLCBkaWZmLCBzaG93RGlhbG9nLCB0aGlzLnZlcmlmaWNhdGlvbkVycm9yU2VudCk7XG4gICAgaWYgKHNob3dEaWFsb2cgJiYgIXRoaXMudmVyaWZpY2F0aW9uRXJyb3JTZW50KSB7XG4gICAgICB0aGlzLnZlcmlmaWNhdGlvbkVycm9yU2VudCA9IHRydWU7XG4gICAgICBjb25zb2xlLndhcm4oJ1tIQU5ETEUgRVJST1JdJyk7XG5cbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgIC8vIGlmICghdGhpcy5zY2FuU2Vjb25kU2lkZSkge1xuICAgICAgICAgIHRoaXMucHJvbXB0TWFudWFsID0gdHJ1ZTtcbiAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcy52ZXJpZmljYXRpb25FcnJvclNlbnQgPSB0cnVlO1xuICAgICAgLy8gY29uc3QgZGF0YVVybCA9IHRoaXMuaGFuZGxlQml0bWFwSW1hZ2UoaW1nLmJpdG1hcCk7XG5cbiAgICAgIC8vIGNvbnNvbGUud2FybignU0VOVCcpO1xuICAgICAgLy8gLy8gIHRoaXMuZGlzcGxheUluZm8gPSAnQ2FudCBkZXRlY3QgZG9jdW1lbnQhJztcbiAgICAgIC8vIHRoaXMubG9nRGF0YS5SZXF1ZXN0ID0gdGhpcy5fX3N1YnMoXG4gICAgICAvLyAgIHRoaXMuc2NhblByb3ZpZGVyLnNlbmRMb2coe1xuICAgICAgLy8gICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIC8vICAgICBFeHBlY3RlZE91dHB1dDoge30sXG4gICAgICAvLyAgICAgUmVxdWVzdDoge1xuICAgICAgLy8gICAgICAgdmVyaWZpY2F0aW9uOiBkYXRhVXJsLnNwbGl0KCcsJylbMV0sXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICBSZXNwb25zZToge1xuICAgICAgLy8gICAgICAgVHJhbnNhY3Rpb25JRDogdXVpZHY0KCksXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgfSlcbiAgICAgIC8vICkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyAgdGhpcy5yZXN1bHQgPSB0cnVlO1xuXG4gICAgdGhpcy5jYW1lcmFQcm92aWRlci4kc2hvd1N3aXRjaC5uZXh0KHRydWUpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgLy8gdGhpcy5zY2FuUmVzdWx0cy5uZXh0KHsgdHlwZTogJ21vZGVsJywgZGF0YToge30gfSk7XG5cbiAgICB0aGlzLl9fc3Vicyh0aGlzLmNhbWVyYVByb3ZpZGVyLndlYmNhbU9ic2VydmFibGUpLnN1YnNjcmliZSgocmVzcCkgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFSZWFkeSA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2FubmVkSW1hZ2VzID0gW107XG4gICAgfSk7XG4gICAgdGhpcy5fX3N1YnModGhpcy5jYW1lcmFQcm92aWRlci5zZWxmaWUkKS5zdWJzY3JpYmUoKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuc2VsZmllKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmF1dG9TY2FuKCk7XG5cbiAgICB0aGlzLl9fc3Vicyh0aGlzLmxheW91dFByb3ZpZGVyLmJyZWFrcG9pbnQkKS5zdWJzY3JpYmUoKHY6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc01vYmlsZSA9ICF2Lm1hdGNoZXMgfHwgdGhpcy5wbGF0Zm9ybS5JT1MgfHwgdGhpcy5wbGF0Zm9ybS5BTkRST0lEO1xuICAgICAgY29uc29sZS5sb2coJ01OT0JJTEUnLCB0aGlzLmlzTW9iaWxlKTtcbiAgICB9KTtcblxuICAgIC8vIHRoaXMuaW1hZ2VIYW5kbGVyU3Vic2NyaXB0aW9uID0gdGhpcy5pbWFnZUhhbmRsZXIuc3Vic2NyaWJlKFxuICAgIC8vICAgKHdlYmNhbUltYWdlOiBhbnkpID0+IHtcbiAgICAvLyAgICAgLy8gcmV0dXJuO1xuICAgIC8vICAgICBpZiAodGhpcy5zdGFydFRpbWUgPT09IDApIHtcbiAgICAvLyAgICAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgLy8gICAgIH1cblxuICAgIC8vICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgIC8vICAgICAgIGlmICh3ZWJjYW1JbWFnZS5iYXNlNjQpIHtcbiAgICAvLyAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgIC8vICAgICAgICAgaWYgKHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcy5sb2FkID4gMCkge1xuICAgIC8vICAgICAgICAgICBjb25zdCB7IGxvYWQgfSA9IHRoaXMuc2NhbkltYWdlVGltZXN0YW1wcztcbiAgICAvLyAgICAgICAgICAgY29uc3QgZGlmZiA9IHRpbWUgLSBsb2FkO1xuICAgIC8vICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ1RJTUUnLCBkaWZmKTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5zY2FuRGVsYXkgPSBkaWZmO1xuICAgIC8vICAgICAgICAgfVxuXG4gICAgLy8gICAgICAgICB0aGlzLnNjYW5JbWFnZVRpbWVzdGFtcHMubG9hZCA9IHRpbWU7XG5cbiAgICAvLyAgICAgICAgIHRoaXMuc2Nhbm5lZEltYWdlcy5wdXNoKHdlYmNhbUltYWdlKTtcbiAgICAvLyAgICAgICAgIHRoaXMuaGFuZGxlTG9uZ1ZhbGlkYXRpb25FcnJvcih3ZWJjYW1JbWFnZSwgJ3dvcmtlcicpO1xuICAgIC8vICAgICAgIH1cblxuICAgIC8vICAgICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vICAgICAgIGlmICh0aGlzLnNjYW5uZWRJbWFnZXMubGVuZ3RoID4gNCAmJiAhdGhpcy52YWxpZGF0aW9uKSB7XG4gICAgLy8gICAgICAgICAvLyBnZXQgbGFzdCAxMFxuICAgIC8vICAgICAgICAgY29uc29sZS50aW1lRW5kKCd2YWxpZGF0aW9uVE9UQUxfVUknKTtcbiAgICAvLyAgICAgICAgIGNvbnNvbGUudGltZSgndmFsaWRhdGlvblRPVEFMX1VJJyk7XG4gICAgLy8gICAgICAgICBjb25zdCBpbWFnZXMgPSB0aGlzLnNjYW5uZWRJbWFnZXMuc2xpY2UoLTUpO1xuICAgIC8vICAgICAgICAgLy8gc2V0IGltYWdlcyB0byAwXG4gICAgLy8gICAgICAgICB0aGlzLnNjYW5uZWRJbWFnZXMgPSBbXTtcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKGltYWdlcyk7XG5cbiAgICAvLyAgICAgICAgIGNvbnN0IGltYWdlc0FycmF5ID0gaW1hZ2VzLm1hcCgobSkgPT4gbS5iYXNlNjQuc3BsaXQoJywnKVsxXSk7XG4gICAgLy8gICAgICAgICB0aGlzLnZhbGlkYXRpb24gPSB0cnVlO1xuXG4gICAgLy8gICAgICAgICAvLyB0aGlzLmhhbmRsZUJ1cnN0RGF0YShpbWFnZXNBcnJheSwgaW1hZ2VzLCAnd29ya2VyJyk7XG5cbiAgICAvLyAgICAgICAgIGNvbnNvbGUudGltZSgndmFsaWRhdGlvblBPU1QnKTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vICAgfVxuICAgIC8vICk7XG4gIH1cblxuICBoYW5kbGVCaXRtYXBJbWFnZShiaXRtYXA6IGFueSkge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYml0bWFwO1xuXG4gICAgY29uc3Qgb2Zmc2NyZWVuU21hbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBvZmZzY3JlZW5TbWFsbC53aWR0aCA9IHdpZHRoO1xuICAgIG9mZnNjcmVlblNtYWxsLmhlaWdodCA9IGhlaWdodDtcbiAgICBjb25zdCBjdHg6IGFueSA9IG9mZnNjcmVlblNtYWxsLmdldENvbnRleHQoJ2JpdG1hcHJlbmRlcmVyJyk7XG5cbiAgICBpZiAoY3R4KSB7XG4gICAgICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICBjdHgudHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoYml0bWFwKTtcbiAgICAgIGJpdG1hcC5jbG9zZSgpO1xuICAgICAgY29uc3QgZGF0YSA9IGN0eC5jYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJyk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhdXRvU2NhbigpIHtcbiAgICBjb25zdCBzaWRlID0gdGhpcy5zY2FuQmxhc3REYXRhWzBdO1xuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICB0aGlzLnNpbmdsZVNjYW4oc2lkZSk7XG4gIH1cblxuICBzaW5nbGVTY2FuKHNpZGU6IGFueSkge1xuICAgIHRoaXMuc2NhblR5cGUgPSBzaWRlLnNpZGU7XG4gICAgdGhpcy5wcmV2aWV3ID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkU2lkZSA9IHNpZGU7XG5cbiAgICB0aGlzLnNlbGVjdGVkU2lkZS5pbWFnZSA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zY2FuQmxhc3REYXRhWzFdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBtYW51YWxTY2FuRGF0YShkYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICB0aGlzLnNjYW5CbGFzdERhdGEgPSBkYXRhO1xuICAgIHRoaXMubWFudWFsID0gZmFsc2U7XG4gICAgdGhpcy5tYW51YWxEYXRhU2V0ID0gdHJ1ZTtcbiAgICB0aGlzLnNjYW5CbGFzdEZpbmlzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdCYXNlNjQobnVtOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnR0VUIDY0Jyk7XG5cbiAgICBpZiAodGhpcy5tYW51YWxEYXRhU2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5zY2FuQmxhc3REYXRhW251bV0uaW1hZ2UuX2ltYWdlQXNEYXRhVXJsLnNwbGl0KCcsJylbMV07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNjYW5CbGFzdERhdGFbbnVtXS5pbWFnZS5kYXRhVXJsLnNwbGl0KCcsJylbMV07XG4gIH1cbiAgc2NhbkJsYXN0RmluaXNoKCkge1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5jYW1lcmFQcm92aWRlci4kc2hvd1N3aXRjaC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgICBjb25zb2xlLnRpbWUoJ3VwbG9hZCcpO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdtb2JpbGUnKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuZW1pdCh7IGRhdGE6IHRoaXMuc2NhbkJsYXN0RGF0YSB9KTtcbiAgICAgIHRoaXMucmV0YWtlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICAvLyBjb25zdCBsb2FkaW5nID0gdGhpcy5kaWFsb2dzLmxvYWRpbmcoKTtcbiAgICB0aGlzLnNjYW5pbmcgPSB0cnVlO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGNvbnNvbGUudGltZSgncGF5bG9hZCcpO1xuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIERhdGFGaWVsZHM6IHtcbiAgICAgICAgRnJvbnRJbWFnZVR5cGU6ICdiYXNlNjQnLFxuICAgICAgICBGcm9udEltYWdlQ3JvcHBlZDogZmFsc2UsXG4gICAgICAgIEJhY2tJbWFnZVR5cGU6ICdiYXNlNjQnLFxuICAgICAgICBCYWNrSW1hZ2VDcm9wcGVkOiBmYWxzZSxcbiAgICAgICAgRnJvbnRJbWFnZTogdGhpcy5nZXRJbWdCYXNlNjQoMCksXG4gICAgICAgIEJhY2tJbWFnZTogdGhpcy5zY2FuQmxhc3REYXRhWzFdLmltYWdlID8gdGhpcy5nZXRJbWdCYXNlNjQoMSkgOiBudWxsLFxuICAgICAgfSxcbiAgICAgIFNldHRpbmdzOiB7XG4gICAgICAgIFNob3VsZFZhbGlkYXRlOiB0cnVlLFxuICAgICAgICBTaG91bGRSZXR1cm5Eb2N1bWVudEltYWdlOiB0cnVlLFxuICAgICAgICBTaG91bGRSZXR1cm5GYWNlSWZEZXRlY3RlZDogdHJ1ZSxcbiAgICAgICAgU2tpcEltYWdlU2l6ZUNoZWNrOiB0cnVlLFxuICAgICAgICBDYW5TdG9yZUltYWdlczogdGhpcy5zY2FuUHJvdmlkZXIuY2FuU3RvcmVJbWFnZXMsXG4gICAgICB9LFxuICAgICAgLy8gQ2FsbEJhY2tVcmw6ICdodHRwOi8vZGVtbzo1MDAwL3JlcG9ydC9leHRyYWN0ZWQvJyxcbiAgICB9O1xuICAgIHRoaXMuZnJvbnRJbWFnZSA9ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBwYXlsb2FkLkRhdGFGaWVsZHMuRnJvbnRJbWFnZTtcbiAgICB0aGlzLmJhY2tJbWFnZSA9ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBwYXlsb2FkLkRhdGFGaWVsZHMuQmFja0ltYWdlO1xuICAgIGlmICghdGhpcy5zY2FuQmxhc3REYXRhWzFdLmltYWdlKSB7XG4gICAgICBwYXlsb2FkLlNldHRpbmdzLklnbm9yZUJhY2tJbWFnZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubG9nRGF0YS5SZXF1ZXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG5cbiAgICBjb25zb2xlLnRpbWVFbmQoJ3BheWxvYWQnKTtcbiAgICB0aGlzLl9fc3VicyhcbiAgICAgIHRoaXMuc2NhblByb3ZpZGVyLmJsYXN0UG9zdChwYXlsb2FkKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tYW51YWxEYXRhU2V0KSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ01BTlVBTCBEQVRBIFNFVCcsZSk7XG4gICAgICAgICAgICB0aGlzLmxvZ0RhdGEuUmVzcG9uc2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUuZXJyb3IpKTtcblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHRyYWN0aW9uRXJyb3Ioe30pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0VFRScsIGUpO1xuICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAvL2NvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gZGF0YS5EYXRhO1xuICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3VwbG9hZCcpO1xuICAgICAgICBjb25zb2xlLnRpbWUoJ3BhcnNlJyk7XG4gICAgICAgIC8vIGRhdGEuSW5mb0NvZGUgPSAnMTAwMSc7XG4gICAgICAgIGNvbnNvbGUudGltZSgncCcpO1xuICAgICAgICB0aGlzLmxvZ0RhdGEuUmVzcG9uc2UgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgY29uc29sZS50aW1lRW5kKCdwJyk7XG4gICAgICAgIC8vbG9hZGluZy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmRvY3VtZW50VHlwZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zY2FuaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGRhdGEuSW5mb0NvZGUgPT09ICcxMDAxJykge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbRVJST1JdIDEwMDEnKTtcbiAgICAgICAgICB0aGlzLmVycm9yQ29kZSA9ICcxMDAxJztcbiAgICAgICAgICAvLyB0aGlzLnNjYW5TaWRlID0gMDtcblxuICAgICAgICAgIHRoaXMucHJldmlldyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLkluZm9Db2RlID09PSAnMTAwMicpIHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnW0VSUk9SXSAxMDAyJyk7XG4gICAgICAgICAgdGhpcy5lcnJvckNvZGUgPSAnMTAwMic7XG4gICAgICAgICAgLy8gdGhpcy5zY2FuU2lkZSA9IDA7XG5cbiAgICAgICAgICB0aGlzLnByZXZpZXcgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0cyAmJiBkYXRhLk1ldGFkYXRhLmxlbmd0aCA+IDAgJiYgZGF0YS5JbmZvQ29kZSA9PT0gJzEwMDAnKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4dHJhY3Rpb24gdGltZScsIGRhdGEuQW5hbHlzaXNUaW1lKTtcblxuICAgICAgICAgIC8vICB0aGlzLnpvbmUucnVuKCgpID0+IHtcblxuICAgICAgICAgIGNvbnNvbGUudGltZSgncGFyc2VibGFzdCcpO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2NhblByb3ZpZGVyLnBhcnNlQmxhc3QocmVzdWx0cyk7XG4gICAgICAgICAgY29uc29sZS50aW1lRW5kKCdwYXJzZWJsYXN0Jyk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ1JFUycsIHRoaXMucmVzdWx0KTtcbiAgICAgICAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzdWx0Lm1vZGVsO1xuXG4gICAgICAgICAgaWYgKGRhdGEuSW1hZ2VEYXRhPy5GYWNlSW1hZ2UpIHtcbiAgICAgICAgICAgIG1vZGVsLl9hdmF0YXIgPVxuICAgICAgICAgICAgICAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZGF0YS5JbWFnZURhdGE/LkZhY2VJbWFnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGF0YS5JbWFnZURhdGE/LkRvY3VtZW50cykge1xuICAgICAgICAgICAgY29uc3QgeyBEb2N1bWVudHMgfSA9IGRhdGEuSW1hZ2VEYXRhO1xuICAgICAgICAgICAgbW9kZWwuaW1hZ2VzID0gRG9jdW1lbnRzLm1hcCgoaW1hZ2U6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6ICdkYXRhOmltYWdlL2pwZWc7YmFzZTY0LCcgKyBEb2N1bWVudHNbaV0gfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ01PREVMJywgdGhpcy5tb2RlbCk7XG4gICAgICAgICAgdGhpcy5hY3Rpb25zLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ3NjYW5GaW5pc2gnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgICAgICAgaW1hZ2VzOiB0aGlzLmltYWdlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuc2NhblByb3ZpZGVyLmNvbmZpZy5oaWRlUmVzdWx0cykge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCdmZicpO1xuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICB0aGlzLnNjYW5SZXN1bHRzLm5leHQoeyB0eXBlOiAnbW9kZWwnLCBkYXRhOiBtb2RlbCB9KTtcbiAgICAgICAgICAgICAgLy8gdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIC8vICB9KTtcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCdmZicpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFUlJPUicpO1xuICAgICAgICAgIGlmICh0aGlzLm1hbnVhbERhdGFTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXh0cmFjdGlvbkVycm9yKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB0aGlzLnNjYW5TaWRlID0gMDtcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIHRoaXMucmV0cnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zb2xlLnRpbWVFbmQoJ3BhcnNlJyk7XG4gICAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICAvLyBsb2FkaW5nLmNsb3NlKCk7XG4gICAgICAgIC8vIHRoaXMuc2NhblNpZGUgPSAwO1xuICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2NhbmluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZXRyeSgpIHtcbiAgICB0aGlzLnByZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmVycm9yQ29kZSA9ICcxMDAwJztcbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuaWRTY2FuID0gbnVsbDtcbiAgICB0aGlzLmNhbWVyYVByb3ZpZGVyLiRzaG93U3dpdGNoLm5leHQodHJ1ZSk7XG4gICAgaWYgKHRoaXMuZXJyb3IpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRUeXBlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2NhbkJsYXN0RGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgZWxlbWVudC5pbWFnZSA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLmF1dG9TY2FuKCk7XG4gICAgdGhpcy5zY2FuKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmV0YWtlKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMucHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnJlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhblNpZGUgPSAwO1xuICAgIHRoaXMuY2FtZXJhUHJvdmlkZXIuJHNob3dTd2l0Y2gubmV4dCh0cnVlKTtcbiAgICB0aGlzLmltYWdlVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNjYW5EYXRhcyA9IFtdO1xuICAgIHRoaXMuc2NhbmluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW1hZ2VzID0gW107XG4gICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlkU2NhbiA9IG51bGw7XG4gICAgdGhpcy5kb2N1bWVudFR5cGVTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2NhbkJsYXN0RGF0YS5mb3JFYWNoKChtOiBhbnkpID0+IHtcbiAgICAgIG0uaW1hZ2UgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zY2FuU2Vjb25kU2lkZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5hdXRvU2NhbigpO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1c2UoKSB7XG4gICAgLy8gc2F2ZSBpbWFnZXM/P1xuXG4gICAgaWYgKHRoaXMuc2NhblByb3ZpZGVyLmNhblN0b3JlSW1hZ2VzKSB7XG4gICAgICB0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpKTtcbiAgICAgIGlmICh0aGlzLmxvZ0RhdGEuRXhwZWN0ZWRPdXRwdXQ/Ll9hdmF0YXIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubG9nRGF0YS5FeHBlY3RlZE91dHB1dC5fYXZhdGFyO1xuICAgICAgfVxuICAgICAgdGhpcy5fX3N1YnModGhpcy5zY2FuUHJvdmlkZXIuc2VuZExvZyh0aGlzLmxvZ0RhdGEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubG9nRGF0YSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25zLmVtaXQoe1xuICAgICAgdHlwZTogJ3NjYW5EYXRhQ2xvc2UnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgaW1hZ2VzOiB0aGlzLmltYWdlcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgc2VsZmllKCkge1xuICAgIGNvbnN0IGF2YXRhciA9IHRoaXMubW9kZWw/Ll9hdmF0YXI7XG4gICAgdGhpcy5kaWFsb2dzXG4gICAgICAuc2NhblNlbGZpZSh7IGF2YXRhciB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3ApO1xuICAgICAgICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5lbmFibGVWZXJpZmljYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VWZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2NhblJlc3VsdHMubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiAnYXZhdGFyJyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3AuaW1hZ2VBc0RhdGFVcmwsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gdGhpcy5tb2RlbC5fYXZhdGFyID0gcmVzcC5pbWFnZUFzRGF0YVVybDtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjYW1lcmFPZmYoZXY6IGFueSkge1xuICAgIHRoaXMuY2FtZXJhUmVhZHkgPSBmYWxzZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHZpZGVvUmVhZHkoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICBjb25zb2xlLmxvZygnUkVBRFknLCBldmVudCk7XG4gICAgdGhpcy5jYW1lcmFSZWFkeSA9IGV2ZW50O1xuICAgIGlmICh0aGlzLmNhbWVyYVJlYWR5ICYmICF0aGlzLnNjYW5JblByb2dyZXNzICYmICF0aGlzLm1hbnVhbCkge1xuICAgICAgdGhpcy5zY2FuSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY2FuKCk7XG4gICAgICB9LCAyMCk7XG4gICAgfVxuICB9XG5cbiAgbWFudWFsU2V0KGtleTogYm9vbGVhbikge1xuICAgIGlmIChrZXkpIHtcbiAgICAgIGlmICh0aGlzLnNjYW5Qcm92aWRlci5jb25maWcuc2hvd01hbnVhbE1vZGUpIHtcbiAgICAgICAgdGhpcy5tYW51YWxNb2RlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGlvbnMuZW1pdCh7XG4gICAgICAgICAgdHlwZTogJ21hbnVhbE1vZGUnLFxuICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9tcHRNYW51YWwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY2FuVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2NhblRpbWVvdXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbWFnZUhhbmRsZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuaW1hZ2VIYW5kbGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0RFU1RST1hZJyk7XG5cbiAgICB0aGlzLl9fZGVzdHJveSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ0lmPVwiY2FtZXJhUHJvdmlkZXIucmVjdFBvc2l0aW9uLnQgPiAwICYmIGRpc3BsYXlJbmZvICYmICFyZXN1bHQgJiYgIW1hbnVhbFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJoaW50XCIgW25nU3R5bGVdPVwieyB0b3A6IGNhbWVyYVByb3ZpZGVyLmhpbnRQb3NpdGlvbiArICdweCcgfVwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPlxuICAgICAge3sgZGlzcGxheUluZm8gfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RGlhbG9nXCI+XG4gIDxkaXYgY2xhc3M9XCJwYWdlVHVyblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5uZXJcIj5cbiAgICAgICAgPG1hdC1pY29uPjM2MDwvbWF0LWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlkU2NhbiA9PT0gJ0JBQ0snXCI+XG4gICAgICAgICAgICB7eyBcInNjYW5kb2MudHVybkFuZENhcHR1cmUuYmFja1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlkU2NhbiA9PT0gJ0ZST05UJ1wiPlxuICAgICAgICAgICAge3sgXCJzY2FuZG9jLnR1cm5BbmRDYXB0dXJlLmZyb250XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBtYXQtcmFpc2VkLWJ1dHRvbj5PazwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9tcHRNYW51YWxcIj5cbiAgPGRpdiBjbGFzcz1cIm1hbnVhbE1vZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XG4gICAgICAgIDxtYXQtaWNvbj5zY3JlZW5zaG90X2tleWJvYXJkPC9tYXQtaWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICB7eyBcInNjYW5kb2MubWFudWFsXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogOHB4XCJcbiAgICAgICAgICAoY2xpY2spPVwibWFudWFsU2V0KHRydWUpXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJzY2FuZG9jLnllc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogOHB4XCJcbiAgICAgICAgICAoY2xpY2spPVwibWFudWFsU2V0KGZhbHNlKVwiXG4gICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5ub1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwicmVzdWx0XCI+XG4gIDxzZWN0aW9uPlxuICAgIDxuZ3gtc2Nhbi1yZXN1bHRzXG4gICAgICAoYWN0aW9uKT1cInNlbGZpZSgpXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgW2RhdGFdPVwic2NhblJlc3VsdHNcIlxuICAgID48L25neC1zY2FuLXJlc3VsdHM+XG5cbiAgICA8Zm9vdGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTRcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwicmV0YWtlKClcIj5cbiAgICAgICAgICB7eyBcInNjYW5kb2MucmVUYWtlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZXJyb3IgfHwgZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cIm1sLTRcIlxuICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInVzZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy51c2VEYXRhXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtYW51YWxcIj5cbiAgPHNlY3Rpb24+XG4gICAgPG5neC1tYW51YWwtc2NhbiAoYWN0aW9uKT1cIm1hbnVhbFNjYW5EYXRhKCRldmVudClcIj48L25neC1tYW51YWwtc2Nhbj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc3VsdCAmJiBkb2N1bWVudFR5cGVTZWxlY3RlZCAmJiAhbWFudWFsXCI+XG4gIDxzZWN0aW9uPlxuICAgIDxkaXYgI3dyYXBlciBjbGFzcz1cIndyYXBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cIighY2FtZXJhUmVhZHkgJiYgIXByZXZpZXcpIHx8IHNjYW5pbmdcIj5cbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlcnJvclwiPlxuICAgICAgICA8bmd4LXNjYW5kb2Mtd2ViY2FtXG4gICAgICAgICAgKm5nSWY9XCIhcHJldmlldyAmJiAhc2NhbmluZ1wiXG4gICAgICAgICAgY2xhc3M9XCJtYWluXCJcbiAgICAgICAgICAjd2ViY2FtXG4gICAgICAgICAgdHlwZT1cImRvY3VtZW50XCJcbiAgICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgICBbaW1hZ2VIYW5kbGVyXT1cImltYWdlSGFuZGxlclwiXG4gICAgICAgICAgKGltYWdlQ2FwdHVyZSk9XCJoYW5kbGVJbWFnZSgkZXZlbnQpXCJcbiAgICAgICAgICAoaW5pdEVycm9yKT1cImhhbmRsZUluaXRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAoZGVzdHJveWVkKT1cImNhbWVyYU9mZigkZXZlbnQpXCJcbiAgICAgICAgICAodmlkZW9SZWFkeSk9XCJ2aWRlb1JlYWR5KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmd4LXNjYW5kb2Mtd2ViY2FtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJldmlld0RhdGFcIlxuICAgICAgICAqbmdJZj1cInByZXZpZXdcIlxuICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMTYgZXJyb3JcIiAqbmdJZj1cImVycm9yXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwibWwtOFwiPnt7XG4gICAgICAgICAgICAgICAgXCJzY2FuZG9jLnVuYWJsZVRvRGV0ZWN0SWRcIiB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JDb2RlID09PSAnMTAwMSdcIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuZXh0cmFjdGlvbi5jMTAwMVwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JDb2RlID09PSAnMTAwMidcIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuZXh0cmFjdGlvbi5jMTAwMlwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDx1bCAqbmdJZj1cImVycm9yQ29kZSA9PT0gJzEwMDAnXCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MucGxhY2VJZENsb3NlVG9EZXZpY2VcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3sgXCJzY2FuZG9jLmVuc3VyZVN1ZmZpY2llbnRMaWdodFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBcInNjYW5kb2MuaG9sZERvY3VtZW50U3RlYWR5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHt7IFwic2NhbmRvYy5tYWtlU3VyZUFsbEVkZ2VzT2ZUaGVJZEFyZVZpc2libGVcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIFwic2NhbmRvYy5tYWtlU3VyZVRoZXJlQXJlTm9HbGFyZUFuZFNoYWRvd3NPblRoZUlkXCIgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjYW5QcmV2aWV3XCIgKm5nSWY9XCIhZXJyb3IgJiYgIXNjYW5pbmdcIj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJweS0xNlwiIHN0eWxlPVwiZm9udC1zaXplOiAxNnB4XCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIFwic2NhbmRvYy5lbnN1cmVBbGxUZXh0c0FyZVZpc2libGVcIlxuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImltYWdlXCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIHByZXZpZXcgKyAnKSdcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmb290ZXIgKm5nSWY9XCJwcmV2aWV3XCI+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkaXNwbGF5SW5mb1wiICpuZ0lmPVwiIXByZXZpZXcgJiYgY2FtZXJhUmVhZHlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SW5mb1wiPlxuICAgICAgICB7eyBkaXNwbGF5SW5mbyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+IC0tPlxuICAgICAgPCEtLSA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAyNnB4XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE4cHhcIlxuICAgICAgICAqbmdJZj1cImlkU2NhbiAmJiAhcHJldmlldyAmJiBjYW1lcmFSZWFkeVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpZFNjYW4gPT09ICdCQUNLJ1wiPlxuICAgICAgICAgIFR1cm4gZG9jdW1lbnQgYW5kOlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5jYXB0dXJlQmFja1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWRTY2FuID09PSAnRlJPTlQnXCI+XG4gICAgICAgICAgVHVybiBkb2N1bWVudCBhbmQ6XG4gICAgICAgICAge3sgXCJzY2FuZG9jLmNhcHR1cmVGcm9udFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwicHJldmlld1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJyZXRyeSgpXCI+XG4gICAgICAgICAge3sgXCJzY2FuZG9jLnJldHJ5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlcnJvclwiXG4gICAgICAgICAgY2xhc3M9XCJtbC00XCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjb250aW51ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwic2NhbmRvYy5jb250aW51ZVdpdGhTZWxlY3RlZEltYWdlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
package/fesm2015/ngx-scandoc.mjs
CHANGED
|
@@ -2531,6 +2531,9 @@ class ScanComponent extends BaseComponent {
|
|
|
2531
2531
|
this.showDialog = true;
|
|
2532
2532
|
this.cd.detectChanges();
|
|
2533
2533
|
}
|
|
2534
|
+
// reset manual scan popup interval
|
|
2535
|
+
this.verificationErrorSent = false;
|
|
2536
|
+
this.startTime = Date.now();
|
|
2534
2537
|
this.displayInfo = 'scandoc.info.turn';
|
|
2535
2538
|
}
|
|
2536
2539
|
}
|
|
@@ -2583,40 +2586,16 @@ class ScanComponent extends BaseComponent {
|
|
|
2583
2586
|
// save current image after 10sec
|
|
2584
2587
|
let MANUAL_INTERVAL = this.scanProvider.config.manualScanDelay;
|
|
2585
2588
|
const diff = (Date.now() - this.startTime) / 1000;
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
//this.scanProvider.config.development
|
|
2590
|
-
) {
|
|
2589
|
+
const showDialog = diff > MANUAL_INTERVAL;
|
|
2590
|
+
console.log('Mdiff', diff, showDialog, this.verificationErrorSent);
|
|
2591
|
+
if (showDialog && !this.verificationErrorSent) {
|
|
2591
2592
|
this.verificationErrorSent = true;
|
|
2592
2593
|
console.warn('[HANDLE ERROR]');
|
|
2593
2594
|
this.zone.run(() => {
|
|
2594
|
-
//
|
|
2595
|
-
|
|
2596
|
-
//
|
|
2597
|
-
// {
|
|
2598
|
-
// duration: 10000,
|
|
2599
|
-
// viewContainerRef: this.view,
|
|
2600
|
-
// }
|
|
2601
|
-
// );
|
|
2602
|
-
// this.__subs(ref.onAction()).subscribe((resp) => {
|
|
2603
|
-
// this.manualMode(type);
|
|
2604
|
-
// });
|
|
2605
|
-
if (!this.scanSecondSide) {
|
|
2606
|
-
this.promptManual = true;
|
|
2607
|
-
// MANUAL_INTERVAL += 10;
|
|
2608
|
-
}
|
|
2609
|
-
// this.verificationErrorSent = false;
|
|
2595
|
+
// if (!this.scanSecondSide) {
|
|
2596
|
+
this.promptManual = true;
|
|
2597
|
+
// }
|
|
2610
2598
|
this.startTime = Date.now();
|
|
2611
|
-
//this.promptManual = true;
|
|
2612
|
-
// this.dialogs.promptManual().subscribe((resp: any) => {
|
|
2613
|
-
// console.warn(resp);
|
|
2614
|
-
// if (resp) {
|
|
2615
|
-
// this.manualMode(type);
|
|
2616
|
-
// }
|
|
2617
|
-
// this.startTime = Date.now();
|
|
2618
|
-
// this.verificationErrorSent = false;
|
|
2619
|
-
// });
|
|
2620
2599
|
});
|
|
2621
2600
|
// this.verificationErrorSent = true;
|
|
2622
2601
|
// const dataUrl = this.handleBitmapImage(img.bitmap);
|