aril 1.1.96 → 1.1.97

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 (74) hide show
  1. package/boot/bridge/index.d.ts +2 -0
  2. package/boot/bridge/src/mfe-bridge.d.ts +33 -0
  3. package/boot/bridge/src/provide-mfe-bridge.d.ts +1 -0
  4. package/boot/config/apps/src/apps.service.d.ts +7 -4
  5. package/boot/config/plugins/src/getNgZone.d.ts +1 -1
  6. package/boot/host/src/app.component.d.ts +5 -3
  7. package/boot/mfe/src/app.component.d.ts +4 -2
  8. package/esm2022/boot/bridge/aril-boot-bridge.mjs +5 -0
  9. package/esm2022/boot/bridge/index.mjs +3 -0
  10. package/esm2022/boot/bridge/src/mfe-bridge.mjs +59 -0
  11. package/esm2022/boot/bridge/src/provide-mfe-bridge.mjs +6 -0
  12. package/esm2022/boot/config/api/src/api.service.mjs +10 -6
  13. package/esm2022/boot/config/apps/src/apps.service.mjs +12 -15
  14. package/esm2022/boot/config/plugins/src/getNgZone.mjs +4 -3
  15. package/esm2022/boot/config/plugins/src/plugins.service.mjs +4 -2
  16. package/esm2022/boot/host/src/app.component.mjs +11 -10
  17. package/esm2022/boot/host/src/bootstrap.mjs +4 -2
  18. package/esm2022/boot/mfe/src/app.component.mjs +15 -12
  19. package/esm2022/boot/mfe/src/bootstrap.mjs +4 -2
  20. package/esm2022/boot/mfe/src/loadStyles.mjs +3 -2
  21. package/esm2022/keycloak/src/auth.interceptor.mjs +3 -2
  22. package/esm2022/provider/src/prodiveHost.mjs +3 -2
  23. package/esm2022/provider/src/prodiveHostRouter.mjs +4 -3
  24. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +4 -3
  25. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +3 -4
  26. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +3 -2
  27. package/esm2022/theme/layout/app/history/history.service.mjs +3 -2
  28. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +1 -2
  29. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +3 -2
  30. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +3 -4
  31. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +7 -4
  32. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -3
  33. package/fesm2022/{aril-app.component-hxaLgwmC.mjs → aril-app.component-FxPod9bE.mjs} +15 -12
  34. package/fesm2022/aril-app.component-FxPod9bE.mjs.map +1 -0
  35. package/fesm2022/aril-boot-bridge.mjs +70 -0
  36. package/fesm2022/aril-boot-bridge.mjs.map +1 -0
  37. package/fesm2022/aril-boot-config-api.mjs +10 -6
  38. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  39. package/fesm2022/aril-boot-config-apps.mjs +11 -14
  40. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  41. package/fesm2022/aril-boot-config-plugins.mjs +5 -3
  42. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  43. package/fesm2022/aril-boot-host.mjs +13 -10
  44. package/fesm2022/aril-boot-host.mjs.map +1 -1
  45. package/fesm2022/{aril-boot-mfe-app.component-s1a-tkOD.mjs → aril-boot-mfe-app.component-dZp2aSTk.mjs} +16 -13
  46. package/fesm2022/aril-boot-mfe-app.component-dZp2aSTk.mjs.map +1 -0
  47. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs → aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs} +6 -4
  48. package/fesm2022/aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs.map +1 -0
  49. package/fesm2022/aril-boot-mfe.mjs +2 -1
  50. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  51. package/fesm2022/aril-keycloak.mjs +2 -1
  52. package/fesm2022/aril-keycloak.mjs.map +1 -1
  53. package/fesm2022/aril-provider.mjs +4 -3
  54. package/fesm2022/aril-provider.mjs.map +1 -1
  55. package/fesm2022/aril-theme-layout.mjs +13 -15
  56. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  57. package/fesm2022/aril-util-directives.mjs +3 -2
  58. package/fesm2022/aril-util-directives.mjs.map +1 -1
  59. package/fesm2022/aril.mjs +17 -13
  60. package/fesm2022/aril.mjs.map +1 -1
  61. package/package.json +145 -139
  62. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +3 -2
  63. package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +0 -2
  64. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +2 -3
  65. package/theme/layout/app/general-search/general-search.component.ts +2 -1
  66. package/theme/layout/app/history/history.service.ts +2 -1
  67. package/theme/layout/app/layout/app.layout.component.d.ts +0 -1
  68. package/theme/layout/app/layout/app.layout.component.ts +0 -1
  69. package/theme/layout/app/site-map/site-map-sidebar.component.ts +2 -1
  70. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +2 -3
  71. package/theme/layout/app/topbar/app.topbar.component.ts +6 -3
  72. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +0 -1
  73. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +0 -1
  74. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +0 -1
@@ -7,6 +7,7 @@ import { ScrollPanelModule } from 'primeng/scrollpanel';
7
7
  import { TooltipModule } from 'primeng/tooltip';
8
8
  import { TranslocoModule } from '@ngneat/transloco';
9
9
  import { filter } from 'rxjs';
10
+ import { bridge } from 'aril/boot/bridge';
10
11
  import { TranslateJsonPipe } from 'aril/util/pipes';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "../../service/app.menu.service";
@@ -109,9 +110,7 @@ export class StaticSidebarComponent {
109
110
  });
110
111
  }
111
112
  getMenuItems() {
112
- const isHostMode = globalThis.isHostMode;
113
- const hostMenuItems = globalThis.hostMenuItems;
114
- return isHostMode ? hostMenuItems() : this.menuService.menuItems();
113
+ return bridge.isHostMode() ? bridge.hostMenuItems() : this.menuService.menuItems();
115
114
  }
