speechrecorderng 3.3.6 → 3.3.7

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 (55) hide show
  1. package/esm2020/lib/audio/audio_display.mjs +6 -6
  2. package/esm2020/lib/audio/audio_player.mjs +6 -6
  3. package/esm2020/lib/audio/format.mjs +1 -1
  4. package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
  5. package/esm2020/lib/audio/ui/audio_display_control.mjs +4 -4
  6. package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
  7. package/esm2020/lib/audio/ui/audiosignal.mjs +4 -4
  8. package/esm2020/lib/audio/ui/container.mjs +4 -4
  9. package/esm2020/lib/audio/ui/livelevel.mjs +4 -4
  10. package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +4 -4
  11. package/esm2020/lib/audio/ui/sonagram.mjs +4 -4
  12. package/esm2020/lib/db/inddb.mjs +4 -4
  13. package/esm2020/lib/dsp/utils.mjs +1 -1
  14. package/esm2020/lib/io/BinaryReader.mjs +1 -1
  15. package/esm2020/lib/io/BinaryWriter.mjs +1 -1
  16. package/esm2020/lib/math/complex.mjs +1 -1
  17. package/esm2020/lib/math/dft.mjs +1 -1
  18. package/esm2020/lib/speechrecorder/project/project.service.mjs +4 -4
  19. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
  20. package/esm2020/lib/speechrecorder/script/script.service.mjs +4 -4
  21. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +8 -8
  22. package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +1 -1
  23. package/esm2020/lib/speechrecorder/session/controlpanel.mjs +22 -22
  24. package/esm2020/lib/speechrecorder/session/progress.mjs +4 -4
  25. package/esm2020/lib/speechrecorder/session/prompting.mjs +18 -18
  26. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +6 -6
  27. package/esm2020/lib/speechrecorder/session/recording_list.mjs +4 -4
  28. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
  29. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
  30. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
  31. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
  32. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
  33. package/esm2020/lib/speechrecorder/session/session.service.mjs +4 -4
  34. package/esm2020/lib/speechrecorder/session/session_finished_dialog.mjs +4 -4
  35. package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +5 -5
  36. package/esm2020/lib/speechrecorder/session/warning_bar.mjs +4 -4
  37. package/esm2020/lib/speechrecorder/spruploader.mjs +4 -4
  38. package/esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs +1 -1
  39. package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
  40. package/esm2020/lib/speechrecorderng.component.mjs +4 -4
  41. package/esm2020/lib/speechrecorderng.module.mjs +5 -5
  42. package/esm2020/lib/spr.config.mjs +4 -4
  43. package/esm2020/lib/spr.module.version.mjs +2 -2
  44. package/esm2020/lib/ui/canvas_layer_comp.mjs +4 -4
  45. package/esm2020/lib/ui/message_dialog.mjs +4 -4
  46. package/esm2020/lib/ui/recordingitem_display.mjs +7 -7
  47. package/esm2020/lib/ui/responsive_component.mjs +4 -4
  48. package/esm2020/lib/utils/scrollIntoViewToBottom.mjs +4 -4
  49. package/fesm2015/speechrecorderng.mjs +168 -168
  50. package/fesm2015/speechrecorderng.mjs.map +1 -1
  51. package/fesm2020/speechrecorderng.mjs +168 -168
  52. package/fesm2020/speechrecorderng.mjs.map +1 -1
  53. package/lib/speechrecorder/session/basicrecorder.d.ts +1 -1
  54. package/lib/spr.module.version.d.ts +1 -1
  55. package/package.json +1 -1
@@ -82,4 +82,4 @@ export class BinaryByteReader {
82
82
  return val;
83
83
  }
84
84
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5UmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCLFlBQVksR0FBZ0I7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUc7UUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBaUI7UUFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJ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RSxDQUFDO1FBQ3BCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxzRUFBc0U7UUFDdEUseUJBQXlCO1FBQ3pCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgZXhwb3J0IGNsYXNzIEJpbmFyeUJ5dGVSZWFkZXIge1xuICAgICAgICBidWY6IFVpbnQ4QXJyYXk7XG4gICAgICAgIHNidWY6IEludDhBcnJheTtcbiAgICAgICAgcHJpdmF0ZSBfcG9zOiBudW1iZXI7XG5cbiAgICAgICAgY29uc3RydWN0b3IoYnVmOiBBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5idWYgPSBuZXcgVWludDhBcnJheShidWYpO1xuICAgICAgICAgICAgdGhpcy5zYnVmID0gbmV3IEludDhBcnJheShidWYpO1xuICAgICAgICAgICAgdGhpcy5fcG9zID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldCBwb3MoKTogbnVtYmVyIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3M7XG4gICAgICAgIH1cblxuICAgICAgICBzZXQgcG9zKHBvczogbnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3MgPSBwb3M7XG4gICAgICAgIH1cblxuICAgICAgICBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1Zi5ieXRlTGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgZW9mKCk6IGJvb2xlYW4ge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLl9wb3MgPj0gdGhpcy5idWYuYnl0ZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBza2lwKGJ5dGVDb3VuZDogbnVtYmVyKXtcbiAgICAgICAgICAgIHRoaXMucG9zICs9IDQ7XG4gICAgICAgIH1cblxuICAgICAgICByZWFkQXNjaWkoc2l6ZTogbnVtYmVyKTogU3RyaW5nIHtcbiAgICAgICAgICAgIGxldCBpO1xuICAgICAgICAgICAgbGV0IHR4dCA9ICcnO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgICAgICAgICAgIHR4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuYnVmW3RoaXMuX3BvcysrXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHh0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmVhZEludDgoKTogbnVtYmVyIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5idWZbdGhpcy5fcG9zKytdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlYWRJbnQxNkJFKCk6IG51bWJlciB7XG4gICAgICAgICAgICBjb25zdCBiMCA9IHRoaXMuc2J1Zlt0aGlzLl9wb3MrK107XG4gICAgICAgICAgICBjb25zdCBiMSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICggYjAgPDwgOCApIHwgYjE7XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJlYWRJbnQxNkxFKCk6IG51bWJlciB7XG4gICAgICAgICAgICBjb25zdCBiMCA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcbiAgICAgICAgICAgIGNvbnN0IGIxID0gdGhpcy5zYnVmW3RoaXMuX3BvcysrXTtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICggYjEgPDwgOCApIHwgYjA7XG4gICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICAgIHJlYWRVaW50MTZMRSgpOiBudW1iZXIge1xuICAgICAgICAgICAgY29uc3Qgc2VnID0gbmV3IFVpbnQ4QXJyYXkoMik7XG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykge1xuICAgICAgICAgICAgICAgIHNlZ1tpXSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICAgICAgdmFsIHw9IHNlZ1sxXSA8PCA4O1xuICAgICAgICAgICAgdmFsIHw9IHNlZ1swXTtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cblxuICAgICAgICByZWFkSW50MzJCRSgpOiBudW1iZXIge1xuICAgICAgICAgICAgY29uc3Qgc2VnID0gbmV3IFVpbnQ4QXJyYXkoNCk7XG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICAgICAgICAgIHNlZ1tpXSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHNlZ1swXSA8PCAyNCB8IHNlZ1sxXSA8PCAxNiB8IHNlZ1syXSA8PCA4IHwgc2VnWzNdO1xuICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlYWRVaW50MzJMRSgpOiBudW1iZXIge1xuICAgICAgICAgICAgIC8vIHRoaXMgZGlyY2V0IGRhdGEgdmlldyBkb2VzIG5vdCB3b3JrIHdpdGggbm9kZWpzOiBhbGwgYXZsdWVzIGFyZSB6ZXJvXG4gICAgICAgICAgICAvLyB2YXIgc2VnPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmLHRoaXMuX3Bvcyw0KTtcbiAgICAgICAgICAgIC8vIC4uLiBjb3B5IHZhbHVlIGJ5IHZhbHVlXG4gICAgICAgICAgICBjb25zdCBzZWcgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgc2VnW2ldID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJsZW46XCIsIHNlZy5sZW5ndGgsIFwiIFwiLCBzZWcuYnl0ZUxlbmd0aCwgXCIgXCIsIHNlZ1swXSwgXCIgXCIsIHNlZ1sxXSwgXCIgXCIsIHNlZ1syXSwgXCIgXCIsIHNlZ1szXSk7XG4gICAgICAgICAgICBsZXQgdmFsID0gMDtcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbM10gPDwgMjQ7XG4gICAgICAgICAgICB2YWwgfD0gc2VnWzJdIDw8IDE2O1xuICAgICAgICAgICAgdmFsIHw9IHNlZ1sxXSA8PCA4O1xuICAgICAgICAgICAgdmFsIHw9IHNlZ1swXTtcbiAgICAgICAgICAgIC8vIHZhciB2YWwgPSA8IDI0KHNlZ1szXSA8KSB8IChzZWdbMl0gPDwgMTYpIHwgKHNlZ1sxXSA8PCA4KSB8IHNlZ1swXTtcbiAgICAgICAgICAgIC8vIHRoaXMuX3Bvcz10aGlzLl9wb3MrNDtcbiAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgIH1cblxuXG4gICAgfVxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5UmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCLFlBQVksR0FBZ0I7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUc7UUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBaUI7UUFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsQ0FBRSxFQUFFLElBQUksQ0FBQyxDQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELFdBQVc7UUFDUCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsQ0FBRSxFQUFFLElBQUksQ0FBQyxDQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELFlBQVk7UUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQVMsQ0FBQztRQUNkLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQVMsQ0FBQztRQUNkLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVk7UUFDUCx1RUFBdUU7UUFDeEUsZ0RBQWdEO1FBQ2hELDBCQUEwQjtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQVMsQ0FBQztRQUNkLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsNEdBQTRHO1FBQzVHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxzRUFBc0U7UUFDdEUseUJBQXlCO1FBQ3pCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbiAgICBleHBvcnQgY2xhc3MgQmluYXJ5Qnl0ZVJlYWRlciB7XHJcbiAgICAgICAgYnVmOiBVaW50OEFycmF5O1xyXG4gICAgICAgIHNidWY6IEludDhBcnJheTtcclxuICAgICAgICBwcml2YXRlIF9wb3M6IG51bWJlcjtcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYnVmOiBBcnJheUJ1ZmZlcikge1xyXG4gICAgICAgICAgICB0aGlzLmJ1ZiA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XHJcbiAgICAgICAgICAgIHRoaXMuc2J1ZiA9IG5ldyBJbnQ4QXJyYXkoYnVmKTtcclxuICAgICAgICAgICAgdGhpcy5fcG9zID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdldCBwb3MoKTogbnVtYmVyIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BvcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNldCBwb3MocG9zOiBudW1iZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5fcG9zID0gcG9zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1Zi5ieXRlTGVuZ3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW9mKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuX3BvcyA+PSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNraXAoYnl0ZUNvdW5kOiBudW1iZXIpe1xyXG4gICAgICAgICAgICB0aGlzLnBvcyArPSA0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVhZEFzY2lpKHNpemU6IG51bWJlcik6IFN0cmluZyB7XHJcbiAgICAgICAgICAgIGxldCBpO1xyXG4gICAgICAgICAgICBsZXQgdHh0ID0gJyc7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHR4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuYnVmW3RoaXMuX3BvcysrXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHR4dDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRJbnQ4KCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5idWZbdGhpcy5fcG9zKytdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWRJbnQxNkJFKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGNvbnN0IGIwID0gdGhpcy5zYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgY29uc3QgYjEgPSB0aGlzLmJ1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICggYjAgPDwgOCApIHwgYjE7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlYWRJbnQxNkxFKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIGNvbnN0IGIwID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICBjb25zdCBiMSA9IHRoaXMuc2J1Zlt0aGlzLl9wb3MrK107XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICggYjEgPDwgOCApIHwgYjA7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlYWRVaW50MTZMRSgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICBjb25zdCBzZWcgPSBuZXcgVWludDhBcnJheSgyKTtcclxuICAgICAgICAgICAgbGV0IGk6IG51bWJlcjtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgc2VnW2ldID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSAwO1xyXG4gICAgICAgICAgICB2YWwgfD0gc2VnWzFdIDw8IDg7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbMF07XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkSW50MzJCRSgpOiBudW1iZXIge1xyXG4gICAgICAgICAgICBjb25zdCBzZWcgPSBuZXcgVWludDhBcnJheSg0KTtcclxuICAgICAgICAgICAgbGV0IGk6IG51bWJlcjtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgc2VnW2ldID0gdGhpcy5idWZbdGhpcy5fcG9zKytdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHNlZ1swXSA8PCAyNCB8IHNlZ1sxXSA8PCAxNiB8IHNlZ1syXSA8PCA4IHwgc2VnWzNdO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVhZFVpbnQzMkxFKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgICAvLyB0aGlzIGRpcmNldCBkYXRhIHZpZXcgZG9lcyBub3Qgd29yayB3aXRoIG5vZGVqczogYWxsIGF2bHVlcyBhcmUgemVyb1xyXG4gICAgICAgICAgICAvLyB2YXIgc2VnPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmLHRoaXMuX3Bvcyw0KTtcclxuICAgICAgICAgICAgLy8gLi4uIGNvcHkgdmFsdWUgYnkgdmFsdWVcclxuICAgICAgICAgICAgY29uc3Qgc2VnID0gbmV3IFVpbnQ4QXJyYXkoNCk7XHJcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHNlZ1tpXSA9IHRoaXMuYnVmW3RoaXMuX3BvcysrXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImxlbjpcIiwgc2VnLmxlbmd0aCwgXCIgXCIsIHNlZy5ieXRlTGVuZ3RoLCBcIiBcIiwgc2VnWzBdLCBcIiBcIiwgc2VnWzFdLCBcIiBcIiwgc2VnWzJdLCBcIiBcIiwgc2VnWzNdKTtcclxuICAgICAgICAgICAgbGV0IHZhbCA9IDA7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbM10gPDwgMjQ7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbMl0gPDwgMTY7XHJcbiAgICAgICAgICAgIHZhbCB8PSBzZWdbMV0gPDwgODtcclxuICAgICAgICAgICAgdmFsIHw9IHNlZ1swXTtcclxuICAgICAgICAgICAgLy8gdmFyIHZhbCA9IDwgMjQoc2VnWzNdIDwpIHwgKHNlZ1syXSA8PCAxNikgfCAoc2VnWzFdIDw8IDgpIHwgc2VnWzBdO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl9wb3M9dGhpcy5fcG9zKzQ7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiJdfQ==
@@ -71,4 +71,4 @@ export class BinaryByteWriter {
71
71
  }
