simpo-component-library 3.6.877 → 3.6.878

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.
@@ -47,7 +47,10 @@ export class TextEditorComponent {
47
47
  if (changes['value']) {
48
48
  this.updateSafeHtml();
49
49
  if (this.editor && !changes['value'].firstChange) {
50
- this.editor.commands.setContent(this.value || '');
50
+ const currentHtml = this.editor.getHTML();
51
+ if (currentHtml !== this.value) {
52
+ this.editor.commands.setContent(this.value || '');
53
+ }
51
54
  }
52
55
  }
53
56
  }
@@ -372,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
372
375
  type: HostListener,
373
376
  args: ['document:mousedown']
374
377
  }] } });
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBb0I1RCxNQUFNLE9BQU8sbUJBQW1CO0lBbEJoQztRQXlCRSxVQUFLLEdBQ0gscUNB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QWE7c0JBRFosU0FBUzt1QkFBQyxpQkFBaUI7Z0JBOGlCNUIsV0FBVztzQkFKVixZQUFZO3VCQUNYLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIGluamVjdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb21tb25Nb2R1bGUsXHJcbiAgaXNQbGF0Zm9ybUJyb3dzZXJcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5pbXBvcnQgeyBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQgeyBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnRlZGl0YWJsZS5kaXJlY3RpdmUnO1xyXG5cclxuaW1wb3J0IHsgR3JhZGllbnRFeHRlbnNpb24gfSBmcm9tICcuLi8uLi9zdHlsZXMvZ3JhZGllbnQtZXh0ZW5zaW9uJztcclxuXHJcbmltcG9ydCB7IEZvbnRTaXplIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RleHQtc2l6ZS5leHRlbnNpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby10ZXh0LWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgQ2RrRHJhZyxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIENvbnRlbnRlZGl0YWJsZVZhbHVlQWNjZXNzb3JcclxuICBdLFxyXG5cclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRFZGl0b3JDb21wb25lbnRcclxuICBpbXBsZW1lbnRzXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KClcclxuICB2YWx1ZTogc3RyaW5nID1cclxuICAgICc8cD5IZWxsbyB0aGlzIGlzIHBhbGFzaCBtYWtoaWphPC9wPic7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VjdGlvbklkPzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHR5cGU/OiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckNvbnRhaW5lcicpXHJcbiAgZWRpdG9yRWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9XHJcbiAgICBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICBwcml2YXRlIHNhbml0aXplciA9XHJcbiAgICBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHJcbiAgZWRpdG9yOiBhbnk7XHJcblxyXG4gIHNhZmVIdG1sITogU2FmZUh0bWw7XHJcblxyXG4gIHNlbGVjdGVkRm9udFNpemUgPSAnJztcclxuXHJcbiAgc2hvd1Rvb2xiYXIgPSBmYWxzZTtcclxuXHJcbiAgdG9vbGJhclggPSAwO1xyXG5cclxuICB0b29sYmFyWSA9IDEwMDtcclxuXHJcbiAgc2VsZWN0ZWRDb2xvciA9ICcjMDAwMDAwJztcclxuXHJcbiAgcHJpbWFyeUNvbG9yID0gJyMwMDAwMDAnO1xyXG5cclxuICBzZWNvbmRhcnlDb2xvciA9ICcjZmYwMDAwJztcclxuXHJcbiAgaXNDb2xvclBpY2tlck9wZW4gPSBmYWxzZTtcclxuXHJcbiAgc2VsZWN0ZWRDb2xvclR5cGU6XHJcbiAgICAnU09MSUQnIHwgJ0dSQURJRU5UJyA9ICdTT0xJRCc7XHJcblxyXG4gIHNhdmVkU2VsZWN0aW9uOiBhbnkgPSBudWxsO1xyXG5cclxuICBpc0ZvbnRTaXplTWVudU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgdG9vbGJhckRhdGE6IGFueSA9IHtcclxuICAgIHNlbGVjdGVkU2l6ZTogJydcclxuICB9O1xyXG5cclxuICBuZ09uQ2hhbmdlcyhcclxuICAgIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXNcclxuICApOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSkge1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVTYWZlSHRtbCgpO1xyXG4gICAgICBpZiAodGhpcy5lZGl0b3IgJiYgIWNoYW5nZXNbJ3ZhbHVlJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmVkaXRvci5jb21tYW5kcy5zZXRDb250ZW50KHRoaXMudmFsdWUgfHwgJycpO1xyXG4gICAgICB9IFxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVNhZmVIdG1sKCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmVkaXRhYmxlICYmXHJcbiAgICAgIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZClcclxuICAgICkge1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplRWRpdG9yKCk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5lZGl0b3IgJiZcclxuICAgICAgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKVxyXG4gICAgKSB7XHJcblxyXG4gICAgICB0aGlzLmVkaXRvci5kZXN0cm95KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZVNhZmVIdG1sKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc2FmZUh0bWwgPVxyXG4gICAgICB0aGlzLnNhbml0aXplclxyXG4gICAgICAgIC5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcclxuICAgICAgICAgIHRoaXMudmFsdWUgfHwgJydcclxuICAgICAgICApO1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIGluaXRpYWxpemVFZGl0b3IoKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgaWYgKCF0aGlzLmVkaXRvckVsZW1lbnQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB7IEVkaXRvciB9ID1cclxuICAgICAgYXdhaXQgaW1wb3J0KCdAdGlwdGFwL2NvcmUnKTtcclxuXHJcbiAgICBjb25zdCBTdGFydGVyS2l0ID1cclxuICAgICAgKGF3YWl0IGltcG9ydCgnQHRpcHRhcC9zdGFydGVyLWtpdCcpKS5kZWZhdWx0O1xyXG5cclxuICAgIGNvbnN0IFRleHRTdHlsZSA9XHJcbiAgICAgIChhd2FpdCBpbXBvcnQoJ0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtc3R5bGUnKSlcclxuICAgICAgICAuVGV4dFN0eWxlO1xyXG5cclxuICAgIGNvbnN0IENvbG9yID1cclxuICAgICAgKGF3YWl0IGltcG9ydCgnQHRpcHRhcC9leHRlbnNpb24tY29sb3InKSlcclxuICAgICAgICAuZGVmYXVsdDtcclxuXHJcbiAgICBjb25zdCBVbmRlcmxpbmUgPVxyXG4gICAgICAoYXdhaXQgaW1wb3J0KCdAdGlwdGFwL2V4dGVuc2lvbi11bmRlcmxpbmUnKSlcclxuICAgICAgICAuZGVmYXVsdDtcclxuXHJcbiAgICBjb25zdCBUZXh0QWxpZ24gPVxyXG4gICAgICAoYXdhaXQgaW1wb3J0KCdAdGlwdGFwL2V4dGVuc2lvbi10ZXh0LWFsaWduJykpXHJcbiAgICAgICAgLmRlZmF1bHQ7XHJcblxyXG4gICAgdGhpcy5lZGl0b3IgPSBuZXcgRWRpdG9yKHtcclxuXHJcbiAgICAgIGVsZW1lbnQ6XHJcbiAgICAgICAgdGhpcy5lZGl0b3JFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcblxyXG4gICAgICBlZGl0b3JQcm9wczoge1xyXG5cclxuICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICBjbGFzczogJ1Byb3NlTWlycm9yJ1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBleHRlbnNpb25zOiBbXHJcblxyXG4gICAgICAgIFN0YXJ0ZXJLaXQsXHJcblxyXG4gICAgICAgIFRleHRTdHlsZSxcclxuXHJcbiAgICAgICAgRm9udFNpemUsXHJcblxyXG4gICAgICAgIENvbG9yLFxyXG5cclxuICAgICAgICBHcmFkaWVudEV4dGVuc2lvbixcclxuXHJcbiAgICAgICAgVW5kZXJsaW5lLFxyXG5cclxuICAgICAgICBUZXh0QWxpZ24uY29uZmlndXJlKHtcclxuICAgICAgICAgIHR5cGVzOiBbXHJcbiAgICAgICAgICAgICdoZWFkaW5nJyxcclxuICAgICAgICAgICAgJ3BhcmFncmFwaCcsXHJcbiAgICAgICAgICAgICdsaXN0SXRlbSdcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSksXHJcblxyXG4gICAgICBdLFxyXG5cclxuICAgICAgY29udGVudDogdGhpcy52YWx1ZSxcclxuXHJcbiAgICAgIG9uU2VsZWN0aW9uVXBkYXRlOiAoKSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgICB9LFxyXG5cclxuICAgICAgb25VcGRhdGU6ICh7IGVkaXRvciB9OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgaHRtbCA9XHJcbiAgICAgICAgICBlZGl0b3IuZ2V0SFRNTCgpO1xyXG5cclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcclxuICAgICAgICAvLyAgICdFRElUT1IgSFRNTDonLFxyXG4gICAgICAgIC8vICAgaHRtbFxyXG4gICAgICAgIC8vICk7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgPSBodG1sO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVNhZmVIdG1sKCk7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChodG1sKTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVFbXB0eUVkaXRvckNsYXNzKCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVFbXB0eUVkaXRvckNsYXNzKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRW1wdHlFZGl0b3JDbGFzcygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdG9yRWxlbWVudClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGVkaXRvcldyYXBwZXIgPVxyXG4gICAgICB0aGlzLmVkaXRvckVsZW1lbnQubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIC5jbG9zZXN0KCcuZWRpdGFibGUtdGV4dCcpO1xyXG5cclxuICAgIGlmICghZWRpdG9yV3JhcHBlcilcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmVkaXRvcj8uaXNFbXB0eSkge1xyXG5cclxuICAgICAgZWRpdG9yV3JhcHBlci5jbGFzc0xpc3QuYWRkKFxyXG4gICAgICAgICdlZGl0b3ItZW1wdHknXHJcbiAgICAgICk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGVkaXRvcldyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZShcclxuICAgICAgICAnZWRpdG9yLWVtcHR5J1xyXG4gICAgICApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzYXZlU2VsZWN0aW9uKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc2F2ZWRTZWxlY3Rpb24gPVxyXG4gICAgICB0aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb247XHJcblxyXG4gIH1cclxuXHJcbiAgcmVzdG9yZVNlbGVjdGlvbigpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2F2ZWRTZWxlY3Rpb24pXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAuc2V0VGV4dFNlbGVjdGlvbihcclxuICAgICAgICB0aGlzLnNhdmVkU2VsZWN0aW9uXHJcbiAgICAgIClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHN3aXRjaFRvU29saWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLnNhdmVTZWxlY3Rpb24oKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkQ29sb3JUeXBlID0gJ1NPTElEJztcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbigpO1xyXG5cclxuICAgICAgdGhpcy5zaG93VG9vbGJhciA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgc3dpdGNoVG9HcmFkaWVudChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuc2F2ZVNlbGVjdGlvbigpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRDb2xvclR5cGUgPSAnR1JBRElFTlQnO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgICB0aGlzLnNob3dUb29sYmFyID0gdHJ1ZTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvcGVuQ29sb3JQaWNrZXIoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5pc0NvbG9yUGlja2VyT3BlbiA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zYXZlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgICAnZm9jdXMnLFxyXG4gICAgICAgIHRoaXMuaGFuZGxlV2luZG93Rm9jdXMsXHJcbiAgICAgICAgeyBvbmNlOiB0cnVlIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVXaW5kb3dGb2N1cyA9ICgpOiB2b2lkID0+IHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuaXNDb2xvclBpY2tlck9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICB9LCAzMDApO1xyXG5cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlbGVjdGlvbigpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPVxyXG4gICAgICB0aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb247XHJcblxyXG4gICAgaWYgKGZyb20gPT09IHRvKSB7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuaXNDb2xvclBpY2tlck9wZW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5zaG93VG9vbGJhciA9IGZhbHNlO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPVxyXG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhc2VsZWN0aW9uIHx8XHJcbiAgICAgIHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwXHJcbiAgICApIHtcclxuXHJcbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSBmYWxzZTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmFuZ2UgPVxyXG4gICAgICBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcclxuXHJcbiAgICBjb25zdCByZWN0ID1cclxuICAgICAgcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgY29uc3QgZWRpdG9yUmVjdCA9XHJcbiAgICAgIHRoaXMuZWRpdG9yRWxlbWVudC5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgY29uc3QgdG9vbGJhciA9XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICcudG9vbGJhcidcclxuICAgICAgICApIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgaWYgKCF0b29sYmFyKVxyXG4gICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHRvb2xiYXJXaWR0aCA9XHJcbiAgICAgICAgdG9vbGJhci5vZmZzZXRXaWR0aDtcclxuXHJcbiAgICAgIGxldCBsZWZ0ID1cclxuICAgICAgICByZWN0LmxlZnQgLVxyXG4gICAgICAgIGVkaXRvclJlY3QubGVmdCArXHJcbiAgICAgICAgKHJlY3Qud2lkdGggLyAyKSAtXHJcbiAgICAgICAgKHRvb2xiYXJXaWR0aCAvIDIpO1xyXG5cclxuICAgICAgbGVmdCA9IE1hdGgubWF4KDEwLCBsZWZ0KTtcclxuXHJcbiAgICAgIGNvbnN0IG1heExlZnQgPVxyXG4gICAgICAgIGVkaXRvclJlY3Qud2lkdGggLVxyXG4gICAgICAgIHRvb2xiYXJXaWR0aCAtXHJcbiAgICAgICAgMTA7XHJcblxyXG4gICAgICBsZWZ0ID0gTWF0aC5taW4obGVmdCwgbWF4TGVmdCk7XHJcblxyXG4gICAgICBsZWZ0ID0gTWF0aC5tYXgoMTAsIGxlZnQpO1xyXG5cclxuICAgICAgdGhpcy50b29sYmFyWCA9IGxlZnQ7XHJcblxyXG4gICAgICB0aGlzLnRvb2xiYXJZID1cclxuICAgICAgICByZWN0LmJvdHRvbSAtXHJcbiAgICAgICAgZWRpdG9yUmVjdC50b3AgK1xyXG4gICAgICAgIDEwO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZUJvbGQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5lZGl0b3JcclxuICAgICAgLmNoYWluKClcclxuICAgICAgLmZvY3VzKClcclxuICAgICAgLnRvZ2dsZUJvbGQoKVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSXRhbGljKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC50b2dnbGVJdGFsaWMoKVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVW5kZXJsaW5lKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC50b2dnbGVVbmRlcmxpbmUoKVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3JkZXJlZExpc3QoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5lZGl0b3JcclxuICAgICAgLmNoYWluKClcclxuICAgICAgLmZvY3VzKClcclxuICAgICAgLnRvZ2dsZU9yZGVyZWRMaXN0KClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZUJ1bGxldExpc3QoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5lZGl0b3JcclxuICAgICAgLmNoYWluKClcclxuICAgICAgLmZvY3VzKClcclxuICAgICAgLnRvZ2dsZUJ1bGxldExpc3QoKVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2V0QWxpZ24oXHJcbiAgICBhbGlnbm1lbnQ6XHJcbiAgICAgICdsZWZ0JyB8XHJcbiAgICAgICdjZW50ZXInIHxcclxuICAgICAgJ3JpZ2h0J1xyXG4gICk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC5zZXRUZXh0QWxpZ24oYWxpZ25tZW50KVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29sb3IoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgeyBmcm9tLCB0byB9ID1cclxuICAgICAgdGhpcy5lZGl0b3Iuc3RhdGUuc2VsZWN0aW9uO1xyXG5cclxuICAgIGlmIChmcm9tID09PSB0bylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGV4aXN0aW5nU3R5bGVzID1cclxuICAgICAgdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhcclxuICAgICAgICAndGV4dFN0eWxlJ1xyXG4gICAgICApO1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC5zZXRUZXh0U2VsZWN0aW9uKHtcclxuICAgICAgICBmcm9tLFxyXG4gICAgICAgIHRvXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zZXRNYXJrKCd0ZXh0U3R5bGUnLCB7XHJcblxyXG4gICAgICAgIC4uLmV4aXN0aW5nU3R5bGVzLFxyXG5cclxuICAgICAgICBjb2xvcjpcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvcixcclxuXHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBudWxsLFxyXG5cclxuICAgICAgICBXZWJraXRCYWNrZ3JvdW5kQ2xpcDogbnVsbCxcclxuXHJcbiAgICAgICAgV2Via2l0VGV4dEZpbGxDb2xvcjogbnVsbFxyXG5cclxuICAgICAgfSlcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIGFwcGx5R3JhZGllbnQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5yZXN0b3JlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgeyBmcm9tLCB0byB9ID1cclxuICAgICAgdGhpcy5lZGl0b3Iuc3RhdGUuc2VsZWN0aW9uO1xyXG5cclxuICAgIGlmIChmcm9tID09PSB0bylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGV4aXN0aW5nU3R5bGVzID1cclxuICAgICAgdGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcyhcclxuICAgICAgICAndGV4dFN0eWxlJ1xyXG4gICAgICApO1xyXG5cclxuICAgIGNvbnN0IGdyYWRpZW50ID0gYFxyXG4gICAgbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICB0byByaWdodCxcclxuICAgICAgJHt0aGlzLnByaW1hcnlDb2xvcn0sXHJcbiAgICAgICR7dGhpcy5zZWNvbmRhcnlDb2xvcn1cclxuICAgIClcclxuICBgO1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC5zZXRUZXh0U2VsZWN0aW9uKHtcclxuICAgICAgICBmcm9tLFxyXG4gICAgICAgIHRvXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zZXRNYXJrKCd0ZXh0U3R5bGUnLCB7XHJcblxyXG4gICAgICAgIC4uLmV4aXN0aW5nU3R5bGVzLFxyXG5cclxuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6XHJcbiAgICAgICAgICBncmFkaWVudCxcclxuXHJcbiAgICAgICAgYmFja2dyb3VuZENsaXA6XHJcbiAgICAgICAgICAndGV4dCcsXHJcblxyXG4gICAgICAgIFdlYmtpdEJhY2tncm91bmRDbGlwOlxyXG4gICAgICAgICAgJ3RleHQnLFxyXG5cclxuICAgICAgICBjb2xvcjpcclxuICAgICAgICAgICd0cmFuc3BhcmVudCcsXHJcblxyXG4gICAgICAgIFdlYmtpdFRleHRGaWxsQ29sb3I6XHJcbiAgICAgICAgICAndHJhbnNwYXJlbnQnLFxyXG5cclxuICAgICAgICBkaXNwbGF5OlxyXG4gICAgICAgICAgJ2lubGluZS1ibG9jaydcclxuXHJcbiAgICAgIH0pXHJcbiAgICAgIC5ydW4oKTtcclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFxyXG4gICAgJ2RvY3VtZW50Om1vdXNlZG93bidcclxuICApXHJcblxyXG4gIG9uTW91c2VEb3duKCk6IHZvaWQge1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmVkaXRvcilcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCB7IGZyb20sIHRvIH0gPVxyXG4gICAgICAgIHRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcclxuXHJcbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgPVxyXG4gICAgICAgIGZyb20gIT09IHRvO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZUZvbnRTaXplKFxyXG4gICAgZm9udFNpemU6IHN0cmluZ1xyXG4gICk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRGb250U2l6ZSA9XHJcbiAgICAgIGZvbnRTaXplO1xyXG5cclxuICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9XHJcbiAgICAgIHRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcclxuXHJcbiAgICBpZiAoZnJvbSA9PT0gdG8pXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAuc2V0VGV4dFNlbGVjdGlvbih7XHJcbiAgICAgICAgZnJvbSxcclxuICAgICAgICB0b1xyXG4gICAgICB9KVxyXG4gICAgICAuc2V0TWFyayhcclxuICAgICAgICAndGV4dFN0eWxlJyxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmb250U2l6ZVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIjwhLS0gdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwgLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiICpuZ0lmPVwiZWRpdGFibGU7IGVsc2Ugdmlld01vZGVcIj5cclxuXHJcbiAgPCEtLSBGTE9BVElORyBUT09MQkFSIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCIgKm5nSWY9XCJzaG93VG9vbGJhclwiIFtzdHlsZS50b3AucHhdPVwidG9vbGJhcllcIiBbc3R5bGUubGVmdC5weF09XCJ0b29sYmFyWFwiIGNka0RyYWc+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCBkcmFnLWhhbmRsZSB3LWF1dG9cIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1ncmlwLXZlcnRpY2FsXCI+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjEyXCIgcj1cIjFcIiAvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI1XCIgcj1cIjFcIiAvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCIxOVwiIHI9XCIxXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjEyXCIgcj1cIjFcIiAvPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiNVwiIHI9XCIxXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE5XCIgcj1cIjFcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJmb250LXNpemUtZmllbGRcIj5cclxuXHJcbiAgICAgIDxtYXQtc2VsZWN0IFt2YWx1ZV09XCJzZWxlY3RlZEZvbnRTaXplXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VGb250U2l6ZSgkZXZlbnQudmFsdWUpXCIgZGlzYWJsZU9wdGlvbkNlbnRlcmluZz5cclxuXHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj5cclxuICAgICAgICAgIERlZmF1bHRcclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY2xhbXAoMC43NXJlbSwgMnZ3LCAxcmVtKVwiPlxyXG4gICAgICAgICAgMTRcclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY2xhbXAoMC43NXJlbSwgMnZ3LCAxLjI1cmVtKVwiPlxyXG4gICAgICAgICAgMTZcclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY2xhbXAoMXJlbSwgM3Z3LCAxLjVyZW0pXCI+XHJcbiAgICAgICAgICAyMFxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJjbGFtcCgxLjI1cmVtLCA0dncsIDJyZW0pXCI+XHJcbiAgICAgICAgICAyNFxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNsYW1wKDJyZW0sIDV2dywgM3JlbSlcIj5cclxuICAgICAgICAgIDMyXHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY2xhbXAoMy4xcmVtLCA3dncsIDQuNXJlbSlcIj5cclxuICAgICAgICAgIDQ4XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcblxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gQk9MRCAtLT5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIHctYXV0b1wiIFtjbGFzcy5zZWxlY3RlZFRvb2xdPVwiZWRpdG9yPy5pc0FjdGl2ZSgnYm9sZCcpXCIgKGNsaWNrKT1cInRvZ2dsZUJvbGQoKVwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1ib2xkXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBJVEFMSUMgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiBbY2xhc3Muc2VsZWN0ZWRUb29sXT1cImVkaXRvcj8uaXNBY3RpdmUoJ2l0YWxpYycpXCIgKGNsaWNrKT1cInRvZ2dsZUl0YWxpYygpXCI+XHJcblxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1pdGFsaWNcIj5cclxuICAgICAgICA8bGluZSB4MT1cIjE5XCIgeDI9XCIxMFwiIHkxPVwiNFwiIHkyPVwiNFwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxNFwiIHgyPVwiNVwiIHkxPVwiMjBcIiB5Mj1cIjIwXCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjE1XCIgeDI9XCI5XCIgeTE9XCI0XCIgeTI9XCIyMFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBVTkRFUkxJTkUgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiBbY2xhc3Muc2VsZWN0ZWRUb29sXT1cImVkaXRvcj8uaXNBY3RpdmUoJ3VuZGVybGluZScpXCIgKGNsaWNrKT1cInRvZ2dsZVVuZGVybGluZSgpXCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLXVuZGVybGluZVwiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNFwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCI0XCIgeDI9XCIyMFwiIHkxPVwiMjBcIiB5Mj1cIjIwXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIEFMSUdOIExFRlQgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiAoY2xpY2spPVwic2V0QWxpZ24oJ2xlZnQnKVwiPlxyXG5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtYWxpZ24tbGVmdFwiPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMjFcIiB4Mj1cIjNcIiB5MT1cIjZcIiB5Mj1cIjZcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTVcIiB4Mj1cIjNcIiB5MT1cIjEyXCIgeTI9XCIxMlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxN1wiIHgyPVwiM1wiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIEFMSUdOIENFTlRFUiAtLT5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIHctYXV0b1wiIChjbGljayk9XCJzZXRBbGlnbignY2VudGVyJylcIj5cclxuXHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMjFcIiB4Mj1cIjNcIiB5MT1cIjZcIiB5Mj1cIjZcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTdcIiB4Mj1cIjdcIiB5MT1cIjEyXCIgeTI9XCIxMlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxOVwiIHgyPVwiNVwiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIEFMSUdOIFJJR0hUIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgdy1hdXRvXCIgKGNsaWNrKT1cInNldEFsaWduKCdyaWdodCcpXCI+XHJcblxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1hbGlnbi1yaWdodFwiPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMjFcIiB4Mj1cIjNcIiB5MT1cIjZcIiB5Mj1cIjZcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMjFcIiB4Mj1cIjlcIiB5MT1cIjEyXCIgeTI9XCIxMlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHgyPVwiN1wiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIE9SREVSRUQgTElTVCAtLT5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIHctYXV0b1wiIChjbGljayk9XCJ0b2dnbGVPcmRlcmVkTGlzdCgpXCI+XHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLWxpc3Qtb3JkZXJlZFwiPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTBcIiB4Mj1cIjIxXCIgeTE9XCI2XCIgeTI9XCI2XCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjEwXCIgeDI9XCIyMVwiIHkxPVwiMTJcIiB5Mj1cIjEyXCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjEwXCIgeDI9XCIyMVwiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTQgNmgxdjRcIiAvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNCAxMGgyXCIgLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTYgMThINGMwLTEgMi0yIDItM3MtMS0xLjUtMi0xXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDwhLS0gQlVMTEVUIExJU1QgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiAoY2xpY2spPVwidG9nZ2xlQnVsbGV0TGlzdCgpXCI+XHJcblxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1saXN0XCI+XHJcbiAgICAgICAgPGxpbmUgeDE9XCI4XCIgeDI9XCIyMVwiIHkxPVwiNlwiIHkyPVwiNlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCI4XCIgeDI9XCIyMVwiIHkxPVwiMTJcIiB5Mj1cIjEyXCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjhcIiB4Mj1cIjIxXCIgeTE9XCIxOFwiIHkyPVwiMThcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiM1wiIHgyPVwiMy4wMVwiIHkxPVwiNlwiIHkyPVwiNlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIzXCIgeDI9XCIzLjAxXCIgeTE9XCIxMlwiIHkyPVwiMTJcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiM1wiIHgyPVwiMy4wMVwiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIFNPTElEIC8gR1JBRElFTlQgLS0+XHJcbiAgICA8IS0tIFNPTElEIC8gR1JBRElFTlQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sb3JUeXBlXCI+XHJcblxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwic29saWQgdy1hdXRvXCIgW2NsYXNzLnNvbGlkQ29sb3JTZWxlY3RlZF09XCJzZWxlY3RlZENvbG9yVHlwZSA9PT0gJ1NPTElEJ1wiXHJcbiAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJzd2l0Y2hUb1NvbGlkKCRldmVudClcIj5cclxuICAgICAgICBTb2xpZFxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJncmFkaWVudCB3LWF1dG9cIiBbY2xhc3MuZ3JhZGllbnRDb2xvclNlbGVjdGVkXT1cInNlbGVjdGVkQ29sb3JUeXBlID09PSAnR1JBRElFTlQnXCJcclxuICAgICAgICAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgKGNsaWNrKT1cInN3aXRjaFRvR3JhZGllbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIEdyYWRpZW50XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gU09MSUQgQ09MT1IgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCBjb2xvci1waWNrZXItYnRuIHctYXV0b1wiICpuZ0lmPVwic2VsZWN0ZWRDb2xvclR5cGUgPT09ICdTT0xJRCdcIj5cclxuXHJcbiAgICAgIDxtYXQtaWNvbj5mb3JtYXRfY29sb3JfdGV4dDwvbWF0LWljb24+XHJcblxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgY2xhc3M9XCJoaWRkZW4tY29sb3ItcGlja2VyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbG9yXCIgKGNsaWNrKT1cIm9wZW5Db2xvclBpY2tlcigpXCJcclxuICAgICAgICAoaW5wdXQpPVwiY2hhbmdlQ29sb3IoKVwiPlxyXG5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwhLS0gR1JBRElFTlQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JhZGllbnQtcGlja2VyXCIgKm5nSWY9XCJzZWxlY3RlZENvbG9yVHlwZSA9PT0gJ0dSQURJRU5UJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJwcmltYXJ5Q29sb3JcIiAoY2xpY2spPVwib3BlbkNvbG9yUGlja2VyKClcIiAoaW5wdXQpPVwiYXBwbHlHcmFkaWVudCgpXCIgLz5cclxuXHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cInNlY29uZGFyeUNvbG9yXCIgKGNsaWNrKT1cIm9wZW5Db2xvclBpY2tlcigpXCIgKGlucHV0KT1cImFwcGx5R3JhZGllbnQoKVwiIC8+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFRJUFRBUCBFRElUT1IgLS0+XHJcbiAgPGRpdiAjZWRpdG9yQ29udGFpbmVyIGNsYXNzPVwiZWRpdGFibGUtdGV4dFwiPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjdmlld01vZGU+XHJcbiAgPGRpdiBjbGFzcz1cInJlYWQtb25seS10ZXh0XCIgW2lubmVySFRNTF09XCJzYWZlSHRtbFwiPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBb0I1RCxNQUFNLE9BQU8sbUJBQW1CO0lBbEJoQztRQXlCRSxVQUFLLEdBQ0gscUNB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S04sV0FBVztzQkFEVixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixhQUFhO3NCQURaLFNBQVM7dUJBQUMsaUJBQWlCO2dCQTRpQjVCLFdBQVc7c0JBSlYsWUFBWTt1QkFDWCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBQTEFURk9STV9JRCxcclxuICBpbmplY3QsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29tbW9uTW9kdWxlLFxyXG4gIGlzUGxhdGZvcm1Ccm93c2VyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5cclxuaW1wb3J0IHsgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5cclxuaW1wb3J0IHsgQ29udGVudGVkaXRhYmxlVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50ZWRpdGFibGUuZGlyZWN0aXZlJztcclxuXHJcbmltcG9ydCB7IEdyYWRpZW50RXh0ZW5zaW9uIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2dyYWRpZW50LWV4dGVuc2lvbic7XHJcblxyXG5pbXBvcnQgeyBGb250U2l6ZSB9IGZyb20gJy4uLy4uL3N0eWxlcy90ZXh0LXNpemUuZXh0ZW5zaW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tdGV4dC1lZGl0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIENka0RyYWcsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDb250ZW50ZWRpdGFibGVWYWx1ZUFjY2Vzc29yXHJcbiAgXSxcclxuXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0RWRpdG9yQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50c1xyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdmFsdWU6IHN0cmluZyA9XHJcbiAgICAnPHA+SGVsbG8gdGhpcyBpcyBwYWxhc2ggbWFraGlqYTwvcD4nO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZSA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBlZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlY3Rpb25JZD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlPzogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInKVxyXG4gIGVkaXRvckVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBwcml2YXRlIHBsYXRmb3JtSWQgPVxyXG4gICAgaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHJcbiAgcHJpdmF0ZSBzYW5pdGl6ZXIgPVxyXG4gICAgaW5qZWN0KERvbVNhbml0aXplcik7XHJcblxyXG4gIGVkaXRvcjogYW55O1xyXG5cclxuICBzYWZlSHRtbCE6IFNhZmVIdG1sO1xyXG5cclxuICBzZWxlY3RlZEZvbnRTaXplID0gJyc7XHJcblxyXG4gIHNob3dUb29sYmFyID0gZmFsc2U7XHJcblxyXG4gIHRvb2xiYXJYID0gMDtcclxuXHJcbiAgdG9vbGJhclkgPSAxMDA7XHJcblxyXG4gIHNlbGVjdGVkQ29sb3IgPSAnIzAwMDAwMCc7XHJcblxyXG4gIHByaW1hcnlDb2xvciA9ICcjMDAwMDAwJztcclxuXHJcbiAgc2Vjb25kYXJ5Q29sb3IgPSAnI2ZmMDAwMCc7XHJcblxyXG4gIGlzQ29sb3JQaWNrZXJPcGVuID0gZmFsc2U7XHJcblxyXG4gIHNlbGVjdGVkQ29sb3JUeXBlOlxyXG4gICAgJ1NPTElEJyB8ICdHUkFESUVOVCcgPSAnU09MSUQnO1xyXG5cclxuICBzYXZlZFNlbGVjdGlvbjogYW55ID0gbnVsbDtcclxuXHJcbiAgaXNGb250U2l6ZU1lbnVPcGVuID0gZmFsc2U7XHJcblxyXG4gIHRvb2xiYXJEYXRhOiBhbnkgPSB7XHJcbiAgICBzZWxlY3RlZFNpemU6ICcnXHJcbiAgfTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgdGhpcy51cGRhdGVTYWZlSHRtbCgpO1xyXG4gICAgICBpZiAodGhpcy5lZGl0b3IgJiYgIWNoYW5nZXNbJ3ZhbHVlJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50SHRtbCA9IHRoaXMuZWRpdG9yLmdldEhUTUwoKTtcclxuICAgICAgICBpZiAoY3VycmVudEh0bWwgIT09IHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQodGhpcy52YWx1ZSB8fCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgdGhpcy51cGRhdGVTYWZlSHRtbCgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5lZGl0YWJsZSAmJlxyXG4gICAgICBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpXHJcbiAgICApIHtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZWRpdG9yICYmXHJcbiAgICAgIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZClcclxuICAgICkge1xyXG5cclxuICAgICAgdGhpcy5lZGl0b3IuZGVzdHJveSgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTYWZlSHRtbCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLnNhZmVIdG1sID1cclxuICAgICAgdGhpcy5zYW5pdGl6ZXJcclxuICAgICAgICAuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXHJcbiAgICAgICAgICB0aGlzLnZhbHVlIHx8ICcnXHJcbiAgICAgICAgKTtcclxuXHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0aWFsaXplRWRpdG9yKCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIGlmICghdGhpcy5lZGl0b3JFbGVtZW50KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgY29uc3QgeyBFZGl0b3IgfSA9XHJcbiAgICAgIGF3YWl0IGltcG9ydCgnQHRpcHRhcC9jb3JlJyk7XHJcblxyXG4gICAgY29uc3QgU3RhcnRlcktpdCA9XHJcbiAgICAgIChhd2FpdCBpbXBvcnQoJ0B0aXB0YXAvc3RhcnRlci1raXQnKSkuZGVmYXVsdDtcclxuXHJcbiAgICBjb25zdCBUZXh0U3R5bGUgPVxyXG4gICAgICAoYXdhaXQgaW1wb3J0KCdAdGlwdGFwL2V4dGVuc2lvbi10ZXh0LXN0eWxlJykpXHJcbiAgICAgICAgLlRleHRTdHlsZTtcclxuXHJcbiAgICBjb25zdCBDb2xvciA9XHJcbiAgICAgIChhd2FpdCBpbXBvcnQoJ0B0aXB0YXAvZXh0ZW5zaW9uLWNvbG9yJykpXHJcbiAgICAgICAgLmRlZmF1bHQ7XHJcblxyXG4gICAgY29uc3QgVW5kZXJsaW5lID1cclxuICAgICAgKGF3YWl0IGltcG9ydCgnQHRpcHRhcC9leHRlbnNpb24tdW5kZXJsaW5lJykpXHJcbiAgICAgICAgLmRlZmF1bHQ7XHJcblxyXG4gICAgY29uc3QgVGV4dEFsaWduID1cclxuICAgICAgKGF3YWl0IGltcG9ydCgnQHRpcHRhcC9leHRlbnNpb24tdGV4dC1hbGlnbicpKVxyXG4gICAgICAgIC5kZWZhdWx0O1xyXG5cclxuICAgIHRoaXMuZWRpdG9yID0gbmV3IEVkaXRvcih7XHJcblxyXG4gICAgICBlbGVtZW50OlxyXG4gICAgICAgIHRoaXMuZWRpdG9yRWxlbWVudC5uYXRpdmVFbGVtZW50LFxyXG5cclxuICAgICAgZWRpdG9yUHJvcHM6IHtcclxuXHJcbiAgICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgICAgY2xhc3M6ICdQcm9zZU1pcnJvcidcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LFxyXG5cclxuICAgICAgZXh0ZW5zaW9uczogW1xyXG5cclxuICAgICAgICBTdGFydGVyS2l0LFxyXG5cclxuICAgICAgICBUZXh0U3R5bGUsXHJcblxyXG4gICAgICAgIEZvbnRTaXplLFxyXG5cclxuICAgICAgICBDb2xvcixcclxuXHJcbiAgICAgICAgR3JhZGllbnRFeHRlbnNpb24sXHJcblxyXG4gICAgICAgIFVuZGVybGluZSxcclxuXHJcbiAgICAgICAgVGV4dEFsaWduLmNvbmZpZ3VyZSh7XHJcbiAgICAgICAgICB0eXBlczogW1xyXG4gICAgICAgICAgICAnaGVhZGluZycsXHJcbiAgICAgICAgICAgICdwYXJhZ3JhcGgnLFxyXG4gICAgICAgICAgICAnbGlzdEl0ZW0nXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0pLFxyXG5cclxuICAgICAgXSxcclxuXHJcbiAgICAgIGNvbnRlbnQ6IHRoaXMudmFsdWUsXHJcblxyXG4gICAgICBvblNlbGVjdGlvblVwZGF0ZTogKCkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbigpO1xyXG5cclxuICAgICAgfSxcclxuXHJcbiAgICAgIG9uVXBkYXRlOiAoeyBlZGl0b3IgfTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIGNvbnN0IGh0bWwgPVxyXG4gICAgICAgICAgZWRpdG9yLmdldEhUTUwoKTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXHJcbiAgICAgICAgLy8gICAnRURJVE9SIEhUTUw6JyxcclxuICAgICAgICAvLyAgIGh0bWxcclxuICAgICAgICAvLyApO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlID0gaHRtbDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVTYWZlSHRtbCgpO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaHRtbCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRW1wdHlFZGl0b3JDbGFzcygpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudXBkYXRlRW1wdHlFZGl0b3JDbGFzcygpO1xyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZUVtcHR5RWRpdG9yQ2xhc3MoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLmVkaXRvckVsZW1lbnQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBlZGl0b3JXcmFwcGVyID1cclxuICAgICAgdGhpcy5lZGl0b3JFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAuY2xvc2VzdCgnLmVkaXRhYmxlLXRleHQnKTtcclxuXHJcbiAgICBpZiAoIWVkaXRvcldyYXBwZXIpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5lZGl0b3I/LmlzRW1wdHkpIHtcclxuXHJcbiAgICAgIGVkaXRvcldyYXBwZXIuY2xhc3NMaXN0LmFkZChcclxuICAgICAgICAnZWRpdG9yLWVtcHR5J1xyXG4gICAgICApO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBlZGl0b3JXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoXHJcbiAgICAgICAgJ2VkaXRvci1lbXB0eSdcclxuICAgICAgKTtcclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgc2F2ZVNlbGVjdGlvbigpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLnNhdmVkU2VsZWN0aW9uID1cclxuICAgICAgdGhpcy5lZGl0b3Iuc3RhdGUuc2VsZWN0aW9uO1xyXG5cclxuICB9XHJcblxyXG4gIHJlc3RvcmVTZWxlY3Rpb24oKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNhdmVkU2VsZWN0aW9uKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5lZGl0b3JcclxuICAgICAgLmNoYWluKClcclxuICAgICAgLmZvY3VzKClcclxuICAgICAgLnNldFRleHRTZWxlY3Rpb24oXHJcbiAgICAgICAgdGhpcy5zYXZlZFNlbGVjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC5ydW4oKTtcclxuXHJcbiAgfVxyXG5cclxuICBzd2l0Y2hUb1NvbGlkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5zYXZlU2VsZWN0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZENvbG9yVHlwZSA9ICdTT0xJRCc7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnJlc3RvcmVTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHN3aXRjaFRvR3JhZGllbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLnNhdmVTZWxlY3Rpb24oKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkQ29sb3JUeXBlID0gJ0dSQURJRU5UJztcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbigpO1xyXG5cclxuICAgICAgdGhpcy5zaG93VG9vbGJhciA9IHRydWU7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgb3BlbkNvbG9yUGlja2VyKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuaXNDb2xvclBpY2tlck9wZW4gPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuc2F2ZVNlbGVjdGlvbigpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICAgJ2ZvY3VzJyxcclxuICAgICAgICB0aGlzLmhhbmRsZVdpbmRvd0ZvY3VzLFxyXG4gICAgICAgIHsgb25jZTogdHJ1ZSB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaGFuZGxlV2luZG93Rm9jdXMgPSAoKTogdm9pZCA9PiB7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmlzQ29sb3JQaWNrZXJPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgfSwgMzAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3Rpb24oKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3QgeyBmcm9tLCB0byB9ID1cclxuICAgICAgdGhpcy5lZGl0b3Iuc3RhdGUuc2VsZWN0aW9uO1xyXG5cclxuICAgIGlmIChmcm9tID09PSB0bykge1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmlzQ29sb3JQaWNrZXJPcGVuKSB7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSBmYWxzZTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uID1cclxuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgIXNlbGVjdGlvbiB8fFxyXG4gICAgICBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMFxyXG4gICAgKSB7XHJcblxyXG4gICAgICB0aGlzLnNob3dUb29sYmFyID0gZmFsc2U7XHJcblxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJhbmdlID1cclxuICAgICAgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XHJcblxyXG4gICAgY29uc3QgcmVjdCA9XHJcbiAgICAgIHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IGVkaXRvclJlY3QgPVxyXG4gICAgICB0aGlzLmVkaXRvckVsZW1lbnQubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICB0aGlzLnNob3dUb29sYmFyID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIGNvbnN0IHRvb2xiYXIgPVxyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgICAnLnRvb2xiYXInXHJcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgIGlmICghdG9vbGJhcilcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCB0b29sYmFyV2lkdGggPVxyXG4gICAgICAgIHRvb2xiYXIub2Zmc2V0V2lkdGg7XHJcblxyXG4gICAgICBsZXQgbGVmdCA9XHJcbiAgICAgICAgcmVjdC5sZWZ0IC1cclxuICAgICAgICBlZGl0b3JSZWN0LmxlZnQgK1xyXG4gICAgICAgIChyZWN0LndpZHRoIC8gMikgLVxyXG4gICAgICAgICh0b29sYmFyV2lkdGggLyAyKTtcclxuXHJcbiAgICAgIGxlZnQgPSBNYXRoLm1heCgxMCwgbGVmdCk7XHJcblxyXG4gICAgICBjb25zdCBtYXhMZWZ0ID1cclxuICAgICAgICBlZGl0b3JSZWN0LndpZHRoIC1cclxuICAgICAgICB0b29sYmFyV2lkdGggLVxyXG4gICAgICAgIDEwO1xyXG5cclxuICAgICAgbGVmdCA9IE1hdGgubWluKGxlZnQsIG1heExlZnQpO1xyXG5cclxuICAgICAgbGVmdCA9IE1hdGgubWF4KDEwLCBsZWZ0KTtcclxuXHJcbiAgICAgIHRoaXMudG9vbGJhclggPSBsZWZ0O1xyXG5cclxuICAgICAgdGhpcy50b29sYmFyWSA9XHJcbiAgICAgICAgcmVjdC5ib3R0b20gLVxyXG4gICAgICAgIGVkaXRvclJlY3QudG9wICtcclxuICAgICAgICAxMDtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICB0b2dnbGVCb2xkKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC50b2dnbGVCb2xkKClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZUl0YWxpYygpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAudG9nZ2xlSXRhbGljKClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZVVuZGVybGluZSgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAudG9nZ2xlVW5kZXJsaW5lKClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHRvZ2dsZU9yZGVyZWRMaXN0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC50b2dnbGVPcmRlcmVkTGlzdCgpXHJcbiAgICAgIC5ydW4oKTtcclxuXHJcbiAgfVxyXG5cclxuICB0b2dnbGVCdWxsZXRMaXN0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZWRpdG9yXHJcbiAgICAgIC5jaGFpbigpXHJcbiAgICAgIC5mb2N1cygpXHJcbiAgICAgIC50b2dnbGVCdWxsZXRMaXN0KClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIHNldEFsaWduKFxyXG4gICAgYWxpZ25tZW50OlxyXG4gICAgICAnbGVmdCcgfFxyXG4gICAgICAnY2VudGVyJyB8XHJcbiAgICAgICdyaWdodCdcclxuICApOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAuc2V0VGV4dEFsaWduKGFsaWdubWVudClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbG9yKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9XHJcbiAgICAgIHRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcclxuXHJcbiAgICBpZiAoZnJvbSA9PT0gdG8pXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBleGlzdGluZ1N0eWxlcyA9XHJcbiAgICAgIHRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoXHJcbiAgICAgICAgJ3RleHRTdHlsZSdcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAuc2V0VGV4dFNlbGVjdGlvbih7XHJcbiAgICAgICAgZnJvbSxcclxuICAgICAgICB0b1xyXG4gICAgICB9KVxyXG4gICAgICAuc2V0TWFyaygndGV4dFN0eWxlJywge1xyXG5cclxuICAgICAgICAuLi5leGlzdGluZ1N0eWxlcyxcclxuXHJcbiAgICAgICAgY29sb3I6XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29sb3IsXHJcblxyXG4gICAgICAgIGJhY2tncm91bmRJbWFnZTogbnVsbCxcclxuXHJcbiAgICAgICAgV2Via2l0QmFja2dyb3VuZENsaXA6IG51bGwsXHJcblxyXG4gICAgICAgIFdlYmtpdFRleHRGaWxsQ29sb3I6IG51bGxcclxuXHJcbiAgICAgIH0pXHJcbiAgICAgIC5ydW4oKTtcclxuXHJcbiAgfVxyXG5cclxuICBhcHBseUdyYWRpZW50KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMucmVzdG9yZVNlbGVjdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9XHJcbiAgICAgIHRoaXMuZWRpdG9yLnN0YXRlLnNlbGVjdGlvbjtcclxuXHJcbiAgICBpZiAoZnJvbSA9PT0gdG8pXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBleGlzdGluZ1N0eWxlcyA9XHJcbiAgICAgIHRoaXMuZWRpdG9yLmdldEF0dHJpYnV0ZXMoXHJcbiAgICAgICAgJ3RleHRTdHlsZSdcclxuICAgICAgKTtcclxuXHJcbiAgICBjb25zdCBncmFkaWVudCA9IGBcclxuICAgIGxpbmVhci1ncmFkaWVudChcclxuICAgICAgdG8gcmlnaHQsXHJcbiAgICAgICR7dGhpcy5wcmltYXJ5Q29sb3J9LFxyXG4gICAgICAke3RoaXMuc2Vjb25kYXJ5Q29sb3J9XHJcbiAgICApXHJcbiAgYDtcclxuXHJcbiAgICB0aGlzLmVkaXRvclxyXG4gICAgICAuY2hhaW4oKVxyXG4gICAgICAuZm9jdXMoKVxyXG4gICAgICAuc2V0VGV4dFNlbGVjdGlvbih7XHJcbiAgICAgICAgZnJvbSxcclxuICAgICAgICB0b1xyXG4gICAgICB9KVxyXG4gICAgICAuc2V0TWFyaygndGV4dFN0eWxlJywge1xyXG5cclxuICAgICAgICAuLi5leGlzdGluZ1N0eWxlcyxcclxuXHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOlxyXG4gICAgICAgICAgZ3JhZGllbnQsXHJcblxyXG4gICAgICAgIGJhY2tncm91bmRDbGlwOlxyXG4gICAgICAgICAgJ3RleHQnLFxyXG5cclxuICAgICAgICBXZWJraXRCYWNrZ3JvdW5kQ2xpcDpcclxuICAgICAgICAgICd0ZXh0JyxcclxuXHJcbiAgICAgICAgY29sb3I6XHJcbiAgICAgICAgICAndHJhbnNwYXJlbnQnLFxyXG5cclxuICAgICAgICBXZWJraXRUZXh0RmlsbENvbG9yOlxyXG4gICAgICAgICAgJ3RyYW5zcGFyZW50JyxcclxuXHJcbiAgICAgICAgZGlzcGxheTpcclxuICAgICAgICAgICdpbmxpbmUtYmxvY2snXHJcblxyXG4gICAgICB9KVxyXG4gICAgICAucnVuKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcclxuICAgICdkb2N1bWVudDptb3VzZWRvd24nXHJcbiAgKVxyXG5cclxuICBvbk1vdXNlRG93bigpOiB2b2lkIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIGlmICghdGhpcy5lZGl0b3IpXHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgeyBmcm9tLCB0byB9ID1cclxuICAgICAgICB0aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb247XHJcblxyXG4gICAgICB0aGlzLnNob3dUb29sYmFyID1cclxuICAgICAgICBmcm9tICE9PSB0bztcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VGb250U2l6ZShcclxuICAgIGZvbnRTaXplOiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkRm9udFNpemUgPVxyXG4gICAgICBmb250U2l6ZTtcclxuXHJcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPVxyXG4gICAgICB0aGlzLmVkaXRvci5zdGF0ZS5zZWxlY3Rpb247XHJcblxyXG4gICAgaWYgKGZyb20gPT09IHRvKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5lZGl0b3JcclxuICAgICAgLmNoYWluKClcclxuICAgICAgLmZvY3VzKClcclxuICAgICAgLnNldFRleHRTZWxlY3Rpb24oe1xyXG4gICAgICAgIGZyb20sXHJcbiAgICAgICAgdG9cclxuICAgICAgfSlcclxuICAgICAgLnNldE1hcmsoXHJcbiAgICAgICAgJ3RleHRTdHlsZScsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZm9udFNpemVcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnJ1bigpO1xyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4iLCI8IS0tIHRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIiAqbmdJZj1cImVkaXRhYmxlOyBlbHNlIHZpZXdNb2RlXCI+XHJcblxyXG4gIDwhLS0gRkxPQVRJTkcgVE9PTEJBUiAtLT5cclxuICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBbc3R5bGUudG9wLnB4XT1cInRvb2xiYXJZXCIgW3N0eWxlLmxlZnQucHhdPVwidG9vbGJhclhcIiBjZGtEcmFnPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgZHJhZy1oYW5kbGUgdy1hdXRvXCIgY2RrRHJhZ0hhbmRsZT5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtZ3JpcC12ZXJ0aWNhbFwiPlxyXG4gICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCIxMlwiIHI9XCIxXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiNVwiIHI9XCIxXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMTlcIiByPVwiMVwiIC8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIxMlwiIHI9XCIxXCIgLz5cclxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjVcIiByPVwiMVwiIC8+XHJcbiAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIxOVwiIHI9XCIxXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZm9udC1zaXplLWZpZWxkXCI+XHJcblxyXG4gICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWRGb250U2l6ZVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlRm9udFNpemUoJGV2ZW50LnZhbHVlKVwiIGRpc2FibGVPcHRpb25DZW50ZXJpbmc+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiXCI+XHJcbiAgICAgICAgICBEZWZhdWx0XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNsYW1wKDAuNzVyZW0sIDJ2dywgMXJlbSlcIj5cclxuICAgICAgICAgIDE0XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNsYW1wKDAuNzVyZW0sIDJ2dywgMS4yNXJlbSlcIj5cclxuICAgICAgICAgIDE2XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNsYW1wKDFyZW0sIDN2dywgMS41cmVtKVwiPlxyXG4gICAgICAgICAgMjBcclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY2xhbXAoMS4yNXJlbSwgNHZ3LCAycmVtKVwiPlxyXG4gICAgICAgICAgMjRcclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJjbGFtcCgycmVtLCA1dncsIDNyZW0pXCI+XHJcbiAgICAgICAgICAzMlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNsYW1wKDMuMXJlbSwgN3Z3LCA0LjVyZW0pXCI+XHJcbiAgICAgICAgICA0OFxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIEJPTEQgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiBbY2xhc3Muc2VsZWN0ZWRUb29sXT1cImVkaXRvcj8uaXNBY3RpdmUoJ2JvbGQnKVwiIChjbGljayk9XCJ0b2dnbGVCb2xkKClcIj5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtYm9sZFwiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDhcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwhLS0gSVRBTElDIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgdy1hdXRvXCIgW2NsYXNzLnNlbGVjdGVkVG9vbF09XCJlZGl0b3I/LmlzQWN0aXZlKCdpdGFsaWMnKVwiIChjbGljayk9XCJ0b2dnbGVJdGFsaWMoKVwiPlxyXG5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtaXRhbGljXCI+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxOVwiIHgyPVwiMTBcIiB5MT1cIjRcIiB5Mj1cIjRcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTRcIiB4Mj1cIjVcIiB5MT1cIjIwXCIgeTI9XCIyMFwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxNVwiIHgyPVwiOVwiIHkxPVwiNFwiIHkyPVwiMjBcIiAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDwhLS0gVU5ERVJMSU5FIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgdy1hdXRvXCIgW2NsYXNzLnNlbGVjdGVkVG9vbF09XCJlZGl0b3I/LmlzQWN0aXZlKCd1bmRlcmxpbmUnKVwiIChjbGljayk9XCJ0b2dnbGVVbmRlcmxpbmUoKVwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS11bmRlcmxpbmVcIj5cclxuICAgICAgICA8cGF0aCBkPVwiTTYgNHY2YTYgNiAwIDAgMCAxMiAwVjRcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiNFwiIHgyPVwiMjBcIiB5MT1cIjIwXCIgeTI9XCIyMFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBBTElHTiBMRUZUIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgdy1hdXRvXCIgKGNsaWNrKT1cInNldEFsaWduKCdsZWZ0JylcIj5cclxuXHJcbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgY2xhc3M9XCJsdWNpZGUgbHVjaWRlLWFsaWduLWxlZnRcIj5cclxuICAgICAgICA8bGluZSB4MT1cIjIxXCIgeDI9XCIzXCIgeTE9XCI2XCIgeTI9XCI2XCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjE1XCIgeDI9XCIzXCIgeTE9XCIxMlwiIHkyPVwiMTJcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTdcIiB4Mj1cIjNcIiB5MT1cIjE4XCIgeTI9XCIxOFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBBTElHTiBDRU5URVIgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiAoY2xpY2spPVwic2V0QWxpZ24oJ2NlbnRlcicpXCI+XHJcblxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICA8bGluZSB4MT1cIjIxXCIgeDI9XCIzXCIgeTE9XCI2XCIgeTI9XCI2XCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjE3XCIgeDI9XCI3XCIgeTE9XCIxMlwiIHkyPVwiMTJcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMTlcIiB4Mj1cIjVcIiB5MT1cIjE4XCIgeTI9XCIxOFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBBTElHTiBSSUdIVCAtLT5cclxuICAgIDxidXR0b24gY2xhc3M9XCJ0b29sIHctYXV0b1wiIChjbGljayk9XCJzZXRBbGlnbigncmlnaHQnKVwiPlxyXG5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtYWxpZ24tcmlnaHRcIj5cclxuICAgICAgICA8bGluZSB4MT1cIjIxXCIgeDI9XCIzXCIgeTE9XCI2XCIgeTI9XCI2XCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjIxXCIgeDI9XCI5XCIgeTE9XCIxMlwiIHkyPVwiMTJcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiMjFcIiB4Mj1cIjdcIiB5MT1cIjE4XCIgeTI9XCIxOFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBPUkRFUkVEIExJU1QgLS0+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidG9vbCB3LWF1dG9cIiAoY2xpY2spPVwidG9nZ2xlT3JkZXJlZExpc3QoKVwiPlxyXG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1saXN0LW9yZGVyZWRcIj5cclxuICAgICAgICA8bGluZSB4MT1cIjEwXCIgeDI9XCIyMVwiIHkxPVwiNlwiIHkyPVwiNlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxMFwiIHgyPVwiMjFcIiB5MT1cIjEyXCIgeTI9XCIxMlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCIxMFwiIHgyPVwiMjFcIiB5MT1cIjE4XCIgeTI9XCIxOFwiIC8+XHJcbiAgICAgICAgPHBhdGggZD1cIk00IDZoMXY0XCIgLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTQgMTBoMlwiIC8+XHJcbiAgICAgICAgPHBhdGggZD1cIk02IDE4SDRjMC0xIDItMiAyLTNzLTEtMS41LTItMVwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8IS0tIEJVTExFVCBMSVNUIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgdy1hdXRvXCIgKGNsaWNrKT1cInRvZ2dsZUJ1bGxldExpc3QoKVwiPlxyXG5cclxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtbGlzdFwiPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiOFwiIHgyPVwiMjFcIiB5MT1cIjZcIiB5Mj1cIjZcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiOFwiIHgyPVwiMjFcIiB5MT1cIjEyXCIgeTI9XCIxMlwiIC8+XHJcbiAgICAgICAgPGxpbmUgeDE9XCI4XCIgeDI9XCIyMVwiIHkxPVwiMThcIiB5Mj1cIjE4XCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjNcIiB4Mj1cIjMuMDFcIiB5MT1cIjZcIiB5Mj1cIjZcIiAvPlxyXG4gICAgICAgIDxsaW5lIHgxPVwiM1wiIHgyPVwiMy4wMVwiIHkxPVwiMTJcIiB5Mj1cIjEyXCIgLz5cclxuICAgICAgICA8bGluZSB4MT1cIjNcIiB4Mj1cIjMuMDFcIiB5MT1cIjE4XCIgeTI9XCIxOFwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPCEtLSBTT0xJRCAvIEdSQURJRU5UIC0tPlxyXG4gICAgPCEtLSBTT0xJRCAvIEdSQURJRU5UIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbG9yVHlwZVwiPlxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInNvbGlkIHctYXV0b1wiIFtjbGFzcy5zb2xpZENvbG9yU2VsZWN0ZWRdPVwic2VsZWN0ZWRDb2xvclR5cGUgPT09ICdTT0xJRCdcIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwic3dpdGNoVG9Tb2xpZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgU29saWRcclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZ3JhZGllbnQgdy1hdXRvXCIgW2NsYXNzLmdyYWRpZW50Q29sb3JTZWxlY3RlZF09XCJzZWxlY3RlZENvbG9yVHlwZSA9PT0gJ0dSQURJRU5UJ1wiXHJcbiAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJzd2l0Y2hUb0dyYWRpZW50KCRldmVudClcIj5cclxuICAgICAgICBHcmFkaWVudFxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFNPTElEIENPTE9SIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wgY29sb3ItcGlja2VyLWJ0biB3LWF1dG9cIiAqbmdJZj1cInNlbGVjdGVkQ29sb3JUeXBlID09PSAnU09MSUQnXCI+XHJcblxyXG4gICAgICA8bWF0LWljb24+Zm9ybWF0X2NvbG9yX3RleHQ8L21hdC1pY29uPlxyXG5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIGNsYXNzPVwiaGlkZGVuLWNvbG9yLXBpY2tlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDb2xvclwiIChjbGljayk9XCJvcGVuQ29sb3JQaWNrZXIoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cImNoYW5nZUNvbG9yKClcIj5cclxuXHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8IS0tIEdSQURJRU5UIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImdyYWRpZW50LXBpY2tlclwiICpuZ0lmPVwic2VsZWN0ZWRDb2xvclR5cGUgPT09ICdHUkFESUVOVCdcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIFsobmdNb2RlbCldPVwicHJpbWFyeUNvbG9yXCIgKGNsaWNrKT1cIm9wZW5Db2xvclBpY2tlcigpXCIgKGlucHV0KT1cImFwcGx5R3JhZGllbnQoKVwiIC8+XHJcblxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJzZWNvbmRhcnlDb2xvclwiIChjbGljayk9XCJvcGVuQ29sb3JQaWNrZXIoKVwiIChpbnB1dCk9XCJhcHBseUdyYWRpZW50KClcIiAvPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBUSVBUQVAgRURJVE9SIC0tPlxyXG4gIDxkaXYgI2VkaXRvckNvbnRhaW5lciBjbGFzcz1cImVkaXRhYmxlLXRleHRcIj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI3ZpZXdNb2RlPlxyXG4gIDxkaXYgY2xhc3M9XCJyZWFkLW9ubHktdGV4dFwiIFtpbm5lckhUTUxdPVwic2FmZUh0bWxcIj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -1171,7 +1171,10 @@ class TextEditorComponent {
1171
1171
  if (changes['value']) {
1172
1172
  this.updateSafeHtml();
1173
1173
  if (this.editor && !changes['value'].firstChange) {
1174
- this.editor.commands.setContent(this.value || '');
1174
+ const currentHtml = this.editor.getHTML();
1175
+ if (currentHtml !== this.value) {
1176
+ this.editor.commands.setContent(this.value || '');
1177
+ }
1175
1178
  }
1176
1179
  }
1177
1180
  }