116
115
  getLocalText(text) {
117
116
  return this.translateJsonPipe.transform(text);
@@ -276,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
276
275
  type: Component,
277
276
  args: [{ standalone: true, selector: 'app-static-sidebar', imports: [RouterLink, NgClass, NgTemplateOutlet, ScrollPanelModule, TooltipModule, FormsModule, TranslocoModule], providers: [TranslateJsonPipe], template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.action && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"collapsed-item is-action\"\r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\"\r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t[class.action-loading]=\"node.actionLoading\"\r\n\t\t\t\t\t\t\t(click)=\"onActionItemClick(node, $event)\">\r\n\t\t\t\t\t\t\t@if (node.actionLoading) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-spin pi-spinner\"></i>\r\n\t\t\t\t\t\t\t} @else if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t} @else if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\tclass=\"collapsed-item\"\r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\"\r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"collapsed-item\"\r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\"\r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.action) {\r\n\t\t\t\t<!-- Action item: HTTP POST on click, then navigate -->\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item is-action\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.action-loading]=\"node.actionLoading\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onActionItemClick(node, $event)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.actionLoading) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon pi pi-spin pi-spinner\"></i>\r\n\t\t\t\t\t\t} @else if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t} @else if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div>\r\n", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:visible;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-item.is-action{cursor:pointer}.static-sidebar .tree-node .node-item.is-action.action-loading{opacity:.7;pointer-events:none}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2;padding-left:24px}.static-sidebar .tree-node .toggle-btn{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:20px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"] }]
278
277
  }], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.Router }, { type: i3.LayoutService }, { type: i4.TranslateJsonPipe }, { type: i5.TranslocoService }, { type: i6.HttpClient }] });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3N0YXRpYy1zaWRlYmFyL3N0YXRpYy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBVSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUF3QnBELE1BQU0sT0FBTyxzQkFBc0I7SUFXbEMsWUFDa0IsV0FBMkIsRUFDM0IsTUFBYyxFQUNkLGFBQTRCLEVBQzVCLGlCQUFvQyxFQUNwQyxnQkFBa0MsRUFDbEMsSUFBZ0I7UUFMaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNC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LEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUN4RSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUM7aUJBQ3JDLENBQUMsQ0FBQztZQUNKLENBQUM7UUFDRixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQzs4R0F6U1csc0JBQXNCO2tHQUF0QixzQkFBc0IsaUVBRnZCLENBQUMsaUJBQWlCLENBQUMsMEJDcEMvQixzeE9Ba0tBLDRuTkRqSVcsVUFBVSxvT0FBRSxPQUFPLG9GQUFFLGdCQUFnQixtSkFBRSxpQkFBaUIsK0lBQUUsYUFBYSxxWEFBRSxXQUFXLDhtQkFBRSxlQUFlOzsyRkFLbkcsc0JBQXNCO2tCQVJsQyxTQUFTO2lDQUNHLElBQUksWUFDTixvQkFBb0IsV0FDckIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLGFBR3JHLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgU2Nyb2xsUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Njcm9sbHBhbmVsJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbUFjdGlvbiwgUGx1Z2luTWVudUl0ZW0gfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgTWVudU5vZGUge1xyXG5cdGtleTogc3RyaW5nO1xyXG5cdGxhYmVsOiBhbnk7XHJcblx0aWNvbj86IHN0cmluZztcclxuXHRyb3V0ZXJMaW5rPzogc3RyaW5nO1xyXG5cdGFjdGlvbj86IE1lbnVJdGVtQWN0aW9uO1xyXG5cdGNoaWxkcmVuPzogTWVudU5vZGVbXTtcclxuXHRleHBhbmRlZDogYm9vbGVhbjtcclxuXHRhY3Rpb25Mb2FkaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1zdGF0aWMtc2lkZWJhcicsXHJcblx0aW1wb3J0czogW1JvdXRlckxpbmssIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFNjcm9sbFBhbmVsTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsb2NvTW9kdWxlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc3RhdGljLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuc2NzcycsXHJcblx0cHJvdmlkZXJzOiBbVHJhbnNsYXRlSnNvblBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdGFjdGl2ZUxhbmc6IFNpZ25hbDxzdHJpbmc+O1xyXG5cdG1lbnVOb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0ZmlsdGVyZWROb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0c2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuXHJcblx0cHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cdHByaXZhdGUgYWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBNQVhfTEVOR1RIID0geyBsZXZlbDA6IDI1LCBsZXZlbDE6IDIwLCBsZXZlbDI6IDE2LCBsZXZlbDM6IDEzIH07XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZTogQXBwTWVudVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVKc29uUGlwZTogVHJhbnNsYXRlSnNvblBpcGUsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnRcclxuXHQpIHtcclxuXHRcdHRoaXMuYWN0aXZlTGFuZyA9IHRvU2lnbmFsKHRoaXMudHJhbnNsb2NvU2VydmljZS5sYW5nQ2hhbmdlcyQsIHsgaW5pdGlhbFZhbHVlOiAndHInIH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5pc1N0YXRpY1NpZGViYXJDb2xsYXBzZWQoKTtcclxuXHR9XHJcblxyXG5cdGdldCB0b3BMZXZlbE5vZGVzKCk6IE1lbnVOb2RlW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMubWVudU5vZGVzKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuYnVpbGRNZW51VHJlZSgpO1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcclxuXHRcdFx0LnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLmJ1aWxkTWVudVRyZWUoKSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG5cdFx0dGhpcy5hY3Rpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRpc1RleHRUcnVuY2F0ZWQobGFiZWw6IGFueSwgbGFuZzogc3RyaW5nIHwgbnVsbCwgbGV2ZWwgPSAwKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWxhYmVsIHx8ICFsYW5nIHx8ICFsYWJlbFtsYW5nXSkgcmV0dXJuIGZhbHNlO1xyXG5cdFx0Y29uc3QgdGV4dCA9IGxhYmVsW2xhbmddO1xyXG5cdFx0Y29uc3QgbGVuID0gdGV4dC5sZW5ndGg7XHJcblx0XHRjb25zdCBsaW1pdHMgPSBbdGhpcy5NQVhfTEVOR1RILmxldmVsMCwgdGhpcy5NQVhfTEVOR1RILmxldmVsMSwgdGhpcy5NQVhfTEVOR1RILmxldmVsMiwgdGhpcy5NQVhfTEVOR1RILmxldmVsM107XHJcblx0XHRyZXR1cm4gbGVuID4gbGltaXRzW01hdGgubWluKGxldmVsLCAzKV07XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKTtcclxuXHR9XHJcblxyXG5cdGJ1aWxkTWVudVRyZWUoKSB7XHJcblx0XHRjb25zdCBtZW51SXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmNvbnZlcnRUb01lbnVOb2RlcyhtZW51SXRlbXMpO1xyXG5cdFx0dGhpcy5tZW51Tm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLm5vZGVzXSk7XHJcblx0XHR0aGlzLmV4cGFuZEFjdGl2ZU1lbnUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kQWN0aXZlTWVudSgpIHtcclxuXHRcdGNvbnN0IG5vZGVzID0gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHRcdHRoaXMuZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXMpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXM6IE1lbnVOb2RlW10pOiBNZW51Tm9kZSB8IG51bGwge1xyXG5cdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGNvbnN0IGFjdGl2ZUNoaWxkID0gdGhpcy5maW5kQW5kRXhwYW5kQWN0aXZlTm9kZShub2RlLmNoaWxkcmVuKTtcclxuXHRcdFx0XHRpZiAoYWN0aXZlQ2hpbGQpIHtcclxuXHRcdFx0XHRcdC8vIHdlIGZpbmQgYWN0aXZlIGNoaWxkIGFuZCB0aGVuIG9wZW5lZCBpdHMgcGFyZW50IG5vZGVzXHJcblx0XHRcdFx0XHRub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHJldHVybiBhY3RpdmVDaGlsZDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Y29udmVydFRvTWVudU5vZGVzKGl0ZW1zOiBQbHVnaW5NZW51SXRlbVtdLCBwYXJlbnRLZXkgPSAnJyk6IE1lbnVOb2RlW10ge1xyXG5cdFx0cmV0dXJuIGl0ZW1zXHJcblx0XHRcdC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLnNlcGFyYXRvcilcclxuXHRcdFx0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBrZXkgPSBwYXJlbnRLZXkgPyBgJHtwYXJlbnRLZXl9LSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XHJcblx0XHRcdFx0Y29uc3Qgbm9kZTogTWVudU5vZGUgPSB7XHJcblx0XHRcdFx0XHRrZXksXHJcblx0XHRcdFx0XHRsYWJlbDogaXRlbS5sYWJlbCxcclxuXHRcdFx0XHRcdGljb246IGl0ZW0uaWNvbixcclxuXHRcdFx0XHRcdHJvdXRlckxpbms6IGl0ZW0uYWN0aW9uID8gdW5kZWZpbmVkIDogaXRlbS5yb3V0ZXJMaW5rLFxyXG5cdFx0XHRcdFx0YWN0aW9uOiBpdGVtLmFjdGlvbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmYWxzZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0aWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRub2RlLmNoaWxkcmVuID0gdGhpcy5jb252ZXJ0VG9NZW51Tm9kZXMoaXRlbS5pdGVtcywga2V5KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TWVudUl0ZW1zKCk6IFBsdWdpbk1lbnVJdGVtW10ge1xyXG5cdFx0Y29uc3QgaXNIb3N0TW9kZSA9ICg8YW55Pmdsb2JhbFRoaXMpLmlzSG9zdE1vZGU7XHJcblx0XHRjb25zdCBob3N0TWVudUl0ZW1zID0gKDxhbnk+Z2xvYmFsVGhpcykuaG9zdE1lbnVJdGVtcztcclxuXHRcdHJldHVybiBpc0hvc3RNb2RlID8gaG9zdE1lbnVJdGVtcygpIDogdGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMoKTtcclxuXHR9XHJcblxyXG5cdGdldExvY2FsVGV4dCh0ZXh0OiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMudHJhbnNsYXRlSnNvblBpcGUudHJhbnNmb3JtKHRleHQpO1xyXG5cdH1cclxuXHJcblx0aXNBY3RpdmVSb3V0ZUZvck5vZGUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICghbm9kZS5yb3V0ZXJMaW5rKSByZXR1cm4gZmFsc2U7XHJcblx0XHRjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0Y29uc3QgaGFzaFVybCA9IGN1cnJlbnRVcmwuaW5kZXhPZignIycpID4gLTEgPyBjdXJyZW50VXJsLnNwbGl0KCcjJylbMV0gOiBjdXJyZW50VXJsO1xyXG5cdFx0aWYgKGhhc2hVcmwgPT09IG5vZGUucm91dGVyTGluayB8fCBoYXNoVXJsID09PSAnLycgKyBub2RlLnJvdXRlckxpbmspIHJldHVybiB0cnVlO1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0bm9kZS5yb3V0ZXJMaW5rICE9PSAnLycgJiZcclxuXHRcdFx0KGhhc2hVcmwuc3RhcnRzV2l0aChub2RlLnJvdXRlckxpbmsgKyAnLycpIHx8IGhhc2hVcmwuc3RhcnRzV2l0aCgnLycgKyBub2RlLnJvdXRlckxpbmsgKyAnLycpKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8vIHVzZSBvbiBjb2xsYXBzZWQgbW9kZVxyXG5cdGlzTm9kZU9yQ2hpbGRBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiBub2RlLmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiB0aGlzLmlzTm9kZU9yQ2hpbGRBY3RpdmUoY2hpbGQpKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRpc1RvcExldmVsTm9kZUFjdGl2ZShub2RlOiBNZW51Tm9kZSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNOb2RlT3JDaGlsZEFjdGl2ZShub2RlKTtcclxuXHR9XHJcblxyXG5cdGlzQ2hpbGROb2RlQWN0aXZlKG5vZGU6IE1lbnVOb2RlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc0FjdGl2ZVJvdXRlRm9yTm9kZShub2RlKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZU5vZGUobm9kZTogTWVudU5vZGUsIGxldmVsID0gMCkge1xyXG5cdFx0Y29uc3Qgd2FzRXhwYW5kZWQgPSBub2RlLmV4cGFuZGVkO1xyXG5cdFx0aWYgKGxldmVsID09PSAwKSB7XHJcblx0XHRcdC8vIERpxJ9lciBhbmEgbWVuw7xsZXJpIGthcGF0XHJcblx0XHRcdHRoaXMuY2xvc2VPdGhlclRvcExldmVsTm9kZXMobm9kZSk7XHJcblx0XHR9XHJcblx0XHRub2RlLmV4cGFuZGVkID0gIXdhc0V4cGFuZGVkO1xyXG5cclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLnRoaXMuZmlsdGVyZWROb2RlcygpXSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlT3RoZXJUb3BMZXZlbE5vZGVzKGV4Y2VwdE5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMubWVudU5vZGVzKCk7XHJcblx0XHRub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcblx0XHRcdGlmIChub2RlICE9PSBleGNlcHROb2RlKSB7XHJcblx0XHRcdFx0bm9kZS5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuY2xvc2VBbGxDaGlsZE5vZGVzKG5vZGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2xvc2VBbGxDaGlsZE5vZGVzKG5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRpZiAobm9kZS5jaGlsZHJlbikge1xyXG5cdFx0XHRub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcblx0XHRcdFx0Y2hpbGQuZXhwYW5kZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmNsb3NlQWxsQ2hpbGROb2RlcyhjaGlsZCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dHJhY2tCeUtleShpbmRleDogbnVtYmVyLCBub2RlOiBNZW51Tm9kZSk6IGFueSB7XHJcblx0XHRyZXR1cm4gbm9kZS5rZXk7XHJcblx0fVxyXG5cclxuXHRvbk1lbnVJdGVtQ2xpY2soKSB7XHJcblx0XHRpZiAodGhpcy5pc01vYmlsZSgpKSB7XHJcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jbG9zZU1vYmlsZU1lbnUoKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnNlYXJjaFRlcm0uc2V0KCcnKTtcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5tZW51Tm9kZXMoKSB8fCBbXSk7XHJcblx0fVxyXG5cclxuXHRvbkFjdGlvbkl0ZW1DbGljayhub2RlOiBNZW51Tm9kZSwgZXZlbnQ6IEV2ZW50KSB7XHJcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG5cdFx0aWYgKCFub2RlLmFjdGlvbiB8fCBub2RlLmFjdGlvbkxvYWRpbmcpIHJldHVybjtcclxuXHJcblx0XHQvLyBDYW5jZWwgYW55IHByZXZpb3VzIGFjdGlvbiByZXF1ZXN0XHJcblx0XHR0aGlzLmFjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHJcblx0XHRub2RlLmFjdGlvbkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuXHRcdGNvbnN0IHJlcXVlc3QkID1cclxuXHRcdFx0bm9kZS5hY3Rpb24ubWV0aG9kID09PSAnR0VUJyA/XHJcblx0XHRcdFx0dGhpcy5odHRwLmdldChub2RlLmFjdGlvbi51cmwpXHJcblx0XHRcdDpcdHRoaXMuaHR0cC5wb3N0KG5vZGUuYWN0aW9uLnVybCwgbm9kZS5hY3Rpb24uYm9keSA/PyB7fSk7XHJcblxyXG5cdFx0dGhpcy5hY3Rpb25TdWJzY3JpcHRpb24gPSByZXF1ZXN0JC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdG5vZGUuYWN0aW9uTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdGNvbnN0IHJvdXRlID0gdGhpcy5idWlsZFN1Y2Nlc3NSb3V0ZShub2RlLmFjdGlvbiEsIHJlc3BvbnNlKTtcclxuXHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdKTtcclxuXHRcdFx0XHR0aGlzLm9uTWVudUl0ZW1DbGljaygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4ge1xyXG5cdFx0XHRcdG5vZGUuYWN0aW9uTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYnVpbGRTdWNjZXNzUm91dGUoYWN0aW9uOiBNZW51SXRlbUFjdGlvbiwgcmVzcG9uc2U6IGFueSk6IHN0cmluZyB7XHJcblx0XHRpZiAoIWFjdGlvbi5zdWNjZXNzUm91dGVSZXNwb25zZUtleSkgcmV0dXJuIGFjdGlvbi5zdWNjZXNzUm91dGU7XHJcblxyXG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlQnlQYXRoKHJlc3BvbnNlLCBhY3Rpb24uc3VjY2Vzc1JvdXRlUmVzcG9uc2VLZXkpO1xyXG5cdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiBhY3Rpb24uc3VjY2Vzc1JvdXRlO1xyXG5cclxuXHRcdHJldHVybiBgJHthY3Rpb24uc3VjY2Vzc1JvdXRlfS8ke3ZhbHVlfWA7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldFZhbHVlQnlQYXRoKG9iajogYW55LCBwYXRoOiBzdHJpbmcpOiBhbnkge1xyXG5cdFx0aWYgKCFvYmogfHwgIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0cmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKGN1cnJlbnQsIGtleSkgPT4ge1xyXG5cdFx0XHRpZiAoY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IGN1cnJlbnQgPT09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0XHQvLyBIYW5kbGUgYXJyYXkgYWNjZXNzIGxpa2UgJ3Jlc3VsdFswXSdcclxuXHRcdFx0Y29uc3QgYXJyYXlNYXRjaCA9IGtleS5tYXRjaCgvXiguKz8pXFxbKFxcZCspXFxdJC8pO1xyXG5cdFx0XHRpZiAoYXJyYXlNYXRjaCkge1xyXG5cdFx0XHRcdGNvbnN0IGFycmF5S2V5ID0gYXJyYXlNYXRjaFsxXTtcclxuXHRcdFx0XHRjb25zdCBpbmRleCA9IHBhcnNlSW50KGFycmF5TWF0Y2hbMl0sIDEwKTtcclxuXHRcdFx0XHRyZXR1cm4gY3VycmVudFthcnJheUtleV0/LltpbmRleF07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiBjdXJyZW50W2tleV07XHJcblx0XHR9LCBvYmopO1xyXG5cdH1cclxuXHJcblx0b25Db2xsYXBzZWRJdGVtQ2xpY2sobm9kZTogTWVudU5vZGUpIHtcclxuXHRcdGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XHJcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5vbk1lbnVUb2dnbGUoKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuY2xvc2VPdGhlclRvcExldmVsTm9kZXMobm9kZSk7XHJcblx0XHRpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bm9kZS5leHBhbmRlZCA9IHRydWU7XHJcblx0XHR9XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi50aGlzLmZpbHRlcmVkTm9kZXMoKV0pO1xyXG5cdFx0aWYgKG5vZGUucm91dGVyTGluaykge1xyXG5cdFx0XHR0aGlzLm9uTWVudUl0ZW1DbGljaygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25TZWFyY2hDaGFuZ2UoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjdXJyZW50U2VhcmNoVGVybSA9IHRoaXMuc2VhcmNoVGVybSgpPy50b0xvd2VyQ2FzZSgpPy50cmltKCk7XHJcblx0XHRpZiAoIWN1cnJlbnRTZWFyY2hUZXJtKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5tZW51Tm9kZXMoKSB8fCBbXSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5maWx0ZXJOb2Rlcyh0aGlzLm1lbnVOb2RlcygpLCBjdXJyZW50U2VhcmNoVGVybSkpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0YXRpYy1zaWRlYmFyXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJzdGF0aWMtc2lkZWJhci1jb250ZW50XCI+XHJcblx0XHRAaWYgKCFpc0NvbGxhcHNlZCkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJydcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktc2VhcmNoIHNlYXJjaC1pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0cElucHV0VGV4dFxyXG5cdFx0XHRcdFx0XHR2YXJpYW50PVwiZmlsbGVkXCJcclxuXHRcdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInQoJ3NlYXJjaCcpXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuXHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoKVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwic2VhcmNoLXN0YXRpYy1zaWRlYmFyXCIgLz5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxwLXNjcm9sbFBhbmVsIFtzdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2NhbGMoMTAwdmggLSAxMzBweCknIH1cIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdEBmb3IgKG5vZGUgb2YgZmlsdGVyZWROb2RlcygpOyB0cmFjayB0cmFja0J5S2V5KCRpbmRleCwgbm9kZSkpIHtcclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyZWVOb2RlVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBub2RlLCBsZXZlbDogMCB9XCI+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvcC1zY3JvbGxQYW5lbD5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8IS0tIENvbGxhcHNlZCBtb2RlIC0gb25seSBpY29ucyAtLT5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbGxhcHNlZC1jb250YWluZXJcIj5cclxuXHRcdFx0XHRAZm9yIChub2RlIG9mIHRvcExldmVsTm9kZXM7IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBub2RlKSkge1xyXG5cdFx0XHRcdFx0QGlmIChub2RlLmFjdGlvbiAmJiAoIW5vZGUuY2hpbGRyZW4gfHwgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApKSB7XHJcblx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbGxhcHNlZC1pdGVtIGlzLWFjdGlvblwiXHJcblx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImdldExvY2FsVGV4dChub2RlLmxhYmVsKVwiXHJcblx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNUb3BMZXZlbE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3Rpb24tbG9hZGluZ109XCJub2RlLmFjdGlvbkxvYWRpbmdcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkFjdGlvbkl0ZW1DbGljayhub2RlLCAkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0QGlmIChub2RlLmFjdGlvbkxvYWRpbmcpIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH0gQGVsc2UgaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uIHBpIHBpLWNpcmNsZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fSBAZWxzZSBpZiAobm9kZS5yb3V0ZXJMaW5rICYmICghbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbGxhcHNlZC1pdGVtXCJcclxuXHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpXCJcclxuXHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFx0XHRbY2xhc3MuYWN0aXZlXT1cImlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGUpXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25Db2xsYXBzZWRJdGVtQ2xpY2sobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uIHBpIHBpLWNpcmNsZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2xsYXBzZWQtaXRlbVwiXHJcblx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImdldExvY2FsVGV4dChub2RlLmxhYmVsKVwiXHJcblx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNUb3BMZXZlbE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkNvbGxhcHNlZEl0ZW1DbGljayhub2RlKVwiPlxyXG5cdFx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktY2lyY2xlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxuXHJcblx0PCEtLSBSZWN1cnNpdmUgVHJlZSBOb2RlIFRlbXBsYXRlIC0tPlxyXG5cdDxuZy10ZW1wbGF0ZSAjdHJlZU5vZGVUZW1wbGF0ZSBsZXQtbm9kZSBsZXQtbGV2ZWw9XCJsZXZlbFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtuZ0NsYXNzXT1cIidsZXZlbC0nICsgbGV2ZWxcIj5cclxuXHRcdFx0QGlmIChub2RlLmFjdGlvbikge1xyXG5cdFx0XHRcdDwhLS0gQWN0aW9uIGl0ZW06IEhUVFAgUE9TVCBvbiBjbGljaywgdGhlbiBuYXZpZ2F0ZSAtLT5cclxuXHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRjbGFzcz1cIm5vZGUtaXRlbSBpcy1hY3Rpb25cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuYWN0aW9uLWxvYWRpbmddPVwibm9kZS5hY3Rpb25Mb2FkaW5nXCJcclxuXHRcdFx0XHRcdFtwVG9vbHRpcF09XCIhaXNNb2JpbGUoKSAmJiBpc1RleHRUcnVuY2F0ZWQobm9kZS5sYWJlbCwgYWN0aXZlTGFuZygpLCBsZXZlbCkgPyBnZXRMb2NhbFRleHQobm9kZS5sYWJlbCkgOiAnJ1wiXHJcblx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25BY3Rpb25JdGVtQ2xpY2sobm9kZSwgJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvZ2dsZS1idG5cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0b2dnbGVOb2RlKG5vZGUsIGxldmVsKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaVwiIFtjbGFzcy5waS1jaGV2cm9uLXJpZ2h0XT1cIiFub2RlLmV4cGFuZGVkXCIgW2NsYXNzLnBpLWNoZXZyb24tZG93bl09XCJub2RlLmV4cGFuZGVkXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuYWN0aW9uTG9hZGluZykge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwibm9kZS1pY29uIHBpIHBpLXNwaW4gcGktc3Bpbm5lclwiPjwvaT5cclxuXHRcdFx0XHRcdFx0fSBAZWxzZSBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiPnt7IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9IEBlbHNlIGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwibm9kZS1pdGVtXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5oYXMtY2hpbGRyZW5dPVwibm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmlzLXBhZ2VdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNDaGlsZE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChub2RlLmxhYmVsLCBhY3RpdmVMYW5nKCksIGxldmVsKSA/IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSA6ICcnXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvZ2dsZS1idG5cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0b2dnbGVOb2RlKG5vZGUsIGxldmVsKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaVwiIFtjbGFzcy5waS1jaGV2cm9uLXJpZ2h0XT1cIiFub2RlLmV4cGFuZGVkXCIgW2NsYXNzLnBpLWNoZXZyb24tZG93bl09XCJub2RlLmV4cGFuZGVkXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwibm9kZS1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cIm5vZGUtbGFiZWxcIj57eyBnZXRMb2NhbFRleHQobm9kZS5sYWJlbCkgfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2E+XHJcblx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdGNsYXNzPVwibm9kZS1pdGVtXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5oYXMtY2hpbGRyZW5dPVwibm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmlzLXBhZ2VdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNDaGlsZE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChub2RlLmxhYmVsLCBhY3RpdmVMYW5nKCksIGxldmVsKSA/IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSA6ICcnXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJ0b2dnbGVOb2RlKG5vZGUsIGxldmVsKVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvZ2dsZS1idG5cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0b2dnbGVOb2RlKG5vZGUsIGxldmVsKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaVwiIFtjbGFzcy5waS1jaGV2cm9uLXJpZ2h0XT1cIiFub2RlLmV4cGFuZGVkXCIgW2NsYXNzLnBpLWNoZXZyb24tZG93bl09XCJub2RlLmV4cGFuZGVkXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwibm9kZS1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cIm5vZGUtbGFiZWxcIj57eyBnZXRMb2NhbFRleHQobm9kZS5sYWJlbCkgfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0PCEtLSBSZWN1cnNpdmUgQ2hpbGRyZW4gLS0+XHJcblx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmV4cGFuZGVkKSB7XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImNoaWxkcmVuLWNvbnRhaW5lclwiIFthdHRyLmRhdGEtbGV2ZWxdPVwibGV2ZWxcIj5cclxuXHRcdFx0XHRcdEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBjaGlsZCkpIHtcclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZU5vZGVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkLCBsZXZlbDogbGV2ZWwgKyAxIH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0fVxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3N0YXRpYy1zaWRlYmFyL3N0YXRpYy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBVSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBd0JwRCxNQUFNLE9BQU8sc0JBQXNCO0lBV2xDLFlBQ2tCLFdBQTJCLEVBQzNCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsZ0JBQWtDLEVB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QUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtvQkFDeEUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDO2lCQUNyQyxDQUFDLENBQUM7WUFDSixDQUFDO1FBQ0YsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7OEdBdlNXLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlFQUZ2QixDQUFDLGlCQUFpQixDQUFDLDBCQ3JDL0Isc3hPQWtLQSw0bk5EaElXLFVBQVUsb09BQUUsT0FBTyxvRkFBRSxnQkFBZ0IsbUpBQUUsaUJBQWlCLCtJQUFFLGFBQWEscVhBQUUsV0FBVyw4bUJBQUUsZUFBZTs7MkZBS25HLHNCQUFzQjtrQkFSbEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sb0JBQW9CLFdBQ3JCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxhQUdyRyxDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFNjcm9sbFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zY3JvbGxwYW5lbCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgYnJpZGdlIH0gZnJvbSAnYXJpbC9ib290L2JyaWRnZSc7XHJcbmltcG9ydCB7IE1lbnVJdGVtQWN0aW9uLCBQbHVnaW5NZW51SXRlbSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUpzb25QaXBlIH0gZnJvbSAnYXJpbC91dGlsL3BpcGVzJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubWVudS5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBNZW51Tm9kZSB7XHJcblx0a2V5OiBzdHJpbmc7XHJcblx0bGFiZWw6IGFueTtcclxuXHRpY29uPzogc3RyaW5nO1xyXG5cdHJvdXRlckxpbms/OiBzdHJpbmc7XHJcblx0YWN0aW9uPzogTWVudUl0ZW1BY3Rpb247XHJcblx0Y2hpbGRyZW4/OiBNZW51Tm9kZVtdO1xyXG5cdGV4cGFuZGVkOiBib29sZWFuO1xyXG5cdGFjdGlvbkxvYWRpbmc/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXN0YXRpYy1zaWRlYmFyJyxcclxuXHRpbXBvcnRzOiBbUm91dGVyTGluaywgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgU2Nyb2xsUGFuZWxNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIEZvcm1zTW9kdWxlLCBUcmFuc2xvY29Nb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3N0YXRpYy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJyxcclxuXHRwcm92aWRlcnM6IFtUcmFuc2xhdGVKc29uUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXRpY1NpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblx0YWN0aXZlTGFuZzogU2lnbmFsPHN0cmluZz47XHJcblx0bWVudU5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRmaWx0ZXJlZE5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRzZWFyY2hUZXJtID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuXHRwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblx0cHJpdmF0ZSBhY3Rpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IE1BWF9MRU5HVEggPSB7IGxldmVsMDogMjUsIGxldmVsMTogMjAsIGxldmVsMjogMTYsIGxldmVsMzogMTMgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUpzb25QaXBlOiBUcmFuc2xhdGVKc29uUGlwZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudFxyXG5cdCkge1xyXG5cdFx0dGhpcy5hY3RpdmVMYW5nID0gdG9TaWduYWwodGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJCwgeyBpbml0aWFsVmFsdWU6ICd0cicgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaXNDb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU3RhdGljU2lkZWJhckNvbGxhcHNlZCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRvcExldmVsTm9kZXMoKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5idWlsZE1lbnVUcmVlKCk7XHJcblx0XHR0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuYnVpbGRNZW51VHJlZSgpKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0XHR0aGlzLmFjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHR9XHJcblxyXG5cdGlzVGV4dFRydW5jYXRlZChsYWJlbDogYW55LCBsYW5nOiBzdHJpbmcgfCBudWxsLCBsZXZlbCA9IDApOiBib29sZWFuIHtcclxuXHRcdGlmICghbGFiZWwgfHwgIWxhbmcgfHwgIWxhYmVsW2xhbmddKSByZXR1cm4gZmFsc2U7XHJcblx0XHRjb25zdCB0ZXh0ID0gbGFiZWxbbGFuZ107XHJcblx0XHRjb25zdCBsZW4gPSB0ZXh0Lmxlbmd0aDtcclxuXHRcdGNvbnN0IGxpbWl0cyA9IFt0aGlzLk1BWF9MRU5HVEgubGV2ZWwwLCB0aGlzLk1BWF9MRU5HVEgubGV2ZWwxLCB0aGlzLk1BWF9MRU5HVEgubGV2ZWwyLCB0aGlzLk1BWF9MRU5HVEgubGV2ZWwzXTtcclxuXHRcdHJldHVybiBsZW4gPiBsaW1pdHNbTWF0aC5taW4obGV2ZWwsIDMpXTtcclxuXHR9XHJcblxyXG5cdGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5pc01vYmlsZSgpO1xyXG5cdH1cclxuXHJcblx0YnVpbGRNZW51VHJlZSgpIHtcclxuXHRcdGNvbnN0IG1lbnVJdGVtcyA9IHRoaXMuZ2V0TWVudUl0ZW1zKCk7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMuY29udmVydFRvTWVudU5vZGVzKG1lbnVJdGVtcyk7XHJcblx0XHR0aGlzLm1lbnVOb2Rlcy5zZXQobm9kZXMpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4ubm9kZXNdKTtcclxuXHRcdHRoaXMuZXhwYW5kQWN0aXZlTWVudSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBleHBhbmRBY3RpdmVNZW51KCkge1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLm1lbnVOb2RlcygpO1xyXG5cdFx0dGhpcy5maW5kQW5kRXhwYW5kQWN0aXZlTm9kZShub2Rlcyk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi50aGlzLmZpbHRlcmVkTm9kZXMoKV0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBmaW5kQW5kRXhwYW5kQWN0aXZlTm9kZShub2RlczogTWVudU5vZGVbXSk6IE1lbnVOb2RlIHwgbnVsbCB7XHJcblx0XHRmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNBY3RpdmVSb3V0ZUZvck5vZGUobm9kZSkpIHtcclxuXHRcdFx0XHRyZXR1cm4gbm9kZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0Y29uc3QgYWN0aXZlQ2hpbGQgPSB0aGlzLmZpbmRBbmRFeHBhbmRBY3RpdmVOb2RlKG5vZGUuY2hpbGRyZW4pO1xyXG5cdFx0XHRcdGlmIChhY3RpdmVDaGlsZCkge1xyXG5cdFx0XHRcdFx0Ly8gd2UgZmluZCBhY3RpdmUgY2hpbGQgYW5kIHRoZW4gb3BlbmVkIGl0cyBwYXJlbnQgbm9kZXNcclxuXHRcdFx0XHRcdG5vZGUuZXhwYW5kZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGFjdGl2ZUNoaWxkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRjb252ZXJ0VG9NZW51Tm9kZXMoaXRlbXM6IFBsdWdpbk1lbnVJdGVtW10sIHBhcmVudEtleSA9ICcnKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gaXRlbXNcclxuXHRcdFx0LmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uc2VwYXJhdG9yKVxyXG5cdFx0XHQubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGtleSA9IHBhcmVudEtleSA/IGAke3BhcmVudEtleX0tJHtpbmRleH1gIDogYCR7aW5kZXh9YDtcclxuXHRcdFx0XHRjb25zdCBub2RlOiBNZW51Tm9kZSA9IHtcclxuXHRcdFx0XHRcdGtleSxcclxuXHRcdFx0XHRcdGxhYmVsOiBpdGVtLmxhYmVsLFxyXG5cdFx0XHRcdFx0aWNvbjogaXRlbS5pY29uLFxyXG5cdFx0XHRcdFx0cm91dGVyTGluazogaXRlbS5hY3Rpb24gPyB1bmRlZmluZWQgOiBpdGVtLnJvdXRlckxpbmssXHJcblx0XHRcdFx0XHRhY3Rpb246IGl0ZW0uYWN0aW9uLFxyXG5cdFx0XHRcdFx0ZXhwYW5kZWQ6IGZhbHNlXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdG5vZGUuY2hpbGRyZW4gPSB0aGlzLmNvbnZlcnRUb01lbnVOb2RlcyhpdGVtLml0ZW1zLCBrZXkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gbm9kZTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRnZXRNZW51SXRlbXMoKTogUGx1Z2luTWVudUl0ZW1bXSB7XHJcblx0XHRyZXR1cm4gYnJpZGdlLmlzSG9zdE1vZGUoKSA/IGJyaWRnZS5ob3N0TWVudUl0ZW1zKCkgOiB0aGlzLm1lbnVTZXJ2aWNlLm1lbnVJdGVtcygpO1xyXG5cdH1cclxuXHJcblx0Z2V0TG9jYWxUZXh0KHRleHQ6IGFueSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy50cmFuc2xhdGVKc29uUGlwZS50cmFuc2Zvcm0odGV4dCk7XHJcblx0fVxyXG5cclxuXHRpc0FjdGl2ZVJvdXRlRm9yTm9kZShub2RlOiBNZW51Tm9kZSk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKCFub2RlLnJvdXRlckxpbmspIHJldHVybiBmYWxzZTtcclxuXHRcdGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblx0XHRjb25zdCBoYXNoVXJsID0gY3VycmVudFVybC5pbmRleE9mKCcjJykgPiAtMSA/IGN1cnJlbnRVcmwuc3BsaXQoJyMnKVsxXSA6IGN1cnJlbnRVcmw7XHJcblx0XHRpZiAoaGFzaFVybCA9PT0gbm9kZS5yb3V0ZXJMaW5rIHx8IGhhc2hVcmwgPT09ICcvJyArIG5vZGUucm91dGVyTGluaykgcmV0dXJuIHRydWU7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHRub2RlLnJvdXRlckxpbmsgIT09ICcvJyAmJlxyXG5cdFx0XHQoaGFzaFVybC5zdGFydHNXaXRoKG5vZGUucm91dGVyTGluayArICcvJykgfHwgaGFzaFVybC5zdGFydHNXaXRoKCcvJyArIG5vZGUucm91dGVyTGluayArICcvJykpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0Ly8gdXNlIG9uIGNvbGxhcHNlZCBtb2RlXHJcblx0aXNOb2RlT3JDaGlsZEFjdGl2ZShub2RlOiBNZW51Tm9kZSk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKHRoaXMuaXNBY3RpdmVSb3V0ZUZvck5vZGUobm9kZSkpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblx0XHRpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0cmV0dXJuIG5vZGUuY2hpbGRyZW4uc29tZSgoY2hpbGQpID0+IHRoaXMuaXNOb2RlT3JDaGlsZEFjdGl2ZShjaGlsZCkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGU6IE1lbnVOb2RlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc05vZGVPckNoaWxkQWN0aXZlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0aXNDaGlsZE5vZGVBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSwgbGV2ZWwgPSAwKSB7XHJcblx0XHRjb25zdCB3YXNFeHBhbmRlZCA9IG5vZGUuZXhwYW5kZWQ7XHJcblx0XHRpZiAobGV2ZWwgPT09IDApIHtcclxuXHRcdFx0Ly8gRGnEn2VyIGFuYSBtZW7DvGxlcmkga2FwYXRcclxuXHRcdFx0dGhpcy5jbG9zZU90aGVyVG9wTGV2ZWxOb2Rlcyhub2RlKTtcclxuXHRcdH1cclxuXHRcdG5vZGUuZXhwYW5kZWQgPSAhd2FzRXhwYW5kZWQ7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2xvc2VPdGhlclRvcExldmVsTm9kZXMoZXhjZXB0Tm9kZTogTWVudU5vZGUpIHtcclxuXHRcdGNvbnN0IG5vZGVzID0gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHRcdG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuXHRcdFx0aWYgKG5vZGUgIT09IGV4Y2VwdE5vZGUpIHtcclxuXHRcdFx0XHRub2RlLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5jbG9zZUFsbENoaWxkTm9kZXMobm9kZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjbG9zZUFsbENoaWxkTm9kZXMobm9kZTogTWVudU5vZGUpIHtcclxuXHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuXHRcdFx0XHRjaGlsZC5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuY2xvc2VBbGxDaGlsZE5vZGVzKGNoaWxkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0cmFja0J5S2V5KGluZGV4OiBudW1iZXIsIG5vZGU6IE1lbnVOb2RlKTogYW55IHtcclxuXHRcdHJldHVybiBub2RlLmtleTtcclxuXHR9XHJcblxyXG5cdG9uTWVudUl0ZW1DbGljaygpIHtcclxuXHRcdGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcclxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNsb3NlTW9iaWxlTWVudSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2VhcmNoVGVybS5zZXQoJycpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldCh0aGlzLm1lbnVOb2RlcygpIHx8IFtdKTtcclxuXHR9XHJcblxyXG5cdG9uQWN0aW9uSXRlbUNsaWNrKG5vZGU6IE1lbnVOb2RlLCBldmVudDogRXZlbnQpIHtcclxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHRpZiAoIW5vZGUuYWN0aW9uIHx8IG5vZGUuYWN0aW9uTG9hZGluZykgcmV0dXJuO1xyXG5cclxuXHRcdC8vIENhbmNlbCBhbnkgcHJldmlvdXMgYWN0aW9uIHJlcXVlc3RcclxuXHRcdHRoaXMuYWN0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG5cclxuXHRcdG5vZGUuYWN0aW9uTG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0Y29uc3QgcmVxdWVzdCQgPVxyXG5cdFx0XHRub2RlLmFjdGlvbi5tZXRob2QgPT09ICdHRVQnID9cclxuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0KG5vZGUuYWN0aW9uLnVybClcclxuXHRcdFx0Olx0dGhpcy5odHRwLnBvc3Qobm9kZS5hY3Rpb24udXJsLCBub2RlLmFjdGlvbi5ib2R5ID8/IHt9KTtcclxuXHJcblx0XHR0aGlzLmFjdGlvblN1YnNjcmlwdGlvbiA9IHJlcXVlc3QkLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0bm9kZS5hY3Rpb25Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0Y29uc3Qgcm91dGUgPSB0aGlzLmJ1aWxkU3VjY2Vzc1JvdXRlKG5vZGUuYWN0aW9uISwgcmVzcG9uc2UpO1xyXG5cdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pO1xyXG5cdFx0XHRcdHRoaXMub25NZW51SXRlbUNsaWNrKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoKSA9PiB7XHJcblx0XHRcdFx0bm9kZS5hY3Rpb25Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBidWlsZFN1Y2Nlc3NSb3V0ZShhY3Rpb246IE1lbnVJdGVtQWN0aW9uLCByZXNwb25zZTogYW55KTogc3RyaW5nIHtcclxuXHRcdGlmICghYWN0aW9uLnN1Y2Nlc3NSb3V0ZVJlc3BvbnNlS2V5KSByZXR1cm4gYWN0aW9uLnN1Y2Nlc3NSb3V0ZTtcclxuXHJcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVCeVBhdGgocmVzcG9uc2UsIGFjdGlvbi5zdWNjZXNzUm91dGVSZXNwb25zZUtleSk7XHJcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIGFjdGlvbi5zdWNjZXNzUm91dGU7XHJcblxyXG5cdFx0cmV0dXJuIGAke2FjdGlvbi5zdWNjZXNzUm91dGV9LyR7dmFsdWV9YDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0VmFsdWVCeVBhdGgob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XHJcblx0XHRpZiAoIW9iaiB8fCAhcGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcblx0XHRyZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoY3VycmVudCwga2V5KSA9PiB7XHJcblx0XHRcdGlmIChjdXJyZW50ID09PSB1bmRlZmluZWQgfHwgY3VycmVudCA9PT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcblx0XHRcdC8vIEhhbmRsZSBhcnJheSBhY2Nlc3MgbGlrZSAncmVzdWx0WzBdJ1xyXG5cdFx0XHRjb25zdCBhcnJheU1hdGNoID0ga2V5Lm1hdGNoKC9eKC4rPylcXFsoXFxkKylcXF0kLyk7XHJcblx0XHRcdGlmIChhcnJheU1hdGNoKSB7XHJcblx0XHRcdFx0Y29uc3QgYXJyYXlLZXkgPSBhcnJheU1hdGNoWzFdO1xyXG5cdFx0XHRcdGNvbnN0IGluZGV4ID0gcGFyc2VJbnQoYXJyYXlNYXRjaFsyXSwgMTApO1xyXG5cdFx0XHRcdHJldHVybiBjdXJyZW50W2FycmF5S2V5XT8uW2luZGV4XTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIGN1cnJlbnRba2V5XTtcclxuXHRcdH0sIG9iaik7XHJcblx0fVxyXG5cclxuXHRvbkNvbGxhcHNlZEl0ZW1DbGljayhub2RlOiBNZW51Tm9kZSkge1xyXG5cdFx0aWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcclxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLm9uTWVudVRvZ2dsZSgpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5jbG9zZU90aGVyVG9wTGV2ZWxOb2Rlcyhub2RlKTtcclxuXHRcdGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLnRoaXMuZmlsdGVyZWROb2RlcygpXSk7XHJcblx0XHRpZiAobm9kZS5yb3V0ZXJMaW5rKSB7XHJcblx0XHRcdHRoaXMub25NZW51SXRlbUNsaWNrKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvblNlYXJjaENoYW5nZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGN1cnJlbnRTZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hUZXJtKCk/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKTtcclxuXHRcdGlmICghY3VycmVudFNlYXJjaFRlcm0pIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldCh0aGlzLm1lbnVOb2RlcygpIHx8IFtdKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldCh0aGlzLmZpbHRlck5vZGVzKHRoaXMubWVudU5vZGVzKCksIGN1cnJlbnRTZWFyY2hUZXJtKSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGZpbHRlck5vZGVzKG5vZGVzOiBNZW51Tm9kZVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBNZW51Tm9kZVtdIHtcclxuXHRcdGNvbnN0IGZpbHRlcmVkOiBNZW51Tm9kZVtdID0gW107XHJcblx0XHRjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCk7XHJcblxyXG5cdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcblx0XHRcdC8vIENvbnZlcnQgbGFiZWwgdG8gc3RyaW5nIGZvciBzZWFyY2ggYmFzZWQgb24gYWN0aXZlIGxhbmd1YWdlXHJcblx0XHRcdGNvbnN0IGxhYmVsVGV4dCA9XHJcblx0XHRcdFx0dHlwZW9mIG5vZGUubGFiZWwgPT09ICdzdHJpbmcnID9cclxuXHRcdFx0XHRcdG5vZGUubGFiZWxcclxuXHRcdFx0XHQ6XHQobm9kZS5sYWJlbCBhcyBhbnkpPy5bY3VycmVudExhbmddIHx8IChub2RlLmxhYmVsIGFzIGFueSk/LnRyIHx8IChub2RlLmxhYmVsIGFzIGFueSk/LmVuIHx8ICcnO1xyXG5cclxuXHRcdFx0Y29uc3QgbWF0Y2hlcyA9IGxhYmVsVGV4dC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pO1xyXG5cdFx0XHRsZXQgZmlsdGVyZWRDaGlsZHJlbjogTWVudU5vZGVbXSA9IFtdO1xyXG5cclxuXHRcdFx0aWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuXHRcdFx0XHRmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maWx0ZXJOb2Rlcyhub2RlLmNoaWxkcmVuLCBzZWFyY2hUZXJtKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKG1hdGNoZXMgfHwgZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWQucHVzaCh7XHJcblx0XHRcdFx0XHQuLi5ub2RlLFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW46IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCA/IGZpbHRlcmVkQ2hpbGRyZW4gOiBub2RlLmNoaWxkcmVuLFxyXG5cdFx0XHRcdFx0ZXhwYW5kZWQ6IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGZpbHRlcmVkO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic3RhdGljLXNpZGViYXJcIiBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCI+XHJcblx0PGRpdiBjbGFzcz1cInN0YXRpYy1zaWRlYmFyLWNvbnRlbnRcIj5cclxuXHRcdEBpZiAoIWlzQ29sbGFwc2VkKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAnJ1wiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1zZWFyY2ggc2VhcmNoLWljb25cIj48L2k+XHJcblx0XHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRwSW5wdXRUZXh0XHJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJmaWxsZWRcIlxyXG5cdFx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VhcmNoJylcIlxyXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxyXG5cdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgpXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJzZWFyY2gtc3RhdGljLXNpZGViYXJcIiAvPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PHAtc2Nyb2xsUGFuZWwgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnY2FsYygxMDB2aCAtIDEzMHB4KScgfVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ0cmVlLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0QGZvciAobm9kZSBvZiBmaWx0ZXJlZE5vZGVzKCk7IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBub2RlKSkge1xyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZU5vZGVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG5vZGUsIGxldmVsOiAwIH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9wLXNjcm9sbFBhbmVsPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDwhLS0gQ29sbGFwc2VkIG1vZGUgLSBvbmx5IGljb25zIC0tPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sbGFwc2VkLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdEBmb3IgKG5vZGUgb2YgdG9wTGV2ZWxOb2RlczsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIG5vZGUpKSB7XHJcblx0XHRcdFx0XHRAaWYgKG5vZGUuYWN0aW9uICYmICghbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcclxuXHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY29sbGFwc2VkLWl0ZW0gaXMtYWN0aW9uXCJcclxuXHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpXCJcclxuXHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHRcdFx0W2NsYXNzLmFjdGl2ZV09XCJpc1RvcExldmVsTm9kZUFjdGl2ZShub2RlKVwiXHJcblx0XHRcdFx0XHRcdFx0W2NsYXNzLmFjdGlvbi1sb2FkaW5nXT1cIm5vZGUuYWN0aW9uTG9hZGluZ1wiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9uQWN0aW9uSXRlbUNsaWNrKG5vZGUsICRldmVudClcIj5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKG5vZGUuYWN0aW9uTG9hZGluZykge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvbiBwaSBwaS1zcGluIHBpLXNwaW5uZXJcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fSBAZWxzZSBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktY2lyY2xlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9IEBlbHNlIGlmIChub2RlLnJvdXRlckxpbmsgJiYgKCFub2RlLmNoaWxkcmVuIHx8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSkge1xyXG5cdFx0XHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY29sbGFwc2VkLWl0ZW1cIlxyXG5cdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJnZXRMb2NhbFRleHQobm9kZS5sYWJlbClcIlxyXG5cdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdFx0XHRbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNUb3BMZXZlbE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkNvbGxhcHNlZEl0ZW1DbGljayhub2RlKVwiPlxyXG5cdFx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktY2lyY2xlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNvbGxhcHNlZC1pdGVtXCJcclxuXHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpXCJcclxuXHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHRcdFx0W2NsYXNzLmFjdGl2ZV09XCJpc1RvcExldmVsTm9kZUFjdGl2ZShub2RlKVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9uQ29sbGFwc2VkSXRlbUNsaWNrKG5vZGUpXCI+XHJcblx0XHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvbiBwaSBwaS1jaXJjbGVcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fVxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8IS0tIFJlY3Vyc2l2ZSBUcmVlIE5vZGUgVGVtcGxhdGUgLS0+XHJcblx0PG5nLXRlbXBsYXRlICN0cmVlTm9kZVRlbXBsYXRlIGxldC1ub2RlIGxldC1sZXZlbD1cImxldmVsXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidHJlZS1ub2RlXCIgW25nQ2xhc3NdPVwiJ2xldmVsLScgKyBsZXZlbFwiPlxyXG5cdFx0XHRAaWYgKG5vZGUuYWN0aW9uKSB7XHJcblx0XHRcdFx0PCEtLSBBY3Rpb24gaXRlbTogSFRUUCBQT1NUIG9uIGNsaWNrLCB0aGVuIG5hdmlnYXRlIC0tPlxyXG5cdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdGNsYXNzPVwibm9kZS1pdGVtIGlzLWFjdGlvblwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaGFzLWNoaWxkcmVuXT1cIm5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5hY3Rpb24tbG9hZGluZ109XCJub2RlLmFjdGlvbkxvYWRpbmdcIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChub2RlLmxhYmVsLCBhY3RpdmVMYW5nKCksIGxldmVsKSA/IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSA6ICcnXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbkFjdGlvbkl0ZW1DbGljayhub2RlLCAkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpXCIgW2NsYXNzLnBpLWNoZXZyb24tcmlnaHRdPVwiIW5vZGUuZXhwYW5kZWRcIiBbY2xhc3MucGktY2hldnJvbi1kb3duXT1cIm5vZGUuZXhwYW5kZWRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5hY3Rpb25Mb2FkaW5nKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb24gcGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9IEBlbHNlIGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdH0gQGVsc2UgaWYgKG5vZGUucm91dGVyTGluaykge1xyXG5cdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJub2RlLWl0ZW1cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaXMtcGFnZV09XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmFjdGl2ZV09XCJpc0NoaWxkTm9kZUFjdGl2ZShub2RlKVwiXHJcblx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiIWlzTW9iaWxlKCkgJiYgaXNUZXh0VHJ1bmNhdGVkKG5vZGUubGFiZWwsIGFjdGl2ZUxhbmcoKSwgbGV2ZWwpID8gZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpIDogJydcIlxyXG5cdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpXCIgW2NsYXNzLnBpLWNoZXZyb24tcmlnaHRdPVwiIW5vZGUuZXhwYW5kZWRcIiBbY2xhc3MucGktY2hldnJvbi1kb3duXT1cIm5vZGUuZXhwYW5kZWRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiPnt7IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvYT5cclxuXHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJub2RlLWl0ZW1cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaXMtcGFnZV09XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmFjdGl2ZV09XCJpc0NoaWxkTm9kZUFjdGl2ZShub2RlKVwiXHJcblx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiIWlzTW9iaWxlKCkgJiYgaXNUZXh0VHJ1bmNhdGVkKG5vZGUubGFiZWwsIGFjdGl2ZUxhbmcoKSwgbGV2ZWwpID8gZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpIDogJydcIlxyXG5cdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cInRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpXCIgW2NsYXNzLnBpLWNoZXZyb24tcmlnaHRdPVwiIW5vZGUuZXhwYW5kZWRcIiBbY2xhc3MucGktY2hldnJvbi1kb3duXT1cIm5vZGUuZXhwYW5kZWRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiPnt7IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ8IS0tIFJlY3Vyc2l2ZSBDaGlsZHJlbiAtLT5cclxuXHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2hpbGRyZW4tY29udGFpbmVyXCIgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiPlxyXG5cdFx0XHRcdFx0QGZvciAoY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbjsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIGNoaWxkKSkge1xyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY2hpbGQsIGxldmVsOiBsZXZlbCArIDEgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
