general-library-union 2.4.23 → 2.4.25

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 (67) hide show
  1. package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +7 -2
  2. package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +7 -2
  3. package/esm2022/src/app/core/servicios/auth.service.mjs +7 -2
  4. package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +3 -2
  5. package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +7 -2
  6. package/esm2022/src/app/core/servicios/menu.service.mjs +80 -22
  7. package/esm2022/src/app/core/servicios/utils.service.mjs +18 -3
  8. package/esm2022/src/app/layout/app.breadcrumb.component.mjs +7 -2
  9. package/esm2022/src/app/layout/app.menu.component.mjs +19 -8
  10. package/esm2022/src/app/layout/app.menuitem.component.mjs +4 -3
  11. package/esm2022/src/app/layout/app.sidebar.component.mjs +4 -3
  12. package/esm2022/src/app/layout/app.topbar.component.mjs +16 -5
  13. package/esm2022/src/app/publico/pages/login/login.page.mjs +7 -2
  14. package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +7 -3
  15. package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +12 -4
  16. package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +15 -13
  17. package/fesm2022/general-library-union.mjs +200 -59
  18. package/fesm2022/general-library-union.mjs.map +1 -1
  19. package/package.json +2 -2
  20. package/src/app/core/servicios/menu.service.d.ts +1 -0
  21. package/src/app/core/servicios/utils.service.d.ts +1 -0
  22. package/src/app/layout/app.menuitem.component.d.ts +2 -1
  23. package/src/app/layout/app.sidebar.component.d.ts +1 -0
  24. package/src/app/layout/app.topbar.component.d.ts +1 -0
  25. package/src/app/publico/pages/not-found/not-found.page.d.ts +1 -0
  26. package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +2 -2
  27. package/src/assets/images/personaje.png +0 -0
  28. package/src/assets/layout/styles/theme/extensions/_progressbar.scss +1 -1
  29. package/src/assets/layout/styles/theme/theme-dark/amber/theme.css +1 -1
  30. package/src/assets/layout/styles/theme/theme-dark/blue/theme.css +1 -1
  31. package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.css +1 -1
  32. package/src/assets/layout/styles/theme/theme-dark/brown/theme.css +1 -1
  33. package/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +1 -1
  34. package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.css +1 -1
  35. package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +1 -1
  36. package/src/assets/layout/styles/theme/theme-dark/green/theme.css +1 -1
  37. package/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +1 -1
  38. package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.css +1 -1
  39. package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.css +1 -1
  40. package/src/assets/layout/styles/theme/theme-dark/lime/theme.css +1 -1
  41. package/src/assets/layout/styles/theme/theme-dark/orange/theme.css +1 -1
  42. package/src/assets/layout/styles/theme/theme-dark/pink/theme.css +1 -1
  43. package/src/assets/layout/styles/theme/theme-dark/purple/theme.css +1 -1
  44. package/src/assets/layout/styles/theme/theme-dark/teal/theme.css +1 -1
  45. package/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +1 -1
  46. package/src/assets/layout/styles/theme/theme-light/amber/theme.css +1 -1
  47. package/src/assets/layout/styles/theme/theme-light/blue/theme.css +1 -1
  48. package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.css +1 -1
  49. package/src/assets/layout/styles/theme/theme-light/brown/theme.css +1 -1
  50. package/src/assets/layout/styles/theme/theme-light/cyan/theme.css +1 -1
  51. package/src/assets/layout/styles/theme/theme-light/deeporange/theme.css +1 -1
  52. package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +1 -1
  53. package/src/assets/layout/styles/theme/theme-light/green/theme.css +1 -1
  54. package/src/assets/layout/styles/theme/theme-light/indigo/theme.css +1 -1
  55. package/src/assets/layout/styles/theme/theme-light/lightblue/theme.css +1 -1
  56. package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.css +1 -1
  57. package/src/assets/layout/styles/theme/theme-light/lime/theme.css +1 -1
  58. package/src/assets/layout/styles/theme/theme-light/orange/theme.css +1 -1
  59. package/src/assets/layout/styles/theme/theme-light/pink/theme.css +1 -1
  60. package/src/assets/layout/styles/theme/theme-light/purple/theme.css +1 -1
  61. package/src/assets/layout/styles/theme/theme-light/teal/theme.css +1 -1
  62. package/src/assets/layout/styles/theme/theme-light/yellow/theme.css +1 -1
  63. package/src/assets/theme/uniondinamic/theme-light.css +1 -1
  64. package/src/styles/primeng/sass/overrides/_theme_styles.scss +223 -26
  65. package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +209 -25
  66. package/src/styles/primeng/sass/theme/designer/components/overlay/_dialog.scss +1 -1
  67. package/src/styles/primeng/sass/theme/extensions/_progressbar.scss +1 -1