72
72
  }
73
73
  BinaryByteWriter.DEFAULT_SIZE_INC = 1024;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5V3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCO1FBQ0ksTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFFN0IsT0FBUSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRztZQUNwRCxtQkFBbUI7WUFDakIsSUFBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7WUFDNUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxFQUFFO2dCQUNoQixHQUFHLEdBQUcsUUFBUSxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBRTVDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMxQjtJ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TUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3hFO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7O0FBcEZNLGlDQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuICAgIGV4cG9ydCBjbGFzcyBCaW5hcnlCeXRlV3JpdGVyIHtcbiAgICAgICAgc3RhdGljIERFRkFVTFRfU0laRV9JTkMgPSAxMDI0O1xuICAgICAgICBidWY6IEFycmF5QnVmZmVyO1xuICAgICAgICBwcml2YXRlIF9wb3M6IG51bWJlcjtcblxuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSBCaW5hcnlCeXRlV3JpdGVyLkRFRkFVTFRfU0laRV9JTkM7XG4gICAgICAgICAgICB0aGlzLmJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTtcbiAgICAgICAgICAgIHRoaXMuX3BvcyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBnZXQgcG9zKCk6IG51bWJlciB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zO1xuICAgICAgICB9XG5cbiAgICAgICAgZW5zdXJlQ2FwYWNpdHkobnVtQnl0ZXM6IG51bWJlcikge1xuXG4gICAgICAgICAgd2hpbGUgKCB0aGlzLl9wb3MgKyBudW1CeXRlcyA+PSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICkge1xuICAgICAgICAgICAgLy8gYnVmZmVyIGluY3JlbWVudFxuICAgICAgICAgICAgICBsZXQgaW5jID0gQmluYXJ5Qnl0ZVdyaXRlci5ERUZBVUxUX1NJWkVfSU5DO1xuICAgICAgICAgICAgICBpZiAoaW5jIDwgbnVtQnl0ZXMpIHtcbiAgICAgICAgICAgICAgICAgIGluYyA9IG51bUJ5dGVzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1NpemUgPSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICsgaW5jO1xuXG4gICAgICAgICAgICBjb25zdCBhcnJPbGQgPSBuZXcgVWludDhBcnJheSh0aGlzLmJ1ZiwgMCwgdGhpcy5fcG9zKTtcbiAgICAgICAgICAgIGNvbnN0IGFyck5ldyA9IG5ldyBVaW50OEFycmF5KG5ld1NpemUpO1xuICAgICAgICAgICAgYXJyTmV3LnNldChhcnJPbGQpO1xuICAgICAgICAgICAgdGhpcy5idWYgPSBhcnJOZXcuYnVmZmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlVWludDgodmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDEpO1xuICAgICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgMSk7XG4gICAgICAgICAgdmFsVmlldy5zZXRVaW50OCgwLCB2YWwpO1xuICAgICAgICAgIHRoaXMuX3BvcysrO1xuICAgICAgICB9XG5cbiAgICAgIHdyaXRlVWludDE2KHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDIpO1xuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDIpO1xuICAgICAgICB2YWxWaWV3LnNldFVpbnQxNigwLCB2YWwsIGxlKTtcbiAgICAgICAgdGhpcy5fcG9zICs9IDI7XG5cbiAgICAgIH1cbiAgICAgIHdyaXRlSW50MTYodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMik7XG4gICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgMik7XG4gICAgICAgIHZhbFZpZXcuc2V0SW50MTYoMCwgdmFsLCBsZSk7XG4gICAgICAgIHRoaXMuX3BvcyArPSAyO1xuICAgICAgfVxuXG5cbiAgICAgIHdyaXRlVWludDMyKHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVuc3VyZUNhcGFjaXR5KDQpO1xuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDQpO1xuICAgICAgICB2YWxWaWV3LnNldFVpbnQzMigwLCB2YWwsIGxlKTtcbiAgICAgICAgdGhpcy5fcG9zICs9IDQ7XG4gICAgICB9XG5cbiAgICAgIHdyaXRlSW50MzIodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoNCk7XG4gICAgICAgIGNvbnN0IHZhbFZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIHRoaXMuX3BvcywgNCk7XG4gICAgICAgIHZhbFZpZXcuc2V0SW50MzIoMCwgdmFsLCBsZSk7XG4gICAgICAgIHRoaXMuX3BvcyArPSA0O1xuICAgICAgfVxuICAgICAgICBmaW5pc2goKTogVWludDhBcnJheSB7XG4gICAgICAgICAgY29uc3QgZmluYWxBcnIgPSBuZXcgVWludDhBcnJheSh0aGlzLl9wb3MpO1xuICAgICAgICAgIGNvbnN0IGR2ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCAwLCB0aGlzLl9wb3MpO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcG9zOyBpKyspIHtcbiAgICAgICAgICAgIGZpbmFsQXJyW2ldID0gZHYuZ2V0VWludDgoaSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5hbEFycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlQXNjaWkodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgICAgICBsZXQgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFzY2lpQ29kZSA9IHRleHQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgICAgaWYgKGFzY2lpQ29kZSA8IDAgfHwgYXNjaWlDb2RlID4gMjU1KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYW4gQVNDSUkgY2hhcmFjdGVyIGF0IGNoYXIgJyArIGkgKyAnIGluICcgKyB0ZXh0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLndyaXRlVWludDgoYXNjaWlDb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmluYXJ5V3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2lvL0JpbmFyeVdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDSSxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCO1FBQ0ksTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFFN0IsT0FBUSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRztZQUNwRCxtQkFBbUI7WUFDakIsSUFBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7WUFDNUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxFQUFFO2dCQUNoQixHQUFHLEdBQUcsUUFBUSxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBRTVDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUgsV0FBVyxDQUFDLEdBQVcsRUFBRSxFQUFXO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUVqQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQVcsRUFBRSxFQUFXO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBR0QsV0FBVyxDQUFDLEdBQVcsRUFBRSxFQUFXO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVcsRUFBRSxFQUFXO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0MsTUFBTTtRQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxNQUFNLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLENBQUM7UUFDTixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3hFO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7O0FBcEZNLGlDQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4gICAgZXhwb3J0IGNsYXNzIEJpbmFyeUJ5dGVXcml0ZXIge1xyXG4gICAgICAgIHN0YXRpYyBERUZBVUxUX1NJWkVfSU5DID0gMTAyNDtcclxuICAgICAgICBidWY6IEFycmF5QnVmZmVyO1xyXG4gICAgICAgIHByaXZhdGUgX3BvczogbnVtYmVyO1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IEJpbmFyeUJ5dGVXcml0ZXIuREVGQVVMVF9TSVpFX0lOQztcclxuICAgICAgICAgICAgdGhpcy5idWYgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcyA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnZXQgcG9zKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3M7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnN1cmVDYXBhY2l0eShudW1CeXRlczogbnVtYmVyKSB7XHJcblxyXG4gICAgICAgICAgd2hpbGUgKCB0aGlzLl9wb3MgKyBudW1CeXRlcyA+PSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICkge1xyXG4gICAgICAgICAgICAvLyBidWZmZXIgaW5jcmVtZW50XHJcbiAgICAgICAgICAgICAgbGV0IGluYyA9IEJpbmFyeUJ5dGVXcml0ZXIuREVGQVVMVF9TSVpFX0lOQztcclxuICAgICAgICAgICAgICBpZiAoaW5jIDwgbnVtQnl0ZXMpIHtcclxuICAgICAgICAgICAgICAgICAgaW5jID0gbnVtQnl0ZXM7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld1NpemUgPSB0aGlzLmJ1Zi5ieXRlTGVuZ3RoICsgaW5jO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYXJyT2xkID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5idWYsIDAsIHRoaXMuX3Bvcyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFyck5ldyA9IG5ldyBVaW50OEFycmF5KG5ld1NpemUpO1xyXG4gICAgICAgICAgICBhcnJOZXcuc2V0KGFyck9sZCk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmID0gYXJyTmV3LmJ1ZmZlcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHdyaXRlVWludDgodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMSk7XHJcbiAgICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDEpO1xyXG4gICAgICAgICAgdmFsVmlldy5zZXRVaW50OCgwLCB2YWwpO1xyXG4gICAgICAgICAgdGhpcy5fcG9zKys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgd3JpdGVVaW50MTYodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXBhY2l0eSgyKTtcclxuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDIpO1xyXG4gICAgICAgIHZhbFZpZXcuc2V0VWludDE2KDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSAyO1xyXG5cclxuICAgICAgfVxyXG4gICAgICB3cml0ZUludDE2KHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoMik7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCAyKTtcclxuICAgICAgICB2YWxWaWV3LnNldEludDE2KDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSAyO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgd3JpdGVVaW50MzIodmFsOiBudW1iZXIsIGxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDYXBhY2l0eSg0KTtcclxuICAgICAgICBjb25zdCB2YWxWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmLCB0aGlzLl9wb3MsIDQpO1xyXG4gICAgICAgIHZhbFZpZXcuc2V0VWludDMyKDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB3cml0ZUludDMyKHZhbDogbnVtYmVyLCBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW5zdXJlQ2FwYWNpdHkoNCk7XHJcbiAgICAgICAgY29uc3QgdmFsVmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZiwgdGhpcy5fcG9zLCA0KTtcclxuICAgICAgICB2YWxWaWV3LnNldEludDMyKDAsIHZhbCwgbGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcyArPSA0O1xyXG4gICAgICB9XHJcbiAgICAgICAgZmluaXNoKCk6IFVpbnQ4QXJyYXkge1xyXG4gICAgICAgICAgY29uc3QgZmluYWxBcnIgPSBuZXcgVWludDhBcnJheSh0aGlzLl9wb3MpO1xyXG4gICAgICAgICAgY29uc3QgZHYgPSBuZXcgRGF0YVZpZXcodGhpcy5idWYsIDAsIHRoaXMuX3Bvcyk7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3BvczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZpbmFsQXJyW2ldID0gZHYuZ2V0VWludDgoaSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZmluYWxBcnI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB3cml0ZUFzY2lpKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgaTtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBjb25zdCBhc2NpaUNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgICAgaWYgKGFzY2lpQ29kZSA8IDAgfHwgYXNjaWlDb2RlID4gMjU1KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhbiBBU0NJSSBjaGFyYWN0ZXIgYXQgY2hhciAnICsgaSArICcgaW4gJyArIHRleHQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLndyaXRlVWludDgoYXNjaWlDb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
