speechrecorderng 3.4.4 → 3.4.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.
Files changed (49) hide show
  1. package/esm2020/lib/action/action.mjs +3 -3
  2. package/esm2020/lib/audio/audio_display.mjs +7 -9
  3. package/esm2020/lib/audio/capture/capture.mjs +2 -2
  4. package/esm2020/lib/audio/io/stream.mjs +1 -1
  5. package/esm2020/lib/audio/net_audio_buffer.mjs +1 -1
  6. package/esm2020/lib/audio/playback/array_audio_buffer_source_node.mjs +2 -2
  7. package/esm2020/lib/audio/playback/audio_source_worklet_module_loader.mjs +2 -2
  8. package/esm2020/lib/audio/playback/inddb_audio_buffer_source_node.mjs +1 -1
  9. package/esm2020/lib/audio/ui/container.mjs +3 -3
  10. package/esm2020/lib/db/inddb.mjs +1 -1
  11. package/esm2020/lib/net/uploader.mjs +31 -28
  12. package/esm2020/lib/speechrecorder/project/project.service.mjs +4 -4
  13. package/esm2020/lib/speechrecorder/recordings/basic_recording.service.mjs +53 -51
  14. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +121 -113
  15. package/esm2020/lib/speechrecorder/script/script.service.mjs +1 -1
  16. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +22 -23
  17. package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +1 -1
  18. package/esm2020/lib/speechrecorder/session/controlpanel.mjs +13 -11
  19. package/esm2020/lib/speechrecorder/session/progress.mjs +1 -1
  20. package/esm2020/lib/speechrecorder/session/prompting.mjs +1 -1
  21. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +1 -1
  22. package/esm2020/lib/speechrecorder/session/recording_list.mjs +1 -1
  23. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +1 -1
  24. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +3 -3
  25. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +17 -16
  26. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +40 -38
  27. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +144 -134
  28. package/esm2020/lib/speechrecorder/session/session.service.mjs +12 -9
  29. package/esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs +1 -2
  30. package/esm2020/lib/speechrecorderng.component.mjs +3 -3
  31. package/esm2020/lib/speechrecorderng.module.mjs +1 -1
  32. package/esm2020/lib/spr.module.version.mjs +2 -2
  33. package/esm2020/lib/ui/recordingitem_display.mjs +2 -2
  34. package/fesm2015/speechrecorderng.mjs +485 -456
  35. package/fesm2015/speechrecorderng.mjs.map +1 -1
  36. package/fesm2020/speechrecorderng.mjs +485 -456
  37. package/fesm2020/speechrecorderng.mjs.map +1 -1
  38. package/lib/action/action.d.ts +1 -1
  39. package/lib/audio/audio_display.d.ts +1 -3
  40. package/lib/audio/io/stream.d.ts +1 -1
  41. package/lib/net/uploader.d.ts +6 -6
  42. package/lib/speechrecorder/project/project.service.d.ts +4 -4
  43. package/lib/speechrecorder/script/script.service.d.ts +2 -2
  44. package/lib/speechrecorder/session/audiorecorder.d.ts +1 -2
  45. package/lib/speechrecorder/session/basicrecorder.d.ts +1 -1
  46. package/lib/speechrecorder/session/controlpanel.d.ts +1 -1
  47. package/lib/speechrecorder/session/session.service.d.ts +2 -2
  48. package/lib/spr.module.version.d.ts +1 -1
  49. package/package.json +1 -1
@@ -637,4 +637,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
637
637
  }], onPrevItem: [{
638
638
  type: Output
639
639
  }] } });