@@ -115,13 +115,13 @@ export class UtilsService {
115
115
  var url = new URL(paginaActual);
116
116
  var params = new URLSearchParams(url.search);
117
117
  if (paginaActual.toString().includes('PortalSara')) {
118
- for (var match of paginaActual.matchAll(/(?<inicio>.*)\/PortalSara\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
118
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
119
119
  basePortal = match.groups?.seguridad;
120
120
  }
121
121
  }
122
122
  else if (params?.get('us_id')) {
123
123
  paginaActual = window.parent.location.href;
124
- for (var match of paginaActual.matchAll(/(?<inicio>.*)\/PortalSara\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
124
+ for (var match of paginaActual.matchAll(/(?<inicio>.*)\/(?<seguridad>.*)\/(?<sitio>.*)\/(?<pagina>.*)/g)) {
125
125
  basePortal = match.groups?.seguridad;
126
126
  }
127
127
  }
@@ -290,6 +290,21 @@ export class UtilsService {
290
290
  let linkTema = this.document.getElementById('temaApp');
291
291
  linkTema.href = `${tema}.css`;
292
292
  }
293
+ calcularPosicionDialog() {
294
+ var parentWindow = window.parent;
295
+ var obj = window.frameElement;
296
+ var ifrm = obj;
297
+ if (ifrm) {
298
+ const scrollTop = parentWindow.pageYOffset || parentWindow.document.documentElement.scrollTop || parentWindow.document.body.scrollTop || 0;
299
+ const dialog = document.querySelector('.p-dialog');
300
+ if (dialog) {
301
+ const scrollHeight = parentWindow.document.documentElement.scrollHeight;
302
+ const mitadScrollHeight = scrollHeight / 2;
303
+ const inicio = -mitadScrollHeight;
304
+ dialog.style.top = `${inicio + 100 + (scrollTop)}px`;
305
+ }
306
+ }
307
+ }
293
308
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, deps: [{ token: i1.CookieService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
294
309
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: UtilsService, providedIn: 'root' });
295
310
  }
@@ -302,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
302
317
  type: Inject,
303
318
  args: [DOCUMENT]
304
319
  }] }] });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBQXdEO0lBSHBFLDhCQUE4QixHQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsVUFBVSxHQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFbkwsWUFBb0IsYUFBNEIsRUFBNEIsUUFBa0I7UUFBMUUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5RixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxVQUFVLEdBQUcsZ0VBQWdFLENBQUM7UUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxP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RyxJQUFJLE1BQU0sQ0FBQTtJQUMvQixDQUFDO3VHQWpVVSxZQUFZLCtDQUttQyxRQUFROzJHQUx2RCxZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1vRCxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIFJFU0VSVkFEQVNfU1FMX05PUFVFREVDT05URU5FUjogYW55W10gPSBbJzsnXVxyXG4gIHByaXZhdGUgcmVzZXJ2YWRhczogYW55W10gPSBbJ0FMVEVSJywgJ0RFTEVURScsICdEUk9QJywgJ01PRElGWScsICdDUkVBVEUnLCAnREFUQUJBU0UnLCAnVEFCTEUnLCAnVVBEQVRFJywgJ1RSSUdHRVInLCAnR1JBTlQnLCAnUkVWT0tFJywgJ0NBTEwnLCAnSU5TRVJUJywgJ1RSVU5DQVRFJywgJ1VTRScsICctLSddXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZSwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpe1xyXG4gIH1cclxuICBcclxuICBwdWJsaWMgZ2VuZXJhckxsYXZlKCkge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gMzI7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnNMZW5ndGg7IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIGdlbmVyYXJQaW4oY2FudGlkYWQ6IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbnRpZGFkOyBpKyspIHtcclxuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNhbnRpZGFkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgcmlnaHRwYWQoc3RyLCBsZW5ndGgsIGNoYXIpIHtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgbGVuZ3RoICE9PSAnbnVtYmVyJykge1xyXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMb3MgYXJndW1lbnRvcyBkZWJlbiBzZXIgdW5hIGNhZGVuYSB5IHVuIG7Dum1lcm8uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ci5sZW5ndGggPj0gbGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhciA9IGNoYXIgfHwgJyAnOyAvLyBVdGlsaXphIHVuIGVzcGFjaW8gY29tbyBjYXLDoWN0ZXIgZGUgcmVsbGVubyBzaSBubyBzZSBwcm9wb3JjaW9uYSB1bm9cclxuXHJcbiAgICB2YXIgcGFkTGVuZ3RoID0gbGVuZ3RoIC0gc3RyLmxlbmd0aDtcclxuICAgIHZhciBwYWRkaW5nID0gY2hhci5yZXBlYXQocGFkTGVuZ3RoKTtcclxuXHJcbiAgICByZXR1cm4gc3RyICsgcGFkZGluZztcclxuICB9XHJcblxyXG4gIHZhbGlkYXJDYW1wb051bWVyaWNvKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgcmVnZXggPSAvW14wLTldL2dpO1xyXG4gICAgaW5wdXQudmFsdWUgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcbiAgfVxyXG5cclxuICBpc05vdEJsYW5rKHN0cjogc3RyaW5nIHwgU3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHN0ciAhPSBudWxsICYmIHN0ci50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGlzQmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc3RyID09IG51bGwgfHwgc3RyPy50cmltKCkgPT09ICcnO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhckNhbXBvT2JsaWdhdG9yaW8odmFsb3IpOiBib29sZWFuIHtcclxuICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyBudWxsIG5pIHVuZGVmaW5lZFxyXG4gICAgaWYgKHZhbG9yICE9PSBudWxsICYmIHZhbG9yICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIHVuYSBjYWRlbmEgdmFjw61hIChlbiBjYXNvIGRlIHNlciB1bmEgY2FkZW5hKVxyXG4gICAgICBpZiAodHlwZW9mIHZhbG9yID09PSAnc3RyaW5nJyAmJiB2YWxvci50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyB1biBhcnJlZ2xvIHZhY8OtbyAoZW4gY2FzbyBkZSBzZXIgdW4gYXJyZWdsbylcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsb3IpICYmIHZhbG9yLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICAvKmlmICh0eXBlb2YgdmFsb3IgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbG9yKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0qL1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNhcGl0YWxpemVGdWxseShpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghaW5wdXRTdHJpbmcpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgd29yZHMgPSBpbnB1dFN0cmluZy5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgY2FwaXRhbGl6ZWRXb3JkcyA9IHdvcmRzLm1hcCh3b3JkID0+IHtcclxuICAgICAgaWYgKHdvcmQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gY2FwaXRhbGl6ZWRXb3Jkcy5qb2luKCcgJyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgb3JkZW5hclNlbGVjdEl0ZW1zQWxmYWJldGljYW1lbnRlKGFycmF5RGVPYmpldG9zOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGFycmF5RGVPYmpldG9zLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQSA9IGEubGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc3Qgbm9tYnJlQiA9IGIubGFiZWwudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgIGlmIChub21icmVBIDwgbm9tYnJlQikge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobm9tYnJlQSA+IG5vbWJyZUIpIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFycmF5RGVPYmpldG9zO1xyXG4gIH1cclxuXHJcbiAgb2J0ZW5lclBhcmFtZXRyb0RlVVJMKHVybFN0cmluZzogc3RyaW5nLCBwYXJhbWV0cm86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh1cmxTdHJpbmcpO1xyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuc2VhcmNoKTtcclxuICAgIHJldHVybiBzZWFyY2hQYXJhbXMuZ2V0KHBhcmFtZXRybyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGFyRW1haWwoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0cm9uRW1haWwgPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICByZXR1cm4gcGF0cm9uRW1haWwudGVzdChlbWFpbCk7XHJcbiAgfVxyXG5cclxuICBvYnRlbmVyQmFzZSgpOiAoc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdmFyIGJhc2VQb3J0YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgICB2YXIgcGFnaW5hQWN0dWFsOiBhbnkgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxyXG4gICAgdmFyIHVybCA9IG5ldyBVUkwocGFnaW5hQWN0dWFsKTtcclxuICAgIHZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2gpO1xyXG4gICAgaWYgKHBhZ2luYUFjdHVhbC50b1N0cmluZygpLmluY2x1ZGVzKCdQb3J0YWxTYXJhJykpIHtcclxuICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgcGFnaW5hQWN0dWFsLm1hdGNoQWxsKC8oPzxpbmljaW8+LiopXFwvUG9ydGFsU2FyYVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XHJcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoLmdyb3Vwcz8uc2VndXJpZGFkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHBhcmFtcz8uZ2V0KCd1c19pZCcpKSB7XHJcbiAgICAgIHBhZ2luYUFjdHVhbCA9IHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZjtcclxuICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgcGFnaW5hQWN0dWFsLm1hdGNoQWxsKC8oPzxpbmljaW8+LiopXFwvUG9ydGFsU2FyYVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XHJcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoLmdyb3Vwcz8uc2VndXJpZGFkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByZWdleCA9IC9eLio/XFwvXFwvLio/XFwvKC4qPylcXC8vZzsgLy8gRXhwcmVzacOzbiByZWd1bGFyIHBhcmEgb2J0ZW5lciBsYSBwcmltZXJhIHBhcnRlIGRlIGxhIFVSTFxyXG4gICAgICBjb25zdCBtYXRjaCA9IEFycmF5LmZyb20ocGFnaW5hQWN0dWFsLm1hdGNoQWxsKHJlZ2V4KSk7XHJcblxyXG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0gJiYgbWF0Y2hbMF1bMV0pIHtcclxuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2hbMF1bMV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBiYXNlUG9ydGFsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGFyRXNwYWNpbyhjYXJhY3Rlcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByZWdleCA9IC9cXHMvOyAvLyBMYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBlc3BhY2lvcyBlbiBibGFuY29cclxuICAgIHJldHVybiByZWdleC50ZXN0KGNhcmFjdGVyKTsgLy8gRGV2dWVsdmUgdHJ1ZSBzaSBlbCBjYXLDoWN0ZXIgZXMgdW4gZXNwYWNpbyBlbiBibGFuY29cclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGFyVGV4dG9TUUwodmFsb3I6IHN0cmluZywgb2JsaWdhdG9yaW86IGJvb2xlYW4sIHNlbGVjdDogYm9vbGVhbiwgbG9uZ2l0dWQ6IG51bWJlciwgdmFsaWRhclNlbnRlbmNpYTogYm9vbGVhbik6IChzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAvLyBWZXJpZmljYSBvYmxpZ2F0b3JpZWRhZFxyXG4gICAgaWYgKG9ibGlnYXRvcmlvICYmICh2YWxvciA9PSBudWxsIHx8IHZhbG9yLnRyaW0oKS5sZW5ndGggPT0gMCB8fCB2YWxvciA9PSAnLS0nKSkge1xyXG4gICAgICByZXR1cm4gJ09ibGlnYXRvcmlvJztcclxuICAgIH1cclxuICAgIC8vIFZlcmlmaWNhIGxvbmdpdHVkIG3DoXhpbWFcclxuICAgIGlmIChsb25naXR1ZCA+IDApIHtcclxuICAgICAgaWYgKHZhbG9yICE9IG51bGwgJiYgdmFsb3IgIT0gJy0tJyAmJiB2YWxvci5sZW5ndGggPiBsb25naXR1ZCkge1xyXG4gICAgICAgIHJldHVybiAnTG9uZ2l0dWQgbWF4aW1hIGRlICcgKyBsb25naXR1ZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gUmVhbGl6YSBsYXMgZGVtw6FzIHZhbGlkYWNpb24gc29sbyBlbiBlbCBjYXNvIGRlIHF1ZSBsYSBjYWRlbmEgU1FML3ZhbG9yIG5vIHNlYSB2YWNpYVxyXG4gICAgaWYgKHZhbG9yID09IG51bGwgfHwgdmFsb3IudHJpbSgpLmxlbmd0aCA9PSAwIHx8IHZhbG9yID09ICctLScpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmICh2YWxpZGFyU2VudGVuY2lhKSB7XHJcbiAgICAgIGlmIChzZWxlY3QpIHtcclxuICAgICAgICBpZiAoIXZhbG9yLnRvVXBwZXJDYXNlKCkuc3RhcnRzV2l0aCgnU0VMRUNUJykpIHtcclxuICAgICAgICAgIHJldHVybiAnRWwgdGV4dG8gZGViZSBpbmljaWFyIGNvbiBsYSBwYWxhYnJhIFNlbGVjdCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWxvci50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdTRUxFQ1QnKSkge1xyXG4gICAgICAgICAgcmV0dXJuICdObyBwdWVkZSBjb250ZW5lciBsYSBwYWxhYnJhIFNlbGVjdCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgaW5kaWNlOiBudW1iZXI7XHJcbiAgICB2YXIgbWVuc2FqZTogc3RyaW5nO1xyXG4gICAgdGhpcy5SRVNFUlZBREFTX1NRTF9OT1BVRURFQ09OVEVORVIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKHZhbG9yLmluY2x1ZGVzKGl0ZW0pKSB7XHJcbiAgICAgICAgbWVuc2FqZSA9ICdObyBwdWVkZSBjb250ZW5lciAnICsgaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMucmVzZXJ2YWRhcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAodmFsb3IudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhpdGVtLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgaW5kaWNlID0gKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihpdGVtLnRvVXBwZXJDYXNlKCkpKTtcclxuICAgICAgICBpZiAoaW5kaWNlID09IDAgfHwgKHRoaXMudmFsaWRhckVzcGFjaW8odmFsb3IuY2hhckF0KGluZGljZSAtIDEpKSAmJiB0aGlzLnZhbGlkYXJFc3BhY2lvKHZhbG9yLmNoYXJBdChpdGVtLmxlbmd0aCArIGluZGljZSkpKSkge1xyXG4gICAgICAgICAgbWVuc2FqZSA9ICdObyBwdWVkZSBjb250ZW5lciAnICsgaXRlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gbWVuc2FqZTtcclxuICB9XHJcblxyXG4gIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhclRleHRvQXJjaGl2b0phc3Blcih0ZXh0bzogc3RyaW5nKTogKHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmICh0ZXh0by50cmltKCkgPT0gJycgfHwgdGV4dG8gPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBlc3RhciB2YWNpb1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXERdLipcIikpIHtcclxuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gbnVtZXJvc1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRleHRvLm1hdGNoKFwiXlteXFxcXFNdLipcIikpIHtcclxuICAgICAgcmV0dXJuIFwiRWwgY2FtcG8gbm8gcHVlZGUgaW5pY2lhciBjb24gY2FyYWN0ZXJlcyBlbiBibGFuY29cIjtcclxuICAgIH1cclxuICAgIGlmICghdGV4dG8ubWF0Y2goXCJeW15cXFxcV10uKlwiKSkge1xyXG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBjYXJhY3RlcmVzIGVzcGVjaWFsZXNcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplV2luZG93SUZyYW1lKCkge1xyXG5cdFx0aWYgKCB3aW5kb3cuZnJhbWVFbGVtZW50ICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy5yZXNpemVJZnJhbWVLZWVwUG9zaXRpb24od2luZG93LmZyYW1lRWxlbWVudCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEZ1bmNpb24gcGFyYSBtYW50ZW5lciBsYSBwb3NpY2nDs24gYWN0dWFsIGVuIGVsIGlmcmFtZS5cclxuXHQgKiBAcGFyYW0gb2JqIGVzIHVuIFwiRnJhbWVFbGVtZW50XCJcclxuXHQgKi9cclxuXHRwcml2YXRlIHJlc2l6ZUlmcmFtZUtlZXBQb3NpdGlvbihvYmopIHtcclxuXHRcdFxyXG5cdFx0dmFyIGlmcm0gPSBvYmo7XHJcblx0XHR2YXIgZG9jID0gaWZybS5jb250ZW50RG9jdW1lbnQgPyBpZnJtLmNvbnRlbnREb2N1bWVudDogaWZybS5jb250ZW50V2luZG93LmRvY3VtZW50O1xyXG4gICAgdmFyIHRhbWFuaW86IG51bWJlcj0gIHRoaXMuZ2V0RG9jSGVpZ2h0KCBkb2MgKSAgKyA0MFxyXG5cdFx0aWZybS5zdHlsZS5oZWlnaHQgPSB0YW1hbmlvICsgXCJweFwiO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXREb2NIZWlnaHQoZG9jKXtcclxuXHRcclxuXHRcdGxldCBuYXZlZ2Fkb3IgPSB0aGlzLm9idGVuZXJOYXZlZ2Fkb3IoKS50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0dmFyIGhlaWdodCA9IDA7XHJcblx0XHRkb2MgPSBkb2MgfHwgZG9jdW1lbnQ7XHJcblx0XHR2YXIgYm9keSA9IGRvYy5ib2R5LCBodG1sID0gZG9jLmRvY3VtZW50RWxlbWVudDtcclxuXHRcdGhlaWdodCA9IE1hdGgubWF4KCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5vZmZzZXRIZWlnaHQsIFxyXG5cdFx0aHRtbC5jbGllbnRIZWlnaHQsIGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLm9mZnNldEhlaWdodCApO1xyXG5cdFx0XHJcblx0XHRpZiAobmF2ZWdhZG9yLmluZGV4T2YoJ2ZpcmVmb3gnKSAhPT0gLTEpe1xyXG5cdFx0XHRpZihkb2MuZm9ybURldGFsbGVDb252b2NhdG9yaWEpe1xyXG5cdFx0XHRcdGxldCBjYW50aWRhZE1pbGVzID0gaGVpZ2h0IC8gMTAwMDtcclxuXHRcdFx0XHRoZWlnaHQgPSBoZWlnaHQgKyA2MDAgKyAoY2FudGlkYWRNaWxlcyo0MClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0Ly9cdGNvbnNvbGUud2FybignRkNPIDogbGxhbWEgYSBnZXREb2NIZWlnaHQnKTtcclxuXHRcclxuXHRcdHJldHVybiBoZWlnaHQ7XHJcblx0fVxyXG5cclxuXHRvYnRlbmVyTmF2ZWdhZG9yKCl7XHJcblx0XHR2YXIgdWE9IG5hdmlnYXRvci51c2VyQWdlbnQsIHRlbSwgXHJcblx0XHRNPSB1YS5tYXRjaCgvKG9wZXJhfGNocm9tZXxzYWZhcml8ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cXC8pKVxcLz9cXHMqKFxcZCspL2kpIHx8IFtdO1xyXG5cdFx0aWYoL3RyaWRlbnQvaS50ZXN0KE1bMV0pKXtcclxuXHRcdFx0dGVtPSAgL1xcYnJ2WyA6XSsoXFxkKykvZy5leGVjKHVhKSB8fCBbXTtcclxuXHRcdFx0cmV0dXJuICdJRSAnKyh0ZW1bMV0gfHwgJycpO1xyXG5cdFx0fVxyXG5cdFx0aWYoTVsxXT09PSAnQ2hyb21lJyl7XHJcblx0XHRcdHRlbT0gdWEubWF0Y2goL1xcYihPUFJ8RWRnZSlcXC8oXFxkKykvKTtcclxuXHRcdFx0aWYodGVtIT0gbnVsbCkgcmV0dXJuIHRlbS5zbGljZSgxKS5qb2luKCcgJykucmVwbGFjZSgnT1BSJywgJ09wZXJhJyk7XHJcblx0XHR9XHJcblx0XHRNPSBNWzJdPyBbTVsxXSwgTVsyXV06IFtuYXZpZ2F0b3IuYXBwTmFtZSwgbmF2aWdhdG9yLmFwcFZlcnNpb24sICctPyddO1xyXG5cdFx0aWYoKHRlbT0gdWEubWF0Y2goL3ZlcnNpb25cXC8oXFxkKykvaSkpIT0gbnVsbCkgTS5zcGxpY2UoMSwgMSwgdGVtWzFdKTtcclxuXHRcdHJldHVybiBNLmpvaW4oJyAnKTtcclxuXHR9XHJcblxyXG4gIG9idGVuZXJVcmxBcGkodXJsYXBpPzogc3RyaW5nICk6IHN0cmluZyB7XHJcbiAgICBpZiAodXJsYXBpKXtcclxuICAgICAgcmV0dXJuIHVybGFwaTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAodGhpcy5nZXRUb2tlbktleSgnYXBsaWNhY2lvbicpKSB7XHJcbiAgICAgIGNhc2UgJzEnOlxyXG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgICAgY2FzZSAnMTMnOlxyXG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgICAgY2FzZSAnMTAnOlxyXG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGlzYXJhJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgICAgICAvL3JldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGknXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaSddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XHJcbiAgICAgIGNhc2UgJzc3JzpcclxuICAgICAgICByZXR1cm4gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYWFwcyddID8gd2luZG93WydlbnYnXVsndXJsYXBpbWFuYWFwcyddIDogdGhpcy5jb29raWVTZXJ2aWNlLmdldCgndXJsbnVjbGVvJyk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VG9rZW5LZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2RlY29kZVRva2VuKCk7XHJcbiAgICAgIHJldHVybiBkYXRhW2tleV0udG9TdHJpbmcoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWNvZGVUb2tlbigpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEl0ZW0oJ3Rva2VuJywgJycpO1xyXG4gICAgICBjb25zdCBkYXRhID0gdG9rZW4uc3BsaXQoJy4nKVsxXTtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5vYnRlbmVyQmFzZSgpICsgJ18nICsgIGtleSkgPz8gZGVmYXVsdFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY2FtYmlhclRlbWEodGVtYSA6ICgndGVtYUNsYXJvJyB8ICd0ZW1hT3NjdXJvJykpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5vYnRlbmVyQmFzZSgpICsgJ18nICsndGVtYScsIHRlbWEpO1xyXG4gICAgbGV0IGxpbmtUZW1hID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtYUFwcCcpIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgIGxpbmtUZW1hLmhyZWYgPSBgJHt0ZW1hfS5jc3NgXHJcbiAgfVxyXG59Il19
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBQXdEO0lBSHBFLDhCQUE4QixHQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsVUFBVSxHQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFbkwsWUFBb0IsYUFBNEIsRUFBNEIsUUFBa0I7UUFBMUUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5RixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxVQUFVLEdBQUcsZ0VBQWdFLENBQUM7UUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxP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RyxJQUFJLE1BQU0sQ0FBQTtJQUMvQixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksWUFBWSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxHQUFHLEdBQVEsTUFBTSxDQUFDLFlBQVksQ0FBRTtRQUNwQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUMzSSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBZ0IsQ0FBQztZQUNsRSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQTtnQkFDdkUsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDO2dCQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUcsSUFBSSxDQUFDO1lBQU0sQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQzt1R0FqVlUsWUFBWSwrQ0FLbUMsUUFBUTsyR0FMdkQsWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNb0QsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIFJFU0VSVkFEQVNfU1FMX05PUFVFREVDT05URU5FUjogYW55W10gPSBbJzsnXVxyXG4gIHByaXZhdGUgcmVzZXJ2YWRhczogYW55W10gPSBbJ0FMVEVSJywgJ0RFTEVURScsICdEUk9QJywgJ01PRElGWScsICdDUkVBVEUnLCAnREFUQUJBU0UnLCAnVEFCTEUnLCAnVVBEQVRFJywgJ1RSSUdHRVInLCAnR1JBTlQnLCAnUkVWT0tFJywgJ0NBTEwnLCAnSU5TRVJUJywgJ1RSVU5DQVRFJywgJ1VTRScsICctLSddXHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCwpe1xyXG4gIH1cclxuICBcclxuICBwdWJsaWMgZ2VuZXJhckxsYXZlKCkge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gMzI7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnNMZW5ndGg7IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIGdlbmVyYXJQaW4oY2FudGlkYWQ6IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbnRpZGFkOyBpKyspIHtcclxuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNhbnRpZGFkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdC50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgcmlnaHRwYWQoc3RyLCBsZW5ndGgsIGNoYXIpIHtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgbGVuZ3RoICE9PSAnbnVtYmVyJykge1xyXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMb3MgYXJndW1lbnRvcyBkZWJlbiBzZXIgdW5hIGNhZGVuYSB5IHVuIG7Dum1lcm8uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ci5sZW5ndGggPj0gbGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhciA9IGNoYXIgfHwgJyAnOyAvLyBVdGlsaXphIHVuIGVzcGFjaW8gY29tbyBjYXLDoWN0ZXIgZGUgcmVsbGVubyBzaSBubyBzZSBwcm9wb3JjaW9uYSB1bm9cclxuXHJcbiAgICB2YXIgcGFkTGVuZ3RoID0gbGVuZ3RoIC0gc3RyLmxlbmd0aDtcclxuICAgIHZhciBwYWRkaW5nID0gY2hhci5yZXBlYXQocGFkTGVuZ3RoKTtcclxuXHJcbiAgICByZXR1cm4gc3RyICsgcGFkZGluZztcclxuICB9XHJcblxyXG4gIHZhbGlkYXJDYW1wb051bWVyaWNvKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgcmVnZXggPSAvW14wLTldL2dpO1xyXG4gICAgaW5wdXQudmFsdWUgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcbiAgfVxyXG5cclxuICBpc05vdEJsYW5rKHN0cjogc3RyaW5nIHwgU3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHN0ciAhPSBudWxsICYmIHN0ci50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGlzQmxhbmsoc3RyOiBzdHJpbmcgfCBTdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc3RyID09IG51bGwgfHwgc3RyPy50cmltKCkgPT09ICcnO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhckNhbXBvT2JsaWdhdG9yaW8odmFsb3IpOiBib29sZWFuIHtcclxuICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyBudWxsIG5pIHVuZGVmaW5lZFxyXG4gICAgaWYgKHZhbG9yICE9PSBudWxsICYmIHZhbG9yICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gVmVyaWZpY2FyIHNpIGVsIHZhbG9yIG5vIGVzIHVuYSBjYWRlbmEgdmFjw61hIChlbiBjYXNvIGRlIHNlciB1bmEgY2FkZW5hKVxyXG4gICAgICBpZiAodHlwZW9mIHZhbG9yID09PSAnc3RyaW5nJyAmJiB2YWxvci50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCB2YWxvciBubyBlcyB1biBhcnJlZ2xvIHZhY8OtbyAoZW4gY2FzbyBkZSBzZXIgdW4gYXJyZWdsbylcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsb3IpICYmIHZhbG9yLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICAvKmlmICh0eXBlb2YgdmFsb3IgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbG9yKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0qL1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNhcGl0YWxpemVGdWxseShpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghaW5wdXRTdHJpbmcpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgd29yZHMgPSBpbnB1dFN0cmluZy5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgY2FwaXRhbGl6ZWRXb3JkcyA9IHdvcmRzLm1hcCh3b3JkID0+IHtcclxuICAgICAgaWYgKHdvcmQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gY2FwaXRhbGl6ZWRXb3Jkcy5qb2luKCcgJyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgb3JkZW5hclNlbGVjdEl0ZW1zQWxmYWJldGljYW1lbnRlKGFycmF5RGVPYmpldG9zOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGFycmF5RGVPYmpldG9zLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQSA9IGEubGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc3Qgbm9tYnJlQiA9IGIubGFiZWwudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgIGlmIChub21icmVBIDwgbm9tYnJlQikge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobm9tYnJlQSA+IG5vbWJyZUIpIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFycmF5RGVPYmpldG9zO1xyXG4gIH1cclxuXHJcbiAgb2J0ZW5lclBhcmFtZXRyb0RlVVJMKHVybFN0cmluZzogc3RyaW5nLCBwYXJhbWV0cm86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh1cmxTdHJpbmcpO1xyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuc2VhcmNoKTtcclxuICAgIHJldHVybiBzZWFyY2hQYXJhbXMuZ2V0KHBhcmFtZXRybyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGFyRW1haWwoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0cm9uRW1haWwgPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICByZXR1cm4gcGF0cm9uRW1haWwudGVzdChlbWFpbCk7XHJcbiAgfVxyXG5cclxuICBvYnRlbmVyQmFzZSgpOiAoc3RyaW5nIHwgbnVsbCkge1xyXG5cclxuICAgIHZhciBiYXNlUG9ydGFsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgdmFyIHBhZ2luYUFjdHVhbDogYW55ID0gd2luZG93LmxvY2F0aW9uLmhyZWZcclxuICAgIHZhciB1cmwgPSBuZXcgVVJMKHBhZ2luYUFjdHVhbCk7XHJcbiAgICB2YXIgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmwuc2VhcmNoKTtcclxuICAgIGlmIChwYWdpbmFBY3R1YWwudG9TdHJpbmcoKS5pbmNsdWRlcygnUG9ydGFsU2FyYScpKSB7XHJcbiAgICAgIGZvciAodmFyIG1hdGNoIG9mIHBhZ2luYUFjdHVhbC5tYXRjaEFsbCgvKD88aW5pY2lvPi4qKVxcLyg/PHNlZ3VyaWRhZD4uKilcXC8oPzxzaXRpbz4uKilcXC8oPzxwYWdpbmE+LiopL2cpKSB7XHJcbiAgICAgICAgYmFzZVBvcnRhbCA9IG1hdGNoLmdyb3Vwcz8uc2VndXJpZGFkO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHBhcmFtcz8uZ2V0KCd1c19pZCcpKSB7XHJcbiAgICAgIHBhZ2luYUFjdHVhbCA9IHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZjtcclxuICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgcGFnaW5hQWN0dWFsLm1hdGNoQWxsKC8oPzxpbmljaW8+LiopXFwvKD88c2VndXJpZGFkPi4qKVxcLyg/PHNpdGlvPi4qKVxcLyg/PHBhZ2luYT4uKikvZykpIHtcclxuICAgICAgICBiYXNlUG9ydGFsID0gbWF0Y2guZ3JvdXBzPy5zZWd1cmlkYWQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14uKj9cXC9cXC8uKj9cXC8oLio/KVxcLy9nOyAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBvYnRlbmVyIGxhIHByaW1lcmEgcGFydGUgZGUgbGEgVVJMXHJcbiAgICAgIGNvbnN0IG1hdGNoID0gQXJyYXkuZnJvbShwYWdpbmFBY3R1YWwubWF0Y2hBbGwocmVnZXgpKTtcclxuXHJcbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXSAmJiBtYXRjaFswXVsxXSkge1xyXG4gICAgICAgIGJhc2VQb3J0YWwgPSBtYXRjaFswXVsxXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJhc2VQb3J0YWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXJFc3BhY2lvKGNhcmFjdGVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gL1xccy87IC8vIExhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGVzcGFjaW9zIGVuIGJsYW5jb1xyXG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoY2FyYWN0ZXIpOyAvLyBEZXZ1ZWx2ZSB0cnVlIHNpIGVsIGNhcsOhY3RlciBlcyB1biBlc3BhY2lvIGVuIGJsYW5jb1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXJUZXh0b1NRTCh2YWxvcjogc3RyaW5nLCBvYmxpZ2F0b3JpbzogYm9vbGVhbiwgc2VsZWN0OiBib29sZWFuLCBsb25naXR1ZDogbnVtYmVyLCB2YWxpZGFyU2VudGVuY2lhOiBib29sZWFuKTogKHN0cmluZyB8IG51bGwpIHtcclxuICAgIC8vIFZlcmlmaWNhIG9ibGlnYXRvcmllZGFkXHJcbiAgICBpZiAob2JsaWdhdG9yaW8gJiYgKHZhbG9yID09IG51bGwgfHwgdmFsb3IudHJpbSgpLmxlbmd0aCA9PSAwIHx8IHZhbG9yID09ICctLScpKSB7XHJcbiAgICAgIHJldHVybiAnT2JsaWdhdG9yaW8nO1xyXG4gICAgfVxyXG4gICAgLy8gVmVyaWZpY2EgbG9uZ2l0dWQgbcOheGltYVxyXG4gICAgaWYgKGxvbmdpdHVkID4gMCkge1xyXG4gICAgICBpZiAodmFsb3IgIT0gbnVsbCAmJiB2YWxvciAhPSAnLS0nICYmIHZhbG9yLmxlbmd0aCA+IGxvbmdpdHVkKSB7XHJcbiAgICAgICAgcmV0dXJuICdMb25naXR1ZCBtYXhpbWEgZGUgJyArIGxvbmdpdHVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBSZWFsaXphIGxhcyBkZW3DoXMgdmFsaWRhY2lvbiBzb2xvIGVuIGVsIGNhc28gZGUgcXVlIGxhIGNhZGVuYSBTUUwvdmFsb3Igbm8gc2VhIHZhY2lhXHJcbiAgICBpZiAodmFsb3IgPT0gbnVsbCB8fCB2YWxvci50cmltKCkubGVuZ3RoID09IDAgfHwgdmFsb3IgPT0gJy0tJylcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYgKHZhbGlkYXJTZW50ZW5jaWEpIHtcclxuICAgICAgaWYgKHNlbGVjdCkge1xyXG4gICAgICAgIGlmICghdmFsb3IudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKCdTRUxFQ1QnKSkge1xyXG4gICAgICAgICAgcmV0dXJuICdFbCB0ZXh0byBkZWJlIGluaWNpYXIgY29uIGxhIHBhbGFicmEgU2VsZWN0JztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbG9yLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ1NFTEVDVCcpKSB7XHJcbiAgICAgICAgICByZXR1cm4gJ05vIHB1ZWRlIGNvbnRlbmVyIGxhIHBhbGFicmEgU2VsZWN0JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciBpbmRpY2U6IG51bWJlcjtcclxuICAgIHZhciBtZW5zYWplOiBzdHJpbmc7XHJcbiAgICB0aGlzLlJFU0VSVkFEQVNfU1FMX05PUFVFREVDT05URU5FUi5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAodmFsb3IuaW5jbHVkZXMoaXRlbSkpIHtcclxuICAgICAgICBtZW5zYWplID0gJ05vIHB1ZWRlIGNvbnRlbmVyICcgKyBpdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5yZXNlcnZhZGFzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICh2YWxvci50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKGl0ZW0udG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICBpbmRpY2UgPSAodmFsb3IudG9VcHBlckNhc2UoKS5pbmRleE9mKGl0ZW0udG9VcHBlckNhc2UoKSkpO1xyXG4gICAgICAgIGlmIChpbmRpY2UgPT0gMCB8fCAodGhpcy52YWxpZGFyRXNwYWNpbyh2YWxvci5jaGFyQXQoaW5kaWNlIC0gMSkpICYmIHRoaXMudmFsaWRhckVzcGFjaW8odmFsb3IuY2hhckF0KGl0ZW0ubGVuZ3RoICsgaW5kaWNlKSkpKSB7XHJcbiAgICAgICAgICBtZW5zYWplID0gJ05vIHB1ZWRlIGNvbnRlbmVyICcgKyBpdGVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBtZW5zYWplO1xyXG4gIH1cclxuXHJcbiAgc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGFyVGV4dG9BcmNoaXZvSmFzcGVyKHRleHRvOiBzdHJpbmcpOiAoc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgaWYgKHRleHRvLnRyaW0oKSA9PSAnJyB8fCB0ZXh0byA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGVzdGFyIHZhY2lvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGV4dG8ubWF0Y2goXCJeW15cXFxcRF0uKlwiKSkge1xyXG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBudW1lcm9zXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGV4dG8ubWF0Y2goXCJeW15cXFxcU10uKlwiKSkge1xyXG4gICAgICByZXR1cm4gXCJFbCBjYW1wbyBubyBwdWVkZSBpbmljaWFyIGNvbiBjYXJhY3RlcmVzIGVuIGJsYW5jb1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0ZXh0by5tYXRjaChcIl5bXlxcXFxXXS4qXCIpKSB7XHJcbiAgICAgIHJldHVybiBcIkVsIGNhbXBvIG5vIHB1ZWRlIGluaWNpYXIgY29uIGNhcmFjdGVyZXMgZXNwZWNpYWxlc1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZXNpemVXaW5kb3dJRnJhbWUoKSB7XHJcblx0XHRpZiAoIHdpbmRvdy5mcmFtZUVsZW1lbnQgIT0gbnVsbCkge1xyXG5cdFx0XHR0aGlzLnJlc2l6ZUlmcmFtZUtlZXBQb3NpdGlvbih3aW5kb3cuZnJhbWVFbGVtZW50KTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LyoqXHJcblx0ICogRnVuY2lvbiBwYXJhIG1hbnRlbmVyIGxhIHBvc2ljacOzbiBhY3R1YWwgZW4gZWwgaWZyYW1lLlxyXG5cdCAqIEBwYXJhbSBvYmogZXMgdW4gXCJGcmFtZUVsZW1lbnRcIlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVzaXplSWZyYW1lS2VlcFBvc2l0aW9uKG9iaikge1xyXG5cdFx0XHJcblx0XHR2YXIgaWZybSA9IG9iajtcclxuXHRcdHZhciBkb2MgPSBpZnJtLmNvbnRlbnREb2N1bWVudCA/IGlmcm0uY29udGVudERvY3VtZW50OiBpZnJtLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XHJcbiAgICB2YXIgdGFtYW5pbzogbnVtYmVyPSAgdGhpcy5nZXREb2NIZWlnaHQoIGRvYyApICArIDQwXHJcblx0XHRpZnJtLnN0eWxlLmhlaWdodCA9IHRhbWFuaW8gKyBcInB4XCI7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldERvY0hlaWdodChkb2Mpe1xyXG5cdFxyXG5cdFx0bGV0IG5hdmVnYWRvciA9IHRoaXMub2J0ZW5lck5hdmVnYWRvcigpLnRvTG93ZXJDYXNlKCk7XHJcblx0XHR2YXIgaGVpZ2h0ID0gMDtcclxuXHRcdGRvYyA9IGRvYyB8fCBkb2N1bWVudDtcclxuXHRcdHZhciBib2R5ID0gZG9jLmJvZHksIGh0bWwgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xyXG5cdFx0aGVpZ2h0ID0gTWF0aC5tYXgoIGJvZHkuc2Nyb2xsSGVpZ2h0LCBib2R5Lm9mZnNldEhlaWdodCwgXHJcblx0XHRodG1sLmNsaWVudEhlaWdodCwgaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwub2Zmc2V0SGVpZ2h0ICk7XHJcblx0XHRcclxuXHRcdGlmIChuYXZlZ2Fkb3IuaW5kZXhPZignZmlyZWZveCcpICE9PSAtMSl7XHJcblx0XHRcdGlmKGRvYy5mb3JtRGV0YWxsZUNvbnZvY2F0b3JpYSl7XHJcblx0XHRcdFx0bGV0IGNhbnRpZGFkTWlsZXMgPSBoZWlnaHQgLyAxMDAwO1xyXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCArIDYwMCArIChjYW50aWRhZE1pbGVzKjQwKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHQvL1x0Y29uc29sZS53YXJuKCdGQ08gOiBsbGFtYSBhIGdldERvY0hlaWdodCcpO1xyXG5cdFxyXG5cdFx0cmV0dXJuIGhlaWdodDtcclxuXHR9XHJcblxyXG5cdG9idGVuZXJOYXZlZ2Fkb3IoKXtcclxuXHRcdHZhciB1YT0gbmF2aWdhdG9yLnVzZXJBZ2VudCwgdGVtLCBcclxuXHRcdE09IHVhLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XHJcblx0XHRpZigvdHJpZGVudC9pLnRlc3QoTVsxXSkpe1xyXG5cdFx0XHR0ZW09ICAvXFxicnZbIDpdKyhcXGQrKS9nLmV4ZWModWEpIHx8IFtdO1xyXG5cdFx0XHRyZXR1cm4gJ0lFICcrKHRlbVsxXSB8fCAnJyk7XHJcblx0XHR9XHJcblx0XHRpZihNWzFdPT09ICdDaHJvbWUnKXtcclxuXHRcdFx0dGVtPSB1YS5tYXRjaCgvXFxiKE9QUnxFZGdlKVxcLyhcXGQrKS8pO1xyXG5cdFx0XHRpZih0ZW0hPSBudWxsKSByZXR1cm4gdGVtLnNsaWNlKDEpLmpvaW4oJyAnKS5yZXBsYWNlKCdPUFInLCAnT3BlcmEnKTtcclxuXHRcdH1cclxuXHRcdE09IE1bMl0/IFtNWzFdLCBNWzJdXTogW25hdmlnYXRvci5hcHBOYW1lLCBuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgJy0/J107XHJcblx0XHRpZigodGVtPSB1YS5tYXRjaCgvdmVyc2lvblxcLyhcXGQrKS9pKSkhPSBudWxsKSBNLnNwbGljZSgxLCAxLCB0ZW1bMV0pO1xyXG5cdFx0cmV0dXJuIE0uam9pbignICcpO1xyXG5cdH1cclxuXHJcbiAgb2J0ZW5lclVybEFwaSh1cmxhcGk/OiBzdHJpbmcgKTogc3RyaW5nIHtcclxuICAgIGlmICh1cmxhcGkpe1xyXG4gICAgICByZXR1cm4gdXJsYXBpO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLmdldFRva2VuS2V5KCdhcGxpY2FjaW9uJykpIHtcclxuICAgICAgY2FzZSAnMSc6XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xyXG4gICAgICBjYXNlICcxMyc6XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaW1hbmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xyXG4gICAgICBjYXNlICcxMCc6XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA/IHdpbmRvd1snZW52J11bJ3VybGFwaXNhcmEnXSA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xyXG4gICAgICAgIC8vcmV0dXJuIHdpbmRvd1snZW52J11bJ3VybGFwaSddID8gd2luZG93WydlbnYnXVsndXJsYXBpJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgICAgY2FzZSAnNzcnOlxyXG4gICAgICAgIHJldHVybiB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gPyB3aW5kb3dbJ2VudiddWyd1cmxhcGltYW5hYXBzJ10gOiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCd1cmxudWNsZW8nKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gIHRoaXMuY29va2llU2VydmljZS5nZXQoJ3VybG51Y2xlbycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUb2tlbktleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGVjb2RlVG9rZW4oKTtcclxuICAgICAgcmV0dXJuIGRhdGFba2V5XS50b1N0cmluZygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RlY29kZVRva2VuKCk6IGFueSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0SXRlbSgndG9rZW4nLCAnJyk7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhdG9iKGRhdGEpKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbShrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm9idGVuZXJCYXNlKCkgKyAnXycgKyAga2V5KSA/PyBkZWZhdWx0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBjYW1iaWFyVGVtYSh0ZW1hIDogKCd0ZW1hQ2xhcm8nIHwgJ3RlbWFPc2N1cm8nKSl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9idGVuZXJCYXNlKCkgKyAnXycgKyd0ZW1hJywgdGVtYSk7XHJcbiAgICBsZXQgbGlua1RlbWEgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1hQXBwJykgYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgbGlua1RlbWEuaHJlZiA9IGAke3RlbWF9LmNzc2BcclxuICB9XHJcblxyXG4gIGNhbGN1bGFyUG9zaWNpb25EaWFsb2coKSB7XHJcbiAgICB2YXIgcGFyZW50V2luZG93OiBXaW5kb3cgPSB3aW5kb3cucGFyZW50O1xyXG4gICAgdmFyIG9iajogYW55ID0gd2luZG93LmZyYW1lRWxlbWVudCA7XHJcbiAgICB2YXIgaWZybSA9IG9iajtcclxuICAgIGlmIChpZnJtKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHBhcmVudFdpbmRvdy5wYWdlWU9mZnNldCB8fCBwYXJlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBwYXJlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcclxuICAgICAgY29uc3QgZGlhbG9nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmIChkaWFsb2cpIHtcclxuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBwYXJlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodFxyXG4gICAgICAgIGNvbnN0IG1pdGFkU2Nyb2xsSGVpZ2h0ID0gc2Nyb2xsSGVpZ2h0IC8gMjtcclxuICAgICAgICBjb25zdCBpbmljaW8gPSAtbWl0YWRTY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgZGlhbG9nLnN0eWxlLnRvcCA9IGAke2luaWNpbyArIDEwMCArIChzY3JvbGxUb3AgKSB9cHhgOyAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -37,7 +37,12 @@ export class AppBreadcrumbComponent {
37
37
  this.items = items;
38
38
  this.cd.detectChanges(); // Marcando para detección de cambios
39
39
  }));