@@ -55,4 +55,4 @@ export class Complex {
55
55
  return 'Real: ' + this.real + ', Img: ' + this.img;
56
56
  }
57
57
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9tYXRoL2NvbXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0ksTUFBTSxPQUFPLE9BQU87SUFVaEIsWUFBWSxJQUFZLEVBQUUsR0FBVztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBUk0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFpQixFQUFFLFFBQWdCO1FBQzNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFLTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxHQUFHLENBQUMsSUFBYTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQWE7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFjO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sR0FBRyxDQUFDLE9BQWdCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxPQUFPLENBQUMsT0FBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUU5QyxPQUFPLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLENBQVU7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN2RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICBleHBvcnQgY2xhc3MgQ29tcGxleCB7XG5cbiAgICAgICAgcmVhbDogbnVtYmVyO1xuICAgICAgICBpbWc6IG51bWJlcjtcblxuICAgICAgICBwdWJsaWMgc3RhdGljIGZyb21Qb2xhckZvcm0obWFnbml0dWRlOiBudW1iZXIsIGFyZ3VtZW50OiBudW1iZXIpOiBDb21wbGV4IHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLmNvcyhhcmd1bWVudCkgKiBtYWduaXR1ZGU7XG4gICAgICAgICAgICBjb25zdCBpID0gTWF0aC5zaW4oYXJndW1lbnQpICogbWFnbml0dWRlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KHIsIGkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0cnVjdG9yKHJlYWw6IG51bWJlciwgaW1nOiBudW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVhbCA9IHJlYWw7XG4gICAgICAgICAgICB0aGlzLmltZyA9IGltZztcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgbWFnbml0dWRlKCk6IG51bWJlciB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KCh0aGlzLnJlYWwgKiB0aGlzLnJlYWwpICsgKHRoaXMuaW1nICogdGhpcy5pbWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBhcmd1bWVudCgpOiBudW1iZXIge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguYXRhbjIodGhpcy5pbWcsIHRoaXMucmVhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgYWRkKGFkZEM6IENvbXBsZXgpOiBDb21wbGV4IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwgKyBhZGRDLnJlYWwsIHRoaXMuaW1nICsgYWRkQy5pbWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN1YihzdWJDOiBDb21wbGV4KTogQ29tcGxleCB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBsZXgodGhpcy5yZWFsIC0gc3ViQy5yZWFsLCB0aGlzLmltZyAtIHN1YkMuaW1nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBtdWx0KG11bHRDOiBDb21wbGV4KTogQ29tcGxleCB7XG4gICAgICAgICAgICBjb25zdCBtdWx0UiA9ICh0aGlzLnJlYWwgKiBtdWx0Qy5yZWFsKSAtICh0aGlzLmltZyAqIG11bHRDLmltZyk7XG4gICAgICAgICAgICBjb25zdCBtdWx0SSA9ICh0aGlzLnJlYWwgKiBtdWx0Qy5pbWcpICsgKG11bHRDLnJlYWwgKiB0aGlzLmltZyk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBsZXgobXVsdFIsIG11bHRJKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBtdWx0UmVhbChtdWx0RjogbnVtYmVyKTogQ29tcGxleCB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBsZXgodGhpcy5yZWFsICogbXVsdEYsIHRoaXMuaW1nICogbXVsdEYpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGRpdihkaXZpc29yOiBDb21wbGV4KTogQ29tcGxleCB7XG4gICAgICAgICAgICBjb25zdCBkaXZSZWFsID0gZGl2aXNvci5yZWFsO1xuICAgICAgICAgICAgY29uc3QgZGl2SW1nID0gZGl2aXNvci5pbWc7XG4gICAgICAgICAgICBjb25zdCBkaXYgPSAoZGl2UmVhbCAqIGRpdlJlYWwpICsgKGRpdkltZyAqIGRpdkltZyk7XG4gICAgICAgICAgICBjb25zdCBkaXZpc2lvblJlYWwgPSAoKHRoaXMucmVhbCAqIGRpdlJlYWwpICsgKHRoaXMuaW1nICogZGl2SW1nKSkgLyBkaXY7XG4gICAgICAgICAgICBjb25zdCBkaXZpc2lvbkltZyA9ICgoZGl2UmVhbCAqIHRoaXMuaW1nKSAtICh0aGlzLnJlYWwgKiBkaXZJbWcpKSAvIGRpdjtcblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KGRpdmlzaW9uUmVhbCwgZGl2aXNpb25JbWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGRpdlJlYWwoZGl2aXNvcjogbnVtYmVyKTogQ29tcGxleCB7XG4gICAgICAgICAgICBjb25zdCBkaXYgPSBkaXZpc29yICogZGl2aXNvcjtcbiAgICAgICAgICAgIGNvbnN0IGRpdnNpb25SZWFsID0gKHRoaXMucmVhbCAqIGRpdmlzb3IpIC8gZGl2O1xuICAgICAgICAgICAgY29uc3QgZGl2c2lvbkltZyA9IChkaXZpc29yICogdGhpcy5pbWcpIC8gZGl2O1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBsZXgoZGl2c2lvblJlYWwsIGRpdnNpb25JbWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGNvbmp1Z2F0ZSgpOiBDb21wbGV4IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwsIC10aGlzLmltZyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZXF1YWxzKGM6IENvbXBsZXgpOiBib29sZWFuIHtcbiAgICAgICAgICAgIGlmIChjID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLnJlYWwgPT09IGMucmVhbCAmJiB0aGlzLmltZyA9PT0gYy5pbWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgICAgICByZXR1cm4gJ1JlYWw6ICcgKyB0aGlzLnJlYWwgKyAnLCBJbWc6ICcgKyB0aGlzLmltZztcbiAgICAgICAgfVxuICAgIH1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9tYXRoL2NvbXBsZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0ksTUFBTSxPQUFPLE9BQU87SUFVaEIsWUFBWSxJQUFZLEVBQUUsR0FBVztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBUk0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFpQixFQUFFLFFBQWdCO1FBQzNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFLTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxHQUFHLENBQUMsSUFBYTtRQUNwQixPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQWE7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFjO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sR0FBRyxDQUFDLE9BQWdCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxPQUFPLENBQUMsT0FBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUU5QyxPQUFPLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLENBQVU7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN2RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICAgIGV4cG9ydCBjbGFzcyBDb21wbGV4IHtcclxuXHJcbiAgICAgICAgcmVhbDogbnVtYmVyO1xyXG4gICAgICAgIGltZzogbnVtYmVyO1xyXG5cclxuICAgICAgICBwdWJsaWMgc3RhdGljIGZyb21Qb2xhckZvcm0obWFnbml0dWRlOiBudW1iZXIsIGFyZ3VtZW50OiBudW1iZXIpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgY29uc3QgciA9IE1hdGguY29zKGFyZ3VtZW50KSAqIG1hZ25pdHVkZTtcclxuICAgICAgICAgICAgY29uc3QgaSA9IE1hdGguc2luKGFyZ3VtZW50KSAqIG1hZ25pdHVkZTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KHIsIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdHJ1Y3RvcihyZWFsOiBudW1iZXIsIGltZzogbnVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhbCA9IHJlYWw7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nID0gaW1nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwdWJsaWMgbWFnbml0dWRlKCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoKHRoaXMucmVhbCAqIHRoaXMucmVhbCkgKyAodGhpcy5pbWcgKiB0aGlzLmltZykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGFyZ3VtZW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRoaXMuaW1nLCB0aGlzLnJlYWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGFkZChhZGRDOiBDb21wbGV4KTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwgKyBhZGRDLnJlYWwsIHRoaXMuaW1nICsgYWRkQy5pbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHN1YihzdWJDOiBDb21wbGV4KTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwgLSBzdWJDLnJlYWwsIHRoaXMuaW1nIC0gc3ViQy5pbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIG11bHQobXVsdEM6IENvbXBsZXgpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgY29uc3QgbXVsdFIgPSAodGhpcy5yZWFsICogbXVsdEMucmVhbCkgLSAodGhpcy5pbWcgKiBtdWx0Qy5pbWcpO1xyXG4gICAgICAgICAgICBjb25zdCBtdWx0SSA9ICh0aGlzLnJlYWwgKiBtdWx0Qy5pbWcpICsgKG11bHRDLnJlYWwgKiB0aGlzLmltZyk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleChtdWx0UiwgbXVsdEkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIG11bHRSZWFsKG11bHRGOiBudW1iZXIpOiBDb21wbGV4IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KHRoaXMucmVhbCAqIG11bHRGLCB0aGlzLmltZyAqIG11bHRGKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBkaXYoZGl2aXNvcjogQ29tcGxleCk6IENvbXBsZXgge1xyXG4gICAgICAgICAgICBjb25zdCBkaXZSZWFsID0gZGl2aXNvci5yZWFsO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZJbWcgPSBkaXZpc29yLmltZztcclxuICAgICAgICAgICAgY29uc3QgZGl2ID0gKGRpdlJlYWwgKiBkaXZSZWFsKSArIChkaXZJbWcgKiBkaXZJbWcpO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZpc2lvblJlYWwgPSAoKHRoaXMucmVhbCAqIGRpdlJlYWwpICsgKHRoaXMuaW1nICogZGl2SW1nKSkgLyBkaXY7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpdmlzaW9uSW1nID0gKChkaXZSZWFsICogdGhpcy5pbWcpIC0gKHRoaXMucmVhbCAqIGRpdkltZykpIC8gZGl2O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KGRpdmlzaW9uUmVhbCwgZGl2aXNpb25JbWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGRpdlJlYWwoZGl2aXNvcjogbnVtYmVyKTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRpdmlzb3IgKiBkaXZpc29yO1xyXG4gICAgICAgICAgICBjb25zdCBkaXZzaW9uUmVhbCA9ICh0aGlzLnJlYWwgKiBkaXZpc29yKSAvIGRpdjtcclxuICAgICAgICAgICAgY29uc3QgZGl2c2lvbkltZyA9IChkaXZpc29yICogdGhpcy5pbWcpIC8gZGl2O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb21wbGV4KGRpdnNpb25SZWFsLCBkaXZzaW9uSW1nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBjb25qdWdhdGUoKTogQ29tcGxleCB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcGxleCh0aGlzLnJlYWwsIC10aGlzLmltZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgZXF1YWxzKGM6IENvbXBsZXgpOiBib29sZWFuIHtcclxuICAgICAgICAgICAgaWYgKGMgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMucmVhbCA9PT0gYy5yZWFsICYmIHRoaXMuaW1nID09PSBjLmltZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICAgICAgcmV0dXJuICdSZWFsOiAnICsgdGhpcy5yZWFsICsgJywgSW1nOiAnICsgdGhpcy5pbWc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4iXX0=
@@ -193,4 +193,4 @@ export class DFT {
193
193
  return trans;
194
194
  }