640
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQTZCbEUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsV0FBVztRQUNULElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN4QyxLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsR0FBRyxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN0QixLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs2R0FkVSxlQUFlO2lHQUFmLGVBQWUsdUtBaEJoQjs7O0dBR1Q7NEZBYVUsZUFBZTtrQkFwQjNCLFNBQVM7K0JBRUUscUJBQXFCLFlBRXJCOzs7R0FHVDs4QkFjUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztz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QUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1NpbXBsZVRyYWZmaWNMaWdodH0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC91aS9zaW1wbGV0cmFmZmljbGlnaHRcIjtcclxuaW1wb3J0IHtTdGF0ZSBhcyBTdGFydFN0b3BTaWduYWxTdGF0ZX0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC9zdGFydHN0b3BzaWduYWxcIjtcclxuaW1wb3J0IHtJdGVtfSBmcm9tIFwiLi9pdGVtXCI7XHJcbmltcG9ydCB7QmxvY2ssIFRleHQsIE1lZGlhaXRlbSwgUHJvbXB0SXRlbX0gZnJvbSBcIi4uL3NjcmlwdC9zY3JpcHRcIjtcclxuaW1wb3J0IHtUcmFuc3BvcnRBY3Rpb25zfSBmcm9tIFwiLi9jb250cm9scGFuZWxcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi4vcHJvamVjdC9wcm9qZWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXB9IGZyb20gXCIuLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtSZXNwb25zaXZlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdWkvcmVzcG9uc2l2ZV9jb21wb25lbnRcIjtcclxuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSBcIi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4uL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3BlZWNoUmVjb3JkZXJVcGxvYWRlcn0gZnJvbSBcIi4uL3NwcnVwbG9hZGVyXCI7XHJcbmltcG9ydCB7U1BFRUNIUkVDT1JERVJfQ09ORklHLCBTcGVlY2hSZWNvcmRlckNvbmZpZ30gZnJvbSBcIi4uLy4uL3Nwci5jb25maWdcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ3Nwci1yZWNpbnN0cnVjdGlvbnMnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIHt7ZGlzcGxheVRleHQoKX19XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGp1c3RpZnktY29udGVudDogbGVmdDsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIgKi9cclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvKiBhbGlnbiB2ZXJ0aWNhbCAgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZsZXg6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY2luc3RydWN0aW9ucyB7XHJcbiAgQElucHV0KCkgcmVjaW5zdHJ1Y3Rpb25zOiBzdHJpbmd8bnVsbHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbUlkeDogbnVtYmVyfG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1Db3VudDogbnVtYmVyfHVuZGVmaW5lZDtcclxuXHJcbiAgZGlzcGxheVRleHQoKTpzdHJpbmd7XHJcbiAgICBsZXQgcmlUeHQ6c3RyaW5nPScnO1xyXG4gICAgaWYodGhpcy5pdGVtQ291bnQgJiYgdGhpcy5zZWxlY3RlZEl0ZW1JZHgpe1xyXG4gICAgICByaVR4dD1yaVR4dCt0aGlzLnNlbGVjdGVkSXRlbUlkeCsnLycrKHRoaXMuaXRlbUNvdW50LTEpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5yZWNpbnN0cnVjdGlvbnMpe1xyXG4gICAgICByaVR4dD1yaVR4dCsnOiAnK3RoaXMucmVjaW5zdHJ1Y3Rpb25zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJpVHh0O1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICA8IS0tPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInRleHRcIj57e3RleHR9fTwvbmctdGVtcGxhdGU+LS0+XHJcbiAgICA8IS0tIDxpbWcgKm5nSWY9XCJzcmNcIiAjcHJvbXB0SW1hZ2UgW3NyY109XCJzcmNVcmwoKVwiIFtoZWlnaHRdPVwicHJvbXB0ZXJIZWlnaHQtMjBcIiAvPiAtLT5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyICovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBhbGlnbiB2ZXJ0aWNhbCAgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC8qIGZvbnQtc2l6ZTogMmVtOyAqL1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAvKiBVc2Ugb25seSBuYXR1cmFsIHNpemUgb2YgdGhlIHByb21wdCAqL1xyXG4gICAgLyogVGhlIHByb21wdGVyIGNvbXBuZW50IHRoZW4gZXRzIGFsaWduZWQgdmVydGljYWxseSBjZW50ZXJlZCAqL1xyXG4gICAgZmxleDogMCAxO1xyXG5cclxuICB9YCwgYDpob3N0KC5maWxsKSB7XHJcbiAgICAvKiBVc2UgYWxsIHNwYWNlIHRvIHNjYWxlIGltYWdlcyAqL1xyXG4gICAgZmxleDogMztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIC8qIEEgc2VwYXJhdGUgZmxleCBjb250YWluZXIgbWlnaHQgYmUgbmVjZXNzYXlyIHRvIGFsaWdobiBjZW50ZXJlZCAqL1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogVE9ETyBkb2VzIG5vdCB3b3JrLCBpbWFnZSBpcyBub3QgdmVydGljYWxseSBjZW50ZXJlZCAqL1xyXG4gIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0ZXIge1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfcHJvbXB0TWVkaWFJdGVtczogQXJyYXk8TWVkaWFpdGVtPnxudWxsfHVuZGVmaW5lZD1udWxsXHJcblxyXG4gIEBJbnB1dCgpIHByb21wdGVySGVpZ2h0OiBudW1iZXI9MDtcclxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmd8dW5kZWZpbmVkfG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3NyYzogc3RyaW5nfHVuZGVmaW5lZHxudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9ibG9ja3M6IEFycmF5PEJsb2NrPnx1bmRlZmluZWQ7XHJcbiAgbWltZXR5cGUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBjdXJyUHJvbXB0Q2hpbGQ6IEhUTUxFbGVtZW50fG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbGwnKSBwdWJsaWMgcHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIGdldCB0ZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgc3JjKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NyYztcclxuICB9XHJcblxyXG4gIHNyY1VybCgpOiBzdHJpbmd8bnVsbHtcclxuICAgIGlmICh0aGlzLnByb2plY3ROYW1lICYmIHRoaXMuX3NyYykge1xyXG4gICAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0UmVzb3VyY2VVcmwodGhpcy5wcm9qZWN0TmFtZSwgdGhpcy5fc3JjKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgICB3aWR0aCgpOm51bWJlcnxudWxse1xyXG4gICAgICBpZih0aGlzLmVsUmVmKXtcclxuICAgICAgICBpZih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaGVpZ2h0KCk6bnVtYmVyfG51bGx7XHJcbiAgICAgICAgaWYodGhpcy5lbFJlZil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwZW5kVGV4dEVsZW1lbnQocGFyZW50RWw6SFRNTEVsZW1lbnQsdHh0OlRleHQpe1xyXG4gICAgICBsZXQgdDogc3RyaW5nID0gPHN0cmluZz50eHQudGV4dFxyXG4gICAgICBsZXQgdHh0TmQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodClcclxuICAgICAgaWYodHh0LmRlY29yYXRpb24gfHwgdHh0LmNvbG9yKXtcclxuICAgICAgICBsZXQgc3BFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpXHJcbiAgICAgICAgbGV0IHN0eWxlU3RyPScnXHJcbiAgICAgICAgaWYodHh0LmRlY29yYXRpb24pIHtcclxuICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyd0ZXh0LWRlY29yYXRpb246ICcgKyB0eHQuZGVjb3JhdGlvbisnOydcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodHh0LmNvbG9yKXtcclxuICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKydjb2xvcjogJyArIHR4dC5jb2xvcisnOydcclxuICAgICAgICB9XHJcbiAgICAgICAgc3BFbC5zdHlsZT1zdHlsZVN0clxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocGFyZW50RWwsIHNwRWwpXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzcEVsLCB0eHROZClcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocGFyZW50RWwsIHR4dE5kKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBwcm9tcHRNZWRpYUl0ZW1zKHBNaXM6IEFycmF5PE1lZGlhaXRlbT58bnVsbCkge1xyXG4gICAgdGhpcy5fcHJvbXB0TWVkaWFJdGVtcyA9IHBNaXNcclxuICAgIGlmICh0aGlzLmN1cnJQcm9tcHRDaGlsZCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZClcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zICYmIHRoaXMuX3Byb21wdE1lZGlhSXRlbXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgbGV0IG1pID0gdGhpcy5fcHJvbXB0TWVkaWFJdGVtc1swXVxyXG4gICAgICB0aGlzLm1pbWV0eXBlID0gJ3RleHQvcGxhaW4nXHJcbiAgICAgIGlmIChtaS5taW1ldHlwZSkge1xyXG4gICAgICAgIHRoaXMubWltZXR5cGUgPSBtaS5taW1ldHlwZS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWltZXR5cGUgPT09ICd0ZXh0L3BsYWluJykge1xyXG4gICAgICAgIHRoaXMuX3RleHQgPSBtaS50ZXh0XHJcbiAgICAgICAgdGhpcy5fc3JjID0gbnVsbDtcclxuICAgICAgICBsZXQgcHJUeHQ9Jyc7XHJcbiAgICAgICAgaWYodGhpcy5fdGV4dCl7XHJcbiAgICAgICAgICBwclR4dD10aGlzLl90ZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJQcm9tcHRDaGlsZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChwclR4dCk7XHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5taW1ldHlwZSA9PT0gJ3RleHQveC1wcm9tcHQnKSB7XHJcbiAgICAgICAgLy90aGlzLnJlbmRlcmluZz10cnVlXHJcbiAgICAgICAgdGhpcy5fdGV4dD1udWxsO1xyXG4gICAgICAgIHRoaXMuX3NyYz1udWxsO1xyXG4gICAgICAgIHRoaXMuX2Jsb2Nrcz1uZXcgQXJyYXk8QmxvY2s+KCk7XHJcbiAgICAgICAgbGV0IHBkPW1pLnByb21wdERvY1xyXG4gICAgICAgIGlmKHBkKXtcclxuICAgICAgICAgIGxldCBwZEJvZHk9cGQuYm9keVxyXG4gICAgICAgICAgaWYocGRCb2R5KXtcclxuICAgICAgICAgICAgdGhpcy5fYmxvY2tzPXBkQm9keS5ibG9ja3M7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gZmFsc2VcclxuICAgICAgICB0aGlzLmN1cnJQcm9tcHRDaGlsZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcclxuICAgICAgICBpZih0aGlzLl9ibG9ja3MpIHtcclxuICAgICAgICAgIGZvciAobGV0IGJpID0gMDsgYmkgPCB0aGlzLl9ibG9ja3MubGVuZ3RoOyBiaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBibCA9IHRoaXMuX2Jsb2Nrc1tiaV1cclxuICAgICAgICAgICAgaWYgKCdwJyA9PT0gYmwudHlwZSkge1xyXG4gICAgICAgICAgICAgIGxldCBwQmxFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgncCcpXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmN1cnJQcm9tcHRDaGlsZCwgcEJsRWwpXHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgdGkgPSAwOyB0aSA8IGJsLnRleHRzLmxlbmd0aDsgdGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHR4dCA9IGJsLnRleHRzW3RpXVxyXG4gICAgICAgICAgICAgICAgaWYgKHR4dCkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoJ3RleHQnID09PSB0eHQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kVGV4dEVsZW1lbnQocEJsRWwsIHR4dClcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnZm9udCcgPT09IHR4dC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNwRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzdHlsZVN0ciA9ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC5zdHlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArICdmb250LXN0eWxlOiAnICsgdHh0LnN0eWxlICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQuc2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArICdmb250LXNpemU6ICcgKyB0eHQuc2l6ZSArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LndlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArICdmb250LXdlaWdodDogJyArIHR4dC53ZWlnaHQgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc3BFbC5zdHlsZSA9IHN0eWxlU3RyXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwQmxFbCwgc3BFbClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZFRleHRFbGVtZW50KHNwRWwsIDxUZXh0PnR4dC50ZXh0KVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdsaW5lYnJlYWsnID09PSB0eHQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBickVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdicicpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwQmxFbCwgYnJFbClcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpXHJcbiAgICAgICAgLy90aGlzLnJlbmRlcmluZz1mYWxzZVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWltZXR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UnKSkge1xyXG4gICAgICAgIHRoaXMuX3RleHQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX3NyYyA9IG1pLnNyY1xyXG4gICAgICAgIGxldCBwcm9tcHRJbWFnZSA9IG5ldyBJbWFnZSgpXHJcblxyXG4gICAgICAgIHRoaXMuY3VyclByb21wdENoaWxkID0gcHJvbXB0SW1hZ2VcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmN1cnJQcm9tcHRDaGlsZCwgXCJtYXgtd2lkdGhcIiwgXCIxMDAlXCIpXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmN1cnJQcm9tcHRDaGlsZCwgXCJtYXgtaGVpZ2h0XCIsIFwiMTAwJVwiKVxyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSB0cnVlXHJcbiAgICAgICAgLy8gVE9ETyB2ZXJ0aWNhbCBhbGlnbm1lbnRcclxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83MjczMzM4L2hvdy10by12ZXJ0aWNhbGx5LWFsaWduLWFuLWltYWdlLWluc2lkZS1hLWRpdlxyXG5cclxuICAgICAgICAvL2NvbnNvbGUubG9nKHByb21wdEltYWdlLm5hdHVyYWxXaWR0aCArIFwieFwiK3Byb21wdEltYWdlLm5hdHVyYWxIZWlnaHQpO1xyXG4gICAgICAgIHByb21wdEltYWdlLm9ubG9hZCA9IChldjogRXZlbnQpID0+IHt9XHJcbiAgICAgICAgbGV0IHNyY1VybD10aGlzLnNyY1VybCgpO1xyXG4gICAgICAgIGlmKHNyY1VybCkge1xyXG4gICAgICAgICAgcHJvbXB0SW1hZ2Uuc3JjID0gc3JjVXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3RleHQgPSBudWxsXHJcbiAgICAgIHRoaXMuX3NyYyA9IG51bGxcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBWSVJUVUFMX0hFSUdIVCA9IDYwMDtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUFJPTVBUX0ZPTlRTSVpFID0gNDg7XHJcbmV4cG9ydCBjb25zdCBNSU5fRk9OVF9TSVpFPTY7XHJcbmV4cG9ydCBjb25zdCBGQUxMQkFDS19ERUZfVVNFUl9BR0VOVF9GT05UX1NJWkUgPSAxNDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRjb250YWluZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGFwcC1zcHJwcm9tcHRlciAjcHJvbXB0ZXIgW3Byb2plY3ROYW1lXT1cInByb2plY3ROYW1lXCIgW3Byb21wdE1lZGlhSXRlbXNdPVwibWVkaWFpdGVtc1wiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemUrJ3B4J1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cInByRGlzcGxheVwiIFtwcm9tcHRlckhlaWdodF09XCJwcm9tcHRlckhlaWdodFwiPjwvYXBwLXNwcnByb21wdGVyPlxyXG4gIGBcclxuICAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBmbGV4OiAzOyAvKiB0aGUgY29udGFpbmVyIGNvbnN1bWVzIGFsbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIHBhZGRpbmc6IDEwcHQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBhbGlnbiB2ZXJ0aWNhbCBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdENvbnRhaW5lciBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX21lZGlhaXRlbXM6IEFycmF5PE1lZGlhaXRlbT58bnVsbD1udWxsO1xyXG5cclxuICBwcm9tcHRlckhlaWdodDogbnVtYmVyID0gVklSVFVBTF9IRUlHSFRcclxuICBmb250U2l6ZSE6IG51bWJlcjtcclxuICBmb250U2l6ZUNoYW5nZT1mYWxzZVxyXG4gIGNvbnRlbnRDaGVja2VkPWZhbHNlO1xyXG4gIHByRGlzcGxheT0naGlkZGVuJztcclxuICBkZWZhdWx0U3R5bGUhOiBDU1NTdHlsZURlY2xhcmF0aW9uO1xyXG4gIGRlZmF1bHRGb250U2l6ZVB4ITogbnVtYmVyO1xyXG5cclxuICBhdXRvRm9udFNpemU9ZmFsc2U7XHJcbiAgQFZpZXdDaGlsZChQcm9tcHRlciwgeyBzdGF0aWM6IHRydWUgfSkgcHJvbXB0ZXIhOiBQcm9tcHRlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjpFbGVtZW50UmVmKXt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIC8vIGZhbGxiYWNrXHJcbiAgICB0aGlzLmRlZmF1bHRGb250U2l6ZVB4ID0gRkFMTEJBQ0tfREVGX1VTRVJfQUdFTlRfRk9OVF9TSVpFO1xyXG4gICAgLy8gdHJ5IHRvIHBhcnNlIGRlZmF1bHQgdXNlciBhZ2VudCBmb250IHNpemUgKG5vIGNvbW1lbnQgYWJvdXQgRE9NIEFQSSBkZXNpZ24gOykgKVxyXG4gICAgdGhpcy5kZWZhdWx0U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgbGV0IGRlZkZvbnRTaXplU3RyID0gdGhpcy5kZWZhdWx0U3R5bGUuZm9udFNpemU7XHJcbiAgICBpZiAoZGVmRm9udFNpemVTdHIpIHtcclxuICAgICAgZGVmRm9udFNpemVTdHIgPSBkZWZGb250U2l6ZVN0ci50cmltKCk7XHJcbiAgICAgIGlmIChkZWZGb250U2l6ZVN0ci5lbmRzV2l0aCgncHgnKSkge1xyXG4gICAgICAgIC8vIHBhcnNlRmxvYXQgaWdub3JlcyBub24gbnVtYmVyIGNoYXJhY3RlcnMgYXQgdGhlIGVuZCAoYWdhaW4gbm8gY29tbWVudCA7KSApXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCA9IHBhcnNlRmxvYXQoZGVmRm9udFNpemVTdHIpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmluZm8oXCJEZWZhdWx0IGZvbnQgc2l6ZTogXCIrdGhpcy5kZWZhdWx0Rm9udFNpemVQeClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5hdXRvRm9udFNpemUpIHtcclxuICAgICAgaWYgKHRoaXMuZm9udFNpemVDaGFuZ2UpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKFwibmdhZnRlcmNvbnRlbnRjaGVja2VkLCBjYWxsIGZvbnRTaXplVG9GaXQgXCIpO1xyXG4gICAgICAgIC8vIGNoZWNrIHByb21wdGVyIHNpemUgYWdhaW5cclxuICAgICAgICB0aGlzLmZvbnRTaXplVG9GaXQoKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGZvbnQgc2l6ZSB3YXMgY2hlY2tlZCwgYnV0IHdlIG5lZWQgdG8gY2hlY2sgYWdhaW4gYWZ0ZXIgYW5ndWxhciBjb250ZW50IGNoZWNrXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRDaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJuZ2FmdGVyY29udGVudGNoZWNrZWQsIG5vdCBmb250IHNpemUgY2hhbmdlZCwgY2FsbCBcIik7XHJcbiAgICAgICAgICB0aGlzLmZvbnRTaXplVG9GaXQoKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHNldCBtZWRpYWl0ZW1zKG1lZGlhaXRlbXM6QXJyYXk8TWVkaWFpdGVtPnxudWxsKXtcclxuXHJcbiAgICB0aGlzLl9tZWRpYWl0ZW1zID0gbWVkaWFpdGVtc1xyXG5cclxuICAgIGxldCBtaW1ldHlwZTpzdHJpbmd8bnVsbD1udWxsO1xyXG4gICAgaWYgKHRoaXMuX21lZGlhaXRlbXMgJiYgdGhpcy5fbWVkaWFpdGVtcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICBsZXQgbWkgPSB0aGlzLl9tZWRpYWl0ZW1zWzBdXHJcbiAgICAgIG1pbWV0eXBlID0gJ3RleHQvcGxhaW4nXHJcbiAgICAgIGlmIChtaS5taW1ldHlwZSkge1xyXG4gICAgICAgIG1pbWV0eXBlID0gbWkubWltZXR5cGUudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKG1pLmRlZmF1bHRWaXJ0dWFsVmlld0JveCl7XHJcbiAgICAgICAgdGhpcy5wcm9tcHRlckhlaWdodD1taS5kZWZhdWx0VmlydHVhbFZpZXdCb3guaGVpZ2h0XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnByb21wdGVySGVpZ2h0PVZJUlRVQUxfSEVJR0hUXHJcbiAgICB9XHJcbiAgICB0aGlzLnByb21wdGVyLnByb21wdE1lZGlhSXRlbXM9dGhpcy5fbWVkaWFpdGVtc1xyXG4gICAgdGhpcy5hdXRvRm9udFNpemU9KG1pbWV0eXBlIT1udWxsICYmIG1pbWV0eXBlLnN0YXJ0c1dpdGgoJ3RleHQvJykpO1xyXG4gICAgaWYodGhpcy5hdXRvRm9udFNpemUpe1xyXG4gICAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ2hpZGRlbidcclxuICAgICAgICB0aGlzLmxheW91dCgpXHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBtZWRpYWl0ZW1zKCk6QXJyYXk8TWVkaWFpdGVtPnxudWxse1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWVkaWFpdGVtcztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJvbnJlc2l6ZSwgY2FsbCBmb250U2l6ZVRvRml0IGhvb2sgXCIpO1xyXG4gICAgdGhpcy5sYXlvdXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGF5b3V0KCkge1xyXG4gICAgaWYodGhpcy5hdXRvRm9udFNpemUgJiYgdGhpcy5lbFJlZikge1xyXG5cclxuICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZT10cnVlO1xyXG4gICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICBsZXQgZWxIID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgLy8gcHJvbXB0IHRleHQgZm9udCBzaXplIHNob3VsZCBzY2FsZSBhY2NvcmRpbmcgdG8gcHJvbXB0IGNvbnRhaW5lciBoZWlnaHRcclxuICAgICAgbGV0IHNjYWxlZFNpemUgPSBNYXRoLnJvdW5kKChlbEggLyB0aGlzLnByb21wdGVySGVpZ2h0KSAqIERFRkFVTFRfUFJPTVBUX0ZPTlRTSVpFKTtcclxuXHJcbiAgICAgIC8vIG1pbiBwcm9tcHQgZm9udCBzaXplIGlzIGRlZmF1bHQgdXNlciBhZ2VudCBzaXplXHJcbiAgICAgIGxldCBuZXdTaXplID0gTWF0aC5tYXgoc2NhbGVkU2l6ZSwgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCk7XHJcbiAgICAgIGlmICh0aGlzLmZvbnRTaXplICE9PSBuZXdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5mb250U2l6ZSA9IG5ld1NpemU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJsYXlvdXQsIGNhbGwgZm9udFNpemVUb0ZpdCBob29rIFwiKTtcclxuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb250U2l6ZVRvRml0KCkpXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZm9udFNpemVUb0ZpdCgpe1xyXG4gICAgICBpZih0aGlzLnByb21wdGVyKSB7XHJcbiAgICAgICAgbGV0IHBXPXRoaXMucHJvbXB0ZXIud2lkdGgoKTtcclxuICAgICAgICBsZXQgcEg9dGhpcy5wcm9tcHRlci5oZWlnaHQoKTtcclxuICAgICAgICBpZiAodGhpcy5fbWVkaWFpdGVtcyAmJiB0aGlzLmVsUmVmICYmIHBXICYmIHBIKSB7XHJcbiAgICAgICAgICBsZXQgbkVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHJvbXB0ZXI6IFwiICsgdGhpcy5wcm9tcHRlci53aWR0aCgpICsgXCJ4XCIgKyB0aGlzLnByb21wdGVyLmhlaWdodCgpKyBcIiBmb250IHNpemU6IFwiK3RoaXMuZm9udFNpemUpXHJcbiAgICAgICAgICBpZiAodGhpcy5mb250U2l6ZSA+PSBNSU5fRk9OVF9TSVpFICYmIChwVyA+IG5FbC5vZmZzZXRXaWR0aCB8fCBwSCA+IG5FbC5vZmZzZXRIZWlnaHQpKSB7XHJcbiAgICAgICAgICAgIC8vIHByb21wdGVyIG92ZXJzaXplcyBwcm9tcHRlciBjb250YWluZXIuIERlY3JlYXNlIGZvbnQgc2l6ZS5cclxuICAgICAgICAgICAgLy8gc2V0IGludmlzaWJsZSBkdXJpbmcgZm9udCBzaXplIGNoZWNrc1xyXG4gICAgICAgICAgICB0aGlzLnByRGlzcGxheSA9ICdoaWRkZW4nXHJcbiAgICAgICAgICAgIC8vIGRlY3JlYXNlIGZvbnQgc2l6ZVxyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplID0gdGhpcy5mb250U2l6ZSAtIDFcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJEZWNyZWFzZWQgZm9udCBzaXplOiBcIit0aGlzLmZvbnRTaXplIClcclxuICAgICAgICAgICAgLy8gU2V0IGZsYWdzXHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2UgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZVxyXG4gICAgICAgICAgICAvLyBob29rIHRoZSBuZXh0IGNoZWNrXHJcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9udFNpemVUb0ZpdCgpKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gcHJvbXB0ZXIgZml0cyBpbiAgcHJvbXB0ZXIgY29udGFpbmVyLCBmb250IHNpemUgc2hvdWxkIGJlIGZpbmVcclxuXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJwckRpc3BsYXk6IFwiK3RoaXMucHJEaXNwbGF5KVxyXG5cclxuICAgICAgICAgICAgLy9pZih0aGlzLmNvbnRlbnRDaGVja2VkICYmICEgdGhpcy5mb250U2l6ZUNoYW5nZSkge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRGlzcGxheSFcIilcclxuICAgICAgICAgICAgLy8gc2V0IHByb21wdGVyIHZpc2libGUgbm93XHJcbiAgICAgICAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ3Zpc2libGUnXHJcbiAgICAgICAgICAgIC8vfVxyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJQcm9tcHQgdGV4dCB3aWR0aDogXCIrdGV4dFNpemUud2lkdGgrXCIgXCIrdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoK1wieFwiK3RoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0aW5nY29udGFpbmVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxzcHItcmVjaW5zdHJ1Y3Rpb25zIFtzZWxlY3RlZEl0ZW1JZHhdPVwic2VsZWN0ZWRJdGVtSWR4XCIgW2l0ZW1Db3VudF09XCJpdGVtQ291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlY2luc3RydWN0aW9uc109XCJwcm9tcHRJdGVtPy5yZWNpbnN0cnVjdGlvbnM/LnJlY2luc3RydWN0aW9uc1wiPjwvc3ByLXJlY2luc3RydWN0aW9ucz5cclxuICAgIDxhcHAtc3BycHJvbXB0Y29udGFpbmVyIFtwcm9qZWN0TmFtZV09XCJwcm9qZWN0TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWVkaWFpdGVtc109XCJzaG93UHJvbXB0Pyhwcm9tcHRJdGVtP3Byb21wdEl0ZW0ubWVkaWFpdGVtczpudWxsKTpudWxsXCI+PC9hcHAtc3BycHJvbXB0Y29udGFpbmVyPlxyXG5cclxuICBgXHJcbiAgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4OiAzOyAvKiB0aGUgY29udGFpbmVyIGNvbnN1bWVzIGFsbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIHBhZGRpbmc6IDEwcHQ7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG4gIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0aW5nQ29udGFpbmVyIHtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHByb21wdEl0ZW06IFByb21wdEl0ZW18bnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHNob3dQcm9tcHQ6IGJvb2xlYW49ZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtSWR4ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGl0ZW1Db3VudDogbnVtYmVyfHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcblxyXG4gIHByaXZhdGUgZSE6IEhUTUxEaXZFbGVtZW50O1xyXG4gIHByaXZhdGUgc3RhcnRYOiBudW1iZXIgfCBudWxsID0gbnVsbFxyXG4gIHByaXZhdGUgdG91Y2hTdGFydFRpbWVTdGFtcDogbnVtYmVyIHwgbnVsbD1udWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdHlwZSBUb3VjaFN0YXJ0ID0ge31cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5lID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hzdGFydChldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIHN0YXJ0ISBcIilcclxuICAgIGlmICghKHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkpIHtcclxuICAgICAgbGV0IHRhcmdldFRvdWNoZXNMZW4gPSBldi50YXJnZXRUb3VjaGVzLmxlbmd0aDtcclxuICAgICAgLy9mb3IobGV0IHRpPTA7dGk8ZXYudGFyZ2V0VG91Y2hlcy5sZW5ndGg7dGkrKyl7XHJcbiAgICAgIC8vbGV0IHQ9ZXYudGFyZ2V0VG91Y2hlcy5pdGVtKHRpKTtcclxuICAgICAgLy8gQWxsIHggdmFsdWVzIGFyZSB0aGUgc2FtZSA/P1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggI1wiK3RpK1wiOiBwYWdlWDogXCIrdC5wYWdlWCtcIiBjbGllbnRYOiBcIit0LmNsaWVudFgrXCIgc2NyZWVuWDogXCIrdC5zY3JlZW5YKVxyXG4gICAgICAvL31cclxuICAgICAgaWYgKHRhcmdldFRvdWNoZXNMZW4gPT0gMSkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYudGFyZ2V0VG91Y2hlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0WCA9IE1hdGgucm91bmQodC5zY3JlZW5YKTtcclxuICAgICAgICAgIHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCA9IGV2LnRpbWVTdGFtcDtcclxuICAgICAgICAgIHRoaXMuZS5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIHN0YXJ0IHg6IFwiK3RoaXMuc3RhcnRYKVxyXG4gICAgICAgICAgLy9ldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoRW5kKGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggZW5kIVwiKVxyXG4gICAgLy8gUmVzZXQgb2Zmc2V0IHNoaWZ0XHJcbiAgICBpZiAoISh0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkICYmIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpKSB7XHJcblxyXG4gICAgICBsZXQgY2hhbmdlZFRvdWNoZXNMZW4gPSBldi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg7XHJcbiAgICAgIC8vY29uc29sZS5sb2coY2hhbmdlZFRvdWNoZXNMZW4rXCIgXCIrdGhpcy5zdGFydFgpXHJcbiAgICAgIGlmIChjaGFuZ2VkVG91Y2hlc0xlbiA9PSAxICYmIHRoaXMuc3RhcnRYKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi5jaGFuZ2VkVG91Y2hlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICBsZXQgZGVsdGFYID0gTWF0aC5yb3VuZCh0LmNsaWVudFggLSB0aGlzLnN0YXJ0WCk7XHJcbiAgICAgICAgICBsZXQgdG91Y2hNb3ZlU3BlZWQgPSAwO1xyXG4gICAgICAgICAgaWYgKHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCkge1xyXG4gICAgICAgICAgICB0b3VjaE1vdmVTcGVlZCA9IGRlbHRhWCAvIChldi50aW1lU3RhbXAgLSB0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGZ1dHVyZURlbHRhWCA9IGRlbHRhWCArICg4MDAgKiB0b3VjaE1vdmVTcGVlZCk7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRGVsdGFYOiBcIiArIGRlbHRhWCArIFwiIEZ1dHVyZSBkZWx0YVg6IFwiICsgZnV0dXJlRGVsdGFYICsgXCIgIHdpZHRoOiBcIiArIHRoaXMuZS5vZmZzZXRXaWR0aClcclxuICAgICAgICAgIGlmIChmdXR1cmVEZWx0YVggPiB0aGlzLmUub2Zmc2V0V2lkdGggLyAyKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJTd2lwZSByaWdodCBkZXRlY3RlZCEhXCIpXHJcbiAgICAgICAgICAgIC8vdGhpcy5zd2lwZWRSaWdodC5lbWl0KClcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5lLnN0eWxlLmxlZnQgPSAtdGhpcy5lLm9mZnNldExlZnQgKyBcInB4XCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoLWZ1dHVyZURlbHRhWCA+IHRoaXMuZS5vZmZzZXRXaWR0aCAvIDIpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlN3aXBlIGxlZnQgZGV0ZWN0ZWQhIVwiKVxyXG4gICAgICAgICAgICB0aGlzLmUuc3R5bGUubGVmdCA9IC10aGlzLmUub2Zmc2V0TGVmdCArIFwicHhcIjtcclxuICAgICAgICAgICAgLy90aGlzLnN3aXBlZExlZnQuZW1pdCgpXHJcbiAgICAgICAgICAgIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLnBlcmZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyByZXNldCBhbmltYXRlZFxyXG4gICAgICB0aGlzLmUuc3R5bGUudHJhbnNpdGlvbiA9IFwibGVmdCAwLjhzXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXJ0WCA9IG51bGw7XHJcbiAgICB0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXAgPSBudWxsO1xyXG4gICAgdGhpcy5lLnN0eWxlLmxlZnQgPSBcIjBweFwiO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoTW92ZShldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIG1vdmUhXCIpXHJcbiAgICBpZiAoISh0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkICYmIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpKSB7XHJcbiAgICAgIGxldCB0YXJnZXRUb3VjaGVzTGVuID0gZXYudGFyZ2V0VG91Y2hlcy5sZW5ndGg7XHJcbiAgICAgIGlmICh0YXJnZXRUb3VjaGVzTGVuID09IDEgJiYgdGhpcy5zdGFydFgpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LnRhcmdldFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgbGV0IGRlbHRhWCA9IE1hdGgucm91bmQodC5zY3JlZW5YIC0gdGhpcy5zdGFydFgpO1xyXG4gICAgICAgICAgdGhpcy5lLnN0eWxlLmxlZnQgPSBkZWx0YVggKyBcInB4XCI7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRvdWNoIG1vdmUgZGVsdGEgeDogXCIrZGVsdGFYKVxyXG4gICAgICAgIH1cclxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaENhbmNlbChldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIGNhbmNlbCFcIilcclxuICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICAgIC8vZXYucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGluZycsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGFwcC1zaW1wbGV0cmFmZmljbGlnaHQgW3N0YXR1c109XCJzdGFydFN0b3BTaWduYWxTdGF0ZVwiPjwvYXBwLXNpbXBsZXRyYWZmaWNsaWdodD5cclxuICAgIDxhcHAtc3BycHJvbXB0aW5nY29udGFpbmVyIFtwcm9qZWN0TmFtZV09XCJwcm9qZWN0TmFtZVwiIFtwcm9tcHRJdGVtXT1cInByb21wdEl0ZW1cIiBbc2hvd1Byb21wdF09XCJzaG93UHJvbXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtQ291bnRdPVwiaXRlbXM/Lmxlbmd0aFwiIFtzZWxlY3RlZEl0ZW1JZHhdPVwic2VsZWN0ZWRJdGVtSWR4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc3BvcnRBY3Rpb25zXT1cInRyYW5zcG9ydEFjdGlvbnNcIj48L2FwcC1zcHJwcm9tcHRpbmdjb250YWluZXI+XHJcbiAgICA8YXBwLXNwcnByb2dyZXNzICpuZ0lmPVwiIXNjcmVlblhzXCIgW2l0ZW1zXT1cIml0ZW1zXCIgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob25Sb3dTZWxlY3QpPVwiaXRlbVNlbGVjdCgkZXZlbnQpXCI+PC9hcHAtc3BycHJvZ3Jlc3M+XHJcbiAgICA8ZGl2ICNhc0N0IFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkICYmICFzY3JlZW5Yc1wiPlxyXG5cclxuICAgICAgPGFwcC1hdWRpb2Rpc3BsYXkgI2F1ZGlvU2lnbmFsQ29udGFpbmVyIFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1ZGlvQ2xpcF09XCJkaXNwbGF5QXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiPjwvYXBwLWF1ZGlvZGlzcGxheT5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCB0cmFmZmljIGxpZ2h0LCByaWdodCBwcm9tcHRlciAoY29udGFpbmVyKSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgfWAsIGBcclxuICAgIGFwcC1zaW1wbGV0cmFmZmljbGlnaHQge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBhcHAtc3BycHJvZ3Jlc3Mge1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblxyXG4gICAgICAvKiBoZWlnaHQ6IDUwJTsgKi9cclxuICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcblxyXG4gICAgICAvKiBvdmVyZmxvdzogaGlkZGVuOyAqL1xyXG5cclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmVkOyAqL1xyXG4gICAgfWAsIGBcclxuICAgIGRpdi5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAvKmxlZnQ6IDBweDsgKi9cclxuXHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIC8qIG1hcmdpbjogMjBweDsgKi9cclxuICAgICAgLyogYm9yZGVyOiAyMHB4OyAqL1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcblxyXG4gICAgfWBcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0aW5nIGV4dGVuZHMgUmVzcG9uc2l2ZUNvbXBvbmVudHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFNpbXBsZVRyYWZmaWNMaWdodCwgeyBzdGF0aWM6IHRydWUgfSkgc2ltcGxlVHJhZmZpY0xpZ2h0ITogU2ltcGxlVHJhZmZpY0xpZ2h0O1xyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdWRpb0Rpc3BsYXkhOiBBdWRpb0Rpc3BsYXk7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzdGFydFN0b3BTaWduYWxTdGF0ZSE6IFN0YXJ0U3RvcFNpZ25hbFN0YXRlO1xyXG4gIEBJbnB1dCgpIHByb21wdEl0ZW06IFByb21wdEl0ZW0gfCBudWxsPW51bGw7XHJcbiAgQElucHV0KCkgc2hvd1Byb21wdDogYm9vbGVhbj1mYWxzZTtcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8SXRlbT58dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIG9uTmV4dEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUHJldkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGl0ZW1TZWxlY3Qocm93SWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0LmVtaXQocm93SWR4KTtcclxuICB9XHJcblxyXG4gIG5leHRJdGVtKCkge1xyXG4gICAgdGhpcy5vbk5leHRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByZXZJdGVtKCkge1xyXG4gICAgdGhpcy5vblByZXZJdGVtLmVtaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
640
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQXdCbEUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsV0FBVztRQUNULElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN4QyxLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsR0FBRyxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN0QixLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs2R0FkVSxlQUFlO2lHQUFmLGVBQWUsdUtBaEJoQjs7O0dBR1Q7NEZBYVUsZUFBZTtrQkFwQjNCLFNBQVM7K0JBRUUscUJBQXFCLFlBRXJCOzs7R0FHVDs4QkFjUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztz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QUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1NpbXBsZVRyYWZmaWNMaWdodH0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC91aS9zaW1wbGV0cmFmZmljbGlnaHRcIjtcclxuaW1wb3J0IHtTdGF0ZSBhcyBTdGFydFN0b3BTaWduYWxTdGF0ZX0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC9zdGFydHN0b3BzaWduYWxcIjtcclxuaW1wb3J0IHtJdGVtfSBmcm9tIFwiLi9pdGVtXCI7XHJcbmltcG9ydCB7QmxvY2ssIFRleHQsIE1lZGlhaXRlbSwgUHJvbXB0SXRlbX0gZnJvbSBcIi4uL3NjcmlwdC9zY3JpcHRcIjtcclxuaW1wb3J0IHtUcmFuc3BvcnRBY3Rpb25zfSBmcm9tIFwiLi9jb250cm9scGFuZWxcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi4vcHJvamVjdC9wcm9qZWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXB9IGZyb20gXCIuLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtSZXNwb25zaXZlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdWkvcmVzcG9uc2l2ZV9jb21wb25lbnRcIjtcclxuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnc3ByLXJlY2luc3RydWN0aW9ucycsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAge3tkaXNwbGF5VGV4dCgpfX1cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0OyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIGFsaWduIHZlcnRpY2FsICBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgZmxleDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjaW5zdHJ1Y3Rpb25zIHtcclxuICBASW5wdXQoKSByZWNpbnN0cnVjdGlvbnM6IHN0cmluZ3xudWxsfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtSWR4OiBudW1iZXJ8bnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgaXRlbUNvdW50OiBudW1iZXJ8dW5kZWZpbmVkO1xyXG5cclxuICBkaXNwbGF5VGV4dCgpOnN0cmluZ3tcclxuICAgIGxldCByaVR4dDpzdHJpbmc9Jyc7XHJcbiAgICBpZih0aGlzLml0ZW1Db3VudCAmJiB0aGlzLnNlbGVjdGVkSXRlbUlkeCl7XHJcbiAgICAgIHJpVHh0PXJpVHh0K3RoaXMuc2VsZWN0ZWRJdGVtSWR4KycvJysodGhpcy5pdGVtQ291bnQtMSk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLnJlY2luc3RydWN0aW9ucyl7XHJcbiAgICAgIHJpVHh0PXJpVHh0Kyc6ICcrdGhpcy5yZWNpbnN0cnVjdGlvbnM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmlUeHQ7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0ZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDwhLS08bmctdGVtcGxhdGUgW25nSWZdPVwidGV4dFwiPnt7dGV4dH19PC9uZy10ZW1wbGF0ZT4tLT5cclxuICAgIDwhLS0gPGltZyAqbmdJZj1cInNyY1wiICNwcm9tcHRJbWFnZSBbc3JjXT1cInNyY1VybCgpXCIgW2hlaWdodF09XCJwcm9tcHRlckhlaWdodC0yMFwiIC8+IC0tPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIgKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsICBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLyogZm9udC1zaXplOiAyZW07ICovXHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIC8qIFVzZSBvbmx5IG5hdHVyYWwgc2l6ZSBvZiB0aGUgcHJvbXB0ICovXHJcbiAgICAvKiBUaGUgcHJvbXB0ZXIgY29tcG5lbnQgdGhlbiBldHMgYWxpZ25lZCB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXHJcbiAgICBmbGV4OiAwIDE7XHJcblxyXG4gIH1gLCBgOmhvc3QoLmZpbGwpIHtcclxuICAgIC8qIFVzZSBhbGwgc3BhY2UgdG8gc2NhbGUgaW1hZ2VzICovXHJcbiAgICBmbGV4OiAzO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgLyogQSBzZXBhcmF0ZSBmbGV4IGNvbnRhaW5lciBtaWdodCBiZSBuZWNlc3NheXIgdG8gYWxpZ2huIGNlbnRlcmVkICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBUT0RPIGRvZXMgbm90IHdvcmssIGltYWdlIGlzIG5vdCB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXHJcbiAgfWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRlciB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9wcm9tcHRNZWRpYUl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+fG51bGx8dW5kZWZpbmVkPW51bGxcclxuXHJcbiAgQElucHV0KCkgcHJvbXB0ZXJIZWlnaHQ6IG51bWJlcj0wO1xyXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZ3x1bmRlZmluZWR8bnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmd8dW5kZWZpbmVkfG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2Jsb2NrczogQXJyYXk8QmxvY2s+fHVuZGVmaW5lZDtcclxuICBtaW1ldHlwZSE6IHN0cmluZztcclxuICBwcml2YXRlIGN1cnJQcm9tcHRDaGlsZDogSFRNTEVsZW1lbnR8bnVsbCA9IG51bGw7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsbCcpIHB1YmxpYyBwcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IHRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBzcmMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xyXG4gIH1cclxuXHJcbiAgc3JjVXJsKCk6IHN0cmluZ3xudWxse1xyXG4gICAgaWYgKHRoaXMucHJvamVjdE5hbWUgJiYgdGhpcy5fc3JjKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3RSZXNvdXJjZVVybCh0aGlzLnByb2plY3ROYW1lLCB0aGlzLl9zcmMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAgIHdpZHRoKCk6bnVtYmVyfG51bGx7XHJcbiAgICAgIGlmKHRoaXMuZWxSZWYpe1xyXG4gICAgICAgIGlmKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBoZWlnaHQoKTpudW1iZXJ8bnVsbHtcclxuICAgICAgICBpZih0aGlzLmVsUmVmKXtcclxuICAgICAgICAgICAgaWYodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBlbmRUZXh0RWxlbWVudChwYXJlbnRFbDpIVE1MRWxlbWVudCx0eHQ6VGV4dCl7XHJcbiAgICAgIGxldCB0OiBzdHJpbmcgPSA8c3RyaW5nPnR4dC50ZXh0XHJcbiAgICAgIGxldCB0eHROZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0KVxyXG4gICAgICBpZih0eHQuZGVjb3JhdGlvbiB8fCB0eHQuY29sb3Ipe1xyXG4gICAgICAgIGxldCBzcEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgICBsZXQgc3R5bGVTdHI9JydcclxuICAgICAgICBpZih0eHQuZGVjb3JhdGlvbikge1xyXG4gICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArJ3RleHQtZGVjb3JhdGlvbjogJyArIHR4dC5kZWNvcmF0aW9uKyc7J1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0eHQuY29sb3Ipe1xyXG4gICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArJ2NvbG9yOiAnICsgdHh0LmNvbG9yKyc7J1xyXG4gICAgICAgIH1cclxuICAgICAgICBzcEVsLnN0eWxlPXN0eWxlU3RyXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRFbCwgc3BFbClcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwRWwsIHR4dE5kKVxyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRFbCwgdHh0TmQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHByb21wdE1lZGlhSXRlbXMocE1pczogQXJyYXk8TWVkaWFpdGVtPnxudWxsKSB7XHJcbiAgICB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zID0gcE1pc1xyXG4gICAgaWYgKHRoaXMuY3VyclByb21wdENoaWxkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX3Byb21wdE1lZGlhSXRlbXMgJiYgdGhpcy5fcHJvbXB0TWVkaWFJdGVtcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICBsZXQgbWkgPSB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zWzBdXHJcbiAgICAgIHRoaXMubWltZXR5cGUgPSAndGV4dC9wbGFpbidcclxuICAgICAgaWYgKG1pLm1pbWV0eXBlKSB7XHJcbiAgICAgICAgdGhpcy5taW1ldHlwZSA9IG1pLm1pbWV0eXBlLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5taW1ldHlwZSA9PT0gJ3RleHQvcGxhaW4nKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dCA9IG1pLnRleHRcclxuICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xyXG4gICAgICAgIGxldCBwclR4dD0nJztcclxuICAgICAgICBpZih0aGlzLl90ZXh0KXtcclxuICAgICAgICAgIHByVHh0PXRoaXMuX3RleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VyclByb21wdENoaWxkID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHByVHh0KTtcclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbWV0eXBlID09PSAndGV4dC94LXByb21wdCcpIHtcclxuICAgICAgICAvL3RoaXMucmVuZGVyaW5nPXRydWVcclxuICAgICAgICB0aGlzLl90ZXh0PW51bGw7XHJcbiAgICAgICAgdGhpcy5fc3JjPW51bGw7XHJcbiAgICAgICAgdGhpcy5fYmxvY2tzPW5ldyBBcnJheTxCbG9jaz4oKTtcclxuICAgICAgICBsZXQgcGQ9bWkucHJvbXB0RG9jXHJcbiAgICAgICAgaWYocGQpe1xyXG4gICAgICAgICAgbGV0IHBkQm9keT1wZC5ib2R5XHJcbiAgICAgICAgICBpZihwZEJvZHkpe1xyXG4gICAgICAgICAgICB0aGlzLl9ibG9ja3M9cGRCb2R5LmJsb2NrcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY3VyclByb21wdENoaWxkID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKVxyXG4gICAgICAgIGlmKHRoaXMuX2Jsb2Nrcykge1xyXG4gICAgICAgICAgZm9yIChsZXQgYmkgPSAwOyBiaSA8IHRoaXMuX2Jsb2Nrcy5sZW5ndGg7IGJpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsID0gdGhpcy5fYmxvY2tzW2JpXVxyXG4gICAgICAgICAgICBpZiAoJ3AnID09PSBibC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHBCbEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdwJylcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY3VyclByb21wdENoaWxkLCBwQmxFbClcclxuICAgICAgICAgICAgICBmb3IgKGxldCB0aSA9IDA7IHRpIDwgYmwudGV4dHMubGVuZ3RoOyB0aSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdHh0ID0gYmwudGV4dHNbdGldXHJcbiAgICAgICAgICAgICAgICBpZiAodHh0KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICgndGV4dCcgPT09IHR4dC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0RWxlbWVudChwQmxFbCwgdHh0KVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdmb250JyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0eWxlU3RyID0gJydcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LnN0eWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtc3R5bGU6ICcgKyB0eHQuc3R5bGUgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC5zaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtc2l6ZTogJyArIHR4dC5zaXplICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQud2VpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtd2VpZ2h0OiAnICsgdHh0LndlaWdodCArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzcEVsLnN0eWxlID0gc3R5bGVTdHJcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBCbEVsLCBzcEVsKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kVGV4dEVsZW1lbnQoc3BFbCwgPFRleHQ+dHh0LnRleHQpXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2xpbmVicmVhaycgPT09IHR4dC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJyRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2JyJylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBCbEVsLCBickVsKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZClcclxuICAgICAgICAvL3RoaXMucmVuZGVyaW5nPWZhbHNlXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5taW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZScpKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fc3JjID0gbWkuc3JjXHJcbiAgICAgICAgbGV0IHByb21wdEltYWdlID0gbmV3IEltYWdlKClcclxuXHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSBwcm9tcHRJbWFnZVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZClcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3VyclByb21wdENoaWxkLCBcIm1heC13aWR0aFwiLCBcIjEwMCVcIilcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3VyclByb21wdENoaWxkLCBcIm1heC1oZWlnaHRcIiwgXCIxMDAlXCIpXHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IHRydWVcclxuICAgICAgICAvLyBUT0RPIHZlcnRpY2FsIGFsaWdubWVudFxyXG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzcyNzMzMzgvaG93LXRvLXZlcnRpY2FsbHktYWxpZ24tYW4taW1hZ2UtaW5zaWRlLWEtZGl2XHJcblxyXG4gICAgICAgIC8vY29uc29sZS5sb2cocHJvbXB0SW1hZ2UubmF0dXJhbFdpZHRoICsgXCJ4XCIrcHJvbXB0SW1hZ2UubmF0dXJhbEhlaWdodCk7XHJcbiAgICAgICAgcHJvbXB0SW1hZ2Uub25sb2FkID0gKGV2OiBFdmVudCkgPT4ge31cclxuICAgICAgICBsZXQgc3JjVXJsPXRoaXMuc3JjVXJsKCk7XHJcbiAgICAgICAgaWYoc3JjVXJsKSB7XHJcbiAgICAgICAgICBwcm9tcHRJbWFnZS5zcmMgPSBzcmNVcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGV4dCA9IG51bGxcclxuICAgICAgdGhpcy5fc3JjID0gbnVsbFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFZJUlRVQUxfSEVJR0hUID0gNjAwO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9NUFRfRk9OVFNJWkUgPSA0ODtcclxuZXhwb3J0IGNvbnN0IE1JTl9GT05UX1NJWkU9NjtcclxuZXhwb3J0IGNvbnN0IEZBTExCQUNLX0RFRl9VU0VSX0FHRU5UX0ZPTlRfU0laRSA9IDE0O1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGNvbnRhaW5lcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnByb21wdGVyICNwcm9tcHRlciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIiBbcHJvbXB0TWVkaWFJdGVtc109XCJtZWRpYWl0ZW1zXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZSsncHgnXCIgW3N0eWxlLnZpc2liaWxpdHldPVwicHJEaXNwbGF5XCIgW3Byb21wdGVySGVpZ2h0XT1cInByb21wdGVySGVpZ2h0XCI+PC9hcHAtc3BycHJvbXB0ZXI+XHJcbiAgYFxyXG4gICxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGZsZXg6IDM7IC8qIHRoZSBjb250YWluZXIgY29uc3VtZXMgYWxsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgcGFkZGluZzogMTBwdDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0Q29udGFpbmVyIGltcGxlbWVudHMgT25Jbml0LEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWVkaWFpdGVtczogQXJyYXk8TWVkaWFpdGVtPnxudWxsPW51bGw7XHJcblxyXG4gIHByb21wdGVySGVpZ2h0OiBudW1iZXIgPSBWSVJUVUFMX0hFSUdIVFxyXG4gIGZvbnRTaXplITogbnVtYmVyO1xyXG4gIGZvbnRTaXplQ2hhbmdlPWZhbHNlXHJcbiAgY29udGVudENoZWNrZWQ9ZmFsc2U7XHJcbiAgcHJEaXNwbGF5PSdoaWRkZW4nO1xyXG4gIGRlZmF1bHRTdHlsZSE6IENTU1N0eWxlRGVjbGFyYXRpb247XHJcbiAgZGVmYXVsdEZvbnRTaXplUHghOiBudW1iZXI7XHJcblxyXG4gIGF1dG9Gb250U2l6ZT1mYWxzZTtcclxuICBAVmlld0NoaWxkKFByb21wdGVyLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcm9tcHRlciE6IFByb21wdGVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOkVsZW1lbnRSZWYpe31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgLy8gZmFsbGJhY2tcclxuICAgIHRoaXMuZGVmYXVsdEZvbnRTaXplUHggPSBGQUxMQkFDS19ERUZfVVNFUl9BR0VOVF9GT05UX1NJWkU7XHJcbiAgICAvLyB0cnkgdG8gcGFyc2UgZGVmYXVsdCB1c2VyIGFnZW50IGZvbnQgc2l6ZSAobm8gY29tbWVudCBhYm91dCBET00gQVBJIGRlc2lnbiA7KSApXHJcbiAgICB0aGlzLmRlZmF1bHRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBsZXQgZGVmRm9udFNpemVTdHIgPSB0aGlzLmRlZmF1bHRTdHlsZS5mb250U2l6ZTtcclxuICAgIGlmIChkZWZGb250U2l6ZVN0cikge1xyXG4gICAgICBkZWZGb250U2l6ZVN0ciA9IGRlZkZvbnRTaXplU3RyLnRyaW0oKTtcclxuICAgICAgaWYgKGRlZkZvbnRTaXplU3RyLmVuZHNXaXRoKCdweCcpKSB7XHJcbiAgICAgICAgLy8gcGFyc2VGbG9hdCBpZ25vcmVzIG5vbiBudW1iZXIgY2hhcmFjdGVycyBhdCB0aGUgZW5kIChhZ2FpbiBubyBjb21tZW50IDspIClcclxuICAgICAgICB0aGlzLmRlZmF1bHRGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChkZWZGb250U2l6ZVN0cik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUuaW5mbyhcIkRlZmF1bHQgZm9udCBzaXplOiBcIit0aGlzLmRlZmF1bHRGb250U2l6ZVB4KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSkge1xyXG4gICAgICBpZiAodGhpcy5mb250U2l6ZUNoYW5nZSkge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2coXCJuZ2FmdGVyY29udGVudGNoZWNrZWQsIGNhbGwgZm9udFNpemVUb0ZpdCBcIik7XHJcbiAgICAgICAgLy8gY2hlY2sgcHJvbXB0ZXIgc2l6ZSBhZ2FpblxyXG4gICAgICAgIHRoaXMuZm9udFNpemVUb0ZpdCgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gZm9udCBzaXplIHdhcyBjaGVja2VkLCBidXQgd2UgbmVlZCB0byBjaGVjayBhZ2FpbiBhZnRlciBhbmd1bGFyIGNvbnRlbnQgY2hlY2tcclxuICAgICAgICBpZiAoIXRoaXMuY29udGVudENoZWNrZWQpIHtcclxuICAgICAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5nYWZ0ZXJjb250ZW50Y2hlY2tlZCwgbm90IGZvbnQgc2l6ZSBjaGFuZ2VkLCBjYWxsIFwiKTtcclxuICAgICAgICAgIHRoaXMuZm9udFNpemVUb0ZpdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgc2V0IG1lZGlhaXRlbXMobWVkaWFpdGVtczpBcnJheTxNZWRpYWl0ZW0+fG51bGwpe1xyXG5cclxuICAgIHRoaXMuX21lZGlhaXRlbXMgPSBtZWRpYWl0ZW1zXHJcblxyXG4gICAgbGV0IG1pbWV0eXBlOnN0cmluZ3xudWxsPW51bGw7XHJcbiAgICBpZiAodGhpcy5fbWVkaWFpdGVtcyAmJiB0aGlzLl9tZWRpYWl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGxldCBtaSA9IHRoaXMuX21lZGlhaXRlbXNbMF1cclxuICAgICAgbWltZXR5cGUgPSAndGV4dC9wbGFpbidcclxuICAgICAgaWYgKG1pLm1pbWV0eXBlKSB7XHJcbiAgICAgICAgbWltZXR5cGUgPSBtaS5taW1ldHlwZS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYobWkuZGVmYXVsdFZpcnR1YWxWaWV3Qm94KXtcclxuICAgICAgICB0aGlzLnByb21wdGVySGVpZ2h0PW1pLmRlZmF1bHRWaXJ0dWFsVmlld0JveC5oZWlnaHRcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucHJvbXB0ZXJIZWlnaHQ9VklSVFVBTF9IRUlHSFRcclxuICAgIH1cclxuICAgIHRoaXMucHJvbXB0ZXIucHJvbXB0TWVkaWFJdGVtcz10aGlzLl9tZWRpYWl0ZW1zXHJcbiAgICB0aGlzLmF1dG9Gb250U2l6ZT0obWltZXR5cGUhPW51bGwgJiYgbWltZXR5cGUuc3RhcnRzV2l0aCgndGV4dC8nKSk7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSl7XHJcbiAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICAgIHRoaXMubGF5b3V0KClcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1lZGlhaXRlbXMoKTpBcnJheTxNZWRpYWl0ZW0+fG51bGx7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYWl0ZW1zO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIm9ucmVzaXplLCBjYWxsIGZvbnRTaXplVG9GaXQgaG9vayBcIik7XHJcbiAgICB0aGlzLmxheW91dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsYXlvdXQoKSB7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSAmJiB0aGlzLmVsUmVmKSB7XHJcblxyXG4gICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlPXRydWU7XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZVxyXG4gICAgICB0aGlzLnByRGlzcGxheSA9ICdoaWRkZW4nXHJcbiAgICAgIGxldCBlbEggPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAvLyBwcm9tcHQgdGV4dCBmb250IHNpemUgc2hvdWxkIHNjYWxlIGFjY29yZGluZyB0byBwcm9tcHQgY29udGFpbmVyIGhlaWdodFxyXG4gICAgICBsZXQgc2NhbGVkU2l6ZSA9IE1hdGgucm91bmQoKGVsSCAvIHRoaXMucHJvbXB0ZXJIZWlnaHQpICogREVGQVVMVF9QUk9NUFRfRk9OVFNJWkUpO1xyXG5cclxuICAgICAgLy8gbWluIHByb21wdCBmb250IHNpemUgaXMgZGVmYXVsdCB1c2VyIGFnZW50IHNpemVcclxuICAgICAgbGV0IG5ld1NpemUgPSBNYXRoLm1heChzY2FsZWRTaXplLCB0aGlzLmRlZmF1bHRGb250U2l6ZVB4KTtcclxuICAgICAgaWYgKHRoaXMuZm9udFNpemUgIT09IG5ld1NpemUpIHtcclxuICAgICAgICB0aGlzLmZvbnRTaXplID0gbmV3U2l6ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy9jb25zb2xlLmxvZyhcImxheW91dCwgY2FsbCBmb250U2l6ZVRvRml0IGhvb2sgXCIpO1xyXG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvbnRTaXplVG9GaXQoKSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBmb250U2l6ZVRvRml0KCl7XHJcbiAgICAgIGlmKHRoaXMucHJvbXB0ZXIpIHtcclxuICAgICAgICBsZXQgcFc9dGhpcy5wcm9tcHRlci53aWR0aCgpO1xyXG4gICAgICAgIGxldCBwSD10aGlzLnByb21wdGVyLmhlaWdodCgpO1xyXG4gICAgICAgIGlmICh0aGlzLl9tZWRpYWl0ZW1zICYmIHRoaXMuZWxSZWYgJiYgcFcgJiYgcEgpIHtcclxuICAgICAgICAgIGxldCBuRWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJwcm9tcHRlcjogXCIgKyB0aGlzLnByb21wdGVyLndpZHRoKCkgKyBcInhcIiArIHRoaXMucHJvbXB0ZXIuaGVpZ2h0KCkrIFwiIGZvbnQgc2l6ZTogXCIrdGhpcy5mb250U2l6ZSlcclxuICAgICAgICAgIGlmICh0aGlzLmZvbnRTaXplID49IE1JTl9GT05UX1NJWkUgJiYgKHBXID4gbkVsLm9mZnNldFdpZHRoIHx8IHBIID4gbkVsLm9mZnNldEhlaWdodCkpIHtcclxuICAgICAgICAgICAgLy8gcHJvbXB0ZXIgb3ZlcnNpemVzIHByb21wdGVyIGNvbnRhaW5lci4gRGVjcmVhc2UgZm9udCBzaXplLlxyXG4gICAgICAgICAgICAvLyBzZXQgaW52aXNpYmxlIGR1cmluZyBmb250IHNpemUgY2hlY2tzXHJcbiAgICAgICAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ2hpZGRlbidcclxuICAgICAgICAgICAgLy8gZGVjcmVhc2UgZm9udCBzaXplXHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemUgPSB0aGlzLmZvbnRTaXplIC0gMVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkRlY3JlYXNlZCBmb250IHNpemU6IFwiK3RoaXMuZm9udFNpemUgKVxyXG4gICAgICAgICAgICAvLyBTZXQgZmxhZ3NcclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgICAgICAgIC8vIGhvb2sgdGhlIG5leHQgY2hlY2tcclxuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb250U2l6ZVRvRml0KCkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBwcm9tcHRlciBmaXRzIGluICBwcm9tcHRlciBjb250YWluZXIsIGZvbnQgc2l6ZSBzaG91bGQgYmUgZmluZVxyXG5cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcInByRGlzcGxheTogXCIrdGhpcy5wckRpc3BsYXkpXHJcblxyXG4gICAgICAgICAgICAvL2lmKHRoaXMuY29udGVudENoZWNrZWQgJiYgISB0aGlzLmZvbnRTaXplQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJEaXNwbGF5IVwiKVxyXG4gICAgICAgICAgICAvLyBzZXQgcHJvbXB0ZXIgdmlzaWJsZSBub3dcclxuICAgICAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAndmlzaWJsZSdcclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2UgPSBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlByb21wdCB0ZXh0IHdpZHRoOiBcIit0ZXh0U2l6ZS53aWR0aCtcIiBcIit0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgrXCJ4XCIrdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRpbmdjb250YWluZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHNwci1yZWNpbnN0cnVjdGlvbnMgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIiBbaXRlbUNvdW50XT1cIml0ZW1Db3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVjaW5zdHJ1Y3Rpb25zXT1cInByb21wdEl0ZW0/LnJlY2luc3RydWN0aW9ucz8ucmVjaW5zdHJ1Y3Rpb25zXCI+PC9zcHItcmVjaW5zdHJ1Y3Rpb25zPlxyXG4gICAgPGFwcC1zcHJwcm9tcHRjb250YWluZXIgW3Byb2plY3ROYW1lXT1cInByb2plY3ROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttZWRpYWl0ZW1zXT1cInNob3dQcm9tcHQ/KHByb21wdEl0ZW0/cHJvbXB0SXRlbS5tZWRpYWl0ZW1zOm51bGwpOm51bGxcIj48L2FwcC1zcHJwcm9tcHRjb250YWluZXI+XHJcblxyXG4gIGBcclxuICAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXg6IDM7IC8qIHRoZSBjb250YWluZXIgY29uc3VtZXMgYWxsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgcGFkZGluZzogMTBwdDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBhbGlnbiB2ZXJ0aWNhbCBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRpbmdDb250YWluZXIge1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHJvbXB0SXRlbTogUHJvbXB0SXRlbXxudWxsPW51bGw7XHJcbiAgQElucHV0KCkgc2hvd1Byb21wdDogYm9vbGVhbj1mYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaXRlbUNvdW50OiBudW1iZXJ8dW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSB0cmFuc3BvcnRBY3Rpb25zITogVHJhbnNwb3J0QWN0aW9ucztcclxuXHJcbiAgcHJpdmF0ZSBlITogSFRNTERpdkVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSB0b3VjaFN0YXJ0VGltZVN0YW1wOiBudW1iZXIgfCBudWxsPW51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0eXBlIFRvdWNoU3RhcnQgPSB7fVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmUgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaHN0YXJ0KGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggc3RhcnQhIFwiKVxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG4gICAgICBsZXQgdGFyZ2V0VG91Y2hlc0xlbiA9IGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICAvL2ZvcihsZXQgdGk9MDt0aTxldi50YXJnZXRUb3VjaGVzLmxlbmd0aDt0aSsrKXtcclxuICAgICAgLy9sZXQgdD1ldi50YXJnZXRUb3VjaGVzLml0ZW0odGkpO1xyXG4gICAgICAvLyBBbGwgeCB2YWx1ZXMgYXJlIHRoZSBzYW1lID8/XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCAjXCIrdGkrXCI6IHBhZ2VYOiBcIit0LnBhZ2VYK1wiIGNsaWVudFg6IFwiK3QuY2xpZW50WCtcIiBzY3JlZW5YOiBcIit0LnNjcmVlblgpXHJcbiAgICAgIC8vfVxyXG4gICAgICBpZiAodGFyZ2V0VG91Y2hlc0xlbiA9PSAxKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi50YXJnZXRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnRYID0gTWF0aC5yb3VuZCh0LnNjcmVlblgpO1xyXG4gICAgICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wID0gZXYudGltZVN0YW1wO1xyXG4gICAgICAgICAgdGhpcy5lLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggc3RhcnQgeDogXCIrdGhpcy5zdGFydFgpXHJcbiAgICAgICAgICAvL2V2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hFbmQoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBlbmQhXCIpXHJcbiAgICAvLyBSZXNldCBvZmZzZXQgc2hpZnRcclxuICAgIGlmICghKHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgJiYgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkpIHtcclxuXHJcbiAgICAgIGxldCBjaGFuZ2VkVG91Y2hlc0xlbiA9IGV2LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDtcclxuICAgICAgLy9jb25zb2xlLmxvZyhjaGFuZ2VkVG91Y2hlc0xlbitcIiBcIit0aGlzLnN0YXJ0WClcclxuICAgICAgaWYgKGNoYW5nZWRUb3VjaGVzTGVuID09IDEgJiYgdGhpcy5zdGFydFgpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LmNoYW5nZWRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIGxldCBkZWx0YVggPSBNYXRoLnJvdW5kKHQuY2xpZW50WCAtIHRoaXMuc3RhcnRYKTtcclxuICAgICAgICAgIGxldCB0b3VjaE1vdmVTcGVlZCA9IDA7XHJcbiAgICAgICAgICBpZiAodGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wKSB7XHJcbiAgICAgICAgICAgIHRvdWNoTW92ZVNwZWVkID0gZGVsdGFYIC8gKGV2LnRpbWVTdGFtcCAtIHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgZnV0dXJlRGVsdGFYID0gZGVsdGFYICsgKDgwMCAqIHRvdWNoTW92ZVNwZWVkKTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJEZWx0YVg6IFwiICsgZGVsdGFYICsgXCIgRnV0dXJlIGRlbHRhWDogXCIgKyBmdXR1cmVEZWx0YVggKyBcIiAgd2lkdGg6IFwiICsgdGhpcy5lLm9mZnNldFdpZHRoKVxyXG4gICAgICAgICAgaWYgKGZ1dHVyZURlbHRhWCA+IHRoaXMuZS5vZmZzZXRXaWR0aCAvIDIpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlN3aXBlIHJpZ2h0IGRldGVjdGVkISFcIilcclxuICAgICAgICAgICAgLy90aGlzLnN3aXBlZFJpZ2h0LmVtaXQoKVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLnBlcmZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmUuc3R5bGUubGVmdCA9IC10aGlzLmUub2Zmc2V0TGVmdCArIFwicHhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgtZnV0dXJlRGVsdGFYID4gdGhpcy5lLm9mZnNldFdpZHRoIC8gMikge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiU3dpcGUgbGVmdCBkZXRlY3RlZCEhXCIpXHJcbiAgICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gLXRoaXMuZS5vZmZzZXRMZWZ0ICsgXCJweFwiO1xyXG4gICAgICAgICAgICAvL3RoaXMuc3dpcGVkTGVmdC5lbWl0KClcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLnBlcmZvcm0oKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHJlc2V0IGFuaW1hdGVkXHJcbiAgICAgIHRoaXMuZS5zdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IDAuOHNcIjtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhcnRYID0gbnVsbDtcclxuICAgIHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCA9IG51bGw7XHJcbiAgICB0aGlzLmUuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaG1vdmUnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hNb3ZlKGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggbW92ZSFcIilcclxuICAgIGlmICghKHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgJiYgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkpIHtcclxuICAgICAgbGV0IHRhcmdldFRvdWNoZXNMZW4gPSBldi50YXJnZXRUb3VjaGVzLmxlbmd0aDtcclxuICAgICAgaWYgKHRhcmdldFRvdWNoZXNMZW4gPT0gMSAmJiB0aGlzLnN0YXJ0WCkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYudGFyZ2V0VG91Y2hlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICBsZXQgZGVsdGFYID0gTWF0aC5yb3VuZCh0LnNjcmVlblggLSB0aGlzLnN0YXJ0WCk7XHJcbiAgICAgICAgICB0aGlzLmUuc3R5bGUubGVmdCA9IGRlbHRhWCArIFwicHhcIjtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiVG91Y2ggbW92ZSBkZWx0YSB4OiBcIitkZWx0YVgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoQ2FuY2VsKGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggY2FuY2VsIVwiKVxyXG4gICAgdGhpcy5lLnN0eWxlLmxlZnQgPSBcIjBweFwiO1xyXG4gICAgLy9ldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0aW5nJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICA8YXBwLXNpbXBsZXRyYWZmaWNsaWdodCBbc3RhdHVzXT1cInN0YXJ0U3RvcFNpZ25hbFN0YXRlXCI+PC9hcHAtc2ltcGxldHJhZmZpY2xpZ2h0PlxyXG4gICAgPGFwcC1zcHJwcm9tcHRpbmdjb250YWluZXIgW3Byb2plY3ROYW1lXT1cInByb2plY3ROYW1lXCIgW3Byb21wdEl0ZW1dPVwicHJvbXB0SXRlbVwiIFtzaG93UHJvbXB0XT1cInNob3dQcm9tcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1Db3VudF09XCJpdGVtcz8ubGVuZ3RoXCIgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zcG9ydEFjdGlvbnNdPVwidHJhbnNwb3J0QWN0aW9uc1wiPjwvYXBwLXNwcnByb21wdGluZ2NvbnRhaW5lcj5cclxuICAgIDxhcHAtc3BycHJvZ3Jlc3MgKm5nSWY9XCIhc2NyZWVuWHNcIiBbaXRlbXNdPVwiaXRlbXNcIiBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChvblJvd1NlbGVjdCk9XCJpdGVtU2VsZWN0KCRldmVudClcIj48L2FwcC1zcHJwcm9ncmVzcz5cclxuICAgIDxkaXYgI2FzQ3QgW2NsYXNzLmFjdGl2ZV09XCIhYXVkaW9TaWduYWxDb2xsYXBzZWQgJiYgIXNjcmVlblhzXCI+XHJcblxyXG4gICAgICA8YXBwLWF1ZGlvZGlzcGxheSAjYXVkaW9TaWduYWxDb250YWluZXIgW2NsYXNzLmFjdGl2ZV09XCIhYXVkaW9TaWduYWxDb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXVkaW9DbGlwXT1cImRpc3BsYXlBdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U2VsZWN0aW9uQWN0aW9uXT1cInBsYXlTZWxlY3Rpb25BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdG9wQWN0aW9uXT1cInBsYXlTdG9wQWN0aW9uXCI+PC9hcHAtYXVkaW9kaXNwbGF5PlxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRncmV5O1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIHVzZSBhbGwgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIGZsZXg6IDE7IC8qIC4uLiBhbmQgZmlsbCByZXN0IG9mIHZlcnRpY2FsIGF2YWlsYWJsZSBzcGFjZSAob3RoZXIgY29tcG9uZW50cyBoYXZlIGZsZXggMCkgKi9cclxuXHJcbiAgICAvKiBXb3JrYXJvdW5kIGZvciBGaXJlZm94XHJcbiAgICBJZiB0aGUgcHJvZ3Jlc3MgdGFibGUgZ2V0cyBsb25nIChzY3JpcHQgd2l0aCBtYW55IGl0ZW1zKSBGRiBpbmNyZWFzZXMgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmZsb3cgcHJvZ3Jlc3NDb250YWluZXIgYW5kXHJcbiAgICB0aGUgd2hvbGUgYXBwIGRvZXMgbm90IGZpdCBpbnRvIHRoZSBwYWdlIGFueW1vcmUuIFRoZSBhcHAgb3ZlcmZsb3dzIGFuZCBzaG93cyBhIHZlcnRpY2FsIHNjcm9sbGJhciBmb3IgdGhlIHdob2xlIGFwcC5cclxuICAgIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCB0cmFmZmljIGxpZ2h0LCByaWdodCBwcm9tcHRlciAoY29udGFpbmVyKSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgfWAsIGBcclxuICAgIGFwcC1zaW1wbGV0cmFmZmljbGlnaHQge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBhcHAtc3BycHJvZ3Jlc3Mge1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblxyXG4gICAgICAvKiBoZWlnaHQ6IDUwJTsgKi9cclxuICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcblxyXG4gICAgICAvKiBvdmVyZmxvdzogaGlkZGVuOyAqL1xyXG5cclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmVkOyAqL1xyXG4gICAgfWAsIGBcclxuICAgIGRpdi5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAvKmxlZnQ6IDBweDsgKi9cclxuXHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIC8qIG1hcmdpbjogMjBweDsgKi9cclxuICAgICAgLyogYm9yZGVyOiAyMHB4OyAqL1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcblxyXG4gICAgfWBcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0aW5nIGV4dGVuZHMgUmVzcG9uc2l2ZUNvbXBvbmVudHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFNpbXBsZVRyYWZmaWNMaWdodCwgeyBzdGF0aWM6IHRydWUgfSkgc2ltcGxlVHJhZmZpY0xpZ2h0ITogU2ltcGxlVHJhZmZpY0xpZ2h0O1xyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdWRpb0Rpc3BsYXkhOiBBdWRpb0Rpc3BsYXk7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzdGFydFN0b3BTaWduYWxTdGF0ZSE6IFN0YXJ0U3RvcFNpZ25hbFN0YXRlO1xyXG4gIEBJbnB1dCgpIHByb21wdEl0ZW06IFByb21wdEl0ZW0gfCBudWxsPW51bGw7XHJcbiAgQElucHV0KCkgc2hvd1Byb21wdDogYm9vbGVhbj1mYWxzZTtcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8SXRlbT58dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIG9uTmV4dEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUHJldkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGl0ZW1TZWxlY3Qocm93SWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0LmVtaXQocm93SWR4KTtcclxuICB9XHJcblxyXG4gIG5leHRJdGVtKCkge1xyXG4gICAgdGhpcy5vbk5leHRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByZXZJdGVtKCkge1xyXG4gICAgdGhpcy5vblByZXZJdGVtLmVtaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
85
85
  }], playStopAction: [{
86
86
  type: Input
87
87
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXJfY29tYmlfcGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGVyX2NvbWJpX3BhbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFHdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBK0RsRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBZXhELFlBQXNCLEdBQXNCO1FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBWm5DLG1CQUFjLEdBQVMsS0FBSyxDQUFDO1FBQzVCLGlDQUE0QixHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ2xFLDBCQUFxQixHQUFvQixJQUFJLENBQUM7UUFHOUMseUJBQW9CLEdBQVUsSUFBSSxDQUFDO1FBQ25DLHFCQUFnQixHQUFtQixJQUFJLENBQUM7SUFRakQsQ0FBQztJQUVELGVBQWU7SUFFZixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQWdCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQXFCLEVBQUMsR0FBd0I7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsRUFBZ0I7UUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzsrR0F0Q1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNmhCQUVqQixhQUFhLCtFQUtiLFlBQVkscUZBL0RiOzs7Ozs7Ozs7Ozs7R0FZVDs0RkE0Q1UsaUJBQWlCO2tCQTVEN0IsU0FBUzsrQkFFRSx1QkFBdUIsWUFFdkI7Ozs7Ozs7Ozs7OztHQVlUO3lHQThDeUIsaUJBQWlCO3NCQUExQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVxQyxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge01lZGlhVXRpbHN9IGZyb20gXCIuLi8uLi9tZWRpYS91dGlsc1wiO1xyXG5pbXBvcnQge01hdFRhYmxlLCBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nTGlzdH0gZnJvbSBcIi4vcmVjb3JkaW5nX2xpc3RcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXB9IGZyb20gXCIuLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5pbXBvcnQge1JlY0ZpbGVzQ2FjaGV9IGZyb20gXCIuL3JlY29yZGluZ19maWxlX2NhY2hlXCI7XHJcbmltcG9ydCB7QXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGF0YV9ob2xkZXJcIjtcclxuaW1wb3J0IHtSZXNwb25zaXZlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdWkvcmVzcG9uc2l2ZV9jb21wb25lbnRcIjtcclxuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVjb3JkZXJjb21iaXBhbmUnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInNjcm9sbExpc3RcIj5cclxuICAgICAgICA8YXBwLXJlY29yZGluZ2xpc3QgW3NlbGVjdGVkUmVjb3JkaW5nRmlsZV09XCJzZWxlY3RlZFJlY29yZGluZ0ZpbGVcIiBbc2VsZWN0RGlzYWJsZWRdPVwic2VsZWN0RGlzYWJsZWRcIiAoc2VsZWN0ZWRSZWNvcmRpbmdGaWxlQ2hhbmdlZCk9XCJzZWxlY3RSZWNvcmRpbmdGaWxlKCRldmVudClcIj48L2FwcC1yZWNvcmRpbmdsaXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2FibGVcIiAgI2FzQ3QgW2NsYXNzLmFjdGl2ZV09XCIhYXVkaW9TaWduYWxDb2xsYXBzZWQgJiYgIXNjcmVlblhzXCI+XHJcbiAgICAgIDxhcHAtYXVkaW9kaXNwbGF5ICNhdWRpb1NpZ25hbENvbnRhaW5lciBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdWRpb0NsaXBdPVwiZGlzcGxheUF1ZGlvQ2xpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIj48L2FwcC1hdWRpb2Rpc3BsYXk+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGdyZXk7XHJcbiAgICB3aWR0aDogMTAwJTsgLyogdXNlIGFsbCBob3Jpem9udGFsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgZmxleDogMTsgLyogLi4uIGFuZCBmaWxsIHJlc3Qgb2YgdmVydGljYWwgYXZhaWxhYmxlIHNwYWNlIChvdGhlciBjb21wb25lbnRzIGhhdmUgZmxleCAwKSAqL1xyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYC5zY3JvbGxMaXN0e1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9YCwgYFxyXG4gICAgLmNvbGxhcHNhYmxlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgfWAsIGBcclxuICAgIC5jb2xsYXBzYWJsZS5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICBoZWlnaHQ6IDkwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgei1pbmRleDogMjAwOyAgLyogTmVlZHMgYSBoaWdoZXIgdmFsdWUgdGhlbiB0aGUgc3RpY2t5IE1hdGVyaWFsIHRhYmxlIGhlYWRlciAod2hpY2ggaXMgei1pbmRleDogMTAwKSAqL1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcbiAgICB9YF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL3NwZWVjaHJlY29yZGVyX21hdC5zY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRlckNvbWJpUGFuZSBleHRlbmRzIFJlc3BvbnNpdmVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG5cclxuICBAVmlld0NoaWxkKFJlY29yZGluZ0xpc3QpIHJlY29yZGluZ0xpc3RDb21wITpSZWNvcmRpbmdMaXN0O1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgYXVkaW9EaXNwbGF5ITogQXVkaW9EaXNwbGF5O1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkUmVjRmlsZShyZjpSZWNvcmRpbmdGaWxlKXtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdENvbXAuYWRkUmVjRmlsZShyZik7XHJcbiAgfVxyXG5cclxuICBzZXRSZWNGaWxlQXVkaW9EYXRhKHJlY0ZpbGU6UmVjb3JkaW5nRmlsZSxhZGg6QXVkaW9EYXRhSG9sZGVyfG51bGwpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdENvbXAuc2V0UmVjRmlsZUF1ZGlvRGF0YShyZWNGaWxlLCBhZGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3RDb21wLnNlbGVjdFRvcCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXJfY29tYmlfcGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGVyX2NvbWJpX3BhbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBK0RsRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBZXhELFlBQXNCLEdBQXNCO1FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBWm5DLG1CQUFjLEdBQVMsS0FBSyxDQUFDO1FBQzVCLGlDQUE0QixHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ2xFLDBCQUFxQixHQUFvQixJQUFJLENBQUM7UUFHOUMseUJBQW9CLEdBQVUsSUFBSSxDQUFDO1FBQ25DLHFCQUFnQixHQUFtQixJQUFJLENBQUM7SUFRakQsQ0FBQztJQUVELGVBQWU7SUFFZixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQWdCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQXFCLEVBQUMsR0FBd0I7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsRUFBZ0I7UUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzsrR0F0Q1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNmhCQUVqQixhQUFhLCtFQUtiLFlBQVkscUZBL0RiOzs7Ozs7Ozs7Ozs7R0FZVDs0RkE0Q1UsaUJBQWlCO2tCQTVEN0IsU0FBUzsrQkFFRSx1QkFBdUIsWUFFdkI7Ozs7Ozs7Ozs7OztHQVlUO3lHQThDeUIsaUJBQWlCO3NCQUExQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVxQyxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2hDLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge1JlY29yZGluZ0xpc3R9IGZyb20gXCIuL3JlY29yZGluZ19saXN0XCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwfSBmcm9tIFwiLi4vLi4vYXVkaW8vcGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheX0gZnJvbSBcIi4uLy4uL2F1ZGlvL2F1ZGlvX2Rpc3BsYXlcIjtcclxuaW1wb3J0IHtBdWRpb0RhdGFIb2xkZXJ9IGZyb20gXCIuLi8uLi9hdWRpby9hdWRpb19kYXRhX2hvbGRlclwiO1xyXG5pbXBvcnQge1Jlc3BvbnNpdmVDb21wb25lbnR9IGZyb20gXCIuLi8uLi91aS9yZXNwb25zaXZlX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRlcmNvbWJpcGFuZScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsTGlzdFwiPlxyXG4gICAgICAgIDxhcHAtcmVjb3JkaW5nbGlzdCBbc2VsZWN0ZWRSZWNvcmRpbmdGaWxlXT1cInNlbGVjdGVkUmVjb3JkaW5nRmlsZVwiIFtzZWxlY3REaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZFwiIChzZWxlY3RlZFJlY29yZGluZ0ZpbGVDaGFuZ2VkKT1cInNlbGVjdFJlY29yZGluZ0ZpbGUoJGV2ZW50KVwiPjwvYXBwLXJlY29yZGluZ2xpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzYWJsZVwiICAjYXNDdCBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZCAmJiAhc2NyZWVuWHNcIj5cclxuICAgICAgPGFwcC1hdWRpb2Rpc3BsYXkgI2F1ZGlvU2lnbmFsQ29udGFpbmVyIFtjbGFzcy5hY3RpdmVdPVwiIWF1ZGlvU2lnbmFsQ29sbGFwc2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1ZGlvQ2xpcF09XCJkaXNwbGF5QXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiPjwvYXBwLWF1ZGlvZGlzcGxheT5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcbiAgICAvKiBXb3JrYXJvdW5kIGZvciBGaXJlZm94XHJcbiAgICBJZiB0aGUgcHJvZ3Jlc3MgdGFibGUgZ2V0cyBsb25nIChzY3JpcHQgd2l0aCBtYW55IGl0ZW1zKSBGRiBpbmNyZWFzZXMgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmZsb3cgcHJvZ3Jlc3NDb250YWluZXIgYW5kXHJcbiAgICB0aGUgd2hvbGUgYXBwIGRvZXMgbm90IGZpdCBpbnRvIHRoZSBwYWdlIGFueW1vcmUuIFRoZSBhcHAgb3ZlcmZsb3dzIGFuZCBzaG93cyBhIHZlcnRpY2FsIHNjcm9sbGJhciBmb3IgdGhlIHdob2xlIGFwcC5cclxuICAgIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYC5zY3JvbGxMaXN0e1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9YCwgYFxyXG4gICAgLmNvbGxhcHNhYmxlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgfWAsIGBcclxuICAgIC5jb2xsYXBzYWJsZS5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICBoZWlnaHQ6IDkwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgei1pbmRleDogMjAwOyAgLyogTmVlZHMgYSBoaWdoZXIgdmFsdWUgdGhlbiB0aGUgc3RpY2t5IE1hdGVyaWFsIHRhYmxlIGhlYWRlciAod2hpY2ggaXMgei1pbmRleDogMTAwKSAqL1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcbiAgICB9YF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL3NwZWVjaHJlY29yZGVyX21hdC5zY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRlckNvbWJpUGFuZSBleHRlbmRzIFJlc3BvbnNpdmVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG5cclxuICBAVmlld0NoaWxkKFJlY29yZGluZ0xpc3QpIHJlY29yZGluZ0xpc3RDb21wITpSZWNvcmRpbmdMaXN0O1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvRGlzcGxheSwgeyBzdGF0aWM6IHRydWUgfSkgYXVkaW9EaXNwbGF5ITogQXVkaW9EaXNwbGF5O1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkUmVjRmlsZShyZjpSZWNvcmRpbmdGaWxlKXtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdENvbXAuYWRkUmVjRmlsZShyZik7XHJcbiAgfVxyXG5cclxuICBzZXRSZWNGaWxlQXVkaW9EYXRhKHJlY0ZpbGU6UmVjb3JkaW5nRmlsZSxhZGg6QXVkaW9EYXRhSG9sZGVyfG51bGwpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdENvbXAuc2V0UmVjRmlsZUF1ZGlvRGF0YShyZWNGaWxlLCBhZGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3RDb21wLnNlbGVjdFRvcCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
185
185
  }], selectedRecordingFile: [{
186
186
  type: Input
187
187
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQTRFckQsTUFBTSxPQUFPLGFBQWE7SUFXeEI7UUFWQSx3RUFBd0U7UUFDaEUsa0JBQWEsR0FBZSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3hELDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLEdBQUcsR0FBUSxDQUFDLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQVcsSUFB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LElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MkdBbEZVLGFBQWE7K0ZBQWIsYUFBYSxrT0FyRWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUOzRGQXlCVSxhQUFhO2tCQXpFekIsU0FBUzsrQkFFRSxtQkFBbUIsWUFFbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUOzBFQWdDUSxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRSxxQkFBcUI7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGV9IGZyb20gXCIuLi9yZWNvcmRpbmdcIjtcclxuaW1wb3J0IHtNZWRpYVV0aWxzfSBmcm9tIFwiLi4vLi4vbWVkaWEvdXRpbHNcIjtcclxuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQge1JlY0ZpbGVzQ2FjaGV9IGZyb20gXCIuL3JlY29yZGluZ19maWxlX2NhY2hlXCI7XHJcbmltcG9ydCB7QXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGF0YV9ob2xkZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmdsaXN0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8aDI+UmVjb3JkaW5nIGxpc3Q8L2gyPlxyXG4gICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJyZWNvcmRpbmdMaXN0RGF0YVNvdXJjZVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MFwiPlxyXG4gICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2xzO3N0aWNreTp0cnVlXCI+PC90cj5cclxuICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogY29scztcIlxyXG4gICAgICAgICAgICAgIFtzY3JvbGxJbnRvVmlld1RvQm90dG9tXT1cImVsZW1lbnQudXVpZD09PXNlbGVjdGVkUmVjb3JkaW5nRmlsZT8udXVpZFwiIFtjbGFzcy5zZWxlY3RlZF09XCJlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48L3RyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXI+IzwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIlxyXG4gICAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtsZXQgaSA9IGluZGV4XCI+e3tyZWNvcmRpbmdMaXN0RGF0YVNvdXJjZS5kYXRhLmxlbmd0aCAtIGl9fTwvdGQ+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhcnRlZERhdGVcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPlN0YXJ0ZWQ8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJtb25vc3BhY2VkXCJcclxuICAgICAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57e2VsZW1lbnQuc3RhcnRlZERhdGUgfCBkYXRlOidZWVlZLU1NLWRkIEhIOm1tOnNzJ319PC90ZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPkxlbmd0aDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tsZW5ndGhUaW1lRm9ybWF0dGVkKGVsZW1lbnQpfX08L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvblwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgPCEtLVxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInJlY29yZGluZ0ZpbGVDYWNoZWQoZWxlbWVudCk9PT1mYWxzZVwiIHN0eWxlPVwiZm9udC1zaXplOjAuOGVtO3dpZHRoOjAuOGVtO2hlaWdodDowLjhlbVwiPlxyXG4gICAgICAgICAgICAgICAgY2xvdWRfZG93bmxvYWRcclxuICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIC0tPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZWxlY3RSZWNvcmRpbmdGaWxlKGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZCB8fCBlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0X2F0dHJpYnV0ZXM8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgIC8qIFdvcmthcm91bmQgZm9yIEZpcmVmb3hcclxuICAgIElmIHRoZSBwcm9ncmVzcyB0YWJsZSBnZXRzIGxvbmcgKHNjcmlwdCB3aXRoIG1hbnkgaXRlbXMpIEZGIGluY3JlYXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyZmxvdyBwcm9ncmVzc0NvbnRhaW5lciBhbmRcclxuICAgIHRoZSB3aG9sZSBhcHAgZG9lcyBub3QgZml0IGludG8gdGhlIHBhZ2UgYW55bW9yZS4gVGhlIGFwcCBvdmVyZmxvd3MgYW5kIHNob3dzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGZvciB0aGUgd2hvbGUgYXBwLlxyXG4gICAgU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjg2MzY4MzIvZmlyZWZveC1vdmVyZmxvdy15LW5vdC13b3JraW5nLXdpdGgtbmVzdGVkLWZsZXhib3hcclxuICAgICovXHJcbiAgICBtaW4taGVpZ2h0OiAwcHg7XHJcblxyXG4gIH1gLGBcclxuICAgIC5zZWxlY3RlZHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbiAgYF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL3NwZWVjaHJlY29yZGVyX21hdC5zY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdMaXN0IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdHtcclxuICAvL3ByaXZhdGUgcmVjb3JkaW5nTGlzdDpBcnJheTxSZWNvcmRpbmdGaWxlPj1uZXcgQXJyYXk8UmVjb3JkaW5nRmlsZT4oKTtcclxuICBwcml2YXRlIHJlY29yZGluZ0xpc3Q6UmVjRmlsZXNDYWNoZT1uZXcgUmVjRmlsZXNDYWNoZSgpO1xyXG4gIC8vcmVjb3JkaW5nTGlzdFN1YmplY3Q6U3ViamVjdDxBcnJheTxSZWNvcmRpbmdGaWxlPj4gPSBuZXcgU3ViamVjdDxBcnJheTxSZWNvcmRpbmdGaWxlPj4oKTtcclxuICByZWNvcmRpbmdMaXN0RGF0YVNvdXJjZTpNYXRUYWJsZURhdGFTb3VyY2U8UmVjb3JkaW5nRmlsZT47XHJcbiAgLy9jb2xzPVsnaW5kZXgnLCdsZW5ndGgnLCdzYW1wbGVzJywnc2FtcGxlcmF0ZScsJ2FjdGlvbiddO1xyXG4gIGNvbHM9WydpbmRleCcsJ3N0YXJ0ZWREYXRlJywnbGVuZ3RoJywnYWN0aW9uJ107XHJcbiAgQElucHV0KCkgc2VsZWN0RGlzYWJsZWQ6Ym9vbGVhbj1mYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkaW5nRmlsZT4oKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZGluZ0ZpbGU6UmVjb3JkaW5nRmlsZXxudWxsPW51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0RGF0YVNvdXJjZT1uZXcgTWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkRGF0YVNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZERhdGFTb3VyY2UoKXtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdC5yZWNGaWxlcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGxldCBjbXA6bnVtYmVyPTA7XHJcbiAgICAgIGxldCBhRDpEYXRlfG51bGw9bnVsbDtcclxuICAgICAgbGV0IGJEOkRhdGV8bnVsbD1udWxsO1xyXG4gICAgICBpZihhLl9zdGFydGVkQXNEYXRlT2JqICYmIGIuX3N0YXJ0ZWRBc0RhdGVPYmope1xyXG4gICAgICAgIGFEPWEuX3N0YXJ0ZWRBc0RhdGVPYmpcclxuICAgICAgICBiRD1iLl9zdGFydGVkQXNEYXRlT2JqXHJcbiAgICAgIH1lbHNlIGlmKGEuc3RhcnRlZERhdGUgJiYgYi5zdGFydGVkRGF0ZSl7XHJcbiAgICAgICAgYUQ9bmV3IERhdGUoYS5zdGFydGVkRGF0ZSk7XHJcbiAgICAgICAgYkQ9bmV3IERhdGUoYi5zdGFydGVkRGF0ZSk7XHJcbiAgICAgIH1lbHNlIGlmKGEuZGF0ZSAmJiBiLmRhdGUpIHtcclxuICAgICAgICBhRD1uZXcgRGF0ZShhLmRhdGUpO1xyXG4gICAgICAgIGJEPW5ldyBEYXRlKGIuZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYoYUQhPT1udWxsICYmIGJEIT09bnVsbCl7XHJcbiAgICAgICAgY21wPWJELmdldFRpbWUoKS1hRC5nZXRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNtcDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0RGF0YVNvdXJjZS5kYXRhPXRoaXMucmVjb3JkaW5nTGlzdC5yZWNGaWxlcztcclxuICB9XHJcblxyXG4gIGFkZFJlY0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3QuYWRkUmVjRmlsZShyZik7XHJcbiAgICB0aGlzLmJ1aWxkRGF0YVNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVjRmlsZUF1ZGlvRGF0YShyZWNGaWxlOlJlY29yZGluZ0ZpbGUsIGFkaDpBdWRpb0RhdGFIb2xkZXJ8bnVsbCkge1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LnNldFJlY0ZpbGVBdWRpb0RhdGEocmVjRmlsZSxhZGgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVjb3JkaW5nRmlsZShyZjpSZWNvcmRpbmdGaWxlKXtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdC5jdXJyZW50UmVjb3JkaW5nRmlsZT1yZjtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRpbmdGaWxlQ2hhbmdlZC5lbWl0KHJmKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRvcCgpIHtcclxuICAgIGlmICh0aGlzLnJlY29yZGluZ0xpc3QucmVjRmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNlbGVjdFJlY29yZGluZ0ZpbGUodGhpcy5yZWNvcmRpbmdMaXN0LnJlY0ZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxlbmd0aFRpbWVGb3JtYXR0ZWQocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICBsZXQgc3RyPSctLTotLTotLSc7XHJcbiAgICBsZXQgdGw9bnVsbDtcclxuICAgIGlmKHJmLnRpbWVMZW5ndGgpe1xyXG4gICAgICB0bD1yZi50aW1lTGVuZ3RoO1xyXG4gICAgfWVsc2UgaWYocmYuZnJhbWVzICYmIHJmLmF1ZGlvRGF0YUhvbGRlcikge1xyXG4gICAgICB0bD1yZi5mcmFtZXMgLyByZi5hdWRpb0RhdGFIb2xkZXI/LnNhbXBsZVJhdGVcclxuICAgIH1cclxuICAgIGlmKHRsKSB7XHJcbiAgICAgIHN0ciA9IE1lZGlhVXRpbHMudG9NZWRpYVRpbWUodGwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIHJlY29yZGluZ0ZpbGVDYWNoZWQocmY6UmVjb3JkaW5nRmlsZSk6Ym9vbGVhbnxudWxse1xyXG4gICAgbGV0IGNhY2hlZD1udWxsO1xyXG4gICAgaWYocmYgJiYgcmYuc2VydmVyUGVyc2lzdGVkKSB7XHJcbiAgICAgIGNhY2hlZCA9IChyZi5hdWRpb0RhdGFIb2xkZXIgIT0gbnVsbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FjaGVkO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQTRFckQsTUFBTSxPQUFPLGFBQWE7SUFXeEI7UUFWQSx3RUFBd0U7UUFDaEUsa0JBQWEsR0FBZSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3hELDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLEdBQUcsR0FBUSxDQUFDLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQVcsSUFB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LElBQUksQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MkdBbEZVLGFBQWE7K0ZBQWIsYUFBYSxrT0FyRWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUOzRGQXlCVSxhQUFhO2tCQXpFekIsU0FBUzsrQkFFRSxtQkFBbUIsWUFFbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUOzBFQWdDUSxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRSxxQkFBcUI7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGV9IGZyb20gXCIuLi9yZWNvcmRpbmdcIjtcclxuaW1wb3J0IHtNZWRpYVV0aWxzfSBmcm9tIFwiLi4vLi4vbWVkaWEvdXRpbHNcIjtcclxuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQge1JlY0ZpbGVzQ2FjaGV9IGZyb20gXCIuL3JlY29yZGluZ19maWxlX2NhY2hlXCI7XHJcbmltcG9ydCB7QXVkaW9EYXRhSG9sZGVyfSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGF0YV9ob2xkZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmdsaXN0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8aDI+UmVjb3JkaW5nIGxpc3Q8L2gyPlxyXG4gICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJyZWNvcmRpbmdMaXN0RGF0YVNvdXJjZVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MFwiPlxyXG4gICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2xzO3N0aWNreTp0cnVlXCI+PC90cj5cclxuICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogY29scztcIlxyXG4gICAgICAgICAgICAgIFtzY3JvbGxJbnRvVmlld1RvQm90dG9tXT1cImVsZW1lbnQudXVpZD09PXNlbGVjdGVkUmVjb3JkaW5nRmlsZT8udXVpZFwiIFtjbGFzcy5zZWxlY3RlZF09XCJlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48L3RyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXI+IzwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIlxyXG4gICAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtsZXQgaSA9IGluZGV4XCI+e3tyZWNvcmRpbmdMaXN0RGF0YVNvdXJjZS5kYXRhLmxlbmd0aCAtIGl9fTwvdGQ+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhcnRlZERhdGVcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPlN0YXJ0ZWQ8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJtb25vc3BhY2VkXCJcclxuICAgICAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57e2VsZW1lbnQuc3RhcnRlZERhdGUgfCBkYXRlOidZWVlZLU1NLWRkIEhIOm1tOnNzJ319PC90ZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPkxlbmd0aDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tsZW5ndGhUaW1lRm9ybWF0dGVkKGVsZW1lbnQpfX08L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvblwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgPCEtLVxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInJlY29yZGluZ0ZpbGVDYWNoZWQoZWxlbWVudCk9PT1mYWxzZVwiIHN0eWxlPVwiZm9udC1zaXplOjAuOGVtO3dpZHRoOjAuOGVtO2hlaWdodDowLjhlbVwiPlxyXG4gICAgICAgICAgICAgICAgY2xvdWRfZG93bmxvYWRcclxuICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIC0tPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZWxlY3RSZWNvcmRpbmdGaWxlKGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZCB8fCBlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0X2F0dHJpYnV0ZXM8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgIC8qIFdvcmthcm91bmQgZm9yIEZpcmVmb3hcclxuICAgIElmIHRoZSBwcm9ncmVzcyB0YWJsZSBnZXRzIGxvbmcgKHNjcmlwdCB3aXRoIG1hbnkgaXRlbXMpIEZGIGluY3JlYXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyZmxvdyBwcm9ncmVzc0NvbnRhaW5lciBhbmRcclxuICAgIHRoZSB3aG9sZSBhcHAgZG9lcyBub3QgZml0IGludG8gdGhlIHBhZ2UgYW55bW9yZS4gVGhlIGFwcCBvdmVyZmxvd3MgYW5kIHNob3dzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGZvciB0aGUgd2hvbGUgYXBwLlxyXG4gICAgU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI4NjM2ODMyL2ZpcmVmb3gtb3ZlcmZsb3cteS1ub3Qtd29ya2luZy13aXRoLW5lc3RlZC1mbGV4Ym94XHJcbiAgICAqL1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG5cclxuICB9YCxgXHJcbiAgICAuc2VsZWN0ZWR7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG4gIGBdLFxyXG4gIHN0eWxlVXJsczogWycuLi8uLi9zcGVlY2hyZWNvcmRlcl9tYXQuc2NzcyddXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nTGlzdCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXR7XHJcbiAgLy9wcml2YXRlIHJlY29yZGluZ0xpc3Q6QXJyYXk8UmVjb3JkaW5nRmlsZT49bmV3IEFycmF5PFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgcHJpdmF0ZSByZWNvcmRpbmdMaXN0OlJlY0ZpbGVzQ2FjaGU9bmV3IFJlY0ZpbGVzQ2FjaGUoKTtcclxuICAvL3JlY29yZGluZ0xpc3RTdWJqZWN0OlN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+ID0gbmV3IFN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+KCk7XHJcbiAgcmVjb3JkaW5nTGlzdERhdGFTb3VyY2U6TWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+O1xyXG4gIC8vY29scz1bJ2luZGV4JywnbGVuZ3RoJywnc2FtcGxlcycsJ3NhbXBsZXJhdGUnLCdhY3Rpb24nXTtcclxuICBjb2xzPVsnaW5kZXgnLCdzdGFydGVkRGF0ZScsJ2xlbmd0aCcsJ2FjdGlvbiddO1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2U9bmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxSZWNvcmRpbmdGaWxlPigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREYXRhU291cmNlKCl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3QucmVjRmlsZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBsZXQgY21wOm51bWJlcj0wO1xyXG4gICAgICBsZXQgYUQ6RGF0ZXxudWxsPW51bGw7XHJcbiAgICAgIGxldCBiRDpEYXRlfG51bGw9bnVsbDtcclxuICAgICAgaWYoYS5fc3RhcnRlZEFzRGF0ZU9iaiAmJiBiLl9zdGFydGVkQXNEYXRlT2JqKXtcclxuICAgICAgICBhRD1hLl9zdGFydGVkQXNEYXRlT2JqXHJcbiAgICAgICAgYkQ9Yi5fc3RhcnRlZEFzRGF0ZU9ialxyXG4gICAgICB9ZWxzZSBpZihhLnN0YXJ0ZWREYXRlICYmIGIuc3RhcnRlZERhdGUpe1xyXG4gICAgICAgIGFEPW5ldyBEYXRlKGEuc3RhcnRlZERhdGUpO1xyXG4gICAgICAgIGJEPW5ldyBEYXRlKGIuc3RhcnRlZERhdGUpO1xyXG4gICAgICB9ZWxzZSBpZihhLmRhdGUgJiYgYi5kYXRlKSB7XHJcbiAgICAgICAgYUQ9bmV3IERhdGUoYS5kYXRlKTtcclxuICAgICAgICBiRD1uZXcgRGF0ZShiLmRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGFEIT09bnVsbCAmJiBiRCE9PW51bGwpe1xyXG4gICAgICAgIGNtcD1iRC5nZXRUaW1lKCktYUQuZ2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbXA7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2UuZGF0YT10aGlzLnJlY29yZGluZ0xpc3QucmVjRmlsZXM7XHJcbiAgfVxyXG5cclxuICBhZGRSZWNGaWxlKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LmFkZFJlY0ZpbGUocmYpO1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFJlY0ZpbGVBdWRpb0RhdGEocmVjRmlsZTpSZWNvcmRpbmdGaWxlLCBhZGg6QXVkaW9EYXRhSG9sZGVyfG51bGwpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdC5zZXRSZWNGaWxlQXVkaW9EYXRhKHJlY0ZpbGUsYWRoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3QuY3VycmVudFJlY29yZGluZ0ZpbGU9cmY7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRpbmdMaXN0LnJlY0ZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RSZWNvcmRpbmdGaWxlKHRoaXMucmVjb3JkaW5nTGlzdC5yZWNGaWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZW5ndGhUaW1lRm9ybWF0dGVkKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgbGV0IHN0cj0nLS06LS06LS0nO1xyXG4gICAgbGV0IHRsPW51bGw7XHJcbiAgICBpZihyZi50aW1lTGVuZ3RoKXtcclxuICAgICAgdGw9cmYudGltZUxlbmd0aDtcclxuICAgIH1lbHNlIGlmKHJmLmZyYW1lcyAmJiByZi5hdWRpb0RhdGFIb2xkZXIpIHtcclxuICAgICAgdGw9cmYuZnJhbWVzIC8gcmYuYXVkaW9EYXRhSG9sZGVyPy5zYW1wbGVSYXRlXHJcbiAgICB9XHJcbiAgICBpZih0bCkge1xyXG4gICAgICBzdHIgPSBNZWRpYVV0aWxzLnRvTWVkaWFUaW1lKHRsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuICByZWNvcmRpbmdGaWxlQ2FjaGVkKHJmOlJlY29yZGluZ0ZpbGUpOmJvb2xlYW58bnVsbHtcclxuICAgIGxldCBjYWNoZWQ9bnVsbDtcclxuICAgIGlmKHJmICYmIHJmLnNlcnZlclBlcnNpc3RlZCkge1xyXG4gICAgICBjYWNoZWQgPSAocmYuYXVkaW9EYXRhSG9sZGVyICE9IG51bGwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhY2hlZDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
125
125
  }], recordingFile: [{
126
126
  type: Input
127
127
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbWV0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW1ldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7OztBQTBDbkQsTUFBTSxPQUFPLDBCQUEwQjtJQXZDdkM7UUEwQ1csY0FBUyxHQUF3QixJQUFJLENBQUM7UUFFdkMsbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBRXpDLGlCQUFZLEdBQVMsS0FBSyxDQUFDO1FBNEJwQyxhQUFRLEdBQWEsSUFBSSxDQUFDO1FBQzFCLFNBQUksR0FBdUIsSUFBSSxDQUFDO0tBU2pDO0lBcENDLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsYUFBbUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBQyxhQUFhLENBQUM7UUFDbEMsSUFBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0MsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFDO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUN0RDtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLHdFQUF3RTthQUN6RTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQztnQkFDdEMscUVBQXFFO2FBQ3RFO1NBQ0Y7YUFBSTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUtELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUM7UUFDWCxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7d0hBNUNVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLGlLQXJDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7NEZBR1UsMEJBQTBCO2tCQXZDdEMsU0FBUzsrQkFDRSx5QkFBeUIsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7OEJBTVEsU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1PLGFBQWE7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVV0aWx9IGZyb20gXCIuL3JlY29yZGluZy1maWxlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVjb3JkaW5nLWZpbGUtbWV0YScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlJlY29yZGluZyBmaWxlIElEOiB7e3JlY29yZGluZ0ZpbGU/LnJlY29yZGluZ0ZpbGVJZH19PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwic3RhdGVMb2FkaW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMjBcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxyXG4gICAgICAgIDx0YWJsZT5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW1Db2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5JdGVtY29kZTo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tpdGVtQ29kZX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJ1dWlkICYmICFpdGVtQ29kZVwiPlxyXG4gICAgICAgICAgICA8dGQ+VVVJRDo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3t1dWlkfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cInJlY29yZGluZ0ZpbGU/LnN0YXJ0ZWREYXRlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5TdGFydGVkOjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3JlY29yZGluZ0ZpbGU/LnN0YXJ0ZWREYXRlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIiFyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZSAmJiByZWNvcmRpbmdGaWxlPy5kYXRlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5EYXRlOjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3JlY29yZGluZ0ZpbGU/LmRhdGV9fTwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbUNvZGVcIj5cclxuICAgICAgICAgICAgPHRkPlByb21wdDo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdBc1BsYWluVGV4dCgpfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJzZXNzaW9uSWRcIj5cclxuICAgICAgICAgICAgPHRkPlNlc3Npb246PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbklkfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZU1ldGFDb21wb25lbnR7XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXNzaW9uSWQ6c3RyaW5nIHwgbnVtYmVyIHwgbnVsbD1udWxsO1xyXG5cclxuICBwcml2YXRlIF9yZWNvcmRpbmdGaWxlOlNwclJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBASW5wdXQoKSBzdGF0ZUxvYWRpbmc6Ym9vbGVhbj1mYWxzZTtcclxuXHJcbiAgZ2V0IHJlY29yZGluZ0ZpbGUoKTogU3ByUmVjb3JkaW5nRmlsZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY29yZGluZ0ZpbGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmVjb3JkaW5nRmlsZShyZWNvcmRpbmdGaWxlOlNwclJlY29yZGluZ0ZpbGV8bnVsbCl7XHJcbiAgICB0aGlzLl9yZWNvcmRpbmdGaWxlPXJlY29yZGluZ0ZpbGU7XHJcbiAgICBpZih0aGlzLl9yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgIHRoaXMuaXRlbUNvZGUgPSB0aGlzLl9yZWNvcmRpbmdGaWxlLml0ZW1Db2RlO1xyXG4gICAgICBpZighdGhpcy5pdGVtQ29kZSAmJiB0aGlzLl9yZWNvcmRpbmdGaWxlLnJlY29yZGluZz8uaXRlbWNvZGUpe1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGU9dGhpcy5fcmVjb3JkaW5nRmlsZS5yZWNvcmRpbmcuaXRlbWNvZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaXRlbUNvZGUpIHtcclxuXHJcbiAgICAgICAgdGhpcy51dWlkID0gbnVsbDtcclxuICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTcHJSZWNvcmRpbmdGaWxlOiBcIit0aGlzLml0ZW1Db2RlKyBcIiBVVUlEOiBcIit0aGlzLnV1aWQpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pdGVtQ29kZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy51dWlkID0gdGhpcy5fcmVjb3JkaW5nRmlsZT8udXVpZDtcclxuICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJSZWNvcmRpbmdGaWxlOiBcIit0aGlzLml0ZW1Db2RlKyBcIiBVVUlEOiBcIit0aGlzLnV1aWQpXHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLml0ZW1Db2RlPW51bGw7XHJcbiAgICAgIHRoaXMudXVpZD1udWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXRlbUNvZGU6c3RyaW5nfG51bGw9bnVsbDtcclxuICB1dWlkOnN0cmluZ3xudWxsfHVuZGVmaW5lZD1udWxsO1xyXG5cclxuICByZWNvcmRpbmdBc1BsYWluVGV4dCgpe1xyXG4gICAgbGV0IHQ9bnVsbDtcclxuICAgIGlmKHRoaXMuX3JlY29yZGluZ0ZpbGUpIHtcclxuICAgICAgdCA9IFJlY29yZGluZ0ZpbGVVdGlsLnJlY29yZGluZ0FzUGxhaW5UZXh0KHRoaXMuX3JlY29yZGluZ0ZpbGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbWV0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW1ldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7OztBQTBDbkQsTUFBTSxPQUFPLDBCQUEwQjtJQXZDdkM7UUEwQ1csY0FBUyxHQUF3QixJQUFJLENBQUM7UUFFdkMsbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBRXpDLGlCQUFZLEdBQVMsS0FBSyxDQUFDO1FBNEJwQyxhQUFRLEdBQWEsSUFBSSxDQUFDO1FBQzFCLFNBQUksR0FBdUIsSUFBSSxDQUFDO0tBU2pDO0lBcENDLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsYUFBbUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsR0FBQyxhQUFhLENBQUM7UUFDbEMsSUFBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0MsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFDO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUN0RDtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLHdFQUF3RTthQUN6RTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQztnQkFDdEMscUVBQXFFO2FBQ3RFO1NBQ0Y7YUFBSTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUtELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUM7UUFDWCxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7d0hBNUNVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLGlLQXJDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7NEZBR1UsMEJBQTBCO2tCQXZDdEMsU0FBUzsrQkFDRSx5QkFBeUIsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7OEJBTVEsU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1PLGFBQWE7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVVdGlsfSBmcm9tIFwiLi9yZWNvcmRpbmctZmlsZVwiO1xyXG5pbXBvcnQge1NwclJlY29yZGluZ0ZpbGV9IGZyb20gXCIuLi8uLi9yZWNvcmRpbmdcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlY29yZGluZy1maWxlLW1ldGEnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWNhcmQ+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5SZWNvcmRpbmcgZmlsZSBJRDoge3tyZWNvcmRpbmdGaWxlPy5yZWNvcmRpbmdGaWxlSWR9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cInN0YXRlTG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjIwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICA8dGFibGU+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtQ29kZVwiPlxyXG4gICAgICAgICAgICA8dGQ+SXRlbWNvZGU6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7aXRlbUNvZGV9fTwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXVpZCAmJiAhaXRlbUNvZGVcIj5cclxuICAgICAgICAgICAgPHRkPlVVSUQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7dXVpZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+U3RhcnRlZDo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCIhcmVjb3JkaW5nRmlsZT8uc3RhcnRlZERhdGUgJiYgcmVjb3JkaW5nRmlsZT8uZGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+RGF0ZTo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5kYXRlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW1Db2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5Qcm9tcHQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7cmVjb3JkaW5nQXNQbGFpblRleHQoKX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwic2Vzc2lvbklkXCI+XHJcbiAgICAgICAgICAgIDx0ZD5TZXNzaW9uOjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3Nlc3Npb25JZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICBgLFxyXG4gIHN0eWxlczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0ZpbGVNZXRhQ29tcG9uZW50e1xyXG5cclxuXHJcbiAgQElucHV0KCkgc2Vzc2lvbklkOnN0cmluZyB8IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfcmVjb3JkaW5nRmlsZTpTcHJSZWNvcmRpbmdGaWxlfG51bGw9bnVsbDtcclxuXHJcbiAgQElucHV0KCkgc3RhdGVMb2FkaW5nOmJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIGdldCByZWNvcmRpbmdGaWxlKCk6IFNwclJlY29yZGluZ0ZpbGUgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWNvcmRpbmdGaWxlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHJlY29yZGluZ0ZpbGUocmVjb3JkaW5nRmlsZTpTcHJSZWNvcmRpbmdGaWxlfG51bGwpe1xyXG4gICAgdGhpcy5fcmVjb3JkaW5nRmlsZT1yZWNvcmRpbmdGaWxlO1xyXG4gICAgaWYodGhpcy5fcmVjb3JkaW5nRmlsZSkge1xyXG4gICAgICB0aGlzLml0ZW1Db2RlID0gdGhpcy5fcmVjb3JkaW5nRmlsZS5pdGVtQ29kZTtcclxuICAgICAgaWYoIXRoaXMuaXRlbUNvZGUgJiYgdGhpcy5fcmVjb3JkaW5nRmlsZS5yZWNvcmRpbmc/Lml0ZW1jb2RlKXtcclxuICAgICAgICB0aGlzLml0ZW1Db2RlPXRoaXMuX3JlY29yZGluZ0ZpbGUucmVjb3JkaW5nLml0ZW1jb2RlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLml0ZW1Db2RlKSB7XHJcblxyXG4gICAgICAgIHRoaXMudXVpZCA9IG51bGw7XHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU3ByUmVjb3JkaW5nRmlsZTogXCIrdGhpcy5pdGVtQ29kZSsgXCIgVVVJRDogXCIrdGhpcy51dWlkKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudXVpZCA9IHRoaXMuX3JlY29yZGluZ0ZpbGU/LnV1aWQ7XHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjb3JkaW5nRmlsZTogXCIrdGhpcy5pdGVtQ29kZSsgXCIgVVVJRDogXCIrdGhpcy51dWlkKVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pdGVtQ29kZT1udWxsO1xyXG4gICAgICB0aGlzLnV1aWQ9bnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGl0ZW1Db2RlOnN0cmluZ3xudWxsPW51bGw7XHJcbiAgdXVpZDpzdHJpbmd8bnVsbHx1bmRlZmluZWQ9bnVsbDtcclxuXHJcbiAgcmVjb3JkaW5nQXNQbGFpblRleHQoKXtcclxuICAgIGxldCB0PW51bGw7XHJcbiAgICBpZih0aGlzLl9yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgIHQgPSBSZWNvcmRpbmdGaWxlVXRpbC5yZWNvcmRpbmdBc1BsYWluVGV4dCh0aGlzLl9yZWNvcmRpbmdGaWxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -29,7 +29,7 @@ RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
29
29
  <legend>Versions</legend>
30
30
  <mat-progress-spinner *ngIf="naviInfoLoading" mode="indeterminate" [diameter]="15"></mat-progress-spinner>
31
31
  <select *ngIf="!naviInfoLoading" [disabled]="versions==null || versions.length==1" (change)="selectVersionChange($event)">
32
- <option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<span *ngIf="i==0"> (latest)</span></option>
32
+ <option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<ng-container *ngIf="i==0"> (latest)</ng-container></option>
33
33
  </select>
34
34
  </fieldset>
35
35
  <fieldset>
@@ -64,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
64
64
  <legend>Versions</legend>
65
65
  <mat-progress-spinner *ngIf="naviInfoLoading" mode="indeterminate" [diameter]="15"></mat-progress-spinner>
66
66
  <select *ngIf="!naviInfoLoading" [disabled]="versions==null || versions.length==1" (change)="selectVersionChange($event)">
67
- <option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<span *ngIf="i==0"> (latest)</span></option>
67
+ <option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<ng-container *ngIf="i==0"> (latest)</ng-container></option>
68
68
  </select>
69
69
  </fieldset>
70
70
  <fieldset>
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
111
111
  }], naviInfoLoading: [{
112
112
  type: Input
113
113
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbmF2aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW5hdmkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBNENsRSxNQUFNLE9BQU8sMEJBQTBCO0lBYXJDO1FBTFMsYUFBUSxHQUFxQixJQUFJLENBQUM7UUFDbEMsWUFBTyxHQUFjLElBQUksQ0FBQztRQUUxQixvQkFBZSxHQUFDLEtBQUssQ0FBQztJQUVmLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFRO1FBQzFCLHlFQUF5RTtRQUV2RSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBMkIsQ0FBQztRQUM3QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7O3dIQTFCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQix1VUF2QzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWdDRDs0RkFPRSwwQkFBMEI7a0JBekN0QyxTQUFTOytCQUNFLHlCQUF5QixZQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQ0Q7MEVBUUEsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlY29yZGluZy1maWxlLW5hdmknLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiAjY29udHJvbFBhbmVsIHN0eWxlPVwiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7XCI+XHJcbiAgICAgICAgICA8ZGl2ICNuYXZpIHN0eWxlPVwiZmxleDogMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztmbGV4LXdyYXA6IG5vd3JhcFwiPlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgPGxlZ2VuZD5WZXJzaW9uczwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cIm5hdmlJbmZvTG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgKm5nSWY9XCIhbmF2aUluZm9Mb2FkaW5nXCIgW2Rpc2FibGVkXT1cInZlcnNpb25zPT1udWxsIHx8IHZlcnNpb25zLmxlbmd0aD09MVwiIChjaGFuZ2UpPVwic2VsZWN0VmVyc2lvbkNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHYgb2YgdmVyc2lvbnM7IGxldCBpID0gaW5kZXhcIiBbc2VsZWN0ZWRdPVwidj09PXZlcnNpb25cIiB2YWx1ZT1cInt7dn19XCI+e3t2fX08c3BhbiAqbmdJZj1cImk9PTBcIj4gKGxhdGVzdCk8L3NwYW4+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgICAgPGZpZWxkc2V0PlxyXG4gICAgICAgICAgICAgIDxsZWdlbmQ+TmF2aWdhdGU8L2xlZ2VuZD5cclxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJuYXZpSW5mb0xvYWRpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtkaWFtZXRlcl09XCIxNVwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFuYXZpSW5mb0xvYWRpbmdcIiAgc3R5bGU9XCJmbGV4OiAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjogcm93O2ZsZXgtd3JhcDogbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJmaXJzdEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cIiFmaXJzdEFjdGlvbiB8fCBmaXJzdEFjdGlvbi5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJGaXJzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Zmlyc3RfcGFnZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInByZXZBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCIhcHJldkFjdGlvbiB8fCBwcmV2QWN0aW9uLmRpc2FibGVkXCIgbWF0VG9vbHRpcD1cIlByZXZpb3VzIHJlY29yZGluZyBmaWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJuZXh0QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIW5leHRBY3Rpb24gfHwgbmV4dEFjdGlvbi5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJOZXh0IHJlY29yZGluZyBmaWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibGFzdEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cIiFsYXN0QWN0aW9uIHx8IGxhc3RBY3Rpb24uZGlzYWJsZWRcIiBtYXRUb29sdGlwPVwiTGFzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+bGFzdF9wYWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXRlbXMgJiYgaXRlbVBvcyE9PW51bGwgJiYgaXRlbVBvcyE9PXVuZGVmaW5lZFwiPkl0ZW0ge3tpdGVtUG9zKzF9fSBvZiB7e2l0ZW1zfX08L3A+XHJcbiAgICAgICAgICAgICAgPHA+KExpc3Qgb3JkZXJlZCBieSBkYXRlKTwvcD5cclxuICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgICAgZmxleDogMDtcclxuXHJcbiAgICAgIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGZpcnN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHByZXZBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbmV4dEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBsYXN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOm51bWJlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1Qb3M6bnVtYmVyIHwgbnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0VmVyc2lvbjogQWN0aW9uPG51bWJlcj58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHZlcnNpb25zOiBBcnJheTxudW1iZXI+fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSB2ZXJzaW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICBASW5wdXQoKSBuYXZpSW5mb0xvYWRpbmc9ZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmVyc2lvbkNoYW5nZShldjpFdmVudCl7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJDaGFuZ2UgZXZlbnQ6IFwiK2V2LnRhcmdldC52YWx1ZSsgXCIsIGFzIE5yOiBcIit2ZXJzaW9uTnIpO1xyXG5cclxuICAgICAgY29uc3Qgc2VsRWwgPSBldi50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XHJcbiAgICAgIGxldCB2ZXJzaW9uTnIgPSBwYXJzZUludChzZWxFbC52YWx1ZSk7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0VmVyc2lvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VmVyc2lvbi5wZXJmb3JtKHZlcnNpb25Ocik7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbmF2aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW5hdmkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUE0Q3ZELE1BQU0sT0FBTywwQkFBMEI7SUFhckM7UUFMUyxhQUFRLEdBQXFCLElBQUksQ0FBQztRQUNsQyxZQUFPLEdBQWMsSUFBSSxDQUFDO1FBRTFCLG9CQUFlLEdBQUMsS0FBSyxDQUFDO0lBRWYsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQVE7UUFDMUIseUVBQXlFO1FBRXZFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUEyQixDQUFDO1FBQzdDLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQzs7d0hBMUJVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLHVVQXZDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBZ0NEOzRGQU9FLDBCQUEwQjtrQkF6Q3RDLFNBQVM7K0JBQ0UseUJBQXlCLFlBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWdDRDswRUFRQSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlY29yZGluZy1maWxlLW5hdmknLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiAjY29udHJvbFBhbmVsIHN0eWxlPVwiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7XCI+XHJcbiAgICAgICAgICA8ZGl2ICNuYXZpIHN0eWxlPVwiZmxleDogMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztmbGV4LXdyYXA6IG5vd3JhcFwiPlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgPGxlZ2VuZD5WZXJzaW9uczwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cIm5hdmlJbmZvTG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgKm5nSWY9XCIhbmF2aUluZm9Mb2FkaW5nXCIgW2Rpc2FibGVkXT1cInZlcnNpb25zPT1udWxsIHx8IHZlcnNpb25zLmxlbmd0aD09MVwiIChjaGFuZ2UpPVwic2VsZWN0VmVyc2lvbkNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHYgb2YgdmVyc2lvbnM7IGxldCBpID0gaW5kZXhcIiBbc2VsZWN0ZWRdPVwidj09PXZlcnNpb25cIiB2YWx1ZT1cInt7dn19XCI+e3t2fX08bmctY29udGFpbmVyICpuZ0lmPVwiaT09MFwiPiAobGF0ZXN0KTwvbmctY29udGFpbmVyPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICAgIDxmaWVsZHNldD5cclxuICAgICAgICAgICAgICA8bGVnZW5kPk5hdmlnYXRlPC9sZWdlbmQ+XHJcbiAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwibmF2aUluZm9Mb2FkaW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMTVcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbmF2aUluZm9Mb2FkaW5nXCIgIHN0eWxlPVwiZmxleDogMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztmbGV4LXdyYXA6IG5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZmlyc3RBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCIhZmlyc3RBY3Rpb24gfHwgZmlyc3RBY3Rpb24uZGlzYWJsZWRcIiBtYXRUb29sdGlwPVwiRmlyc3QgcmVjb3JkaW5nIGZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpcnN0X3BhZ2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwcmV2QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIXByZXZBY3Rpb24gfHwgcHJldkFjdGlvbi5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJQcmV2aW91cyByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibmV4dEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cIiFuZXh0QWN0aW9uIHx8IG5leHRBY3Rpb24uZGlzYWJsZWRcIiBtYXRUb29sdGlwPVwiTmV4dCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxhc3RBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCIhbGFzdEFjdGlvbiB8fCBsYXN0QWN0aW9uLmRpc2FibGVkXCIgbWF0VG9vbHRpcD1cIkxhc3QgcmVjb3JkaW5nIGZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxhc3RfcGFnZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8cCAqbmdJZj1cIml0ZW1zICYmIGl0ZW1Qb3MhPT1udWxsICYmIGl0ZW1Qb3MhPT11bmRlZmluZWRcIj5JdGVtIHt7aXRlbVBvcysxfX0gb2Yge3tpdGVtc319PC9wPlxyXG4gICAgICAgICAgICAgIDxwPihMaXN0IG9yZGVyZWQgYnkgZGF0ZSk8L3A+XHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgOmhvc3Qge1xyXG4gICAgICAgIGZsZXg6IDA7XHJcblxyXG4gICAgICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0ZpbGVOYXZpQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBmaXJzdEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwcmV2QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG5leHRBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbGFzdEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpdGVtczpudW1iZXIgfCBudWxsfHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpdGVtUG9zOm51bWJlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNlbGVjdFZlcnNpb246IEFjdGlvbjxudW1iZXI+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSB2ZXJzaW9uczogQXJyYXk8bnVtYmVyPnxudWxsPW51bGw7XHJcbiAgQElucHV0KCkgdmVyc2lvbjogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgQElucHV0KCkgbmF2aUluZm9Mb2FkaW5nPWZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNlbGVjdFZlcnNpb25DaGFuZ2UoZXY6RXZlbnQpe1xyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiQ2hhbmdlIGV2ZW50OiBcIitldi50YXJnZXQudmFsdWUrIFwiLCBhcyBOcjogXCIrdmVyc2lvbk5yKTtcclxuXHJcbiAgICAgIGNvbnN0IHNlbEVsID0gZXYudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xyXG4gICAgICBsZXQgdmVyc2lvbk5yID0gcGFyc2VJbnQoc2VsRWwudmFsdWUpO1xyXG4gICAgICBpZih0aGlzLnNlbGVjdFZlcnNpb24pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdFZlcnNpb24ucGVyZm9ybSh2ZXJzaW9uTnIpO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -73,21 +73,22 @@ export class RecordingFileUI extends RecordingFileViewComponent {
73
73
  sf = s.startFrame;
74
74
  ef = s.endFrame;
75
75
  }
76
- this.recordingFileService.saveEditSelection(this.recordingFile.recordingFileId, sr, sf, ef).subscribe((value) => {
77
- }, () => {
78
- this.dialog.open(MessageDialog, {
79
- data: {
80
- type: 'error',
81
- title: 'Save selection edit error',
82
- msg: "Could not save edit selection to WikiSpeech server!",
83
- advice: "Please check network connection and server state."
84
- }
85
- });
86
- }, () => {
87
- // Or use returned selection value from server?
88
- this.savedEditSelection = s;
89
- this.editSaved = true;
90
- this.snackBar.open('Selection edit saved successfully.', 'OK', { duration: 1500 });
76
+ this.recordingFileService.saveEditSelection(this.recordingFile.recordingFileId, sr, sf, ef).subscribe({ next: (value) => { },
77
+ error: () => {
78
+ this.dialog.open(MessageDialog, {
79
+ data: {
80
+ type: 'error',
81
+ title: 'Save selection edit error',
82
+ msg: "Could not save edit selection to WikiSpeech server!",
83
+ advice: "Please check network connection and server state."
84
+ }
85
+ });
86
+ }, complete: () => {
87
+ // Or use returned selection value from server?
88
+ this.savedEditSelection = s;
89
+ this.editSaved = true;
90
+ this.snackBar.open('Selection edit saved successfully.', 'OK', { duration: 1500 });
91
+ }
91
92
  });
92
93
  }
93
94
  }
@@ -139,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
139
140
  <button mat-raised-button color="accent" (click)="applySelection()" [disabled]="editSaved">{{this.applyButtonText()}}</button>
140
141
  `, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"] }]
141
142
  }], ctorParameters: function () { return [{ type: i1.RecordingFileService }, { type: i2.RecordingService }, { type: i3.SessionService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i5.MatDialog }, { type: i6.MatSnackBar }]; } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGluZ2ZpbGUvcmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFBO0FBT3RCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQXNEM0UsTUFBTSxPQUFPLGVBQWdCLFNBQVEsMEJBQTBCO0lBSzdELFlBQXNCLG9CQUF5QyxFQUFXLGdCQUFpQyxFQUFXLGNBQTZCLEVBQVcsTUFBYSxFQUFXLEtBQXFCLEVBQVksR0FBc0IsRUFBVyxJQUFlLEVBQVksTUFBZ0IsRUFBUyxRQUFxQjtRQUMvVCxLQUFLLENBQUMsb0JBQW9CLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxNQUFNLENBQUMsQ0FBQTtRQURwRSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQVcscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFXLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWE7UUFIalUsdUJBQWtCLEdBQWdCLElBQUksQ0FBQztRQUN2QyxjQUFTLEdBQVMsSUFBSSxDQUFBO1FBSXBCLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFFdkMsQ0FBQztJQUVELGVBQWU7UUFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7WUFDaEMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyw4Q0FBOEMsQ0FBQzthQUN2RDtpQkFBSTtnQkFDSCxPQUFPLDhCQUE4QixDQUFDO2FBQ3ZDO1NBQ0Y7UUFDRCxtQkFBbUI7UUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRVMsV0FBVyxDQUFDLElBQW9CO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7UUFDckIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzNJLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBRUMsY0FBYztRQUNaLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRTtnQkFFN0MsSUFBSSxFQUFFLEdBQUUsSUFBSSxDQUFDO2dCQUNiLElBQUksRUFBRSxHQUFDLElBQUksQ0FBQztnQkFDWixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBRyxDQUFDLEVBQUU7b0JBQ0osRUFBRSxHQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ2xCLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNsQixFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQkFDakI7Z0JBQ0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzlHLENBQUMsRUFDRCxHQUFHLEVBQUU7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO3dCQUU5QixJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLDJCQUEyQjs0QkFDbEMsR0FBRyxFQUFFLHFEQUFxRDs0QkFDMUQsTUFBTSxFQUFFLG1EQUFtRDt5QkFDNUQ7cUJBQ0YsQ0FBQyxDQUFBO2dCQUNKLENBQUMsRUFDRCxHQUFHLEVBQUU7b0JBQ0gsK0NBQStDO29CQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO29CQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtvQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7Z0JBQ2xGLENBQUMsQ0FBQyxDQUFDO2FBQ1I7U0FDRjtJQUNILENBQUM7OzZHQWhGVSxlQUFlO2lHQUFmLGVBQWUscUZBN0NoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7NEZBeUJVLGVBQWU7a0JBakQzQixTQUFTOytCQUVFLHdCQUF3QixZQUV4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuXHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVTZXJ2aWNlfSBmcm9tIFwiLi9yZWNvcmRpbmdmaWxlLXNlcnZpY2VcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuLi8uLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtNZXNzYWdlRGlhbG9nfSBmcm9tIFwiLi4vLi4vLi4vdWkvbWVzc2FnZV9kaWFsb2dcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnR9IGZyb20gXCIuL3JlY29yZGluZy1maWxlLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2Vzc2lvblNlcnZpY2V9IGZyb20gXCIuLi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vcmVjb3JkaW5ncy9yZWNvcmRpbmdzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtNYXRTbmFja0Jhcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGlvZGlzcGxheXBsYXllcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxoMT5SZWNvcmRpbmcgZmlsZSBlZGl0aW5nPC9oMT5cclxuICAgICAgPHA+T24gZXhwb3J0IG9yIGRlbGl2ZXJ5IHRoZSBlZGl0aW5nIHNlbGVjdGlvbiBvZiB0aGUgcmVjb3JkaW5nIGZpbGUgaXMgY3V0IG91dC4gSWYgbm8gZWRpdGluZyBzZWxlY3Rpb24gaXMgYXBwbGllZCB0aGUgb3JpZ2luYWwgZmlsZSBpcyBleHBvcnRlZC48L3A+XHJcblxyXG4gICAgPGF1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmUgI2F1ZGlvRGlzcGxheVNjcm9sbFBhbmU+PC9hdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY3RybHZpZXdcIj5cclxuICAgICAgICA8YXBwLXJlY29yZGluZy1maWxlLW1ldGEgW3Nlc3Npb25JZF09XCJzZXNzaW9uSWRcIiAgW3JlY29yZGluZ0ZpbGVdPVwicmVjb3JkaW5nRmlsZVwiIFtzdGF0ZUxvYWRpbmddPVwiYXVkaW9GZXRjaGluZ1wiPjwvYXBwLXJlY29yZGluZy1maWxlLW1ldGE+XHJcbiAgICA8YXVkaW8tZGlzcGxheS1jb250cm9sIFthdWRpb0NsaXBdPVwiYXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdG9wQWN0aW9uXT1cInBsYXlTdG9wQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhcD8uYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21JbkFjdGlvbl09XCJ6b29tSW5BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tT3V0QWN0aW9uXT1cInpvb21PdXRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tU2VsZWN0ZWRBY3Rpb25dPVwiem9vbVNlbGVjdGVkQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+XHJcbiAgICAgICAgPGFwcC1yZWNvcmRpbmctZmlsZS1uYXZpIFtpdGVtc109XCJhdmFpbFJlY0ZpbGVzPy5sZW5ndGhcIiBbaXRlbVBvc109XCJwb3NJbkxpc3RcIiBbdmVyc2lvbl09XCJyZWNvcmRpbmdGaWxlVmVyc2lvblwiIFt2ZXJzaW9uc109XCJ2ZXJzaW9uc1wiIFtmaXJzdEFjdGlvbl09XCJmaXJzdEFjdGlvblwiIFtwcmV2QWN0aW9uXT1cInByZXZBY3Rpb25cIiBbbmV4dEFjdGlvbl09XCJuZXh0QWN0aW9uXCIgW2xhc3RBY3Rpb25dPVwibGFzdEFjdGlvblwiIFtzZWxlY3RWZXJzaW9uXT1cInRvVmVyc2lvbkFjdGlvblwiIFtuYXZpSW5mb0xvYWRpbmddPVwibmF2aUluZm9Mb2FkaW5nXCI+PC9hcHAtcmVjb3JkaW5nLWZpbGUtbmF2aT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiZWRpdFNhdmVkXCI+e3t0aGlzLmFwcGx5QnV0dG9uVGV4dCgpfX08L2J1dHRvbj5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYDpob3N0IHtcclxuICAgICAgICAgIGZsZXg6IDI7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgIG1pbi1oZWlnaHQ6MDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgfWAsYFxyXG4gICAgICAgIC5jdHJsdmlld3tcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIH1cclxuICAgIGAsYFxyXG4gICAgICBhdWRpby1kaXNwbGF5LWNvbnRyb2x7XHJcblxyXG4gICAgICAgIGZsZXg6IDM7XHJcbiAgICAgIH1cclxuICAgIGBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZVVJIGV4dGVuZHMgUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgc2F2ZWRFZGl0U2VsZWN0aW9uOlNlbGVjdGlvbnxudWxsPW51bGw7XHJcbiAgZWRpdFNhdmVkOmJvb2xlYW49dHJ1ZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVjb3JkaW5nRmlsZVNlcnZpY2U6UmVjb3JkaW5nRmlsZVNlcnZpY2UscHJvdGVjdGVkIHJlY29yZGluZ1NlcnZpY2U6UmVjb3JkaW5nU2VydmljZSxwcm90ZWN0ZWQgc2Vzc2lvblNlcnZpY2U6U2Vzc2lvblNlcnZpY2UscHJvdGVjdGVkIHJvdXRlcjpSb3V0ZXIscHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJvdGVjdGVkIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJvdGVjdGVkIGVSZWY6RWxlbWVudFJlZiwgcHJvdGVjdGVkIGRpYWxvZzpNYXREaWFsb2cscHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIpIHtcclxuICAgIHN1cGVyKHJlY29yZGluZ0ZpbGVTZXJ2aWNlLHJlY29yZGluZ1NlcnZpY2Usc2Vzc2lvblNlcnZpY2Uscm91dGVyLHJvdXRlLHJlZixlUmVmLGRpYWxvZylcclxuICAgIHRoaXMucGFyZW50RT10aGlzLmVSZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKVxyXG4gIH1cclxuXHJcbiAgYXBwbHlCdXR0b25UZXh0KCk6c3RyaW5nIHtcclxuICAgIGlmKHRoaXMuYXVkaW9DbGlwKSB7XHJcbiAgICAgIGxldCBzID0gdGhpcy5hdWRpb0NsaXAuc2VsZWN0aW9uXHJcbiAgICAgIGlmIChzKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiQXBwbHkgY3VycmVudCBzZWxlY3Rpb24gYXMgZWRpdGluZyBzZWxlY3Rpb25cIjtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcmV0dXJuIFwiQ2FuY2VsIG91dCBlZGl0aW5nIHNlbGVjdGlvblwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBqdXN0IGFzIGZhbGxiYWNrXHJcbiAgICByZXR1cm4gXCJBcHBseSBzZWxlY3Rpb25cIjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBsb2FkUmVjRmlsZShyZklkOm51bWJlciB8IHN0cmluZykge1xyXG4gICAgdGhpcy5lZGl0U2F2ZWQgPSB0cnVlO1xyXG4gICAgc3VwZXIubG9hZFJlY0ZpbGUocmZJZCk7XHJcbiAgfVxyXG5cclxucHJvdGVjdGVkIGxvYWRlZFJlY2ZpbGUoKSB7XHJcbiAgc3VwZXIubG9hZGVkUmVjZmlsZSgpO1xyXG4gIGlmKHRoaXMuYXVkaW9DbGlwKSB7XHJcbiAgICB0aGlzLmF1ZGlvQ2xpcC5hZGRTZWxlY3Rpb25PYnNlcnZlcigoY2xpcCkgPT4ge1xyXG4gICAgICBsZXQgcyA9IGNsaXAuc2VsZWN0aW9uXHJcbiAgICAgIHRoaXMuZWRpdFNhdmVkID0gKCh0aGlzLnNhdmVkRWRpdFNlbGVjdGlvbiA9PSBudWxsICYmIHMgPT0gbnVsbCkgfHwgdGhpcy5zYXZlZEVkaXRTZWxlY3Rpb24gIT0gbnVsbCAmJiB0aGlzLnNhdmVkRWRpdFNlbGVjdGlvbi5lcXVhbHMocykpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGhpcy5zYXZlZEVkaXRTZWxlY3Rpb24gPSB0aGlzLmF1ZGlvQ2xpcD90aGlzLmF1ZGlvQ2xpcC5zZWxlY3Rpb246bnVsbDtcclxuICB0aGlzLmVkaXRTYXZlZCA9IHRydWVcclxufVxyXG5cclxuICBhcHBseVNlbGVjdGlvbigpe1xyXG4gICAgaWYodGhpcy5hdWRpb0NsaXApIHtcclxuICAgICAgbGV0IGFiPXRoaXMuYXVkaW9DbGlwLmF1ZGlvRGF0YUhvbGRlcjtcclxuICAgICAgbGV0IHMgPSB0aGlzLmF1ZGlvQ2xpcC5zZWxlY3Rpb25cclxuICAgICAgaWYgKGFiICYmIHRoaXMucmVjb3JkaW5nRmlsZT8ucmVjb3JkaW5nRmlsZUlkKSB7XHJcblxyXG4gICAgICAgIGxldCBzcj0gbnVsbDtcclxuICAgICAgICBsZXQgc2Y9bnVsbDtcclxuICAgICAgICBsZXQgZWY9bnVsbDtcclxuICAgICAgICBpZihzKSB7XHJcbiAgICAgICAgICBzcj0gYWIuc2FtcGxlUmF0ZTtcclxuICAgICAgICAgIHNmID0gcy5zdGFydEZyYW1lO1xyXG4gICAgICAgICAgZWYgPSBzLmVuZEZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucmVjb3JkaW5nRmlsZVNlcnZpY2Uuc2F2ZUVkaXRTZWxlY3Rpb24odGhpcy5yZWNvcmRpbmdGaWxlLnJlY29yZGluZ0ZpbGVJZCwgc3IsIHNmLCBlZikuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2cub3BlbihNZXNzYWdlRGlhbG9nLCB7XHJcblxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogJ1NhdmUgc2VsZWN0aW9uIGVkaXQgZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICBtc2c6IFwiQ291bGQgbm90IHNhdmUgZWRpdCBzZWxlY3Rpb24gdG8gV2lraVNwZWVjaCBzZXJ2ZXIhXCIsXHJcbiAgICAgICAgICAgICAgICAgIGFkdmljZTogXCJQbGVhc2UgY2hlY2sgbmV0d29yayBjb25uZWN0aW9uIGFuZCBzZXJ2ZXIgc3RhdGUuXCJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gT3IgdXNlIHJldHVybmVkIHNlbGVjdGlvbiB2YWx1ZSBmcm9tIHNlcnZlcj9cclxuICAgICAgICAgICAgICB0aGlzLnNhdmVkRWRpdFNlbGVjdGlvbiA9IHNcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRTYXZlZCA9IHRydWVcclxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1NlbGVjdGlvbiBlZGl0IHNhdmVkIHN1Y2Nlc3NmdWxseS4nLCAnT0snLCB7ZHVyYXRpb246IDE1MDB9KVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGluZ2ZpbGUvcmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFBO0FBT3RCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQXNEM0UsTUFBTSxPQUFPLGVBQWdCLFNBQVEsMEJBQTBCO0lBSzdELFlBQXNCLG9CQUF5QyxFQUFXLGdCQUFpQyxFQUFXLGNBQTZCLEVBQVcsTUFBYSxFQUFXLEtBQXFCLEVBQVksR0FBc0IsRUFBVyxJQUFlLEVBQVksTUFBZ0IsRUFBUyxRQUFxQjtRQUMvVCxLQUFLLENBQUMsb0JBQW9CLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxNQUFNLENBQUMsQ0FBQTtRQURwRSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQVcscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFXLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWE7UUFIalUsdUJBQWtCLEdBQWdCLElBQUksQ0FBQztRQUN2QyxjQUFTLEdBQVMsSUFBSSxDQUFBO1FBSXBCLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFFdkMsQ0FBQztJQUVELGVBQWU7UUFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7WUFDaEMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyw4Q0FBOEMsQ0FBQzthQUN2RDtpQkFBSTtnQkFDSCxPQUFPLDhCQUE4QixDQUFDO2FBQ3ZDO1NBQ0Y7UUFDRCxtQkFBbUI7UUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRVMsV0FBVyxDQUFDLElBQW9CO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7UUFDckIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzNJLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBRUMsY0FBYztRQUNaLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRTtnQkFFN0MsSUFBSSxFQUFFLEdBQUUsSUFBSSxDQUFDO2dCQUNiLElBQUksRUFBRSxHQUFDLElBQUksQ0FBQztnQkFDWixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBRyxDQUFDLEVBQUU7b0JBQ0osRUFBRSxHQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ2xCLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNsQixFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQkFDakI7Z0JBQ0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUNqRyxFQUFDLElBQUksRUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUUsQ0FBQztvQkFDekIsS0FBSyxFQUFDLEdBQUcsRUFBRTt3QkFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7NEJBRTlCLElBQUksRUFBRTtnQ0FDSixJQUFJLEVBQUUsT0FBTztnQ0FDYixLQUFLLEVBQUUsMkJBQTJCO2dDQUNsQyxHQUFHLEVBQUUscURBQXFEO2dDQUMxRCxNQUFNLEVBQUUsbURBQW1EOzZCQUM1RDt5QkFDRixDQUFDLENBQUE7b0JBQ0osQ0FBQyxFQUFFLFFBQVEsRUFBQyxHQUFHLEVBQUU7d0JBQ1gsK0NBQStDO3dCQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO3dCQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTt3QkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7b0JBQ2xGLENBQUM7aUJBQ04sQ0FBQyxDQUFDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzZHQWhGVSxlQUFlO2lHQUFmLGVBQWUscUZBN0NoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7NEZBeUJVLGVBQWU7a0JBakQzQixTQUFTOytCQUVFLHdCQUF3QixZQUV4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuXHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVTZXJ2aWNlfSBmcm9tIFwiLi9yZWNvcmRpbmdmaWxlLXNlcnZpY2VcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuLi8uLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtNZXNzYWdlRGlhbG9nfSBmcm9tIFwiLi4vLi4vLi4vdWkvbWVzc2FnZV9kaWFsb2dcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudH0gZnJvbSBcIi4vcmVjb3JkaW5nLWZpbGUtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1JlY29yZGluZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9yZWNvcmRpbmdzL3JlY29yZGluZ3Muc2VydmljZVwiO1xyXG5pbXBvcnQge01hdFNuYWNrQmFyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaW9kaXNwbGF5cGxheWVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGgxPlJlY29yZGluZyBmaWxlIGVkaXRpbmc8L2gxPlxyXG4gICAgICA8cD5PbiBleHBvcnQgb3IgZGVsaXZlcnkgdGhlIGVkaXRpbmcgc2VsZWN0aW9uIG9mIHRoZSByZWNvcmRpbmcgZmlsZSBpcyBjdXQgb3V0LiBJZiBubyBlZGl0aW5nIHNlbGVjdGlvbiBpcyBhcHBsaWVkIHRoZSBvcmlnaW5hbCBmaWxlIGlzIGV4cG9ydGVkLjwvcD5cclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZSAjYXVkaW9EaXNwbGF5U2Nyb2xsUGFuZT48L2F1ZGlvLWRpc3BsYXktc2Nyb2xsLXBhbmU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjdHJsdmlld1wiPlxyXG4gICAgICAgIDxhcHAtcmVjb3JkaW5nLWZpbGUtbWV0YSBbc2Vzc2lvbklkXT1cInNlc3Npb25JZFwiICBbcmVjb3JkaW5nRmlsZV09XCJyZWNvcmRpbmdGaWxlXCIgW3N0YXRlTG9hZGluZ109XCJhdWRpb0ZldGNoaW5nXCI+PC9hcHAtcmVjb3JkaW5nLWZpbGUtbWV0YT5cclxuICAgIDxhdWRpby1kaXNwbGF5LWNvbnRyb2wgW2F1ZGlvQ2xpcF09XCJhdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVNlbGVjdGlvbkFjdGlvbl09XCJwbGF5U2VsZWN0aW9uQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImFwPy5hdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbUluQWN0aW9uXT1cInpvb21JbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21PdXRBY3Rpb25dPVwiem9vbU91dEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21TZWxlY3RlZEFjdGlvbl09XCJ6b29tU2VsZWN0ZWRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbUZpdFRvUGFuZWxBY3Rpb25dPVwiem9vbUZpdFRvUGFuZWxBY3Rpb25cIj48L2F1ZGlvLWRpc3BsYXktY29udHJvbD5cclxuICAgICAgICA8YXBwLXJlY29yZGluZy1maWxlLW5hdmkgW2l0ZW1zXT1cImF2YWlsUmVjRmlsZXM/Lmxlbmd0aFwiIFtpdGVtUG9zXT1cInBvc0luTGlzdFwiIFt2ZXJzaW9uXT1cInJlY29yZGluZ0ZpbGVWZXJzaW9uXCIgW3ZlcnNpb25zXT1cInZlcnNpb25zXCIgW2ZpcnN0QWN0aW9uXT1cImZpcnN0QWN0aW9uXCIgW3ByZXZBY3Rpb25dPVwicHJldkFjdGlvblwiIFtuZXh0QWN0aW9uXT1cIm5leHRBY3Rpb25cIiBbbGFzdEFjdGlvbl09XCJsYXN0QWN0aW9uXCIgW3NlbGVjdFZlcnNpb25dPVwidG9WZXJzaW9uQWN0aW9uXCIgW25hdmlJbmZvTG9hZGluZ109XCJuYXZpSW5mb0xvYWRpbmdcIj48L2FwcC1yZWNvcmRpbmctZmlsZS1uYXZpPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiYXBwbHlTZWxlY3Rpb24oKVwiIFtkaXNhYmxlZF09XCJlZGl0U2F2ZWRcIj57e3RoaXMuYXBwbHlCdXR0b25UZXh0KCl9fTwvYnV0dG9uPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgOmhvc3Qge1xyXG4gICAgICAgICAgZmxleDogMjtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgbWluLWhlaWdodDowO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB9YCxgXHJcbiAgICAgICAgLmN0cmx2aWV3e1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgfVxyXG4gICAgYCxgXHJcbiAgICAgIGF1ZGlvLWRpc3BsYXktY29udHJvbHtcclxuXHJcbiAgICAgICAgZmxleDogMztcclxuICAgICAgfVxyXG4gICAgYF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdGaWxlVUkgZXh0ZW5kcyBSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBzYXZlZEVkaXRTZWxlY3Rpb246U2VsZWN0aW9ufG51bGw9bnVsbDtcclxuICBlZGl0U2F2ZWQ6Ym9vbGVhbj10cnVlXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWNvcmRpbmdGaWxlU2VydmljZTpSZWNvcmRpbmdGaWxlU2VydmljZSxwcm90ZWN0ZWQgcmVjb3JkaW5nU2VydmljZTpSZWNvcmRpbmdTZXJ2aWNlLHByb3RlY3RlZCBzZXNzaW9uU2VydmljZTpTZXNzaW9uU2VydmljZSxwcm90ZWN0ZWQgcm91dGVyOlJvdXRlcixwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcm90ZWN0ZWQgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwcm90ZWN0ZWQgZVJlZjpFbGVtZW50UmVmLCBwcm90ZWN0ZWQgZGlhbG9nOk1hdERpYWxvZyxwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xyXG4gICAgc3VwZXIocmVjb3JkaW5nRmlsZVNlcnZpY2UscmVjb3JkaW5nU2VydmljZSxzZXNzaW9uU2VydmljZSxyb3V0ZXIscm91dGUscmVmLGVSZWYsZGlhbG9nKVxyXG4gICAgdGhpcy5wYXJlbnRFPXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpXHJcbiAgfVxyXG5cclxuICBhcHBseUJ1dHRvblRleHQoKTpzdHJpbmcge1xyXG4gICAgaWYodGhpcy5hdWRpb0NsaXApIHtcclxuICAgICAgbGV0IHMgPSB0aGlzLmF1ZGlvQ2xpcC5zZWxlY3Rpb25cclxuICAgICAgaWYgKHMpIHtcclxuICAgICAgICByZXR1cm4gXCJBcHBseSBjdXJyZW50IHNlbGVjdGlvbiBhcyBlZGl0aW5nIHNlbGVjdGlvblwiO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gXCJDYW5jZWwgb3V0IGVkaXRpbmcgc2VsZWN0aW9uXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGp1c3QgYXMgZmFsbGJhY2tcclxuICAgIHJldHVybiBcIkFwcGx5IHNlbGVjdGlvblwiO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxvYWRSZWNGaWxlKHJmSWQ6bnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLmVkaXRTYXZlZCA9IHRydWU7XHJcbiAgICBzdXBlci5sb2FkUmVjRmlsZShyZklkKTtcclxuICB9XHJcblxyXG5wcm90ZWN0ZWQgbG9hZGVkUmVjZmlsZSgpIHtcclxuICBzdXBlci5sb2FkZWRSZWNmaWxlKCk7XHJcbiAgaWYodGhpcy5hdWRpb0NsaXApIHtcclxuICAgIHRoaXMuYXVkaW9DbGlwLmFkZFNlbGVjdGlvbk9ic2VydmVyKChjbGlwKSA9PiB7XHJcbiAgICAgIGxldCBzID0gY2xpcC5zZWxlY3Rpb25cclxuICAgICAgdGhpcy5lZGl0U2F2ZWQgPSAoKHRoaXMuc2F2ZWRFZGl0U2VsZWN0aW9uID09IG51bGwgJiYgcyA9PSBudWxsKSB8fCB0aGlzLnNhdmVkRWRpdFNlbGVjdGlvbiAhPSBudWxsICYmIHRoaXMuc2F2ZWRFZGl0U2VsZWN0aW9uLmVxdWFscyhzKSlcclxuICAgIH0pO1xyXG4gIH1cclxuICB0aGlzLnNhdmVkRWRpdFNlbGVjdGlvbiA9IHRoaXMuYXVkaW9DbGlwP3RoaXMuYXVkaW9DbGlwLnNlbGVjdGlvbjpudWxsO1xyXG4gIHRoaXMuZWRpdFNhdmVkID0gdHJ1ZVxyXG59XHJcblxyXG4gIGFwcGx5U2VsZWN0aW9uKCl7XHJcbiAgICBpZih0aGlzLmF1ZGlvQ2xpcCkge1xyXG4gICAgICBsZXQgYWI9dGhpcy5hdWRpb0NsaXAuYXVkaW9EYXRhSG9sZGVyO1xyXG4gICAgICBsZXQgcyA9IHRoaXMuYXVkaW9DbGlwLnNlbGVjdGlvblxyXG4gICAgICBpZiAoYWIgJiYgdGhpcy5yZWNvcmRpbmdGaWxlPy5yZWNvcmRpbmdGaWxlSWQpIHtcclxuXHJcbiAgICAgICAgbGV0IHNyPSBudWxsO1xyXG4gICAgICAgIGxldCBzZj1udWxsO1xyXG4gICAgICAgIGxldCBlZj1udWxsO1xyXG4gICAgICAgIGlmKHMpIHtcclxuICAgICAgICAgIHNyPSBhYi5zYW1wbGVSYXRlO1xyXG4gICAgICAgICAgc2YgPSBzLnN0YXJ0RnJhbWU7XHJcbiAgICAgICAgICBlZiA9IHMuZW5kRnJhbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5yZWNvcmRpbmdGaWxlU2VydmljZS5zYXZlRWRpdFNlbGVjdGlvbih0aGlzLnJlY29yZGluZ0ZpbGUucmVjb3JkaW5nRmlsZUlkLCBzciwgc2YsIGVmKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAge25leHQ6KHZhbHVlKSA9PiB7fVxyXG4gICAgICAsIGVycm9yOigpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oTWVzc2FnZURpYWxvZywge1xyXG5cclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdTYXZlIHNlbGVjdGlvbiBlZGl0IGVycm9yJyxcclxuICAgICAgICAgICAgICBtc2c6IFwiQ291bGQgbm90IHNhdmUgZWRpdCBzZWxlY3Rpb24gdG8gV2lraVNwZWVjaCBzZXJ2ZXIhXCIsXHJcbiAgICAgICAgICAgICAgYWR2aWNlOiBcIlBsZWFzZSBjaGVjayBuZXR3b3JrIGNvbm5lY3Rpb24gYW5kIHNlcnZlciBzdGF0ZS5cIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0sIGNvbXBsZXRlOigpID0+IHtcclxuICAgICAgICAgICAgICAvLyBPciB1c2UgcmV0dXJuZWQgc2VsZWN0aW9uIHZhbHVlIGZyb20gc2VydmVyP1xyXG4gICAgICAgICAgICAgIHRoaXMuc2F2ZWRFZGl0U2VsZWN0aW9uID0gc1xyXG4gICAgICAgICAgICAgIHRoaXMuZWRpdFNhdmVkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignU2VsZWN0aW9uIGVkaXQgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicsICdPSycsIHtkdXJhdGlvbjogMTUwMH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=