@resolveio/client-lib-core 15.1.12 → 15.1.14

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.
@@ -56,6 +56,7 @@ export class CoreComponent extends BaseComponent {
56
56
  this.isOffline = false;
57
57
  this.foundUpdate = false;
58
58
  this.orientation = 'portrait';
59
+ this.isDigitalSignature = false;
59
60
  }
60
61
  ngOnInit() {
61
62
  this._services._app.setEnvironment(this.environment);
@@ -263,6 +264,9 @@ export class CoreComponent extends BaseComponent {
263
264
  let firstRedirect = false;
264
265
  let lastURL = this._storage.get('lastURL');
265
266
  this._services._router.events.subscribe((event) => {
267
+ if (event.url.startsWith('/digital-sign?')) {
268
+ this.isDigitalSignature = true;
269
+ }
266
270
  if (lastURL && lastURL !== '/' && !firstRedirect) {
267
271
  if (event.url === '' || event.url === '/') {
268
272
  this._services._router.navigateByUrl(lastURL);
@@ -343,10 +347,10 @@ export class CoreComponent extends BaseComponent {
343
347
  }
344
348
  }
345
349
  CoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CoreComponent, deps: [{ token: i1.DeviceDetectorService }, { token: i2.DialogService }, { token: i3.ResizeService }, { token: i4.ProviderService }, { token: i5.OfflineManagerService }, { token: i6.LocalStorageService }, { token: i7.AuthService }, { token: i8.AuthPermissionService }], target: i0.ɵɵFactoryTarget.Component });
346
- CoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CoreComponent, selector: "resolveio-client-lib-core", inputs: { environment: "environment", logo: "logo", navTabs: "navTabs", userHasPhoneNumber: "userHasPhoneNumber", client: "client", showNavbarModule: "showNavbarModule", publicProgram: "publicProgram" }, providers: [ProviderService], viewQueries: [{ propertyName: "el_navBarMain", first: true, predicate: ["navBarMain"], descendants: true, read: ElementRef, static: true }, { propertyName: "el_navBarModule", first: true, predicate: ["navBarModule"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [publicProgram]=\"publicProgram\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 45 + 'px' : null\" [style.padding]=\"((isDevice && windowSizeWidth <= 1200) || !showNavbarModule) ? 0 + 'px' : null\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\" style=\"padding-right: 5px\">\n\t\t\t\t<div style=\"-webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice && windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - (!publicProgram ? statusHeight : 0) - (!publicProgram ? connectedHeight : 0) - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n", styles: ["\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n"], dependencies: [{ kind: "directive", type: i9.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i11.NavbarMainComponent, selector: "navbar-main", inputs: ["logo", "navTabs", "fontSize", "publicProgram"] }, { kind: "component", type: i12.NavbarModuleComponent, selector: "navbar-module", inputs: ["sideNavHeight", "sideNavWidth"] }] });
350
+ CoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CoreComponent, selector: "resolveio-client-lib-core", inputs: { environment: "environment", logo: "logo", navTabs: "navTabs", userHasPhoneNumber: "userHasPhoneNumber", client: "client", showNavbarModule: "showNavbarModule", publicProgram: "publicProgram" }, providers: [ProviderService], viewQueries: [{ propertyName: "el_navBarMain", first: true, predicate: ["navBarMain"], descendants: true, read: ElementRef, static: true }, { propertyName: "el_navBarModule", first: true, predicate: ["navBarModule"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline) && !publicProgram && !isDigitalSignature\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && !publicProgram && !isDigitalSignature\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [publicProgram]=\"publicProgram || isDigitalSignature\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu && !isDigitalSignature\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\" *ngIf=\"isDigitalSignature\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 45 + 'px' : null\" [style.padding]=\"((isDevice && windowSizeWidth <= 1200) || !showNavbarModule) ? 0 + 'px' : null\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\" style=\"padding-right: 5px\">\n\t\t\t\t<div style=\"-webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice && windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - (!publicProgram && !isDigitalSignature ? statusHeight : 0) - (!publicProgram && !isDigitalSignature ? connectedHeight : 0) - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n", styles: ["\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n"], dependencies: [{ kind: "directive", type: i9.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i11.NavbarMainComponent, selector: "navbar-main", inputs: ["logo", "navTabs", "fontSize", "publicProgram"] }, { kind: "component", type: i12.NavbarModuleComponent, selector: "navbar-module", inputs: ["sideNavHeight", "sideNavWidth"] }] });
347
351
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CoreComponent, decorators: [{
348
352
  type: Component,
349
- args: [{ providers: [ProviderService], selector: 'resolveio-client-lib-core', template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [publicProgram]=\"publicProgram\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 45 + 'px' : null\" [style.padding]=\"((isDevice && windowSizeWidth <= 1200) || !showNavbarModule) ? 0 + 'px' : null\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\" style=\"padding-right: 5px\">\n\t\t\t\t<div style=\"-webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice && windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - (!publicProgram ? statusHeight : 0) - (!publicProgram ? connectedHeight : 0) - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n" }]
353
+ args: [{ providers: [ProviderService], selector: 'resolveio-client-lib-core', template: "<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline) && !publicProgram && !isDigitalSignature\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && !publicProgram && !isDigitalSignature\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [publicProgram]=\"publicProgram || isDigitalSignature\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu && !isDigitalSignature\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\" *ngIf=\"isDigitalSignature\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 45 + 'px' : null\" [style.padding]=\"((isDevice && windowSizeWidth <= 1200) || !showNavbarModule) ? 0 + 'px' : null\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\" style=\"padding-right: 5px\">\n\t\t\t\t<div style=\"-webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice && windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - (!publicProgram && !isDigitalSignature ? statusHeight : 0) - (!publicProgram && !isDigitalSignature ? connectedHeight : 0) - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">&copy; {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n" }]
350
354
  }], ctorParameters: function () { return [{ type: i1.DeviceDetectorService }, { type: i2.DialogService }, { type: i3.ResizeService }, { type: i4.ProviderService }, { type: i5.OfflineManagerService }, { type: i6.LocalStorageService }, { type: i7.AuthService }, { type: i8.AuthPermissionService }]; }, propDecorators: { environment: [{
351
355
  type: Input,
352
356
  args: ['environment']
@@ -387,4 +391,4 @@ function hexToRGB(hex, alpha) {
387
391
  return "rgb(" + r + ", " + g + ", " + b + ")";
388
392
  }
389
393
  }
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQTJDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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RSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDSSxlQUFlO3NCQUEzRSxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQzs7QUE2VzVELFNBQVMscUJBQXFCO0lBQ3ZCLFFBQVEsQ0FBQyxhQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLO0lBQ3hCLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDakMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDakMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0QyxJQUFJLEtBQUssRUFBRTtRQUNQLE9BQU8sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7S0FDakU7U0FBTTtRQUNILE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pEO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEFwcFN0YXR1c01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXBwLXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcbmltcG9ydCB7IFJlc2l6ZVNlcnZpY2UgfSBmcm9tICcuL3V0aWwvd2luZG93LXJlc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vb2ZmbGluZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJ25neC1sb2NhbHN0b3JhZ2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoL2F1dGgtcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmVUb2FzdCB9IGZyb20gJ25neC10b2FzdHInO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdyZXNvbHZlaW8tY2xpZW50LWxpYi1jb3JlJyxcblx0dGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50O1xuXHRASW5wdXQoJ2xvZ28nKSBsb2dvID0gJyc7XG5cdEBJbnB1dCgnbmF2VGFicycpIG5hdlRhYnMgPSAnJztcblx0QElucHV0KCd1c2VySGFzUGhvbmVOdW1iZXInKSB1c2VySGFzUGhvbmVOdW1iZXIgPSBmYWxzZTtcblx0QElucHV0KCdjbGllbnQnKSBjbGllbnQgPSAnJztcblx0QElucHV0KCdzaG93TmF2YmFyTW9kdWxlJykgc2hvd05hdmJhck1vZHVsZSA9IHRydWU7XG5cdEBJbnB1dCgncHVibGljUHJvZ3JhbScpIHB1YmxpY1Byb2dyYW0gPSBmYWxzZTtcblxuXHRAVmlld0NoaWxkKCduYXZCYXJNYWluJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1haW46IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1vZHVsZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNb2R1bGU6IEVsZW1lbnRSZWY7XG5cblx0eWVhcjogc3RyaW5nID0gKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcblxuXHRmdWxsU2NyZWVuID0gZmFsc2U7XG5cblx0d2luZG93U2l6ZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0d2luZG93U2l6ZVdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cblx0bmF2YmFyTWFpbkhlaWdodCA9IDA7XG5cdHN0YXR1c0hlaWdodCA9IDA7XG5cdGNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdGlzRGV2aWNlID0gZmFsc2U7XG5cdHNob3dOYXZpZ2F0aW9uTWVudSA9IGZhbHNlO1xuXG5cdHN3RmxhZ0FsZXJ0OiBBY3RpdmVUb2FzdDxhbnk+ID0gbnVsbDtcblx0XG5cdGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdGlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRzb2NrZXRTdGF0dXM6IG51bWJlcjtcblxuXHR1c2VyOiBVc2VyTW9kZWw7XG5cdHN0YXR1czogQXBwU3RhdHVzTW9kZWw7XG5cblx0Y29sbGFwc2FibGVNZW51ID0gdHJ1ZTtcblx0Zm9udFNpemUgPSAxMjtcblx0b3BlbmVkV2luZG93ID0gZmFsc2U7XG5cblx0aXNPZmZsaW5lID0gZmFsc2U7XG5cdGZvdW5kVXBkYXRlID0gZmFsc2U7XG5cblx0b3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXG5cdC8vIHByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZXZpY2VEZXQ6IERldmljZURldGVjdG9yU2VydmljZSwgcHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX3Jlc2l6ZVNlcnZpY2U6IFJlc2l6ZVNlcnZpY2UsIHB1YmxpYyBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9zdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBfYXBzOiBBdXRoUGVybWlzc2lvblNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50KTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldENsaWVudCh0aGlzLmNsaWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXROYXZUYWJzKHRoaXMubmF2VGFicyk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pbml0TG9naW5NYW5hZ2VyKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdFxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50ICYmIHRoaXMuZW52aXJvbm1lbnQuTVNfQUxMT1dFRCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXR1cE1TU2luZ2xlU2lnbk9uKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLmVudmlyb25tZW50KSB7XG5cdFx0XHR0aGlzLl9hdXRoLnNldEVudmlyb25tZW50KHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2F1dGguc2V0VXNlckhhc1Bob25lTnVtYmVyKHRoaXMudXNlckhhc1Bob25lTnVtYmVyKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q3VzdG9tSG9tZVBhZ2UodGhpcy5jdXN0b21Ib21lUGFnZSk7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldExvZ28odGhpcy5sb2dvKTtcblxuXHRcdHRoaXMuX3Jlc2l6ZVNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgodmFsKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplSGVpZ2h0ID0gdmFsLmlubmVySGVpZ2h0O1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVXaWR0aCA9IHZhbC5pbm5lcldpZHRoO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9KTtcblx0XHRcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmZ1bGxTY3JlZW4uc3Vic2NyaWJlKGZ1bGxTY3JlZW4gPT4ge1xuXHRcdFx0dGhpcy5mdWxsU2NyZWVuID0gZnVsbFNjcmVlbjtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0aWYgKHVzZXIgJiYgdXNlci5zZXR0aW5ncykge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNhYmxlTWVudSA9IHVzZXIuc2V0dGluZ3MuY29sbGFwc2FibGVfbWVudTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IHVzZXIuc2V0dGluZ3MuZm9udF9zaXplO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmluZm9fY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh1c2VyICYmICghdXNlci5vdGhlclsnY3VzdG9tZXJzJ10gfHwgIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddLmxlbmd0aCkgJiYgIXVzZXIub3RoZXJbJ2lkX2N1c3RvbWVyJ10gJiYgIXVzZXIuc2V0dGluZ3MgJiYgIXRoaXMub3BlbmVkV2luZG93KSB7XG5cdFx0XHRcdHRoaXMub3BlbmVkV2luZG93ID0gdHJ1ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0XHR0aGlzLl9kcy5ub3RpZnkoJ0hlbGxvLCAnICsgdXNlci5mdWxsbmFtZSArICcgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gdXNlciBzZXR0aW5ncyBzYXZlZCBmb3IgeW91LiBUbyBhZGp1c3QgeW91ciB1c2VyIHNldHRpbmdzIGNsaWNrIHlvdXIgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG5leHQgdG8gdGhlIGxvZ291dCBidXR0b24sIGFkanVzdCBhbnkgc2V0dGluZ3MgeW91IHdhbnQsIHRoZW4gY2xpY2sgc3VibWl0IHRvIGFwcGx5IHRoZW0uJyk7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5zcGxpdCgnLycpWzBdICsgJy91c2VyLXNldHRpbmdzL3NldHRpbmdzJylcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cdFx0fSk7XG5cblx0XHQvLyBpZiAoIXRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIpIHtcblx0XHQvLyBcdHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlcjtcblx0XHQvLyBcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycjogYW55KSB7XHRcblx0XHQvLyBcdFx0cmV0dXJuIHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIuYXBwbHkodGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciwgYXJndW1lbnRzKTtcblx0XHQvLyBcdH07XG5cdFx0Ly8gfVxuXG5cdFx0aWYgKHRoaXMuX2RldmljZURldC5pc01vYmlsZSgpIHx8IHRoaXMuX2RldmljZURldC5pc1RhYmxldCgpKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKHRydWUpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IHRydWU7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZShmYWxzZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuSVNfUFJPRFVDVElPTikge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgnZmxhZ1dpdGhUeXBlJywgJ25ld1NXJykuc3Vic2NyaWJlKGZsYWcgPT4ge1xuXHRcdFx0XHRpZiAoZmxhZykge1xuXHRcdFx0XHRcdHRoaXMuc3dGbGFnQWxlcnQgPSB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ2luZm8nLCAnVGhpcyBwYWdlIHdpbGwgcmVsb2FkIG9uY2UgbmV3IHZlcnNpb24gaGFzIGJlZW4gZG93bmxvYWRlZCcsIDApO1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkU1codHJ1ZSk7XG5cblx0XHRcdFx0XHRpZiAoIW5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKSB7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0fSwgMzAwMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4ocmVnaXN0cmF0aW9ucyA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICghcmVnaXN0cmF0aW9ucyB8fCAhcmVnaXN0cmF0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdFx0XHRcdFx0XHR9LCAzMDAwKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSwgZXJyID0+IHtcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0XHR9LCAzMDAwKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnN3RmxhZ0FsZXJ0KSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0ludmFsaWRTVyhmYWxzZSk7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LmNsZWFyQWxlcnQodGhpcy5zd0ZsYWdBbGVydC50b2FzdElkKTtcblx0XHRcdFx0XHR0aGlzLnN3RmxhZ0FsZXJ0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5zdWJzY3JpYmUob2ZmbGluZSA9PiB7XG5cdFx0XHR0aGlzLmlzT2ZmbGluZSA9IG9mZmxpbmU7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRTb2NrZXRTdGF0dXMoKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc29ja2V0U3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0XG5cdFx0XHRpZiAoIXRoaXMudXNlcikge1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cblx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdhcHBzdGF0dXMnKS5zdWJzY3JpYmUoYXBwc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc3RhdHVzID0gYXBwc3RhdHVzOyAvL09LIGlmIG5vdCBkZWZpbmVkXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEhhc1N0YXR1c01lc3NhZ2UodGhpcy5zdGF0dXMgPyB0cnVlIDogZmFsc2UpO1xuXHRcdFx0dGhpcy5zdGF0dXNIZWlnaHQgPSB0aGlzLnN0YXR1cyA/IDQwIDogMDtcblx0XHR9KTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDEwMCk7XG5cdFx0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwMCk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCA1MDAwKTtcblxuXHRcdGlmICh0aGlzLmlzRGV2aWNlKSB7XG5cdFx0XHRsZXQgZmlyc3RSZWRpcmVjdCA9IGZhbHNlO1xuXHRcdFx0bGV0IGxhc3RVUkwgPSB0aGlzLl9zdG9yYWdlLmdldCgnbGFzdFVSTCcpO1xuXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG5cdFx0XHRcdGlmIChsYXN0VVJMICYmIGxhc3RVUkwgIT09ICcvJyAmJiAhZmlyc3RSZWRpcmVjdCkge1xuXHRcdFx0XHRcdGlmIChldmVudC51cmwgPT09ICcnIHx8IGV2ZW50LnVybCA9PT0gJy8nKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGFzdFVSTCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zmlyc3RSZWRpcmVjdCA9IHRydWU7XG5cblx0XHRcdFx0aWYgKGV2ZW50LnVybCkge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChldmVudC51cmxBZnRlclJlZGlyZWN0cykge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuXHRcdFx0XHR9XHRcdFx0XHRcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlmIChbJ2lQYWQnLCAnaVBob25lJywgJ2lQb2QnXS5pbmRleE9mKG5hdmlnYXRvci5wbGF0Zm9ybSkgPj0gMCAmJiAoJ3N0YW5kYWxvbmUnIGluIHdpbmRvdy5uYXZpZ2F0b3IpICYmICg8YW55PndpbmRvdy5uYXZpZ2F0b3IpLnN0YW5kYWxvbmUpIHtcblx0XHRcdHRoaXMuc2hvd05hdmlnYXRpb25NZW51ID0gdHJ1ZTtcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSAtOTApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdsYW5kc2NhcGUnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gOTApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdsYW5kc2NhcGUnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gMCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ3BvcnRyYWl0Jztcblx0XHRcdH1cblx0XHR9LCB0cnVlKTtcblxuXHRcdGxldCBtb3VzZXdoZWVsRXZlbnQ7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSA9PT0gJ0lOUFVUJyAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Wyd0eXBlJ10gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgbW91c2V3aGVlbEV2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgaGFuZGxlTW91c2V3aGVlbEV2ZW50LCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRydWUpO1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmIChtb3VzZXdoZWVsRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBtb3VzZXdoZWVsRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgaGFuZGxlTW91c2V3aGVlbEV2ZW50KTtcbiAgICAgICAgICAgIH1cblx0XHR9LCB0cnVlKTtcblx0XHRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCAoZSkgPT4ge1xuXHRcdFx0bGV0IGV2ID0gZSB8fCBldmVudDtcblx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSwgZmFsc2UpO1xuXHRcdFxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGUpID0+IHtcblx0XHRcdGxldCBldiA9IGUgfHwgZXZlbnQ7XG5cdFx0XHRldi5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0sIGZhbHNlKTtcblx0fVxuXG5cdGdldE5hdmJhck1vZHVsZUhlaWdodCgpIHtcblx0XHRyZXR1cm4gdGhpcy5lbF9uYXZCYXJNb2R1bGUgPyB0aGlzLmVsX25hdkJhck1vZHVsZS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodCA6IDA7XG5cdH1cblxuXHRvblB1c2hCYWNrQnV0dG9uKCkge1xuXHRcdHdpbmRvdy5oaXN0b3J5LmJhY2soKTtcblx0fVxuXG5cdG9uUHVzaFJlbG9hZEJ1dHRvbigpIHtcblx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG5cdH1cblxuXHRvblB1c2hGb3J3YXJkQnV0dG9uKCkge1xuXHRcdHdpbmRvdy5oaXN0b3J5LmZvcndhcmQoKTtcblx0fVxuXG5cdG9wZW5OYXYoKSB7XG5cdFx0bGV0IHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2U2lkJyk7XG5cdFx0bGV0IHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9jb250Jyk7XG5cdFx0aWYgKHguc3R5bGUud2lkdGggPT09ICc0MHB4JyAmJiB5LnN0eWxlLnBhZGRpbmdMZWZ0ID09PSAnNDVweCcpIHtcblx0XHRcdHguc3R5bGUud2lkdGggPSAnMTk1cHgnO1xuXHRcdFx0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICcyMTBweCc7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0eC5zdHlsZS53aWR0aCA9ICc0MHB4Jztcblx0XHRcdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnNDVweCc7XG5cdFx0fVxuXHR9XG5cdFx0XG5cdGNsb3NlTmF2KCkge1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZTaWQnKS5zdHlsZS53aWR0aCA9ICc0MHB4Jztcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9jb250Jykuc3R5bGUucGFkZGluZ0xlZnQgPSAnNDVweCc7XHRcblx0fVxufVxuXG5mdW5jdGlvbiBoYW5kbGVNb3VzZXdoZWVsRXZlbnQoKSB7XG5cdCg8YW55PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLmJsdXIoKTtcbn1cblxuZnVuY3Rpb24gaGV4VG9SR0IoaGV4LCBhbHBoYSkge1xuICAgIGxldCByID0gcGFyc2VJbnQoaGV4LnNsaWNlKDEsIDMpLCAxNiksXG4gICAgICAgIGcgPSBwYXJzZUludChoZXguc2xpY2UoMywgNSksIDE2KSxcbiAgICAgICAgYiA9IHBhcnNlSW50KGhleC5zbGljZSg1LCA3KSwgMTYpO1xuXG4gICAgaWYgKGFscGhhKSB7XG4gICAgICAgIHJldHVybiBcInJnYmEoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIiwgXCIgKyBhbHBoYSArIFwiKVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcInJnYihcIiArIHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYiArIFwiKVwiO1xuICAgIH1cbn0iLCI8c3R5bGU+XG5cdDpyb290IHtcbiAgICAgICAgLS13YXJuaW5nLWNvbG9yOiAjZmZjMTA3O1xuICAgICAgICAtLXdhcm5pbmctZm9udC1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgLS13YXJuaW5nLWhvdmVyLWNvbG9yOiAjZTBhODAwO1xuICAgICAgICAtLXdhcm5pbmctc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgyMjIsIDE3MCwgMTIsIDAuNSk7XG4gICAgICAgIC0tc3VjY2Vzcy1jb2xvcjogIzI4YTc0NTtcbiAgICAgICAgLS1zdWNjZXNzLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc3VjY2Vzcy1ob3Zlci1jb2xvcjogIzIxODgzODtcbiAgICAgICAgLS1zdWNjZXNzLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNzIsIDE4MCwgOTcsIDAuNSk7XG4gICAgICAgIC0tZGFuZ2VyLWNvbG9yOiAjZGMzNTQ1O1xuICAgICAgICAtLWRhbmdlci1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLWRhbmdlci1ob3Zlci1jb2xvcjogI2M4MjMzMztcbiAgICAgICAgLS1kYW5nZXItc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KTtcbiAgICAgICAgLS1pbmZvLWNvbG9yOiAjMTdhMmI4O1xuICAgICAgICAtLWluZm8tZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1pbmZvLWhvdmVyLWNvbG9yOiAjMTM4NDk2O1xuICAgICAgICAtLWluZm8tc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSg1OCwgMTc2LCAxOTUsIDAuNSk7XG4gICAgICAgIC0tcHJpbWFyeS1jb2xvcjogIzAwN2JmZjtcbiAgICAgICAgLS1wcmltYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tcHJpbWFyeS1ob3Zlci1jb2xvcjogIzAwNjlkOTtcbiAgICAgICAgLS1wcmltYXJ5LXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMzgsIDE0MywgMjU1LCAwLjUpO1xuICAgICAgICAtLXNlY29uZGFyeS1jb2xvcjogIzg2OGU5NjtcbiAgICAgICAgLS1zZWNvbmRhcnktZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1zZWNvbmRhcnktaG92ZXItY29sb3I6ICM1YTYyNjg7XG4gICAgICAgIC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KTtcbiAgICB9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZyB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXdhcm5pbmctc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0td2FybmluZy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmctaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2VzcyB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzOmZvY3VzLCAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc3VjY2Vzcy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MtaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyIHtcblx0XHRjb2xvcjogdmFyKC0tZGFuZ2VyLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhbmdlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlcjpmb2N1cywgLmJ0bi1kYW5nZXIuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWRhbmdlci1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlcjpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm8ge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbzpmb2N1cywgLmJ0bi1pbmZvLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1pbmZvLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWluZm8tZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1pbmZvLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeTpmb2N1cywgLmJ0bi1wcmltYXJ5LmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1wcmltYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeSB7XG5cdFx0Y29sb3I6IHZhcigtLXNlY29uZGFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5LmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblx0XG4gIFx0QG1lZGlhIHByaW50IHtcblx0ICBcdC5kb250UHJpbnQgKiB7XG5cdFx0ICBcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0ICBcdH1cblxuXHRcdC5teURpdlRvUHJpbnRDcyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdFx0XHRwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcblx0XHRcdGRpc3BsYXk6IGluaXRpYWw7XG5cdFx0fVxuXG5cdFx0LnJlbW92ZU92ZXJmbG93IHtcblx0XHRcdG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyBcblx0XHRcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdH1cbiAgXHR9XG5cbiAgXHQuaGlkZVRoaXMge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC5uYXZTaWRiYXIge1xuXHRcdHdpZHRoOiAwcHg7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IDAuNXM7XG5cdFx0cGFkZGluZy10b3A6IDBweDtcblx0fVxuXG5cdC5uYXZTaWRiYXIgYSB7XG5cdFx0cGFkZGluZzogOHB4IDhweCA4cHggMzJweDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdGNvbG9yOiAjODE4MTgxO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cdH1cblxuXHQubmF2U2lkYmFyIGE6aG92ZXIge1xuXHRcdGNvbG9yOiAjZjFmMWYxO1xuXHR9XG5cblx0Lm9wZW5idG4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmc6IDVweCAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDBweDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogOTk5OTk5O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0Lm9wZW5idG4gc3BhbiB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR3aWR0aDogYXV0bztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTkwZGVnKTtcblx0XHRtYXJnaW4tdG9wOiAtNTVweDtcblx0XHRsZXR0ZXItc3BhY2luZzogMzBweDtcblx0fVxuXHQjbWFpbl9jb250IHtcblx0XHR0cmFuc2l0aW9uOiBwYWRkaW5nLWxlZnQgLjVzO1xuXHR9XG5cblx0LnNpZF9pbnIge1xuXHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0fVxuXG5cdEBrZXlmcmFtZXMgc2hpbW1lciB7XG4gICAgICAgIDAlLCA1MCUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTIwJSAwO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwJSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNoaW1tZXI6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAtNzVkZWcsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDQwJSwgXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgNTAlLCBcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNjAlXG4gICAgICAgICk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgICAgICBhbmltYXRpb246IHNoaW1tZXIgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgfVxuPC9zdHlsZT5cbjxkaXYgKm5nSWY9XCJpc0RldmljZVwiPlxuXHQ8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cIi9hc3NldHMvY3NzL3RhYmxldC5jc3NcIj5cbjwvZGl2PlxuPGRpdiAjc2hlbGw+XG5cdDxkaXYgKm5nSWY9XCJ1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKSAmJiAhcHVibGljUHJvZ3JhbVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIiBjbGFzcz1cInNoaW1tZXJcIj4qKiogT0ZGTElORSBNT0RFICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cIiF1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKSAmJiAhcHVibGljUHJvZ3JhbVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIiBjbGFzcz1cInNoaW1tZXJcIj4qKiogUExFQVNFIExPR0lOICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cInN0YXR1c1wiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIiBjbGFzcz1cInNoaW1tZXJcIj4qKioge3sgc3RhdHVzLm1lc3NhZ2UgfX0gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwiZnVsbFNjcmVlblwiPlxuXHRcdDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJqb2Jib2FyZGZzb3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxuXHQ8L2Rpdj5cblx0PGRpdiBbbmdDbGFzc109XCJbJ2NvbnRhaW5lci1mbHVpZCcsIGZ1bGxTY3JlZW4gPyAnaGlkZVRoaXMnIDogJyddXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDxuYXZiYXItbWFpbiBzdHlsZT1cIndpZHRoOiAxMDAlXCIgdG91ckFuY2hvcj1cIm5hdkJhck1haW5cIiAjbmF2QmFyTWFpbiBbbG9nb109XCJsb2dvXCIgW25hdlRhYnNdPVwibmF2VGFic1wiIFtmb250U2l6ZV09XCJmb250U2l6ZVwiIFtwdWJsaWNQcm9ncmFtXT1cInB1YmxpY1Byb2dyYW1cIj48L25hdmJhci1tYWluPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZSBuZ2JNb2RhbENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgaWQ9XCJuYXZTaWRcIiAqbmdJZj1cInNob3dOYXZiYXJNb2R1bGVcIiBbbmdDbGFzc109XCJbJ2RvbnRQcmludCcsIHdpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ25hdlNpZGJhcicgOiAnY29sLXhsLTEnXVwiIFtzdHlsZS53aWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDQwICsgJ3B4JyA6IDEwMCArICclJ1wiIFtzdHlsZS5tYXJnaW4tdG9wLnB4XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gbmF2YmFyTWFpbkhlaWdodCArIHN0YXR1c0hlaWdodCArIGNvbm5lY3RlZEhlaWdodCA6IDBcIiA+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJvcGVuYnRuXCIgKm5nSWY9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudVwiIChtb3VzZWVudGVyKT1cIm9wZW5OYXYoKVwiPjxzcGFuPk1FTlU8L3NwYW4+PC9kaXY+XG5cdFx0XHRcdDxkaXYgW25nQ2xhc3NdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnc2lkX2lucicgOiAnJ1wiPlxuXHRcdFx0XHRcdDxuYXZiYXItbW9kdWxlICNuYXZCYXJNb2R1bGUgdG91ckFuY2hvcj1cIm5hdkJhck1vZHVsZVwiIFtzaWRlTmF2V2lkdGhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnOTAlJyA6ICdhdXRvJ1wiIFtzaWRlTmF2SGVpZ2h0XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gd2luZG93U2l6ZUhlaWdodCAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyAyMCA6IDApIDogJydcIj48L25hdmJhci1tb2R1bGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IFtpZF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwID8gJ21haW5fY29udCcgOiAnbWFpbl9jb250X21vYmlsZSdcIiBbbmdDbGFzc109XCJbd2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnY29sLXhsLTEyJyA6ICdjb2wteGwtMTEnXVwiIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgJiYgc2hvd05hdmJhck1vZHVsZSA/IDQ1ICsgJ3B4JyA6IG51bGxcIiBbc3R5bGUucGFkZGluZ109XCIoKGlzRGV2aWNlICYmIHdpbmRvd1NpemVXaWR0aCA8PSAxMjAwKSB8fCAhc2hvd05hdmJhck1vZHVsZSkgPyAwICsgJ3B4JyA6IG51bGxcIiAobW91c2VlbnRlcik9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSAmJiBzaG93TmF2YmFyTW9kdWxlID8gY2xvc2VOYXYoKSA6IG51bGxcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDVweFwiPlxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwiLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoXCIgW3N0eWxlLm92ZXJmbG93LXldPVwiKGlzRGV2aWNlICYmICFzaG93TmF2aWdhdGlvbk1lbnUpID8gJ2luaXRpYWwnIDogJ3Njcm9sbCdcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIndpbmRvd1NpemVIZWlnaHQgLSAoKGlzRGV2aWNlICYmIHdpbmRvd1NpemVXaWR0aCA8PSAxMjAwKSAmJiAhc2hvd05hdmlnYXRpb25NZW51ID8gKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSA6IDApIC0gbmF2YmFyTWFpbkhlaWdodCAtICghcHVibGljUHJvZ3JhbSA/IHN0YXR1c0hlaWdodCA6IDApIC0gKCFwdWJsaWNQcm9ncmFtID8gY29ubmVjdGVkSGVpZ2h0IDogMCkgLSAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDIwIDogMClcIiBjbGFzcz1cInJlbW92ZU92ZXJmbG93XCI+XG5cdFx0XHRcdFx0PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnVcIiBzdHlsZT1cImhlaWdodDogNTRweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCIgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDx0YWJsZSBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG5cdFx0XHRcdDx0cj5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoQmFja0J1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1sZWZ0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hSZWxvYWRCdXR0b24oKVwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoRm9yd2FyZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1yaWdodFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0PC90cj5cblx0XHRcdDwvdGFibGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFpc0RldmljZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBoZWlnaHQ6IDIwcHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgbWFyZ2luLWxlZnQ6IC0xNXB4OyBtYXJnaW4tcmlnaHQ6IC0xNXB4O1wiPiZjb3B5OyB7e3llYXJ9fSBSRVNPTFZFSU8gQUxMIFJJR0hUUyBSRVNFUlZFRDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQTZDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEFwcFN0YXR1c01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXBwLXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcbmltcG9ydCB7IFJlc2l6ZVNlcnZpY2UgfSBmcm9tICcuL3V0aWwvd2luZG93LXJlc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vb2ZmbGluZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJ25neC1sb2NhbHN0b3JhZ2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoL2F1dGgtcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmVUb2FzdCB9IGZyb20gJ25neC10b2FzdHInO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdyZXNvbHZlaW8tY2xpZW50LWxpYi1jb3JlJyxcblx0dGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50O1xuXHRASW5wdXQoJ2xvZ28nKSBsb2dvID0gJyc7XG5cdEBJbnB1dCgnbmF2VGFicycpIG5hdlRhYnMgPSAnJztcblx0QElucHV0KCd1c2VySGFzUGhvbmVOdW1iZXInKSB1c2VySGFzUGhvbmVOdW1iZXIgPSBmYWxzZTtcblx0QElucHV0KCdjbGllbnQnKSBjbGllbnQgPSAnJztcblx0QElucHV0KCdzaG93TmF2YmFyTW9kdWxlJykgc2hvd05hdmJhck1vZHVsZSA9IHRydWU7XG5cdEBJbnB1dCgncHVibGljUHJvZ3JhbScpIHB1YmxpY1Byb2dyYW0gPSBmYWxzZTtcblxuXHRAVmlld0NoaWxkKCduYXZCYXJNYWluJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1haW46IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1vZHVsZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNb2R1bGU6IEVsZW1lbnRSZWY7XG5cblx0eWVhcjogc3RyaW5nID0gKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcblxuXHRmdWxsU2NyZWVuID0gZmFsc2U7XG5cblx0d2luZG93U2l6ZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0d2luZG93U2l6ZVdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cblx0bmF2YmFyTWFpbkhlaWdodCA9IDA7XG5cdHN0YXR1c0hlaWdodCA9IDA7XG5cdGNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdGlzRGV2aWNlID0gZmFsc2U7XG5cdHNob3dOYXZpZ2F0aW9uTWVudSA9IGZhbHNlO1xuXG5cdHN3RmxhZ0FsZXJ0OiBBY3RpdmVUb2FzdDxhbnk+ID0gbnVsbDtcblx0XG5cdGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdGlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRzb2NrZXRTdGF0dXM6IG51bWJlcjtcblxuXHR1c2VyOiBVc2VyTW9kZWw7XG5cdHN0YXR1czogQXBwU3RhdHVzTW9kZWw7XG5cblx0Y29sbGFwc2FibGVNZW51ID0gdHJ1ZTtcblx0Zm9udFNpemUgPSAxMjtcblx0b3BlbmVkV2luZG93ID0gZmFsc2U7XG5cblx0aXNPZmZsaW5lID0gZmFsc2U7XG5cdGZvdW5kVXBkYXRlID0gZmFsc2U7XG5cblx0b3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXG5cdGlzRGlnaXRhbFNpZ25hdHVyZSA9IGZhbHNlO1xuXG5cdC8vIHByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZXZpY2VEZXQ6IERldmljZURldGVjdG9yU2VydmljZSwgcHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX3Jlc2l6ZVNlcnZpY2U6IFJlc2l6ZVNlcnZpY2UsIHB1YmxpYyBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9zdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBfYXBzOiBBdXRoUGVybWlzc2lvblNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50KTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldENsaWVudCh0aGlzLmNsaWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXROYXZUYWJzKHRoaXMubmF2VGFicyk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pbml0TG9naW5NYW5hZ2VyKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdFxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50ICYmIHRoaXMuZW52aXJvbm1lbnQuTVNfQUxMT1dFRCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXR1cE1TU2luZ2xlU2lnbk9uKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLmVudmlyb25tZW50KSB7XG5cdFx0XHR0aGlzLl9hdXRoLnNldEVudmlyb25tZW50KHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2F1dGguc2V0VXNlckhhc1Bob25lTnVtYmVyKHRoaXMudXNlckhhc1Bob25lTnVtYmVyKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q3VzdG9tSG9tZVBhZ2UodGhpcy5jdXN0b21Ib21lUGFnZSk7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldExvZ28odGhpcy5sb2dvKTtcblxuXHRcdHRoaXMuX3Jlc2l6ZVNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgodmFsKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplSGVpZ2h0ID0gdmFsLmlubmVySGVpZ2h0O1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVXaWR0aCA9IHZhbC5pbm5lcldpZHRoO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9KTtcblx0XHRcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmZ1bGxTY3JlZW4uc3Vic2NyaWJlKGZ1bGxTY3JlZW4gPT4ge1xuXHRcdFx0dGhpcy5mdWxsU2NyZWVuID0gZnVsbFNjcmVlbjtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0aWYgKHVzZXIgJiYgdXNlci5zZXR0aW5ncykge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNhYmxlTWVudSA9IHVzZXIuc2V0dGluZ3MuY29sbGFwc2FibGVfbWVudTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IHVzZXIuc2V0dGluZ3MuZm9udF9zaXplO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmluZm9fY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh1c2VyICYmICghdXNlci5vdGhlclsnY3VzdG9tZXJzJ10gfHwgIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddLmxlbmd0aCkgJiYgIXVzZXIub3RoZXJbJ2lkX2N1c3RvbWVyJ10gJiYgIXVzZXIuc2V0dGluZ3MgJiYgIXRoaXMub3BlbmVkV2luZG93KSB7XG5cdFx0XHRcdHRoaXMub3BlbmVkV2luZG93ID0gdHJ1ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0XHR0aGlzLl9kcy5ub3RpZnkoJ0hlbGxvLCAnICsgdXNlci5mdWxsbmFtZSArICcgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gdXNlciBzZXR0aW5ncyBzYXZlZCBmb3IgeW91LiBUbyBhZGp1c3QgeW91ciB1c2VyIHNldHRpbmdzIGNsaWNrIHlvdXIgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG5leHQgdG8gdGhlIGxvZ291dCBidXR0b24sIGFkanVzdCBhbnkgc2V0dGluZ3MgeW91IHdhbnQsIHRoZW4gY2xpY2sgc3VibWl0IHRvIGFwcGx5IHRoZW0uJyk7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5zcGxpdCgnLycpWzBdICsgJy91c2VyLXNldHRpbmdzL3NldHRpbmdzJylcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cdFx0fSk7XG5cblx0XHQvLyBpZiAoIXRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIpIHtcblx0XHQvLyBcdHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlcjtcblx0XHQvLyBcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycjogYW55KSB7XHRcblx0XHQvLyBcdFx0cmV0dXJuIHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIuYXBwbHkodGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciwgYXJndW1lbnRzKTtcblx0XHQvLyBcdH07XG5cdFx0Ly8gfVxuXG5cdFx0aWYgKHRoaXMuX2RldmljZURldC5pc01vYmlsZSgpIHx8IHRoaXMuX2RldmljZURldC5pc1RhYmxldCgpKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKHRydWUpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IHRydWU7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZShmYWxzZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuSVNfUFJPRFVDVElPTikge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgnZmxhZ1dpdGhUeXBlJywgJ25ld1NXJykuc3Vic2NyaWJlKGZsYWcgPT4ge1xuXHRcdFx0XHRpZiAoZmxhZykge1xuXHRcdFx0XHRcdHRoaXMuc3dGbGFnQWxlcnQgPSB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ2luZm8nLCAnVGhpcyBwYWdlIHdpbGwgcmVsb2FkIG9uY2UgbmV3IHZlcnNpb24gaGFzIGJlZW4gZG93bmxvYWRlZCcsIDApO1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkU1codHJ1ZSk7XG5cblx0XHRcdFx0XHRpZiAoIW5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKSB7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0fSwgMzAwMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4ocmVnaXN0cmF0aW9ucyA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICghcmVnaXN0cmF0aW9ucyB8fCAhcmVnaXN0cmF0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdFx0XHRcdFx0XHR9LCAzMDAwKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSwgZXJyID0+IHtcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0XHR9LCAzMDAwKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnN3RmxhZ0FsZXJ0KSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0ludmFsaWRTVyhmYWxzZSk7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LmNsZWFyQWxlcnQodGhpcy5zd0ZsYWdBbGVydC50b2FzdElkKTtcblx0XHRcdFx0XHR0aGlzLnN3RmxhZ0FsZXJ0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5zdWJzY3JpYmUob2ZmbGluZSA9PiB7XG5cdFx0XHR0aGlzLmlzT2ZmbGluZSA9IG9mZmxpbmU7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRTb2NrZXRTdGF0dXMoKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc29ja2V0U3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0XG5cdFx0XHRpZiAoIXRoaXMudXNlcikge1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cblx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdhcHBzdGF0dXMnKS5zdWJzY3JpYmUoYXBwc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc3RhdHVzID0gYXBwc3RhdHVzOyAvL09LIGlmIG5vdCBkZWZpbmVkXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEhhc1N0YXR1c01lc3NhZ2UodGhpcy5zdGF0dXMgPyB0cnVlIDogZmFsc2UpO1xuXHRcdFx0dGhpcy5zdGF0dXNIZWlnaHQgPSB0aGlzLnN0YXR1cyA/IDQwIDogMDtcblx0XHR9KTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDEwMCk7XG5cdFx0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwMCk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCA1MDAwKTtcblxuXHRcdGlmICh0aGlzLmlzRGV2aWNlKSB7XG5cdFx0XHRsZXQgZmlyc3RSZWRpcmVjdCA9IGZhbHNlO1xuXHRcdFx0bGV0IGxhc3RVUkwgPSB0aGlzLl9zdG9yYWdlLmdldCgnbGFzdFVSTCcpO1xuXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG5cdFx0XHRcdGlmIChldmVudC51cmwuc3RhcnRzV2l0aCgnL2RpZ2l0YWwtc2lnbj8nKSkge1xuXHRcdFx0XHRcdHRoaXMuaXNEaWdpdGFsU2lnbmF0dXJlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChsYXN0VVJMICYmIGxhc3RVUkwgIT09ICcvJyAmJiAhZmlyc3RSZWRpcmVjdCkge1xuXHRcdFx0XHRcdGlmIChldmVudC51cmwgPT09ICcnIHx8IGV2ZW50LnVybCA9PT0gJy8nKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGFzdFVSTCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zmlyc3RSZWRpcmVjdCA9IHRydWU7XG5cblx0XHRcdFx0aWYgKGV2ZW50LnVybCkge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChldmVudC51cmxBZnRlclJlZGlyZWN0cykge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoWydpUGFkJywgJ2lQaG9uZScsICdpUG9kJ10uaW5kZXhPZihuYXZpZ2F0b3IucGxhdGZvcm0pID49IDAgJiYgKCdzdGFuZGFsb25lJyBpbiB3aW5kb3cubmF2aWdhdG9yKSAmJiAoPGFueT53aW5kb3cubmF2aWdhdG9yKS5zdGFuZGFsb25lKSB7XG5cdFx0XHR0aGlzLnNob3dOYXZpZ2F0aW9uTWVudSA9IHRydWU7XG5cdFx0fVxuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gLTkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdwb3J0cmFpdCc7XG5cdFx0XHR9XG5cdFx0fSwgdHJ1ZSk7XG5cblx0XHRsZXQgbW91c2V3aGVlbEV2ZW50O1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUgPT09ICdJTlBVVCcgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudFsndHlwZSddID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0cnVlKTtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAobW91c2V3aGVlbEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgbW91c2V3aGVlbEV2ZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCk7XG4gICAgICAgICAgICB9XG5cdFx0fSwgdHJ1ZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgKGUpID0+IHtcblx0XHRcdGxldCBldiA9IGUgfHwgZXZlbnQ7XG5cdFx0XHRldi5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0sIGZhbHNlKTtcblx0XHRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdH1cblxuXHRnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWxfbmF2QmFyTW9kdWxlID8gdGhpcy5lbF9uYXZCYXJNb2R1bGUubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQgOiAwO1xuXHR9XG5cblx0b25QdXNoQmFja0J1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG5cdH1cblxuXHRvblB1c2hSZWxvYWRCdXR0b24oKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHR9XG5cblx0b25QdXNoRm9yd2FyZEJ1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCk7XG5cdH1cblxuXHRvcGVuTmF2KCkge1xuXHRcdGxldCB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpO1xuXHRcdGxldCB5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpO1xuXHRcdGlmICh4LnN0eWxlLndpZHRoID09PSAnNDBweCcgJiYgeS5zdHlsZS5wYWRkaW5nTGVmdCA9PT0gJzQ1cHgnKSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzE5NXB4Jztcblx0XHRcdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMjEwcHgnO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHguc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzQ1cHgnO1xuXHRcdH1cblx0fVxuXHRcdFxuXHRjbG9zZU5hdigpIHtcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2U2lkJykuc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzQ1cHgnO1x0XG5cdH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTW91c2V3aGVlbEV2ZW50KCkge1xuXHQoPGFueT5kb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ibHVyKCk7XG59XG5cbmZ1bmN0aW9uIGhleFRvUkdCKGhleCwgYWxwaGEpIHtcbiAgICBsZXQgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpLFxuICAgICAgICBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgIGIgPSBwYXJzZUludChoZXguc2xpY2UoNSwgNyksIDE2KTtcblxuICAgIGlmIChhbHBoYSkge1xuICAgICAgICByZXR1cm4gXCJyZ2JhKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIsIFwiICsgYWxwaGEgKyBcIilcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJyZ2IoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIilcIjtcbiAgICB9XG59IiwiPHN0eWxlPlxuXHQ6cm9vdCB7XG4gICAgICAgIC0td2FybmluZy1jb2xvcjogI2ZmYzEwNztcbiAgICAgICAgLS13YXJuaW5nLWZvbnQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIC0td2FybmluZy1ob3Zlci1jb2xvcjogI2UwYTgwMDtcbiAgICAgICAgLS13YXJuaW5nLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpO1xuICAgICAgICAtLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gICAgICAgIC0tc3VjY2Vzcy1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXN1Y2Nlc3MtaG92ZXItY29sb3I6ICMyMTg4Mzg7XG4gICAgICAgIC0tc3VjY2Vzcy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpO1xuICAgICAgICAtLWRhbmdlci1jb2xvcjogI2RjMzU0NTtcbiAgICAgICAgLS1kYW5nZXItZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1kYW5nZXItaG92ZXItY29sb3I6ICNjODIzMzM7XG4gICAgICAgIC0tZGFuZ2VyLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSk7XG4gICAgICAgIC0taW5mby1jb2xvcjogIzE3YTJiODtcbiAgICAgICAgLS1pbmZvLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0taW5mby1ob3Zlci1jb2xvcjogIzEzODQ5NjtcbiAgICAgICAgLS1pbmZvLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpO1xuICAgICAgICAtLXByaW1hcnktY29sb3I6ICMwMDdiZmY7XG4gICAgICAgIC0tcHJpbWFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXByaW1hcnktaG92ZXItY29sb3I6ICMwMDY5ZDk7XG4gICAgICAgIC0tcHJpbWFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KTtcbiAgICAgICAgLS1zZWNvbmRhcnktY29sb3I6ICM4NjhlOTY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAjNWE2MjY4O1xuICAgICAgICAtLXNlY29uZGFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSk7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmcge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS13YXJuaW5nLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpmb2N1cywgLmJ0bi1zdWNjZXNzLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zdWNjZXNzLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1kYW5nZXItc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0taW5mby1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tcHJpbWFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHR9XG5cdFxuICBcdEBtZWRpYSBwcmludCB7XG5cdCAgXHQuZG9udFByaW50ICoge1xuXHRcdCAgXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdCAgXHR9XG5cblx0XHQubXlEaXZUb1ByaW50Q3Mge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cdFx0XHRkaXNwbGF5OiBpbml0aWFsO1xuXHRcdH1cblxuXHRcdC5yZW1vdmVPdmVyZmxvdyB7XG5cdFx0XHRvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgXG5cdFx0XHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblx0XHR9XG4gIFx0fVxuXG4gIFx0LmhpZGVUaGlzIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQubmF2U2lkYmFyIHtcblx0XHR3aWR0aDogMHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiAwLjVzO1xuXHRcdHBhZGRpbmctdG9wOiAwcHg7XG5cdH1cblxuXHQubmF2U2lkYmFyIGEge1xuXHRcdHBhZGRpbmc6IDhweCA4cHggOHB4IDMycHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRjb2xvcjogIzgxODE4MTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhOmhvdmVyIHtcblx0XHRjb2xvcjogI2YxZjFmMTtcblx0fVxuXG5cdC5vcGVuYnRuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nOiA1cHggMjBweDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDk5OTk5OTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5vcGVuYnRuIHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG5cdFx0bWFyZ2luLXRvcDogLTU1cHg7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDMwcHg7XG5cdH1cblx0I21haW5fY29udCB7XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZy1sZWZ0IC41cztcblx0fVxuXG5cdC5zaWRfaW5yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cblxuXHRAa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAgICAgICAwJSwgNTAlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEyMCUgMDtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC04MCUgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zaGltbWVyOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgLTc1ZGVnLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA0MCUsIFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDUwJSwgXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDYwJVxuICAgICAgICApO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgIHotaW5kZXg6IDExO1xuICAgIH1cbjwvc3R5bGU+XG48ZGl2ICpuZ0lmPVwiaXNEZXZpY2VcIj5cblx0PGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCIvYXNzZXRzL2Nzcy90YWJsZXQuY3NzXCI+XG48L2Rpdj5cbjxkaXYgI3NoZWxsPlxuXHQ8ZGl2ICpuZ0lmPVwidXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSkgJiYgIXB1YmxpY1Byb2dyYW0gJiYgIWlzRGlnaXRhbFNpZ25hdHVyZVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIiBjbGFzcz1cInNoaW1tZXJcIj4qKiogT0ZGTElORSBNT0RFICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cIiF1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKSAmJiAhcHVibGljUHJvZ3JhbSAmJiAhaXNEaWdpdGFsU2lnbmF0dXJlXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiIGNsYXNzPVwic2hpbW1lclwiPioqKiBQTEVBU0UgTE9HSU4gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwic3RhdHVzXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiIGNsYXNzPVwic2hpbW1lclwiPioqKiB7eyBzdGF0dXMubWVzc2FnZSB9fSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCJmdWxsU2NyZWVuXCI+XG5cdFx0PHJvdXRlci1vdXRsZXQgbmFtZT1cImpvYmJvYXJkZnNvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGFpbmVyLWZsdWlkJywgZnVsbFNjcmVlbiA/ICdoaWRlVGhpcycgOiAnJ11cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImZvbnRTaXplXCI+XG5cdFx0PGRpdiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PG5hdmJhci1tYWluIHN0eWxlPVwid2lkdGg6IDEwMCVcIiB0b3VyQW5jaG9yPVwibmF2QmFyTWFpblwiICNuYXZCYXJNYWluIFtsb2dvXT1cImxvZ29cIiBbbmF2VGFic109XCJuYXZUYWJzXCIgW2ZvbnRTaXplXT1cImZvbnRTaXplXCIgW3B1YmxpY1Byb2dyYW1dPVwicHVibGljUHJvZ3JhbSB8fCBpc0RpZ2l0YWxTaWduYXR1cmVcIj48L25hdmJhci1tYWluPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZSBuZ2JNb2RhbENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgaWQ9XCJuYXZTaWRcIiAqbmdJZj1cInNob3dOYXZiYXJNb2R1bGVcIiBbbmdDbGFzc109XCJbJ2RvbnRQcmludCcsIHdpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ25hdlNpZGJhcicgOiAnY29sLXhsLTEnXVwiIFtzdHlsZS53aWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDQwICsgJ3B4JyA6IDEwMCArICclJ1wiIFtzdHlsZS5tYXJnaW4tdG9wLnB4XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gbmF2YmFyTWFpbkhlaWdodCArIHN0YXR1c0hlaWdodCArIGNvbm5lY3RlZEhlaWdodCA6IDBcIiA+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJvcGVuYnRuXCIgKm5nSWY9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSAmJiAhaXNEaWdpdGFsU2lnbmF0dXJlXCIgKG1vdXNlZW50ZXIpPVwib3Blbk5hdigpXCI+PHNwYW4+TUVOVTwvc3Bhbj48L2Rpdj5cblx0XHRcdFx0PGRpdiBbbmdDbGFzc109XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICdzaWRfaW5yJyA6ICcnXCIgKm5nSWY9XCJpc0RpZ2l0YWxTaWduYXR1cmVcIj5cblx0XHRcdFx0XHQ8bmF2YmFyLW1vZHVsZSAjbmF2QmFyTW9kdWxlIHRvdXJBbmNob3I9XCJuYXZCYXJNb2R1bGVcIiBbc2lkZU5hdldpZHRoXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJzkwJScgOiAnYXV0bydcIiBbc2lkZU5hdkhlaWdodF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IHdpbmRvd1NpemVIZWlnaHQgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSA6IDApIC0gKCghaXNEZXZpY2UgfHwgKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSkpID8gMjAgOiAwKSA6ICcnXCI+PC9uYXZiYXItbW9kdWxlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBbaWRdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCA/ICdtYWluX2NvbnQnIDogJ21haW5fY29udF9tb2JpbGUnXCIgW25nQ2xhc3NdPVwiW3dpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ2NvbC14bC0xMicgOiAnY29sLXhsLTExJ11cIiBbc3R5bGUucGFkZGluZy1sZWZ0XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ICYmIHNob3dOYXZiYXJNb2R1bGUgPyA0NSArICdweCcgOiBudWxsXCIgW3N0eWxlLnBhZGRpbmddPVwiKChpc0RldmljZSAmJiB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgfHwgIXNob3dOYXZiYXJNb2R1bGUpID8gMCArICdweCcgOiBudWxsXCIgKG1vdXNlZW50ZXIpPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgJiYgc2hvd05hdmJhck1vZHVsZSA/IGNsb3NlTmF2KCkgOiBudWxsXCIgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHhcIj5cblx0XHRcdFx0PGRpdiBzdHlsZT1cIi13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaFwiIFtzdHlsZS5vdmVyZmxvdy15XT1cIihpc0RldmljZSAmJiAhc2hvd05hdmlnYXRpb25NZW51KSA/ICdpbml0aWFsJyA6ICdzY3JvbGwnXCIgW3N0eWxlLmhlaWdodC5weF09XCJ3aW5kb3dTaXplSGVpZ2h0IC0gKChpc0RldmljZSAmJiB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSA/IChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtIG5hdmJhck1haW5IZWlnaHQgLSAoIXB1YmxpY1Byb2dyYW0gJiYgIWlzRGlnaXRhbFNpZ25hdHVyZSA/IHN0YXR1c0hlaWdodCA6IDApIC0gKCFwdWJsaWNQcm9ncmFtICYmICFpc0RpZ2l0YWxTaWduYXR1cmUgPyBjb25uZWN0ZWRIZWlnaHQgOiAwKSAtIChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUgPyAoNTQgKyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpKSA6IDApIC0gKCghaXNEZXZpY2UgfHwgKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSkpID8gMjAgOiAwKVwiIGNsYXNzPVwicmVtb3ZlT3ZlcmZsb3dcIj5cblx0XHRcdFx0XHQ8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cImlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudVwiIHN0eWxlPVwiaGVpZ2h0OiA1NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7IG1hcmdpbi1sZWZ0OiAtMTVweDsgbWFyZ2luLXJpZ2h0OiAtMTVweDtcIiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cblx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hCYWNrQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWxlZnRcIiBzdHlsZT1cImNvbG9yOiBibGFjazsgZm9udC1zaXplOiAyMHB4XCI+PC9pPjwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5XCIgKGNsaWNrKT1cIm9uUHVzaFJlbG9hZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hGb3J3YXJkQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LXJpZ2h0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHQ8L3RyPlxuXHRcdFx0PC90YWJsZT5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwiIWlzRGV2aWNlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMjBweDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+JmNvcHk7IHt7eWVhcn19IFJFU09MVkVJTyBBTEwgUklHSFRTIFJFU0VSVkVEPC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -76,4 +76,4 @@ AwsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
76
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AwsService, decorators: [{
77
77
  type: Injectable
78
78
  }], ctorParameters: function () { return [{ type: i1.SocketManagerService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdXRpbC9hd3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFHakUsTUFBTSxPQUFPLFVBQVU7SUFFdEIsWUFBb0IsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFBRyxDQUFDO0lBRXJELGFBQWEsQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7UUFDOUMscURBQXFEO1FBQ3JELHNGQUFzRjtRQUN0RixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdDLGtDQUFrQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkUsa0RBQWtEO1FBQ2xELElBQUksRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLEVBQUUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQztRQUVE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TSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7d0dBL0VXLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc29ja2V0LW1hbmFnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBd3NTZXJ2aWNlICB7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc29ja2V0OiBTb2NrZXRNYW5hZ2VyU2VydmljZSkge31cblxuXHRkYXRhVVJJdG9GaWxlKGRhdGFVUkk6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuXHRcdC8vIGNvbnZlcnQgYmFzZTY0IHRvIHJhdyBiaW5hcnkgZGF0YSBoZWxkIGluIGEgc3RyaW5nXG5cdFx0Ly8gZG9lc24ndCBoYW5kbGUgVVJMRW5jb2RlZCBEYXRhVVJJcyAtIHNlZSBTTyBhbnN3ZXIgIzY4NTAyNzYgZm9yIGNvZGUgdGhhdCBkb2VzIHRoaXNcblx0XHRsZXQgYnl0ZVN0cmluZyA9IGF0b2IoZGF0YVVSSS5zcGxpdCgnLCcpWzFdKTtcblxuXHRcdC8vIHNlcGFyYXRlIG91dCB0aGUgbWltZSBjb21wb25lbnRcblx0XHRsZXQgbWltZVN0cmluZyA9IGRhdGFVUkkuc3BsaXQoJywnKVswXS5zcGxpdCgnOicpWzFdLnNwbGl0KCc7JylbMF07XG5cblx0XHQvLyB3cml0ZSB0aGUgYnl0ZXMgb2YgdGhlIHN0cmluZyB0byBhbiBBcnJheUJ1ZmZlclxuXHRcdGxldCBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG5cdFx0bGV0IGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG5cdFx0fVxuXG5cdFx0Ly8gd3JpdGUgdGhlIEFycmF5QnVmZmVyIHRvIGEgYmxvYiwgYW5kIHlvdSdyZSBkb25lXG5cdFx0bGV0IGJsb2IgPSBuZXcgQmxvYihbYWJdLCB7dHlwZTogbWltZVN0cmluZ30pO1xuXHRcdFxuXHRcdGJsb2JbJ2xhc3RNb2RpZmllZERhdGUnXSA9IG5ldyBEYXRlKCk7XG5cdFx0YmxvYlsnbmFtZSddID0gZmlsZW5hbWU7XG5cblx0XHRyZXR1cm4gPEZpbGU+YmxvYjtcblx0fVxuXG5cdHVwbG9hZEZpbGUoZmlsZTogRmlsZSwgdHlwZTogc3RyaW5nLCBvcmRlcj86IG51bWJlciwgZmlsZW5hbWU/OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UgKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGlmIChmaWxlLnNpemUpIHtcblx0XHRcdFx0dGhpcy5nZXRCYXNlNjQoZmlsZSkudGhlbihkYXRhID0+IHtcblx0XHRcdFx0XHR0aGlzLl9zb2NrZXQuY2FsbCgndXBsb2FkRmlsZUFuZFNhdmUnLCBmaWxlbmFtZSA/IGZpbGVuYW1lIDogZmlsZS5uYW1lLCBkYXRhLCBmaWxlLnNpemUsIG9yZGVyID8gb3JkZXIgOiAtMSwgdHlwZSwgdHJ1ZSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAocmVzKSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0cmVqZWN0KCdJbnZhbGlkIEZpbGUnKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGdldEZpbGVXaXRoS2V5KGtleTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZ2V0RmlsZScsIGtleSwgY2FsbGJhY2spO1xuXHR9XG5cblx0Z2V0RmlsZVdpdGhJZChpZDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZmluZE9uZScsICdmaWxlcycsIHtfaWQ6IGlkfSwgKGVyciwgZmlsZSkgPT4ge1xuXHRcdFx0dGhpcy5nZXRGaWxlV2l0aEtleShmaWxlLmtleSwgY2FsbGJhY2spO1xuXHRcdH0pO1xuXHR9XG5cblx0ZGVsZXRlRmlsZShrZXk6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2RlbGV0ZUZpbGUnLCBrZXksIGNhbGxiYWNrKTtcblx0fVxuXG5cdGRlbGV0ZUZpbGVXaXRoSWQoaWQ6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2ZpbmRPbmUnLCAnZmlsZXMnLCB7X2lkOiBpZH0sIChlcnIsIGZpbGUpID0+IHtcblx0XHRcdHRoaXMuZGVsZXRlRmlsZShmaWxlLmtleSwgY2FsbGJhY2spO1xuXHRcdH0pO1xuXHR9XG5cblx0ZGVsZXRlRmlsZXNXaXRoS2V5cyhrZXlzOiBzdHJpbmdbXSwgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNhbGwoJ2RlbGV0ZUZpbGVzJywga2V5cywgY2FsbGJhY2spO1xuXHR9XG5cblx0Z2V0QmFzZTY0KGZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXHRcdFx0cmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG5cdFx0XHRyZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZSg8c3RyaW5nPnJlYWRlci5yZXN1bHQpO1xuXHRcdFx0cmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdXRpbC9hd3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFJakUsTUFBTSxPQUFPLFVBQVU7SUFFdEIsWUFBb0IsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFBRyxDQUFDO0lBRXJELGFBQWEsQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7UUFDOUMscURBQXFEO1FBQ3JELHNGQUFzRjtRQUN0RixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdDLGtDQUFrQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkUsa0RBQWtEO1FBQ2xELElBQUksRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLEVBQUUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQztRQUVE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TSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7d0dBL0VXLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc29ja2V0LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmlsZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBd3NTZXJ2aWNlICB7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc29ja2V0OiBTb2NrZXRNYW5hZ2VyU2VydmljZSkge31cblxuXHRkYXRhVVJJdG9GaWxlKGRhdGFVUkk6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuXHRcdC8vIGNvbnZlcnQgYmFzZTY0IHRvIHJhdyBiaW5hcnkgZGF0YSBoZWxkIGluIGEgc3RyaW5nXG5cdFx0Ly8gZG9lc24ndCBoYW5kbGUgVVJMRW5jb2RlZCBEYXRhVVJJcyAtIHNlZSBTTyBhbnN3ZXIgIzY4NTAyNzYgZm9yIGNvZGUgdGhhdCBkb2VzIHRoaXNcblx0XHRsZXQgYnl0ZVN0cmluZyA9IGF0b2IoZGF0YVVSSS5zcGxpdCgnLCcpWzFdKTtcblxuXHRcdC8vIHNlcGFyYXRlIG91dCB0aGUgbWltZSBjb21wb25lbnRcblx0XHRsZXQgbWltZVN0cmluZyA9IGRhdGFVUkkuc3BsaXQoJywnKVswXS5zcGxpdCgnOicpWzFdLnNwbGl0KCc7JylbMF07XG5cblx0XHQvLyB3cml0ZSB0aGUgYnl0ZXMgb2YgdGhlIHN0cmluZyB0byBhbiBBcnJheUJ1ZmZlclxuXHRcdGxldCBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG5cdFx0bGV0IGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG5cdFx0fVxuXG5cdFx0Ly8gd3JpdGUgdGhlIEFycmF5QnVmZmVyIHRvIGEgYmxvYiwgYW5kIHlvdSdyZSBkb25lXG5cdFx0bGV0IGJsb2IgPSBuZXcgQmxvYihbYWJdLCB7dHlwZTogbWltZVN0cmluZ30pO1xuXHRcdFxuXHRcdGJsb2JbJ2xhc3RNb2RpZmllZERhdGUnXSA9IG5ldyBEYXRlKCk7XG5cdFx0YmxvYlsnbmFtZSddID0gZmlsZW5hbWU7XG5cblx0XHRyZXR1cm4gPEZpbGU+YmxvYjtcblx0fVxuXG5cdHVwbG9hZEZpbGUoZmlsZTogRmlsZSwgdHlwZTogc3RyaW5nLCBvcmRlcj86IG51bWJlciwgZmlsZW5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVNb2RlbD4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSAoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0aWYgKGZpbGUuc2l6ZSkge1xuXHRcdFx0XHR0aGlzLmdldEJhc2U2NChmaWxlKS50aGVuKGRhdGEgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX3NvY2tldC5jYWxsKCd1cGxvYWRGaWxlQW5kU2F2ZScsIGZpbGVuYW1lID8gZmlsZW5hbWUgOiBmaWxlLm5hbWUsIGRhdGEsIGZpbGUuc2l6ZSwgb3JkZXIgPyBvcmRlciA6IC0xLCB0eXBlLCB0cnVlLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRyZWplY3QoJ0ludmFsaWQgRmlsZScpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Z2V0RmlsZVdpdGhLZXkoa2V5OiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xuXHRcdHRoaXMuX3NvY2tldC5jYWxsKCdnZXRGaWxlJywga2V5LCBjYWxsYmFjayk7XG5cdH1cblxuXHRnZXRGaWxlV2l0aElkKGlkOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xuXHRcdHRoaXMuX3NvY2tldC5jYWxsKCdmaW5kT25lJywgJ2ZpbGVzJywge19pZDogaWR9LCAoZXJyLCBmaWxlKSA9PiB7XG5cdFx0XHR0aGlzLmdldEZpbGVXaXRoS2V5KGZpbGUua2V5LCBjYWxsYmFjayk7XG5cdFx0fSk7XG5cdH1cblxuXHRkZWxldGVGaWxlKGtleTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZGVsZXRlRmlsZScsIGtleSwgY2FsbGJhY2spO1xuXHR9XG5cblx0ZGVsZXRlRmlsZVdpdGhJZChpZDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZmluZE9uZScsICdmaWxlcycsIHtfaWQ6IGlkfSwgKGVyciwgZmlsZSkgPT4ge1xuXHRcdFx0dGhpcy5kZWxldGVGaWxlKGZpbGUua2V5LCBjYWxsYmFjayk7XG5cdFx0fSk7XG5cdH1cblxuXHRkZWxldGVGaWxlc1dpdGhLZXlzKGtleXM6IHN0cmluZ1tdLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQuY2FsbCgnZGVsZXRlRmlsZXMnLCBrZXlzLCBjYWxsYmFjayk7XG5cdH1cblxuXHRnZXRCYXNlNjQoZmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblx0XHRcdHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKDxzdHJpbmc+cmVhZGVyLnJlc3VsdCk7XG5cdFx0XHRyZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==