195
195
  }
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL21hdGgvZGZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBWSxDQUFTO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsOEVBQThFO1FBRTlFLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQW9CO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFL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RSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wbGV4IH0gZnJvbSAnLi9jb21wbGV4JztcblxuICAgIGV4cG9ydCBjbGFzcyBERlRGbG9hdDMyIHtcblxuICAgICAgICBwcml2YXRlIG46IG51bWJlcjtcbiAgICAgICAgcHJpdmF0ZSBtOiBudW1iZXI7XG5cbiAgICAgICAgcHJpdmF0ZSBjb3NMb29rdXA6IEZsb2F0MzJBcnJheTtcbiAgICAgICAgcHJpdmF0ZSBzaW5Mb29rdXA6IEZsb2F0MzJBcnJheTtcblxuICAgICAgICBjb25zdHJ1Y3RvcihuOiBudW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMubiA9IG47XG4gICAgICAgICAgICB0aGlzLm0gPSBNYXRoLmxvZyhuKSAvIE1hdGgubG9nKDIpO1xuXG4gICAgICAgICAgICAvLyBpZihuICE9ICgxIDw8IG0pKXRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKFwibGVuZ3RoIE4gbXVzdCBiZSBwb3dlciBvZiAyXCIpO1xuXG4gICAgICAgICAgICAvLyBsb29rdXAgdGFibGVzXG4gICAgICAgICAgICB0aGlzLmNvc0xvb2t1cCA9IG5ldyBGbG9hdDMyQXJyYXkobiAvIDIpO1xuICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXAgPSBuZXcgRmxvYXQzMkFycmF5KG4gLyAyKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuIC8gMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvc0xvb2t1cFtpXSA9IE1hdGguY29zKGFyYyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXBbaV0gPSBNYXRoLnNpbihhcmMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogRmxvYXQzMkFycmF5KTogQXJyYXk8Q29tcGxleD4ge1xuICAgICAgICAgICAgY29uc3QgeCA9IHNyY0J1Zi5zbGljZSgpO1xuICAgICAgICAgICAgY29uc3QgeSA9IG5ldyBGbG9hdDMyQXJyYXkoc3JjQnVmLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCB5aSA9IDA7IHlpIDwgeS5sZW5ndGg7IHlpKyspIHtcbiAgICAgICAgICAgICAgICB5W3lpXSA9IDAuMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkoeCwgeSk7XG4gICAgICAgICAgICBjb25zdCByYyA9IG5ldyBBcnJheTxDb21wbGV4Pih4Lmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByY1tpXSA9IG5ldyBDb21wbGV4KHhbaV0sIHlbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJjO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsTWFnbml0dWRlKHNyY0J1ZjogRmxvYXQzMkFycmF5KTogRmxvYXQzMkFycmF5IHtcbiAgICAgICAgICAgIGNvbnN0IHggPSBzcmNCdWYuc2xpY2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHkgPSBuZXcgRmxvYXQzMkFycmF5KHNyY0J1Zi5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChsZXQgeWkgPSAwOyB5aSA8IHkubGVuZ3RoOyB5aSsrKSB7XG4gICAgICAgICAgICAgICAgeVt5aV0gPSAwLjA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZmdENvb2xleVR1a2V5KHgsIHkpO1xuICAgICAgICAgICAgY29uc3QgcmMgPSBuZXcgRmxvYXQzMkFycmF5KHgubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJjYyA9IG5ldyBDb21wbGV4KHhbaV0sIHlbaV0pO1xuICAgICAgICAgICAgICAgIHJjW2ldID0gcmNjLm1hZ25pdHVkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJjO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGZmdENvb2xleVR1a2V5KHJlYWw6IEZsb2F0MzJBcnJheSwgaW1nOiBGbG9hdDMyQXJyYXkpOiB2b2lkIHtcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgICAgICBsZXQgaiA9IDA7XG4gICAgICAgICAgICBsZXQgazogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IG4xOiBudW1iZXI7XG4gICAgICAgICAgICBsZXQgbjI6IG51bWJlciA9IHRoaXMubiAvIDI7XG4gICAgICAgICAgICBsZXQgYTogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IGM6IG51bWJlcjtcbiAgICAgICAgICAgIGxldCBzOiBudW1iZXI7XG4gICAgICAgICAgICBsZXQgdDE6IG51bWJlcjtcbiAgICAgICAgICAgIGxldCB0MjogbnVtYmVyO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgdGhpcy5uIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbjEgPSBuMjtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaiA+PSBuMSkge1xuICAgICAgICAgICAgICAgICAgICBqID0gaiAtIG4xO1xuICAgICAgICAgICAgICAgICAgICBuMSA9IG4xIC8gMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaiA9IGogKyBuMTtcblxuICAgICAgICAgICAgICAgIGlmIChpIDwgaikge1xuICAgICAgICAgICAgICAgICAgICB0MSA9IHJlYWxbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlYWxbaV0gPSByZWFsW2pdO1xuICAgICAgICAgICAgICAgICAgICByZWFsW2pdID0gdDE7XG4gICAgICAgICAgICAgICAgICAgIHQxID0gaW1nW2ldO1xuICAgICAgICAgICAgICAgICAgICBpbWdbaV0gPSBpbWdbal07XG4gICAgICAgICAgICAgICAgICAgIGltZ1tqXSA9IHQxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbjEgPSAwO1xuICAgICAgICAgICAgbjIgPSAxO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbjEgPSBuMjtcbiAgICAgICAgICAgICAgICBuMiA9IG4yICsgbjI7XG4gICAgICAgICAgICAgICAgYSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG4xOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IHRoaXMuY29zTG9va3VwW2FdO1xuICAgICAgICAgICAgICAgICAgICBzID0gdGhpcy5zaW5Mb29rdXBbYV07XG4gICAgICAgICAgICAgICAgICAgIGEgKz0gKCAxIDw8ICh0aGlzLm0gLSBpIC0gMSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoayA9IGo7IGsgPCB0aGlzLm47IGsgPSBrICsgbjIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHQxID0gYyAqIHJlYWxbayArIG4xXSAtIHMgKiBpbWdbayArIG4xXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHQyID0gcyAqIHJlYWxbayArIG4xXSArIGMgKiBpbWdbayArIG4xXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxbayArIG4xXSA9IHJlYWxba10gLSB0MTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1trICsgbjFdID0gaW1nW2tdIC0gdDI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFsW2tdID0gcmVhbFtrXSArIHQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2tdID0gaW1nW2tdICsgdDI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzKHQ6IEFycmF5PENvbXBsZXg+KTogQXJyYXk8Q29tcGxleD4ge1xuICAgICAgICAgICAgY29uc3QgcmVhbHM6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodGhpcy5uKTtcbiAgICAgICAgICAgIGNvbnN0IGltZ3M6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodGhpcy5uKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zOiBBcnJheTxDb21wbGV4PiA9IG5ldyBBcnJheTxDb21wbGV4Pih0aGlzLm4pO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xuICAgICAgICAgICAgICAgIHJlYWxzW2ldID0gdFtpXS5yZWFsO1xuICAgICAgICAgICAgICAgIGltZ3NbaV0gPSB0W2ldLmltZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkocmVhbHMsIGltZ3MpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xuICAgICAgICAgICAgICAgIHRyYW5zW2ldID0gbmV3IENvbXBsZXgocmVhbHNbaV0sIGltZ3NbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zO1xuXG5cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIGV4cG9ydCBjbGFzcyBERlQge1xuXG4gICAgICAgIHByaXZhdGUgbjogbnVtYmVyO1xuICAgICAgICBwcml2YXRlIG06IG51bWJlcjtcblxuICAgICAgICBwcml2YXRlIGNvc0xvb2t1cDogQXJyYXk8bnVtYmVyPjtcbiAgICAgICAgcHJpdmF0ZSBzaW5Mb29rdXA6IEFycmF5PG51bWJlcj47XG5cbiAgICAgICAgY29uc3RydWN0b3IobjogbnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLm4gPSBuO1xuICAgICAgICAgICAgdGhpcy5tID0gTWF0aC5sb2cobikgLyBNYXRoLmxvZygyKTtcblxuICAgICAgICAgICAgLy8gaWYobiAhPSAoMSA8PCBtKSl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihcImxlbmd0aCBOIG11c3QgYmUgcG93ZXIgb2YgMlwiKTtcblxuICAgICAgICAgICAgLy8gbG9va3VwIHRhYmxlc1xuICAgICAgICAgICAgdGhpcy5jb3NMb29rdXAgPSBuZXcgQXJyYXk8bnVtYmVyPihuIC8gMik7XG4gICAgICAgICAgICB0aGlzLnNpbkxvb2t1cCA9IG5ldyBBcnJheTxudW1iZXI+KG4gLyAyKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuIC8gMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvc0xvb2t1cFtpXSA9IE1hdGguY29zKGFyYyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXBbaV0gPSBNYXRoLnNpbihhcmMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogQXJyYXk8bnVtYmVyPik6IEFycmF5PENvbXBsZXg+IHtcbiAgICAgICAgICAgIGNvbnN0IHggPSBzcmNCdWYuc2xpY2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHkgPSBuZXcgQXJyYXk8bnVtYmVyPihzcmNCdWYubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAobGV0IHlpID0gMDsgeWkgPCB5Lmxlbmd0aDsgeWkrKykge1xuICAgICAgICAgICAgICAgIHlbeWldID0gMC4wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleSh4LCB5KTtcbiAgICAgICAgICAgIGNvbnN0IHJjID0gbmV3IEFycmF5PENvbXBsZXg+KHgubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHJjW2ldID0gbmV3IENvbXBsZXgoeFtpXSwgeVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmM7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZmZ0Q29vbGV5VHVrZXkocmVhbDogQXJyYXk8bnVtYmVyPiwgaW1nOiBBcnJheTxudW1iZXI+KTogdm9pZCB7XG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IGogPSAwO1xuICAgICAgICAgICAgbGV0IGs6IG51bWJlcjtcbiAgICAgICAgICAgIGxldCBuMTogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IG4yOiBudW1iZXIgPSB0aGlzLm4gLyAyO1xuICAgICAgICAgICAgbGV0IGE6IG51bWJlcjtcbiAgICAgICAgICAgIGxldCBjOiBudW1iZXI7XG4gICAgICAgICAgICBsZXQgczogbnVtYmVyO1xuICAgICAgICAgICAgbGV0IHQxOiBudW1iZXI7XG4gICAgICAgICAgICBsZXQgdDI6IG51bWJlcjtcblxuICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IHRoaXMubiAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgIG4xID0gbjI7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGogPj0gbjEpIHtcbiAgICAgICAgICAgICAgICAgICAgaiA9IGogLSBuMTtcbiAgICAgICAgICAgICAgICAgICAgbjEgPSBuMSAvIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGogPSBqICsgbjE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaSA8IGopIHtcbiAgICAgICAgICAgICAgICAgICAgdDEgPSByZWFsW2ldO1xuICAgICAgICAgICAgICAgICAgICByZWFsW2ldID0gcmVhbFtqXTtcbiAgICAgICAgICAgICAgICAgICAgcmVhbFtqXSA9IHQxO1xuICAgICAgICAgICAgICAgICAgICB0MSA9IGltZ1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaW1nW2ldID0gaW1nW2pdO1xuICAgICAgICAgICAgICAgICAgICBpbWdbal0gPSB0MTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG4xID0gMDtcbiAgICAgICAgICAgIG4yID0gMTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLm07IGkrKykge1xuICAgICAgICAgICAgICAgIG4xID0gbjI7XG4gICAgICAgICAgICAgICAgbjIgPSBuMiArIG4yO1xuICAgICAgICAgICAgICAgIGEgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBuMTsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLmNvc0xvb2t1cFthXTtcbiAgICAgICAgICAgICAgICAgICAgcyA9IHRoaXMuc2luTG9va3VwW2FdO1xuICAgICAgICAgICAgICAgICAgICBhICs9IDEgPDwgKHRoaXMubSAtIGkgLSAxKTtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSBqOyBrIDwgdGhpcy5uOyBrID0gayArIG4yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0MSA9IGMgKiByZWFsW2sgKyBuMV0gLSBzICogaW1nW2sgKyBuMV07XG4gICAgICAgICAgICAgICAgICAgICAgICB0MiA9IHMgKiByZWFsW2sgKyBuMV0gKyBjICogaW1nW2sgKyBuMV07XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFsW2sgKyBuMV0gPSByZWFsW2tdIC0gdDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdbayArIG4xXSA9IGltZ1trXSAtIHQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrXSA9IHJlYWxba10gKyB0MTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1trXSA9IGltZ1trXSArIHQyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBwdWJsaWMgcHJvY2Vzcyh0OiBBcnJheTxDb21wbGV4Pik6IEFycmF5PENvbXBsZXg+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWxzOiBBcnJheTxudW1iZXI+ID0gbmV3IEFycmF5PG51bWJlcj4odGhpcy5uKTtcbiAgICAgICAgICAgIGNvbnN0IGltZ3M6IEFycmF5PG51bWJlcj4gPSBuZXcgQXJyYXk8bnVtYmVyPih0aGlzLm4pO1xuICAgICAgICAgICAgY29uc3QgdHJhbnM6IEFycmF5PENvbXBsZXg+ID0gbmV3IEFycmF5PENvbXBsZXg+KHRoaXMubik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcmVhbHNbaV0gPSB0W2ldLnJlYWw7XG4gICAgICAgICAgICAgICAgaW1nc1tpXSA9IHRbaV0uaW1nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleShyZWFscywgaW1ncyk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNbaV0gPSBuZXcgQ29tcGxleChyZWFsc1tpXSwgaW1nc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJhbnM7XG4gICAgICAgIH1cblxuICAgIH1cblxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL21hdGgvZGZ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsTUFBTSxPQUFPLFVBQVU7SUFRbkIsWUFBWSxDQUFTO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsOEVBQThFO1FBRTlFLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQW9CO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFL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RSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wbGV4IH0gZnJvbSAnLi9jb21wbGV4JztcclxuXHJcbiAgICBleHBvcnQgY2xhc3MgREZURmxvYXQzMiB7XHJcblxyXG4gICAgICAgIHByaXZhdGUgbjogbnVtYmVyO1xyXG4gICAgICAgIHByaXZhdGUgbTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwcml2YXRlIGNvc0xvb2t1cDogRmxvYXQzMkFycmF5O1xyXG4gICAgICAgIHByaXZhdGUgc2luTG9va3VwOiBGbG9hdDMyQXJyYXk7XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKG46IG51bWJlcikge1xyXG4gICAgICAgICAgICB0aGlzLm4gPSBuO1xyXG4gICAgICAgICAgICB0aGlzLm0gPSBNYXRoLmxvZyhuKSAvIE1hdGgubG9nKDIpO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYobiAhPSAoMSA8PCBtKSl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihcImxlbmd0aCBOIG11c3QgYmUgcG93ZXIgb2YgMlwiKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGxvb2t1cCB0YWJsZXNcclxuICAgICAgICAgICAgdGhpcy5jb3NMb29rdXAgPSBuZXcgRmxvYXQzMkFycmF5KG4gLyAyKTtcclxuICAgICAgICAgICAgdGhpcy5zaW5Mb29rdXAgPSBuZXcgRmxvYXQzMkFycmF5KG4gLyAyKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAvIDI7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29zTG9va3VwW2ldID0gTWF0aC5jb3MoYXJjKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luTG9va3VwW2ldID0gTWF0aC5zaW4oYXJjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogRmxvYXQzMkFycmF5KTogQXJyYXk8Q29tcGxleD4ge1xyXG4gICAgICAgICAgICBjb25zdCB4ID0gc3JjQnVmLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHkgPSBuZXcgRmxvYXQzMkFycmF5KHNyY0J1Zi5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCB5aSA9IDA7IHlpIDwgeS5sZW5ndGg7IHlpKyspIHtcclxuICAgICAgICAgICAgICAgIHlbeWldID0gMC4wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZmZ0Q29vbGV5VHVrZXkoeCwgeSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJjID0gbmV3IEFycmF5PENvbXBsZXg+KHgubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICByY1tpXSA9IG5ldyBDb21wbGV4KHhbaV0sIHlbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBwcm9jZXNzUmVhbE1hZ25pdHVkZShzcmNCdWY6IEZsb2F0MzJBcnJheSk6IEZsb2F0MzJBcnJheSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHggPSBzcmNCdWYuc2xpY2UoKTtcclxuICAgICAgICAgICAgY29uc3QgeSA9IG5ldyBGbG9hdDMyQXJyYXkoc3JjQnVmLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHlpID0gMDsgeWkgPCB5Lmxlbmd0aDsgeWkrKykge1xyXG4gICAgICAgICAgICAgICAgeVt5aV0gPSAwLjA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleSh4LCB5KTtcclxuICAgICAgICAgICAgY29uc3QgcmMgPSBuZXcgRmxvYXQzMkFycmF5KHgubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByY2MgPSBuZXcgQ29tcGxleCh4W2ldLCB5W2ldKTtcclxuICAgICAgICAgICAgICAgIHJjW2ldID0gcmNjLm1hZ25pdHVkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiByYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB1YmxpYyBmZnRDb29sZXlUdWtleShyZWFsOiBGbG9hdDMyQXJyYXksIGltZzogRmxvYXQzMkFycmF5KTogdm9pZCB7XHJcbiAgICAgICAgICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBqID0gMDtcclxuICAgICAgICAgICAgbGV0IGs6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IG4xOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBuMjogbnVtYmVyID0gdGhpcy5uIC8gMjtcclxuICAgICAgICAgICAgbGV0IGE6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IGM6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHM6IG51bWJlcjtcclxuICAgICAgICAgICAgbGV0IHQxOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCB0MjogbnVtYmVyO1xyXG5cclxuICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IHRoaXMubiAtIDE7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbjEgPSBuMjtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChqID49IG4xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaiA9IGogLSBuMTtcclxuICAgICAgICAgICAgICAgICAgICBuMSA9IG4xIC8gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGogPSBqICsgbjE7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCBqKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdDEgPSByZWFsW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlYWxbaV0gPSByZWFsW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlYWxbal0gPSB0MTtcclxuICAgICAgICAgICAgICAgICAgICB0MSA9IGltZ1tpXTtcclxuICAgICAgICAgICAgICAgICAgICBpbWdbaV0gPSBpbWdbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nW2pdID0gdDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIG4xID0gMDtcclxuICAgICAgICAgICAgbjIgPSAxO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5tOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG4xID0gbjI7XHJcbiAgICAgICAgICAgICAgICBuMiA9IG4yICsgbjI7XHJcbiAgICAgICAgICAgICAgICBhID0gMDtcclxuICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBuMTsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYyA9IHRoaXMuY29zTG9va3VwW2FdO1xyXG4gICAgICAgICAgICAgICAgICAgIHMgPSB0aGlzLnNpbkxvb2t1cFthXTtcclxuICAgICAgICAgICAgICAgICAgICBhICs9ICggMSA8PCAodGhpcy5tIC0gaSAtIDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gajsgayA8IHRoaXMubjsgayA9IGsgKyBuMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0MSA9IGMgKiByZWFsW2sgKyBuMV0gLSBzICogaW1nW2sgKyBuMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHQyID0gcyAqIHJlYWxbayArIG4xXSArIGMgKiBpbWdbayArIG4xXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrICsgbjFdID0gcmVhbFtrXSAtIHQxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdbayArIG4xXSA9IGltZ1trXSAtIHQyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFsW2tdID0gcmVhbFtrXSArIHQxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdba10gPSBpbWdba10gKyB0MjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBwdWJsaWMgcHJvY2Vzcyh0OiBBcnJheTxDb21wbGV4Pik6IEFycmF5PENvbXBsZXg+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVhbHM6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkodGhpcy5uKTtcclxuICAgICAgICAgICAgY29uc3QgaW1nczogRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLm4pO1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuczogQXJyYXk8Q29tcGxleD4gPSBuZXcgQXJyYXk8Q29tcGxleD4odGhpcy5uKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgcmVhbHNbaV0gPSB0W2ldLnJlYWw7XHJcbiAgICAgICAgICAgICAgICBpbWdzW2ldID0gdFtpXS5pbWc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleShyZWFscywgaW1ncyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zW2ldID0gbmV3IENvbXBsZXgocmVhbHNbaV0sIGltZ3NbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFucztcclxuXHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICBleHBvcnQgY2xhc3MgREZUIHtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBuOiBudW1iZXI7XHJcbiAgICAgICAgcHJpdmF0ZSBtOiBudW1iZXI7XHJcblxyXG4gICAgICAgIHByaXZhdGUgY29zTG9va3VwOiBBcnJheTxudW1iZXI+O1xyXG4gICAgICAgIHByaXZhdGUgc2luTG9va3VwOiBBcnJheTxudW1iZXI+O1xyXG5cclxuICAgICAgICBjb25zdHJ1Y3RvcihuOiBudW1iZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uID0gbjtcclxuICAgICAgICAgICAgdGhpcy5tID0gTWF0aC5sb2cobikgLyBNYXRoLmxvZygyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGlmKG4gIT0gKDEgPDwgbSkpdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oXCJsZW5ndGggTiBtdXN0IGJlIHBvd2VyIG9mIDJcIik7XHJcblxyXG4gICAgICAgICAgICAvLyBsb29rdXAgdGFibGVzXHJcbiAgICAgICAgICAgIHRoaXMuY29zTG9va3VwID0gbmV3IEFycmF5PG51bWJlcj4obiAvIDIpO1xyXG4gICAgICAgICAgICB0aGlzLnNpbkxvb2t1cCA9IG5ldyBBcnJheTxudW1iZXI+KG4gLyAyKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbiAvIDI7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYXJjID0gKC0yICogTWF0aC5QSSAqIGkpIC8gbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29zTG9va3VwW2ldID0gTWF0aC5jb3MoYXJjKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luTG9va3VwW2ldID0gTWF0aC5zaW4oYXJjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3NSZWFsKHNyY0J1ZjogQXJyYXk8bnVtYmVyPik6IEFycmF5PENvbXBsZXg+IHtcclxuICAgICAgICAgICAgY29uc3QgeCA9IHNyY0J1Zi5zbGljZSgpO1xyXG4gICAgICAgICAgICBjb25zdCB5ID0gbmV3IEFycmF5PG51bWJlcj4oc3JjQnVmLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHlpID0gMDsgeWkgPCB5Lmxlbmd0aDsgeWkrKykge1xyXG4gICAgICAgICAgICAgICAgeVt5aV0gPSAwLjA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5mZnRDb29sZXlUdWtleSh4LCB5KTtcclxuICAgICAgICAgICAgY29uc3QgcmMgPSBuZXcgQXJyYXk8Q29tcGxleD4oeC5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHJjW2ldID0gbmV3IENvbXBsZXgoeFtpXSwgeVtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHJjO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcHVibGljIGZmdENvb2xleVR1a2V5KHJlYWw6IEFycmF5PG51bWJlcj4sIGltZzogQXJyYXk8bnVtYmVyPik6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgaiA9IDA7XHJcbiAgICAgICAgICAgIGxldCBrOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBuMTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgbjI6IG51bWJlciA9IHRoaXMubiAvIDI7XHJcbiAgICAgICAgICAgIGxldCBhOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBjOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCBzOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGxldCB0MTogbnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgdDI6IG51bWJlcjtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCB0aGlzLm4gLSAxOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIG4xID0gbjI7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoaiA+PSBuMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGogPSBqIC0gbjE7XHJcbiAgICAgICAgICAgICAgICAgICAgbjEgPSBuMSAvIDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBqID0gaiArIG4xO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgaikge1xyXG4gICAgICAgICAgICAgICAgICAgIHQxID0gcmVhbFtpXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2ldID0gcmVhbFtqXTtcclxuICAgICAgICAgICAgICAgICAgICByZWFsW2pdID0gdDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdDEgPSBpbWdbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nW2ldID0gaW1nW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ1tqXSA9IHQxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBuMSA9IDA7XHJcbiAgICAgICAgICAgIG4yID0gMTtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBuMSA9IG4yO1xyXG4gICAgICAgICAgICAgICAgbjIgPSBuMiArIG4yO1xyXG4gICAgICAgICAgICAgICAgYSA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbjE7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLmNvc0xvb2t1cFthXTtcclxuICAgICAgICAgICAgICAgICAgICBzID0gdGhpcy5zaW5Mb29rdXBbYV07XHJcbiAgICAgICAgICAgICAgICAgICAgYSArPSAxIDw8ICh0aGlzLm0gLSBpIC0gMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoayA9IGo7IGsgPCB0aGlzLm47IGsgPSBrICsgbjIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdDEgPSBjICogcmVhbFtrICsgbjFdIC0gcyAqIGltZ1trICsgbjFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0MiA9IHMgKiByZWFsW2sgKyBuMV0gKyBjICogaW1nW2sgKyBuMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWxbayArIG4xXSA9IHJlYWxba10gLSB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2sgKyBuMV0gPSBpbWdba10gLSB0MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFtrXSA9IHJlYWxba10gKyB0MTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nW2tdID0gaW1nW2tdICsgdDI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgcHVibGljIHByb2Nlc3ModDogQXJyYXk8Q29tcGxleD4pOiBBcnJheTxDb21wbGV4PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWxzOiBBcnJheTxudW1iZXI+ID0gbmV3IEFycmF5PG51bWJlcj4odGhpcy5uKTtcclxuICAgICAgICAgICAgY29uc3QgaW1nczogQXJyYXk8bnVtYmVyPiA9IG5ldyBBcnJheTxudW1iZXI+KHRoaXMubik7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zOiBBcnJheTxDb21wbGV4PiA9IG5ldyBBcnJheTxDb21wbGV4Pih0aGlzLm4pO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICByZWFsc1tpXSA9IHRbaV0ucmVhbDtcclxuICAgICAgICAgICAgICAgIGltZ3NbaV0gPSB0W2ldLmltZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmZmdENvb2xleVR1a2V5KHJlYWxzLCBpbWdzKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNbaV0gPSBuZXcgQ29tcGxleChyZWFsc1tpXSwgaW1nc1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
@@ -53,12 +53,12 @@ export class ProjectService {
53
53
  }