40
- this.home = { icon: 'pi pi-home', routerLink: '/' + this.utilsService.obtenerBase() + '/inicio' };
40
+ if (window.location.href.toString().includes('admonPortal')) {
41
+ this.home = { icon: 'pi pi-home', routerLink: '/' + this.utilsService.obtenerBase() + '/admonPortal/inicio' };
42
+ }
43
+ else {
44
+ this.home = { icon: 'pi pi-home', routerLink: '/' + this.utilsService.obtenerBase() + '/inicio' };
45
+ }
41
46
  }
42
47
  ngOnDestroy() {
43
48
  this.subscription.unsubscribe();
@@ -63,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
63
68
  type: Component,
64
69
  args: [{ selector: 'app-breadcrumb', imports: [BreadcrumbModule], standalone: true, template: "<div class=\"layout-breadcrumb-container\">\r\n <nav class=\"layout-breadcrumb\">\r\n <ol>\r\n <!-- <li><i class=\"pi pi-home\"></i></li>\r\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\r\n <li><i class=\"pi pi-angle-right\"></i></li>\r\n <li><span>{{item.label}}</span></li>\r\n </ng-template> -->\r\n <p-breadcrumb [model]=\"items\" [home]=\"home\" styleClass=\"layout-breadcrumb pl-4 py-2\"></p-breadcrumb>\r\n <div class=\"layout-breadcrumb-buttons flex align-items-center pr-3\">\r\n <!-- <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain mr-1\"></button> -->\r\n </div>\r\n </ol>\r\n </nav>\r\n <!-- <div class=\"layout-breadcrumb-buttons\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-cloud-upload\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-bookmark\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n </div> -->\r\n</div>\r\n" }]
65
70
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.MenuService }, { type: i3.UtilsService }, { type: i0.ChangeDetectorRef }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUEwQixhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQWF0RCxNQUFNLE9BQU8sc0JBQXNCO0lBU3ZCO0lBQ0E7SUFDQTtJQUNBO0lBWEYsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUMsS0FBSyxHQUFlLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQVc7SUFFRSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUQsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFMUQsWUFDVSxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsRUFBcUIsQ0FBQywrQkFBK0I7O1FBSHJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ25ELE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztRQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3BHLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQTZCLEVBQUUsU0FBbUIsRUFBRSxXQUF5QjtRQUNqRyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFcEcsSUFBSSxVQUFVLElBQUksVUFBVSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDbEQsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQy9CLEdBQUcsRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDOUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7dUdBcERVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDBFQ3BCbkMsZ3lDQW9CQSwyQ0RKYyxnQkFBZ0I7OzJGQUlqQixzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksZ0JBQWdCLFdBQ2pCLENBQUMsZ0JBQWdCLENBQUMsY0FDZixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2lvcy9tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnJlYWRjcnVtYic7XHJcblxyXG5pbnRlcmZhY2UgQnJlYWRjcnVtYiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdXJsPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLWJyZWFkY3J1bWInLFxyXG4gICAgaW1wb3J0czogW0JyZWFkY3J1bWJNb2R1bGVdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAuYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuICBob21lOiBNZW51SXRlbTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iW10+KFtdKTtcclxuICByZWFkb25seSBicmVhZGNydW1icyQgPSB0aGlzLl9icmVhZGNydW1icyQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmIC8vIEltcG9ydGFuZG8gQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCByb290ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdDtcclxuICAgICAgY29uc3QgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSA9IFtdO1xyXG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm9vdCwgW10sIGJyZWFkY3J1bWJzKTtcclxuICAgICAgdGhpcy5fYnJlYWRjcnVtYnMkLm5leHQoYnJlYWRjcnVtYnMpO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTsgLy8gTWFyY2FuZG8gcGFyYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3NcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UuYnJlYWRjcnVtYi5zdWJzY3JpYmUoaXRlbXMgPT4ge1xyXG4gICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTsgLy8gTWFyY2FuZG8gcGFyYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3NcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmhvbWUgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nICsgdGhpcy51dGlsc1NlcnZpY2Uub2J0ZW5lckJhc2UoKSArICcvaW5pY2lvJyB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRCcmVhZGNydW1iKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBwYXJlbnRVcmw6IHN0cmluZ1tdLCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdKSB7XHJcbiAgICBjb25zdCByb3V0ZVVybCA9IHBhcmVudFVybC5jb25jYXQocm91dGUudXJsLm1hcCh1cmwgPT4gdXJsLnBhdGgpKTtcclxuICAgIGNvbnN0IGJyZWFkY3J1bWIgPSByb3V0ZS5kYXRhWydicmVhZGNydW1iJ107XHJcbiAgICBjb25zdCBwYXJlbnRCcmVhZGNydW1iID0gcm91dGUucGFyZW50ICYmIHJvdXRlLnBhcmVudC5kYXRhID8gcm91dGUucGFyZW50LmRhdGFbJ2JyZWFkY3J1bWInXSA6IG51bGw7XHJcblxyXG4gICAgaWYgKGJyZWFkY3J1bWIgJiYgYnJlYWRjcnVtYiAhPT0gcGFyZW50QnJlYWRjcnVtYikge1xyXG4gICAgICBicmVhZGNydW1icy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddLFxyXG4gICAgICAgIHVybDogJy8nICsgcm91dGVVcmwuam9pbignLycpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocm91dGUuZmlyc3RDaGlsZCkge1xyXG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgcm91dGVVcmwsIGJyZWFkY3J1bWJzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1icmVhZGNydW1iLWNvbnRhaW5lclwiPlxyXG4gIDxuYXYgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYlwiPlxyXG4gICAgICA8b2w+XHJcbiAgICAgICAgICA8IS0tIDxsaT48aSBjbGFzcz1cInBpIHBpLWhvbWVcIj48L2k+PC9saT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBsZXQtbGFzdD1cImxhc3RcIiBbbmdGb3JPZl09XCJicmVhZGNydW1icyQgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgIDxsaT48aSBjbGFzcz1cInBpIHBpLWFuZ2xlLXJpZ2h0XCI+PC9pPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxzcGFuPnt7aXRlbS5sYWJlbH19PC9zcGFuPjwvbGk+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgICAgIDxwLWJyZWFkY3J1bWIgW21vZGVsXT1cIml0ZW1zXCIgW2hvbWVdPVwiaG9tZVwiIHN0eWxlQ2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYiBwbC00IHB5LTJcIj48L3AtYnJlYWRjcnVtYj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYi1idXR0b25zIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIHByLTNcIj5cclxuICAgICAgICAgICAgPCEtLSA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXBvd2VyLW9mZlwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXBsYWluIG1yLTFcIj48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9vbD5cclxuICA8L25hdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYi1idXR0b25zXCI+XHJcbiAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY2xvdWQtdXBsb2FkXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tcGxhaW5cIj48L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1ib29rbWFya1wiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXBsYWluXCI+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktcG93ZXItb2ZmXCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tcGxhaW5cIj48L2J1dHRvbj5cclxuICA8L2Rpdj4gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUEwQixhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQWF0RCxNQUFNLE9BQU8sc0JBQXNCO0lBU3ZCO0lBQ0E7SUFDQTtJQUNBO0lBWEYsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUMsS0FBSyxHQUFlLEVBQUUsQ0FBQztJQUN2QixJQUFJLENBQVc7SUFFRSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUQsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFMUQsWUFDVSxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsRUFBcUIsQ0FBQywrQkFBK0I7O1FBSHJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUss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QkFBZ0IsV0FDakIsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUNmLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljaW9zL21lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljaW9zL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9icmVhZGNydW1iJztcclxuXHJcbmludGVyZmFjZSBCcmVhZGNydW1iIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICB1cmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtYnJlYWRjcnVtYicsXHJcbiAgICBpbXBvcnRzOiBbQnJlYWRjcnVtYk1vZHVsZV0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC5icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBpdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIGhvbWU6IE1lbnVJdGVtO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1icyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJbXT4oW10pO1xyXG4gIHJlYWRvbmx5IGJyZWFkY3J1bWJzJCA9IHRoaXMuX2JyZWFkY3J1bWJzJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgLy8gSW1wb3J0YW5kbyBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290O1xyXG4gICAgICBjb25zdCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XHJcbiAgICAgIHRoaXMuYWRkQnJlYWRjcnVtYihyb290LCBbXSwgYnJlYWRjcnVtYnMpO1xyXG4gICAgICB0aGlzLl9icmVhZGNydW1icyQubmV4dChicmVhZGNydW1icyk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpOyAvLyBNYXJjYW5kbyBwYXJhIGRldGVjY2nDs24gZGUgY2FtYmlvc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5tZW51U2VydmljZS5icmVhZGNydW1iLnN1YnNjcmliZShpdGVtcyA9PiB7XHJcbiAgICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpOyAvLyBNYXJjYW5kbyBwYXJhIGRldGVjY2nDs24gZGUgY2FtYmlvc1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaHJlZi50b1N0cmluZygpLmluY2x1ZGVzKCdhZG1vblBvcnRhbCcpKSB7XHJcbiAgICAgIHRoaXMuaG9tZSA9IHsgaWNvbjogJ3BpIHBpLWhvbWUnLCByb3V0ZXJMaW5rOiAnLycrIHRoaXMudXRpbHNTZXJ2aWNlLm9idGVuZXJCYXNlKCkgKyAnL2FkbW9uUG9ydGFsL2luaWNpbycgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaG9tZSA9IHsgaWNvbjogJ3BpIHBpLWhvbWUnLCByb3V0ZXJMaW5rOiAnLycrIHRoaXMudXRpbHNTZXJ2aWNlLm9idGVuZXJCYXNlKCkgKyAnL2luaWNpbycgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQnJlYWRjcnVtYihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcGFyZW50VXJsOiBzdHJpbmdbXSwgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSkge1xyXG4gICAgY29uc3Qgcm91dGVVcmwgPSBwYXJlbnRVcmwuY29uY2F0KHJvdXRlLnVybC5tYXAodXJsID0+IHVybC5wYXRoKSk7XHJcbiAgICBjb25zdCBicmVhZGNydW1iID0gcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddO1xyXG4gICAgY29uc3QgcGFyZW50QnJlYWRjcnVtYiA9IHJvdXRlLnBhcmVudCAmJiByb3V0ZS5wYXJlbnQuZGF0YSA/IHJvdXRlLnBhcmVudC5kYXRhWydicmVhZGNydW1iJ10gOiBudWxsO1xyXG5cclxuICAgIGlmIChicmVhZGNydW1iICYmIGJyZWFkY3J1bWIgIT09IHBhcmVudEJyZWFkY3J1bWIpIHtcclxuICAgICAgYnJlYWRjcnVtYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IHJvdXRlLmRhdGFbJ2JyZWFkY3J1bWInXSxcclxuICAgICAgICB1cmw6ICcvJyArIHJvdXRlVXJsLmpvaW4oJy8nKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgdGhpcy5hZGRCcmVhZGNydW1iKHJvdXRlLmZpcnN0Q2hpbGQsIHJvdXRlVXJsLCBicmVhZGNydW1icyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtYnJlYWRjcnVtYi1jb250YWluZXJcIj5cclxuICA8bmF2IGNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWJcIj5cclxuICAgICAgPG9sPlxyXG4gICAgICAgICAgPCEtLSA8bGk+PGkgY2xhc3M9XCJwaSBwaS1ob21lXCI+PC9pPjwvbGk+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gbGV0LWxhc3Q9XCJsYXN0XCIgW25nRm9yT2ZdPVwiYnJlYWRjcnVtYnMkIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICA8bGk+PGkgY2xhc3M9XCJwaSBwaS1hbmdsZS1yaWdodFwiPjwvaT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48c3Bhbj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiAgICAgICAgICA8cC1icmVhZGNydW1iIFttb2RlbF09XCJpdGVtc1wiIFtob21lXT1cImhvbWVcIiBzdHlsZUNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWIgcGwtNCBweS0yXCI+PC9wLWJyZWFkY3J1bWI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWItYnV0dG9ucyBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwci0zXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1wb3dlci1vZmZcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbi1wbGFpbiBtci0xXCI+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvb2w+XHJcbiAgPC9uYXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwibGF5b3V0LWJyZWFkY3J1bWItYnV0dG9uc1wiPlxyXG4gICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNsb3VkLXVwbG9hZFwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXBsYWluXCI+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktYm9va21hcmtcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbi1wbGFpblwiPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLXBvd2VyLW9mZlwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXBsYWluXCI+PC9idXR0b24+XHJcbiAgPC9kaXY+IC0tPlxyXG48L2Rpdj5cclxuIl19
@@ -18,13 +18,24 @@ export class AppMenuComponent {
18
18
  this.utilsService = utilsService;
19
19
  }
