speechrecorderng 3.6.0 → 3.6.1
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/esm2020/lib/speechrecorder/script/script.mjs +1 -1
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +14 -7
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +72 -19
- package/esm2020/lib/speechrecorderng.component.mjs +2 -2
- package/esm2020/lib/spr.module.version.mjs +2 -2
- package/fesm2015/speechrecorderng.mjs +86 -26
- package/fesm2015/speechrecorderng.mjs.map +1 -1
- package/fesm2020/speechrecorderng.mjs +86 -26
- package/fesm2020/speechrecorderng.mjs.map +1 -1
- package/lib/speechrecorder/script/script.d.ts +1 -0
- package/lib/speechrecorder/session/controlpanel.d.ts +2 -0
- package/lib/speechrecorder/session/sessionmanager.d.ts +7 -1
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -53,7 +53,7 @@ export class SpeechrecorderngComponent extends RecorderComponent {
|
|
|
53
53
|
ngAfterViewInit() {
|
|
54
54
|
// let wakeLockSupp=('wakeLock' in navigator);
|
|
55
55
|
// alert('Wake lock API supported: '+wakeLockSupp);
|
|
56
|
-
if (this.sm.status !==
|
|
56
|
+
if (this.sm.status !== 10 /* ERROR */) {
|
|
57
57
|
let initSuccess = this.init();
|
|
58
58
|
if (initSuccess) {
|
|
59
59
|
this.route.queryParams.subscribe((params) => {
|
|
@@ -388,4 +388,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
388
388
|
type: ViewChild,
|
|
389
389
|
args: [SessionManager, { static: true }]
|
|
390
390
|
}] } });
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFBO0FBQzVGLE9BQU8sRUFDa0MsU0FBUyxJQUFJLGlCQUFpQixFQUNyRSxXQUFXLEVBQ1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBSXhFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBVyxXQUFXLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUt4RixPQUFPLEVBQUMsTUFBTSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFFakMsTUFBTSxDQUFOLElBQVksSUFBMEI7QUFBdEMsV0FBWSxJQUFJO0lBQUUsbURBQWMsQ0FBQTtJQUFDLCtCQUFJLENBQUE7QUFBQSxDQUFDLEVBQTFCLElBQUksS0FBSixJQUFJLFFBQXNCO0FBa0J0QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsaUJBQWlCO0lBWTlELFlBQW9CLEtBQXFCLEVBQ2YsTUFBYyxFQUNsQixpQkFBb0MsRUFDcEMsZUFBOEIsRUFDOUIsY0FBNkIsRUFDN0IsYUFBMkIsRUFDM0IsZUFBZ0Ms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Qzs7dUhBdllVLHlCQUF5QjsyR0FBekIseUJBQXlCLDZDQWJ6QixDQUFDLGNBQWMsQ0FBQyw4REF1QmhCLGNBQWMscUZBdEJmOztHQUVUOzRGQVVVLHlCQUF5QjtrQkFoQnJDLFNBQVM7K0JBRUUsb0JBQW9CLGFBQ25CLENBQUMsY0FBYyxDQUFDLFlBQ2pCOztHQUVUO29UQW9CNEMsRUFBRTtzQkFBOUMsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBBdWRpb1BsYXllckxpc3RlbmVyLCBBdWRpb1BsYXllckV2ZW50LCBFdmVudFR5cGUgYXMgUGxheWJhY2tFdmVudFR5cGUsXHJcbiAgQXVkaW9QbGF5ZXJcclxufSBmcm9tICcuL2F1ZGlvL3BsYXliYWNrL3BsYXllcic7XHJcbmltcG9ydCB7R3JvdXAsIFByb21wdEl0ZW0sIFNjcmlwdH0gZnJvbSAnLi9zcGVlY2hyZWNvcmRlci9zY3JpcHQvc2NyaXB0J1xyXG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlcixTdGF0dXMgYXMgU2Vzc2lvbk1hbmFnZXJTdGF0dXN9IGZyb20gJy4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9ubWFuYWdlcic7XHJcbmltcG9ydCB7IFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQsIFVwbG9hZGVyU3RhdHVzIH0gZnJvbSAnLi9uZXQvdXBsb2FkZXInO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1NjcmlwdFNlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NjcmlwdC9zY3JpcHQuc2VydmljZVwiO1xyXG5pbXBvcnQge1NwZWVjaFJlY29yZGVyVXBsb2FkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NwcnVwbG9hZGVyXCI7XHJcbmltcG9ydCB7U2Vzc2lvbn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uXCI7XHJcbmltcG9ydCB7QXVkaW9TdG9yYWdlVHlwZSwgUHJvamVjdCwgUHJvamVjdFV0aWx9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Byb2plY3QvcHJvamVjdFwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3Quc2VydmljZVwiO1xyXG5pbXBvcnQge0F1ZGlvQ29udGV4dFByb3ZpZGVyfSBmcm9tIFwiLi9hdWRpby9jb250ZXh0XCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvcmVjb3JkaW5ncy9yZWNvcmRpbmdzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlRGVzY3JpcHRvckltcGx9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge0FycmF5cywgRGF0YVNpemV9IGZyb20gXCIuL3V0aWxzL3V0aWxzXCI7XHJcbmltcG9ydCB7UmVjb3JkZXJDb21wb25lbnR9IGZyb20gXCIuL3JlY29yZGVyX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2ljUmVjb3JkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vYmFzaWNyZWNvcmRlclwiO1xyXG5pbXBvcnQge1NwckRifSBmcm9tIFwiLi9kYi9pbmRkYlwiO1xyXG5cclxuZXhwb3J0IGVudW0gTW9kZSB7U0lOR0xFX1NFU1NJT04sREVNT31cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcGVlY2hyZWNvcmRlcicsXHJcbiAgcHJvdmlkZXJzOiBbU2Vzc2lvblNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnJlY29yZGluZ3Nlc3Npb24gW3Byb2plY3ROYW1lXT1cInByb2plY3Q/Lm5hbWVcIiBbZGF0YVNhdmVkXT1cImRhdGFTYXZlZFwiPjwvYXBwLXNwcnJlY29yZGluZ3Nlc3Npb24+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3R7XHJcbiAgICBmbGV4OiAyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OjA7XHJcblxyXG4gIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgZXh0ZW5kcyBSZWNvcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0LEF1ZGlvUGxheWVyTGlzdGVuZXIge1xyXG5cclxuICBtb2RlITpNb2RlO1xyXG4gIGNvbnRyb2xBdWRpb1BsYXllcjpBdWRpb1BsYXllcnxudWxsPW51bGw7XHJcbiAgYXVkaW86YW55O1xyXG4gIF9wcm9qZWN0OlByb2plY3R8bnVsbD1udWxsO1xyXG4gIHNlc3Npb25JZCE6IHN0cmluZztcclxuICBzZXNzaW9uITpTZXNzaW9uO1xyXG4gIHNjcmlwdCE6U2NyaXB0O1xyXG5cclxuICBAVmlld0NoaWxkKFNlc3Npb25NYW5hZ2VyLCB7IHN0YXRpYzogdHJ1ZSB9KSBzbSE6U2Vzc2lvbk1hbmFnZXI7XHJcblxyXG5cdFx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzZXNzaW9uc1NlcnZpY2U6U2Vzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHByb2plY3RTZXJ2aWNlOlByb2plY3RTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzY3JpcHRTZXJ2aWNlOlNjcmlwdFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlY0ZpbGVzU2VydmljZTpSZWNvcmRpbmdTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHVwbG9hZGVyOlNwZWVjaFJlY29yZGVyVXBsb2FkZXIpIHtcclxuICAgICAgc3VwZXIodXBsb2FkZXIpO1xyXG5cdFx0fVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycjphbnkpe1xyXG4gICAgICBsZXQgZXJyTXNnPSdVbmtub3duIGVycm9yJztcclxuICAgICAgaWYoZXJyIGluc3RhbmNlb2YgRXJyb3Ipe1xyXG4gICAgICAgIGVyck1zZz1lcnIubWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz1lcnJNc2c7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdlcnJvcic7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyTXNnKVxyXG4gICAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbEF1ZGlvUGxheWVyID0gbmV3IEF1ZGlvUGxheWVyKCB0aGlzKTtcclxuICAgICAgdGhpcy5zbS5jb250cm9sQXVkaW9QbGF5ZXI9dGhpcy5jb250cm9sQXVkaW9QbGF5ZXI7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUGxheWVyIGluaXRpYWxpemVkLic7XHJcblxyXG4gIH1cclxuICAgICAgIG5nQWZ0ZXJWaWV3SW5pdCgpe1xyXG4gICAgICAgIC8vIGxldCB3YWtlTG9ja1N1cHA9KCd3YWtlTG9jaycgaW4gbmF2aWdhdG9yKTtcclxuICAgICAgICAvLyBhbGVydCgnV2FrZSBsb2NrIEFQSSBzdXBwb3J0ZWQ6ICcrd2FrZUxvY2tTdXBwKTtcclxuICAgICAgICAgICBpZiAodGhpcy5zbS5zdGF0dXMgIT09IFNlc3Npb25NYW5hZ2VyU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgICAgICBsZXQgaW5pdFN1Y2Nlc3MgPSB0aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgIGlmIChpbml0U3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydzZXNzaW9uSWQnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNlc3Npb24ocGFyYW1zWydzZXNzaW9uSWQnXSk7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgICAgICBsZXQgcm91dGVQYXJhbXNJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgICAgICAgICAgICAgICBpZiAocm91dGVQYXJhbXNJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNlc3Npb24ocm91dGVQYXJhbXNJZCk7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZldGNoU2Vzc2lvbihzZXNzaW9uSWQ6c3RyaW5nKXtcclxuXHJcbiAgICAgIGxldCBzZXNzT2JzPSB0aGlzLnNlc3Npb25zU2VydmljZS5zZXNzaW9uT2JzZXJ2ZXIoc2Vzc2lvbklkKTtcclxuXHJcbiAgICAgIGlmKHNlc3NPYnMpIHtcclxuICAgICAgICBzZXNzT2JzLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiBzZXNzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTZXNzaW9uKHNlc3MpO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUmVjZWl2ZWQgc2Vzc2lvbiBpbmZvLic7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoc2Vzcy5wcm9qZWN0KSB7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBhc3NvY2lhdGVkIHByb2plY3Q6IFwiK3Nlc3MucHJvamVjdClcclxuICAgICAgICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3RPYnNlcnZhYmxlKHNlc3MucHJvamVjdCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHByb2plY3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2plY3QgPSBwcm9qZWN0O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgcGVyc2lzdGVudEF1ZGlTdG9yYWdlPShBdWRpb1N0b3JhZ2VUeXBlLkRCX0NIVU5LRUQ9PT1wcm9qZWN0LmNsaWVudEF1ZGlvU3RvcmFnZVR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3VwZXIucHJlcGFyZShwZXJzaXN0ZW50QXVkaVN0b3JhZ2UpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbS5wZXJzaXN0ZW50QXVkaW9TdG9yYWdlVGFyZ2V0ID0gdGhpcy5fcGVyc2lzdGVudEF1ZGlvU3RvcmFnZVRhcmdldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoU2NyaXB0KHNlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICB9LCBlcnJvcjogKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gcmVhc29uO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2Vycm9yJztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgcHJvamVjdCBjb25maWc6IFwiICsgcmVhc29uKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5pbmZvKFwiU2Vzc2lvbiBoYXMgbm8gYXNzb2NpYXRlZCBwcm9qZWN0LiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaFNjcmlwdChzZXNzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOihyZWFzb24pID0+XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gcmVhc29uO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgc2Vzc2lvbiBcIiArIHJlYXNvbilcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBmZXRjaFNjcmlwdChzZXNzOiBTZXNzaW9uKSB7XHJcbiAgICBpZiAoc2Vzcy5zY3JpcHQpIHtcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ0ZldGNoaW5nIHJlY29yZGluZyBzY3JpcHQuLi4nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNjcmlwdFNlcnZpY2Uuc2NyaXB0T2JzZXJ2YWJsZShzZXNzLnNjcmlwdCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoc2NyaXB0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ1JlY2VpdmVkIHJlY29yZGluZyBzY3JpcHQuJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zZXRTY3JpcHQoc2NyaXB0KVxyXG4gICAgICAgICAgdGhpcy5zbS5zZXNzaW9uID0gc2VzcztcclxuICAgICAgICAgIHRoaXMuZmV0Y2hSZWNvcmRpbmdzKHNlc3MsIHRoaXMuc2NyaXB0KVxyXG4gICAgICAgIH0sIGVycm9yOiAocmVhc29uKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyTXNnID0gXCJFcnJvciBmZXRjaGluZyByZWNvcmRpbmcgc2NyaXB0OiBcIiArIHJlYXNvblxyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJNc2cpXHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IGVyck1zZztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2Vycm9yJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZXJyTXNnID0gXCJObyByZWNvcmRpbmcgc2NyaXB0IGlzIGRlZmluZWQgZm9yIHRoaXMgc2Vzc2lvbiB3aXRoIElEIFwiICsgc2Vzcy5zZXNzaW9uSWQ7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5zbS5zdGF0dXNNc2cpXHJcbiAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gZXJyTXNnO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hSZWNvcmRpbmdzKHNlc3M6IFNlc3Npb24sIHNjcmlwdDogU2NyaXB0KSB7XHJcbiAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ0ZldGNoaW5nIGluZm9zIG9mIHJlY29yZGluZ3MuLi4nO1xyXG4gICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gdHJ1ZTtcclxuICAgIGxldCBwck5tOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIGlmICh0aGlzLnByb2plY3QpIHtcclxuICAgICAgbGV0IHJmc09icyA9IHRoaXMucmVjRmlsZXNTZXJ2aWNlLnJlY29yZGluZ0ZpbGVEZXNjckxpc3QodGhpcy5wcm9qZWN0Lm5hbWUsIHNlc3Muc2Vzc2lvbklkKTtcclxuICAgICAgcmZzT2JzLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJmczogQXJyYXk8UmVjb3JkaW5nRmlsZURlc2NyaXB0b3JJbXBsPikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCBpbmZvcyBvZiByZWNvcmRpbmdzLic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZnMpIHtcclxuICAgICAgICAgICAgaWYgKHJmcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgICAgcmZzLmZvckVhY2goKHJmKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQWxyZWFkeSByZWNvcmRlZDogXCIgKyByZisgXCIgXCIrcmYucmVjb3JkaW5nLml0ZW1jb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc20uYWRkUmVjb3JkaW5nRmlsZUJ5RGVzY3JpcHRvcihyZik7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFeHBlY3RlZCB0eXBlIGFycmF5IGZvciBsaXN0IG9mIGFscmVhZHkgcmVjb3JkZWQgZmlsZXMgJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjb3JkaW5nIGZpbGUgbGlzdDogXCIgKyByZnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAvLyB3ZSBzdGFydCB0aGUgc2Vzc2lvbiBhbnl3YXlcclxuICAgICAgICAgIHRoaXMuc3RhcnRTZXNzaW9uKClcclxuICAgICAgICB9LCBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFNlc3Npb24oKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRPRE9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzY3JlZW5Mb2NrZWQoKTpib29sZWFue1xyXG4gICAgICByZXR1cm4gIHRoaXMuc20uc2NyZWVuTG9ja2VkO1xyXG4gIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0U2Vzc2lvbigpe1xyXG4gICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZz1mYWxzZTtcclxuXHRcdCAgdGhpcy5zbS5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgICAgc2V0U2Vzc2lvbihzZXNzaW9uOmFueSl7XHJcblx0XHQgICAgaWYoc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBJRDogXCIgKyBzZXNzaW9uLnNlc3Npb25JZCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBVbmRlZmluZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWR5KCk6Ym9vbGVhbntcclxuXHRcdCAgICByZXR1cm4gdGhpcy5kYXRhU2F2ZWQgJiYgIXRoaXMuc20uaXNBY3RpdmUoKVxyXG4gICAgICAgIH1cclxuXHJcblx0XHRpbml0KCk6Ym9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBEdXBsaWNhdGUgY29kZSBpbiBBdWRpb1JlY29yZGVyQ29tcG9uZW50XHJcbiAgICAgICAgdGhpcy51cGxvYWRlci5saXN0ZW5lciA9ICh1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRVcGRhdGUodWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKGUpID0+IHtcclxuICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkJlZm9yZSBwYWdlIHVubG9hZCBldmVudFwiKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5yZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGFsbCB0aGlzIGF0dGVtcHRzIHRvIGN1c3RvbWl6ZSB0aGUgbWVzc2FnZSBkbyBub3Qgd29yayBhbnltb3JlIChmb3Igc2VjdXJpdHkgcmVhc29ucykhIVxyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJQbGVhc2UgZG8gbm90IGxlYXZlIHRoZSBwYWdlLCB1bnRpbCBhbGwgcmVjb3JkaW5ncyBhcmUgdXBsb2FkZWQhXCI7XHJcbiAgICAgICAgICAgIGFsZXJ0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgICAgIGUucmV0dXJuVmFsdWUgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgIGUuY2FuY2VsQnViYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gIHVwbG9hZFVwZGF0ZSh1ZTogVXBsb2FkZXJTdGF0dXNDaGFuZ2VFdmVudCkge1xyXG4gICAgbGV0IHVwU3RhdHVzID0gdWUuc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhU2F2ZWQgPSAoVXBsb2FkZXJTdGF0dXMuRE9ORSA9PT0gdXBTdGF0dXMpO1xyXG4gICAgbGV0IHBlcmNlbnRVcGwgPSB1ZS5wZXJjZW50RG9uZSgpO1xyXG4gICAgbGV0IHNpemVJblF1ZXVlPXVlLnNpemVJblF1ZXVlKCk7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJVcGxvYWRlcjogc3RhdHVzOiBcIit1cFN0YXR1cytcIiwgXCIrcGVyY2VudFVwbCtcIiUsIEJ5dGVzIGluIHF1ZXVlOiBcIitzaXplSW5RdWV1ZSsnICgnK0RhdGFTaXplLmZvcm1hdEJ5dGVzVG9CaW5hcnlVbml0cyhzaXplSW5RdWV1ZSkrJyknKTtcclxuICAgIGlmIChVcGxvYWRlclN0YXR1cy5FUlIgPT09IHVwU3RhdHVzKSB7XHJcbiAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ3dhcm4nXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocGVyY2VudFVwbCA8IDUwKSB7XHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRTdGF0dXMgPSAnYWNjZW50J1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ3N1Y2Nlc3MnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zbS51cGxvYWRQcm9ncmVzcyA9IHBlcmNlbnRVcGw7XHJcbiAgICB9XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJVcGxvYWQgdXBkYXRlLCB1cGRhdGUgd2FrZSBsb2NrLlwiKVxyXG4gICAgdGhpcy5zbS51cGRhdGVXYWtlTG9jayh0aGlzLmRhdGFTYXZlZCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlKCkge1xyXG5cclxuICAgICAgdGhpcy5sb2FkUHJvamVjdENmZygoKSA9PiB7XHJcbiAgICAgICAgLy8gZGlzcGxheSBwcm9qZWN0IG5hbWVcclxuICAgICAgICBsZXQgcHJOYW1lOiBzdHJpbmcgPSAnW1Vua25vd25dJztcclxuICAgICAgICBpZiAodGhpcy5wcm9qZWN0ICYmIHRoaXMucHJvamVjdC5uYW1lKSB7XHJcbiAgICAgICAgICBwck5hbWUgPSB0aGlzLnByb2plY3QubmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy90aGlzLnRpdGxlRWwuaW5uZXJUZXh0ID0gcHJOYW1lO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmFuZG9taXplKHNjcmlwdDpTY3JpcHQpe1xyXG5cdFx0ICAgIHNjcmlwdC5zZWN0aW9ucy5mb3JFYWNoKChzKT0+e1xyXG5cdFx0ICAgICAgICBpZignUkFORE9NJz09PXMub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzLl9zaHVmZmxlZEdyb3VwcyA9IEFycmF5cy5zaHVmZmxlQXJyYXk8R3JvdXA+KHMuZ3JvdXBzKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG5cdFx0ICAgICAgICAgICAgcy5fc2h1ZmZsZWRHcm91cHM9cy5ncm91cHM7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgIHMuX3NodWZmbGVkR3JvdXBzLmZvckVhY2goKGcpPT57XHJcblx0XHQgICAgICAgICAgICBpZignUkFORE9NJz09PWcub3JkZXIpe1xyXG5cdFx0ICAgICAgICAgICAgICAgZy5fc2h1ZmZsZWRQcm9tcHRJdGVtcz1BcnJheXMuc2h1ZmZsZUFycmF5PFByb21wdEl0ZW0+KGcucHJvbXB0SXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG5cdFx0ICAgICAgICAgICAgICAgIGcuX3NodWZmbGVkUHJvbXB0SXRlbXM9Zy5wcm9tcHRJdGVtcztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2NyaXB0KHNjcmlwdDpTY3JpcHQpe1xyXG4gICAgICAgIHRoaXMuc2NyaXB0PXNjcmlwdDtcclxuICAgICAgICB0aGlzLnJhbmRvbWl6ZSh0aGlzLnNjcmlwdCk7XHJcbiAgICAgICAgdGhpcy5zbS5zY3JpcHQgPSB0aGlzLnNjcmlwdDtcclxuICAgIH1cclxuXHJcblxyXG4gIHNldCBwcm9qZWN0KHByb2plY3Q6IFByb2plY3R8bnVsbCkge1xyXG4gICAgdGhpcy5fcHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICBsZXQgY2hDbnQgPSBQcm9qZWN0VXRpbC5ERUZBVUxUX0FVRElPX0NIQU5ORUxfQ09VTlQ7XHJcblxyXG4gICAgaWYgKHByb2plY3QpIHtcclxuICAgICAgY29uc29sZS5pbmZvKFwiUHJvamVjdCBuYW1lOiBcIiArIHByb2plY3QubmFtZSlcclxuICAgICAgaWYocHJvamVjdC5yZWNvcmRpbmdEZXZpY2VXYWtlTG9jaz09PXRydWUpe1xyXG4gICAgICAgIHRoaXMuc20ud2FrZUxvY2s9dHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmluZm8oXCJBdWRpbyBzdG9yYWdlIHR5cGU6IFwiK3Byb2plY3QuY2xpZW50QXVkaW9TdG9yYWdlVHlwZSk7XHJcbiAgICAgIGlmKEF1ZGlvU3RvcmFnZVR5cGUuREJfQ0hVTktFRD09PXByb2plY3QuY2xpZW50QXVkaW9TdG9yYWdlVHlwZSl7XHJcbiAgICAgICAgU3ByRGIucHJlcGFyZSgpLnN1YnNjcmliZSgpXHJcbiAgICAgIH1cclxuICAgICAgaWYocHJvamVjdC5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5zbS5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlID0gcHJvamVjdC5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNtLmF1ZGlvRGV2aWNlcyA9IHByb2plY3QuYXVkaW9EZXZpY2VzO1xyXG4gICAgICBjaENudCA9IFByb2plY3RVdGlsLmF1ZGlvQ2hhbm5lbENvdW50KHByb2plY3QpO1xyXG4gICAgICBjb25zb2xlLmluZm8oXCJQcm9qZWN0IHJlcXVlc3RlZCByZWNvcmRpbmcgY2hhbm5lbCBjb3VudDogXCIgKyBjaENudCk7XHJcbiAgICAgIHRoaXMuc20uYXV0b0dhaW5Db250cm9sQ29uZmlncz1wcm9qZWN0LmF1dG9HYWluQ29udHJvbENvbmZpZ3M7XHJcbiAgICAgIGlmKHByb2plY3QuYWxsb3dFY2hvQ2FuY2VsbGF0aW9uIT09dW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5zbS5hbGxvd0VjaG9DYW5jZWxsYXRpb24gPSBwcm9qZWN0LmFsbG93RWNob0NhbmNlbGxhdGlvbjtcclxuICAgICAgfVxyXG4gICAgICBpZihwcm9qZWN0LmNodW5rZWRSZWNvcmRpbmc9PT10cnVlKXtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiRW5hYmxlIGNodW5rZWQgdXBsb2FkOiBjaHVua1NpemU6IFwiK0Jhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFMpXHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRDaHVua1NpemVTZWNvbmRzPUJhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkQ2h1bmtTaXplU2Vjb25kcz1udWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2plY3Quc2hvd1Nlc3Npb25Db21wbGV0ZU1lc3NhZ2UhPW51bGwpe1xyXG4gICAgICAgIHRoaXMuc20uc2hvd1Nlc3Npb25Db21wbGV0ZU1lc3NhZ2U9cHJvamVjdC5zaG93U2Vzc2lvbkNvbXBsZXRlTWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkVtcHR5IHByb2plY3QgY29uZmlndXJhdGlvbiFcIilcclxuICAgIH1cclxuICAgIHRoaXMuc20uY2hhbm5lbENvdW50ID0gY2hDbnQ7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IHByb2plY3QoKTpQcm9qZWN0fG51bGx7XHJcblx0XHQgIHJldHVybiB0aGlzLl9wcm9qZWN0O1xyXG4gIH1cclxuXHJcbiAgICBsb2FkUHJvamVjdENmZyhjYWxsYmFjazogKCk9PiBhbnkpe1xyXG4gICAgICBsZXQgcHJvalVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZXNzaW9uSWQgPT09IG51bGwpIHtcclxuICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSAnbG9jYWxob3N0JyB8fCB0aGlzLm1vZGUgPT09IE1vZGUuREVNTykge1xyXG4gICAgICAgICAgLy8gZGVidWcgb3IgZGVtbyBtb2RlXHJcbiAgICAgICAgICBwcm9qVXJsID0gJ3Rlc3QvRGVtbzEuanNvbj8nICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGxvYWQgUkVTVGZ1bCBieSBzZXNzaW9uSWRcclxuICAgICAgICBwcm9qVXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICc6JyArIHdpbmRvdy5sb2NhdGlvbi5wb3J0ICsgJy93aWtpc3BlZWNoL3Jlc3QvcHJvamVjdHMvP3Nlc3Npb25JZD0nICsgdGhpcy5zZXNzaW9uSWQ7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2pVcmwpIHtcclxuICAgICAgICBjb25zdCBwTG9hZGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgcExvYWRlci5vcGVuKFwiR0VUXCIsIHByb2pVcmwsIHRydWUpO1xyXG4gICAgICAgIHBMb2FkZXIuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICBwTG9hZGVyLnJlc3BvbnNlVHlwZSA9IFwianNvblwiO1xyXG4gICAgICAgIHBMb2FkZXIub25sb2FkID0gKGUpID0+IHtcclxuXHJcbiAgICAgICAgICB0aGlzLnByb2plY3QgPSBwTG9hZGVyLnJlc3BvbnNlLnByb2plY3Q7XHJcblxyXG4gICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcExvYWRlci5vbmVycm9yID0gKGUpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyBwcm9qZWN0IGRhdGEgLi4uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwTG9hZGVyLnNlbmQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCl7XHJcbiAgICB9XHJcblxyXG4gIGF1ZGlvUGxheWVyVXBkYXRlKGU6QXVkaW9QbGF5ZXJFdmVudCl7XHJcbiAgICBpZihQbGF5YmFja0V2ZW50VHlwZS5TVEFSVEVEPT09ZS50eXBlKXtcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2luZm8nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2suLi4nO1xyXG4gICAgfSBlbHNlIGlmIChQbGF5YmFja0V2ZW50VHlwZS5FTkRFRCA9PT0gZS50eXBlKSB7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNNc2c9J1JlYWR5Lic7XHJcbiAgICB9ZWxzZSBpZihQbGF5YmFja0V2ZW50VHlwZS5FUlJPUj09PSBlLnR5cGUpe1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZT0nZXJyb3InO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2sgZXJyb3IuJztcclxuICAgIH1cclxuICB9XHJcblx0XHRlcnJvcigpe1xyXG5cdFx0ICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdlcnJvcic7XHJcblx0XHRcdHRoaXMuc20uc3RhdHVzTXNnPSdFUlJPUjogUmVjb3JkaW5nLic7XHJcblx0XHR9XHJcblx0fVxyXG4iXX0=
|
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFBO0FBQzVGLE9BQU8sRUFDa0MsU0FBUyxJQUFJLGlCQUFpQixFQUNyRSxXQUFXLEVBQ1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBSXhFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBVyxXQUFXLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUt4RixPQUFPLEVBQUMsTUFBTSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFFakMsTUFBTSxDQUFOLElBQVksSUFBMEI7QUFBdEMsV0FBWSxJQUFJO0lBQUUsbURBQWMsQ0FBQTtJQUFDLCtCQUFJLENBQUE7QUFBQSxDQUFDLEVBQTFCLElBQUksS0FBSixJQUFJLFFBQXNCO0FBa0J0QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsaUJBQWlCO0lBWTlELFlBQW9CLEtBQXFCLEVBQ2YsTUFBYyxFQUNsQixpQkFBb0MsRUFDcEMsZUFBOEIsRUFDOUIsY0FBNkIsRUFDN0IsYUFBMkIsRUFDM0IsZUFBZ0Ms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Qzs7dUhBdllVLHlCQUF5QjsyR0FBekIseUJBQXlCLDZDQWJ6QixDQUFDLGNBQWMsQ0FBQyw4REF1QmhCLGNBQWMscUZBdEJmOztHQUVUOzRGQVVVLHlCQUF5QjtrQkFoQnJDLFNBQVM7K0JBRUUsb0JBQW9CLGFBQ25CLENBQUMsY0FBYyxDQUFDLFlBQ2pCOztHQUVUO29UQW9CNEMsRUFBRTtzQkFBOUMsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBBdWRpb1BsYXllckxpc3RlbmVyLCBBdWRpb1BsYXllckV2ZW50LCBFdmVudFR5cGUgYXMgUGxheWJhY2tFdmVudFR5cGUsXHJcbiAgQXVkaW9QbGF5ZXJcclxufSBmcm9tICcuL2F1ZGlvL3BsYXliYWNrL3BsYXllcic7XHJcbmltcG9ydCB7R3JvdXAsIFByb21wdEl0ZW0sIFNjcmlwdH0gZnJvbSAnLi9zcGVlY2hyZWNvcmRlci9zY3JpcHQvc2NyaXB0J1xyXG5pbXBvcnQgeyBTZXNzaW9uTWFuYWdlcixTdGF0dXMgYXMgU2Vzc2lvbk1hbmFnZXJTdGF0dXN9IGZyb20gJy4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9ubWFuYWdlcic7XHJcbmltcG9ydCB7IFVwbG9hZGVyU3RhdHVzQ2hhbmdlRXZlbnQsIFVwbG9hZGVyU3RhdHVzIH0gZnJvbSAnLi9uZXQvdXBsb2FkZXInO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1NjcmlwdFNlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NjcmlwdC9zY3JpcHQuc2VydmljZVwiO1xyXG5pbXBvcnQge1NwZWVjaFJlY29yZGVyVXBsb2FkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NwcnVwbG9hZGVyXCI7XHJcbmltcG9ydCB7U2Vzc2lvbn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uXCI7XHJcbmltcG9ydCB7QXVkaW9TdG9yYWdlVHlwZSwgUHJvamVjdCwgUHJvamVjdFV0aWx9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Byb2plY3QvcHJvamVjdFwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3Quc2VydmljZVwiO1xyXG5pbXBvcnQge0F1ZGlvQ29udGV4dFByb3ZpZGVyfSBmcm9tIFwiLi9hdWRpby9jb250ZXh0XCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvcmVjb3JkaW5ncy9yZWNvcmRpbmdzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlRGVzY3JpcHRvckltcGx9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge0FycmF5cywgRGF0YVNpemV9IGZyb20gXCIuL3V0aWxzL3V0aWxzXCI7XHJcbmltcG9ydCB7UmVjb3JkZXJDb21wb25lbnR9IGZyb20gXCIuL3JlY29yZGVyX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2ljUmVjb3JkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vYmFzaWNyZWNvcmRlclwiO1xyXG5pbXBvcnQge1NwckRifSBmcm9tIFwiLi9kYi9pbmRkYlwiO1xyXG5cclxuZXhwb3J0IGVudW0gTW9kZSB7U0lOR0xFX1NFU1NJT04sREVNT31cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcGVlY2hyZWNvcmRlcicsXHJcbiAgcHJvdmlkZXJzOiBbU2Vzc2lvblNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnJlY29yZGluZ3Nlc3Npb24gW3Byb2plY3ROYW1lXT1cInByb2plY3Q/Lm5hbWVcIiBbZGF0YVNhdmVkXT1cImRhdGFTYXZlZFwiPjwvYXBwLXNwcnJlY29yZGluZ3Nlc3Npb24+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3R7XHJcbiAgICBmbGV4OiAyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OjA7XHJcblxyXG4gIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgZXh0ZW5kcyBSZWNvcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0LEF1ZGlvUGxheWVyTGlzdGVuZXIge1xyXG5cclxuICBtb2RlITpNb2RlO1xyXG4gIGNvbnRyb2xBdWRpb1BsYXllcjpBdWRpb1BsYXllcnxudWxsPW51bGw7XHJcbiAgYXVkaW86YW55O1xyXG4gIF9wcm9qZWN0OlByb2plY3R8bnVsbD1udWxsO1xyXG4gIHNlc3Npb25JZCE6IHN0cmluZztcclxuICBzZXNzaW9uITpTZXNzaW9uO1xyXG4gIHNjcmlwdCE6U2NyaXB0O1xyXG5cclxuICBAVmlld0NoaWxkKFNlc3Npb25NYW5hZ2VyLCB7IHN0YXRpYzogdHJ1ZSB9KSBzbSE6U2Vzc2lvbk1hbmFnZXI7XHJcblxyXG5cdFx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzZXNzaW9uc1NlcnZpY2U6U2Vzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHByb2plY3RTZXJ2aWNlOlByb2plY3RTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzY3JpcHRTZXJ2aWNlOlNjcmlwdFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJlY0ZpbGVzU2VydmljZTpSZWNvcmRpbmdTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHVwbG9hZGVyOlNwZWVjaFJlY29yZGVyVXBsb2FkZXIpIHtcclxuICAgICAgc3VwZXIodXBsb2FkZXIpO1xyXG5cdFx0fVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycjphbnkpe1xyXG4gICAgICBsZXQgZXJyTXNnPSdVbmtub3duIGVycm9yJztcclxuICAgICAgaWYoZXJyIGluc3RhbmNlb2YgRXJyb3Ipe1xyXG4gICAgICAgIGVyck1zZz1lcnIubWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz1lcnJNc2c7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdlcnJvcic7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyTXNnKVxyXG4gICAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbEF1ZGlvUGxheWVyID0gbmV3IEF1ZGlvUGxheWVyKCB0aGlzKTtcclxuICAgICAgdGhpcy5zbS5jb250cm9sQXVkaW9QbGF5ZXI9dGhpcy5jb250cm9sQXVkaW9QbGF5ZXI7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUGxheWVyIGluaXRpYWxpemVkLic7XHJcblxyXG4gIH1cclxuICAgICAgIG5nQWZ0ZXJWaWV3SW5pdCgpe1xyXG4gICAgICAgIC8vIGxldCB3YWtlTG9ja1N1cHA9KCd3YWtlTG9jaycgaW4gbmF2aWdhdG9yKTtcclxuICAgICAgICAvLyBhbGVydCgnV2FrZSBsb2NrIEFQSSBzdXBwb3J0ZWQ6ICcrd2FrZUxvY2tTdXBwKTtcclxuICAgICAgICAgICBpZiAodGhpcy5zbS5zdGF0dXMgIT09IFNlc3Npb25NYW5hZ2VyU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgICAgICBsZXQgaW5pdFN1Y2Nlc3MgPSB0aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgIGlmIChpbml0U3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgICAgICBpZiAocGFyYW1zWydzZXNzaW9uSWQnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNlc3Npb24ocGFyYW1zWydzZXNzaW9uSWQnXSk7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgICAgICBsZXQgcm91dGVQYXJhbXNJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgICAgICAgICAgICAgICBpZiAocm91dGVQYXJhbXNJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNlc3Npb24ocm91dGVQYXJhbXNJZCk7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZldGNoU2Vzc2lvbihzZXNzaW9uSWQ6c3RyaW5nKXtcclxuXHJcbiAgICAgIGxldCBzZXNzT2JzPSB0aGlzLnNlc3Npb25zU2VydmljZS5zZXNzaW9uT2JzZXJ2ZXIoc2Vzc2lvbklkKTtcclxuXHJcbiAgICAgIGlmKHNlc3NPYnMpIHtcclxuICAgICAgICBzZXNzT2JzLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiBzZXNzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTZXNzaW9uKHNlc3MpO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUmVjZWl2ZWQgc2Vzc2lvbiBpbmZvLic7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoc2Vzcy5wcm9qZWN0KSB7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBhc3NvY2lhdGVkIHByb2plY3Q6IFwiK3Nlc3MucHJvamVjdClcclxuICAgICAgICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3RPYnNlcnZhYmxlKHNlc3MucHJvamVjdCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHByb2plY3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2plY3QgPSBwcm9qZWN0O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgcGVyc2lzdGVudEF1ZGlTdG9yYWdlPShBdWRpb1N0b3JhZ2VUeXBlLkRCX0NIVU5LRUQ9PT1wcm9qZWN0LmNsaWVudEF1ZGlvU3RvcmFnZVR5cGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3VwZXIucHJlcGFyZShwZXJzaXN0ZW50QXVkaVN0b3JhZ2UpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbS5wZXJzaXN0ZW50QXVkaW9TdG9yYWdlVGFyZ2V0ID0gdGhpcy5fcGVyc2lzdGVudEF1ZGlvU3RvcmFnZVRhcmdldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoU2NyaXB0KHNlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICB9LCBlcnJvcjogKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gcmVhc29uO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2Vycm9yJztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgcHJvamVjdCBjb25maWc6IFwiICsgcmVhc29uKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5pbmZvKFwiU2Vzc2lvbiBoYXMgbm8gYXNzb2NpYXRlZCBwcm9qZWN0LiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaFNjcmlwdChzZXNzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOihyZWFzb24pID0+XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gcmVhc29uO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgc2Vzc2lvbiBcIiArIHJlYXNvbilcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBmZXRjaFNjcmlwdChzZXNzOiBTZXNzaW9uKSB7XHJcbiAgICBpZiAoc2Vzcy5zY3JpcHQpIHtcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ0ZldGNoaW5nIHJlY29yZGluZyBzY3JpcHQuLi4nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNjcmlwdFNlcnZpY2Uuc2NyaXB0T2JzZXJ2YWJsZShzZXNzLnNjcmlwdCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoc2NyaXB0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ1JlY2VpdmVkIHJlY29yZGluZyBzY3JpcHQuJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zZXRTY3JpcHQoc2NyaXB0KVxyXG4gICAgICAgICAgdGhpcy5zbS5zZXNzaW9uID0gc2VzcztcclxuICAgICAgICAgIHRoaXMuZmV0Y2hSZWNvcmRpbmdzKHNlc3MsIHRoaXMuc2NyaXB0KVxyXG4gICAgICAgIH0sIGVycm9yOiAocmVhc29uKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyTXNnID0gXCJFcnJvciBmZXRjaGluZyByZWNvcmRpbmcgc2NyaXB0OiBcIiArIHJlYXNvblxyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJNc2cpXHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IGVyck1zZztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2Vycm9yJztcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZXJyTXNnID0gXCJObyByZWNvcmRpbmcgc2NyaXB0IGlzIGRlZmluZWQgZm9yIHRoaXMgc2Vzc2lvbiB3aXRoIElEIFwiICsgc2Vzcy5zZXNzaW9uSWQ7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5zbS5zdGF0dXNNc2cpXHJcbiAgICAgIHRoaXMuc20uc3RhdHVzTXNnID0gZXJyTXNnO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hSZWNvcmRpbmdzKHNlc3M6IFNlc3Npb24sIHNjcmlwdDogU2NyaXB0KSB7XHJcbiAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdpbmZvJztcclxuICAgIHRoaXMuc20uc3RhdHVzTXNnID0gJ0ZldGNoaW5nIGluZm9zIG9mIHJlY29yZGluZ3MuLi4nO1xyXG4gICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gdHJ1ZTtcclxuICAgIGxldCBwck5tOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIGlmICh0aGlzLnByb2plY3QpIHtcclxuICAgICAgbGV0IHJmc09icyA9IHRoaXMucmVjRmlsZXNTZXJ2aWNlLnJlY29yZGluZ0ZpbGVEZXNjckxpc3QodGhpcy5wcm9qZWN0Lm5hbWUsIHNlc3Muc2Vzc2lvbklkKTtcclxuICAgICAgcmZzT2JzLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJmczogQXJyYXk8UmVjb3JkaW5nRmlsZURlc2NyaXB0b3JJbXBsPikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCBpbmZvcyBvZiByZWNvcmRpbmdzLic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZnMpIHtcclxuICAgICAgICAgICAgaWYgKHJmcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgICAgcmZzLmZvckVhY2goKHJmKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQWxyZWFkeSByZWNvcmRlZDogXCIgKyByZisgXCIgXCIrcmYucmVjb3JkaW5nLml0ZW1jb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc20uYWRkUmVjb3JkaW5nRmlsZUJ5RGVzY3JpcHRvcihyZik7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFeHBlY3RlZCB0eXBlIGFycmF5IGZvciBsaXN0IG9mIGFscmVhZHkgcmVjb3JkZWQgZmlsZXMgJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjb3JkaW5nIGZpbGUgbGlzdDogXCIgKyByZnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAvLyB3ZSBzdGFydCB0aGUgc2Vzc2lvbiBhbnl3YXlcclxuICAgICAgICAgIHRoaXMuc3RhcnRTZXNzaW9uKClcclxuICAgICAgICB9LCBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFNlc3Npb24oKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRPRE9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzY3JlZW5Mb2NrZWQoKTpib29sZWFue1xyXG4gICAgICByZXR1cm4gIHRoaXMuc20uc2NyZWVuTG9ja2VkO1xyXG4gIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0U2Vzc2lvbigpe1xyXG4gICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZz1mYWxzZTtcclxuXHRcdCAgdGhpcy5zbS5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgICAgc2V0U2Vzc2lvbihzZXNzaW9uOmFueSl7XHJcblx0XHQgICAgaWYoc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBJRDogXCIgKyBzZXNzaW9uLnNlc3Npb25JZCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBVbmRlZmluZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWR5KCk6Ym9vbGVhbntcclxuXHRcdCAgICByZXR1cm4gdGhpcy5kYXRhU2F2ZWQgJiYgIXRoaXMuc20uaXNBY3RpdmUoKVxyXG4gICAgICAgIH1cclxuXHJcblx0XHRpbml0KCk6Ym9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBEdXBsaWNhdGUgY29kZSBpbiBBdWRpb1JlY29yZGVyQ29tcG9uZW50XHJcbiAgICAgICAgdGhpcy51cGxvYWRlci5saXN0ZW5lciA9ICh1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRVcGRhdGUodWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKGUpID0+IHtcclxuICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkJlZm9yZSBwYWdlIHVubG9hZCBldmVudFwiKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5yZWFkeSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGFsbCB0aGlzIGF0dGVtcHRzIHRvIGN1c3RvbWl6ZSB0aGUgbWVzc2FnZSBkbyBub3Qgd29yayBhbnltb3JlIChmb3Igc2VjdXJpdHkgcmVhc29ucykhIVxyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJQbGVhc2UgZG8gbm90IGxlYXZlIHRoZSBwYWdlLCB1bnRpbCBhbGwgcmVjb3JkaW5ncyBhcmUgdXBsb2FkZWQhXCI7XHJcbiAgICAgICAgICAgIGFsZXJ0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgICAgIGUucmV0dXJuVmFsdWUgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgIGUuY2FuY2VsQnViYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gIHVwbG9hZFVwZGF0ZSh1ZTogVXBsb2FkZXJTdGF0dXNDaGFuZ2VFdmVudCkge1xyXG4gICAgbGV0IHVwU3RhdHVzID0gdWUuc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhU2F2ZWQgPSAoVXBsb2FkZXJTdGF0dXMuRE9ORSA9PT0gdXBTdGF0dXMpO1xyXG4gICAgbGV0IHBlcmNlbnRVcGwgPSB1ZS5wZXJjZW50RG9uZSgpO1xyXG4gICAgbGV0IHNpemVJblF1ZXVlPXVlLnNpemVJblF1ZXVlKCk7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJVcGxvYWRlcjogc3RhdHVzOiBcIit1cFN0YXR1cytcIiwgXCIrcGVyY2VudFVwbCtcIiUsIEJ5dGVzIGluIHF1ZXVlOiBcIitzaXplSW5RdWV1ZSsnICgnK0RhdGFTaXplLmZvcm1hdEJ5dGVzVG9CaW5hcnlVbml0cyhzaXplSW5RdWV1ZSkrJyknKTtcclxuICAgIGlmIChVcGxvYWRlclN0YXR1cy5FUlIgPT09IHVwU3RhdHVzKSB7XHJcbiAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ3dhcm4nXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocGVyY2VudFVwbCA8IDUwKSB7XHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRTdGF0dXMgPSAnYWNjZW50J1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ3N1Y2Nlc3MnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zbS51cGxvYWRQcm9ncmVzcyA9IHBlcmNlbnRVcGw7XHJcbiAgICB9XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJVcGxvYWQgdXBkYXRlLCB1cGRhdGUgd2FrZSBsb2NrLlwiKVxyXG4gICAgdGhpcy5zbS51cGRhdGVXYWtlTG9jayh0aGlzLmRhdGFTYXZlZCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlKCkge1xyXG5cclxuICAgICAgdGhpcy5sb2FkUHJvamVjdENmZygoKSA9PiB7XHJcbiAgICAgICAgLy8gZGlzcGxheSBwcm9qZWN0IG5hbWVcclxuICAgICAgICBsZXQgcHJOYW1lOiBzdHJpbmcgPSAnW1Vua25vd25dJztcclxuICAgICAgICBpZiAodGhpcy5wcm9qZWN0ICYmIHRoaXMucHJvamVjdC5uYW1lKSB7XHJcbiAgICAgICAgICBwck5hbWUgPSB0aGlzLnByb2plY3QubmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy90aGlzLnRpdGxlRWwuaW5uZXJUZXh0ID0gcHJOYW1lO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmFuZG9taXplKHNjcmlwdDpTY3JpcHQpe1xyXG5cdFx0ICAgIHNjcmlwdC5zZWN0aW9ucy5mb3JFYWNoKChzKT0+e1xyXG5cdFx0ICAgICAgICBpZignUkFORE9NJz09PXMub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzLl9zaHVmZmxlZEdyb3VwcyA9IEFycmF5cy5zaHVmZmxlQXJyYXk8R3JvdXA+KHMuZ3JvdXBzKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG5cdFx0ICAgICAgICAgICAgcy5fc2h1ZmZsZWRHcm91cHM9cy5ncm91cHM7XHJcbiAgICAgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgIHMuX3NodWZmbGVkR3JvdXBzLmZvckVhY2goKGcpPT57XHJcblx0XHQgICAgICAgICAgICBpZignUkFORE9NJz09PWcub3JkZXIpe1xyXG5cdFx0ICAgICAgICAgICAgICAgZy5fc2h1ZmZsZWRQcm9tcHRJdGVtcz1BcnJheXMuc2h1ZmZsZUFycmF5PFByb21wdEl0ZW0+KGcucHJvbXB0SXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG5cdFx0ICAgICAgICAgICAgICAgIGcuX3NodWZmbGVkUHJvbXB0SXRlbXM9Zy5wcm9tcHRJdGVtcztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2NyaXB0KHNjcmlwdDpTY3JpcHQpe1xyXG4gICAgICAgIHRoaXMuc2NyaXB0PXNjcmlwdDtcclxuICAgICAgICB0aGlzLnJhbmRvbWl6ZSh0aGlzLnNjcmlwdCk7XHJcbiAgICAgICAgdGhpcy5zbS5zY3JpcHQgPSB0aGlzLnNjcmlwdDtcclxuICAgIH1cclxuXHJcblxyXG4gIHNldCBwcm9qZWN0KHByb2plY3Q6IFByb2plY3R8bnVsbCkge1xyXG4gICAgdGhpcy5fcHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICBsZXQgY2hDbnQgPSBQcm9qZWN0VXRpbC5ERUZBVUxUX0FVRElPX0NIQU5ORUxfQ09VTlQ7XHJcblxyXG4gICAgaWYgKHByb2plY3QpIHtcclxuICAgICAgY29uc29sZS5pbmZvKFwiUHJvamVjdCBuYW1lOiBcIiArIHByb2plY3QubmFtZSlcclxuICAgICAgaWYocHJvamVjdC5yZWNvcmRpbmdEZXZpY2VXYWtlTG9jaz09PXRydWUpe1xyXG4gICAgICAgIHRoaXMuc20ud2FrZUxvY2s9dHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmluZm8oXCJBdWRpbyBzdG9yYWdlIHR5cGU6IFwiK3Byb2plY3QuY2xpZW50QXVkaW9TdG9yYWdlVHlwZSk7XHJcbiAgICAgIGlmKEF1ZGlvU3RvcmFnZVR5cGUuREJfQ0hVTktFRD09PXByb2plY3QuY2xpZW50QXVkaW9TdG9yYWdlVHlwZSl7XHJcbiAgICAgICAgU3ByRGIucHJlcGFyZSgpLnN1YnNjcmliZSgpXHJcbiAgICAgIH1cclxuICAgICAgaWYocHJvamVjdC5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5zbS5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlID0gcHJvamVjdC5jbGllbnRBdWRpb1N0b3JhZ2VUeXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNtLmF1ZGlvRGV2aWNlcyA9IHByb2plY3QuYXVkaW9EZXZpY2VzO1xyXG4gICAgICBjaENudCA9IFByb2plY3RVdGlsLmF1ZGlvQ2hhbm5lbENvdW50KHByb2plY3QpO1xyXG4gICAgICBjb25zb2xlLmluZm8oXCJQcm9qZWN0IHJlcXVlc3RlZCByZWNvcmRpbmcgY2hhbm5lbCBjb3VudDogXCIgKyBjaENudCk7XHJcbiAgICAgIHRoaXMuc20uYXV0b0dhaW5Db250cm9sQ29uZmlncz1wcm9qZWN0LmF1dG9HYWluQ29udHJvbENvbmZpZ3M7XHJcbiAgICAgIGlmKHByb2plY3QuYWxsb3dFY2hvQ2FuY2VsbGF0aW9uIT09dW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5zbS5hbGxvd0VjaG9DYW5jZWxsYXRpb24gPSBwcm9qZWN0LmFsbG93RWNob0NhbmNlbGxhdGlvbjtcclxuICAgICAgfVxyXG4gICAgICBpZihwcm9qZWN0LmNodW5rZWRSZWNvcmRpbmc9PT10cnVlKXtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiRW5hYmxlIGNodW5rZWQgdXBsb2FkOiBjaHVua1NpemU6IFwiK0Jhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFMpXHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRDaHVua1NpemVTZWNvbmRzPUJhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkQ2h1bmtTaXplU2Vjb25kcz1udWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2plY3Quc2hvd1Nlc3Npb25Db21wbGV0ZU1lc3NhZ2UhPW51bGwpe1xyXG4gICAgICAgIHRoaXMuc20uc2hvd1Nlc3Npb25Db21wbGV0ZU1lc3NhZ2U9cHJvamVjdC5zaG93U2Vzc2lvbkNvbXBsZXRlTWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkVtcHR5IHByb2plY3QgY29uZmlndXJhdGlvbiFcIilcclxuICAgIH1cclxuICAgIHRoaXMuc20uY2hhbm5lbENvdW50ID0gY2hDbnQ7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IHByb2plY3QoKTpQcm9qZWN0fG51bGx7XHJcblx0XHQgIHJldHVybiB0aGlzLl9wcm9qZWN0O1xyXG4gIH1cclxuXHJcbiAgICBsb2FkUHJvamVjdENmZyhjYWxsYmFjazogKCk9PiBhbnkpe1xyXG4gICAgICBsZXQgcHJvalVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZXNzaW9uSWQgPT09IG51bGwpIHtcclxuICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSAnbG9jYWxob3N0JyB8fCB0aGlzLm1vZGUgPT09IE1vZGUuREVNTykge1xyXG4gICAgICAgICAgLy8gZGVidWcgb3IgZGVtbyBtb2RlXHJcbiAgICAgICAgICBwcm9qVXJsID0gJ3Rlc3QvRGVtbzEuanNvbj8nICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGxvYWQgUkVTVGZ1bCBieSBzZXNzaW9uSWRcclxuICAgICAgICBwcm9qVXJsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICc6JyArIHdpbmRvdy5sb2NhdGlvbi5wb3J0ICsgJy93aWtpc3BlZWNoL3Jlc3QvcHJvamVjdHMvP3Nlc3Npb25JZD0nICsgdGhpcy5zZXNzaW9uSWQ7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2pVcmwpIHtcclxuICAgICAgICBjb25zdCBwTG9hZGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgcExvYWRlci5vcGVuKFwiR0VUXCIsIHByb2pVcmwsIHRydWUpO1xyXG4gICAgICAgIHBMb2FkZXIuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICBwTG9hZGVyLnJlc3BvbnNlVHlwZSA9IFwianNvblwiO1xyXG4gICAgICAgIHBMb2FkZXIub25sb2FkID0gKGUpID0+IHtcclxuXHJcbiAgICAgICAgICB0aGlzLnByb2plY3QgPSBwTG9hZGVyLnJlc3BvbnNlLnByb2plY3Q7XHJcblxyXG4gICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcExvYWRlci5vbmVycm9yID0gKGUpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyBwcm9qZWN0IGRhdGEgLi4uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwTG9hZGVyLnNlbmQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCl7XHJcbiAgICB9XHJcblxyXG4gIGF1ZGlvUGxheWVyVXBkYXRlKGU6QXVkaW9QbGF5ZXJFdmVudCl7XHJcbiAgICBpZihQbGF5YmFja0V2ZW50VHlwZS5TVEFSVEVEPT09ZS50eXBlKXtcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2luZm8nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2suLi4nO1xyXG4gICAgfSBlbHNlIGlmIChQbGF5YmFja0V2ZW50VHlwZS5FTkRFRCA9PT0gZS50eXBlKSB7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNNc2c9J1JlYWR5Lic7XHJcbiAgICB9ZWxzZSBpZihQbGF5YmFja0V2ZW50VHlwZS5FUlJPUj09PSBlLnR5cGUpe1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZT0nZXJyb3InO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2sgZXJyb3IuJztcclxuICAgIH1cclxuICB9XHJcblx0XHRlcnJvcigpe1xyXG5cdFx0ICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdlcnJvcic7XHJcblx0XHRcdHRoaXMuc20uc3RhdHVzTXNnPSdFUlJPUjogUmVjb3JkaW5nLic7XHJcblx0XHR9XHJcblx0fVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.6.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = '3.6.1';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzMuNi4xJyJdfQ==
|
|
@@ -10851,6 +10851,7 @@ class TransportActions {
|
|
|
10851
10851
|
this.fwdNextAction = new Action('Next recording');
|
|
10852
10852
|
this.fwdAction = new Action('Forward');
|
|
10853
10853
|
this.bwdAction = new Action('Backward');
|
|
10854
|
+
this.stopNonrecordingAction = new Action('Next');
|
|
10854
10855
|
}
|
|
10855
10856
|
}
|
|
10856
10857
|
class TransportPanel extends ResponsiveComponent {
|
|
@@ -10868,6 +10869,9 @@ class TransportPanel extends ResponsiveComponent {
|
|
|
10868
10869
|
nextDisabled() {
|
|
10869
10870
|
return !this.actions || this.actions.nextAction.disabled || !this.navigationEnabled;
|
|
10870
10871
|
}
|
|
10872
|
+
stopNonrecordingDisabled() {
|
|
10873
|
+
return !this.actions || this.actions.stopNonrecordingAction.disabled || !this.navigationEnabled;
|
|
10874
|
+
}
|
|
10871
10875
|
pauseDisabled() {
|
|
10872
10876
|
return !this.actions || this.actions.pauseAction.disabled || !this.pausingEnabled;
|
|
10873
10877
|
}
|
|
@@ -10881,7 +10885,7 @@ class TransportPanel extends ResponsiveComponent {
|
|
|
10881
10885
|
return !this.actions || this.actions.bwdAction.disabled || !this.navigationEnabled;
|
|
10882
10886
|
}
|
|
10883
10887
|
startStopNextName() {
|
|
10884
|
-
if (!this.nextDisabled()) {
|
|
10888
|
+
if (!this.nextDisabled() || !this.stopNonrecordingDisabled()) {
|
|
10885
10889
|
this.startStopNextButtonName = "Next";
|
|
10886
10890
|
}
|
|
10887
10891
|
else if (!this.startDisabled()) {
|
|
@@ -10896,7 +10900,7 @@ class TransportPanel extends ResponsiveComponent {
|
|
|
10896
10900
|
if (!this.startDisabled()) {
|
|
10897
10901
|
this.startStopNextButtonIconName = "fiber_manual_record";
|
|
10898
10902
|
}
|
|
10899
|
-
else if (!this.stopDisabled()) {
|
|
10903
|
+
else if (!this.stopDisabled() || !this.stopNonrecordingDisabled()) {
|
|
10900
10904
|
this.startStopNextButtonIconName = "stop";
|
|
10901
10905
|
}
|
|
10902
10906
|
else if (!this.nextDisabled()) {
|
|
@@ -10925,6 +10929,9 @@ class TransportPanel extends ResponsiveComponent {
|
|
|
10925
10929
|
else if (!this.nextDisabled()) {
|
|
10926
10930
|
this.actions.nextAction.perform();
|
|
10927
10931
|
}
|
|
10932
|
+
else if (!this.stopNonrecordingDisabled()) {
|
|
10933
|
+
this.actions.stopNonrecordingAction.perform();
|
|
10934
|
+
}
|
|
10928
10935
|
}
|
|
10929
10936
|
}
|
|
10930
10937
|
TransportPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TransportPanel, deps: [{ token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -10933,8 +10940,8 @@ TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
10933
10940
|
mat-raised-button>
|
|
10934
10941
|
<mat-icon>chevron_left</mat-icon>
|
|
10935
10942
|
</button>
|
|
10936
|
-
<button (click)="startStopNextPerform()" [disabled]="startDisabled() && stopDisabled() && nextDisabled()" mat-raised-button>
|
|
10937
|
-
<mat-icon [style.color]="startStopNextIconColor()">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf="!nextDisabled()" [style.color]="nextDisabled() ? 'grey' : 'black'">chevron_right</mat-icon>
|
|
10943
|
+
<button (click)="startStopNextPerform()" [disabled]="startDisabled() && stopDisabled() && nextDisabled() && stopNonrecordingDisabled()" mat-raised-button>
|
|
10944
|
+
<mat-icon [style.color]="startStopNextIconColor()">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf="!nextDisabled() || !stopNonrecordingDisabled()" [style.color]="nextDisabled() ? 'grey' : 'black'">chevron_right</mat-icon>
|
|
10938
10945
|
<span *ngIf="!screenXs">{{startStopNextName()}}</span>
|
|
10939
10946
|
</button>
|
|
10940
10947
|
<button *ngIf="pausingEnabled" (click)="actions.pauseAction.perform()" [disabled]="pauseDisabled()" mat-raised-button>
|
|
@@ -10956,8 +10963,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
10956
10963
|
mat-raised-button>
|
|
10957
10964
|
<mat-icon>chevron_left</mat-icon>
|
|
10958
10965
|
</button>
|
|
10959
|
-
<button (click)="startStopNextPerform()" [disabled]="startDisabled() && stopDisabled() && nextDisabled()" mat-raised-button>
|
|
10960
|
-
<mat-icon [style.color]="startStopNextIconColor()">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf="!nextDisabled()" [style.color]="nextDisabled() ? 'grey' : 'black'">chevron_right</mat-icon>
|
|
10966
|
+
<button (click)="startStopNextPerform()" [disabled]="startDisabled() && stopDisabled() && nextDisabled() && stopNonrecordingDisabled()" mat-raised-button>
|
|
10967
|
+
<mat-icon [style.color]="startStopNextIconColor()">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf="!nextDisabled() || !stopNonrecordingDisabled()" [style.color]="nextDisabled() ? 'grey' : 'black'">chevron_right</mat-icon>
|
|
10961
10968
|
<span *ngIf="!screenXs">{{startStopNextName()}}</span>
|
|
10962
10969
|
</button>
|
|
10963
10970
|
<button *ngIf="pausingEnabled" (click)="actions.pauseAction.perform()" [disabled]="pauseDisabled()" mat-raised-button>
|
|
@@ -13012,6 +13019,9 @@ class SessionManager extends BasicRecorder {
|
|
|
13012
13019
|
this.postDelay = DEFAULT_POST_REC_DELAY;
|
|
13013
13020
|
this.postRecTimerId = null;
|
|
13014
13021
|
this.postRecTimerRunning = null;
|
|
13022
|
+
//private maxRecTimerRunning: boolean|null=null;
|
|
13023
|
+
this.nonRecordingDurationTimerId = null;
|
|
13024
|
+
this.nonRecordingDurationTimerRunning = false;
|
|
13015
13025
|
this._promptIndex = 0;
|
|
13016
13026
|
this.items = null;
|
|
13017
13027
|
//selectedItemIdx: number;
|
|
@@ -13057,6 +13067,7 @@ class SessionManager extends BasicRecorder {
|
|
|
13057
13067
|
this.transportActions.startAction.disabled = true;
|
|
13058
13068
|
this.transportActions.stopAction.disabled = true;
|
|
13059
13069
|
this.transportActions.nextAction.disabled = true;
|
|
13070
|
+
this.transportActions.stopNonrecordingAction.disabled = true;
|
|
13060
13071
|
this.transportActions.pauseAction.disabled = true;
|
|
13061
13072
|
this.playStartAction.disabled = true;
|
|
13062
13073
|
// let context:AudioContext|null=null;
|
|
@@ -13127,6 +13138,7 @@ class SessionManager extends BasicRecorder {
|
|
|
13127
13138
|
this.transportActions.nextAction.onAction = () => this.stopItem();
|
|
13128
13139
|
this.transportActions.pauseAction.onAction = () => this.pauseItem();
|
|
13129
13140
|
this.transportActions.fwdAction.onAction = () => this.nextItem();
|
|
13141
|
+
this.transportActions.stopNonrecordingAction.onAction = () => this.stopNonrecording();
|
|
13130
13142
|
this.transportActions.fwdNextAction.onAction = () => this.nextUnrecordedItem();
|
|
13131
13143
|
this.transportActions.bwdAction.onAction = () => this.prevItem();
|
|
13132
13144
|
this.playStartAction.onAction = () => { var _a; return (_a = this.controlAudioPlayer) === null || _a === void 0 ? void 0 : _a.start(); };
|
|
@@ -13136,6 +13148,7 @@ class SessionManager extends BasicRecorder {
|
|
|
13136
13148
|
if (ke.key == ' ') {
|
|
13137
13149
|
this.transportActions.startAction.perform();
|
|
13138
13150
|
this.transportActions.nextAction.perform();
|
|
13151
|
+
this.transportActions.stopNonrecordingAction.perform();
|
|
13139
13152
|
}
|
|
13140
13153
|
}
|
|
13141
13154
|
onKeyDown(ke) {
|
|
@@ -13276,27 +13289,63 @@ class SessionManager extends BasicRecorder {
|
|
|
13276
13289
|
this.maxRecTimerRunning = false;
|
|
13277
13290
|
}
|
|
13278
13291
|
}
|
|
13279
|
-
|
|
13280
|
-
this.
|
|
13281
|
-
|
|
13282
|
-
|
|
13283
|
-
|
|
13284
|
-
|
|
13292
|
+
clearNonRecordingDurationTimer() {
|
|
13293
|
+
if (this.nonRecordingDurationTimerRunning) {
|
|
13294
|
+
if (this.nonRecordingDurationTimerId) {
|
|
13295
|
+
window.clearTimeout(this.nonRecordingDurationTimerId);
|
|
13296
|
+
}
|
|
13297
|
+
this.nonRecordingDurationTimerRunning = false;
|
|
13285
13298
|
}
|
|
13299
|
+
}
|
|
13300
|
+
startItem() {
|
|
13286
13301
|
this.transportActions.fwdAction.disabled = true;
|
|
13287
13302
|
this.transportActions.fwdNextAction.disabled = true;
|
|
13288
13303
|
this.transportActions.bwdAction.disabled = true;
|
|
13289
|
-
this.
|
|
13290
|
-
|
|
13291
|
-
|
|
13292
|
-
|
|
13293
|
-
|
|
13294
|
-
|
|
13295
|
-
|
|
13296
|
-
|
|
13297
|
-
this.
|
|
13304
|
+
const isNonrecording = (this.promptItem.type === 'nonrecording');
|
|
13305
|
+
if (isNonrecording) {
|
|
13306
|
+
this.status = 1 /* IDLE */;
|
|
13307
|
+
this.updateDisplayRecFile(null);
|
|
13308
|
+
this.displayRecFileVersion = 0;
|
|
13309
|
+
this.displayAudioClip = null;
|
|
13310
|
+
this.liveLevelDisplay.reset(true);
|
|
13311
|
+
// Hide loading hint on livelevel display
|
|
13312
|
+
this.liveLevelDisplayState = State.READY;
|
|
13313
|
+
this.showRecording();
|
|
13314
|
+
if (this.section.mode === 'AUTORECORDING') {
|
|
13315
|
+
this.autorecording = true;
|
|
13316
|
+
}
|
|
13317
|
+
const nrDuration = this.promptItem.duration;
|
|
13318
|
+
if (this.autorecording && nrDuration !== undefined) {
|
|
13319
|
+
this.nonRecordingDurationTimerId = window.setTimeout(() => {
|
|
13320
|
+
this.nonRecordingDurationTimerRunning = false;
|
|
13321
|
+
this.transportActions.stopNonrecordingAction.disabled = true;
|
|
13322
|
+
this.status = 7 /* STOPPING_STOP */;
|
|
13323
|
+
this.continueSession();
|
|
13324
|
+
}, nrDuration);
|
|
13325
|
+
this.nonRecordingDurationTimerRunning = true;
|
|
13326
|
+
}
|
|
13327
|
+
this.status = 9 /* NON_RECORDING_WAIT */;
|
|
13328
|
+
this.transportActions.stopNonrecordingAction.disabled = false;
|
|
13329
|
+
}
|
|
13330
|
+
else {
|
|
13331
|
+
this.status = 2 /* STARTING */;
|
|
13332
|
+
super.startItem();
|
|
13333
|
+
if (this.readonly) {
|
|
13334
|
+
this.status = 1 /* IDLE */;
|
|
13335
|
+
return;
|
|
13336
|
+
}
|
|
13337
|
+
this.updateDisplayRecFile(null);
|
|
13338
|
+
this.displayRecFileVersion = 0;
|
|
13339
|
+
this.displayAudioClip = null;
|
|
13340
|
+
this.liveLevelDisplay.reset(true);
|
|
13341
|
+
// Hide loading hint on livelevel display
|
|
13342
|
+
this.liveLevelDisplayState = State.READY;
|
|
13343
|
+
this.showRecording();
|
|
13344
|
+
if (this.section.mode === 'AUTORECORDING') {
|
|
13345
|
+
this.autorecording = true;
|
|
13346
|
+
}
|
|
13347
|
+
this.startCapture();
|
|
13298
13348
|
}
|
|
13299
|
-
this.startCapture();
|
|
13300
13349
|
}
|
|
13301
13350
|
loadScript() {
|
|
13302
13351
|
this.promptItemCount = 0;
|
|
@@ -13685,7 +13734,7 @@ class SessionManager extends BasicRecorder {
|
|
|
13685
13734
|
return (this.status === 3 /* PRE_RECORDING */ || this.status === 4 /* RECORDING */ || this.status === 5 /* POST_REC_STOP */ || this.status === 6 /* POST_REC_PAUSE */ || this.status === 7 /* STOPPING_STOP */);
|
|
13686
13735
|
}
|
|
13687
13736
|
isActive() {
|
|
13688
|
-
return (!(this.status === 0 /* BLOCKED */ || this.status === 1 /* IDLE */ || this.status ===
|
|
13737
|
+
return (!(this.status === 0 /* BLOCKED */ || this.status === 1 /* IDLE */ || this.status === 10 /* ERROR */) || this.processingRecording || this.sessionService.uploadCount > 0);
|
|
13689
13738
|
}
|
|
13690
13739
|
prevItem() {
|
|
13691
13740
|
let newPrIdx = this._promptIndex;
|
|
@@ -13836,6 +13885,7 @@ class SessionManager extends BasicRecorder {
|
|
|
13836
13885
|
this.startStopSignalState = 2 /* POSTRECORDING */;
|
|
13837
13886
|
this.transportActions.stopAction.disabled = true;
|
|
13838
13887
|
this.transportActions.nextAction.disabled = true;
|
|
13888
|
+
//this.transportActions.stopNonrecordingAction.disabled=true;
|
|
13839
13889
|
this.clearPreRecTimer();
|
|
13840
13890
|
this.postRecTimerId = window.setTimeout(() => {
|
|
13841
13891
|
this.postRecTimerRunning = false;
|
|
@@ -13844,12 +13894,19 @@ class SessionManager extends BasicRecorder {
|
|
|
13844
13894
|
}, this.postDelay);
|
|
13845
13895
|
this.postRecTimerRunning = true;
|
|
13846
13896
|
}
|
|
13897
|
+
stopNonrecording() {
|
|
13898
|
+
this.transportActions.stopNonrecordingAction.disabled = true;
|
|
13899
|
+
this.clearNonRecordingDurationTimer();
|
|
13900
|
+
this.status = 7 /* STOPPING_STOP */;
|
|
13901
|
+
this.continueSession();
|
|
13902
|
+
}
|
|
13847
13903
|
pauseItem() {
|
|
13848
13904
|
this.status = 6 /* POST_REC_PAUSE */;
|
|
13849
13905
|
this.transportActions.pauseAction.disabled = true;
|
|
13850
13906
|
this.startStopSignalState = 2 /* POSTRECORDING */;
|
|
13851
13907
|
this.transportActions.stopAction.disabled = true;
|
|
13852
13908
|
this.transportActions.nextAction.disabled = true;
|
|
13909
|
+
this.transportActions.stopNonrecordingAction.disabled = true;
|
|
13853
13910
|
this.transportActions.pauseAction.disabled = true;
|
|
13854
13911
|
this.clearPreRecTimer();
|
|
13855
13912
|
this.postRecTimerId = window.setTimeout(() => {
|
|
@@ -14052,6 +14109,9 @@ class SessionManager extends BasicRecorder {
|
|
|
14052
14109
|
}
|
|
14053
14110
|
}
|
|
14054
14111
|
}
|
|
14112
|
+
this.continueSession();
|
|
14113
|
+
}
|
|
14114
|
+
continueSession() {
|
|
14055
14115
|
// check complete session
|
|
14056
14116
|
let complete = true;
|
|
14057
14117
|
if (this.items) {
|
|
@@ -14110,7 +14170,7 @@ class SessionManager extends BasicRecorder {
|
|
|
14110
14170
|
this.changeDetectorRef.detectChanges();
|
|
14111
14171
|
}
|
|
14112
14172
|
error(msg = 'An unknown error occured during recording.', advice = 'Please retry.') {
|
|
14113
|
-
this.status =
|
|
14173
|
+
this.status = 10 /* ERROR */;
|
|
14114
14174
|
super.error(msg, advice);
|
|
14115
14175
|
this.updateNavigationActions();
|
|
14116
14176
|
this.updateStartActionDisableState();
|
|
@@ -14553,7 +14613,7 @@ class SpeechrecorderngComponent extends RecorderComponent {
|
|
|
14553
14613
|
ngAfterViewInit() {
|
|
14554
14614
|
// let wakeLockSupp=('wakeLock' in navigator);
|
|
14555
14615
|
// alert('Wake lock API supported: '+wakeLockSupp);
|
|
14556
|
-
if (this.sm.status !==
|
|
14616
|
+
if (this.sm.status !== 10 /* ERROR */) {
|
|
14557
14617
|
let initSuccess = this.init();
|
|
14558
14618
|
if (initSuccess) {
|
|
14559
14619
|
this.route.queryParams.subscribe((params) => {
|
|
@@ -17694,7 +17754,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
17694
17754
|
}]
|
|
17695
17755
|
}] });
|
|
17696
17756
|
|
|
17697
|
-
const VERSION = '3.6.
|
|
17757
|
+
const VERSION = '3.6.1';
|
|
17698
17758
|
|
|
17699
17759
|
/*
|
|
17700
17760
|
* Public API Surface of speechrecorderng
|