@@ -7,6 +7,7 @@ import { DividerModule } from 'primeng/divider';
7
7
  import { DropdownModule } from 'primeng/dropdown';
8
8
  import { MenubarModule } from 'primeng/menubar';
9
9
  import { TranslocoModule } from '@ngneat/transloco';
10
+ import { bridge } from 'aril/boot/bridge';
10
11
  import { Apps } from 'aril/boot/config/apps';
11
12
  import { LayoutService } from '../../service/app.layout.service';
12
13
  import { LanguageCode } from '../../service/interfaces/enum';
@@ -94,8 +95,10 @@ export class AppTopbarComponent {
94
95
  }
95
96
  }
96
97
  setLogoPath() {
97
- if (globalThis.activeHost) {
98
- switch (globalThis.activeHost) {
98
+ const activeHost = bridge.activeHost();
99
+ const activeMF = bridge.activeMF();
100
+ if (activeHost) {
101
+ switch (activeHost) {
99
102
  case Apps.YEAP:
100
103
  this.logoPath = 'assets/images/yeap-logo-dark.png';
101
104
  break;
@@ -110,7 +113,7 @@ export class AppTopbarComponent {
110
113
  }
111
114
  }
112
115
  else {
113
- switch (globalThis.activeMF) {
116
+ switch (activeMF) {
114
117
  case Apps.HES:
115
118
  case Apps.CTS:
116
119
  case Apps.SIS:
@@ -152,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
152
155
  type: ViewChild,
153
156
  args: ['menubutton']
154
157
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnRvcGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7O0FBbUJwRixNQUFNLE9BQU8sa0JBQWtCO0lBZ0I5QixZQUNrQixnQkFBa0MsRUFDbEMs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QUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsNkJBQTZCLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1AsS0FBSyxJQUFJLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLDZCQUE2QixDQUFDO29CQUM5QyxNQUFNO2dCQUNQO29CQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsNkJBQTZCLENBQUM7WUFDaEQsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDOzhHQXBJVyxrQkFBa0I7a0dBQWxCLGtCQUFrQixnTEN0Qy9CLCttR0FxRkEsdTFFRDVERSxZQUFZLGdlQUNaLGFBQWEsaURBQ2IsV0FBVyw4VkFDWCxhQUFhLDBKQUNiLFdBQVcsME1BQ1gsYUFBYSw4QkFDYixjQUFjLDJxQ0FDZCxlQUFlLGlPQUNmLHNCQUFzQjs7MkZBS1gsa0JBQWtCO2tCQWpCOUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUNiO3dCQUNSLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3RCOytJQUt3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9iYWRnZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XHJcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7IE1lbnViYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lbnViYXInO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBQdWJTdWJTZXJ2aWNlIH0gZnJvbSAnYXJpbC91dGlsL3B1Yi1zdWInO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pbnRlcmZhY2VzL2VudW0nO1xyXG5pbXBvcnQgeyBMYW5ndWFnZSwgTGFuZ3VhZ2VDaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgR2VuZXJhbFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2dlbmVyYWwtc2VhcmNoL2dlbmVyYWwtc2VhcmNoLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXRvcGJhcicsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0QnV0dG9uTW9kdWxlLFxyXG5cdFx0VXBwZXJDYXNlUGlwZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0RGl2aWRlck1vZHVsZSxcclxuXHRcdEJhZGdlTW9kdWxlLFxyXG5cdFx0TWVudWJhck1vZHVsZSxcclxuXHRcdERyb3Bkb3duTW9kdWxlLFxyXG5cdFx0VHJhbnNsb2NvTW9kdWxlLFxyXG5cdFx0R2VuZXJhbFNlYXJjaENvbXBvbmVudFxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FwcC50b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FwcC50b3BiYXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwVG9wYmFyQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKCdtZW51YnV0dG9uJykgbWVudUJ1dHRvbiE6IEVsZW1lbnRSZWY7XHJcblxyXG5cdHVzZXJuYW1lITogc3RyaW5nO1xyXG5cdGxheW91dFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XHJcblx0c2VhcmNoOiBzdHJpbmcgPSAnJztcclxuXHJcblx0bG9nb1BhdGg6IHN0cmluZyA9ICcnO1xyXG5cdGN1cnJlbnRGbGFnUGF0aDogc3RyaW5nID0gJyc7XHJcblx0Y3VycmVudExhbmc6IExhbmd1YWdlQ29kZSA9IChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZycpIGFzIExhbmd1YWdlQ29kZSkgfHwgTGFuZ3VhZ2VDb2RlLlRSO1xyXG5cclxuXHRsYW5ndWFnZXM6IExhbmd1YWdlW10gPSBbXHJcblx0XHR7IG5hbWU6ICdUUicsIGNvZGU6IExhbmd1YWdlQ29kZS5UUiwgZmxhZzogJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvdHIuc3ZnJyB9LFxyXG5cdFx0eyBuYW1lOiAnRU4nLCBjb2RlOiBMYW5ndWFnZUNvZGUuRU4sIGZsYWc6ICdhc3NldHMvaW1hZ2VzL2ZsYWdzL2diLnN2ZycgfVxyXG5cdF07XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBwdWJTdWJTZXJ2aWNlOiBQdWJTdWJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnRyYW5zbG9jb1NlcnZpY2Uuc2V0QWN0aXZlTGFuZyh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHRcdHRoaXMucHVibGlzaExhbmd1YWdlQ2hhbmdlKHRoaXMuY3VycmVudExhbmcpO1xyXG5cdFx0dGhpcy5zZXRGbGFnUGF0aCh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHRcdHRoaXMuc2V0TG9nb1BhdGgoKTtcclxuXHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXljbG9hay5nZXRVc2VybmFtZSgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IHVucmVhZENvdW50KCk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmdldFVucmVhZE5vdGlmaWNhdGlvbkNvdW50KCk7XHJcblx0fVxyXG5cclxuXHRvbk1lbnVCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5vbk1lbnVUb2dnbGUoKTtcclxuXHR9XHJcblxyXG5cdG9uUHJvZmlsZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dQcm9maWxlU2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25IaXN0b3J5QnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd0hpc3RvcnlTaWRlYmFyKCk7XHJcblx0fVxyXG5cclxuXHRvblNpdGVNYXBCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93U2l0ZU1hcFNpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uRmF2b3JpdGVQYWdlc0J1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dGYXZvcml0ZVBhZ2VzU2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25Ob3RpZmljYXRpb25zQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbnNTaWRlYmFyKCk7XHJcblx0fVxyXG5cclxuXHRvbkxhbmd1YWdlQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmcnLCB0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHJcblx0XHR0aGlzLnRyYW5zbG9jb1NlcnZpY2Uuc2V0QWN0aXZlTGFuZyh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHJcblx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcblxyXG5cdFx0dGhpcy5wdWJsaXNoTGFuZ3VhZ2VDaGFuZ2UodGhpcy5jdXJyZW50TGFuZyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2hMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogTGFuZ3VhZ2VDb2RlKTogdm9pZCB7XHJcblx0XHRjb25zdCBldmVudDogTGFuZ3VhZ2VDaGFuZ2VFdmVudCA9IHtcclxuXHRcdFx0bmFtZTogJ2xhbmd1YWdlQ2hhbmdlZCcsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRwYXRoOiAnJyxcclxuXHRcdFx0XHRjdXN0b206IHtcclxuXHRcdFx0XHRcdGxhbmd1YWdlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMucHViU3ViU2VydmljZS5wdWJsaXNoKGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdHNldEZsYWdQYXRoKGxhbmc6IExhbmd1YWdlQ29kZSkge1xyXG5cdFx0c3dpdGNoIChsYW5nKSB7XHJcblx0XHRcdGNhc2UgTGFuZ3VhZ2VDb2RlLlRSOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZsYWdQYXRoID0gJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvdHIuc3ZnJztcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBMYW5ndWFnZUNvZGUuRU46XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmxhZ1BhdGggPSAnYXNzZXRzL2ltYWdlcy9mbGFncy9nYi5zdmcnO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZsYWdQYXRoID0gJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvdHIuc3ZnJztcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHNldExvZ29QYXRoKCkge1xyXG5cdFx0aWYgKCg8YW55Pmdsb2JhbFRoaXMpLmFjdGl2ZUhvc3QpIHtcclxuXHRcdFx0c3dpdGNoICgoPGFueT5nbG9iYWxUaGlzKS5hY3RpdmVIb3N0KSB7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLllFQVA6XHJcblx0XHRcdFx0XHR0aGlzLmxvZ29QYXRoID0gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLWRhcmsucG5nJztcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5USE9SOlxyXG5cdFx0XHRcdFx0dGhpcy5sb2dvUGF0aCA9ICdhc3NldHMvaW1hZ2VzL3Rob3ItbG9nby1kYXJrLnBuZyc7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEFwcHMuTEVOQTpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy9sZW5hLWxvZ28tZGFyay5wbmcnO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy95ZWFwLWxvZ28tZGFyay5wbmcnO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzd2l0Y2ggKCg8YW55Pmdsb2JhbFRoaXMpLmFjdGl2ZU1GKSB7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkhFUzpcclxuXHRcdFx0XHRjYXNlIEFwcHMuQ1RTOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5TSVM6XHJcblx0XHRcdFx0XHR0aGlzLmxvZ29QYXRoID0gJ2Fzc2V0cy9pbWFnZXMvbGVuYS1sb2dvLnBuZyc7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEFwcHMuQ1JNOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5CSUxMSU5HOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5QQVlNRU5UOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5XRE06XHJcblx0XHRcdFx0Y2FzZSBBcHBzLk1ORzpcclxuXHRcdFx0XHRjYXNlIEFwcHMuRE1TOlxyXG5cdFx0XHRcdFx0dGhpcy5sb2dvUGF0aCA9ICdhc3NldHMvaW1hZ2VzL3Rob3ItbG9nby5wbmcnO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLk1XOlxyXG5cdFx0XHRcdFx0dGhpcy5sb2dvUGF0aCA9ICdhc3NldHMvaW1hZ2VzL3llYXAtbG9nby5wbmcnO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy95ZWFwLWxvZ28ucG5nJztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LXRvcGJhclwiPlxyXG5cdDxkaXYgY2xhc3M9XCJ0b3BiYXItc3RhcnRcIj5cclxuXHRcdDxidXR0b24gI21lbnVidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidG9wYmFyLW1lbnVidXR0b24gcC1saW5rIHAtdHJpZ2dlclwiIChjbGljayk9XCJvbk1lbnVCdXR0b25DbGljaygpXCI+XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktYmFyc1wiPjwvaT5cclxuXHRcdDwvYnV0dG9uPlxyXG5cdFx0PGltZyBbc3JjXT1cImxvZ29QYXRoXCIgY2xhc3M9XCJ0b3BiYXItbG9nb1wiIGFsdD1cImxvZ29cIiAvPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwidG9wYmFyLXNlYXJjaFwiICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJydcIj5cclxuXHRcdDxzcGFuIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnRcIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XHJcblx0XHRcdDxhcHAtZ2VuZXJhbC1zZWFyY2g+PC9hcHAtZ2VuZXJhbC1zZWFyY2g+XHJcblx0XHQ8L3NwYW4+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxkaXYgY2xhc3M9XCJ0b3BiYXItZW5kIG1yLTJcIj5cclxuXHRcdDx1bCBjbGFzcz1cInRvcGJhci1tZW51XCI+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdGljb249XCJwaSBwaS1zaXRlbWFwXCJcclxuXHRcdFx0XHRcdHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W3JvdW5kZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25TaXRlTWFwQnV0dG9uQ2xpY2soKVwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdGljb249XCJwaSBwaS1oaXN0b3J5XCJcclxuXHRcdFx0XHRcdHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W3JvdW5kZWRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25IaXN0b3J5QnV0dG9uQ2xpY2soKVwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdGljb249XCJwaSBwaS1oZWFydFwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtyb3VuZGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uRmF2b3JpdGVQYWdlc0J1dHRvbkNsaWNrKClcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWJ1dHRvbiBzZXZlcml0eT1cInNlY29uZGFyeVwiIFt0ZXh0XT1cInRydWVcIiBbcm91bmRlZF09XCJ0cnVlXCIgKGNsaWNrKT1cIm9uUHJvZmlsZUJ1dHRvbkNsaWNrKClcIj5cclxuXHRcdFx0XHRcdHt7IHVzZXJuYW1lWzBdIHwgdXBwZXJjYXNlIH19XHJcblx0XHRcdFx0PC9wLWJ1dHRvbj5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWRpdmlkZXIgbGF5b3V0PVwidmVydGljYWxcIiBzdHlsZUNsYXNzPVwiaC0xcmVtIGJvcmRlci01MDAgbS0wXCIgLz5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWJlbGwgbm90aWZpY2F0aW9uLWljb25cIlxyXG5cdFx0XHRcdFx0cEJhZGdlXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwidW5yZWFkQ291bnQgPiAwID8gdW5yZWFkQ291bnQudG9TdHJpbmcoKSA6ICcwJ1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwib25Ob3RpZmljYXRpb25zQnV0dG9uQ2xpY2soKVwiPjwvaT5cclxuXHRcdFx0PC9saT5cclxuXHRcdFx0PGxpIGNsYXNzPVwidG9wYmFyLW1lbnUtaXRlbVwiPlxyXG5cdFx0XHRcdDxwLWRyb3Bkb3duXHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJsYW5ndWFnZXNcIlxyXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50TGFuZ1wiXHJcblx0XHRcdFx0XHQob25DaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZSgpXCJcclxuXHRcdFx0XHRcdG9wdGlvbkxhYmVsPVwibmFtZVwiXHJcblx0XHRcdFx0XHRvcHRpb25WYWx1ZT1cImNvZGVcIlxyXG5cdFx0XHRcdFx0W3Nob3dDbGVhcl09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cImN1c3RvbS1kcm9wZG93biBtbC0zXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbWcgW3NyY109XCJjdXJyZW50RmxhZ1BhdGhcIiBjbGFzcz1cImZsYWctaWNvblwiIGFsdD1cImZsYWdcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibGFuZ3VhZ2UtdGV4dFwiPnt7IGN1cnJlbnRMYW5nIHwgdXBwZXJjYXNlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1pdGVtPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1nIFtzcmNdPVwiaXRlbS5mbGFnXCIgY2xhc3M9XCJmbGFnLWljb25cIiBhbHQ9XCJmbGFnXCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj57eyBpdGVtLm5hbWUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3AtZHJvcGRvd24+XHJcblx0XHRcdDwvbGk+XHJcblx0XHQ8L3VsPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGFwcC1icmVhZGNydW1iIGNsYXNzPVwidG9wYmFyLWJyZWFkY3J1bWJcIj48L2FwcC1icmVhZGNydW1iPiAtLT5cclxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnRvcGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7OztBQW1CcEYs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QUFDLE9BQU8sQ0FBQztnQkFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDZCxLQUFLLElBQUksQ0FBQyxHQUFHO29CQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsNkJBQTZCLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1AsS0FBSyxJQUFJLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLDZCQUE2QixDQUFDO29CQUM5QyxNQUFNO2dCQUNQO29CQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsNkJBQTZCLENBQUM7WUFDaEQsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDOzhHQXRJVyxrQkFBa0I7a0dBQWxCLGtCQUFrQixnTEN2Qy9CLCttR0FxRkEsdTFFRDNERSxZQUFZLGdlQUNaLGFBQWEsaURBQ2IsV0FBVyw4VkFDWCxhQUFhLDBKQUNiLFdBQVcsME1BQ1gsYUFBYSw4QkFDYixjQUFjLDJxQ0FDZCxlQUFlLGlPQUNmLHNCQUFzQjs7MkZBS1gsa0JBQWtCO2tCQWpCOUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUNiO3dCQUNSLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3RCOytJQUt3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9iYWRnZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XHJcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7IE1lbnViYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lbnViYXInO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IGJyaWRnZSB9IGZyb20gJ2FyaWwvYm9vdC9icmlkZ2UnO1xyXG5pbXBvcnQgeyBBcHBzIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgUHViU3ViU2VydmljZSB9IGZyb20gJ2FyaWwvdXRpbC9wdWItc3ViJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9lbnVtJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2UsIExhbmd1YWdlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEdlbmVyYWxTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmFsLXNlYXJjaC9nZW5lcmFsLXNlYXJjaC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC10b3BiYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEJ1dHRvbk1vZHVsZSxcclxuXHRcdFVwcGVyQ2FzZVBpcGUsXHJcblx0XHRGb3Jtc01vZHVsZSxcclxuXHRcdERpdmlkZXJNb2R1bGUsXHJcblx0XHRCYWRnZU1vZHVsZSxcclxuXHRcdE1lbnViYXJNb2R1bGUsXHJcblx0XHREcm9wZG93bk1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdEdlbmVyYWxTZWFyY2hDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAudG9wYmFyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hcHAudG9wYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFRvcGJhckNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgnbWVudWJ1dHRvbicpIG1lbnVCdXR0b24hOiBFbGVtZW50UmVmO1xyXG5cclxuXHR1c2VybmFtZSE6IHN0cmluZztcclxuXHRsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xyXG5cdHNlYXJjaDogc3RyaW5nID0gJyc7XHJcblxyXG5cdGxvZ29QYXRoOiBzdHJpbmcgPSAnJztcclxuXHRjdXJyZW50RmxhZ1BhdGg6IHN0cmluZyA9ICcnO1xyXG5cdGN1cnJlbnRMYW5nOiBMYW5ndWFnZUNvZGUgPSAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKSBhcyBMYW5ndWFnZUNvZGUpIHx8IExhbmd1YWdlQ29kZS5UUjtcclxuXHJcblx0bGFuZ3VhZ2VzOiBMYW5ndWFnZVtdID0gW1xyXG5cdFx0eyBuYW1lOiAnVFInLCBjb2RlOiBMYW5ndWFnZUNvZGUuVFIsIGZsYWc6ICdhc3NldHMvaW1hZ2VzL2ZsYWdzL3RyLnN2ZycgfSxcclxuXHRcdHsgbmFtZTogJ0VOJywgY29kZTogTGFuZ3VhZ2VDb2RlLkVOLCBmbGFnOiAnYXNzZXRzL2ltYWdlcy9mbGFncy9nYi5zdmcnIH1cclxuXHRdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHViU3ViU2VydmljZTogUHViU3ViU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcodGhpcy5jdXJyZW50TGFuZyk7XHJcblx0XHR0aGlzLnB1Ymxpc2hMYW5ndWFnZUNoYW5nZSh0aGlzLmN1cnJlbnRMYW5nKTtcclxuXHRcdHRoaXMuc2V0RmxhZ1BhdGgodGhpcy5jdXJyZW50TGFuZyk7XHJcblx0XHR0aGlzLnNldExvZ29QYXRoKCk7XHJcblxyXG5cdFx0dGhpcy51c2VybmFtZSA9IHRoaXMua2V5Y2xvYWsuZ2V0VXNlcm5hbWUoKTtcclxuXHR9XHJcblxyXG5cdGdldCB1bnJlYWRDb3VudCgpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5nZXRVbnJlYWROb3RpZmljYXRpb25Db3VudCgpO1xyXG5cdH1cclxuXHJcblx0b25NZW51QnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uub25NZW51VG9nZ2xlKCk7XHJcblx0fVxyXG5cclxuXHRvblByb2ZpbGVCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93UHJvZmlsZVNpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uSGlzdG9yeUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dIaXN0b3J5U2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25TaXRlTWFwQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd1NpdGVNYXBTaWRlYmFyKCk7XHJcblx0fVxyXG5cclxuXHRvbkZhdm9yaXRlUGFnZXNCdXR0b25DbGljaygpOiB2b2lkIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zaG93RmF2b3JpdGVQYWdlc1NpZGViYXIoKTtcclxuXHR9XHJcblxyXG5cdG9uTm90aWZpY2F0aW9uc0J1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dOb3RpZmljYXRpb25zU2lkZWJhcigpO1xyXG5cdH1cclxuXHJcblx0b25MYW5ndWFnZUNoYW5nZSgpOiB2b2lkIHtcclxuXHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5nJywgdGhpcy5jdXJyZW50TGFuZyk7XHJcblxyXG5cdFx0dGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcodGhpcy5jdXJyZW50TGFuZyk7XHJcblxyXG5cdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG5cclxuXHRcdHRoaXMucHVibGlzaExhbmd1YWdlQ2hhbmdlKHRoaXMuY3VycmVudExhbmcpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwdWJsaXNoTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG5cdFx0Y29uc3QgZXZlbnQ6IExhbmd1YWdlQ2hhbmdlRXZlbnQgPSB7XHJcblx0XHRcdG5hbWU6ICdsYW5ndWFnZUNoYW5nZWQnLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0cGF0aDogJycsXHJcblx0XHRcdFx0Y3VzdG9tOiB7XHJcblx0XHRcdFx0XHRsYW5ndWFnZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLnB1YlN1YlNlcnZpY2UucHVibGlzaChldmVudCk7XHJcblx0fVxyXG5cclxuXHRzZXRGbGFnUGF0aChsYW5nOiBMYW5ndWFnZUNvZGUpIHtcclxuXHRcdHN3aXRjaCAobGFuZykge1xyXG5cdFx0XHRjYXNlIExhbmd1YWdlQ29kZS5UUjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGbGFnUGF0aCA9ICdhc3NldHMvaW1hZ2VzL2ZsYWdzL3RyLnN2Zyc7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgTGFuZ3VhZ2VDb2RlLkVOOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZsYWdQYXRoID0gJ2Fzc2V0cy9pbWFnZXMvZmxhZ3MvZ2Iuc3ZnJztcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGbGFnUGF0aCA9ICdhc3NldHMvaW1hZ2VzL2ZsYWdzL3RyLnN2Zyc7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzZXRMb2dvUGF0aCgpIHtcclxuXHRcdGNvbnN0IGFjdGl2ZUhvc3QgPSBicmlkZ2UuYWN0aXZlSG9zdCgpO1xyXG5cdFx0Y29uc3QgYWN0aXZlTUYgPSBicmlkZ2UuYWN0aXZlTUYoKTtcclxuXHRcdGlmIChhY3RpdmVIb3N0KSB7XHJcblx0XHRcdHN3aXRjaCAoYWN0aXZlSG9zdCkge1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5ZRUFQOlxyXG5cdFx0XHRcdFx0dGhpcy5sb2dvUGF0aCA9ICdhc3NldHMvaW1hZ2VzL3llYXAtbG9nby1kYXJrLnBuZyc7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEFwcHMuVEhPUjpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy90aG9yLWxvZ28tZGFyay5wbmcnO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkxFTkE6XHJcblx0XHRcdFx0XHR0aGlzLmxvZ29QYXRoID0gJ2Fzc2V0cy9pbWFnZXMvbGVuYS1sb2dvLWRhcmsucG5nJztcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHR0aGlzLmxvZ29QYXRoID0gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLWRhcmsucG5nJztcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c3dpdGNoIChhY3RpdmVNRikge1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5IRVM6XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkNUUzpcclxuXHRcdFx0XHRjYXNlIEFwcHMuU0lTOlxyXG5cdFx0XHRcdFx0dGhpcy5sb2dvUGF0aCA9ICdhc3NldHMvaW1hZ2VzL2xlbmEtbG9nby5wbmcnO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkNSTTpcclxuXHRcdFx0XHRjYXNlIEFwcHMuQklMTElORzpcclxuXHRcdFx0XHRjYXNlIEFwcHMuUEFZTUVOVDpcclxuXHRcdFx0XHRjYXNlIEFwcHMuV0RNOlxyXG5cdFx0XHRcdGNhc2UgQXBwcy5NTkc6XHJcblx0XHRcdFx0Y2FzZSBBcHBzLkRNUzpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy90aG9yLWxvZ28ucG5nJztcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgQXBwcy5NVzpcclxuXHRcdFx0XHRcdHRoaXMubG9nb1BhdGggPSAnYXNzZXRzL2ltYWdlcy95ZWFwLWxvZ28ucG5nJztcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHR0aGlzLmxvZ29QYXRoID0gJ2Fzc2V0cy9pbWFnZXMveWVhcC1sb2dvLnBuZyc7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidG9wYmFyLXN0YXJ0XCI+XHJcblx0XHQ8YnV0dG9uICNtZW51YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRvcGJhci1tZW51YnV0dG9uIHAtbGluayBwLXRyaWdnZXJcIiAoY2xpY2spPVwib25NZW51QnV0dG9uQ2xpY2soKVwiPlxyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWJhcnNcIj48L2k+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHRcdDxpbWcgW3NyY109XCJsb2dvUGF0aFwiIGNsYXNzPVwidG9wYmFyLWxvZ29cIiBhbHQ9XCJsb2dvXCIgLz5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInRvcGJhci1zZWFyY2hcIiAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICcnXCI+XHJcblx0XHQ8c3BhbiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0XCI+XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxyXG5cdFx0XHQ8YXBwLWdlbmVyYWwtc2VhcmNoPjwvYXBwLWdlbmVyYWwtc2VhcmNoPlxyXG5cdFx0PC9zcGFuPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwidG9wYmFyLWVuZCBtci0yXCI+XHJcblx0XHQ8dWwgY2xhc3M9XCJ0b3BiYXItbWVudVwiPlxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwicGkgcGktc2l0ZW1hcFwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtyb3VuZGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uU2l0ZU1hcEJ1dHRvbkNsaWNrKClcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwicGkgcGktaGlzdG9yeVwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtyb3VuZGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uSGlzdG9yeUJ1dHRvbkNsaWNrKClcIiAvPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0XHQ8bGkgY2xhc3M9XCJ0b3BiYXItbWVudS1pdGVtXCI+XHJcblx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwicGkgcGktaGVhcnRcIlxyXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRbcm91bmRlZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbkZhdm9yaXRlUGFnZXNCdXR0b25DbGljaygpXCIgLz5cclxuXHRcdFx0PC9saT5cclxuXHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1idXR0b24gc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiBbdGV4dF09XCJ0cnVlXCIgW3JvdW5kZWRdPVwidHJ1ZVwiIChjbGljayk9XCJvblByb2ZpbGVCdXR0b25DbGljaygpXCI+XHJcblx0XHRcdFx0XHR7eyB1c2VybmFtZVswXSB8IHVwcGVyY2FzZSB9fVxyXG5cdFx0XHRcdDwvcC1idXR0b24+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCIgc3R5bGVDbGFzcz1cImgtMXJlbSBib3JkZXItNTAwIG0tMFwiIC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1iZWxsIG5vdGlmaWNhdGlvbi1pY29uXCJcclxuXHRcdFx0XHRcdHBCYWRnZVxyXG5cdFx0XHRcdFx0W3ZhbHVlXT1cInVucmVhZENvdW50ID4gMCA/IHVucmVhZENvdW50LnRvU3RyaW5nKCkgOiAnMCdcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uTm90aWZpY2F0aW9uc0J1dHRvbkNsaWNrKClcIj48L2k+XHJcblx0XHRcdDwvbGk+XHJcblx0XHRcdDxsaSBjbGFzcz1cInRvcGJhci1tZW51LWl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1kcm9wZG93blxyXG5cdFx0XHRcdFx0W29wdGlvbnNdPVwibGFuZ3VhZ2VzXCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiY3VycmVudExhbmdcIlxyXG5cdFx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uTGFuZ3VhZ2VDaGFuZ2UoKVwiXHJcblx0XHRcdFx0XHRvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG5cdFx0XHRcdFx0b3B0aW9uVmFsdWU9XCJjb2RlXCJcclxuXHRcdFx0XHRcdFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjdXN0b20tZHJvcGRvd24gbWwtM1wiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1nIFtzcmNdPVwiY3VycmVudEZsYWdQYXRoXCIgY2xhc3M9XCJmbGFnLWljb25cIiBhbHQ9XCJmbGFnXCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxhbmd1YWdlLXRleHRcIj57eyBjdXJyZW50TGFuZyB8IHVwcGVyY2FzZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtaXRlbT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGltZyBbc3JjXT1cIml0ZW0uZmxhZ1wiIGNsYXNzPVwiZmxhZy1pY29uXCIgYWx0PVwiZmxhZ1wiIC8+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLWRyb3Bkb3duPlxyXG5cdFx0XHQ8L2xpPlxyXG5cdFx0PC91bD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxhcHAtYnJlYWRjcnVtYiBjbGFzcz1cInRvcGJhci1icmVhZGNydW1iXCI+PC9hcHAtYnJlYWRjcnVtYj4gLS0+XHJcbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { Directive, Inject, computed, effect, inject, signal } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { TranslocoService } from '@ngneat/transloco';
4
+ import { bridge } from 'aril/boot/bridge';
4
5
  import { DETAIL_COMPONENT, PLUGIN_DIALOG_SERVICE } from './models';
5
6
  import * as i0 from "@angular/core";
6
7
  export class DetailPageCustomizationDirective {
@@ -13,8 +14,8 @@ export class DetailPageCustomizationDirective {
13
14
  // Internal signal to track when TabView and the menu are ready
14
15
  this.viewsInitialized = signal(false);
15
16
  this.getRouteConfig = () => {
16
- const configs = globalThis.routeConfigs;
17
- if (!configs || !Array.isArray(configs))
17
+ const configs = bridge.routeConfigs();
18
+ if (!configs)
18
19
  return undefined;
19
20
  const currentUrl = this.router.url.split('?')[0];
20
21
  let bestMatch;
@@ -295,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
295
296
  type: Inject,
296
297
  args: [DETAIL_COMPONENT]
297
298
  }] }] });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvZGlyZWN0aXZlcy9zcmMvZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi9kZXRhaWwtcGFnZS1jdXN0b21pemF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQ04sZ0JBQWdCLEVBSWhCLHFCQUFxQixFQUVyQixNQUFNLFVBQVUsQ0FBQzs7QUFLbEIsTUFBTSxPQUFPLGdDQUFnQztJQXlENUMsWUFBdUQsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeER0RSxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNuRSxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RCwrREFBK0Q7UUFDdkQscUJBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLG1CQUFjLEdBQUcsR0FBNkIsRUFBRTtZQUN2RCxNQUFNLE9BQU8sR0FBSSxVQUFrQixDQUFDLFlBRXhCLENBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpELElBQUksU0FBeUUsQ0FBQztZQUU5RSxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQUUsU0FBUztnQkFFM0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUVqRixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsU0FBUyxHQUFHLE1BQU0sQ0FBQztvQkFDbkIsTUFBTTtnQkFDUCxDQUFDO1lBQ0YsQ0FBQztZQUVELElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBRWpDLElBQUksQ0FBQztnQkFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBaUIsQ0FBQztZQUN0RCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxPQUFPLFNBQVMsQ0FBQztZQUNsQixDQUFDO1FBQ0YsQ0FBQyxDQUFDO1FBRU0scUJBQWdCLEdBQXdCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7aUJBQ3JCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUM7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDZCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJO2dCQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztnQkFDcEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO2dCQUN0QixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFO2FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFHRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQ0wsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUFFLE9BQU87WUFFcEMsc0VBQXNFO1lBQ3RFLHNLQUFzSztZQUN0SyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ3pHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0YsQ0FBQyxDQUFDO1lBRUYsSUFBSSxPQUFPLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFaEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUV6QixxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsaUdBQWlHO1FBQ2pHLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlDLGtDQUFrQztRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNYLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCwyRUFBMkU7UUFDM0UsK0VBQStFO1FBQy9FLDZFQUE2RTtRQUM3RSxpQ0FBaUM7UUFDakMsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2xELG9DQUFvQztZQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFekIsa0VBQWtFO1lBQ2xFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQWtCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzNDLENBQUM7UUFFRCxzR0FBc0c7UUFDdEcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNmLHdCQUF3QjtZQUN4QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3Qiw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsMkJBQTJCO1lBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtZQUFFLE9BQU87UUFFL0IsK0NBQStDO1FBQy9DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSTtZQUFFLE9BQU87UUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFnQixDQUFDO1FBRXZGLElBQUksU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDM0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUM7SUFDRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0sscUJBQXFCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJO1lBQUUsT0FBTztRQUV2RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRWxELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFxQyxDQUFDO1FBQ2xFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQiw2QkFBNkI7WUFDN0IsZUFBZTtZQUNmLGtDQUFrQztZQUNsQyxzREFBc0Q7WUFDdEQsbUVBQW1FO1lBQ25FLHdEQUF3RDtZQUN4RCxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUNBQW1DO1FBQ25DLE1BQU0sVUFBVSxHQUFtRSxFQUFFLENBQUM7UUFDdEYsTUFBTSxrQkFBa0IsR0FBMEQsRUFBRSxDQUFDO1FBRXJGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN0RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUV6RCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNmLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXVFLENBQUM7UUFFbkcsaURBQWlEO1FBQ2pELGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDOUMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUMvRCxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQ3hFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFFeEIsT0FBTyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxlQUFlLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBRUQsb0NBQW9DO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQyxXQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLFdBQVcsRUFBRSxDQUFDO1lBQ2QsZUFBZSxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLGFBQWEsR0FBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxnQkFBZ0IsR0FBa0IsRUFBRSxDQUFDO1FBRTNDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDO1lBQzNDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWhDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFnQixDQUFDLENBQUM7WUFDdkUsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU3RSxzQkFBc0I7UUFDdEIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzdDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsSUFBSSxZQUFZLElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM3QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1QyxDQUFDO2lCQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxxQkFBcUI7UUFDckIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQ25FLElBQUksZUFBZSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDNUMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzlELGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3RFLENBQUM7cUJBQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3hELENBQUM7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0YsQ0FBQztJQUVPLGtCQUFrQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUUxQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTlDLElBQ0MsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUN0QixjQUFjLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDakMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQ3hELENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztZQUMzRCxDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFTyxVQUFVLENBQUMsVUFBa0M7UUFDcEQsTUFBTSxPQUFPLEdBQUc7WUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDL0IsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBZSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDaEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osT0FBTyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDO1NBQ0QsQ0FBQyxDQUFDLENBQUM7UUFFSixzRUFBc0U7UUFDdEUsb0VBQW9FO1FBQ3BFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFrQixDQUFDO1FBQ3BGLE1BQU0sWUFBWSxHQUFlLGlCQUFpQixFQUFFLENBQUM7UUFFckQsb0ZBQW9GO1FBQ3BGLE1BQU0sVUFBVSxHQUFHO1lBQ2xCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEgsR0FBRyxXQUFXO1NBQ2QsQ0FBQztRQUVGLElBQUksaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDNUIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDRixDQUFDOzhHQWxVVyxnQ0FBZ0Msa0JBeUR4QixnQkFBZ0I7a0dBekR4QixnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBSDVDLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7aUJBQ2hCOzswQkEwRGEsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdCwgU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7XHJcblx0REVUQUlMX0NPTVBPTkVOVCxcclxuXHREZXRhaWxDb21wb25lbnQsXHJcblx0RGV0YWlsQ29uZmlnLFxyXG5cdERldGFpbENvbmZpZ01lbnVJdGVtLFxyXG5cdFBMVUdJTl9ESUFMT0dfU0VSVklDRSxcclxuXHRUYWJDb25maWdcclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxQYWdlQ3VzdG9taXphdGlvbkRpcmVjdGl2ZSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoUExVR0lOX0RJQUxPR19TRVJWSUNFKTsgLy8gVXNlIHRva2VuIGluc3RlYWRcclxuXHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcblxyXG5cdC8vIEludGVybmFsIHNpZ25hbCB0byB0cmFjayB3aGVuIFRhYlZpZXcgYW5kIHRoZSBtZW51IGFyZSByZWFkeVxyXG5cdHByaXZhdGUgdmlld3NJbml0aWFsaXplZCA9IHNpZ25hbChmYWxzZSk7XHJcblx0cHJpdmF0ZSBjb25maWc6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGdldFJvdXRlQ29uZmlnID0gKCk6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0XHRjb25zdCBjb25maWdzID0gKGdsb2JhbFRoaXMgYXMgYW55KS5yb3V0ZUNvbmZpZ3MgYXNcclxuXHRcdFx0fCBBcnJheTx7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB2ZXJzaW9uOiBudW1iZXIgfT5cclxuXHRcdFx0fCB1bmRlZmluZWQ7XHJcblx0XHRpZiAoIWNvbmZpZ3MgfHwgIUFycmF5LmlzQXJyYXkoY29uZmlncykpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0Y29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnPycpWzBdO1xyXG5cclxuXHRcdGxldCBiZXN0TWF0Y2g6IHsgcGF0aDogc3RyaW5nOyBjb250ZW50OiBzdHJpbmc7IHZlcnNpb246IG51bWJlciB9IHwgdW5kZWZpbmVkO1xyXG5cclxuXHRcdGZvciAoY29uc3QgY29uZmlnIG9mIGNvbmZpZ3MpIHtcclxuXHRcdFx0aWYgKCFjb25maWcucGF0aCkgY29udGludWU7XHJcblxyXG5cdFx0XHRjb25zdCB1cmxUb0NoZWNrID0gY29uZmlnLnBhdGguc3RhcnRzV2l0aCgnLycpID8gY29uZmlnLnBhdGggOiBgLyR7Y29uZmlnLnBhdGh9YDtcclxuXHJcblx0XHRcdGlmIChjdXJyZW50VXJsLnN0YXJ0c1dpdGgodXJsVG9DaGVjaykpIHtcclxuXHRcdFx0XHRiZXN0TWF0Y2ggPSBjb25maWc7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIWJlc3RNYXRjaCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gSlNPTi5wYXJzZShiZXN0TWF0Y2guY29udGVudCkgYXMgRGV0YWlsQ29uZmlnO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcGFyc2Ugcm91dGUgY29uZmlnIGNvbnRlbnQ6JywgZSk7XHJcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBnZXRQcm9jZXNzZWRUYWJzOiBTaWduYWw8VGFiQ29uZmlnW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZz8udGFicykgcmV0dXJuIFtdO1xyXG5cclxuXHRcdGNvbnN0IGFjdGl2ZUxhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZy50YWJzXHJcblx0XHRcdC5maWx0ZXIoKHRhYikgPT4gdGFiLnZpc2libGUgIT09IGZhbHNlKVxyXG5cdFx0XHQubWFwKCh0YWIpID0+ICh7XHJcblx0XHRcdFx0aWQ6IHRhYi5pZCA/PyBudWxsLFxyXG5cdFx0XHRcdGljb246IHRhYi5pY29uLFxyXG5cdFx0XHRcdGhlYWRlcjogdGFiLmxhYmVsID8gdGFiLmxhYmVsW2FjdGl2ZUxhbmddIDogJycsXHJcblx0XHRcdFx0dmlzaWJsZTogdGFiLnZpc2libGUsXHJcblx0XHRcdFx0cG9zaXRpb246IHRhYi5wb3NpdGlvbixcclxuXHRcdFx0XHRjb21wb25lbnRzOiB0YWIuY29tcG9uZW50cyB8fCBbXVxyXG5cdFx0XHR9KSk7XHJcblx0fSk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoREVUQUlMX0NPTVBPTkVOVCkgcHJpdmF0ZSByZWFkb25seSBkZXRhaWxDb21wb25lbnQ6IERldGFpbENvbXBvbmVudCkge1xyXG5cdFx0dGhpcy5jb25maWcgPSB0aGlzLmdldFJvdXRlQ29uZmlnKCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdChvbkNsZWFudXApID0+IHtcclxuXHRcdFx0XHRpZiAodGhpcy52aWV3c0luaXRpYWxpemVkKCkpIHJldHVybjtcclxuXHJcblx0XHRcdFx0Ly8gUG9sbCBldmVyeSBhbmltYXRpb24gZnJhbWUgdW50aWwgYm90aCBUYWJWaWV3IGFuZCB0aGUgbWVudSBpcyByZWFkeVxyXG5cdFx0XHRcdC8vIFRoZSBtZW51IGNhbiBiZSBkaXJlY3RseSBkZWZpbmVkIGluIHRoZSBjb21wb25lbnQgZnJvbSBpbml0IHN0ZXAsIG9yIGJlIGJ1aWx0IGR5bmFtaWNhbGx5IGFmdGVyIHdhaXRpbmcgZm9yIGEgbmV0d29yayByZXNwb25zZS4gU28gd2UgbXVzdCB3YWl0IGZvciBpdCB0byBiZSByZWFkeS5cclxuXHRcdFx0XHRjb25zdCBjaGVja1ZpZXdzID0gKCkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMgJiYgdGhpcy5kZXRhaWxDb21wb25lbnQubWRJbmZvUGx1Z2luUHJvcHM/LmdlbmVyYWxNZW51KCk/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpZXdzSW5pdGlhbGl6ZWQuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm9uVmlld3NSZWFkeSgpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIGlmICghdGhpcy52aWV3c0luaXRpYWxpemVkKCkpIHtcclxuXHRcdFx0XHRcdFx0ZnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShjaGVja1ZpZXdzKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRsZXQgZnJhbWVJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShjaGVja1ZpZXdzKTtcclxuXHJcblx0XHRcdFx0b25DbGVhbnVwKCgpID0+IHtcclxuXHRcdFx0XHRcdGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uVmlld3NSZWFkeSgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5jb25maWcpIHJldHVybjtcclxuXHJcblx0XHQvLyBzdGVwIDEgLSBoaWRlIHRhYnMgYmFzZWQgb24gY29uZmlnXHJcblx0XHRpZiAodGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldz8udGFicykge1xyXG5cdFx0XHR0aGlzLnVwZGF0ZVRhYlZpc2liaWxpdHkoKTtcclxuXHRcdH1cclxuXHRcdC8vIHN0ZXAgMiAtIGFwcGVuZCBjb25maWcgdGFicyB0byB0aGUgc3RhdGljIHRhYnMgKG9ubHkgbmV3IG9uZXMsIG5vdCB0aG9zZSBtYXRjaGluZyBzdGF0aWMgdGFicylcclxuXHRcdGNvbnN0IGFsbENvbmZpZ1RhYnMgPSB0aGlzLmdldFByb2Nlc3NlZFRhYnMoKTtcclxuXHJcblx0XHQvLyBHZXQgSURzIG9mIGV4aXN0aW5nIHN0YXRpYyB0YWJzXHJcblx0XHRjb25zdCBzdGF0aWNUYWJJZHMgPSBuZXcgU2V0PHN0cmluZyB8IG51bWJlciB8IG51bGw+KCk7XHJcblx0XHRpZiAodGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldz8udGFicykge1xyXG5cdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnMuZm9yRWFjaCgodGFiUGFuZWwpID0+IHtcclxuXHRcdFx0XHRjb25zdCB0YWJJZCA9IHRhYlBhbmVsPy5lbD8ubmF0aXZlRWxlbWVudD8uaWQ7XHJcblx0XHRcdFx0aWYgKHRhYklkKSB7XHJcblx0XHRcdFx0XHRzdGF0aWNUYWJJZHMuYWRkKHRhYklkKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZpbHRlciBvdXQgY29uZmlnIHRhYnMgdGhhdCBhcmUgbWVhbnQgdG8gKnJlb3JkZXIqIGV4aXN0aW5nIHN0YXRpYyB0YWJzLlxyXG5cdFx0Ly8gQW55IHRhYiB3aG9zZSBpZCBtYXRjaGVzIGFuIGV4aXN0aW5nIHN0YXRpYyB0YWIgaWQgaXMgY29uc2lkZXJlZCBhIFwicmVvcmRlclwiXHJcblx0XHQvLyBpbnN0cnVjdGlvbjsgZXZlcnl0aGluZyBlbHNlIChpZCA9PT0gbnVsbCBPUiBhbiBpZCB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0KVxyXG5cdFx0Ly8gaXMgdHJlYXRlZCBhcyBhIGJyYW5kIG5ldyB0YWIuXHJcblx0XHRjb25zdCBuZXdDb25maWdUYWJzID0gYWxsQ29uZmlnVGFicy5maWx0ZXIoKHRhYikgPT4ge1xyXG5cdFx0XHQvLyBuZXcgdGFiIHdoZW4gaWQgaXMgbnVsbC91bmRlZmluZWRcclxuXHRcdFx0aWYgKCF0YWIuaWQpIHJldHVybiB0cnVlO1xyXG5cclxuXHRcdFx0Ly8gbmV3IHRhYiB3aGVuIGlkIGlzIHByb3ZpZGVkIGJ1dCBkb2Vzbid0IG1hdGNoIGFueSBzdGF0aWMgdGFiIGlkXHJcblx0XHRcdHJldHVybiAhc3RhdGljVGFiSWRzLmhhcyh0YWIuaWQpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0aWYgKG5ld0NvbmZpZ1RhYnMubGVuZ3RoID4gMCAmJiB0aGlzLmRldGFpbENvbXBvbmVudC5jb25maWdUYWJzKSB7XHJcblx0XHRcdCh0aGlzLmRldGFpbENvbXBvbmVudC5jb25maWdUYWJzIGFzIGFueSkuc2V0KG5ld0NvbmZpZ1RhYnMpO1xyXG5cdFx0fSBlbHNlIGlmIChuZXdDb25maWdUYWJzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFicyA9IG5ld0NvbmZpZ1RhYnM7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gdXNpbmcgc2V0VGltZW91dCB0byBlbnN1cmUgdGFiVmlldyBpcyByZWFkeSBhcyB3ZSB3YW50IHRvIHdvcmsgZGlyZWN0bHkgd2l0aCB0aGUgZ2VuZXJhdGVkIGVsZW1lbnRzXHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0Ly8gc3RlcCAzIC0gcmVvcmRlciB0YWJzXHJcblx0XHRcdHRoaXMucmVvcmRlclRhYnNCeVBvc2l0aW9uKCk7XHJcblx0XHRcdC8vIHN0ZXAgNCAtIGFjdGl2YXRlIHRhYiBmcm9tIFVSTCBpZiBzcGVjaWZpZWRcclxuXHRcdFx0dGhpcy5hY3RpdmF0ZVRhYkZyb21VcmwoKTtcclxuXHRcdFx0Ly8gc3RlcCA1IC0gdXBkYXRlIHRoZSBtZW51XHJcblx0XHRcdGlmICh0aGlzLmNvbmZpZz8ubWVudSkge1xyXG5cdFx0XHRcdHRoaXMudXBkYXRlTWVudSh0aGlzLmNvbmZpZy5tZW51KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZVRhYlZpc2liaWxpdHkoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY29uZmlnPy50YWJzKSByZXR1cm47XHJcblxyXG5cdFx0Ly8gRmluZCB0YWJzIGluIGNvbmZpZyB0aGF0IGhhdmUgdmlzaWJsZTogZmFsc2VcclxuXHRcdGNvbnN0IGhpZGRlblRhYlBvc2l0aW9ucyA9IHRoaXMuY29uZmlnLnRhYnMuZmlsdGVyKCh0YWIpID0+IHRhYi52aXNpYmxlID09PSBmYWxzZSkubWFwKCh0YWIpID0+IHRhYi5wb3NpdGlvbik7XHJcblxyXG5cdFx0aGlkZGVuVGFiUG9zaXRpb25zLmZvckVhY2goKHBvc2l0aW9uKSA9PiB7XHJcblx0XHRcdHRoaXMuaGlkZVRhYkJ5UG9zaXRpb24ocG9zaXRpb24sIHRydWUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoaWRlVGFiQnlQb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyLCBoaWRlID0gdHJ1ZSk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcGFuZWxUb0hpZGUgPSB0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnNbcG9zaXRpb25dO1xyXG5cdFx0Y29uc3QgdGFiVG9IaWRlID0gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5saXN0Py5jaGlsZHJlbltwb3NpdGlvbl0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG5cdFx0aWYgKHRhYlRvSGlkZSAmJiBwYW5lbFRvSGlkZSkge1xyXG5cdFx0XHRwYW5lbFRvSGlkZS5lbC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IGhpZGU7XHJcblx0XHRcdHRhYlRvSGlkZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVvcmRlciB0YWJzIGJhc2VkIG9uIGNvbmZpZyBwb3NpdGlvbnNcclxuXHQgKiBJdGVyYXRlcyBvdmVyIHZpc2libGUgY29uZmlnIHRhYnMgYW5kIHJlYXJyYW5nZXMgYm90aCBzdGF0aWMgYW5kIGNvbmZpZyB0YWJzXHJcblx0ICovXHJcblx0cHJpdmF0ZSByZW9yZGVyVGFic0J5UG9zaXRpb24oKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMgfHwgIXRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/Lmxpc3QpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBjb25maWdUYWJzID0gdGhpcy5nZXRQcm9jZXNzZWRUYWJzKCk7XHJcblx0XHRjb25zdCBhbGxUYWJzID0gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzO1xyXG5cdFx0Y29uc3QgbmF2TGlzdCA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcubGlzdDtcclxuXHJcblx0XHRjb25zdCBjb25maWdUYWJNYXAgPSBuZXcgTWFwPHN0cmluZyB8IG51bWJlciB8IG51bGwsIFRhYkNvbmZpZz4oKTtcclxuXHRcdGNvbmZpZ1RhYnMuZm9yRWFjaCgodGFiKSA9PiB7XHJcblx0XHRcdC8vIE9ubHkgdHJlYXQgdGFicyB0aGF0IGJvdGg6XHJcblx0XHRcdC8vIC0gaGF2ZSBhbiBpZFxyXG5cdFx0XHQvLyAtIGFuZCBoYXZlIGFuIGV4cGxpY2l0IHBvc2l0aW9uXHJcblx0XHRcdC8vIGFzIFwicmVvcmRlciBpbnN0cnVjdGlvbnNcIiBmb3IgZXhpc3Rpbmcgc3RhdGljIHRhYnMuXHJcblx0XHRcdC8vIFRhYnMgd2l0aG91dCBhIHBvc2l0aW9uIChldmVuIGlmIHRoZXkgaGF2ZSBhbiBpZCkgYXJlIGNvbnNpZGVyZWRcclxuXHRcdFx0Ly8gcmVndWxhci9uZXcgdGFicyBhbmQgc2hvdWxkIGtlZXAgdGhlaXIgbmF0dXJhbCBvcmRlci5cclxuXHRcdFx0aWYgKHRhYi5pZCAmJiB0YWIucG9zaXRpb24pIHtcclxuXHRcdFx0XHRjb25maWdUYWJNYXAuc2V0KHRhYi5pZCwgdGFiKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gc2VwYXJhdGUgc3RhdGljIGZyb20gY29uZmlnIHRhYnNcclxuXHRcdGNvbnN0IHN0YXRpY1RhYnM6IEFycmF5PHsgdGFiOiBhbnk7IGluZGV4OiBudW1iZXI7IGlkOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIH0+ID0gW107XHJcblx0XHRjb25zdCBjb25maWdUYWJJbnN0YW5jZXM6IEFycmF5PHsgdGFiOiBhbnk7IGluZGV4OiBudW1iZXI7IGNvbmZpZzogVGFiQ29uZmlnIH0+ID0gW107XHJcblxyXG5cdFx0YWxsVGFicy5mb3JFYWNoKCh0YWJQYW5lbCwgaW5kZXgpID0+IHtcclxuXHRcdFx0Y29uc3QgdGFiSWQgPSB0YWJQYW5lbD8uZWw/Lm5hdGl2ZUVsZW1lbnQ/LmlkIHx8IG51bGw7XHJcblx0XHRcdGNvbnN0IGNvbmZpZ1RhYiA9IHRhYklkID8gY29uZmlnVGFiTWFwLmdldCh0YWJJZCkgOiBudWxsO1xyXG5cclxuXHRcdFx0aWYgKGNvbmZpZ1RhYikge1xyXG5cdFx0XHRcdGNvbmZpZ1RhYkluc3RhbmNlcy5wdXNoKHsgdGFiOiB0YWJQYW5lbCwgaW5kZXgsIGNvbmZpZzogY29uZmlnVGFiIH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHN0YXRpY1RhYnMucHVzaCh7IHRhYjogdGFiUGFuZWwsIGluZGV4LCBpZDogdGFiSWQgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGNvbnN0IHBvc2l0aW9uTWFwID0gbmV3IE1hcDxudW1iZXIsIHsgdGFiOiBhbnk7IGlzQ29uZmlnOiBib29sZWFuOyBpZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9PigpO1xyXG5cclxuXHRcdC8vIHBsYWNlIGNvbmZpZyB0YWJzIGF0IHRoZWlyIHNwZWNpZmllZCBwb3NpdGlvbnNcclxuXHRcdGNvbmZpZ1RhYkluc3RhbmNlcy5mb3JFYWNoKCh7IHRhYiwgY29uZmlnIH0pID0+IHtcclxuXHRcdFx0aWYgKGNvbmZpZy5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkICYmIGNvbmZpZy5wb3NpdGlvbiAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdHBvc2l0aW9uTWFwLnNldChjb25maWcucG9zaXRpb24sIHsgdGFiLCBpc0NvbmZpZzogdHJ1ZSwgaWQ6IGNvbmZpZy5pZCB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gcGxhY2Ugc3RhdGljIHRhYnMgYXQgYXZhaWxhYmxlIHBvc2l0aW9ucyAobWFpbnRhaW5pbmcgcmVsYXRpdmUgb3JkZXIpXHJcblx0XHRsZXQgc3RhdGljSW5kZXggPSAwO1xyXG5cdFx0bGV0IGN1cnJlbnRQb3NpdGlvbiA9IDA7XHJcblxyXG5cdFx0d2hpbGUgKHN0YXRpY0luZGV4IDwgc3RhdGljVGFicy5sZW5ndGgpIHtcclxuXHRcdFx0d2hpbGUgKHBvc2l0aW9uTWFwLmhhcyhjdXJyZW50UG9zaXRpb24pKSB7XHJcblx0XHRcdFx0Y3VycmVudFBvc2l0aW9uKys7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIHBsYWNlIHN0YXRpYyB0YWIgYXQgdGhpcyBwb3NpdGlvblxyXG5cdFx0XHRjb25zdCBzdGF0aWNUYWIgPSBzdGF0aWNUYWJzW3N0YXRpY0luZGV4XTtcclxuXHRcdFx0cG9zaXRpb25NYXAuc2V0KGN1cnJlbnRQb3NpdGlvbiwgeyB0YWI6IHN0YXRpY1RhYi50YWIsIGlzQ29uZmlnOiBmYWxzZSwgaWQ6IHN0YXRpY1RhYi5pZCB9KTtcclxuXHRcdFx0c3RhdGljSW5kZXgrKztcclxuXHRcdFx0Y3VycmVudFBvc2l0aW9uKys7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gYnVpbGQgb3JkZXJlZCBhcnJheVxyXG5cdFx0Y29uc3Qgc29ydGVkUG9zaXRpb25zID0gQXJyYXkuZnJvbShwb3NpdGlvbk1hcC5rZXlzKCkpLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcclxuXHRcdGNvbnN0IHJlb3JkZXJlZFRhYnM6IGFueVtdID0gW107XHJcblx0XHRjb25zdCByZW9yZGVyZWRIZWFkZXJzOiBIVE1MRWxlbWVudFtdID0gW107XHJcblxyXG5cdFx0c29ydGVkUG9zaXRpb25zLmZvckVhY2goKHBvc2l0aW9uKSA9PiB7XHJcblx0XHRcdGNvbnN0IHRhYkluZm8gPSBwb3NpdGlvbk1hcC5nZXQocG9zaXRpb24pITtcclxuXHRcdFx0cmVvcmRlcmVkVGFicy5wdXNoKHRhYkluZm8udGFiKTtcclxuXHJcblx0XHRcdGNvbnN0IG9yaWdpbmFsSW5kZXggPSBhbGxUYWJzLmluZGV4T2YodGFiSW5mby50YWIpO1xyXG5cdFx0XHRpZiAob3JpZ2luYWxJbmRleCAhPT0gLTEgJiYgbmF2TGlzdC5jaGlsZHJlbltvcmlnaW5hbEluZGV4XSkge1xyXG5cdFx0XHRcdHJlb3JkZXJlZEhlYWRlcnMucHVzaChuYXZMaXN0LmNoaWxkcmVuW29yaWdpbmFsSW5kZXhdIGFzIEhUTUxFbGVtZW50KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gcmVvcmRlciB0YWJzIGFycmF5XHJcblx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnMubGVuZ3RoID0gMDtcclxuXHRcdHJlb3JkZXJlZFRhYnMuZm9yRWFjaCgodGFiKSA9PiB0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3IS50YWJzLnB1c2godGFiKSk7XHJcblxyXG5cdFx0Ly8gcmVvcmRlciBkb20gaGVhZGVyc1xyXG5cdFx0cmVvcmRlcmVkSGVhZGVycy5mb3JFYWNoKChoZWFkZXIsIG5ld0luZGV4KSA9PiB7XHJcblx0XHRcdGNvbnN0IHRhcmdldEhlYWRlciA9IG5hdkxpc3QuY2hpbGRyZW5bbmV3SW5kZXhdO1xyXG5cdFx0XHRpZiAodGFyZ2V0SGVhZGVyICYmIHRhcmdldEhlYWRlciAhPT0gaGVhZGVyKSB7XHJcblx0XHRcdFx0bmF2TGlzdC5pbnNlcnRCZWZvcmUoaGVhZGVyLCB0YXJnZXRIZWFkZXIpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKCF0YXJnZXRIZWFkZXIpIHtcclxuXHRcdFx0XHRuYXZMaXN0LmFwcGVuZENoaWxkKGhlYWRlcik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgZG9tIHBhbmVsc1xyXG5cdFx0Y29uc3QgcGFuZWxzQ29udGFpbmVyID0gYWxsVGFic1swXT8uZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG5cdFx0aWYgKHBhbmVsc0NvbnRhaW5lcikge1xyXG5cdFx0XHRyZW9yZGVyZWRUYWJzLmZvckVhY2goKHRhYlBhbmVsLCBuZXdJbmRleCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHRhcmdldFBhbmVsID0gcGFuZWxzQ29udGFpbmVyLmNoaWxkcmVuW25ld0luZGV4XTtcclxuXHRcdFx0XHRpZiAodGFyZ2V0UGFuZWwgJiYgdGFyZ2V0UGFuZWwgIT09IHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQpIHtcclxuXHRcdFx0XHRcdHBhbmVsc0NvbnRhaW5lci5pbnNlcnRCZWZvcmUodGFiUGFuZWwuZWwubmF0aXZlRWxlbWVudCwgdGFyZ2V0UGFuZWwpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIXRhcmdldFBhbmVsKSB7XHJcblx0XHRcdFx0XHRwYW5lbHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGFiUGFuZWwuZWwubmF0aXZlRWxlbWVudCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5jZCkge1xyXG5cdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LmNkLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhY3RpdmF0ZVRhYkZyb21VcmwoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVUYWJQYXJhbSA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2FjdGl2ZVRhYicpO1xyXG5cdFx0aWYgKGFjdGl2ZVRhYlBhcmFtKSB7XHJcblx0XHRcdGNvbnN0IGFjdGl2ZVRhYkluZGV4ID0gTnVtYmVyKGFjdGl2ZVRhYlBhcmFtKTtcclxuXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQhaXNOYU4oYWN0aXZlVGFiSW5kZXgpICYmXHJcblx0XHRcdFx0YWN0aXZlVGFiSW5kZXggPj0gMCAmJlxyXG5cdFx0XHRcdHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicyAmJlxyXG5cdFx0XHRcdGFjdGl2ZVRhYkluZGV4IDwgdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmxlbmd0aFxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LmFjdGl2ZUluZGV4ID0gYWN0aXZlVGFiSW5kZXg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXBkYXRlTWVudShtZW51Q29uZmlnOiBEZXRhaWxDb25maWdNZW51SXRlbVtdKSB7XHJcblx0XHRjb25zdCBjb250ZXh0ID0ge1xyXG5cdFx0XHRyb3V0ZXI6IHRoaXMucm91dGVyLFxyXG5cdFx0XHRyb3V0ZTogdGhpcy5yb3V0ZSxcclxuXHRcdFx0ZGlhbG9nU2VydmljZTogdGhpcy5kaWFsb2dTZXJ2aWNlLFxyXG5cdFx0XHRjb21wb25lbnQ6IHRoaXMuZGV0YWlsQ29tcG9uZW50XHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IGFjdGl2ZUxhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cdFx0Y29uc3QgZHluYW1pY01lbnU6IE1lbnVJdGVtW10gPSBtZW51Q29uZmlnLm1hcCgobSkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IG0ubGFiZWxbYWN0aXZlTGFuZ10gPz8gJycsXHJcblx0XHRcdGljb246IG0uaWNvbixcclxuXHRcdFx0Y29tbWFuZDogKF9ldmVudDogYW55KSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29tbWFuZEZuID0gbmV3IEZ1bmN0aW9uKCdjdHgnLCBtLmNvbW1hbmQpO1xyXG5cdFx0XHRcdGNvbW1hbmRGbihjb250ZXh0KShjb250ZXh0KTtcclxuXHRcdFx0fVxyXG5cdFx0fSkpO1xyXG5cclxuXHRcdC8vIFVwZGF0ZSB0aGUgZXhpc3Rpbmcgc2lnbmFsIGluc3RlYWQgb2YgcmVwbGFjaW5nIGl0IHRvIGVuc3VyZSBjaGFuZ2VcclxuXHRcdC8vIGRldGVjdGlvbiBwaWNrcyB1cCB0aGUgbWVudSB1cGRhdGUgYWZ0ZXIgYnJvd3NlciBiYWNrIG5hdmlnYXRpb24uXHJcblx0XHRjb25zdCBnZW5lcmFsTWVudVNpZ25hbCA9IHRoaXMuZGV0YWlsQ29tcG9uZW50Lm1kSW5mb1BsdWdpblByb3BzLmdlbmVyYWxNZW51IGFzIGFueTtcclxuXHRcdGNvbnN0IGV4aXN0aW5nTWVudTogTWVudUl0ZW1bXSA9IGdlbmVyYWxNZW51U2lnbmFsKCk7XHJcblxyXG5cdFx0Ly8gQXZvaWQgZHVwbGljYXRpbmcgcHJldmlvdXNseSBhZGRlZCBkeW5hbWljIGl0ZW1zIChpZGVudGlmaWVkIGJ5IGxhYmVsL2ljb24gbWF0Y2gpXHJcblx0XHRjb25zdCBtZXJnZWRNZW51ID0gW1xyXG5cdFx0XHQuLi5leGlzdGluZ01lbnUuZmlsdGVyKChpdGVtKSA9PiAhZHluYW1pY01lbnUuc29tZSgoZHluKSA9PiBkeW4ubGFiZWwgPT09IGl0ZW0ubGFiZWwgJiYgZHluLmljb24gPT09IGl0ZW0uaWNvbikpLFxyXG5cdFx0XHQuLi5keW5hbWljTWVudVxyXG5cdFx0XTtcclxuXHJcblx0XHRpZiAoZ2VuZXJhbE1lbnVTaWduYWw/LnNldCkge1xyXG5cdFx0XHRnZW5lcmFsTWVudVNpZ25hbC5zZXQobWVyZ2VkTWVudSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC5tZEluZm9QbHVnaW5Qcm9wcy5nZW5lcmFsTWVudSA9IHNpZ25hbChtZXJnZWRNZW51KTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvZGlyZWN0aXZlcy9zcmMvZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi9kZXRhaWwtcGFnZS1jdXN0b21pemF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsT0FBTyxFQUNOLGdCQUFnQixFQUloQixxQkFBcUIsRUFFckIsTUFBTSxVQUFVLENBQUM7O0FBS2xCLE1BQU0sT0FBTyxnQ0FBZ0M7SUF1RDVDLFlBQXVELGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXREdEUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDbkUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0QsK0RBQStEO1FBQ3ZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLEdBQTZCLEVBQUU7WUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBRS9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqRCxJQUFJLFNBQXlFLENBQUM7WUFFOUUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO29CQUFFLFNBQVM7Z0JBRTNCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFakYsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLFNBQVMsR0FBRyxNQUFNLENBQUM7b0JBQ25CLE1BQU07Z0JBQ1AsQ0FBQztZQUNGLENBQUM7WUFFRCxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUVqQyxJQUFJLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQWlCLENBQUM7WUFDdEQsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLENBQUM7WUFDbEIsQ0FBQztRQUNGLENBQUMsQ0FBQztRQUVNLHFCQUFnQixHQUF3QixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFFbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXpELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2lCQUNyQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDO2lCQUN0QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2QsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSTtnQkFDbEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2dCQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM5QyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87Z0JBQ3BCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtnQkFDdEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRTthQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBR0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUNMLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFBRSxPQUFPO1lBRXBDLHNFQUFzRTtZQUN0RSxzS0FBc0s7WUFDdEssTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFO2dCQUN2QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUN6RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7cUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7b0JBQ3JDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztZQUNGLENBQUMsQ0FBQztZQUVGLElBQUksT0FBTyxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRWhELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2Qsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFekIscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELGlHQUFpRztRQUNqRyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUU5QyxrQ0FBa0M7UUFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sS0FBSyxHQUFHLFFBQVEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDWCxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLCtFQUErRTtRQUMvRSw2RUFBNkU7UUFDN0UsaUNBQWlDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNsRCxvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXpCLGtFQUFrRTtZQUNsRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxDQUFDO2FBQU0sSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztRQUMzQyxDQUFDO1FBRUQsc0dBQXNHO1FBQ3RHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZix3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsOENBQThDO1lBQzlDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLDJCQUEyQjtZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUk7WUFBRSxPQUFPO1FBRS9CLCtDQUErQztRQUMvQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCLEVBQUUsSUFBSSxHQUFHLElBQUk7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUk7WUFBRSxPQUFPO1FBRWhELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBZ0IsQ0FBQztRQUV2RixJQUFJLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUM5QixXQUFXLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNsQyxDQUFDO0lBQ0YsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSTtZQUFFLE9BQU87UUFFdkYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVsRCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUNsRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDMUIsNkJBQTZCO1lBQzdCLGVBQWU7WUFDZixrQ0FBa0M7WUFDbEMsc0RBQXNEO1lBQ3RELG1FQUFtRTtZQUNuRSx3REFBd0Q7WUFDeEQsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUNuQyxNQUFNLFVBQVUsR0FBbUUsRUFBRSxDQUFDO1FBQ3RGLE1BQU0sa0JBQWtCLEdBQTBELEVBQUUsQ0FBQztRQUVyRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFHLFFBQVEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUM7WUFDdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFekQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUN0RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUF1RSxDQUFDO1FBRW5HLGlEQUFpRDtRQUNqRCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQzlDLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDL0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILHdFQUF3RTtRQUN4RSxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRXhCLE9BQU8sV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsZUFBZSxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUVELG9DQUFvQztZQUNwQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RixXQUFXLEVBQUUsQ0FBQztZQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxhQUFhLEdBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQztRQUUzQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQztZQUMzQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuRCxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBZ0IsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM3QyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFN0Usc0JBQXNCO1FBQ3RCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUM3QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksWUFBWSxJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUNuRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzVDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZELElBQUksV0FBVyxJQUFJLFdBQVcsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUM5RCxlQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO3FCQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUNGLENBQUM7SUFFTyxrQkFBa0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztZQUFFLE9BQU87UUFFMUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUU5QyxJQUNDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDdEIsY0FBYyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUk7Z0JBQ2pDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUN4RCxDQUFDO2dCQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7WUFDM0QsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRU8sVUFBVSxDQUFDLFVBQWtDO1FBQ3BELE1BQU0sT0FBTyxHQUFHO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQy9CLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQWUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ2hDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtZQUNaLE9BQU8sRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQztTQUNELENBQUMsQ0FBQyxDQUFDO1FBRUosc0VBQXNFO1FBQ3RFLG9FQUFvRTtRQUNwRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsV0FBa0IsQ0FBQztRQUNwRixNQUFNLFlBQVksR0FBZSxpQkFBaUIsRUFBRSxDQUFDO1FBRXJELG9GQUFvRjtRQUNwRixNQUFNLFVBQVUsR0FBRztZQUNsQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hILEdBQUcsV0FBVztTQUNkLENBQUM7UUFFRixJQUFJLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzVCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0YsQ0FBQzs4R0FoVVcsZ0NBQWdDLGtCQXVEeEIsZ0JBQWdCO2tHQXZEeEIsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUg1QyxTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjs7MEJBd0RhLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIFNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuXHJcbmltcG9ydCB7XHJcblx0REVUQUlMX0NPTVBPTkVOVCxcclxuXHREZXRhaWxDb21wb25lbnQsXHJcblx0RGV0YWlsQ29uZmlnLFxyXG5cdERldGFpbENvbmZpZ01lbnVJdGVtLFxyXG5cdFBMVUdJTl9ESUFMT0dfU0VSVklDRSxcclxuXHRUYWJDb25maWdcclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxQYWdlQ3VzdG9taXphdGlvbkRpcmVjdGl2ZSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoUExVR0lOX0RJQUxPR19TRVJWSUNFKTsgLy8gVXNlIHRva2VuIGluc3RlYWRcclxuXHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcblxyXG5cdC8vIEludGVybmFsIHNpZ25hbCB0byB0cmFjayB3aGVuIFRhYlZpZXcgYW5kIHRoZSBtZW51IGFyZSByZWFkeVxyXG5cdHByaXZhdGUgdmlld3NJbml0aWFsaXplZCA9IHNpZ25hbChmYWxzZSk7XHJcblx0cHJpdmF0ZSBjb25maWc6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGdldFJvdXRlQ29uZmlnID0gKCk6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0XHRjb25zdCBjb25maWdzID0gYnJpZGdlLnJvdXRlQ29uZmlncygpO1xyXG5cdFx0aWYgKCFjb25maWdzKSByZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXTtcclxuXHJcblx0XHRsZXQgYmVzdE1hdGNoOiB7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB2ZXJzaW9uOiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcblx0XHRcdGlmICghY29uZmlnLnBhdGgpIGNvbnRpbnVlO1xyXG5cclxuXHRcdFx0Y29uc3QgdXJsVG9DaGVjayA9IGNvbmZpZy5wYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IGNvbmZpZy5wYXRoIDogYC8ke2NvbmZpZy5wYXRofWA7XHJcblxyXG5cdFx0XHRpZiAoY3VycmVudFVybC5zdGFydHNXaXRoKHVybFRvQ2hlY2spKSB7XHJcblx0XHRcdFx0YmVzdE1hdGNoID0gY29uZmlnO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFiZXN0TWF0Y2gpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoYmVzdE1hdGNoLmNvbnRlbnQpIGFzIERldGFpbENvbmZpZztcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHJvdXRlIGNvbmZpZyBjb250ZW50OicsIGUpO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgZ2V0UHJvY2Vzc2VkVGFiczogU2lnbmFsPFRhYkNvbmZpZ1tdPiA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICghdGhpcy5jb25maWc/LnRhYnMpIHJldHVybiBbXTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcudGFic1xyXG5cdFx0XHQuZmlsdGVyKCh0YWIpID0+IHRhYi52aXNpYmxlICE9PSBmYWxzZSlcclxuXHRcdFx0Lm1hcCgodGFiKSA9PiAoe1xyXG5cdFx0XHRcdGlkOiB0YWIuaWQgPz8gbnVsbCxcclxuXHRcdFx0XHRpY29uOiB0YWIuaWNvbixcclxuXHRcdFx0XHRoZWFkZXI6IHRhYi5sYWJlbCA/IHRhYi5sYWJlbFthY3RpdmVMYW5nXSA6ICcnLFxyXG5cdFx0XHRcdHZpc2libGU6IHRhYi52aXNpYmxlLFxyXG5cdFx0XHRcdHBvc2l0aW9uOiB0YWIucG9zaXRpb24sXHJcblx0XHRcdFx0Y29tcG9uZW50czogdGFiLmNvbXBvbmVudHMgfHwgW11cclxuXHRcdFx0fSkpO1xyXG5cdH0pO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KERFVEFJTF9DT01QT05FTlQpIHByaXZhdGUgcmVhZG9ubHkgZGV0YWlsQ29tcG9uZW50OiBEZXRhaWxDb21wb25lbnQpIHtcclxuXHRcdHRoaXMuY29uZmlnID0gdGhpcy5nZXRSb3V0ZUNvbmZpZygpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQob25DbGVhbnVwKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMudmlld3NJbml0aWFsaXplZCgpKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdC8vIFBvbGwgZXZlcnkgYW5pbWF0aW9uIGZyYW1lIHVudGlsIGJvdGggVGFiVmlldyBhbmQgdGhlIG1lbnUgaXMgcmVhZHlcclxuXHRcdFx0XHQvLyBUaGUgbWVudSBjYW4gYmUgZGlyZWN0bHkgZGVmaW5lZCBpbiB0aGUgY29tcG9uZW50IGZyb20gaW5pdCBzdGVwLCBvciBiZSBidWlsdCBkeW5hbWljYWxseSBhZnRlciB3YWl0aW5nIGZvciBhIG5ldHdvcmsgcmVzcG9uc2UuIFNvIHdlIG11c3Qgd2FpdCBmb3IgaXQgdG8gYmUgcmVhZHkuXHJcblx0XHRcdFx0Y29uc3QgY2hlY2tWaWV3cyA9ICgpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzICYmIHRoaXMuZGV0YWlsQ29tcG9uZW50Lm1kSW5mb1BsdWdpblByb3BzPy5nZW5lcmFsTWVudSgpPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3c0luaXRpYWxpemVkLnNldCh0cnVlKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5vblZpZXdzUmVhZHkoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIXRoaXMudmlld3NJbml0aWFsaXplZCgpKSB7XHJcblx0XHRcdFx0XHRcdGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0bGV0IGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblxyXG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XHJcblx0XHRcdFx0XHRjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBvblZpZXdzUmVhZHkoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY29uZmlnKSByZXR1cm47XHJcblxyXG5cdFx0Ly8gc3RlcCAxIC0gaGlkZSB0YWJzIGJhc2VkIG9uIGNvbmZpZ1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy51cGRhdGVUYWJWaXNpYmlsaXR5KCk7XHJcblx0XHR9XHJcblx0XHQvLyBzdGVwIDIgLSBhcHBlbmQgY29uZmlnIHRhYnMgdG8gdGhlIHN0YXRpYyB0YWJzIChvbmx5IG5ldyBvbmVzLCBub3QgdGhvc2UgbWF0Y2hpbmcgc3RhdGljIHRhYnMpXHJcblx0XHRjb25zdCBhbGxDb25maWdUYWJzID0gdGhpcy5nZXRQcm9jZXNzZWRUYWJzKCk7XHJcblxyXG5cdFx0Ly8gR2V0IElEcyBvZiBleGlzdGluZyBzdGF0aWMgdGFic1xyXG5cdFx0Y29uc3Qgc3RhdGljVGFiSWRzID0gbmV3IFNldDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmZvckVhY2goKHRhYlBhbmVsKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdGFiSWQgPSB0YWJQYW5lbD8uZWw/Lm5hdGl2ZUVsZW1lbnQ/LmlkO1xyXG5cdFx0XHRcdGlmICh0YWJJZCkge1xyXG5cdFx0XHRcdFx0c3RhdGljVGFiSWRzLmFkZCh0YWJJZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaWx0ZXIgb3V0IGNvbmZpZyB0YWJzIHRoYXQgYXJlIG1lYW50IHRvICpyZW9yZGVyKiBleGlzdGluZyBzdGF0aWMgdGFicy5cclxuXHRcdC8vIEFueSB0YWIgd2hvc2UgaWQgbWF0Y2hlcyBhbiBleGlzdGluZyBzdGF0aWMgdGFiIGlkIGlzIGNvbnNpZGVyZWQgYSBcInJlb3JkZXJcIlxyXG5cdFx0Ly8gaW5zdHJ1Y3Rpb247IGV2ZXJ5dGhpbmcgZWxzZSAoaWQgPT09IG51bGwgT1IgYW4gaWQgdGhhdCBkb2Vzbid0IGV4aXN0IHlldClcclxuXHRcdC8vIGlzIHRyZWF0ZWQgYXMgYSBicmFuZCBuZXcgdGFiLlxyXG5cdFx0Y29uc3QgbmV3Q29uZmlnVGFicyA9IGFsbENvbmZpZ1RhYnMuZmlsdGVyKCh0YWIpID0+IHtcclxuXHRcdFx0Ly8gbmV3IHRhYiB3aGVuIGlkIGlzIG51bGwvdW5kZWZpbmVkXHJcblx0XHRcdGlmICghdGFiLmlkKSByZXR1cm4gdHJ1ZTtcclxuXHJcblx0XHRcdC8vIG5ldyB0YWIgd2hlbiBpZCBpcyBwcm92aWRlZCBidXQgZG9lc24ndCBtYXRjaCBhbnkgc3RhdGljIHRhYiBpZFxyXG5cdFx0XHRyZXR1cm4gIXN0YXRpY1RhYklkcy5oYXModGFiLmlkKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGlmIChuZXdDb25maWdUYWJzLmxlbmd0aCA+IDAgJiYgdGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicykge1xyXG5cdFx0XHQodGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicyBhcyBhbnkpLnNldChuZXdDb25maWdUYWJzKTtcclxuXHRcdH0gZWxzZSBpZiAobmV3Q29uZmlnVGFicy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYnMgPSBuZXdDb25maWdUYWJzO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIHVzaW5nIHNldFRpbWVvdXQgdG8gZW5zdXJlIHRhYlZpZXcgaXMgcmVhZHkgYXMgd2Ugd2FudCB0byB3b3JrIGRpcmVjdGx5IHdpdGggdGhlIGdlbmVyYXRlZCBlbGVtZW50c1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdC8vIHN0ZXAgMyAtIHJlb3JkZXIgdGFic1xyXG5cdFx0XHR0aGlzLnJlb3JkZXJUYWJzQnlQb3NpdGlvbigpO1xyXG5cdFx0XHQvLyBzdGVwIDQgLSBhY3RpdmF0ZSB0YWIgZnJvbSBVUkwgaWYgc3BlY2lmaWVkXHJcblx0XHRcdHRoaXMuYWN0aXZhdGVUYWJGcm9tVXJsKCk7XHJcblx0XHRcdC8vIHN0ZXAgNSAtIHVwZGF0ZSB0aGUgbWVudVxyXG5cdFx0XHRpZiAodGhpcy5jb25maWc/Lm1lbnUpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZU1lbnUodGhpcy5jb25maWcubWVudSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVUYWJWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdC8vIEZpbmQgdGFicyBpbiBjb25maWcgdGhhdCBoYXZlIHZpc2libGU6IGZhbHNlXHJcblx0XHRjb25zdCBoaWRkZW5UYWJQb3NpdGlvbnMgPSB0aGlzLmNvbmZpZy50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIudmlzaWJsZSA9PT0gZmFsc2UpLm1hcCgodGFiKSA9PiB0YWIucG9zaXRpb24pO1xyXG5cclxuXHRcdGhpZGRlblRhYlBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHR0aGlzLmhpZGVUYWJCeVBvc2l0aW9uKHBvc2l0aW9uLCB0cnVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGlkZVRhYkJ5UG9zaXRpb24ocG9zaXRpb246IG51bWJlciwgaGlkZSA9IHRydWUpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhbmVsVG9IaWRlID0gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzW3Bvc2l0aW9uXTtcclxuXHRcdGNvbnN0IHRhYlRvSGlkZSA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcubGlzdD8uY2hpbGRyZW5bcG9zaXRpb25dIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuXHRcdGlmICh0YWJUb0hpZGUgJiYgcGFuZWxUb0hpZGUpIHtcclxuXHRcdFx0cGFuZWxUb0hpZGUuZWwubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBoaWRlO1xyXG5cdFx0XHR0YWJUb0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlb3JkZXIgdGFicyBiYXNlZCBvbiBjb25maWcgcG9zaXRpb25zXHJcblx0ICogSXRlcmF0ZXMgb3ZlciB2aXNpYmxlIGNvbmZpZyB0YWJzIGFuZCByZWFycmFuZ2VzIGJvdGggc3RhdGljIGFuZCBjb25maWcgdGFic1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVvcmRlclRhYnNCeVBvc2l0aW9uKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzIHx8ICF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py5saXN0KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFicyA9IHRoaXMuZ2V0UHJvY2Vzc2VkVGFicygpO1xyXG5cdFx0Y29uc3QgYWxsVGFicyA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicztcclxuXHRcdGNvbnN0IG5hdkxpc3QgPSB0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Lmxpc3Q7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFiTWFwID0gbmV3IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBudWxsLCBUYWJDb25maWc+KCk7XHJcblx0XHRjb25maWdUYWJzLmZvckVhY2goKHRhYikgPT4ge1xyXG5cdFx0XHQvLyBPbmx5IHRyZWF0IHRhYnMgdGhhdCBib3RoOlxyXG5cdFx0XHQvLyAtIGhhdmUgYW4gaWRcclxuXHRcdFx0Ly8gLSBhbmQgaGF2ZSBhbiBleHBsaWNpdCBwb3NpdGlvblxyXG5cdFx0XHQvLyBhcyBcInJlb3JkZXIgaW5zdHJ1Y3Rpb25zXCIgZm9yIGV4aXN0aW5nIHN0YXRpYyB0YWJzLlxyXG5cdFx0XHQvLyBUYWJzIHdpdGhvdXQgYSBwb3NpdGlvbiAoZXZlbiBpZiB0aGV5IGhhdmUgYW4gaWQpIGFyZSBjb25zaWRlcmVkXHJcblx0XHRcdC8vIHJlZ3VsYXIvbmV3IHRhYnMgYW5kIHNob3VsZCBrZWVwIHRoZWlyIG5hdHVyYWwgb3JkZXIuXHJcblx0XHRcdGlmICh0YWIuaWQgJiYgdGFiLnBvc2l0aW9uKSB7XHJcblx0XHRcdFx0Y29uZmlnVGFiTWFwLnNldCh0YWIuaWQsIHRhYik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHNlcGFyYXRlIHN0YXRpYyBmcm9tIGNvbmZpZyB0YWJzXHJcblx0XHRjb25zdCBzdGF0aWNUYWJzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBpZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9PiA9IFtdO1xyXG5cdFx0Y29uc3QgY29uZmlnVGFiSW5zdGFuY2VzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBjb25maWc6IFRhYkNvbmZpZyB9PiA9IFtdO1xyXG5cclxuXHRcdGFsbFRhYnMuZm9yRWFjaCgodGFiUGFuZWwsIGluZGV4KSA9PiB7XHJcblx0XHRcdGNvbnN0IHRhYklkID0gdGFiUGFuZWw/LmVsPy5uYXRpdmVFbGVtZW50Py5pZCB8fCBudWxsO1xyXG5cdFx0XHRjb25zdCBjb25maWdUYWIgPSB0YWJJZCA/IGNvbmZpZ1RhYk1hcC5nZXQodGFiSWQpIDogbnVsbDtcclxuXHJcblx0XHRcdGlmIChjb25maWdUYWIpIHtcclxuXHRcdFx0XHRjb25maWdUYWJJbnN0YW5jZXMucHVzaCh7IHRhYjogdGFiUGFuZWwsIGluZGV4LCBjb25maWc6IGNvbmZpZ1RhYiB9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzdGF0aWNUYWJzLnB1c2goeyB0YWI6IHRhYlBhbmVsLCBpbmRleCwgaWQ6IHRhYklkIH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRjb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBNYXA8bnVtYmVyLCB7IHRhYjogYW55OyBpc0NvbmZpZzogYm9vbGVhbjsgaWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfT4oKTtcclxuXHJcblx0XHQvLyBwbGFjZSBjb25maWcgdGFicyBhdCB0aGVpciBzcGVjaWZpZWQgcG9zaXRpb25zXHJcblx0XHRjb25maWdUYWJJbnN0YW5jZXMuZm9yRWFjaCgoeyB0YWIsIGNvbmZpZyB9KSA9PiB7XHJcblx0XHRcdGlmIChjb25maWcucG9zaXRpb24gIT09IHVuZGVmaW5lZCAmJiBjb25maWcucG9zaXRpb24gIT09IG51bGwpIHtcclxuXHRcdFx0XHRwb3NpdGlvbk1hcC5zZXQoY29uZmlnLnBvc2l0aW9uLCB7IHRhYiwgaXNDb25maWc6IHRydWUsIGlkOiBjb25maWcuaWQgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHBsYWNlIHN0YXRpYyB0YWJzIGF0IGF2YWlsYWJsZSBwb3NpdGlvbnMgKG1haW50YWluaW5nIHJlbGF0aXZlIG9yZGVyKVxyXG5cdFx0bGV0IHN0YXRpY0luZGV4ID0gMDtcclxuXHRcdGxldCBjdXJyZW50UG9zaXRpb24gPSAwO1xyXG5cclxuXHRcdHdoaWxlIChzdGF0aWNJbmRleCA8IHN0YXRpY1RhYnMubGVuZ3RoKSB7XHJcblx0XHRcdHdoaWxlIChwb3NpdGlvbk1hcC5oYXMoY3VycmVudFBvc2l0aW9uKSkge1xyXG5cdFx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBwbGFjZSBzdGF0aWMgdGFiIGF0IHRoaXMgcG9zaXRpb25cclxuXHRcdFx0Y29uc3Qgc3RhdGljVGFiID0gc3RhdGljVGFic1tzdGF0aWNJbmRleF07XHJcblx0XHRcdHBvc2l0aW9uTWFwLnNldChjdXJyZW50UG9zaXRpb24sIHsgdGFiOiBzdGF0aWNUYWIudGFiLCBpc0NvbmZpZzogZmFsc2UsIGlkOiBzdGF0aWNUYWIuaWQgfSk7XHJcblx0XHRcdHN0YXRpY0luZGV4Kys7XHJcblx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGJ1aWxkIG9yZGVyZWQgYXJyYXlcclxuXHRcdGNvbnN0IHNvcnRlZFBvc2l0aW9ucyA9IEFycmF5LmZyb20ocG9zaXRpb25NYXAua2V5cygpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcblx0XHRjb25zdCByZW9yZGVyZWRUYWJzOiBhbnlbXSA9IFtdO1xyXG5cdFx0Y29uc3QgcmVvcmRlcmVkSGVhZGVyczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuXHRcdHNvcnRlZFBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHRjb25zdCB0YWJJbmZvID0gcG9zaXRpb25NYXAuZ2V0KHBvc2l0aW9uKSE7XHJcblx0XHRcdHJlb3JkZXJlZFRhYnMucHVzaCh0YWJJbmZvLnRhYik7XHJcblxyXG5cdFx0XHRjb25zdCBvcmlnaW5hbEluZGV4ID0gYWxsVGFicy5pbmRleE9mKHRhYkluZm8udGFiKTtcclxuXHRcdFx0aWYgKG9yaWdpbmFsSW5kZXggIT09IC0xICYmIG5hdkxpc3QuY2hpbGRyZW5bb3JpZ2luYWxJbmRleF0pIHtcclxuXHRcdFx0XHRyZW9yZGVyZWRIZWFkZXJzLnB1c2gobmF2TGlzdC5jaGlsZHJlbltvcmlnaW5hbEluZGV4XSBhcyBIVE1MRWxlbWVudCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgdGFicyBhcnJheVxyXG5cdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmxlbmd0aCA9IDA7XHJcblx0XHRyZW9yZGVyZWRUYWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldyEudGFicy5wdXNoKHRhYikpO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgZG9tIGhlYWRlcnNcclxuXHRcdHJlb3JkZXJlZEhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBuZXdJbmRleCkgPT4ge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRIZWFkZXIgPSBuYXZMaXN0LmNoaWxkcmVuW25ld0luZGV4XTtcclxuXHRcdFx0aWYgKHRhcmdldEhlYWRlciAmJiB0YXJnZXRIZWFkZXIgIT09IGhlYWRlcikge1xyXG5cdFx0XHRcdG5hdkxpc3QuaW5zZXJ0QmVmb3JlKGhlYWRlciwgdGFyZ2V0SGVhZGVyKTtcclxuXHRcdFx0fSBlbHNlIGlmICghdGFyZ2V0SGVhZGVyKSB7XHJcblx0XHRcdFx0bmF2TGlzdC5hcHBlbmRDaGlsZChoZWFkZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyByZW9yZGVyIGRvbSBwYW5lbHNcclxuXHRcdGNvbnN0IHBhbmVsc0NvbnRhaW5lciA9IGFsbFRhYnNbMF0/LmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuXHRcdGlmIChwYW5lbHNDb250YWluZXIpIHtcclxuXHRcdFx0cmVvcmRlcmVkVGFicy5mb3JFYWNoKCh0YWJQYW5lbCwgbmV3SW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCB0YXJnZXRQYW5lbCA9IHBhbmVsc0NvbnRhaW5lci5jaGlsZHJlbltuZXdJbmRleF07XHJcblx0XHRcdFx0aWYgKHRhcmdldFBhbmVsICYmIHRhcmdldFBhbmVsICE9PSB0YWJQYW5lbC5lbC5uYXRpdmVFbGVtZW50KSB7XHJcblx0XHRcdFx0XHRwYW5lbHNDb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQsIHRhcmdldFBhbmVsKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCF0YXJnZXRQYW5lbCkge1xyXG5cdFx0XHRcdFx0cGFuZWxzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcuY2QpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYWN0aXZhdGVUYWJGcm9tVXJsKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgYWN0aXZlVGFiUGFyYW0gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdhY3RpdmVUYWInKTtcclxuXHRcdGlmIChhY3RpdmVUYWJQYXJhbSkge1xyXG5cdFx0XHRjb25zdCBhY3RpdmVUYWJJbmRleCA9IE51bWJlcihhY3RpdmVUYWJQYXJhbSk7XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0IWlzTmFOKGFjdGl2ZVRhYkluZGV4KSAmJlxyXG5cdFx0XHRcdGFjdGl2ZVRhYkluZGV4ID49IDAgJiZcclxuXHRcdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnMgJiZcclxuXHRcdFx0XHRhY3RpdmVUYWJJbmRleCA8IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicy5sZW5ndGhcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5hY3RpdmVJbmRleCA9IGFjdGl2ZVRhYkluZGV4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZU1lbnUobWVudUNvbmZpZzogRGV0YWlsQ29uZmlnTWVudUl0ZW1bXSkge1xyXG5cdFx0Y29uc3QgY29udGV4dCA9IHtcclxuXHRcdFx0cm91dGVyOiB0aGlzLnJvdXRlcixcclxuXHRcdFx0cm91dGU6IHRoaXMucm91dGUsXHJcblx0XHRcdGRpYWxvZ1NlcnZpY2U6IHRoaXMuZGlhbG9nU2VydmljZSxcclxuXHRcdFx0Y29tcG9uZW50OiB0aGlzLmRldGFpbENvbXBvbmVudFxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdGNvbnN0IGR5bmFtaWNNZW51OiBNZW51SXRlbVtdID0gbWVudUNvbmZpZy5tYXAoKG0pID0+ICh7XHJcblx0XHRcdGxhYmVsOiBtLmxhYmVsW2FjdGl2ZUxhbmddID8/ICcnLFxyXG5cdFx0XHRpY29uOiBtLmljb24sXHJcblx0XHRcdGNvbW1hbmQ6IChfZXZlbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbW1hbmRGbiA9IG5ldyBGdW5jdGlvbignY3R4JywgbS5jb21tYW5kKTtcclxuXHRcdFx0XHRjb21tYW5kRm4oY29udGV4dCkoY29udGV4dCk7XHJcblx0XHRcdH1cclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIHNpZ25hbCBpbnN0ZWFkIG9mIHJlcGxhY2luZyBpdCB0byBlbnN1cmUgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gcGlja3MgdXAgdGhlIG1lbnUgdXBkYXRlIGFmdGVyIGJyb3dzZXIgYmFjayBuYXZpZ2F0aW9uLlxyXG5cdFx0Y29uc3QgZ2VuZXJhbE1lbnVTaWduYWwgPSB0aGlzLmRldGFpbENvbXBvbmVudC5tZEluZm9QbHVnaW5Qcm9wcy5nZW5lcmFsTWVudSBhcyBhbnk7XHJcblx0XHRjb25zdCBleGlzdGluZ01lbnU6IE1lbnVJdGVtW10gPSBnZW5lcmFsTWVudVNpZ25hbCgpO1xyXG5cclxuXHRcdC8vIEF2b2lkIGR1cGxpY2F0aW5nIHByZXZpb3VzbHkgYWRkZWQgZHluYW1pYyBpdGVtcyAoaWRlbnRpZmllZCBieSBsYWJlbC9pY29uIG1hdGNoKVxyXG5cdFx0Y29uc3QgbWVyZ2VkTWVudSA9IFtcclxuXHRcdFx0Li4uZXhpc3RpbmdNZW51LmZpbHRlcigoaXRlbSkgPT4gIWR5bmFtaWNNZW51LnNvbWUoKGR5bikgPT4gZHluLmxhYmVsID09PSBpdGVtLmxhYmVsICYmIGR5bi5pY29uID09PSBpdGVtLmljb24pKSxcclxuXHRcdFx0Li4uZHluYW1pY01lbnVcclxuXHRcdF07XHJcblxyXG5cdFx0aWYgKGdlbmVyYWxNZW51U2lnbmFsPy5zZXQpIHtcclxuXHRcdFx0Z2VuZXJhbE1lbnVTaWduYWwuc2V0KG1lcmdlZE1lbnUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQubWRJbmZvUGx1Z2luUHJvcHMuZ2VuZXJhbE1lbnUgPSBzaWduYWwobWVyZ2VkTWVudSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -8,6 +8,7 @@ import { a as appName, m as menuItems } from './aril.mjs';
8
8
  import * as i1 from '@angular/router';
9
9
  import * as i2 from '@ngneat/transloco';
10
10
  import * as i4 from 'primeng/api';
11
+ import * as i3 from 'aril/boot/bridge';
11
12
  import '@angular/common/http';
12
13
  import '@angular/platform-browser';
13
14
  import '@angular/platform-browser/animations';
@@ -24,26 +25,28 @@ import '@angular/elements';
24
25
  import 'ngx-monaco-editor-v2';
25
26
  import 'aril/util/loaders';
26
27
 
27
- /* eslint-disable @typescript-eslint/no-explicit-any */
28
28
  class AppComponent {
29
- constructor(router, translocoService, appMenuService, primeNgConfig) {
29
+ constructor(router, translocoService, appMenuService, primeNgConfig, bridgeSvc) {
30
30
  this.router = router;
31
31
  this.translocoService = translocoService;
32
32
  this.appMenuService = appMenuService;
33
33
  this.primeNgConfig = primeNgConfig;
34
- this.isHostMode = globalThis.isHostMode;
35
- if (!this.isHostMode && !globalThis.ngZone) {
36
- globalThis.ngZone = inject(NgZone);
34
+ this.bridgeSvc = bridgeSvc;
35
+ if (!this.bridgeSvc.isHostMode() && !this.bridgeSvc.hostNgZone) {
36
+ this.bridgeSvc.hostNgZone = inject(NgZone);
37
37
  }
38
38
  connectRouter(this.router, true);
39
- globalThis.activeMF = appName;
39
+ this.bridgeSvc.activeMF.set(appName);
40
40
  const lang = localStorage.getItem('lang') ?? LanguageCode.TR;
41
41
  this.translocoService.setActiveLang(lang);
42
42
  this.setLocale(lang);
43
- if (!this.isHostMode) {
43
+ if (!this.bridgeSvc.isHostMode()) {
44
44
  this.appMenuService.menuConfig.set({ items: structuredClone(menuItems), prefix: appName });
45
45
  }
46
46
  }
47
+ get isHostMode() {
48
+ return this.bridgeSvc.isHostMode;
49
+ }
47
50
  setLocale(lang) {
48
51
  if (!lang?.length) {
49
52
  console.warn('No language selected');
@@ -53,9 +56,9 @@ class AppComponent {
53
56
  this.primeNgConfig.setTranslation(TR_TRANSLATIONS);
54
57
  }
55
58
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppComponent, deps: [{ token: i1.Router }, { token: i2.TranslocoService }, { token: i1$1.AppMenuService }, { token: i4.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppComponent, deps: [{ token: i1.Router }, { token: i2.TranslocoService }, { token: i1$1.AppMenuService }, { token: i4.PrimeNGConfig }, { token: i3.MfeBridge }], target: i0.ɵɵFactoryTarget.Component }); }
57
60
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
58
- @if (isHostMode) {
61
+ @if (isHostMode()) {
59
62
  <mfe-layout></mfe-layout>
60
63
  } @else {
61
64
  <app-layout></app-layout>
@@ -67,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
67
70
  args: [{
68
71
  standalone: true,
69
72
  template: `
70
- @if (isHostMode) {
73
+ @if (isHostMode()) {
71
74
  <mfe-layout></mfe-layout>
72
75
  } @else {
73
76
  <app-layout></app-layout>
@@ -75,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
75
78
  `,
76
79
  imports: [ModuleFederationToolsModule, AppLayoutComponent, MFELayoutComponent]
77
80
  }]
78
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.TranslocoService }, { type: i1$1.AppMenuService }, { type: i4.PrimeNGConfig }] });
81
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.TranslocoService }, { type: i1$1.AppMenuService }, { type: i4.PrimeNGConfig }, { type: i3.MfeBridge }] });
79
82
 
80
83
  export { AppComponent };
81
- //# sourceMappingURL=aril-app.component-hxaLgwmC.mjs.map
84
+ //# sourceMappingURL=aril-app.component-FxPod9bE.mjs.map