20
20
  ngOnInit() {
21
- this.model = [{
22
- label: "Inicio",
23
- icon: "pi pi-home",
24
- routerLink: this.utilsService.obtenerBase() + "/Inicio",
25
- visible: true,
26
- items: [],
27
- }];
21
+ if (window.location.href.toString().includes('admonPortal')) {
22
+ this.model = [{
23
+ label: "Inicio",
24
+ icon: "pi pi-home",
25
+ routerLink: this.utilsService.obtenerBase() + "/admonPortal/inicio",
26
+ visible: true,
27
+ items: [],
28
+ }];
29
+ }
30
+ else {
31
+ this.model = [{
32
+ label: "Inicio",
33
+ icon: "pi pi-home",
34
+ routerLink: this.utilsService.obtenerBase() + "/inicio",
35
+ visible: true,
36
+ items: [],
37
+ }];
38
+ }
28
39
  this.subcription = this.menuService.menu.subscribe((menu) => {
29
40
  this.model[0].label = menu.label;
30
41
  this.model[0].items = menu.items;
@@ -37,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
37
48
  type: Component,
38
49
  args: [{ selector: 'app-menu', imports: [CommonModule, AppMenuitemComponent], standalone: true, template: "<ul class=\"layout-menu\">\r\n <ng-container *ngFor=\"let item of model; let i = index;\">\r\n <li app-menuitem *ngIf=\"!item.separator\" [item]=\"item\" [index]=\"i\" [root]=\"true\"></li>\r\n <li *ngIf=\"item.separator\" class=\"menu-separator\"></li>\r\n </ng-container>\r\n</ul>" }]
39
50
  }], ctorParameters: () => [{ type: i1.MenuService }, { type: i2.UtilsService }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLm1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLm1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBUWhFLE1BQU0sT0FBTyxnQkFBZ0I7SUFPUDtJQUFrQztJQU50RCxXQUFXLENBQWU7SUFDMUIsS0FBSyxDQUFZO0lBRWpCOztPQUVHO0lBQ0gsWUFBb0IsV0FBd0IsRUFBVSxZQUEwQjtRQUE1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2hGLENBQUM7SUFFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO2dCQUNaLEtBQUssRUFBRSxRQUFRO2dCQUNmLElBQUksRUFBRSxZQUFZO2dCQUNsQixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTO2dCQUN2RCxPQUFPLEVBQUUsSUFBSTtnQkFDYixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1R0F0QlEsZ0JBQWdCOzJGQUFoQixnQkFBZ0Isb0VDZjdCLGdUQUtLLDJDRE1TLFlBQVksZ1FBQUUsb0JBQW9COzsyRkFJbkMsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLFVBQVUsV0FDWCxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxjQUNqQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNpb3MvbWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwcE1lbnVpdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAubWVudWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtbWVudScsXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcHBNZW51aXRlbUNvbXBvbmVudF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC5tZW51LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc3ViY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBtb2RlbDogTWVudUl0ZW1bXVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLCBwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gW3tcclxuICAgICAgICBsYWJlbDogXCJJbmljaW9cIixcclxuICAgICAgICBpY29uOiBcInBpIHBpLWhvbWVcIixcclxuICAgICAgICByb3V0ZXJMaW5rOiB0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpICsgXCIvSW5pY2lvXCIsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBpdGVtczogW10sXHJcbiAgICAgIH1dO1xyXG4gICAgICAgIHRoaXMuc3ViY3JpcHRpb24gPSB0aGlzLm1lbnVTZXJ2aWNlLm1lbnUuc3Vic2NyaWJlKChtZW51KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsWzBdLmxhYmVsID0gbWVudS5sYWJlbDtcclxuICAgICAgICAgIHRoaXMubW9kZWxbMF0uaXRlbXMgPSBtZW51Lml0ZW1zO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG4iLCI8dWwgY2xhc3M9XCJsYXlvdXQtbWVudVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICA8bGkgYXBwLW1lbnVpdGVtICpuZ0lmPVwiIWl0ZW0uc2VwYXJhdG9yXCIgW2l0ZW1dPVwiaXRlbVwiIFtpbmRleF09XCJpXCIgW3Jvb3RdPVwidHJ1ZVwiPjwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwiaXRlbS5zZXBhcmF0b3JcIiBjbGFzcz1cIm1lbnUtc2VwYXJhdG9yXCI+PC9saT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L3VsPiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLm1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9sYXlvdXQvYXBwLm1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBUWhFLE1BQU0sT0FBTyxnQkFBZ0I7SUFPUDtJQUFrQztJQU50RCxXQUFXLENBQWU7SUFDMUIsS0FBSyxDQUFZO0lBRWpCOztPQUVHO0lBQ0gsWUFBb0IsV0FBd0IsRUFBVSxZQUEwQjtRQUE1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2hGLENBQUM7SUFFQyxRQUFRO1FBQ04sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7b0JBQ1osS0FBSyxFQUFFLFFBQVE7b0JBQ2YsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLHFCQUFxQjtvQkFDbkUsT0FBTyxFQUFFLElBQUk7b0JBQ2IsS0FBSyxFQUFFLEVBQUU7aUJBQ1YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7b0JBQ1osS0FBSyxFQUFFLFFBQVE7b0JBQ2YsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVM7b0JBQ3ZELE9BQU8sRUFBRSxJQUFJO29CQUNiLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7dUdBakNRLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLG9FQ2Y3QixnVEFLSywyQ0RNUyxZQUFZLGdRQUFFLG9CQUFvQjs7MkZBSW5DLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDSSxVQUFVLFdBQ1gsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsY0FDakMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljaW9zL21lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljaW9zL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBcHBNZW51aXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYXBwLm1lbnVpdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLW1lbnUnLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXBwTWVudWl0ZW1Db21wb25lbnRdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAubWVudS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHN1YmNyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgbW9kZWw6IE1lbnVJdGVtW11cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSwgcHJpdmF0ZSB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2FkbW9uUG9ydGFsJykpIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gW3tcclxuICAgICAgICAgIGxhYmVsOiBcIkluaWNpb1wiLFxyXG4gICAgICAgICAgaWNvbjogXCJwaSBwaS1ob21lXCIsXHJcbiAgICAgICAgICByb3V0ZXJMaW5rOiB0aGlzLnV0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpICsgXCIvYWRtb25Qb3J0YWwvaW5pY2lvXCIsXHJcbiAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgaXRlbXM6IFtdLFxyXG4gICAgICAgIH1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSBbe1xyXG4gICAgICAgICAgbGFiZWw6IFwiSW5pY2lvXCIsXHJcbiAgICAgICAgICBpY29uOiBcInBpIHBpLWhvbWVcIixcclxuICAgICAgICAgIHJvdXRlckxpbms6IHRoaXMudXRpbHNTZXJ2aWNlLm9idGVuZXJCYXNlKCkgKyBcIi9pbmljaW9cIixcclxuICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICBpdGVtczogW10sXHJcbiAgICAgICAgfV07XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgICAgdGhpcy5zdWJjcmlwdGlvbiA9IHRoaXMubWVudVNlcnZpY2UubWVudS5zdWJzY3JpYmUoKG1lbnUpID0+IHtcclxuICAgICAgICAgIHRoaXMubW9kZWxbMF0ubGFiZWwgPSBtZW51LmxhYmVsO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFswXS5pdGVtcyA9IG1lbnUuaXRlbXM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjx1bCBjbGFzcz1cImxheW91dC1tZW51XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsOyBsZXQgaSA9IGluZGV4O1wiPlxyXG4gICAgICAgIDxsaSBhcHAtbWVudWl0ZW0gKm5nSWY9XCIhaXRlbS5zZXBhcmF0b3JcIiBbaXRlbV09XCJpdGVtXCIgW2luZGV4XT1cImlcIiBbcm9vdF09XCJ0cnVlXCI+PC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJpdGVtLnNlcGFyYXRvclwiIGNsYXNzPVwibWVudS1zZXBhcmF0b3JcIj48L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvdWw+Il19
@@ -27,6 +27,7 @@ export class AppMenuitemComponent {
27
27
  menuSourceSubscription;
28
28
  menuResetSubscription;
29
29
  key = "";
30
+ url = window.location.href;
30
31
  constructor(layoutService, cd, router, menuService, utilsService) {
31
32
  this.layoutService = layoutService;
32
33
  this.cd = cd;
@@ -187,7 +188,7 @@ export class AppMenuitemComponent {
187
188
  <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>
188
189
  </a>
189
190
  <a *ngIf="(item.routerLink && !item.items) && item.visible !== false" (click)="itemClick($event)" (mouseenter)="onMouseEnter()" [ngClass]="item.class"
190
- [routerLink]="'/'+utilsService.obtenerBase()+item.routerLink" routerLinkActive="active-route" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
191
+ [routerLink]="'/'+utilsService.obtenerBase()+ (url.toString().includes('admonPortal') ? '/admonPortal' : '') +item.routerLink" routerLinkActive="active-route" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
191
192
  [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment"
192
193
  [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" [queryParams]="item.queryParams"
193
194
  [attr.target]="item.target" tabindex="0" pRipple [pTooltip]="item.label" [tooltipDisabled]="!(isSlim && root)">
@@ -240,7 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
240
241
  <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>
241
242
  </a>
242
243
  <a *ngIf="(item.routerLink && !item.items) && item.visible !== false" (click)="itemClick($event)" (mouseenter)="onMouseEnter()" [ngClass]="item.class"
243
- [routerLink]="'/'+utilsService.obtenerBase()+item.routerLink" routerLinkActive="active-route" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
244
+ [routerLink]="'/'+utilsService.obtenerBase()+ (url.toString().includes('admonPortal') ? '/admonPortal' : '') +item.routerLink" routerLinkActive="active-route" [routerLinkActiveOptions]="item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
244
245
  [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment"
245
246
  [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" [queryParams]="item.queryParams"
246
247
  [attr.target]="item.target" tabindex="0" pRipple [pTooltip]="item.label" [tooltipDisabled]="!(isSlim && root)">
@@ -292,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
292
293
  type: HostBinding,
293
294
  args: ['class.active-menuitem']
294
295
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1lbnVpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbGF5b3V0L2FwcC5tZW51aXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBRSxhQUFhLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFzRGhELE1BQU0sT0FBTyxvQkFBb0I7SUFvQlY7SUFBc0M7SUFBOEI7SUFBd0I7SUFBaUM7SUFsQnZJLElBQUksQ0FBTTtJQUVWLEtBQUssQ0FBVTtJQUU0QixJQUFJLENBQVc7SUFFMUQsU0FBUyxDQUFVO0lBRU4sT0FBTyxDQUFjO0lBRTNDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixzQkFBc0IsQ0FBZTtJQUVyQyxxQkFBcUIsQ0FBZTtJQUVwQyxHQUFHLEdBQVcsRUFBRSxDQUFDO0lBRWpCLFlBQW1CLGFBQTRCLEVBQVUsRUFBcUIsRUFBUyxNQUFjLEVBQVUsV0FBd0IsRUFBUyxZQUEwQjtRQUF2SixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FB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LEVBQUUsS0FBSyxDQUFDO2dDQUNsQixPQUFPLEVBQUUsTUFBTTs2QkFDbEIsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDO2dDQUNuQixPQUFPLEVBQUUsT0FBTzs2QkFDbkIsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQzt5QkFDeEYsQ0FBQztxQkFDTDtpQkFDSjs0TEFHWSxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUU4QyxJQUFJO3NCQUF2RCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDRCQUE0QjtnQkFFekMsU0FBUztzQkFBakIsS0FBSztnQkFFZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQWtLaEIsV0FBVztzQkFEZCxXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkV2ZW50LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuL2FwcC5tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7RG9tSGFuZGxlcn0gZnJvbSAncHJpbWVuZy9kb20nO1xyXG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ1thcHAtbWVudWl0ZW1dJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGVdLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuXHRcdDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb290ICYmIGl0ZW0udmlzaWJsZSAhPT0gZmFsc2VcIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1yb290LXRleHRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0tcm9vdC1pY29uIHBpIHBpLWZ3IHBpLWVsbGlwc2lzLWhcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cdFx0XHQ8YSAqbmdJZj1cIighaXRlbS5yb3V0ZXJMaW5rIHx8IGl0ZW0uaXRlbXMpICYmIGl0ZW0udmlzaWJsZSAhPT0gZmFsc2VcIiBbYXR0ci5ocmVmXT1cIml0ZW0udXJsXCIgKGNsaWNrKT1cIml0ZW1DbGljaygkZXZlbnQpXCIgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcclxuXHRcdFx0ICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldFwiIHRhYmluZGV4PVwiMFwiIHBSaXBwbGUgW3BUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbdG9vbHRpcERpc2FibGVkXT1cIiEoaXNTbGltICYmIHJvb3QgJiYgIWFjdGl2ZSlcIj5cclxuXHRcdFx0XHQ8aSBbbmdDbGFzc109XCJpdGVtLmljb25cIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1pY29uXCI+PC9pPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXRleHRcIj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWFuZ2xlLWRvd24gbGF5b3V0LXN1Ym1lbnUtdG9nZ2xlclwiICpuZ0lmPVwiaXRlbS5pdGVtc1wiPjwvaT5cclxuXHRcdFx0PC9hPlxyXG5cdFx0XHQ8YSAqbmdJZj1cIihpdGVtLnJvdXRlckxpbmsgJiYgIWl0ZW0uaXRlbXMpICYmIGl0ZW0udmlzaWJsZSAhPT0gZmFsc2VcIiAoY2xpY2spPVwiaXRlbUNsaWNrKCRldmVudClcIiAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIlxyXG5cdFx0XHQgICBbcm91dGVyTGlua109XCInLycrdXRpbHNTZXJ2aWNlLm9idGVuZXJCYXNlKCkraXRlbS5yb3V0ZXJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1yb3V0ZVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJpdGVtLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zfHx7IHBhdGhzOiAnZXhhY3QnLCBxdWVyeVBhcmFtczogJ2lnbm9yZWQnLCBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJywgZnJhZ21lbnQ6ICdpZ25vcmVkJyB9XCJcclxuICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIiBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJpdGVtLnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIiBbcHJlc2VydmVGcmFnbWVudF09XCJpdGVtLnByZXNlcnZlRnJhZ21lbnRcIlxyXG4gICAgICAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIml0ZW0uc2tpcExvY2F0aW9uQ2hhbmdlXCIgW3JlcGxhY2VVcmxdPVwiaXRlbS5yZXBsYWNlVXJsXCIgW3N0YXRlXT1cIml0ZW0uc3RhdGVcIiBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldFwiIHRhYmluZGV4PVwiMFwiIHBSaXBwbGUgW3BUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbdG9vbHRpcERpc2FibGVkXT1cIiEoaXNTbGltICYmIHJvb3QpXCI+XHJcblx0XHRcdFx0PGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3tpdGVtLmxhYmVsfX08L3NwYW4+XHJcblx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIiAqbmdJZj1cIml0ZW0uaXRlbXNcIj48L2k+XHJcblx0XHRcdDwvYT5cclxuXHJcblx0XHRcdDx1bCAjc3VibWVudSAqbmdJZj1cIml0ZW0uaXRlbXMgJiYgaXRlbS52aXNpYmxlICE9PSBmYWxzZVwiIFtAY2hpbGRyZW5dPVwic3VibWVudUFuaW1hdGlvblwiIChAY2hpbGRyZW4uZG9uZSk9XCJvblN1Ym1lbnVBbmltYXRlZCgkZXZlbnQpXCI+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaGlsZCBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwiaXRlbS5pdGVtc1wiPlxyXG5cdFx0XHRcdFx0PGxpIGFwcC1tZW51aXRlbSBbaXRlbV09XCJjaGlsZFwiIFtpbmRleF09XCJpXCIgW3BhcmVudEtleV09XCJrZXlcIiBbY2xhc3NdPVwiY2hpbGQuYmFkZ2VDbGFzc1wiPjwvbGk+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC91bD5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG4gICAgYCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdjaGlsZHJlbicsIFtcclxuICAgICAgICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzAnXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnKidcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZSgnaGlkZGVuJywgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkIDw9PiBleHBhbmRlZCcsIGFuaW1hdGUoJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKScpKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBNZW51aXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoKSBpdGVtOiBhbnk7XHJcblxyXG4gICAgQElucHV0KCkgaW5kZXghOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYXlvdXQtcm9vdC1tZW51aXRlbScpIHJvb3QhOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhcmVudEtleSE6IHN0cmluZztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzdWJtZW51Jykgc3VibWVudSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgbWVudVNvdXJjZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIG1lbnVSZXNldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGtleTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMubWVudVNvdXJjZVN1YnNjcmlwdGlvbiA9IHRoaXMubWVudVNlcnZpY2UubWVudVNvdXJjZSQuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnJvdXRlRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICh2YWx1ZS5rZXkgPT09IHRoaXMua2V5IHx8IHZhbHVlLmtleS5zdGFydHNXaXRoKHRoaXMua2V5ICsgJy0nKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUua2V5ICE9PSB0aGlzLmtleSAmJiAhdmFsdWUua2V5LnN0YXJ0c1dpdGgodGhpcy5rZXkgKyAnLScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5tZW51UmVzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0U291cmNlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTbGltUGx1cyB8fCB0aGlzLmlzU2xpbSB8fCB0aGlzLmlzSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtLnJvdXRlckxpbmspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVTdGF0ZUZyb21Sb3V0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5rZXkgPSB0aGlzLnBhcmVudEtleSA/IHRoaXMucGFyZW50S2V5ICsgJy0nICsgdGhpcy5pbmRleCA6IFN0cmluZyh0aGlzLmluZGV4KTtcclxuXHJcbiAgICAgICAgaWYgKCEodGhpcy5pc1NsaW1QbHVzIHx8IHRoaXMuaXNTbGltIHx8IHRoaXMuaXNIb3Jpem9udGFsKSAmJiB0aGlzLml0ZW0ucm91dGVyTGluaykge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0YXRlRnJvbVJvdXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5yb290ICYmIHRoaXMuYWN0aXZlICYmIHRoaXMubGF5b3V0U2VydmljZS5pc0Rlc2t0b3AoKSAmJiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKXx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24odGhpcy5zdWJtZW51Py5uYXRpdmVFbGVtZW50LCB0aGlzLnN1Ym1lbnU/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUFjdGl2ZVN0YXRlRnJvbVJvdXRlKCkge1xyXG4gICAgICAgIGxldCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVyLmlzQWN0aXZlKHRoaXMuaXRlbS5yb3V0ZXJMaW5rWzBdLCB7IHBhdGhzOiAnZXhhY3QnLCBxdWVyeVBhcmFtczogJ2lnbm9yZWQnLCBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJywgZnJhZ21lbnQ6ICdpZ25vcmVkJyB9KTtcclxuXHJcbiAgICAgICAgaWYgKGFjdGl2ZVJvdXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2Uub25NZW51U3RhdGVDaGFuZ2Uoe2tleTogdGhpcy5rZXksIHJvdXRlRXZlbnQ6IHRydWV9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWJtZW51QW5pbWF0ZWQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJyAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkgJiYgKHRoaXMubGF5b3V0U2VydmljZS5pc0hvcml6b250YWwoKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCl8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSkge1xyXG4gICAgICAgICAgICBjb25zdCBlbCA9IDxIVE1MVUxpc3RFbGVtZW50PiBldmVudC5lbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBlbFBhcmVudCA9IDxIVE1MVUxpc3RFbGVtZW50PiBlbC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKGVsLCBlbFBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZVBvc2l0aW9uKG92ZXJsYXk6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKG92ZXJsYXkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBsZWZ0LCB0b3AgfSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3QgW3ZXaWR0aCwgdkhlaWdodF0gPSBbd2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodF07XHJcbiAgICAgICAgICAgIGNvbnN0IFtvV2lkdGgsIG9IZWlnaHRdID0gW292ZXJsYXkub2Zmc2V0V2lkdGgsIG92ZXJsYXkub2Zmc2V0SGVpZ2h0XTtcclxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBEb21IYW5kbGVyLmNhbGN1bGF0ZVNjcm9sbGJhcldpZHRoKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvcGJhckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxheW91dC10b3BiYXInKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgY29uc3QgdG9wYmFySGVpZ2h0ID0gdG9wYmFyRWw/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgICAgICAvLyByZXNldFxyXG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9ICcnO1xyXG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLmxlZnQgPSAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gbGVmdCArIG9XaWR0aCArIHNjcm9sbGJhcldpZHRoO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gdldpZHRoIDwgd2lkdGggPyBgJHtsZWZ0IC0gKHdpZHRoIC0gdldpZHRoKX1weGAgOiBgJHtsZWZ0fXB4YDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICggdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvcE9mZnNldCA9IHRvcCAtIHRvcGJhckhlaWdodDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRvcE9mZnNldCArIG9IZWlnaHQgKyB0b3BiYXJIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9IHZIZWlnaHQgPCBoZWlnaHQgPyBgJHt0b3BPZmZzZXQgLSAoaGVpZ2h0IC0gdkhlaWdodCl9cHhgIDogYCR7dG9wT2Zmc2V0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpdGVtQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgLy8gYXZvaWQgcHJvY2Vzc2luZyBkaXNhYmxlZCBpdGVtc1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbmF2aWdhdGUgd2l0aCBob3ZlclxyXG4gICAgICAgIGlmICh0aGlzLnJvb3QgJiYgdGhpcy5pc1NsaW0gfHwgdGhpcy5pc0hvcml6b250YWwgfHwgdGhpcy5pc1NsaW1QbHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSAhdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGV4ZWN1dGUgY29tbWFuZFxyXG4gICAgICAgIGlmICh0aGlzLml0ZW0uY29tbWFuZCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW0uY29tbWFuZCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBpdGVtOiB0aGlzLml0ZW0gfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0b2dnbGUgYWN0aXZlIHN0YXRlXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5pdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICF0aGlzLmFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QgJiYgdGhpcy5hY3RpdmUgJiYgKHRoaXMuaXNTbGltIHx8IHRoaXMuaXNIb3Jpem9udGFsIHx8IHRoaXMuaXNTbGltUGx1cykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vbk92ZXJsYXlTdWJtZW51T3BlbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2xpbSB8fCB0aGlzLmlzSG9yaXpvbnRhbCB8fCB0aGlzLmlzU2xpbVBsdXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5vbk1lbnVTdGF0ZUNoYW5nZSh7a2V5OiB0aGlzLmtleX0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgICAvLyBhY3RpdmF0ZSBpdGVtIG9uIGhvdmVyXHJcbiAgICAgICAgaWYgKHRoaXMucm9vdCAmJiAodGhpcy5pc1NsaW0gfHwgdGhpcy5pc0hvcml6b250YWwgfHwgdGhpcy5pc1NsaW1QbHVzKSAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2Uub25NZW51U3RhdGVDaGFuZ2Uoe2tleTogdGhpcy5rZXl9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3VibWVudUFuaW1hdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vdCA/ICdleHBhbmRlZCcgOiAodGhpcy5hY3RpdmUgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0hvcml6b250YWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5pc0hvcml6b250YWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNTbGltKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCk7XHJcbiAgICB9XHJcbiAgICBnZXQgaXNTbGltUGx1cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZS1tZW51aXRlbScpXHJcbiAgICBnZXQgYWN0aXZlQ2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlICYmICF0aGlzLnJvb3Q7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWVudVNvdXJjZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVTb3VyY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVSZXNldFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVSZXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1lbnVpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbGF5b3V0L2FwcC5tZW51aXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBRSxhQUFhLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFzRGhELE1BQU0sT0FBTyxvQkFBb0I7SUFzQlY7SUFBc0M7SUFBOEI7SUFBd0I7SUFBaUM7SUFwQnZJLElBQUksQ0FBTTtJQUVWLEtBQUssQ0FBVTtJQUU0QixJQUFJLENBQVc7SUFFMUQsU0FBUyxDQUFVO0lBRU4sT0FBTyxDQUFjO0lBRTNDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixzQkFBc0IsQ0FBZTtJQUVyQyxxQkFBcUIsQ0FBZTtJQUVwQyxHQUFHLEdBQVcsRUFBRSxDQUFDO0lBRWpCLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUUzQixZQUFtQixhQUE0QixFQUFVLEVBQXFCLEVBQVMsTUFBYyxFQUFVLFdBQXdCLEVBQVMsWUFBMEI7UUFBdkosa0JBQWEsR0FBYixhQUFhLENBQWU7UUFB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RUFBRSxHQUFHOzZCQUNkLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQ0FDbEIsT0FBTyxFQUFFLE1BQU07NkJBQ2xCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztnQ0FDbkIsT0FBTyxFQUFFLE9BQU87NkJBQ25CLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3hGLENBQUM7cUJBQ0w7aUJBQ0o7NExBR1ksSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFOEMsSUFBSTtzQkFBdkQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyw0QkFBNEI7Z0JBRXpDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRWdCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFvS2hCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9hcHAubWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvbUhhbmRsZXJ9IGZyb20gJ3ByaW1lbmcvZG9tJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdbYXBwLW1lbnVpdGVtXScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcclxuICAgIHRlbXBsYXRlOiBgXHJcblx0XHQ8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm9vdCAmJiBpdGVtLnZpc2libGUgIT09IGZhbHNlXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0tcm9vdC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXJvb3QtaWNvbiBwaSBwaS1mdyBwaS1lbGxpcHNpcy1oXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHRcdFx0PGEgKm5nSWY9XCIoIWl0ZW0ucm91dGVyTGluayB8fCBpdGVtLml0ZW1zKSAmJiBpdGVtLnZpc2libGUgIT09IGZhbHNlXCIgW2F0dHIuaHJlZl09XCJpdGVtLnVybFwiIChjbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50KVwiICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXHJcblx0XHRcdCAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXRcIiB0YWJpbmRleD1cIjBcIiBwUmlwcGxlIFtwVG9vbHRpcF09XCJpdGVtLmxhYmVsXCIgW3Rvb2x0aXBEaXNhYmxlZF09XCIhKGlzU2xpbSAmJiByb290ICYmICFhY3RpdmUpXCI+XHJcblx0XHRcdFx0PGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3tpdGVtLmxhYmVsfX08L3NwYW4+XHJcblx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIiAqbmdJZj1cIml0ZW0uaXRlbXNcIj48L2k+XHJcblx0XHRcdDwvYT5cclxuXHRcdFx0PGEgKm5nSWY9XCIoaXRlbS5yb3V0ZXJMaW5rICYmICFpdGVtLml0ZW1zKSAmJiBpdGVtLnZpc2libGUgIT09IGZhbHNlXCIgKGNsaWNrKT1cIml0ZW1DbGljaygkZXZlbnQpXCIgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCJcclxuXHRcdFx0ICAgW3JvdXRlckxpbmtdPVwiJy8nK3V0aWxzU2VydmljZS5vYnRlbmVyQmFzZSgpKyAodXJsLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2FkbW9uUG9ydGFsJykgPyAnL2FkbW9uUG9ydGFsJyA6ICcnKSAraXRlbS5yb3V0ZXJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1yb3V0ZVwiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJpdGVtLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zfHx7IHBhdGhzOiAnZXhhY3QnLCBxdWVyeVBhcmFtczogJ2lnbm9yZWQnLCBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJywgZnJhZ21lbnQ6ICdpZ25vcmVkJyB9XCJcclxuICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIiBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJpdGVtLnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIiBbcHJlc2VydmVGcmFnbWVudF09XCJpdGVtLnByZXNlcnZlRnJhZ21lbnRcIlxyXG4gICAgICAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIml0ZW0uc2tpcExvY2F0aW9uQ2hhbmdlXCIgW3JlcGxhY2VVcmxdPVwiaXRlbS5yZXBsYWNlVXJsXCIgW3N0YXRlXT1cIml0ZW0uc3RhdGVcIiBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldFwiIHRhYmluZGV4PVwiMFwiIHBSaXBwbGUgW3BUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbdG9vbHRpcERpc2FibGVkXT1cIiEoaXNTbGltICYmIHJvb3QpXCI+XHJcblx0XHRcdFx0PGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3tpdGVtLmxhYmVsfX08L3NwYW4+XHJcblx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIiAqbmdJZj1cIml0ZW0uaXRlbXNcIj48L2k+XHJcblx0XHRcdDwvYT5cclxuXHJcblx0XHRcdDx1bCAjc3VibWVudSAqbmdJZj1cIml0ZW0uaXRlbXMgJiYgaXRlbS52aXNpYmxlICE9PSBmYWxzZVwiIFtAY2hpbGRyZW5dPVwic3VibWVudUFuaW1hdGlvblwiIChAY2hpbGRyZW4uZG9uZSk9XCJvblN1Ym1lbnVBbmltYXRlZCgkZXZlbnQpXCI+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaGlsZCBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwiaXRlbS5pdGVtc1wiPlxyXG5cdFx0XHRcdFx0PGxpIGFwcC1tZW51aXRlbSBbaXRlbV09XCJjaGlsZFwiIFtpbmRleF09XCJpXCIgW3BhcmVudEtleV09XCJrZXlcIiBbY2xhc3NdPVwiY2hpbGQuYmFkZ2VDbGFzc1wiPjwvbGk+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC91bD5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG4gICAgYCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdjaGlsZHJlbicsIFtcclxuICAgICAgICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzAnXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnKidcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZSgnaGlkZGVuJywgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkIDw9PiBleHBhbmRlZCcsIGFuaW1hdGUoJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKScpKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBNZW51aXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoKSBpdGVtOiBhbnk7XHJcblxyXG4gICAgQElucHV0KCkgaW5kZXghOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYXlvdXQtcm9vdC1tZW51aXRlbScpIHJvb3QhOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhcmVudEtleSE6IHN0cmluZztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzdWJtZW51Jykgc3VibWVudSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgbWVudVNvdXJjZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIG1lbnVSZXNldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGtleTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMubWVudVNvdXJjZVN1YnNjcmlwdGlvbiA9IHRoaXMubWVudVNlcnZpY2UubWVudVNvdXJjZSQuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnJvdXRlRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICh2YWx1ZS5rZXkgPT09IHRoaXMua2V5IHx8IHZhbHVlLmtleS5zdGFydHNXaXRoKHRoaXMua2V5ICsgJy0nKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUua2V5ICE9PSB0aGlzLmtleSAmJiAhdmFsdWUua2V5LnN0YXJ0c1dpdGgodGhpcy5rZXkgKyAnLScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5tZW51UmVzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0U291cmNlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTbGltUGx1cyB8fCB0aGlzLmlzU2xpbSB8fCB0aGlzLmlzSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtLnJvdXRlckxpbmspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVTdGF0ZUZyb21Sb3V0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5rZXkgPSB0aGlzLnBhcmVudEtleSA/IHRoaXMucGFyZW50S2V5ICsgJy0nICsgdGhpcy5pbmRleCA6IFN0cmluZyh0aGlzLmluZGV4KTtcclxuXHJcbiAgICAgICAgaWYgKCEodGhpcy5pc1NsaW1QbHVzIHx8IHRoaXMuaXNTbGltIHx8IHRoaXMuaXNIb3Jpem9udGFsKSAmJiB0aGlzLml0ZW0ucm91dGVyTGluaykge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0YXRlRnJvbVJvdXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5yb290ICYmIHRoaXMuYWN0aXZlICYmIHRoaXMubGF5b3V0U2VydmljZS5pc0Rlc2t0b3AoKSAmJiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKXx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24odGhpcy5zdWJtZW51Py5uYXRpdmVFbGVtZW50LCB0aGlzLnN1Ym1lbnU/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUFjdGl2ZVN0YXRlRnJvbVJvdXRlKCkge1xyXG4gICAgICAgIGxldCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVyLmlzQWN0aXZlKHRoaXMuaXRlbS5yb3V0ZXJMaW5rWzBdLCB7IHBhdGhzOiAnZXhhY3QnLCBxdWVyeVBhcmFtczogJ2lnbm9yZWQnLCBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJywgZnJhZ21lbnQ6ICdpZ25vcmVkJyB9KTtcclxuXHJcbiAgICAgICAgaWYgKGFjdGl2ZVJvdXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2Uub25NZW51U3RhdGVDaGFuZ2Uoe2tleTogdGhpcy5rZXksIHJvdXRlRXZlbnQ6IHRydWV9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWJtZW51QW5pbWF0ZWQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJyAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkgJiYgKHRoaXMubGF5b3V0U2VydmljZS5pc0hvcml6b250YWwoKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCl8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSkge1xyXG4gICAgICAgICAgICBjb25zdCBlbCA9IDxIVE1MVUxpc3RFbGVtZW50PiBldmVudC5lbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBlbFBhcmVudCA9IDxIVE1MVUxpc3RFbGVtZW50PiBlbC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKGVsLCBlbFBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZVBvc2l0aW9uKG92ZXJsYXk6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKG92ZXJsYXkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBsZWZ0LCB0b3AgfSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3QgW3ZXaWR0aCwgdkhlaWdodF0gPSBbd2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodF07XHJcbiAgICAgICAgICAgIGNvbnN0IFtvV2lkdGgsIG9IZWlnaHRdID0gW292ZXJsYXkub2Zmc2V0V2lkdGgsIG92ZXJsYXkub2Zmc2V0SGVpZ2h0XTtcclxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBEb21IYW5kbGVyLmNhbGN1bGF0ZVNjcm9sbGJhcldpZHRoKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvcGJhckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxheW91dC10b3BiYXInKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgY29uc3QgdG9wYmFySGVpZ2h0ID0gdG9wYmFyRWw/Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgICAgICAvLyByZXNldFxyXG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9ICcnO1xyXG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLmxlZnQgPSAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gbGVmdCArIG9XaWR0aCArIHNjcm9sbGJhcldpZHRoO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gdldpZHRoIDwgd2lkdGggPyBgJHtsZWZ0IC0gKHdpZHRoIC0gdldpZHRoKX1weGAgOiBgJHtsZWZ0fXB4YDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICggdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvcE9mZnNldCA9IHRvcCAtIHRvcGJhckhlaWdodDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRvcE9mZnNldCArIG9IZWlnaHQgKyB0b3BiYXJIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9IHZIZWlnaHQgPCBoZWlnaHQgPyBgJHt0b3BPZmZzZXQgLSAoaGVpZ2h0IC0gdkhlaWdodCl9cHhgIDogYCR7dG9wT2Zmc2V0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpdGVtQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgLy8gYXZvaWQgcHJvY2Vzc2luZyBkaXNhYmxlZCBpdGVtc1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbmF2aWdhdGUgd2l0aCBob3ZlclxyXG4gICAgICAgIGlmICh0aGlzLnJvb3QgJiYgdGhpcy5pc1NsaW0gfHwgdGhpcy5pc0hvcml6b250YWwgfHwgdGhpcy5pc1NsaW1QbHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSAhdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGV4ZWN1dGUgY29tbWFuZFxyXG4gICAgICAgIGlmICh0aGlzLml0ZW0uY29tbWFuZCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW0uY29tbWFuZCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBpdGVtOiB0aGlzLml0ZW0gfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0b2dnbGUgYWN0aXZlIHN0YXRlXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5pdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICF0aGlzLmFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QgJiYgdGhpcy5hY3RpdmUgJiYgKHRoaXMuaXNTbGltIHx8IHRoaXMuaXNIb3Jpem9udGFsIHx8IHRoaXMuaXNTbGltUGx1cykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vbk92ZXJsYXlTdWJtZW51T3BlbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2xpbSB8fCB0aGlzLmlzSG9yaXpvbnRhbCB8fCB0aGlzLmlzU2xpbVBsdXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5vbk1lbnVTdGF0ZUNoYW5nZSh7a2V5OiB0aGlzLmtleX0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgICAvLyBhY3RpdmF0ZSBpdGVtIG9uIGhvdmVyXHJcbiAgICAgICAgaWYgKHRoaXMucm9vdCAmJiAodGhpcy5pc1NsaW0gfHwgdGhpcy5pc0hvcml6b250YWwgfHwgdGhpcy5pc1NsaW1QbHVzKSAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2Uub25NZW51U3RhdGVDaGFuZ2Uoe2tleTogdGhpcy5rZXl9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3VibWVudUFuaW1hdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vdCA/ICdleHBhbmRlZCcgOiAodGhpcy5hY3RpdmUgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0hvcml6b250YWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5pc0hvcml6b250YWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNTbGltKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCk7XHJcbiAgICB9XHJcbiAgICBnZXQgaXNTbGltUGx1cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZS1tZW51aXRlbScpXHJcbiAgICBnZXQgYWN0aXZlQ2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlICYmICF0aGlzLnJvb3Q7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWVudVNvdXJjZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVTb3VyY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVSZXNldFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVSZXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=