54
54
  }
55
55
  ProjectService.PROJECT_API_CTX = 'project';
56
- ProjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService, deps: [{ token: i1.HttpClient }, { token: i2.PlatformLocation }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
57
- ProjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService, decorators: [{
56
+ ProjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProjectService, deps: [{ token: i1.HttpClient }, { token: i2.PlatformLocation }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
57
+ ProjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProjectService });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProjectService, decorators: [{
59
59
  type: Injectable
60
60
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.PlatformLocation }, { type: i3.SpeechRecorderConfig, decorators: [{
61
61
  type: Inject,
62
62
  args: [SPEECHRECORDER_CONFIG]
63
63
  }] }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQW9CLElBQWUsRUFBUyxnQkFBaUMsRUFBd0MsTUFBNEI7UUFBN0gsU0FBSSxHQUFKLElBQUksQ0FBVztRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBd0MsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFGekksb0JBQWUsR0FBUyxLQUFLLENBQUM7UUFJcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixJQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQy9CLFdBQVcsR0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ2hDO1FBQ0QsSUFBRyxXQUFXLEtBQUssRUFBRSxFQUFDO1lBQ3BCLFdBQVcsR0FBQyxXQUFXLEdBQUMsR0FBRyxDQUFBO1NBQzVCO1FBQ0QsSUFBRyxNQUFNLElBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUUsSUFBSSxFQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFFcEUsQ0FBQztJQUVPLHFDQUFxQyxDQUFDLEdBQVU7UUFDdEQsSUFBSSxNQUFNLEdBQUMsR0FBRyxDQUFDO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDeEQsMkJBQTJCO1lBQzNCLDJFQUEyRTtZQUMzRSxNQUFNLEdBQUcsTUFBTSxHQUFHLG9CQUFvQixHQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN4RDtRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFTO1FBQ2xCLElBQUksUUFBUSxHQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFDLGVBQXNCO1FBQ3pELElBQUksUUFBUSxHQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLDhGQUE4RjtRQUM5Riw0RkFBNEY7UUFDNUYsSUFBSSxhQUFhLEdBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsUUFBUSxHQUFFLEdBQUcsR0FBQyxhQUFhLENBQUM7SUFDaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVM7UUFDekIsSUFBSSxNQUFNLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLE1BQU0sRUFBQyxFQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQTtJQUMvRSxDQUFDOztBQWxEcUIsOEJBQWUsR0FBQyxTQUFTLENBQUE7NEdBRHJDLGNBQWMsNEVBSzZELHFCQUFxQjtnSEFMaEcsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFNc0UsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBrbGF1c2ogb24gMTcuMDYuMjAxNy5cclxuICovXHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtBcGlUeXBlLCBTUEVFQ0hSRUNPUkRFUl9DT05GSUcsIFNwZWVjaFJlY29yZGVyQ29uZmlnfSBmcm9tIFwiLi4vLi4vc3ByLmNvbmZpZ1wiO1xyXG5pbXBvcnQge1Byb2plY3R9IGZyb20gXCIuL3Byb2plY3RcIjtcclxuaW1wb3J0IHtVVUlEfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHNcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1BsYXRmb3JtTG9jYXRpb259IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPSkVDVF9BUElfQ1RYPSdwcm9qZWN0J1xyXG4gIHByaXZhdGUgcHJvamVjdEN0eFVybDpzdHJpbmc7XHJcbiAgcHJpdmF0ZSB3aXRoQ3JlZGVudGlhbHM6Ym9vbGVhbj1mYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOkh0dHBDbGllbnQscHJpdmF0ZSBwbGF0Zm9ybUxvYWN0aW9uOlBsYXRmb3JtTG9jYXRpb24sQEluamVjdChTUEVFQ0hSRUNPUkRFUl9DT05GSUcpIHByaXZhdGUgY29uZmlnPzpTcGVlY2hSZWNvcmRlckNvbmZpZykge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiQmFzZSBIcmVmOiBcIitwbGF0Zm9ybUxvYWN0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpKTtcclxuXHJcbiAgICBsZXQgYXBpRW5kUG9pbnQgPSAnJ1xyXG5cclxuICAgIGlmKGNvbmZpZyAmJiBjb25maWcuYXBpRW5kUG9pbnQpIHtcclxuICAgICAgYXBpRW5kUG9pbnQ9Y29uZmlnLmFwaUVuZFBvaW50O1xyXG4gICAgfVxyXG4gICAgaWYoYXBpRW5kUG9pbnQgIT09ICcnKXtcclxuICAgICAgYXBpRW5kUG9pbnQ9YXBpRW5kUG9pbnQrJy8nXHJcbiAgICB9XHJcbiAgICBpZihjb25maWchPW51bGwgJiYgY29uZmlnLndpdGhDcmVkZW50aWFscyE9bnVsbCl7XHJcbiAgICAgIHRoaXMud2l0aENyZWRlbnRpYWxzPWNvbmZpZy53aXRoQ3JlZGVudGlhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wcm9qZWN0Q3R4VXJsID0gYXBpRW5kUG9pbnQgKyBQcm9qZWN0U2VydmljZS5QUk9KRUNUX0FQSV9DVFg7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBlbmRSZXF1ZXN0VVVJREZvckRldmVsb3BtZW50U2VydmVyKHVybDpzdHJpbmcpOnN0cmluZ3tcclxuICAgIGxldCByZXNVcmw9dXJsO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmFwaVR5cGUgPT09IEFwaVR5cGUuRklMRVMpIHtcclxuICAgICAgLy8gZm9yIGRldmVsb3BtZW50IGFuZCBkZW1vXHJcbiAgICAgIC8vIGFwcGVuZCBVVUlEIHRvIG1ha2UgcmVxdWVzdCBVUkwgdW5pcXVlIHRvIGF2b2lkIGxvY2FsaG9zdCBzZXJ2ZXIgY2FjaGluZ1xyXG4gICAgICByZXNVcmwgPSByZXNVcmwgKyAnLmpzb24/cmVxdWVzdFVVSUQ9JytVVUlELmdlbmVyYXRlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzVXJsXHJcbiAgfVxyXG5cclxuICBwcm9qZWN0VXJsKGlkOnN0cmluZyk6c3RyaW5ne1xyXG4gICAgbGV0IGVuY1ByaklkPWVuY29kZVVSSUNvbXBvbmVudChpZCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRSZXF1ZXN0VVVJREZvckRldmVsb3BtZW50U2VydmVyKHRoaXMucHJvamVjdEN0eFVybCArICcvJyArIGVuY1ByaklkKTtcclxuICB9XHJcblxyXG4gIHByb2plY3RSZXNvdXJjZVVybChwcm9qZWN0SWQ6IHN0cmluZyxyZWxSZXNvdXJjZVBhdGg6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICBsZXQgZW5jUHJqSWQ9ZW5jb2RlVVJJQ29tcG9uZW50KHByb2plY3RJZCk7XHJcbiAgICAvLyBVc2UgZW5jb2RlVVJJIGhlcmUgc2luY2UgdGhlIHJlbGF0aWNlIHJlc291cmNlIHBhdGggZnJvbSByZWNvcmRpbmcgc2NyaXB0cyBpcyBhbHJlYWR5IGEgVVJJXHJcbiAgICAvLyBlbmNvZGVVUklDb21wb25lbnQgZnVuY3Rpb24gd291bGQgZW5jb2RlIHRoZSBzbGFzaGVzIGFuZCBmZXRjaGluZyB0aGUgcmVzb3VyY2Ugd291bGQgZmFpbFxyXG4gICAgbGV0IGVuY1JlbFJlc1BhdGg9ZW5jb2RlVVJJKHJlbFJlc291cmNlUGF0aCk7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0Q3R4VXJsICsgJy8nICsgZW5jUHJqSWQgKycvJytlbmNSZWxSZXNQYXRoO1xyXG4gIH1cclxuXHJcbiAgcHJvamVjdE9ic2VydmFibGUoaWQ6c3RyaW5nKTpPYnNlcnZhYmxlPFByb2plY3Q+e1xyXG4gICAgbGV0IHByalVybD10aGlzLnByb2plY3RVcmwoaWQpO1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2plY3Q+KHByalVybCx7d2l0aENyZWRlbnRpYWxzOiB0aGlzLndpdGhDcmVkZW50aWFsc30pXHJcbiAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQW9CLElBQWUsRUFBUyxnQkFBaUMsRUFBd0MsTUFBNEI7UUFBN0gsU0FBSSxHQUFKLElBQUksQ0FBVztRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBd0MsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFGekksb0JBQWUsR0FBUyxLQUFLLENBQUM7UUFJcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixJQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQy9CLFdBQVcsR0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ2hDO1FBQ0QsSUFBRyxXQUFXLEtBQUssRUFBRSxFQUFDO1lBQ3BCLFdBQVcsR0FBQyxXQUFXLEdBQUMsR0FBRyxDQUFBO1NBQzVCO1FBQ0QsSUFBRyxNQUFNLElBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUUsSUFBSSxFQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFFcEUsQ0FBQztJQUVPLHFDQUFxQyxDQUFDLEdBQVU7UUFDdEQsSUFBSSxNQUFNLEdBQUMsR0FBRyxDQUFDO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDeEQsMkJBQTJCO1lBQzNCLDJFQUEyRTtZQUMzRSxNQUFNLEdBQUcsTUFBTSxHQUFHLG9CQUFvQixHQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN4RDtRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFTO1FBQ2xCLElBQUksUUFBUSxHQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFDLGVBQXNCO1FBQ3pELElBQUksUUFBUSxHQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLDhGQUE4RjtRQUM5Riw0RkFBNEY7UUFDNUYsSUFBSSxhQUFhLEdBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsUUFBUSxHQUFFLEdBQUcsR0FBQyxhQUFhLENBQUM7SUFDaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVM7UUFDekIsSUFBSSxNQUFNLEdBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLE1BQU0sRUFBQyxFQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQTtJQUMvRSxDQUFDOztBQWxEcUIsOEJBQWUsR0FBQyxTQUFTLENBQUE7MkdBRHJDLGNBQWMsNEVBSzZELHFCQUFxQjsrR0FMaEcsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFNc0UsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBrbGF1c2ogb24gMTcuMDYuMjAxNy5cclxuICovXHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtBcGlUeXBlLCBTUEVFQ0hSRUNPUkRFUl9DT05GSUcsIFNwZWVjaFJlY29yZGVyQ29uZmlnfSBmcm9tIFwiLi4vLi4vc3ByLmNvbmZpZ1wiO1xyXG5pbXBvcnQge1Byb2plY3R9IGZyb20gXCIuL3Byb2plY3RcIjtcclxuaW1wb3J0IHtVVUlEfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHNcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1BsYXRmb3JtTG9jYXRpb259IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPSkVDVF9BUElfQ1RYPSdwcm9qZWN0J1xyXG4gIHByaXZhdGUgcHJvamVjdEN0eFVybDpzdHJpbmc7XHJcbiAgcHJpdmF0ZSB3aXRoQ3JlZGVudGlhbHM6Ym9vbGVhbj1mYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOkh0dHBDbGllbnQscHJpdmF0ZSBwbGF0Zm9ybUxvYWN0aW9uOlBsYXRmb3JtTG9jYXRpb24sQEluamVjdChTUEVFQ0hSRUNPUkRFUl9DT05GSUcpIHByaXZhdGUgY29uZmlnPzpTcGVlY2hSZWNvcmRlckNvbmZpZykge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiQmFzZSBIcmVmOiBcIitwbGF0Zm9ybUxvYWN0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpKTtcclxuXHJcbiAgICBsZXQgYXBpRW5kUG9pbnQgPSAnJ1xyXG5cclxuICAgIGlmKGNvbmZpZyAmJiBjb25maWcuYXBpRW5kUG9pbnQpIHtcclxuICAgICAgYXBpRW5kUG9pbnQ9Y29uZmlnLmFwaUVuZFBvaW50O1xyXG4gICAgfVxyXG4gICAgaWYoYXBpRW5kUG9pbnQgIT09ICcnKXtcclxuICAgICAgYXBpRW5kUG9pbnQ9YXBpRW5kUG9pbnQrJy8nXHJcbiAgICB9XHJcbiAgICBpZihjb25maWchPW51bGwgJiYgY29uZmlnLndpdGhDcmVkZW50aWFscyE9bnVsbCl7XHJcbiAgICAgIHRoaXMud2l0aENyZWRlbnRpYWxzPWNvbmZpZy53aXRoQ3JlZGVudGlhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wcm9qZWN0Q3R4VXJsID0gYXBpRW5kUG9pbnQgKyBQcm9qZWN0U2VydmljZS5QUk9KRUNUX0FQSV9DVFg7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBlbmRSZXF1ZXN0VVVJREZvckRldmVsb3BtZW50U2VydmVyKHVybDpzdHJpbmcpOnN0cmluZ3tcclxuICAgIGxldCByZXNVcmw9dXJsO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmFwaVR5cGUgPT09IEFwaVR5cGUuRklMRVMpIHtcclxuICAgICAgLy8gZm9yIGRldmVsb3BtZW50IGFuZCBkZW1vXHJcbiAgICAgIC8vIGFwcGVuZCBVVUlEIHRvIG1ha2UgcmVxdWVzdCBVUkwgdW5pcXVlIHRvIGF2b2lkIGxvY2FsaG9zdCBzZXJ2ZXIgY2FjaGluZ1xyXG4gICAgICByZXNVcmwgPSByZXNVcmwgKyAnLmpzb24/cmVxdWVzdFVVSUQ9JytVVUlELmdlbmVyYXRlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzVXJsXHJcbiAgfVxyXG5cclxuICBwcm9qZWN0VXJsKGlkOnN0cmluZyk6c3RyaW5ne1xyXG4gICAgbGV0IGVuY1ByaklkPWVuY29kZVVSSUNvbXBvbmVudChpZCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRSZXF1ZXN0VVVJREZvckRldmVsb3BtZW50U2VydmVyKHRoaXMucHJvamVjdEN0eFVybCArICcvJyArIGVuY1ByaklkKTtcclxuICB9XHJcblxyXG4gIHByb2plY3RSZXNvdXJjZVVybChwcm9qZWN0SWQ6IHN0cmluZyxyZWxSZXNvdXJjZVBhdGg6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICBsZXQgZW5jUHJqSWQ9ZW5jb2RlVVJJQ29tcG9uZW50KHByb2plY3RJZCk7XHJcbiAgICAvLyBVc2UgZW5jb2RlVVJJIGhlcmUgc2luY2UgdGhlIHJlbGF0aWNlIHJlc291cmNlIHBhdGggZnJvbSByZWNvcmRpbmcgc2NyaXB0cyBpcyBhbHJlYWR5IGEgVVJJXHJcbiAgICAvLyBlbmNvZGVVUklDb21wb25lbnQgZnVuY3Rpb24gd291bGQgZW5jb2RlIHRoZSBzbGFzaGVzIGFuZCBmZXRjaGluZyB0aGUgcmVzb3VyY2Ugd291bGQgZmFpbFxyXG4gICAgbGV0IGVuY1JlbFJlc1BhdGg9ZW5jb2RlVVJJKHJlbFJlc291cmNlUGF0aCk7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0Q3R4VXJsICsgJy8nICsgZW5jUHJqSWQgKycvJytlbmNSZWxSZXNQYXRoO1xyXG4gIH1cclxuXHJcbiAgcHJvamVjdE9ic2VydmFibGUoaWQ6c3RyaW5nKTpPYnNlcnZhYmxlPFByb2plY3Q+e1xyXG4gICAgbGV0IHByalVybD10aGlzLnByb2plY3RVcmwoaWQpO1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2plY3Q+KHByalVybCx7d2l0aENyZWRlbnRpYWxzOiB0aGlzLndpdGhDcmVkZW50aWFsc30pXHJcbiAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=