tango-app-ui-analyse-traffic 3.8.0-alpha.2 → 3.8.0-alpha.3

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.
@@ -823,13 +823,13 @@ export class ImageDocComponent {
823
823
  return !!(control && control.invalid && (control.touched || this.submitted));
824
824
  }
825
825
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.NgbModal }, { token: i4.FormBuilder }, { token: i5.ToastService }], target: i0.ɵɵFactoryTarget.Component });
826
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "directive", type: i9.MagnifierDirective, selector: "[appMagnifier]" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
826
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <section *ngIf=\"headerData?.client ==='11'\">\r\n <img class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n </section>\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <section *ngIf=\"headerData.client ==='11'\">\r\n <span *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "directive", type: i9.MagnifierDirective, selector: "[appMagnifier]" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
827
827
  }
828
828
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, decorators: [{
829
829
  type: Component,
830
- args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
830
+ args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <section *ngIf=\"headerData?.client ==='11'\">\r\n <img class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n </section>\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <section *ngIf=\"headerData.client ==='11'\">\r\n <span *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
831
831
  }], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.NgbModal }, { type: i4.FormBuilder }, { type: i5.ToastService }], propDecorators: { placesRef: [{
832
832
  type: ViewChild,
833
833
  args: ["ngxPlaces"]
834
834
  }] } });
835
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFOdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBYXRCLE1BQU0sT0FBTyxpQkFBaUI7SUEwQ2xCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQTlDYyxTQUFTLENBQTZCO0lBQzlELFdBQVcsR0FBUSxDQUFDLENB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M0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtvQkFDdEUsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7b0JBRXJCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtpQkFDVDtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFJTixDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBcDFCVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw2SkN0QjlCLGtnNUZBMDVCTTs7NEZEcDRCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTtnT0FLRCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW1hZ2VEb2NWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZG9jLXZpZXcvaW1hZ2UtZG9jLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEdXBsaWNhdGVDb21wb25lbnQgfSBmcm9tICcuLi9kdXBsaWNhdGUvZHVwbGljYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ3hHcEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci1tYWdpYy9uZ3gtZ3AtYXV0b2NvbXBsZXRlL2xpYi9uZ3gtZ3AtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZVwiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1hZ2UtZG9jXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2ltYWdlLWRvYy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VEb2NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIm5neFBsYWNlc1wiKSBwbGFjZXNSZWY6IE5neEdwQXV0b2NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIHNlbGVjdEluZGV4OiBhbnkgPSAwO1xyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIG9iakRhdGE6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueSA9IFtdO1xyXG4gIGltYWdlc0FycmF5RGF0YTogYW55O1xyXG4gIHByb2Nlc3NUeXBlID0gXCJmb290ZmFsbFwiO1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGRheWpzID0gZGF5anNcclxuICBkYXRlQXJyYXk6IGFueTtcclxuICBmb3JtOiBhbnk7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmVBcnJheVZhbHVlOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgdmFsdWVUeXBlOiBhbnkgPSAnYWN0dWFsJztcclxuICBpc0F2ZXJhZ2U6IGFueSA9IGZhbHNlO1xyXG4gIGxlbmd0aFZhbHVlOiBib29sZWFuO1xyXG4gIGhpZGVEb2M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FjY29yZGlvbkV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgYmFja25hdjogYm9vbGVhbjtcclxuICB1c2VyRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5TGlzdDogYW55ID0gW11cclxuICBwaG9uZVJlZ2V4OiBSZWdFeHAgPSAvXihcXGR7M30pP1xcZHsxNX0kLztcclxuICBlbWFpbFJlZ2V4OiBSZWdFeHAgPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcclxuICBub25TaG9wcGVyTGlzdCA9IFsnRW1wbG95ZWUvU3RhZmYnLCAnRGVsaXZlcnkgUGVyc29uJywgJ0R1cGxpY2F0ZScsICdBZ2VudHMnLCAnT3RoZXJzJ107XHJcbiAgLy8gbWlzc2VkT3Bwb3J0dW5pdHlMaXN0ID1bJ1Byb2R1Y3QgTmVlZCBNaXNtYXRjaCcsJ1Byb2R1Y3QgVW5hdmFpbGFiaWxpdHknLCdQcm9kdWN0IERhbWFnZWQnLCdQcm9kdWN0IEVucXVpcnknLCdRdWFsaXR5J107XHJcbiAgc2VsZWN0ZWRNaXNzZWQ6IGFueSA9ICdQcm9kdWN0IElzc3VlJztcclxuICBpc3N1ZXM6IGFueSA9IFtdXHJcbiAgbm9uU2hvcGVyVHlwZTogYW55ID0gJydcclxuICBkZXNjcmlwdGlvbjogYW55ID0gJydcclxuICBzZWxlY3RlZElzc3Vlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZE1haW5Jc3N1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgdGFnZ2dlZERhdGE6IGFueSA9IHt9XHJcbiAgbWlzc2Vkb3B0dW5pdHlSZWFzb246IGFueSA9IFtdXHJcbiAgY291bnRyeUxpc3Q6IGFueSA9IFtdXHJcbiAgcGVuZGluZ2NvdW50OiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdFNlcnZpY2UsXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycpIC8vIEluaXRpYWxpemUgYXMgRm9ybUNvbnRyb2xcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgfVxyXG4gIGluaXR1c2VyRm9ybSgpIHtcclxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgbW9iaWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMyksIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLF1dLFxyXG4gICAgICBlbWFpbDogWycnLCBbXHJcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFwiXlthLXpBLVowLTldKyhbLi1fXT9bYS16QS1aMC05XSspKkBbYS16QS1aMC05XSsoWy4tX10/W2EtekEtWl0rKSpbLl17MX1bYS16QS1aXXsyLH0kXCIpLFxyXG4gICAgICBdLF0sXHJcbiAgICAgIGxvY2F0aW9uOiBbXSxcclxuICAgICAgYWdlOiBbXSxcclxuICAgICAgZ2VuZGVyOiBbXSxcclxuICAgICAgY291bnRyeUNvZGU6IFtcIjkxXCIsXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Q291bnRyeUNvZGVzKClcclxuICAgIHRoaXMuaW5pdHVzZXJGb3JtKClcclxuICAgIHRoaXMuZ2V0SW5pdGFsKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5oaWRlRG9jID0gZmFsc2U7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgICAgIH0sIDUwMDApO1xyXG5cclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuICBnZXRDb3VudHJ5Q29kZXMoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5TGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG5cclxuICBjbGllbnREYXRhOiBhbnk7XHJcbiAgZ2V0IGYoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9scztcclxuICB9XHJcbiAgZ2V0SW5pdGFsKCkge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSAhPT0gbnVsbCB8fCBkYXRhPy5jbGllbnQgIT09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlSWRhcnJheSA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKVxyXG4gICAgICAgICAgdGhpcy5vYmpEYXRhID0ge1xyXG4gICAgICAgICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgICAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCxcclxuICAgICAgICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgIGZvb3RmYWxsRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgICAgICAgLy8gdmFsdWVUeXBlIDp0aGlzLnZhbHVlVHlwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjbGllbnREYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJ7fVwiKTtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnREYXRhID0gY2xpZW50RGF0YVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNsaWVudERhdGEpXHJcblxyXG4gICAgICAgICAgICBjb25zdCBsaW1pdCA9IGNsaWVudERhdGE/LmJvdW5jZWRMaW1pdD8udmFsdWUgPz8gY2xpZW50RGF0YT8uYm91bmNlZExpbWl0VmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnYgPSBjbGllbnREYXRhPy5jb252ZXJzaW9uPy52YWx1ZSA/PyBjbGllbnREYXRhPy5jb252ZXJzaW9uVmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGlmIChjbGllbnREYXRhLmlzRm9vdGZhbGxWaWV3KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0cyA9IFtcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQgPT09ICc0NTInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiBgTGVzcyB0aGFuICR7bGltaXR9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdlbmdhZ2VyJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtsaW1pdH0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6IGAke2xpbWl0fSAtICR7Y29udn0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogYE1vcmUgdGhhbiAke2NvbnZ9IG1pbnNgIH1cclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiAnTWlzc2VkIE9wcG9ydHVuaXR5JyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldEluaXRpYWxWYWx1ZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RDb250cm9sID0gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICBzZWxlY3RDb250cm9sLnNldFZhbHVlKGluaXRpYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMClcclxuICAgICAgICAgIHRoaXMuYmFja1RvRm9vdGZhbGwoKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlID09PSB0aGlzLmhlYWRlckRhdGE/LmRhdGU/LmVuZERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldGltYWdlcygwLCB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xkZXJWaWV3ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gdHJ1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRGF0YSgpO1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRm9vdGZhbGwoKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvb3RmYWxsRGF0YVNob3c6IGFueTtcclxuICBpbml0aWFsRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U3RvcmVGb290ZmFsbCh0aGlzLnN0b3JlSWRhcnJheSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gW11cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvb3RmYWxsRGF0YVNob3cgPSBbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbERhdGEoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3Bjb25maWcodGhpcy5oZWFkZXJEYXRhLmNsaWVudClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QgPSByZXMuZGF0YS5pc3N1ZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5TGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWlzc2VkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuICB0b2dnbGVBY2NvcmRpb24oKSB7XHJcbiAgICB0aGlzLmlzQWNjb3JkaW9uRXhwYW5kZWQgPSAhdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkO1xyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIGdldEltYWdlRm9sZGVyKCkge1xyXG5cclxuICAgIGRlbGV0ZSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHRoaXMub2JqRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRoaXMub2JqZWN0c0FycmF5WzBdLmZvbGRlck5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEltYWdlVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0SW1hZ2VWaWV3KCkge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMub2JqRGF0YSlcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXRGb290ZmFsbERpcmVjdG9yeSh0aGlzLm9iakRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGlmICghcmVzPy5kYXRhLmZvb3RmYWxsRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlQXJyYXlWYWx1ZSA9IHJlcz8uZGF0YS5zdG9yZU5hbWVcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBub3JtYWxpemU6IGFueVxyXG4gIHNlbGVjdGVkVGFicyhuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSBuYW1lO1xyXG4gICAgLy8gdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdOyAvLyByZXNldCB3aGVuIHN3aXRjaGluZyB0YWJzXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdWJpc3N1ZShvYmo6IGFueSwgaXNzdWU6IHN0cmluZykge1xyXG5cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElzc3Vlcy5pbmRleE9mKGlzc3VlKTtcclxuICAgIGNvbnN0IG1haW5pbmRleCA9IHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLmluZGV4T2Yob2JqLm5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICBsZXQgZXhpdHNDb3VudCA9IHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpLmxlbmd0aFxyXG4gICAgICBpZiAoZXhpdHNDb3VudCA+IDApIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnB1c2goaXNzdWUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogb2JqLm5hbWUsXHJcbiAgICAgICAgICBpc3N1ZTogW2lzc3VlXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMucHVzaChvYmoubmFtZSlcclxuICAgICAgdGhpcy5zZWxlY3RlZElzc3Vlcy5wdXNoKGlzc3VlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMuc3BsaWNlKG1haW5pbmRleCwgMSk7XHJcbiAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24ubWFwKChkYXRhOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLm5hbWUgPT09IG9iai5uYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJJbmRleCA9IGRhdGEuaXNzdWUuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICAgICAgICBpZiAoc3ViSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuaXNzdWUuc3BsaWNlKHN1YkluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEuaXNzdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZ2V0aW1hZ2VzKGluZGV4OiBhbnksIG9iajogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmZvbGRlckRhdGUgPSBvYmo7XHJcbiAgICAodGhpcy5vYmpEYXRhLmZvb3RmYWxsRGF0ZSA9IG9iaiksICh0aGlzLmZvbGRlclZpZXcgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2U/Lmlzbm9ybWFsaXplU291cmNlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICA/LnN1YnNjcmliZSgobm9ybWFsaXplOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcclxuICAgICAgICBpZiAoIW5vcm1hbGl6ZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRJbWFnZUZvbGRlcigpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgYmFja1RvRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gMDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IHRydWU7XHJcblxyXG4gIH1cclxuICBzZWxlY3RlZFRpbWVzKHZhbDogYW55KSB7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWw7XHJcbiAgICB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICB9XHJcbiAgSW1hZ2VkYXRhOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgSW1hZ2VzOiBhbnk7XHJcblxyXG4gIHJldm9wVGFnZ2luZyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gICAgdGhpcy5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3RhZ2dlZCc7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgPyB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA6ICdub25TaG9wcGVyJztcclxuICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcclxuICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICB9XHJcbiAgZ2V0UmV2b3BEYXRhKCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlID8gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgOiB0aGlzLnByb2Nlc3NUeXBlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3B0YWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdjdXN0b21lcidcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSByZXMuZGF0YS5yZXZvcHNUeXBlXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZXMuZGF0YS5kZXNjcmlwdGlvblxyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShyZXMuZGF0YS5yZXZvcHNUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdub25TaG9wcGVyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSByZXMuZGF0YS5ub25zaG9wZXJUeXBlXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ25hbWUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAncHVyY2hhc2VyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5uYW1lKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLm1vYmlsZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmNvdW50cnlDb2RlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZW1haWwpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5sb2NhdGlvbilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5hZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZ2VuZGVyKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gcmVzLmRhdGEuaXNzdWVMaXN0XHJcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgcmVzLmRhdGEuaXNzdWVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gWy4uLnRoaXMuc2VsZWN0ZWRJc3N1ZXMsIC4uLmRhdGEuaXNzdWVdXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXM/LmNvZGUgPT09IDIwNCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUoXCJmb290ZmFsbFwiKTtcclxuICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSAnJ1xyXG4gICAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlQWRkcmVzc0NoYW5nZShwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0IHwgYW55KSB7XHJcbiAgICBpZiAocGxhY2UuZ2VvbWV0cnkpIHtcclxuICAgICAgbGV0IGNvdW50cnkgPSBcIlwiLCBjaXR5ID0gXCJcIiwgc3RhdGUgPSBcIlwiLCBwaW5jb2RlID0gXCJcIjtcclxuICAgICAgbGV0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XHJcbiAgICAgIGxldCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcclxuICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgIGNvdW50cnkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgIGNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICBzdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgcGluY29kZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShjaXR5KVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdG5vblNob3BlcihkYXRhOiBhbnkpIHtcclxuICAgIGxldCBpbnB1dERhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5yZXZvcHRhZ2dpbmdjb3VudChpbnB1dERhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAocmVzLmRhdGEuY291bnQgPD0gMCAmJiB0aGlzLnRhZ2dnZWREYXRhLnJldm9wc1R5cGUgIT0gJ25vblNob3BwZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJUYWcgbGltaXQgcmVhY2hlZCEgVHJ5IHRhZ2dpbmcgdW5kZXIgZGlmZmVyZW50IGNhdGVnb3JpZXNcIilcclxuICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSBkYXRhXHJcbiAgICAgICAgICAgICAgaWYgKGRhdGEgPT09ICdEdXBsaWNhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnRhZ2dnZWREYXRhLm5vbnNob3BlclR5cGUsIHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCwgdGhpcy50YWdnZ2VkRGF0YS50ZW1wSWQpXHJcbiAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxEYXRhID0gW11cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudGFnZ2dlZERhdGEubm9uc2hvcGVyVHlwZSAhPSAnRHVwbGljYXRlJyYmdGhpcy50YWdnZ2VkRGF0YS5yZXZvcHNUeXBlPT09J25vblNob3BwZXInKXtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsRGF0YS5wdXNoKHsgdGVtcElkOiB0aGlzLnRhZ2dnZWREYXRhPy50ZW1wSWQsIHNlbGVjdGVkVGltZTogdGhpcy5zZWxlY3RlZFRpbWUgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihEdXBsaWNhdGVDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlbGVjdGVkVGVtcElkID0gdGhpcy5JbWFnZWRhdGEudGVtcElkO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uub3JpZ2luYWxEYXRhID0gb3JpZ2luYWxEYXRhO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuYWxyZWFkeVRhZ2dlZCA9IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQgPT09IHRoaXMudGFnZ2dlZERhdGE/LnRlbXBJZCAmJiB0aGlzLnRhZ2dnZWREYXRhPy5ub25zaG9wZXJUeXBlID09PSAnRHVwbGljYXRlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbnB1dERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlSWRhcnJheSxcclxuICAgICAgICAgICAgICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICAgICAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgICAgICAgIFwiZm9vdGZhbGxEYXRlXCI6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgXCJmb2xkZXJOYW1lXCI6IHRoaXMuc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpbWFnZVZpZXcob2JqOiBhbnksIGZvb3RmYWxsRGF0ZTogYW55KSB7XHJcblxyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEltYWdlRG9jVmlld0NvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJ4bFwiLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9jZXNzVHlwZSA9IHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvb3RmYWxsRGF0ZSA9IGZvb3RmYWxsRGF0ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlTmFtZSA9IHRoaXMuc3RvcmVBcnJheVZhbHVlO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3RvcmVJZCA9IHRoaXMuc3RvcmVJZGFycmF5XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJEYXRhID0gdGhpcy5oZWFkZXJEYXRhO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW1hZ2VBcnJheSA9IHRoaXMub2JqZWN0c0FycmF5O1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9sZGVyTmFtZSA9IHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50cmFja2VyID0gdGhpcy5mb290ZmFsbERhdGFTaG93O1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7IH0pO1xyXG4gICAgLy8gbW9kYWxSZWYuZGlzbWlzcygnQ2xpY2sgb3V0c2lkZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVJhbmdlQXJyYXkoZnJvbURhdGU6IHN0cmluZywgdG9EYXRlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKGZyb21EYXRlKTsgLy8gQ29udmVydCBzdHJpbmcgdG8gRGF0ZSBvYmplY3RcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHRvRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBkYXRlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGVzIGFyZSB2YWxpZFxyXG4gICAgaWYgKGlzTmFOKHN0YXJ0LmdldFRpbWUoKSkgfHwgaXNOYU4oZW5kLmdldFRpbWUoKSkpIHtcclxuICAgICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb29wIGZyb20gc3RhcnQgZGF0ZSB0byBlbmQgZGF0ZVxyXG4gICAgbGV0IGN1cnJlbnREYXRlID0gc3RhcnQ7XHJcbiAgICB3aGlsZSAoY3VycmVudERhdGUgPD0gZW5kKSB7XHJcbiAgICAgIGRhdGVBcnJheS5wdXNoKGN1cnJlbnREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdKTsgLy8gRm9ybWF0IFlZWVktTU0tRERcclxuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShjdXJyZW50RGF0ZS5nZXREYXRlKCkgKyAxKTsgLy8gSW5jcmVtZW50IHRoZSBkYXRlIGJ5IDEgZGF5XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICB9XHJcblxyXG4gIC8vIE1ldGhvZCB0byBkaXNwbGF5IG9yIGxvZyB0aGUgZGF0ZSByYW5nZSBhcnJheVxyXG4gIGRpc3BsYXlEYXRlUmFuZ2UoKSB7XHJcbiAgICBjb25zdCBkYXRlcyA9IHRoaXMuZ2V0RGF0ZVJhbmdlQXJyYXkoXHJcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGF0ZUFycmF5ID0gZGF0ZXM7XHJcbiAgfVxyXG4gIGRhdGFzZXRzID0gW1xyXG4gICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogJ0VuZ2FnZXJzJyB9LFxyXG4gICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6ICdNaXNzZWQgT3Bwb3J0dW5pdHknIH0sXHJcbiAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gIF07XHJcbiAgZ2V0SW5pdGlhbFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAvLyBGb3IgZXhhbXBsZSwgc2VsZWN0aW5nIHRoZSBzZWNvbmQgaXRlbSBpbiB0aGUgZGF0YXNldFxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YXNldHNbMF0udmFsdWU7IC8vIENoYW5nZSBhcyBuZWVkZWRcclxuICB9XHJcbiAgb25WYWx1ZUNoYW5nZShzZWxlY3RlZElkOiBhbnkpIHtcclxuICAgIHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZSA9IHNlbGVjdGVkSWQsXHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdENvbnRyb2woKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIGNsb3NlRGF0YSgpIHtcclxuICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBiYWNrVG9WaWV3KCkge1xyXG4gICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICB0aGlzLmltYWdlRmxvdyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB0aGlzLnNlbGVjdGVkVGltZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRUaW1lcyh0aGlzLnNlbGVjdGVkVGltZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm9iakRhdGEpXHJcbiAgICAvLyB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMub2JqRGF0YSlcclxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLy8gICA/LnN1YnNjcmliZSh7XHJcbiAgICAvLyAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICAgaWYgKCFyZXM/LmRhdGEuZm9vdGZhbGxEYXRhLmxlbmd0aCkge1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IHJlcz8uZGF0YS5mb290ZmFsbERhdGE7XHJcblxyXG4gICAgLy8gICAgICAgICAgIHRoaXMuc3RvcmVBcnJheVZhbHVlID0gcmVzPy5kYXRhLnN0b3JlTmFtZVxyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICAgIH0sXHJcbiAgICAvLyAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgIC8vICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbnRyeScpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXhpdCcpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFmZicpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaXNGaXJzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4IDw9IDA7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmluZEluZGV4KChkYXRhOiBhbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YT8udGVtcElkKTtcclxuICAgIHJldHVybiBpbmRleCA+PSB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW11cclxuICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24gPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZE1pc3NlZCA9ICdQcm9kdWN0IElzc3VlJ1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCk7XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbaW5kZXggLSAxXTtcclxuICAgICAgaWYgKHRoaXMuSW1hZ2VkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5yZXZvcFRhZ2dpbmcodGhpcy5JbWFnZWRhdGEpXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbMF07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdXHJcbiAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSAnUHJvZHVjdCBJc3N1ZSdcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTogYW55KSA9PiBkYXRhLnRlbXBJZCA9PT0gdGhpcy5JbWFnZWRhdGEudGVtcElkKTtcclxuICAgIGlmICh0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxICE9IGluZGV4KSB7XHJcblxyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4ICsgMV07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYiA9ICd0YWdnZWQnO1xyXG4gIHNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gJ25vblNob3BwZXInO1xyXG4gIG9uUmFkaW9DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2codmFsdWUpXHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09ICdwdXJjaGFzZXInKSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy51c2VyRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIjkxXCIpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXVxyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhZ2U6IG51bWJlciA9IDE7XHJcblxyXG4gIGluY3JlbWVudEFnZSgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRBZ2UgPSBOdW1iZXIodGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy52YWx1ZSkgfHwgMDtcclxuICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoY3VycmVudEFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IE51bWJlcih0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnZhbHVlKSB8fCAwO1xyXG4gICAgLy8gY29uc29sZS5sb2coY3VycmVudEFnZSlcclxuICAgIGlmIChjdXJyZW50QWdlID4gMSkge1xyXG4gICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKGN1cnJlbnRBZ2UgLSAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKSB7XHJcbiAgICBpZiAodGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG1pc3NlZCBvcHBvcnR1bml0eSByZWFzb25cIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6IFwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG5vblNob3BwZXJTdWJtaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMubm9uU2hvcGVyVHlwZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG5vbnNob3BwZXIgVHlwZVwiKVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogdGhpcy5ub25TaG9wZXJUeXBlLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIG1vYmlsZTogXCJcIixcclxuICAgICAgICBjb3VudHJ5Q29kZTogXCJcIixcclxuICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICBhZ2U6IFwiXCIsXHJcbiAgICAgICAgZ2VuZGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51c2VyRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXlsb2FkID0gW3tcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5WzBdLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgIHRlbXBJZDogdGhpcy5JbWFnZWRhdGEudGVtcElkLFxyXG4gICAgICBwcm9jZXNzVHlwZTogdGhpcy5zZWxlY3RDb250cm9sLnZhbHVlLFxyXG4gICAgICByZXZvcHNUeXBlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlLFxyXG4gICAgICBub25zaG9wZXJUeXBlOiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm5hbWUsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm1vYmlsZSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogdGhpcy51c2VyRm9ybS52YWx1ZS5jb3VudHJ5Q29kZSxcclxuICAgICAgICBlbWFpbDogdGhpcy51c2VyRm9ybS52YWx1ZS5lbWFpbCxcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy51c2VyRm9ybS52YWx1ZS5sb2NhdGlvbixcclxuICAgICAgICBhZ2U6IHRoaXMudXNlckZvcm0udmFsdWUuYWdlLFxyXG4gICAgICAgIGdlbmRlcjogdGhpcy51c2VyRm9ybS52YWx1ZS5nZW5kZXIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgIGlzc3VlTGlzdDogW11cclxuICAgIH1dXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KFwiQ3VzdG9tZXIgaGFzIGJlZW4gdGFnZ2VkIHN1Y2Nlc3NmdWxseS5cIilcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG5cclxuICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVzZXJGb3JtLmdldChmaWVsZE5hbWUpO1xyXG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0zIHB4LTAgYm9yZGVyLWJvdHRvbS0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZyBwYi0wIGN1c3RvbS1hY2NvcmRpb24taGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUFjY29yZGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlY1wiPkltYWdlIERpcmVjdG9yeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvcmRpb24tYXJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERvd24gYXJyb3cgZm9yIGNvbGxhcHNlZCBzdGF0ZSwgdXAgYXJyb3cgZm9yIGV4cGFuZGVkIHN0YXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgMUw1IDVMOSAxXCIgc3Ryb2tlPVwiIzA3MTQzN1wiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDVMNSAxTDkgNVwiIHN0cm9rZT1cIiMxYjg0ZmZcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHB4LTVcIiAqbmdJZj1cIiFoaWRlRG9jXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1mb3JtLWNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjMuODMzMyAxNC42NjY2TDE1LjUgMjQuNjY2NkgyM0wyMi4xNjY3IDMxLjMzMzNMMzAuNSAyMS4zMzMzSDIzTDIzLjgzMzMgMTQuNjY2NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eHQtb25lIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPkV4YW1pbmUgaW5kaXZpZHVhbCBmb290ZmFsbCBpbiBnYWxsZXJ5IHZpZXcgd2l0aCBvcHRpbWFsIHNhbXBsZSBpbWFnZXMgZm9yIGRldGFpbGVkIGFuYWx5c2lzLjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlwbGVcIj5VcGxvYWQgbXVsdGlwbGUgc3RvcmVzIGZvciBjb25maWd1cmF0aW9uPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEYXRhKClcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjk1IDcuMTE1QzE4LjY4NDQgNi43MjU2NCAxOC42ODQ0IDYuMDk0MzYgMTguMjk1IDUuNzA1QzE3LjkwNTYgNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTYuODg1IDUuNzA1TDEyIDEwLjU5TDcuMTE1IDUuNzA1QzYuNzI1NjQgNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNS43MDUgNS43MDVDNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNi43MjU2NCA1LjcwNSA3LjExNUwxMC41OSAxMkw1LjcwNSAxNi44ODVDNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTcuOTA1NiA1LjcwNSAxOC4yOTVDNi4wOTQzNiAxOC42ODQ0IDYuNzI1NjQgMTguNjg0NCA3LjExNSAxOC4yOTVMMTIgMTMuNDFMMTYuODg1IDE4LjI5NUMxNy4yNzQ0IDE4LjY4NDQgMTcuOTA1NiAxOC42ODQ0IDE4LjI5NSAxOC4yOTVDMTguNjg0NCAxNy45MDU2IDE4LjY4NDQgMTcuMjc0NCAxOC4yOTUgMTYuODg1TDEzLjQxIDEyTDE4LjI5NSA3LjExNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgbXQtNSB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBvYmogb2YgZGF0ZUFycmF5O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldGltYWdlcyhpLG9iailcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSA9PT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHdpZHRoPVwiNTdcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTcgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjE1NDI5N1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiIzMzQjVGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOS44MjE2IDM2LjE2NjdDMzkuODIxNiAzNi43ODU1IDM5LjU3NTggMzcuMzc5IDM5LjEzODIgMzcuODE2NkMzOC43MDA2IDM4LjI1NDIgMzguMTA3MSAzOC41IDM3LjQ4ODMgMzguNUgxOC44MjE2QzE4LjIwMjggMzguNSAxNy42MDkzIDM4LjI1NDIgMTcuMTcxNyAzNy44MTY2QzE2LjczNDEgMzcuMzc5IDE2LjQ4ODMgMzYuNzg1NSAxNi40ODgzIDM2LjE2NjdWMTkuODMzM0MxNi40ODgzIDE5LjIxNDUgMTYuNzM0MSAxOC42MjEgMTcuMTcxNyAxOC4xODM0QzE3LjYwOTMgMTcuNzQ1OCAxOC4yMDI4IDE3LjUgMTguODIxNiAxNy41SDI0LjY1NDlMMjYuOTg4MyAyMUgzNy40ODgzQzM4LjEwNzEgMjEgMzguNzAwNiAyMS4yNDU4IDM5LjEzODIgMjEuNjgzNEMzOS41NzU4IDIyLjEyMSAzOS44MjE2IDIyLjcxNDUgMzkuODIxNiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpICE9PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNDYyODkxXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQwLjEzMDIgMzYuMTY2N0M0MC4xMzAyIDM2Ljc4NTUgMzkuODg0NCAzNy4zNzkgMzkuNDQ2OCAzNy44MTY2QzM5LjAwOTIgMzguMjU0MiAzOC40MTU3IDM4LjUgMzcuNzk2OSAzOC41SDE5LjEzMDJDMTguNTExNCAzOC41IDE3LjkxNzkgMzguMjU0MiAxNy40ODAzIDM3LjgxNjZDMTcuMDQyNyAzNy4zNzkgMTYuNzk2OSAzNi43ODU1IDE2Ljc5NjkgMzYuMTY2N1YxOS44MzMzQzE2Ljc5NjkgMTkuMjE0NSAxNy4wNDI3IDE4LjYyMSAxNy40ODAzIDE4LjE4MzRDMTcuOTE3OSAxNy43NDU4IDE4LjUxMTQgMTcuNSAxOS4xMzAyIDE3LjVIMjQuOTYzNUwyNy4yOTY5IDIxSDM3Ljc5NjlDMzguNDE1NyAyMSAzOS4wMDkyIDIxLjI0NTggMzkuNDQ2OCAyMS42ODM0QzM5Ljg4NDQgMjIuMTIxIDQwLjEzMDIgMjIuNzE0NSA0MC4xMzAyIDIzLjMzMzNWMzYuMTY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpbWFnZUZsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhY2tuYXZcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlYyBtcy0yXCI+e3tmb2xkZXJEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSAqbmdJZj1cIiFub3JtYWxpemUgJiYgIWNsaWVudERhdGE/LmlzRm9vdGZhbGxWaWV3XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdENvbnRyb2xcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFzZXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCB0ZXh0LXN0YXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLmhlYWRlckRhdGE/LmNsaWVudCAhPT0nNDU5J1wiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXlcIj5cclxuICAgICAgICAgICAgPHVsICpuZ0lmPVwibGVuZ3RoVmFsdWVcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmouZm9sZGVyTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgPT09JzQ1OSdcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5LnNsaWNlKDAsIC0xKVwiPlxyXG4gICAgICAgICAgICA8dWwgKm5nSWY9XCJsZW5ndGhWYWx1ZVwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbXgtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5mb2xkZXJOYW1lfX08c3BhbiBjbGFzcz1cIm14LTIgXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7b2JqPy5jb3VudD9vYmo/LmNvdW50OjB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3JtYWxpemVcIiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YTFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9ub3QtYXBwbGljYWJsZS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlIG10LTNcIj5EYXRhIE5vdCBGb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+Tm9ybWFsaXplZCBkYXRhIGlzIG5vdCBhcHBsaWNhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9ybWFsaXplXCIgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgaW1hZ2UgZGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0wIGltZy10cmFmZmljIGNvbnRhaW4gaGlnaC00MDBweCBzY3JvbGwteVwiICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC1tZC0zIGJvcmRlci1ncmF5IG14LTIgcC0yIG10LTVcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGltYWdlc0FycmF5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2UmJmNsaWVudERhdGE/LmlzUmV2b3BzXCIgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2UmJiFjbGllbnREYXRhPy5pc1Jldm9wc1wiIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIChlcnJvcik9XCJvYmo/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VWaWV3KG9iaixvYmpEYXRhLmZvb3RmYWxsRGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhb2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTUgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtZGlyZWN0b3J5XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1pbmZvXCI+e3tvYmoudGVtcElkfX08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+TWlzc2VkIE9wcG9ydHVuaXR5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RDb250cm9sLnZhbHVlID09PSdib3VuY2VkJ1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+Qm91bmNlZCBGb290ZmFsbDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSB8fCBzZWxlY3RDb250cm9sLnZhbHVlIGFzIHZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1wcmltYXJ5JzogdmFsdWUgPT09ICdmb290ZmFsbCd8fCAhdmFsdWUgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6ICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC13YXJuaW5nJzogdmFsdWUgPT09ICdub25TaG9wcGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicgPyAnUHVyY2hhc2VyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknID8gJ01pc3NlZCBPcHBvcnR1bml0eScgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSB8IHRpdGxlY2FzZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkVudHJ5IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkV4aXQgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSB0ZXh0LWVuZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIG10LTRcIiAqbmdJZj1cIiFjbGllbnREYXRhPy5pc1Jldm9wc1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCIgKm5nSWY9XCJjbGllbnREYXRhPy5pc1Jldm9wc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhb2JqPy5yZXZvcHNUeXBlfHxvYmo/LnJldm9wc1R5cGU9PT0nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguMzczMjggMC4wMDIwMTYwNkM3LjIwOTMyIC0wLjAyMzMxNSA2LjA1Mzg1IDAuMjA1NzExIDQuOTg3NTUgMC42NzMxMDZDMy45MjEyNSAxLjE0MDUgMi45Njk4MSAxLjgzNSAyLjE5OTY3IDIuNzA4MTFDMS40Mjk1MiAzLjU4MTIzIDAuODU5MjI1IDQuNjExOTIgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk2NiA2Ljg0NDUzIDAuMTE0OTcxIDguMDE5NTUgMC4yODU0MDQgOS4xNzEyNEMwLjQ1NTgzNyAxMC4zMjI5IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzIuMTU1MTMgMTMuMzY5IDIuOTk5NSAxNC4xOTAzIDMuOTg5NTEgMTQuODAyOUM0Ljk3OTUzIDE1LjQxNTYgNi4wOTEzMyAxNS44MDQ4IDcuMjQ3MyAxNS45NDMzQzguNDAzMjYgMTYuMDgxOCA5LjU3NTU0IDE1Ljk2NjQgMTAuNjgyMyAxNS42MDVDMTAuODcxNCAxNS41NDMyIDExLjAyODIgMTUuNDA4OCAxMS4xMTgyIDE1LjIzMTRDMTEuMjA4MiAxNS4wNTQgMTEuMjI0MSAxNC44NDgxIDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTMgMTQuMTMzMSAxMC40MDU0IDE0LjExNzIgMTAuMjE2MyAxNC4xNzlDOS4wMTM1OSAxNC41NzE3IDcuNzIyNDIgMTQuNjA0OSA2LjUwMTE0IDE0LjI3NDVDNS4yNzk4NiAxMy45NDQxIDQuMTgxNTUgMTMuMjY0NCAzLjM0MDkyIDEyLjMxODlDMi41MDAyOCAxMS4zNzM0IDEuOTUzODYgMTAuMjAzMSAxLjc2ODY3IDguOTUxNTFDMS41ODM0OCA3LjY5OTk1IDEuNzY3NTcgNi40MjE1NSAyLjI5ODM3IDUuMjczMDlDMi44MjkxNiA0LjEyNDYzIDMuNjgzNTggMy4xNTYwNCA0Ljc1Njg0IDIuNDg2MTFDNS44MzAxMSAxLjgxNjE4IDcuMDc1NTUgMS40NzQwMyA4LjM0MDQ0IDEuNTAxNjNDOS42MDUzMyAxLjUyOTIyIDEwLjgzNDcgMS45MjUzNiAxMS44Nzc3IDIuNjQxNDdDMTIuOTIwNyAzLjM1NzU3IDEzLjczMjEgNC4zNjI1IDE0LjIxMjMgNS41MzMwMkMxNC4yODc3IDUuNzE3MDggMTQuNDMzMiA1Ljg2MzYyIDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjEgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTUgMTUuNjAwMyA0Ljk2NDAyQzE1LjAwOTMgMy41MjMzMSAxNC4wMTA3IDIuMjg2MzkgMTIuNzI2OSAxLjQwNDk4QzExLjQ0MzIgMC41MjM1NzEgOS45MzAxMiAwLjAzNTk4MTUgOC4zNzMyOCAwLjAwMjAxNjA2Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjU4Nzk2IDMuMDc5MDMgOC4zOTcxOSAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0MjggOS43MjMwMkM1LjM0MDU5IDkuNzkxNjggNS4yODE0OSA5Ljg3NDQ4IDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjY3ODggMTAuNjQ2IDUuMzI0MDIgMTAuNzMwOCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzIyODIgMTAuOTE1OCA2LjQwNTYyIDEwLjg1NjcgNi40NzQyOCAxMC43ODNMOC43MjgyOCA4LjUzMDAyTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xNS4xOTgzIDE1QzE1LjE5ODMgMTUuMjY1MiAxNS4wOTI5IDE1LjUxOTYgMTQuOTA1NCAxNS43MDcxQzE0LjcxNzkgMTUuODk0NyAxNC40NjM1IDE2IDE0LjE5ODMgMTZDMTMuOTMzMSAxNiAxMy42Nzg3IDE1Ljg5NDcgMTMuNDkxMiAxNS43MDcxQzEzLjMwMzYgMTUuNTE5NiAxMy4xOTgzIDE1LjI2NTIgMTMuMTk4MyAxNUMxMy4xOTgzIDE0LjczNDggMTMuMzAzNiAxNC40ODA0IDEzLjQ5MTIgMTQuMjkyOUMxMy42Nzg3IDE0LjEwNTQgMTMuOTMzMSAxNCAxNC4xOTgzIDE0QzE0LjQ2MzUgMTQgMTQuNzE3OSAxNC4xMDU0IDE0LjkwNTQgMTQuMjkyOUMxNS4wOTI5IDE0LjQ4MDQgMTUuMTk4MyAxNC43MzQ4IDE1LjE5ODMgMTVaTTE0Ljk0ODMgOC43NTAwMkMxNC45NDgzIDguNTUxMSAxNC44NjkzIDguMzYwMzQgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTAzIDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwMyAxMy42NjggOC4yMTk2OUMxMy41MjczIDguMzYwMzQgMTMuNDQ4MyA4LjU1MTEgMTMuNDQ4MyA4Ljc1MDAyVjEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM5NzIgMTMgMTQuNTg4IDEyLjkyMSAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjguNzUwMDJaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTUuMTg1OCA0LjEwMzc5QzE1LjA5OTYgMy45NDkwNyAxNS4wMDgzIDMuNzk3NDQgMTQuOTEyMSAzLjY0OTExQzE0LjU3NDcgMy4xMjg0MyAxNC4xNzc2IDIuNjQ4NTQgMTMuNzI4OSAyLjIxOTMyQzEzLjQxODcgMS45MjI1NyAxMy4wODM5IDEuNjUwMDQgMTIuNzI2OSAxLjQwNDk4QzEyLjcyNjkgMS40MDQ5MyAxMi43MjcgMS40MDUwNCAxMi43MjY5IDEuNDA0OThDMTIuNTE0NCAxLjI1OTA2IDEyLjI5NTQgMS4xMjM3OSAxMi4wNzExIDAuOTk5NzI5QzExLjgyNTUgMC44NjM4OTMgMTEuNTczNCAwLjc0MTMyMiAxMS4zMTU5IDAuNjMyMzc3QzEwLjM4ODIgMC4yMzk4NzMgOS4zOTAwNiAwLjAyNDE5OSA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zNzMyNCAwLjAwMjAxNTE4IDguMzczMzIgMC4wMDIwMTY5NCA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zMTQ5NiAwLjAwMDc0Nzc5IDguMjU2NTUgMC4wMDAxMTUzODcgOC4xOTgyOCAwLjAwMDEyMjEyNEM3LjEyNzYgMC4wMDAyNDU5MiA2LjA2NzU0IDAuMjE1MzA0IDUuMDgxMDggMC42MzI4MTZDNS4wNDk4MyAwLjY0NjA0MyA1LjAxODY1IDAuNjU5NDczIDQuOTg3NTUgMC42NzMxMDZDNC43NjExNSAwLjc3MjM0MyA0LjUzOTkzIDAuODgxODIgNC4zMjQ1MiAxLjAwMTA3QzQuMjAyMDEgMS4wNjg4OSA0LjA4MTM5IDEuMTM5ODcgMy45NjI3NSAxLjIxMzkzQzMuMzA3NTYgMS42MjI5NiAyLjcxMzI5IDIuMTI1ODEgMi4xOTk2NyAyLjcwODExQzEuNjg2MDIgMy4yOTA0MyAxLjI2MTI3IDMuOTQyODUgMC45MzcyMzIgNC42NDRDMC43NzU0MTUgNC45OTQxNCAwLjYzODcxMyA1LjM1NjQzIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5OSA2Ljg0NDQ1IDAuMTE0OTgzIDguMDE5MzggMC4yODUzNjYgOS4xNzA5OUMwLjI4NTM1NCA5LjE3MDkxIDAuMjg1Mzc5IDkuMTcxMDggMC4yODUzNjYgOS4xNzA5OUMwLjQ1NTggMTAuMzIyNyAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MxLjcyODM1IDEyLjcyMDEgMS45NjQwMiAxMy4wMjcxIDIuMjIwMTkgMTMuMzE1M0MyLjczMzQ5IDEzLjg5MjcgMy4zMjkwOSAxNC4zOTQzIDMuOTg5NTEgMTQuODAyOUM0LjY0OTY3IDE1LjIxMTUgNS4zNjM5OCAxNS41MjA2IDYuMTA5NDMgMTUuNzIyNEM2LjQ4MTkgMTUuODIzMiA2Ljg2MjE1IDE1Ljg5NzEgNy4yNDczIDE1Ljk0MzNDNy4yOTEyMyAxNS45NDg2IDcuMzM1MTkgMTUuOTUzNSA3LjM3OTE3IDE1Ljk1OEM4LjAxNDkyIDE2LjAyMzUgOC42NTQ2NCAxNi4wMTI0IDkuMjg0NzggMTUuOTI2MUM5LjUyMTQ2IDE1Ljg5MzcgOS43NTY3OCAxNS44NTA3IDkuOTkwMDQgMTUuNzk3MUMxMC4yMjMgMTUuNzQzNiAxMC40NTM5IDE1LjY3OTYgMTAuNjgxOSAxNS42MDUxQzEwLjY4MTggMTUuNjA1MiAxMC42ODIxIDE1LjYwNTEgMTAuNjgxOSAxNS42MDUxQzEwLjcxOTYgMTUuNTkyOCAxMC43NTYzIDE1LjU3NzUgMTAuNzkxMSAxNS41NTk3QzEwLjkzMTIgMTUuNDg4IDExLjA0NjEgMTUuMzczNSAxMS4xMTgyIDE1LjIzMTRDMTEuMTU1NCAxNS4xNTgxIDExLjE4IDE1LjA3OTkgMTEuMTkxNiAxNUMxMS4yMDgxIDE0Ljg4NjcgMTEuMTk4NSAxNC43NyAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTE0IDE0LjEzMzEgMTAuNDA1NiAxNC4xMTcyIDEwLjIxNjYgMTQuMTc4OUMxMC4yMTY1IDE0LjE3ODkgMTAuMjE2OCAxNC4xNzg5IDEwLjIxNjYgMTQuMTc4OUMxMC4xMTIxIDE0LjIxMyAxMC4wMDY1IDE0LjI0NDYgOS45MDA3MyAxNC4yNzMzQzkuNzQ4NDggMTQuMzE0NiA5LjU5NTA2IDE0LjM1MDMgOS40NDA3OCAxNC4zODAzQzkuMzcxNDYgMTQuMzkzOCA5LjMwMTk2IDE0LjQwNjIgOS4yMzIzMyAxNC40MTc0QzguODU0OCAxNC40NzgyIDguNDczMDIgMTQuNTA1NSA4LjA5MTQ0IDE0LjQ5OTJDNy45OTU2OCAxNC40OTc2IDcuODk5OTIgMTQuNDkzOSA3LjgwNDI2IDE0LjQ4ODFDNy42Nzc5IDE0LjQ4MDQgNy41NTE2OCAxNC40NjkxIDcuNDI1NzggMTQuNDU0QzcuMzYxMzMgMTQuNDQ2MyA3LjI5Njk2IDE0LjQzNzYgNy4yMzI2OSAxNC40Mjc5QzYuOTg2OTMgMTQuMzkxIDYuNzQyNjcgMTQuMzM5OSA2LjUwMTE0IDE0LjI3NDVDNi4zMjkzMyAxNC4yMjggNi4xNTk5NSAxNC4xNzQ2IDUuOTkzMzcgMTQuMTE0NkM1LjU2ODA5IDEzLjk2MTIgNS4xNjExMiAxMy43NjQyIDQuNzc4NyAxMy41Mjc2QzQuNzMzNzMgMTMuNDk5OCA0LjY4OTExIDEzLjQ3MTQgNC42NDQ4MyAxMy40NDI1QzQuMjcwMDMgMTMuMTk3OCAzLjkyMDI4IDEyLjkxNDIgMy42MDE3NCAxMi41OTU2QzMuNTEyMjkgMTIuNTA2MSAzLjQyNTMxIDEyLjQxMzggMy4zNDA5MiAxMi4zMTg5QzMuMTMxMzkgMTIuMDgzMiAyLjk0MDE0IDExLjgzMzYgMi43NjgyMSAxMS41NzIyQzIuNzYzODUgMTEuNTY1NiAyLjc1OTUgMTEuNTU5IDIuNzU1MTYgMTEuNTUyM0MyLjQ3OTY0IDExLjEzMDEgMi4yNTQzNyAxMC42Nzc1IDIuMDgzNjggMTAuMjAzOUMxLjkzODA3IDkuNzk5OTMgMS44MzIxOCA5LjM4MDYxIDEuNzY4NzEgOC45NTE3NEMxLjc2ODY5IDguOTUxNjYgMS43Njg3MiA4Ljk1MTgyIDEuNzY4NzEgOC45NTE3NEMxLjc0MTI1IDguNzY2MjEgMS43MjE4OCA4LjU3OTg2IDEuNzEwNTkgOC4zOTM2N0MxLjcwNDcxIDguMjk2ODMgMS43MDEwMSA4LjE5OTk4IDEuNjk5NDggOC4xMDMxN0MxLjY4OTAyIDcuNDQzNTUgMS43NzkwNSA2Ljc4NjI2IDEuOTY2MzEgNi4xNTQwNUMyLjA1NTIgNS44NTM5NCAyLjE2NjAxIDUuNTU5NDcgMi4yOTgzNyA1LjI3MzA5QzIuNTYzNzggNC42OTg4MyAyLjkxMDExIDQuMTY5NTQgMy4zMjQyNSAzLjcwMDA3QzMuMzY2MTggMy42NTI1NCAzLjQwODggMy42MDU2MyAzLjQ1MjEgMy41NTkzNEMzLjgzNjQ5IDMuMTQ4NDggNC4yNzQ1OCAyLjc4NzE0IDQuNzU2ODQgMi40ODYxMUM1LjAyNDUyIDIuMzE5MDMgNS4zMDI5MSAyLjE3MjMzIDUuNTg5NjMgMi4wNDY2OEM1LjgwNDcxIDEuOTUyNDIgNi4wMjQ0OSAxLjg3IDYuMjQ3OTYgMS43OTk3QzYuODc2MjggMS42MDIwMiA3LjUzMzggMS41MDAxMiA4LjE5ODI4IDEuNTAwMDhDOC4yNDU2MyAxLjUwMDA4IDguMjkzMDIgMS41MDA1OSA4LjM0MDQ0IDEuNTAxNjNDOC45NTc0NSAxLjUxNTExIDkuNTY2MiAxLjYxNjI5IDEwLjE0ODggMS43OTk1MkMxMC43NjA1IDEuOTkxODkgMTEuMzQzNSAyLjI3NDcyIDExLjg3NzcgMi42NDE0N0MxMS44Nzc2IDIuNjQxNDIgMTEuODc3OCAyLjY0MTUxIDExLjg3NzcgMi42NDE0N0MxMi4wODM5IDIuNzgzMDQgMTIuMjgxMiAyLjkzNjAzIDEyLjQ2ODUgMy4wOTkyMkMxMi42MzUxIDMuMjQ0MzYgMTIuNzkzOSAzLjM5NzY3IDEyLjk0NDQgMy41NTg0OEMxMy4wOTc0IDMuNzIxOTcgMTMuMjQxOSAzLjg5MzIyIDEzLjM3NzEgNC4wNzE1MkMxMy41NTU1IDQuMzA2NiAxMy43MTc5IDQuNTUzOTUgMTMuODYzMSA0LjgxMTk1QzEzLjk0MjcgNC45NTMzNiAxNC4wMTcxIDUuMDk3OTggMTQuMDg2MSA1LjI0NTUyQzE0LjEyNTMgNS4zMjkxNCAxNC4xNjI3IDUuNDEzNzEgMTQuMTk4MyA1LjQ5OTE2QzE0LjIwMyA1LjUxMDQzIDE0LjIwNzYgNS41MjE3MiAxNC4yMTIzIDUuNTMzMDJDMTQuMjEyMiA1LjUzMjkyIDE0LjIxMjMgNS41MzMxMiAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3OCA1LjcxNjkzIDE0LjQzMzMgNS44NjM2NyAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIyIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE2IDE1LjYwMDMgNC45NjQwMkMxNS42MDAyIDQuOTYzOSAxNS42MDAzIDQuOTY0MTQgMTUuNjAwMyA0Ljk2NDAyQzE1LjUwOTEgNC43NDE4NyAxNS40MDgyIDQuNTI0MiAxNS4yOTgxIDQuMzEyMjlDMTUuMjYxNyA0LjI0MjIgMTUuMjI0MiA0LjE3MjY5IDE1LjE4NTggNC4xMDM3OVpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC42MTQwNSAzLjEwNTEyIDguNDY2MjQgMy4wMzE0NSA4LjMwNzg2IDMuMDA4MDZDOC4yNzE4OCAzLjAwMjc2IDguMjM1MDggMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDUyIDkuNzIyNzhDNS40MDE1OSA5LjczNDgzIDUuMzg4ODcgOS43NDc1NSA1LjM3Njg2IDkuNzYwNDRDNS4zMjA0MSA5LjgyMTAyIDUuMjc0MyA5Ljg5MDYyIDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjM4NjMgMTAuNTczNiA1LjI0ODA0IDEwLjU5NDIgNS4yNTgzNCAxMC42MTQyQzUuMjkzODcgMTAuNjgzNCA1LjM0MDAyIDEwLjc0NjggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMwNjY4IDEwLjkyMyA2LjM3NjI4IDEwLjg3NjkgNi40MzY4NiAxMC44MjA0QzYuNDQ5NjYgMTAuODA4NSA2LjQ2MjA2IDEwLjc5NjEgNi40NzQwMyAxMC43ODMzQzYuNDczOTUgMTAuNzgzNCA2LjQ3NDExIDEwLjc4MzIgNi40NzQwMyAxMC43ODMzTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xMy40NDgzIDEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM4OTUgMTMgMTQuNTczMiAxMi45MjcgMTQuNzEyMSAxMi43OTYzQzE0LjcxNzcgMTIuNzkxMSAxNC43MjMyIDEyLjc4NTggMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVYxMC4wNTY2QzE0LjcwMTUgMTAuMDE5MSAxNC40NTA5IDEwIDE0LjE5ODMgMTBDMTMuOTQ1NyAxMCAxMy42OTUgMTAuMDE5MSAxMy40NDgzIDEwLjA1NjZWMTIuMjVaTTEzLjQ0ODMgOS43NjkyN0MxMy42OTMyIDkuODQ4MjggMTMuOTQ0MSA5LjkwNzE5IDE0LjE5ODMgOS45NDU1MUMxNC40MjY0IDkuOTc5ODkgMTQuNjU3MiA5Ljk5NzY5IDE0Ljg4ODkgOS45OTg1NEMxNC45MDg3IDkuOTk4NjEgMTQuOTI4NSA5Ljk5ODU2IDE0Ljk0ODMgOS45OTgzOFY4Ljc1MDAyQzE0Ljk0ODMgOC42NTM1NiAxNC45Mjk3IDguNTU5MDEgMTQuODk0NSA4LjQ3MTE3QzE0Ljg1NzEgOC4zNzc4NyAxNC44MDExIDguMjkyMTMgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTA0IDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwNCAxMy42NjggOC4yMTk2OUMxMy42NjUgOC4yMjI2OCAxMy42NjIgOC4yMjU2OSAxMy42NTkxIDguMjI4NzJDMTMuNTI4MiA4LjM2NDEgMTMuNDUzIDguNTQzNzYgMTMuNDQ4NSA4LjczMTg4QzEzLjQ0ODQgOC43Mzc5MiAxMy40NDgzIDguNzQzOTcgMTMuNDQ4MyA4Ljc1MDAyVjkuNzY5MjdaTTE1LjE5NjMgMTUuMDYyNkMxNS4xOTc2IDE1LjA0MTggMTUuMTk4MyAxNS4wMjA5IDE1LjE5ODMgMTVDMTUuMTk4MyAxNC45OTg0IDE1LjE5ODMgMTQuOTk2OCAxNS4xOTgzIDE0Ljk5NTFDMTUuMTk3IDE0LjczMTcgMTUuMDkxOCAxNC40NzkzIDE0LjkwNTQgMTQuMjkyOUMxNC43MTc4IDE0LjEwNTQgMTQuNDYzNSAxNCAxNC4xOTgzIDE0QzEzLjkzMzEgMTQgMTMuNjc4NyAxNC4xMDU0IDEzLjQ5MTIgMTQuMjkyOUMxMy4zMDM2IDE0LjQ4MDQgMTMuMTk4MyAxNC43MzQ4IDEzLjE5ODMgMTVDMTMuMTk4MyAxNS4yNjUyIDEzLjMwMzYgMTUuNTE5NiAxMy40OTEyIDE1LjcwNzFDMTMuNjc4NyAxNS44OTQ3IDEzLjkzMzEgMTYgMTQuMTk4MyAxNkMxNC40NjM1IDE2IDE0LjcxNzggMTUuODk0NyAxNC45MDU0IDE1LjcwNzFDMTUuMDc4MSAxNS41MzQ0IDE1LjE4MTEgMTUuMzA1IDE1LjE5NjMgMTUuMDYyNlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4xOTkyMTkpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSYmb2JqPy5yZXZvcHNUeXBlIT09JydcIiAgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgbmdiVG9vbHRpcD1cIkN1c3RvbWVyIFRhZ2dpbmcgaXMgRG9uZVwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMDYzOCA3LjM4NjYyVjcuOTk5OTVDMTUuMDYzIDkuNDM3NTYgMTQuNTk3NSAxMC44MzY0IDEzLjczNjcgMTEuOTg3OEMxMi44NzU5IDEzLjEzOTMgMTEuNjY2IDEzLjk4MTYgMTAuMjg3NCAxNC4zODkyQzguOTA4NzYgMTQuNzk2OCA3LjQzNTMxIDE0Ljc0NzkgNi4wODY3OCAxNC4yNDk3QzQuNzM4MjYgMTMuNzUxNSAzLjU4NjkxIDEyLjgzMDcgMi44MDQ0NCAxMS42MjQ3QzIuMDIxOTggMTAuNDE4NiAxLjY1MDMzIDguOTkxOTkgMS43NDQ5MiA3LjU1NzQ5QzEuODM5NTEgNi4xMjI5OSAyLjM5NTI3IDQuNzU3NSAzLjMyOTMyIDMuNjY0NjdDNC4yNjMzNyAyLjU3MTgzIDUuNTI1NjYgMS44MTAyMSA2LjkyNzkzIDEuNDkzMzhDOC4zMzAyIDEuMTc2NTYgOS43OTczMSAxLjMyMTUxIDExLjExMDUgMS45MDY2Mk0xNS4wNjM4IDIuNjY2NjJMOC4zOTcxNCA5LjMzOTk1TDYuMzk3MTQgNy4zMzk5NVwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMzk4NDM4KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC5lbnRyeVRpbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQuZXhpdFRpbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC50b3RhbFRpbWVTcGVudH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImltYWdlRmxvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9WaWV3KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIHB5LTIgaW1nLWRvYy1kaXJlY3RvcnlcIj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWluZm9cIj57e0ltYWdlZGF0YS50ZW1wSWR9fTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHZhbHVlID09PSAnZm9vdGZhbGwnICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6IHZhbHVlID09PSAncHVyY2hhc2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdwdXJjaGFzZXInID8gJ1B1cmNoYXNlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgfCB0aXRsZWNhc2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW25nQ2xhc3NdPVwieyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnOiBpc0ZpcnN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzRmlyc3RJbWFnZSgpID8gJ25vbmUnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0ZpcnN0SW1hZ2UoKSAmJiBwcmV2aW91cygpXCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDhDMC41IDMuODU3ODYgMy44NTc4NiAwLjUgOCAwLjVIMzkuNVYzOS41SDhDMy44NTc4NiAzOS41IDAuNSAzNi4xNDIxIDAuNSAzMlY4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgOEMwLjUgMy44NTc4NiAzLjg1Nzg2IDAuNSA4IDAuNUgzOS41VjM5LjVIOEMzLjg1Nzg2IDM5LjUgMC41IDM2LjE0MjEgMC41IDMyVjhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDI1TDE3LjUgMjBMMjIuNSAxNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJzogaXNMYXN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzTGFzdEltYWdlKCkgPyAnbm9uZScgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzTGFzdEltYWdlKCkgJiYgbmV4dCgpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgMC41SDMyQzM2LjE0MjEgMC41IDM5LjUgMy44NTc4NiAzOS41IDhWMzJDMzkuNSAzNi4xNDIxIDM2LjE0MjEgMzkuNSAzMiAzOS41SDAuNVYwLjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSAwLjVIMzJDMzYuMTQyMSAwLjUgMzkuNSAzLjg1Nzg2IDM5LjUgOFYzMkMzOS41IDM2LjE0MjEgMzYuMTQyMSAzOS41IDMyIDM5LjVIMC41VjAuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMjVMMjIuNSAyMEwxNy41IDE1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRhaW4gbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICBjbGFzcz1cImltZy1zcmMxXCIgW3NyY109XCJJbWFnZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZXMgPSBudWxsXCIgYWx0PVwiXCIgYXBwTWFnbmlmaWVyID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7bXlUaHVtYm5haWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtaW1hZ2Utem9vbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1iSW1hZ2VdPW15VGh1bWJuYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsSW1hZ2VdPW15RnVsbHJlc0ltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWduaWZpY2F0aW9uXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlU2Nyb2xsWm9vbV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZUxlbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZW5zV2lkdGhdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlbnNIZWlnaHRdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZ3gtaW1hZ2Utem9vbT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlc1wiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzbGlkZXIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FbnRyeSBUaW1lMTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctMTAwIHJvdW5kZWQtMiBtaC0xMDBweCBwYi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ2VudHJ5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlN0YWZmIEVuZ2FnZW1lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5zdGFmZkVuZ2FnZW1lbnRJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdzdGFmZicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC00IFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UgJiYgZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgIGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmV4aXRUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IHBlLTAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtd3JhcCBuYXYtZGV2IGZ3LWJvbGQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXktMSB3LTUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRhYiA9ICd0YWdnZWQnXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ3RhZ2dlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnZ2VkIEluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAnY3VzdG9tZXInXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiBjbGFzcz1cInRhYi10ZXh0LWRlZmF1bHQgYnRuIG5hdi1saW5rIHB4LTMgcHgtbGctOCBteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lciBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LTMgbXQtNSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvTm9uU2hvcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJub25TaG9wcGVyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEN1c3RvbWVyVHlwZVwiIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbm9uU2hvcHBlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvTm9uU2hvcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbiBTaG9wcGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvUHVyY2hhc2VyXCIgdmFsdWU9XCJwdXJjaGFzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ3B1cmNoYXNlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvUHVyY2hhc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb01pc3NlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtaXNzZWRPcHBvcnR1bml0eVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbWlzc2VkT3Bwb3J0dW5pdHknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb01pc3NlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc3NlZCBPcHBvcnR1bml0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb2JqIG9mIG5vblNob3BwZXJMaXN0XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlICBtdC0zIG1lLThcIiAgICAgW25nQ2xhc3NdPVwib2JqIT09bm9uU2hvcGVyVHlwZSA/ICdiYWRnZS1saWdodC1kZWZhdWx0JyA6J2JhZGdlLWxpZ2h0LXByaW1hcnknXCIgKGNsaWNrKT1cInNlbGVjdG5vblNob3BlcihvYmopXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICpuZ0lmPVwib2JqIT09bm9uU2hvcGVyVHlwZVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaj09PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4zOTc3IDQuOTI2NjFMNi42MjQzNCA5LjUzMzI4TDUuMzU3NjcgOC4xNzk5NEM1LjEyNDM0IDcuOTU5OTQgNC43NTc2NyA3Ljk0NjYxIDQuNDkxIDguMTMzMjhDNC4yMzEgOC4zMjY2MSA0LjE1NzY3IDguNjY2NjEgNC4zMTc2NyA4LjkzOTk0TDUuODE3NjcgMTEuMzc5OUM1Ljk2NDM0IDExLjYwNjYgNi4yMTc2NyAxMS43NDY2IDYuNTA0MzQgMTEuNzQ2NkM2Ljc3NzY3IDExLjc0NjYgNy4wMzc2NyAxMS42MDY2IDcuMTg0MzQgMTEuMzc5OUM3LjQyNDM0IDExLjA2NjYgMTIuMDA0MyA1LjYwNjYxIDEyLjAwNDMgNS42MDY2MUMxMi42MDQzIDQuOTkzMjggMTEuODc3NyA0LjQ1MzI4IDExLjM5NzcgNC45MTk5NFY0LjkyNjYxWlwiIGZpbGw9XCIjMzNCNUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7b2JqfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNSBwYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXROYW1lXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIiByb3dzPVwiNFwiIHBsYWNlaG9sZGVyPVwiXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJub25TaG9wcGVyU3VibWl0KClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lXCI+TmFtZTxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCduYW1lJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm5hbWUuZXJyb3JzPy5yZXF1aXJlZFwiPk5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db250YWN0IE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHBzLTMgcGUtOFwiIGlkPVwiaW5wdXRHcm91cFNlbGVjdDAxXCIgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeUNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCIgW3ZhbHVlXT1cImNvdW50cnkucGhvbmVjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvdW50cnkubmFtZX19ICh7e2NvdW50cnkucGhvbmVjb2RlfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9iaWxlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9iaWxlXCIgbWlubGVuZ3RoPVwiOFwiIG1heGxlbmd0aD1cIjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCdtb2JpbGUnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/LnJlcXVpcmVkXCI+Q29udGFjdCBOdW1iZXIgaXMgcmVxdWlyZWQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5taW5sZW5ndGhcIj5Db250YWN0IE51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDggZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWF4bGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgY2Fubm90IGV4Y2VlZCAxMyBkaWdpdHMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkVtYWlsIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LmludmFsaWQgJiYgKHVzZXJGb3JtLmdldCgnZW1haWwnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnZW1haWwnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZW1haWwuZXJyb3JzPy5wYXR0ZXJuXCI+SW52YWxpZCBlbWFpbCBmb3JtYXQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsb2NhdGlvblwiPkxvY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgaWQ9XCJsb2NhdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImxvY2F0aW9uXCIgI3BsYWNlc1JlZj1cIm5neC1wbGFjZXNcIiBuZ3gtZ3AtYXV0b2NvbXBsZXRlIChvbkFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYWdlXCI+QWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgbXQtM1wiIGZvcm1Db250cm9sTmFtZT1cImFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IEFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQmVsb3cgMTJcIj5CZWxvdyAxMjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTMtMTlcIj4xM+KAkzE5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMOKAkzMwXCI+MjDigJMzMDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMzHigJM0NVwiPjMx4oCTNDU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQ24oCTNTlcIj40NuKAkzU5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBYm92ZSA2MFwiPkFib3ZlIDYwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogMC4yNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcGUtNSB0ZXh0LWNlbnRlciBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIiBtYXg9XCI5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicmlnaHQ6IDIuNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbmNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnZW5kZXJcIj5HZW5kZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IG10LTNcIiBmb3JtQ29udHJvbE5hbWU9XCJnZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBHZW5kZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1hbGVcIj5NYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmZW1hbGVcIj5GZW1hbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRDdXN0b21lclR5cGUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zIGJvcmRlci1ncmF5LWFjdGl2ZTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBtaXNzZWRPcHBvcnR1bml0eUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtIG5hdi1pdGVtMSB3LTI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFicyhvYmoubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZE1pc3NlZCA9PT0gb2JqLm5hbWUgPyAnYWN0aXZlJyA6ICdhY3RpdmUtbm9ybWFsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBuYXYtbGluazEgY3Vyc29yLXBvaW50ZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvYmoubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG1iLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIElzc3VlIEJhZGdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvYmogb2YgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRNaXNzZWQgPT09IG9iai5uYW1lXCIgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9iai5pc3N1ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFN1Ymlzc3VlKG9iaiwgaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtZGVmYXVsdCc6IXNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXQtMiBtZS0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cIiFzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAyLjVWOS41TTIuNSA2SDkuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cInNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMzk3NyA0LjkyNjYxTDYuNjI0MzQgOS41MzMyOEw1LjM1NzY3IDguMTc5OTRDNS4xMjQzNCA3Ljk1OTk0IDQuNzU3NjcgNy45NDY2MSA0LjQ5MSA4LjEzMzI4QzQuMjMxIDguMzI2NjEgNC4xNTc2NyA4LjY2NjYxIDQuMzE3NjcgOC45Mzk5NEw1LjgxNzY3IDExLjM3OTlDNS45NjQzNCAxMS42MDY2IDYuMjE3NjcgMTEuNzQ2NiA2LjUwNDM0IDExLjc0NjZDNi43Nzc2NyAxMS43NDY2IDcuMDM3NjcgMTEuNjA2NiA3LjE4NDM0IDExLjM3OTlDNy40MjQzNCAxMS4wNjY2IDEyLjAwNDMgNS42MDY2MSAxMi4wMDQzIDUuNjA2NjFDMTIuNjA0MyA0Ljk5MzI4IDExLjg3NzcgNC40NTMyOCAxMS4zOTc3IDQuOTE5OTRWNC45MjY2MVpcIiBmaWxsPVwiIzMzQjVGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5EZXNjcmlwdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjb21tZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJzdWJtaXRNaXNzZWRPcHBvcnR1bml0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWNsYXNzXCI+VGFnZ2VkIFN1bW1hcnkgPHNwYW4gKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzPT09J3N1Ym1pdHRlZCdcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNC42NjY4IDcuMzg2NzRWOC4wMDAwN0MxNC42NjYgOS40Mzc2OSAxNC4yMDA1IDEwLjgzNjUgMTMuMzM5NyAxMS45ODhDMTIuNDc4OSAxMy4xMzk0IDExLjI2OSAxMy45ODE3IDkuODkwNCAxNC4zODkzQzguNTExNzggMTQuNzk3IDcuMDM4MzQgMTQuNzQ4IDUuNjg5ODEgMTQuMjQ5OEM0LjM0MTI4IDEzLjc1MTYgMy4xODk5MyAxMi44MzA4IDIuNDA3NDcgMTEuNjI0OEMxLjYyNTAxIDEwLjQxODggMS4yNTMzNiA4Ljk5MjExIDEuMzQ3OTUgNy41NTc2MUMxLjQ0MjU0IDYuMTIzMTIgMS45OTgzIDQuNzU3NjIgMi45MzIzNSAzLjY2NDc5QzMuODY2NCAyLjU3MTk1IDUuMTI4NjkgMS44MTAzMyA2LjUzMDk2IDEuNDkzNUM3LjkzMzIzIDEuMTc2NjggOS40MDAzNCAxLjMyMTYzIDEwLjcxMzUgMS45MDY3NE0xNC42NjY4IDIuNjY2NzRMOC4wMDAxNyA5LjM0MDA3TDYuMDAwMTcgNy4zNDAwN1wiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHRleHQtZW5kXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzIT09J3N1Ym1pdHRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDkwMV83Nzk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMTMxNTIgMC4wMDE0MjA0OUM1LjI1ODU1IC0wLjAxNzU3NzggNC4zOTE5NSAwLjE1NDE5MiAzLjU5MjIyIDAuNTA0NzM4QzIuNzkyNSAwLjg1NTI4MyAyLjA3ODkyIDEuMzc2MTYgMS41MDEzMSAyLjAzMDk5QzAuOTIzNzAzIDIuNjg1ODMgMC40OTU5ODEgMy40NTg4NSAwLjI0ODAwOSA0LjI5NjA4QzMuNzAyOTRlLTA1IDUuMTMzMyAtMC4wNjIyMDk1IDYuMDE0NTcgMC4wNjU2MTU0IDYuODc4MzRDMC4xOTM0NCA3Ljc0MjEyIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjQ2NzkxIDEwLjAyNjYgMi4xMDExOSAxMC42NDI2IDIuODQzNyAxMS4xMDIxQzMuNTg2MjEgMTEuNTYxNiA0LjQyMDA2IDExLjg1MzUgNS4yODcwMyAxMS45NTc0QzYuMTU0MDEgMTIuMDYxMyA3LjAzMzIyIDExLjk3NDcgNy44NjMyNyAxMS43MDM3QzguMDA1MSAxMS42NTczIDguMTIyNyAxMS41NTY1IDguMTkwMjIgMTEuNDIzNUM4LjI1NzczIDExLjI5MDQgOC4yNjk2MiAxMS4xMzYgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMDIgMTAuNTk5NyA3LjY1NTYgMTAuNTg3OCA3LjUxMzc3IDEwLjYzNDJDNi42MTE3NSAxMC45Mjg3IDUuNjQzMzggMTAuOTUzNiA0LjcyNzQyIDEwLjcwNThDMy44MTE0NiAxMC40NTggMi45ODc3MyA5Ljk0ODI1IDIuMzU3MjUgOS4yMzkxQzEuNzI2NzcgOC41Mjk5NSAxLjMxNjk2IDcuNjUyMjEgMS4xNzgwNyA2LjcxMzU0QzEuMDM5MTcgNS43NzQ4NyAxLjE3NzI0IDQuODE2MDcgMS41NzUzNCAzLjk1NDczQzEuOTczNDMgMy4wOTMzOCAyLjYxNDI1IDIuMzY2OTQgMy40MTkyIDEuODY0NDlDNC4yMjQxNCAxLjM2MjA0IDUuMTU4MjMgMS4xMDU0MyA2LjEwNjg5IDEuMTI2MTNDNy4wNTU1NiAxLjE0NjgzIDcuOTc3NTYgMS40NDM5MyA4Ljc1OTgzIDEuOTgxMDFDOS41NDIxIDIuNTE4MDkgMTAuMTUwNiAzLjI3MTc4IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NzIgMTAuNjc2NSA0LjM5NzYzIDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ3IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuMTA4NSAyLjY0MjM5IDEwLjM1OTYgMS43MTQ3IDkuMzk2NzcgMS4wNTM2NUM4LjQzMzk2IDAuMzkyNTg3IDcuMjk5MTUgMC4wMjY4OTQ2IDYuMTMxNTIgMC4wMDE0MjA0OVpNNi41NjI3NyAyLjgxMjQyQzYuNTYyNzcgMi42NjMyNCA2LjUwMzUxIDIuNTIwMTYgNi4zOTgwMiAyLjQxNDY3QzYuMjkyNTMgMi4zMDkxOCA2LjE0OTQ2IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTIyNyA3LjI5MjE3QzMuODU3MDEgNy4zNDM2NyAzLjgxMjY4IDcuNDA1NzcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjgwMjQ3IDcuOTg0NDEgMy44NDQ1OCA4LjA0ODA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODYgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTUgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU5MzY4IDguMTg2NzYgNC42NTU3OCA4LjE0MjQ0IDQuNzA3MjcgOC4wODcxN0w2LjM5Nzc3IDYuMzk3NDJMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTExLjI1MDMgMTEuMjQ5OUMxMS4yNTAzIDExLjQ0ODggMTEuMTcxMyAxMS42Mzk2IDExLjAzMDYgMTEuNzgwM0MxMC44ODk5IDExLjkyMDkgMTAuNjk5MiAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC4zMDE0IDExLjk5OTkgMTAuMTEwNiAxMS45MjA5IDkuOTY5OTQgMTEuNzgwM0M5LjgyOTI5IDExLjYzOTYgOS43NTAyNyAxMS40NDg4IDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjA1MSA5LjgyOTI5IDEwLjg2MDIgOS45Njk5NCAxMC43MTk2QzEwLjExMDYgMTAuNTc4OSAxMC4zMDE0IDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjY5OTIgMTAuNDk5OSAxMC44ODk5IDEwLjU3ODkgMTEuMDMwNiAxMC43MTk2QzExLjE3MTMgMTAuODYwMiAxMS4yNTAzIDExLjA1MSAxMS4yNTAzIDExLjI0OTlaTTExLjA2MjggNi41NjI0MkMxMS4wNjI4IDYuNDEzMjQgMTEuMDAzNSA2LjI3MDE2IDEwLjg5OCA2LjE2NDY3QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjdDOS45OTcwNCA2LjI3MDE2IDkuOTM3NzcgNi40MTMyNCA5LjkzNzc3IDYuNTYyNDJWOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0OTUgOS43NDk5MiAxMC43OTI1IDkuNjkwNjYgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNi41NjI0MlpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4yNDA5IDMuMDc3NzVDMTEuMTc2MiAyLjk2MTcxIDExLjEwNzggMi44NDc5OSAxMS4wMzU3IDIuNzM2NzRDMTAuNzgyNiAyLjM0NjIzIDEwLjQ4NDggMS45ODYzMSAxMC4xNDgzIDEuNjY0NEM5LjkxNTYxIDEuNDQxODQgOS42NjQ0NiAxLjIzNzQ0IDkuMzk2NzcgMS4wNTM2NUM5LjM5NjcyIDEuMDUzNjEgOS4zOTY4MyAxLjA1MzY4IDkuMzk2NzcgMS4wNTM2NUM5LjIzNzM3IDAuOTQ0MjA3IDkuMDczMDggMC44NDI3NDggOC45MDQ4NyAwLjc0OTcwNUM4LjcyMDcgMC42NDc4MjggOC41MzE2MyAwLjU1NTkgOC4zMzg1IDAuNDc0MTkyQzcuNjQyNjkgMC4xNzk4MTMgNi44OTQxIDAuMDE4MDU3NyA2LjEzMTUyIDAuMDAxNDIwNDlDNi4xMzE0OSAwLjAwMTQxOTgzIDYuMTMxNTUgMC4wMDE0MjExNSA2LjEzMTUyIDAuMDAxNDIwNDlDNi4wODc3OCAwLjAwMDQ2OTI5IDYuMDQzOTcgLTUuMDEyNjVlLTA2IDYuMDAwMjcgMy45OTQyNmUtMDhDNS4xOTcyNiA5LjI4ODcxZS0wNSA0LjQwMjIyIDAuMTYxMzg2IDMuNjYyMzcgMC40NzQ1MkMzLjYzODkzIDAuNDg0NDQxIDMuNjE1NTUgMC40OTQ1MTMgMy41OTIyMiAwLjUwNDczOEMzLjQyMjQzIDAuNTc5MTY2IDMuMjU2NTEgMC42NjEyNzMgMy4wOTQ5NiAwLjc1MDcxQzMuMDAzMDcgMC44MDE1NzcgMi45MTI2IDAuODU0ODE0IDIuODIzNjMgMC45MTAzNTlDMi4zMzIyMyAxLjIxNzEzIDEuODg2NTMgMS41OTQyNyAxLjUwMTMxIDIuMDMwOTlDMS4xMTYwOCAyLjQ2NzczIDAuNzk3NTE2IDIuOTU3MDQgMC41NTQ0ODYgMy40ODI5MUMwLjQzMzEyNCAzLjc0NTUxIDAuMzMwNTk3IDQuMDE3MjMgMC4yNDgwMDkgNC4yOTYwOEM1LjUxMzQzZS0wNSA1LjEzMzI0IC0wLjA2MjIwMDQgNi4wMTQ0NCAwLjA2NTU4NzQgNi44NzgxNUMwLjA2NTU3OCA2Ljg3ODA5IDAuMDY1NTk2NyA2Ljg3ODIyIDAuMDY1NTg3NCA2Ljg3ODE1QzAuMTkzNDEyIDcuNzQxOTMgMC41MDgyNTYgOC41Njc1OCAwLjk4ODA4MyA5LjI5NzExQzEuMTQ3ODMgOS41Mzk5OCAxLjMyNDU4IDkuNzcwMjcgMS41MTY3MSA5Ljk4NjM5QzEuOTAxNjggMTAuNDE5NCAyLjM0ODM4IDEwLjc5NTYgMi44NDM3IDExLjEwMjFDMy4zMzg4MiAxMS40MDg1IDMuODc0NTUgMTEuNjQwNCA0LjQzMzY0IDExLjc5MTdDNC43MTI5OSAxMS44NjczIDQuOTk4MTcgMTEuOTIyOCA1LjI4NzAzIDExLjk1NzRDNS4zMTk5OSAxMS45NjEzIDUuMzUyOTYgMTEuOTY1IDUuMzg1OTQgMTEuOTY4NEM1Ljg2Mjc1IDEyLjAxNzUgNi4zNDI1NCAxMi4wMDkyIDYuODE1MTQgMTEuOTQ0NUM2Ljk5MjY1IDExLjkyMDIgNy4xNjkxNSAxMS44ODc5IDcuMzQ0MDkgMTEuODQ3N0M3LjUxODggMTEuODA3NiA3LjY5MTk2IDExLjc1OTYgNy44NjMwMiAxMS43MDM4QzcuODYyOTQgMTEuNzAzOCA3Ljg2MzExIDExLjcwMzcgNy44NjMwMiAxMS43MDM4QzcuODkxMjcgMTEuNjk0NSA3LjkxODggMTEuNjgzMSA3Ljk0NDkyIDExLjY2OTdDOC4wNDk5NSAxMS42MTU5IDguMTM2MTUgMTEuNTMgOC4xOTAyMiAxMS40MjM1QzguMjE4MTIgMTEuMzY4NSA4LjIzNjUzIDExLjMwOTggOC4yNDUyNCAxMS4yNDk5QzguMjU3NjEgMTEuMTY0OSA4LjI1MDQ2IDExLjA3NzQgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMTEgMTAuNTk5OCA3LjY1NTc5IDEwLjU4NzggNy41MTQwNCAxMC42MzQxQzcuNTEzOTUgMTAuNjM0MSA3LjUxNDEzIDEwLjYzNDEgNy41MTQwNCAxMC42MzQxQzcuNDM1NjMgMTAuNjU5NyA3LjM1NjQ1IDEwLjY4MzMgNy4yNzcxMSAxMC43MDQ5QzcuMTYyOTIgMTAuNzM1OSA3LjA0Nzg2IDEwLjc2MjYgNi45MzIxNSAxMC43ODUxQzYuODgwMTYgMTAuNzk1MyA2LjgyODA0IDEwLjgwNDUgNi43NzU4MSAxMC44MTI5QzYuNDkyNjcgMTAuODU4NSA2LjIwNjMzIDEwLjg3OSA1LjkyMDE0IDEwLjg3NDNDNS44NDgzMiAxMC44NzMxIDUuNzc2NSAxMC44NzA0IDUuNzA0NzYgMTAuODY2QzUuNjA5OTggMTAuODYwMiA1LjUxNTMyIDEwLjg1MTcgNS40MjA5IDEwLjg0MDRDNS4zNzI1NiAxMC44MzQ2IDUuMzI0MjggMTAuODI4MSA1LjI3NjA4IDEwLjgyMDhDNS4wOTE3NiAxMC43OTMxIDQuOTA4NTYgMTAuNzU0OCA0LjcyNzQyIDEwLjcwNThDNC41OTg1NiAxMC42NzA5IDQuNDcxNTIgMTAuNjMwOSA0LjM0NjU5IDEwLjU4NThDNC4wMjc2MyAxMC40NzA4IDMuNzIyNCAxMC4zMjMxIDMuNDM1NTkgMTAuMTQ1NkMzLjQwMTg2IDEwLjEyNDggMy4zNjgzOSAxMC4xMDM1IDMuMzM1MTggMTAuMDgxOEMzLjA1NDA5IDkuODk4MjYgMi43OTE3OCA5LjY4NTU2IDIuNTUyODcgOS40NDY1OEMyLjQ4NTc4IDkuMzc5NDcgMi40MjA1NCA5LjMxMDI5IDIuMzU3MjUgOS4yMzkxQzIuMjAwMTEgOS4wNjIzNCAyLjA1NjY3IDguODc1MTIgMS45Mjc3MiA4LjY3OTA4QzEuOTI0NDUgOC42NzQxMSAxLjkyMTE4IDguNjY5MTMgMS45MTc5MyA4LjY2NDE0QzEuNzExMyA4LjM0NzQ5IDEuNTQyMzQgOC4wMDgwNyAxLjQxNDMyIDcuNjUyODZDMS4zMDUxMSA3LjM0OTg2IDEuMjI1NyA3LjAzNTM2IDEuMTc4MDkgNi43MTM3MUMxLjE3ODA4IDYuNzEzNjYgMS4xNzgxIDYuNzEzNzcgMS4xNzgwOSA2LjcxMzcxQzEuMTU3NSA2LjU3NDU3IDEuMTQyOTcgNi40MzQ4MSAxLjEzNDUgNi4yOTUxNkMxLjEzMDEgNi4yMjI1MyAxLjEyNzMyIDYuMTQ5ODkgMS4xMjYxNyA2LjA3NzI5QzEuMTE4MzIgNS41ODI1NyAxLjE4NTg1IDUuMDg5NjEgMS4zMjYzIDQuNjE1NDVDMS4zOTI5NyA0LjM5MDM2IDEuNDc2MDcgNC4xNjk1MSAxLjU3NTM0IDMuOTU0NzNDMS43NzQ0IDMuNTI0MDMgMi4wMzQxNCAzLjEyNzA2IDIuMzQ0NzUgMi43NzQ5NkMyLjM3NjIgMi43MzkzMiAyLjQwODE2IDIuNzA0MTMgMi40NDA2NCAyLjY2OTQyQzIuNzI4OTMgMi4zNjEyNyAzLjA1NzQ5IDIuMDkwMjcgMy40MTkyIDEuODY0NDlDMy42MTk5NSAxLjczOTE4IDMuODI4NzQgMS42MjkxNiA0LjA0Mzc5IDEuNTM0OTJDNC4yMDUxIDEuNDY0MjIgNC4zNjk5MyAxLjQwMjQxIDQuNTM3NTMgMS4zNDk2OEM1LjAwODc3IDEuMjAxNDMgNS41MDE5MSAxLjEyNSA2LjAwMDI3IDEuMTI0OTdDNi4wMzU3OSAxLjEyNDk3IDYuMDcxMzMgMS4xMjUzNSA2LjEwNjg5IDEuMTI2MTNDNi41Njk2NSAxLjEzNjI0IDcuMDI2MjEgMS4yMTIxMiA3LjQ2MzE1IDEuMzQ5NTRDNy45MjE5IDEuNDkzODMgOC4zNTkxOSAxLjcwNTk1IDguNzU5ODMgMS45ODEwMUM4Ljc1OTc4IDEuOTgwOTcgOC43NTk4OCAxLjk4MTA0IDguNzU5ODMgMS45ODEwMUM4LjkxNDQ3IDIuMDg3MTkgOS4wNjI0NyAyLjIwMTkzIDkuMjAyOTUgMi4zMjQzM0M5LjMyNzg5IDIuNDMzMTggOS40NDcgMi41NDgxNiA5LjU1OTg4IDIuNjY4NzdDOS42NzQ2NCAyLjc5MTM5IDkuNzgyOTUgMi45MTk4MiA5Ljg4NDQgMy4wNTM1NUMxMC4wMTgyIDMuMjI5ODYgMTAuMTQgMy40MTUzNyAxMC4yNDg5IDMuNjA4ODdDMTAuMzA4NiAzLjcxNDkzIDEwLjM2NDQgMy44MjMzOSAxMC40MTYyIDMuOTM0MDVDMTAuNDQ1NSAzLjk5Njc3IDEwLjQ3MzYgNC4wNjAxOSAxMC41MDAzIDQuMTI0MjhDMTAuNTAzOCA0LjEzMjczIDEwLjUwNzMgNC4xNDEyIDEwLjUxMDggNC4xNDk2N0MxMC41MTA3IDQuMTQ5NTkgMTAuNTEwOCA0LjE0OTc1IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NjEgMTAuNjc2NSA0LjM5NzY2IDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ4IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuNTUxNyAzLjcyMjgzIDExLjU1MTggMy43MjMwMSAxMS41NTE4IDMuNzIyOTJDMTEuNDgzNCAzLjU1NjMxIDExLjQwNzcgMy4zOTMwNiAxMS4zMjUxIDMuMjM0MTNDMTEuMjk3OCAzLjE4MTU2IDExLjI2OTcgMy4xMjk0MiAxMS4yNDA5IDMuMDc3NzVaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjMxMjEgMi4zMjg3NSA2LjIwMTI0IDIuMjczNSA2LjA4MjQ2IDIuMjU1OTVDNi4wNTU0OCAyLjI1MTk4IDYuMDI3ODcgMi4yNDk5MiA2LjAwMDI3IDIuMjQ5OTJDNS44NTEwOSAyLjI0OTkyIDUuNzA4MDEgMi4zMDkxOCA1LjYwMjUyIDIuNDE0NjdDNS40OTcwNCAyLjUyMDE2IDUuNDM3NzcgMi42NjMyNCA1LjQzNzc3IDIuODEyNDJWNS43Njc0MkwzLjkxMjQ1IDcuMjkyQzMuOTAyNzUgNy4zMDEwMyAzLjg5MzIyIDcuMzEwNTcgMy44ODQyMSA3LjMyMDIzQzMuODQxODcgNy4zNjU2NyAzLjgwNzI5IDcuNDE3ODcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjc4MDU0IDcuOTMwMTEgMy43ODc1OSA3Ljk0NTUyIDMuNzk1MzIgNy45NjA1N0MzLjgyMTk2IDguMDEyNDkgMy44NTY1OCA4LjA2MDA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODcgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTYgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU4MTU3IDguMTkyMTYgNC42MzM3NyA4LjE1NzU3IDQuNjc5MjEgOC4xMTUyNEM0LjY4ODgxIDguMTA2MjkgNC42OTgxMSA4LjA5NyA0LjcwNzA4IDguMDg3MzdDNC43MDcwMiA4LjA4NzQ0IDQuNzA3MTUgOC4wODczMSA0LjcwNzA4IDguMDg3MzdMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTkuOTM3NzcgOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0MzcgOS43NDk5MiAxMC43ODE1IDkuNjk1MTQgMTAuODg1NyA5LjU5NzE2QzEwLjg4OTggOS41OTMyMyAxMC44OTQgOS41ODkyNCAxMC44OTggOS41ODUxN0MxMS4wMDM1IDkuNDc5NjggMTEuMDYyOCA5LjMzNjYxIDExLjA2MjggOS4xODc0MlY3LjU0MjM0QzEwLjg3NzcgNy41MTQyNiAxMC42ODk3IDcuNDk5OTIgMTAuNTAwMyA3LjQ5OTkyQzEwLjMxMDggNy40OTk5MiAxMC4xMjI4IDcuNTE0MjYgOS45Mzc3NyA3LjU0MjM0VjkuMTg3NDJaTTkuOTM3NzcgNy4zMjY4NkMxMC4xMjE1IDcuMzg2MTIgMTAuMzA5NiA3LjQzMDMgMTAuNTAwMyA3LjQ1OTA0QzEwLjY3MTQgNy40ODQ4MyAxMC44NDQ1IDcuNDk4MTggMTEuMDE4MyA3LjQ5ODgxQzExLjAzMzEgNy40OTg4NyAxMS4wNDc5IDcuNDk4ODMgMTEuMDYyOCA3LjQ5ODdWNi41NjI0MkMxMS4wNjI4IDYuNDkwMDggMTEuMDQ4OCA2LjQxOTE3IDExLjAyMjQgNi4zNTMyOEMxMC45OTQ0IDYuMjgzMzEgMTAuOTUyNCA2LjIxOTAxIDEwLjg5OCA2LjE2NDY4QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjhDMTAuMTAwMyA2LjE2NjkyIDEwLjA5ODEgNi4xNjkxNyAxMC4wOTU5IDYuMTcxNDVDOS45OTc3IDYuMjcyOTkgOS45NDEzNSA2LjQwNzczIDkuOTM3OTQgNi41NDg4MkM5LjkzNzgzIDYuNTUzMzUgOS45Mzc3NyA2LjU1Nzg4IDkuOTM3NzcgNi41NjI0MlY3LjMyNjg2Wk0xMS4yNDg4IDExLjI5NjhDMTEuMjQ5OCAxMS4yODEzIDExLjI1MDMgMTEuMjY1NiAxMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS4yNDg3IDExLjI1MDMgMTEuMjQ3NSAxMS4yNTAzIDExLjI0NjNDMTEuMjQ5MyAxMS4wNDg3IDExLjE3MDQgMTAuODU5NCAxMS4wMzA2IDEwLjcxOTZDMTAuODg5OSAxMC41Nzg5IDEwLjY5OTIgMTAuNDk5OSAxMC41MDAzIDEwLjQ5OTlDMTAuMzAxNCAxMC40OTk5IDEwLjExMDYgMTAuNTc4OSA5Ljk2OTk0IDEwLjcxOTZDOS44MjkyOSAxMC44NjAyIDkuNzUwMjcgMTEuMDUxIDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjQ0ODggOS44MjkyOSAxMS42Mzk2IDkuOTY5OTQgMTEuNzgwM0MxMC4xMTA2IDExLjkyMDkgMTAuMzAxNCAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC42OTkyIDExLjk5OTkgMTAuODg5OSAxMS45MjA5IDExLjAzMDYgMTEuNzgwM0MxMS4xNjAyIDExLjY1MDcgMTEuMjM3NCAxMS40Nzg2IDExLjI0ODggMTEuMjk2OFpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDkwMV83Nzk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5QZW5kaW5nIFRhZ2dlZCBJbmZvPC9zcGFuPjwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5OYW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb24/dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb246XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TW9iaWxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm1vYmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5BZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uYWdlP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmFnZTpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5FbWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbD90YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbDpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5HZW5kZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZ2VuZGVyP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmdlbmRlcjpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFnZ2dlZERhdGEuaXNzdWVMaXN0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlXCI+e3tpdGVtLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbXMtMlwiICpuZ0Zvcj1cImxldCBkYXRhIG9mIGl0ZW0uaXNzdWVcIj57e2RhdGF9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LXRhZ2dlZCBteC0zIG15LTJcIiAqbmdJZj1cInRhZ2dnZWREYXRhPy5yZXZvcHNUeXBlPT09J25vblNob3BwZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1zLTJcIj57e25vblNob3BlclR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXktMlwiPjxzcGFuIGNsYXNzPVwiZGVzYy1pZFwiPk9yaWdpbmFsIElEPC9zcGFuPiA6IDxzcGFuIGNsYXNzPVwic3BlbnQtdmFsdWUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcIj57e0ltYWdlZGF0YT8udGVtcElkfX08L3NwYW4+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uZGVzY3JpcHRpb24mJnRhZ2dnZWREYXRhPy5kZXNjcmlwdGlvbiE9PScnXCIgY2xhc3M9XCJteS0zIGRlc2MtaWRcIj57e3RhZ2dnZWREYXRhLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRpbWUgU3BlbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8udG90YWxUaW1lU3BlbnR9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5lbnRyeVRpbWV9fSAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+RW50cnkgVGltZSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctMzMgIHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy50aW1lU3BlbnQ/LmV4aXRUaW1lfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdleGl0JylcIj5FeGl0IFRpbWUgPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiSW1hZ2VkYXRhPy56b25lVmlzaXRlZCYmSW1hZ2VkYXRhPy56b25lVmlzaXRlZC5sZW5ndGg+MFwiIGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkltYWdlZGF0YT8uem9uZVZpc2l0ZWQmJkltYWdlZGF0YT8uem9uZVZpc2l0ZWQubGVuZ3RoPjBcIiAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5ab25lcyBWaXNpdGVkPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJoLTIwMHB4IHNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIG10LTJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIEltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBcIj57e29ian19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJbWFnZWRhdGE/LnpvbmVWaXNpdGVkLmxlbmd0aCA9PT0wXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtMiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIFpvbmVzIFZpc2l0ZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFpvbmVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5TdGFmZiBFbmdhZ2VtZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctNDUgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnN0YWZmRW5nYWdlbWVudC50aW1lVGFrZW5Ub0Fzc2lzdH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlIG15LTFcIj5UaW1lIHRha2VuIHRvIGFzc2lzdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy00NSBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8uc3RhZmZFbmdhZ2VtZW50LnRpbWVTcGVudFdpdGhTdGFmZn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUgbXktMVwiPlRpbWUgc3BlbnQgd2l0aCBzdGFmZjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuPC9zZWN0aW9uPlxyXG48L2Rpdj4iXX0=
835
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFOdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBYXRCLE1BQU0sT0FBTyxpQkFBaUI7SUEwQ2xCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQTlDYyxTQUFTLENBQTZCO0lBQzlELFdBQVcsR0FBUSxDQUFDLENB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M0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtvQkFDdEUsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7b0JBRXJCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtpQkFDVDtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFJTixDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBcDFCVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw2SkN0QjlCLDhqeEdBMjdCTTs7NEZEcjZCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTtnT0FLRCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW1hZ2VEb2NWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZG9jLXZpZXcvaW1hZ2UtZG9jLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEdXBsaWNhdGVDb21wb25lbnQgfSBmcm9tICcuLi9kdXBsaWNhdGUvZHVwbGljYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ3hHcEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci1tYWdpYy9uZ3gtZ3AtYXV0b2NvbXBsZXRlL2xpYi9uZ3gtZ3AtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZVwiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1hZ2UtZG9jXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2ltYWdlLWRvYy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VEb2NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIm5neFBsYWNlc1wiKSBwbGFjZXNSZWY6IE5neEdwQXV0b2NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIHNlbGVjdEluZGV4OiBhbnkgPSAwO1xyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIG9iakRhdGE6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueSA9IFtdO1xyXG4gIGltYWdlc0FycmF5RGF0YTogYW55O1xyXG4gIHByb2Nlc3NUeXBlID0gXCJmb290ZmFsbFwiO1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGRheWpzID0gZGF5anNcclxuICBkYXRlQXJyYXk6IGFueTtcclxuICBmb3JtOiBhbnk7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmVBcnJheVZhbHVlOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgdmFsdWVUeXBlOiBhbnkgPSAnYWN0dWFsJztcclxuICBpc0F2ZXJhZ2U6IGFueSA9IGZhbHNlO1xyXG4gIGxlbmd0aFZhbHVlOiBib29sZWFuO1xyXG4gIGhpZGVEb2M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FjY29yZGlvbkV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgYmFja25hdjogYm9vbGVhbjtcclxuICB1c2VyRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5TGlzdDogYW55ID0gW11cclxuICBwaG9uZVJlZ2V4OiBSZWdFeHAgPSAvXihcXGR7M30pP1xcZHsxNX0kLztcclxuICBlbWFpbFJlZ2V4OiBSZWdFeHAgPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcclxuICBub25TaG9wcGVyTGlzdCA9IFsnRW1wbG95ZWUvU3RhZmYnLCAnRGVsaXZlcnkgUGVyc29uJywgJ0R1cGxpY2F0ZScsICdBZ2VudHMnLCAnT3RoZXJzJ107XHJcbiAgLy8gbWlzc2VkT3Bwb3J0dW5pdHlMaXN0ID1bJ1Byb2R1Y3QgTmVlZCBNaXNtYXRjaCcsJ1Byb2R1Y3QgVW5hdmFpbGFiaWxpdHknLCdQcm9kdWN0IERhbWFnZWQnLCdQcm9kdWN0IEVucXVpcnknLCdRdWFsaXR5J107XHJcbiAgc2VsZWN0ZWRNaXNzZWQ6IGFueSA9ICdQcm9kdWN0IElzc3VlJztcclxuICBpc3N1ZXM6IGFueSA9IFtdXHJcbiAgbm9uU2hvcGVyVHlwZTogYW55ID0gJydcclxuICBkZXNjcmlwdGlvbjogYW55ID0gJydcclxuICBzZWxlY3RlZElzc3Vlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZE1haW5Jc3N1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgdGFnZ2dlZERhdGE6IGFueSA9IHt9XHJcbiAgbWlzc2Vkb3B0dW5pdHlSZWFzb246IGFueSA9IFtdXHJcbiAgY291bnRyeUxpc3Q6IGFueSA9IFtdXHJcbiAgcGVuZGluZ2NvdW50OiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdFNlcnZpY2UsXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycpIC8vIEluaXRpYWxpemUgYXMgRm9ybUNvbnRyb2xcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgfVxyXG4gIGluaXR1c2VyRm9ybSgpIHtcclxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgbW9iaWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMyksIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLF1dLFxyXG4gICAgICBlbWFpbDogWycnLCBbXHJcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFwiXlthLXpBLVowLTldKyhbLi1fXT9bYS16QS1aMC05XSspKkBbYS16QS1aMC05XSsoWy4tX10/W2EtekEtWl0rKSpbLl17MX1bYS16QS1aXXsyLH0kXCIpLFxyXG4gICAgICBdLF0sXHJcbiAgICAgIGxvY2F0aW9uOiBbXSxcclxuICAgICAgYWdlOiBbXSxcclxuICAgICAgZ2VuZGVyOiBbXSxcclxuICAgICAgY291bnRyeUNvZGU6IFtcIjkxXCIsXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Q291bnRyeUNvZGVzKClcclxuICAgIHRoaXMuaW5pdHVzZXJGb3JtKClcclxuICAgIHRoaXMuZ2V0SW5pdGFsKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5oaWRlRG9jID0gZmFsc2U7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgICAgIH0sIDUwMDApO1xyXG5cclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuICBnZXRDb3VudHJ5Q29kZXMoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5TGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG5cclxuICBjbGllbnREYXRhOiBhbnk7XHJcbiAgZ2V0IGYoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9scztcclxuICB9XHJcbiAgZ2V0SW5pdGFsKCkge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSAhPT0gbnVsbCB8fCBkYXRhPy5jbGllbnQgIT09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlSWRhcnJheSA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKVxyXG4gICAgICAgICAgdGhpcy5vYmpEYXRhID0ge1xyXG4gICAgICAgICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgICAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCxcclxuICAgICAgICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgIGZvb3RmYWxsRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgICAgICAgLy8gdmFsdWVUeXBlIDp0aGlzLnZhbHVlVHlwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjbGllbnREYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJ7fVwiKTtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnREYXRhID0gY2xpZW50RGF0YVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNsaWVudERhdGEpXHJcblxyXG4gICAgICAgICAgICBjb25zdCBsaW1pdCA9IGNsaWVudERhdGE/LmJvdW5jZWRMaW1pdD8udmFsdWUgPz8gY2xpZW50RGF0YT8uYm91bmNlZExpbWl0VmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnYgPSBjbGllbnREYXRhPy5jb252ZXJzaW9uPy52YWx1ZSA/PyBjbGllbnREYXRhPy5jb252ZXJzaW9uVmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGlmIChjbGllbnREYXRhLmlzRm9vdGZhbGxWaWV3KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0cyA9IFtcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQgPT09ICc0NTInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiBgTGVzcyB0aGFuICR7bGltaXR9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdlbmdhZ2VyJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtsaW1pdH0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6IGAke2xpbWl0fSAtICR7Y29udn0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogYE1vcmUgdGhhbiAke2NvbnZ9IG1pbnNgIH1cclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiAnTWlzc2VkIE9wcG9ydHVuaXR5JyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldEluaXRpYWxWYWx1ZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RDb250cm9sID0gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICBzZWxlY3RDb250cm9sLnNldFZhbHVlKGluaXRpYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMClcclxuICAgICAgICAgIHRoaXMuYmFja1RvRm9vdGZhbGwoKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlID09PSB0aGlzLmhlYWRlckRhdGE/LmRhdGU/LmVuZERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldGltYWdlcygwLCB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xkZXJWaWV3ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gdHJ1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRGF0YSgpO1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRm9vdGZhbGwoKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvb3RmYWxsRGF0YVNob3c6IGFueTtcclxuICBpbml0aWFsRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U3RvcmVGb290ZmFsbCh0aGlzLnN0b3JlSWRhcnJheSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gW11cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvb3RmYWxsRGF0YVNob3cgPSBbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbERhdGEoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3Bjb25maWcodGhpcy5oZWFkZXJEYXRhLmNsaWVudClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QgPSByZXMuZGF0YS5pc3N1ZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5TGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWlzc2VkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuICB0b2dnbGVBY2NvcmRpb24oKSB7XHJcbiAgICB0aGlzLmlzQWNjb3JkaW9uRXhwYW5kZWQgPSAhdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkO1xyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIGdldEltYWdlRm9sZGVyKCkge1xyXG5cclxuICAgIGRlbGV0ZSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHRoaXMub2JqRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRoaXMub2JqZWN0c0FycmF5WzBdLmZvbGRlck5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEltYWdlVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0SW1hZ2VWaWV3KCkge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMub2JqRGF0YSlcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXRGb290ZmFsbERpcmVjdG9yeSh0aGlzLm9iakRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGlmICghcmVzPy5kYXRhLmZvb3RmYWxsRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlQXJyYXlWYWx1ZSA9IHJlcz8uZGF0YS5zdG9yZU5hbWVcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBub3JtYWxpemU6IGFueVxyXG4gIHNlbGVjdGVkVGFicyhuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSBuYW1lO1xyXG4gICAgLy8gdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdOyAvLyByZXNldCB3aGVuIHN3aXRjaGluZyB0YWJzXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdWJpc3N1ZShvYmo6IGFueSwgaXNzdWU6IHN0cmluZykge1xyXG5cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElzc3Vlcy5pbmRleE9mKGlzc3VlKTtcclxuICAgIGNvbnN0IG1haW5pbmRleCA9IHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLmluZGV4T2Yob2JqLm5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICBsZXQgZXhpdHNDb3VudCA9IHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpLmxlbmd0aFxyXG4gICAgICBpZiAoZXhpdHNDb3VudCA+IDApIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnB1c2goaXNzdWUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogb2JqLm5hbWUsXHJcbiAgICAgICAgICBpc3N1ZTogW2lzc3VlXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMucHVzaChvYmoubmFtZSlcclxuICAgICAgdGhpcy5zZWxlY3RlZElzc3Vlcy5wdXNoKGlzc3VlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMuc3BsaWNlKG1haW5pbmRleCwgMSk7XHJcbiAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24ubWFwKChkYXRhOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLm5hbWUgPT09IG9iai5uYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJJbmRleCA9IGRhdGEuaXNzdWUuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICAgICAgICBpZiAoc3ViSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuaXNzdWUuc3BsaWNlKHN1YkluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEuaXNzdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZ2V0aW1hZ2VzKGluZGV4OiBhbnksIG9iajogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmZvbGRlckRhdGUgPSBvYmo7XHJcbiAgICAodGhpcy5vYmpEYXRhLmZvb3RmYWxsRGF0ZSA9IG9iaiksICh0aGlzLmZvbGRlclZpZXcgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2U/Lmlzbm9ybWFsaXplU291cmNlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICA/LnN1YnNjcmliZSgobm9ybWFsaXplOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcclxuICAgICAgICBpZiAoIW5vcm1hbGl6ZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRJbWFnZUZvbGRlcigpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgYmFja1RvRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gMDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IHRydWU7XHJcblxyXG4gIH1cclxuICBzZWxlY3RlZFRpbWVzKHZhbDogYW55KSB7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWw7XHJcbiAgICB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICB9XHJcbiAgSW1hZ2VkYXRhOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgSW1hZ2VzOiBhbnk7XHJcblxyXG4gIHJldm9wVGFnZ2luZyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gICAgdGhpcy5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3RhZ2dlZCc7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgPyB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA6ICdub25TaG9wcGVyJztcclxuICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcclxuICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICB9XHJcbiAgZ2V0UmV2b3BEYXRhKCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlID8gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgOiB0aGlzLnByb2Nlc3NUeXBlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3B0YWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdjdXN0b21lcidcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSByZXMuZGF0YS5yZXZvcHNUeXBlXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZXMuZGF0YS5kZXNjcmlwdGlvblxyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShyZXMuZGF0YS5yZXZvcHNUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdub25TaG9wcGVyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSByZXMuZGF0YS5ub25zaG9wZXJUeXBlXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ25hbWUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAncHVyY2hhc2VyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5uYW1lKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLm1vYmlsZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmNvdW50cnlDb2RlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZW1haWwpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5sb2NhdGlvbilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5hZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZ2VuZGVyKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gcmVzLmRhdGEuaXNzdWVMaXN0XHJcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgcmVzLmRhdGEuaXNzdWVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gWy4uLnRoaXMuc2VsZWN0ZWRJc3N1ZXMsIC4uLmRhdGEuaXNzdWVdXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXM/LmNvZGUgPT09IDIwNCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUoXCJmb290ZmFsbFwiKTtcclxuICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSAnJ1xyXG4gICAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlQWRkcmVzc0NoYW5nZShwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0IHwgYW55KSB7XHJcbiAgICBpZiAocGxhY2UuZ2VvbWV0cnkpIHtcclxuICAgICAgbGV0IGNvdW50cnkgPSBcIlwiLCBjaXR5ID0gXCJcIiwgc3RhdGUgPSBcIlwiLCBwaW5jb2RlID0gXCJcIjtcclxuICAgICAgbGV0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XHJcbiAgICAgIGxldCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcclxuICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgIGNvdW50cnkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgIGNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICBzdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgcGluY29kZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShjaXR5KVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdG5vblNob3BlcihkYXRhOiBhbnkpIHtcclxuICAgIGxldCBpbnB1dERhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5yZXZvcHRhZ2dpbmdjb3VudChpbnB1dERhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAocmVzLmRhdGEuY291bnQgPD0gMCAmJiB0aGlzLnRhZ2dnZWREYXRhLnJldm9wc1R5cGUgIT0gJ25vblNob3BwZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJUYWcgbGltaXQgcmVhY2hlZCEgVHJ5IHRhZ2dpbmcgdW5kZXIgZGlmZmVyZW50IGNhdGVnb3JpZXNcIilcclxuICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSBkYXRhXHJcbiAgICAgICAgICAgICAgaWYgKGRhdGEgPT09ICdEdXBsaWNhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnRhZ2dnZWREYXRhLm5vbnNob3BlclR5cGUsIHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCwgdGhpcy50YWdnZ2VkRGF0YS50ZW1wSWQpXHJcbiAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxEYXRhID0gW11cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudGFnZ2dlZERhdGEubm9uc2hvcGVyVHlwZSAhPSAnRHVwbGljYXRlJyYmdGhpcy50YWdnZ2VkRGF0YS5yZXZvcHNUeXBlPT09J25vblNob3BwZXInKXtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsRGF0YS5wdXNoKHsgdGVtcElkOiB0aGlzLnRhZ2dnZWREYXRhPy50ZW1wSWQsIHNlbGVjdGVkVGltZTogdGhpcy5zZWxlY3RlZFRpbWUgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihEdXBsaWNhdGVDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlbGVjdGVkVGVtcElkID0gdGhpcy5JbWFnZWRhdGEudGVtcElkO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uub3JpZ2luYWxEYXRhID0gb3JpZ2luYWxEYXRhO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuYWxyZWFkeVRhZ2dlZCA9IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQgPT09IHRoaXMudGFnZ2dlZERhdGE/LnRlbXBJZCAmJiB0aGlzLnRhZ2dnZWREYXRhPy5ub25zaG9wZXJUeXBlID09PSAnRHVwbGljYXRlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbnB1dERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlSWRhcnJheSxcclxuICAgICAgICAgICAgICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICAgICAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgICAgICAgIFwiZm9vdGZhbGxEYXRlXCI6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgXCJmb2xkZXJOYW1lXCI6IHRoaXMuc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpbWFnZVZpZXcob2JqOiBhbnksIGZvb3RmYWxsRGF0ZTogYW55KSB7XHJcblxyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEltYWdlRG9jVmlld0NvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJ4bFwiLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9jZXNzVHlwZSA9IHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvb3RmYWxsRGF0ZSA9IGZvb3RmYWxsRGF0ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlTmFtZSA9IHRoaXMuc3RvcmVBcnJheVZhbHVlO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3RvcmVJZCA9IHRoaXMuc3RvcmVJZGFycmF5XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJEYXRhID0gdGhpcy5oZWFkZXJEYXRhO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW1hZ2VBcnJheSA9IHRoaXMub2JqZWN0c0FycmF5O1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9sZGVyTmFtZSA9IHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50cmFja2VyID0gdGhpcy5mb290ZmFsbERhdGFTaG93O1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7IH0pO1xyXG4gICAgLy8gbW9kYWxSZWYuZGlzbWlzcygnQ2xpY2sgb3V0c2lkZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVJhbmdlQXJyYXkoZnJvbURhdGU6IHN0cmluZywgdG9EYXRlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKGZyb21EYXRlKTsgLy8gQ29udmVydCBzdHJpbmcgdG8gRGF0ZSBvYmplY3RcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHRvRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBkYXRlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGVzIGFyZSB2YWxpZFxyXG4gICAgaWYgKGlzTmFOKHN0YXJ0LmdldFRpbWUoKSkgfHwgaXNOYU4oZW5kLmdldFRpbWUoKSkpIHtcclxuICAgICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb29wIGZyb20gc3RhcnQgZGF0ZSB0byBlbmQgZGF0ZVxyXG4gICAgbGV0IGN1cnJlbnREYXRlID0gc3RhcnQ7XHJcbiAgICB3aGlsZSAoY3VycmVudERhdGUgPD0gZW5kKSB7XHJcbiAgICAgIGRhdGVBcnJheS5wdXNoKGN1cnJlbnREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdKTsgLy8gRm9ybWF0IFlZWVktTU0tRERcclxuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShjdXJyZW50RGF0ZS5nZXREYXRlKCkgKyAxKTsgLy8gSW5jcmVtZW50IHRoZSBkYXRlIGJ5IDEgZGF5XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICB9XHJcblxyXG4gIC8vIE1ldGhvZCB0byBkaXNwbGF5IG9yIGxvZyB0aGUgZGF0ZSByYW5nZSBhcnJheVxyXG4gIGRpc3BsYXlEYXRlUmFuZ2UoKSB7XHJcbiAgICBjb25zdCBkYXRlcyA9IHRoaXMuZ2V0RGF0ZVJhbmdlQXJyYXkoXHJcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGF0ZUFycmF5ID0gZGF0ZXM7XHJcbiAgfVxyXG4gIGRhdGFzZXRzID0gW1xyXG4gICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogJ0VuZ2FnZXJzJyB9LFxyXG4gICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6ICdNaXNzZWQgT3Bwb3J0dW5pdHknIH0sXHJcbiAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gIF07XHJcbiAgZ2V0SW5pdGlhbFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAvLyBGb3IgZXhhbXBsZSwgc2VsZWN0aW5nIHRoZSBzZWNvbmQgaXRlbSBpbiB0aGUgZGF0YXNldFxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YXNldHNbMF0udmFsdWU7IC8vIENoYW5nZSBhcyBuZWVkZWRcclxuICB9XHJcbiAgb25WYWx1ZUNoYW5nZShzZWxlY3RlZElkOiBhbnkpIHtcclxuICAgIHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZSA9IHNlbGVjdGVkSWQsXHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdENvbnRyb2woKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIGNsb3NlRGF0YSgpIHtcclxuICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBiYWNrVG9WaWV3KCkge1xyXG4gICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICB0aGlzLmltYWdlRmxvdyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB0aGlzLnNlbGVjdGVkVGltZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRUaW1lcyh0aGlzLnNlbGVjdGVkVGltZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm9iakRhdGEpXHJcbiAgICAvLyB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMub2JqRGF0YSlcclxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLy8gICA/LnN1YnNjcmliZSh7XHJcbiAgICAvLyAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICAgaWYgKCFyZXM/LmRhdGEuZm9vdGZhbGxEYXRhLmxlbmd0aCkge1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IHJlcz8uZGF0YS5mb290ZmFsbERhdGE7XHJcblxyXG4gICAgLy8gICAgICAgICAgIHRoaXMuc3RvcmVBcnJheVZhbHVlID0gcmVzPy5kYXRhLnN0b3JlTmFtZVxyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICAgIH0sXHJcbiAgICAvLyAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgIC8vICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbnRyeScpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXhpdCcpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFmZicpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaXNGaXJzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4IDw9IDA7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmluZEluZGV4KChkYXRhOiBhbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YT8udGVtcElkKTtcclxuICAgIHJldHVybiBpbmRleCA+PSB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW11cclxuICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24gPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZE1pc3NlZCA9ICdQcm9kdWN0IElzc3VlJ1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCk7XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbaW5kZXggLSAxXTtcclxuICAgICAgaWYgKHRoaXMuSW1hZ2VkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5yZXZvcFRhZ2dpbmcodGhpcy5JbWFnZWRhdGEpXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbMF07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdXHJcbiAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSAnUHJvZHVjdCBJc3N1ZSdcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTogYW55KSA9PiBkYXRhLnRlbXBJZCA9PT0gdGhpcy5JbWFnZWRhdGEudGVtcElkKTtcclxuICAgIGlmICh0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxICE9IGluZGV4KSB7XHJcblxyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4ICsgMV07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYiA9ICd0YWdnZWQnO1xyXG4gIHNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gJ25vblNob3BwZXInO1xyXG4gIG9uUmFkaW9DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2codmFsdWUpXHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09ICdwdXJjaGFzZXInKSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy51c2VyRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIjkxXCIpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXVxyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhZ2U6IG51bWJlciA9IDE7XHJcblxyXG4gIGluY3JlbWVudEFnZSgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRBZ2UgPSBOdW1iZXIodGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy52YWx1ZSkgfHwgMDtcclxuICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoY3VycmVudEFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IE51bWJlcih0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnZhbHVlKSB8fCAwO1xyXG4gICAgLy8gY29uc29sZS5sb2coY3VycmVudEFnZSlcclxuICAgIGlmIChjdXJyZW50QWdlID4gMSkge1xyXG4gICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKGN1cnJlbnRBZ2UgLSAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKSB7XHJcbiAgICBpZiAodGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG1pc3NlZCBvcHBvcnR1bml0eSByZWFzb25cIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6IFwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG5vblNob3BwZXJTdWJtaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMubm9uU2hvcGVyVHlwZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG5vbnNob3BwZXIgVHlwZVwiKVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogdGhpcy5ub25TaG9wZXJUeXBlLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIG1vYmlsZTogXCJcIixcclxuICAgICAgICBjb3VudHJ5Q29kZTogXCJcIixcclxuICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICBhZ2U6IFwiXCIsXHJcbiAgICAgICAgZ2VuZGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51c2VyRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXlsb2FkID0gW3tcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5WzBdLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgIHRlbXBJZDogdGhpcy5JbWFnZWRhdGEudGVtcElkLFxyXG4gICAgICBwcm9jZXNzVHlwZTogdGhpcy5zZWxlY3RDb250cm9sLnZhbHVlLFxyXG4gICAgICByZXZvcHNUeXBlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlLFxyXG4gICAgICBub25zaG9wZXJUeXBlOiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm5hbWUsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm1vYmlsZSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogdGhpcy51c2VyRm9ybS52YWx1ZS5jb3VudHJ5Q29kZSxcclxuICAgICAgICBlbWFpbDogdGhpcy51c2VyRm9ybS52YWx1ZS5lbWFpbCxcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy51c2VyRm9ybS52YWx1ZS5sb2NhdGlvbixcclxuICAgICAgICBhZ2U6IHRoaXMudXNlckZvcm0udmFsdWUuYWdlLFxyXG4gICAgICAgIGdlbmRlcjogdGhpcy51c2VyRm9ybS52YWx1ZS5nZW5kZXIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgIGlzc3VlTGlzdDogW11cclxuICAgIH1dXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KFwiQ3VzdG9tZXIgaGFzIGJlZW4gdGFnZ2VkIHN1Y2Nlc3NmdWxseS5cIilcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG5cclxuICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVzZXJGb3JtLmdldChmaWVsZE5hbWUpO1xyXG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0zIHB4LTAgYm9yZGVyLWJvdHRvbS0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZyBwYi0wIGN1c3RvbS1hY2NvcmRpb24taGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUFjY29yZGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlY1wiPkltYWdlIERpcmVjdG9yeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvcmRpb24tYXJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERvd24gYXJyb3cgZm9yIGNvbGxhcHNlZCBzdGF0ZSwgdXAgYXJyb3cgZm9yIGV4cGFuZGVkIHN0YXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgMUw1IDVMOSAxXCIgc3Ryb2tlPVwiIzA3MTQzN1wiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDVMNSAxTDkgNVwiIHN0cm9rZT1cIiMxYjg0ZmZcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHB4LTVcIiAqbmdJZj1cIiFoaWRlRG9jXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1mb3JtLWNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjMuODMzMyAxNC42NjY2TDE1LjUgMjQuNjY2NkgyM0wyMi4xNjY3IDMxLjMzMzNMMzAuNSAyMS4zMzMzSDIzTDIzLjgzMzMgMTQuNjY2NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eHQtb25lIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPkV4YW1pbmUgaW5kaXZpZHVhbCBmb290ZmFsbCBpbiBnYWxsZXJ5IHZpZXcgd2l0aCBvcHRpbWFsIHNhbXBsZSBpbWFnZXMgZm9yIGRldGFpbGVkIGFuYWx5c2lzLjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlwbGVcIj5VcGxvYWQgbXVsdGlwbGUgc3RvcmVzIGZvciBjb25maWd1cmF0aW9uPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEYXRhKClcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjk1IDcuMTE1QzE4LjY4NDQgNi43MjU2NCAxOC42ODQ0IDYuMDk0MzYgMTguMjk1IDUuNzA1QzE3LjkwNTYgNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTYuODg1IDUuNzA1TDEyIDEwLjU5TDcuMTE1IDUuNzA1QzYuNzI1NjQgNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNS43MDUgNS43MDVDNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNi43MjU2NCA1LjcwNSA3LjExNUwxMC41OSAxMkw1LjcwNSAxNi44ODVDNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTcuOTA1NiA1LjcwNSAxOC4yOTVDNi4wOTQzNiAxOC42ODQ0IDYuNzI1NjQgMTguNjg0NCA3LjExNSAxOC4yOTVMMTIgMTMuNDFMMTYuODg1IDE4LjI5NUMxNy4yNzQ0IDE4LjY4NDQgMTcuOTA1NiAxOC42ODQ0IDE4LjI5NSAxOC4yOTVDMTguNjg0NCAxNy45MDU2IDE4LjY4NDQgMTcuMjc0NCAxOC4yOTUgMTYuODg1TDEzLjQxIDEyTDE4LjI5NSA3LjExNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgbXQtNSB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBvYmogb2YgZGF0ZUFycmF5O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldGltYWdlcyhpLG9iailcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSA9PT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHdpZHRoPVwiNTdcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTcgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjE1NDI5N1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiIzMzQjVGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOS44MjE2IDM2LjE2NjdDMzkuODIxNiAzNi43ODU1IDM5LjU3NTggMzcuMzc5IDM5LjEzODIgMzcuODE2NkMzOC43MDA2IDM4LjI1NDIgMzguMTA3MSAzOC41IDM3LjQ4ODMgMzguNUgxOC44MjE2QzE4LjIwMjggMzguNSAxNy42MDkzIDM4LjI1NDIgMTcuMTcxNyAzNy44MTY2QzE2LjczNDEgMzcuMzc5IDE2LjQ4ODMgMzYuNzg1NSAxNi40ODgzIDM2LjE2NjdWMTkuODMzM0MxNi40ODgzIDE5LjIxNDUgMTYuNzM0MSAxOC42MjEgMTcuMTcxNyAxOC4xODM0QzE3LjYwOTMgMTcuNzQ1OCAxOC4yMDI4IDE3LjUgMTguODIxNiAxNy41SDI0LjY1NDlMMjYuOTg4MyAyMUgzNy40ODgzQzM4LjEwNzEgMjEgMzguNzAwNiAyMS4yNDU4IDM5LjEzODIgMjEuNjgzNEMzOS41NzU4IDIyLjEyMSAzOS44MjE2IDIyLjcxNDUgMzkuODIxNiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpICE9PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNDYyODkxXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQwLjEzMDIgMzYuMTY2N0M0MC4xMzAyIDM2Ljc4NTUgMzkuODg0NCAzNy4zNzkgMzkuNDQ2OCAzNy44MTY2QzM5LjAwOTIgMzguMjU0MiAzOC40MTU3IDM4LjUgMzcuNzk2OSAzOC41SDE5LjEzMDJDMTguNTExNCAzOC41IDE3LjkxNzkgMzguMjU0MiAxNy40ODAzIDM3LjgxNjZDMTcuMDQyNyAzNy4zNzkgMTYuNzk2OSAzNi43ODU1IDE2Ljc5NjkgMzYuMTY2N1YxOS44MzMzQzE2Ljc5NjkgMTkuMjE0NSAxNy4wNDI3IDE4LjYyMSAxNy40ODAzIDE4LjE4MzRDMTcuOTE3OSAxNy43NDU4IDE4LjUxMTQgMTcuNSAxOS4xMzAyIDE3LjVIMjQuOTYzNUwyNy4yOTY5IDIxSDM3Ljc5NjlDMzguNDE1NyAyMSAzOS4wMDkyIDIxLjI0NTggMzkuNDQ2OCAyMS42ODM0QzM5Ljg4NDQgMjIuMTIxIDQwLjEzMDIgMjIuNzE0NSA0MC4xMzAyIDIzLjMzMzNWMzYuMTY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpbWFnZUZsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhY2tuYXZcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlYyBtcy0yXCI+e3tmb2xkZXJEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSAqbmdJZj1cIiFub3JtYWxpemUgJiYgIWNsaWVudERhdGE/LmlzRm9vdGZhbGxWaWV3XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdENvbnRyb2xcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFzZXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCB0ZXh0LXN0YXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLmhlYWRlckRhdGE/LmNsaWVudCAhPT0nNDU5J1wiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXlcIj5cclxuICAgICAgICAgICAgPHVsICpuZ0lmPVwibGVuZ3RoVmFsdWVcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmouZm9sZGVyTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgPT09JzQ1OSdcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5LnNsaWNlKDAsIC0xKVwiPlxyXG4gICAgICAgICAgICA8dWwgKm5nSWY9XCJsZW5ndGhWYWx1ZVwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbXgtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5mb2xkZXJOYW1lfX08c3BhbiBjbGFzcz1cIm14LTIgXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7b2JqPy5jb3VudD9vYmo/LmNvdW50OjB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3JtYWxpemVcIiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YTFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9ub3QtYXBwbGljYWJsZS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlIG10LTNcIj5EYXRhIE5vdCBGb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+Tm9ybWFsaXplZCBkYXRhIGlzIG5vdCBhcHBsaWNhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9ybWFsaXplXCIgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgaW1hZ2UgZGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0wIGltZy10cmFmZmljIGNvbnRhaW4gaGlnaC00MDBweCBzY3JvbGwteVwiICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC1tZC0zIGJvcmRlci1ncmF5IG14LTIgcC0yIG10LTVcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGltYWdlc0FycmF5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJoZWFkZXJEYXRhPy5jbGllbnQgPT09JzExJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIChlcnJvcik9XCJvYmo/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VWaWV3KG9iaixvYmpEYXRhLmZvb3RmYWxsRGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJoZWFkZXJEYXRhLmNsaWVudCAhPT0nMTEnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZSYmY2xpZW50RGF0YT8uaXNSZXZvcHNcIiBjbGFzcz1cImltZy1zcmMgY3Vyc29yLXBvaW50ZXJcIiBbc3JjXT1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2VcIiAoZXJyb3IpPVwib2JqPy5pbWFnZXMuZW50cnlUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlJiYhY2xpZW50RGF0YT8uaXNSZXZvcHNcIiBjbGFzcz1cImltZy1zcmMgY3Vyc29yLXBvaW50ZXJcIiBbc3JjXT1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2VcIiAoZXJyb3IpPVwib2JqPy5pbWFnZXMuZW50cnlUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlVmlldyhvYmosb2JqRGF0YS5mb290ZmFsbERhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2VcIiBjbGFzcz1cIm5vLXByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBpbWctZG9jLWRpcmVjdG9yeVwiPjxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtaW5mb1wiPnt7b2JqLnRlbXBJZH19PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJzZWxlY3RDb250cm9sLnZhbHVlID09PSdtaXNzZWRPcHBvcnR1bml0eSdcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbXMtMlwiPk1pc3NlZCBPcHBvcnR1bml0eTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0Q29udHJvbC52YWx1ZSA9PT0nYm91bmNlZCdcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbXMtMlwiPkJvdW5jZWQgRm9vdGZhbGw8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LnJldm9wc1R5cGUgfHwgc2VsZWN0Q29udHJvbC52YWx1ZSBhcyB2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHZhbHVlID09PSAnZm9vdGZhbGwnfHwgIXZhbHVlICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnOiAgdmFsdWUgPT09ICdwdXJjaGFzZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1kYW5nZXInOiB2YWx1ZSA9PT0gJ2JvdW5jZWQnIHx8IHZhbHVlID09PSAnZW5nYWdlcicgfHwgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgfHwgdmFsdWUgPT09ICdjb252ZXJzaW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdwdXJjaGFzZXInID8gJ1B1cmNoYXNlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbm9uU2hvcHBlcicgPyAnTm9uIFNob3BwZXInIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyA/ICdNaXNzZWQgT3Bwb3J0dW5pdHknIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgfCB0aXRsZWNhc2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5FbnRyeSBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPlRvdGFsIFRpbWUgU3BlbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgdGV4dC1lbmRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBtdC00XCIgKm5nSWY9XCIhY2xpZW50RGF0YT8uaXNSZXZvcHNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiICpuZ0lmPVwiY2xpZW50RGF0YT8uaXNSZXZvcHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJoZWFkZXJEYXRhLmNsaWVudCA9PT0nMTEnXCI+XHJcbiA8c3BhbiAqbmdJZj1cIiFvYmo/LnJldm9wc1R5cGV8fG9iaj8ucmV2b3BzVHlwZT09PScnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguMzczMjggMC4wMDIwMTYwNkM3LjIwOTMyIC0wLjAyMzMxNSA2LjA1Mzg1IDAuMjA1NzExIDQuOTg3NTUgMC42NzMxMDZDMy45MjEyNSAxLjE0MDUgMi45Njk4MSAxLjgzNSAyLjE5OTY3IDIuNzA4MTFDMS40Mjk1MiAzLjU4MTIzIDAuODU5MjI1IDQuNjExOTIgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk2NiA2Ljg0NDUzIDAuMTE0OTcxIDguMDE5NTUgMC4yODU0MDQgOS4xNzEyNEMwLjQ1NTgzNyAxMC4zMjI5IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzIuMTU1MTMgMTMuMzY5IDIuOTk5NSAxNC4xOTAzIDMuOTg5NTEgMTQuODAyOUM0Ljk3OTUzIDE1LjQxNTYgNi4wOTEzMyAxNS44MDQ4IDcuMjQ3MyAxNS45NDMzQzguNDAzMjYgMTYuMDgxOCA5LjU3NTU0IDE1Ljk2NjQgMTAuNjgyMyAxNS42MDVDMTAuODcxNCAxNS41NDMyIDExLjAyODIgMTUuNDA4OCAxMS4xMTgyIDE1LjIzMTRDMTEuMjA4MiAxNS4wNTQgMTEuMjI0MSAxNC44NDgxIDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTMgMTQuMTMzMSAxMC40MDU0IDE0LjExNzIgMTAuMjE2MyAxNC4xNzlDOS4wMTM1OSAxNC41NzE3IDcuNzIyNDIgMTQuNjA0OSA2LjUwMTE0IDE0LjI3NDVDNS4yNzk4NiAxMy45NDQxIDQuMTgxNTUgMTMuMjY0NCAzLjM0MDkyIDEyLjMxODlDMi41MDAyOCAxMS4zNzM0IDEuOTUzODYgMTAuMjAzMSAxLjc2ODY3IDguOTUxNTFDMS41ODM0OCA3LjY5OTk1IDEuNzY3NTcgNi40MjE1NSAyLjI5ODM3IDUuMjczMDlDMi44MjkxNiA0LjEyNDYzIDMuNjgzNTggMy4xNTYwNCA0Ljc1Njg0IDIuNDg2MTFDNS44MzAxMSAxLjgxNjE4IDcuMDc1NTUgMS40NzQwMyA4LjM0MDQ0IDEuNTAxNjNDOS42MDUzMyAxLjUyOTIyIDEwLjgzNDcgMS45MjUzNiAxMS44Nzc3IDIuNjQxNDdDMTIuOTIwNyAzLjM1NzU3IDEzLjczMjEgNC4zNjI1IDE0LjIxMjMgNS41MzMwMkMxNC4yODc3IDUuNzE3MDggMTQuNDMzMiA1Ljg2MzYyIDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjEgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTUgMTUuNjAwMyA0Ljk2NDAyQzE1LjAwOTMgMy41MjMzMSAxNC4wMTA3IDIuMjg2MzkgMTIuNzI2OSAxLjQwNDk4QzExLjQ0MzIgMC41MjM1NzEgOS45MzAxMiAwLjAzNTk4MTUgOC4zNzMyOCAwLjAwMjAxNjA2Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjU4Nzk2IDMuMDc5MDMgOC4zOTcxOSAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0MjggOS43MjMwMkM1LjM0MDU5IDkuNzkxNjggNS4yODE0OSA5Ljg3NDQ4IDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjY3ODggMTAuNjQ2IDUuMzI0MDIgMTAuNzMwOCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzIyODIgMTAuOTE1OCA2LjQwNTYyIDEwLjg1NjcgNi40NzQyOCAxMC43ODNMOC43MjgyOCA4LjUzMDAyTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xNS4xOTgzIDE1QzE1LjE5ODMgMTUuMjY1MiAxNS4wOTI5IDE1LjUxOTYgMTQuOTA1NCAxNS43MDcxQzE0LjcxNzkgMTUuODk0NyAxNC40NjM1IDE2IDE0LjE5ODMgMTZDMTMuOTMzMSAxNiAxMy42Nzg3IDE1Ljg5NDcgMTMuNDkxMiAxNS43MDcxQzEzLjMwMzYgMTUuNTE5NiAxMy4xOTgzIDE1LjI2NTIgMTMuMTk4MyAxNUMxMy4xOTgzIDE0LjczNDggMTMuMzAzNiAxNC40ODA0IDEzLjQ5MTIgMTQuMjkyOUMxMy42Nzg3IDE0LjEwNTQgMTMuOTMzMSAxNCAxNC4xOTgzIDE0QzE0LjQ2MzUgMTQgMTQuNzE3OSAxNC4xMDU0IDE0LjkwNTQgMTQuMjkyOUMxNS4wOTI5IDE0LjQ4MDQgMTUuMTk4MyAxNC43MzQ4IDE1LjE5ODMgMTVaTTE0Ljk0ODMgOC43NTAwMkMxNC45NDgzIDguNTUxMSAxNC44NjkzIDguMzYwMzQgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTAzIDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwMyAxMy42NjggOC4yMTk2OUMxMy41MjczIDguMzYwMzQgMTMuNDQ4MyA4LjU1MTEgMTMuNDQ4MyA4Ljc1MDAyVjEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM5NzIgMTMgMTQuNTg4IDEyLjkyMSAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjguNzUwMDJaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTUuMTg1OCA0LjEwMzc5QzE1LjA5OTYgMy45NDkwNyAxNS4wMDgzIDMuNzk3NDQgMTQuOTEyMSAzLjY0OTExQzE0LjU3NDcgMy4xMjg0MyAxNC4xNzc2IDIuNjQ4NTQgMTMuNzI4OSAyLjIxOTMyQzEzLjQxODcgMS45MjI1NyAxMy4wODM5IDEuNjUwMDQgMTIuNzI2OSAxLjQwNDk4QzEyLjcyNjkgMS40MDQ5MyAxMi43MjcgMS40MDUwNCAxMi43MjY5IDEuNDA0OThDMTIuNTE0NCAxLjI1OTA2IDEyLjI5NTQgMS4xMjM3OSAxMi4wNzExIDAuOTk5NzI5QzExLjgyNTUgMC44NjM4OTMgMTEuNTczNCAwLjc0MTMyMiAxMS4zMTU5IDAuNjMyMzc3QzEwLjM4ODIgMC4yMzk4NzMgOS4zOTAwNiAwLjAyNDE5OSA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zNzMyNCAwLjAwMjAxNTE4IDguMzczMzIgMC4wMDIwMTY5NCA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zMTQ5NiAwLjAwMDc0Nzc5IDguMjU2NTUgMC4wMDAxMTUzODcgOC4xOTgyOCAwLjAwMDEyMjEyNEM3LjEyNzYgMC4wMDAyNDU5MiA2LjA2NzU0IDAuMjE1MzA0IDUuMDgxMDggMC42MzI4MTZDNS4wNDk4MyAwLjY0NjA0MyA1LjAxODY1IDAuNjU5NDczIDQuOTg3NTUgMC42NzMxMDZDNC43NjExNSAwLjc3MjM0MyA0LjUzOTkzIDAuODgxODIgNC4zMjQ1MiAxLjAwMTA3QzQuMjAyMDEgMS4wNjg4OSA0LjA4MTM5IDEuMTM5ODcgMy45NjI3NSAxLjIxMzkzQzMuMzA3NTYgMS42MjI5NiAyLjcxMzI5IDIuMTI1ODEgMi4xOTk2NyAyLjcwODExQzEuNjg2MDIgMy4yOTA0MyAxLjI2MTI3IDMuOTQyODUgMC45MzcyMzIgNC42NDRDMC43NzU0MTUgNC45OTQxNCAwLjYzODcxMyA1LjM1NjQzIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5OSA2Ljg0NDQ1IDAuMTE0OTgzIDguMDE5MzggMC4yODUzNjYgOS4xNzA5OUMwLjI4NTM1NCA5LjE3MDkxIDAuMjg1Mzc5IDkuMTcxMDggMC4yODUzNjYgOS4xNzA5OUMwLjQ1NTggMTAuMzIyNyAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MxLjcyODM1IDEyLjcyMDEgMS45NjQwMiAxMy4wMjcxIDIuMjIwMTkgMTMuMzE1M0MyLjczMzQ5IDEzLjg5MjcgMy4zMjkwOSAxNC4zOTQzIDMuOTg5NTEgMTQuODAyOUM0LjY0OTY3IDE1LjIxMTUgNS4zNjM5OCAxNS41MjA2IDYuMTA5NDMgMTUuNzIyNEM2LjQ4MTkgMTUuODIzMiA2Ljg2MjE1IDE1Ljg5NzEgNy4yNDczIDE1Ljk0MzNDNy4yOTEyMyAxNS45NDg2IDcuMzM1MTkgMTUuOTUzNSA3LjM3OTE3IDE1Ljk1OEM4LjAxNDkyIDE2LjAyMzUgOC42NTQ2NCAxNi4wMTI0IDkuMjg0NzggMTUuOTI2MUM5LjUyMTQ2IDE1Ljg5MzcgOS43NTY3OCAxNS44NTA3IDkuOTkwMDQgMTUuNzk3MUMxMC4yMjMgMTUuNzQzNiAxMC40NTM5IDE1LjY3OTYgMTAuNjgxOSAxNS42MDUxQzEwLjY4MTggMTUuNjA1MiAxMC42ODIxIDE1LjYwNTEgMTAuNjgxOSAxNS42MDUxQzEwLjcxOTYgMTUuNTkyOCAxMC43NTYzIDE1LjU3NzUgMTAuNzkxMSAxNS41NTk3QzEwLjkzMTIgMTUuNDg4IDExLjA0NjEgMTUuMzczNSAxMS4xMTgyIDE1LjIzMTRDMTEuMTU1NCAxNS4xNTgxIDExLjE4IDE1LjA3OTkgMTEuMTkxNiAxNUMxMS4yMDgxIDE0Ljg4NjcgMTEuMTk4NSAxNC43NyAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTE0IDE0LjEzMzEgMTAuNDA1NiAxNC4xMTcyIDEwLjIxNjYgMTQuMTc4OUMxMC4yMTY1IDE0LjE3ODkgMTAuMjE2OCAxNC4xNzg5IDEwLjIxNjYgMTQuMTc4OUMxMC4xMTIxIDE0LjIxMyAxMC4wMDY1IDE0LjI0NDYgOS45MDA3MyAxNC4yNzMzQzkuNzQ4NDggMTQuMzE0NiA5LjU5NTA2IDE0LjM1MDMgOS40NDA3OCAxNC4zODAzQzkuMzcxNDYgMTQuMzkzOCA5LjMwMTk2IDE0LjQwNjIgOS4yMzIzMyAxNC40MTc0QzguODU0OCAxNC40NzgyIDguNDczMDIgMTQuNTA1NSA4LjA5MTQ0IDE0LjQ5OTJDNy45OTU2OCAxNC40OTc2IDcuODk5OTIgMTQuNDkzOSA3LjgwNDI2IDE0LjQ4ODFDNy42Nzc5IDE0LjQ4MDQgNy41NTE2OCAxNC40NjkxIDcuNDI1NzggMTQuNDU0QzcuMzYxMzMgMTQuNDQ2MyA3LjI5Njk2IDE0LjQzNzYgNy4yMzI2OSAxNC40Mjc5QzYuOTg2OTMgMTQuMzkxIDYuNzQyNjcgMTQuMzM5OSA2LjUwMTE0IDE0LjI3NDVDNi4zMjkzMyAxNC4yMjggNi4xNTk5NSAxNC4xNzQ2IDUuOTkzMzcgMTQuMTE0NkM1LjU2ODA5IDEzLjk2MTIgNS4xNjExMiAxMy43NjQyIDQuNzc4NyAxMy41Mjc2QzQuNzMzNzMgMTMuNDk5OCA0LjY4OTExIDEzLjQ3MTQgNC42NDQ4MyAxMy40NDI1QzQuMjcwMDMgMTMuMTk3OCAzLjkyMDI4IDEyLjkxNDIgMy42MDE3NCAxMi41OTU2QzMuNTEyMjkgMTIuNTA2MSAzLjQyNTMxIDEyLjQxMzggMy4zNDA5MiAxMi4zMTg5QzMuMTMxMzkgMTIuMDgzMiAyLjk0MDE0IDExLjgzMzYgMi43NjgyMSAxMS41NzIyQzIuNzYzODUgMTEuNTY1NiAyLjc1OTUgMTEuNTU5IDIuNzU1MTYgMTEuNTUyM0MyLjQ3OTY0IDExLjEzMDEgMi4yNTQzNyAxMC42Nzc1IDIuMDgzNjggMTAuMjAzOUMxLjkzODA3IDkuNzk5OTMgMS44MzIxOCA5LjM4MDYxIDEuNzY4NzEgOC45NTE3NEMxLjc2ODY5IDguOTUxNjYgMS43Njg3MiA4Ljk1MTgyIDEuNzY4NzEgOC45NTE3NEMxLjc0MTI1IDguNzY2MjEgMS43MjE4OCA4LjU3OTg2IDEuNzEwNTkgOC4zOTM2N0MxLjcwNDcxIDguMjk2ODMgMS43MDEwMSA4LjE5OTk4IDEuNjk5NDggOC4xMDMxN0MxLjY4OTAyIDcuNDQzNTUgMS43NzkwNSA2Ljc4NjI2IDEuOTY2MzEgNi4xNTQwNUMyLjA1NTIgNS44NTM5NCAyLjE2NjAxIDUuNTU5NDcgMi4yOTgzNyA1LjI3MzA5QzIuNTYzNzggNC42OTg4MyAyLjkxMDExIDQuMTY5NTQgMy4zMjQyNSAzLjcwMDA3QzMuMzY2MTggMy42NTI1NCAzLjQwODggMy42MDU2MyAzLjQ1MjEgMy41NTkzNEMzLjgzNjQ5IDMuMTQ4NDggNC4yNzQ1OCAyLjc4NzE0IDQuNzU2ODQgMi40ODYxMUM1LjAyNDUyIDIuMzE5MDMgNS4zMDI5MSAyLjE3MjMzIDUuNTg5NjMgMi4wNDY2OEM1LjgwNDcxIDEuOTUyNDIgNi4wMjQ0OSAxLjg3IDYuMjQ3OTYgMS43OTk3QzYuODc2MjggMS42MDIwMiA3LjUzMzggMS41MDAxMiA4LjE5ODI4IDEuNTAwMDhDOC4yNDU2MyAxLjUwMDA4IDguMjkzMDIgMS41MDA1OSA4LjM0MDQ0IDEuNTAxNjNDOC45NTc0NSAxLjUxNTExIDkuNTY2MiAxLjYxNjI5IDEwLjE0ODggMS43OTk1MkMxMC43NjA1IDEuOTkxODkgMTEuMzQzNSAyLjI3NDcyIDExLjg3NzcgMi42NDE0N0MxMS44Nzc2IDIuNjQxNDIgMTEuODc3OCAyLjY0MTUxIDExLjg3NzcgMi42NDE0N0MxMi4wODM5IDIuNzgzMDQgMTIuMjgxMiAyLjkzNjAzIDEyLjQ2ODUgMy4wOTkyMkMxMi42MzUxIDMuMjQ0MzYgMTIuNzkzOSAzLjM5NzY3IDEyLjk0NDQgMy41NTg0OEMxMy4wOTc0IDMuNzIxOTcgMTMuMjQxOSAzLjg5MzIyIDEzLjM3NzEgNC4wNzE1MkMxMy41NTU1IDQuMzA2NiAxMy43MTc5IDQuNTUzOTUgMTMuODYzMSA0LjgxMTk1QzEzLjk0MjcgNC45NTMzNiAxNC4wMTcxIDUuMDk3OTggMTQuMDg2MSA1LjI0NTUyQzE0LjEyNTMgNS4zMjkxNCAxNC4xNjI3IDUuNDEzNzEgMTQuMTk4MyA1LjQ5OTE2QzE0LjIwMyA1LjUxMDQzIDE0LjIwNzYgNS41MjE3MiAxNC4yMTIzIDUuNTMzMDJDMTQuMjEyMiA1LjUzMjkyIDE0LjIxMjMgNS41MzMxMiAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3OCA1LjcxNjkzIDE0LjQzMzMgNS44NjM2NyAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIyIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE2IDE1LjYwMDMgNC45NjQwMkMxNS42MDAyIDQuOTYzOSAxNS42MDAzIDQuOTY0MTQgMTUuNjAwMyA0Ljk2NDAyQzE1LjUwOTEgNC43NDE4NyAxNS40MDgyIDQuNTI0MiAxNS4yOTgxIDQuMzEyMjlDMTUuMjYxNyA0LjI0MjIgMTUuMjI0MiA0LjE3MjY5IDE1LjE4NTggNC4xMDM3OVpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC42MTQwNSAzLjEwNTEyIDguNDY2MjQgMy4wMzE0NSA4LjMwNzg2IDMuMDA4MDZDOC4yNzE4OCAzLjAwMjc2IDguMjM1MDggMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDUyIDkuNzIyNzhDNS40MDE1OSA5LjczNDgzIDUuMzg4ODcgOS43NDc1NSA1LjM3Njg2IDkuNzYwNDRDNS4zMjA0MSA5LjgyMTAyIDUuMjc0MyA5Ljg5MDYyIDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjM4NjMgMTAuNTczNiA1LjI0ODA0IDEwLjU5NDIgNS4yNTgzNCAxMC42MTQyQzUuMjkzODcgMTAuNjgzNCA1LjM0MDAyIDEwLjc0NjggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMwNjY4IDEwLjkyMyA2LjM3NjI4IDEwLjg3NjkgNi40MzY4NiAxMC44MjA0QzYuNDQ5NjYgMTAuODA4NSA2LjQ2MjA2IDEwLjc5NjEgNi40NzQwMyAxMC43ODMzQzYuNDczOTUgMTAuNzgzNCA2LjQ3NDExIDEwLjc4MzIgNi40NzQwMyAxMC43ODMzTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xMy40NDgzIDEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM4OTUgMTMgMTQuNTczMiAxMi45MjcgMTQuNzEyMSAxMi43OTYzQzE0LjcxNzcgMTIuNzkxMSAxNC43MjMyIDEyLjc4NTggMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVYxMC4wNTY2QzE0LjcwMTUgMTAuMDE5MSAxNC40NTA5IDEwIDE0LjE5ODMgMTBDMTMuOTQ1NyAxMCAxMy42OTUgMTAuMDE5MSAxMy40NDgzIDEwLjA1NjZWMTIuMjVaTTEzLjQ0ODMgOS43NjkyN0MxMy42OTMyIDkuODQ4MjggMTMuOTQ0MSA5LjkwNzE5IDE0LjE5ODMgOS45NDU1MUMxNC40MjY0IDkuOTc5ODkgMTQuNjU3MiA5Ljk5NzY5IDE0Ljg4ODkgOS45OTg1NEMxNC45MDg3IDkuOTk4NjEgMTQuOTI4NSA5Ljk5ODU2IDE0Ljk0ODMgOS45OTgzOFY4Ljc1MDAyQzE0Ljk0ODMgOC42NTM1NiAxNC45Mjk3IDguNTU5MDEgMTQuODk0NSA4LjQ3MTE3QzE0Ljg1NzEgOC4zNzc4NyAxNC44MDExIDguMjkyMTMgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTA0IDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwNCAxMy42NjggOC4yMTk2OUMxMy42NjUgOC4yMjI2OCAxMy42NjIgOC4yMjU2OSAxMy42NTkxIDguMjI4NzJDMTMuNTI4MiA4LjM2NDEgMTMuNDUzIDguNTQzNzYgMTMuNDQ4NSA4LjczMTg4QzEzLjQ0ODQgOC43Mzc5MiAxMy40NDgzIDguNzQzOTcgMTMuNDQ4MyA4Ljc1MDAyVjkuNzY5MjdaTTE1LjE5NjMgMTUuMDYyNkMxNS4xOTc2IDE1LjA0MTggMTUuMTk4MyAxNS4wMjA5IDE1LjE5ODMgMTVDMTUuMTk4MyAxNC45OTg0IDE1LjE5ODMgMTQuOTk2OCAxNS4xOTgzIDE0Ljk5NTFDMTUuMTk3IDE0LjczMTcgMTUuMDkxOCAxNC40NzkzIDE0LjkwNTQgMTQuMjkyOUMxNC43MTc4IDE0LjEwNTQgMTQuNDYzNSAxNCAxNC4xOTgzIDE0QzEzLjkzMzEgMTQgMTMuNjc4NyAxNC4xMDU0IDEzLjQ5MTIgMTQuMjkyOUMxMy4zMDM2IDE0LjQ4MDQgMTMuMTk4MyAxNC43MzQ4IDEzLjE5ODMgMTVDMTMuMTk4MyAxNS4yNjUyIDEzLjMwMzYgMTUuNTE5NiAxMy40OTEyIDE1LjcwNzFDMTMuNjc4NyAxNS44OTQ3IDEzLjkzMzEgMTYgMTQuMTk4MyAxNkMxNC40NjM1IDE2IDE0LjcxNzggMTUuODk0NyAxNC45MDU0IDE1LjcwNzFDMTUuMDc4MSAxNS41MzQ0IDE1LjE4MTEgMTUuMzA1IDE1LjE5NjMgMTUuMDYyNlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4xOTkyMTkpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlJiZvYmo/LnJldm9wc1R5cGUhPT0nJ1wiICBuZ2JUb29sdGlwPVwiQ3VzdG9tZXIgVGFnZ2luZyBpcyBEb25lXCIgIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODU2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS4wNjM4IDcuMzg2NjJWNy45OTk5NUMxNS4wNjMgOS40Mzc1NiAxNC41OTc1IDEwLjgzNjQgMTMuNzM2NyAxMS45ODc4QzEyLjg3NTkgMTMuMTM5MyAxMS42NjYgMTMuOTgxNiAxMC4yODc0IDE0LjM4OTJDOC45MDg3NiAxNC43OTY4IDcuNDM1MzEgMTQuNzQ3OSA2LjA4Njc4IDE0LjI0OTdDNC43MzgyNiAxMy43NTE1IDMuNTg2OTEgMTIuODMwNyAyLjgwNDQ0IDExLjYyNDdDMi4wMjE5OCAxMC40MTg2IDEuNjUwMzMgOC45OTE5OSAxLjc0NDkyIDcuNTU3NDlDMS44Mzk1MSA2LjEyMjk5IDIuMzk1MjcgNC43NTc1IDMuMzI5MzIgMy42NjQ2N0M0LjI2MzM3IDIuNTcxODMgNS41MjU2NiAxLjgxMDIxIDYuOTI3OTMgMS40OTMzOEM4LjMzMDIgMS4xNzY1NiA5Ljc5NzMxIDEuMzIxNTEgMTEuMTEwNSAxLjkwNjYyTTE1LjA2MzggMi42NjY2Mkw4LjM5NzE0IDkuMzM5OTVMNi4zOTcxNCA3LjMzOTk1XCIgc3Ryb2tlPVwiIzEyQjc2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4zOTg0MzgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImhlYWRlckRhdGEuY2xpZW50ICE9PScxMSdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIiFvYmo/LnJldm9wc1R5cGV8fG9iaj8ucmV2b3BzVHlwZT09PScnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgcGxhY2VtZW50PVwidG9wXCI+IDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTAzMzVfMjI4NTIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOC4zNzMyOCAwLjAwMjAxNjA2QzcuMjA5MzIgLTAuMDIzMzE1IDYuMDUzODUgMC4yMDU3MTEgNC45ODc1NSAwLjY3MzEwNkMzLjkyMTI1IDEuMTQwNSAyLjk2OTgxIDEuODM1IDIuMTk5NjcgMi43MDgxMUMxLjQyOTUyIDMuNTgxMjMgMC44NTkyMjUgNC42MTE5MiAwLjUyODU5NiA1LjcyODIyQzAuMTk3OTY2IDYuODQ0NTMgMC4xMTQ5NzEgOC4wMTk1NSAwLjI4NTQwNCA5LjE3MTI0QzAuNDU1ODM3IDEwLjMyMjkgMC44NzU1OTEgMTEuNDIzNiAxLjUxNTM2IDEyLjM5NjNDMi4xNTUxMyAxMy4zNjkgMi45OTk1IDE0LjE5MDMgMy45ODk1MSAxNC44MDI5QzQuOTc5NTMgMTUuNDE1NiA2LjA5MTMzIDE1LjgwNDggNy4yNDczIDE1Ljk0MzNDOC40MDMyNiAxNi4wODE4IDkuNTc1NTQgMTUuOTY2NCAxMC42ODIzIDE1LjYwNUMxMC44NzE0IDE1LjU0MzIgMTEuMDI4MiAxNS40MDg4IDExLjExODIgMTUuMjMxNEMxMS4yMDgyIDE1LjA1NCAxMS4yMjQxIDE0Ljg0ODEgMTEuMTYyMyAxNC42NTlDMTEuMTAwNSAxNC40Njk5IDEwLjk2NjEgMTQuMzEzMSAxMC43ODg3IDE0LjIyMzFDMTAuNjExMyAxNC4xMzMxIDEwLjQwNTQgMTQuMTE3MiAxMC4yMTYzIDE0LjE3OUM5LjAxMzU5IDE0LjU3MTcgNy43MjI0MiAxNC42MDQ5IDYuNTAxMTQgMTQuMjc0NUM1LjI3OTg2IDEzLjk0NDEgNC4xODE1NSAxMy4yNjQ0IDMuMzQwOTIgMTIuMzE4OUMyLjUwMDI4IDExLjM3MzQgMS45NTM4NiAxMC4yMDMxIDEuNzY4NjcgOC45NTE1MUMxLjU4MzQ4IDcuNjk5OTUgMS43Njc1NyA2LjQyMTU1IDIuMjk4MzcgNS4yNzMwOUMyLjgyOTE2IDQuMTI0NjMgMy42ODM1OCAzLjE1NjA0IDQuNzU2ODQgMi40ODYxMUM1LjgzMDExIDEuODE2MTggNy4wNzU1NSAxLjQ3NDAzIDguMzQwNDQgMS41MDE2M0M5LjYwNTMzIDEuNTI5MjIgMTAuODM0NyAxLjkyNTM2IDExLjg3NzcgMi42NDE0N0MxMi45MjA3IDMuMzU3NTcgMTMuNzMyMSA0LjM2MjUgMTQuMjEyMyA1LjUzMzAyQzE0LjI4NzcgNS43MTcwOCAxNC40MzMyIDUuODYzNjIgMTQuNjE2NyA1Ljk0MDQyQzE0LjcwNzYgNS45Nzg0NSAxNC44MDUgNS45OTgyIDE0LjkwMzUgNS45OTg1NkMxNS4wMDIgNS45OTg5MiAxNS4wOTk2IDUuOTc5ODggMTUuMTkwOCA1Ljk0MjUyQzE1LjI4MTkgNS45MDUxNiAxNS4zNjQ4IDUuODUwMjEgMTUuNDM0NyA1Ljc4MDgyQzE1LjUwNDYgNS43MTE0MiAxNS41NjAyIDUuNjI4OTQgMTUuNTk4MiA1LjUzODA4QzE1LjYzNjIgNS40NDcyMSAxNS42NTYgNS4zNDk3NSAxNS42NTYzIDUuMjUxMjZDMTUuNjU2NyA1LjE1Mjc2IDE1LjYzNzYgNS4wNTUxNSAxNS42MDAzIDQuOTY0MDJDMTUuMDA5MyAzLjUyMzMxIDE0LjAxMDcgMi4yODYzOSAxMi43MjY5IDEuNDA0OThDMTEuNDQzMiAwLjUyMzU3MSA5LjkzMDEyIDAuMDM1OTgxNSA4LjM3MzI4IDAuMDAyMDE2MDZaTTguOTQ4MjggMy43NTAwMkM4Ljk0ODI4IDMuNTUxMSA4Ljg2OTI2IDMuMzYwMzQgOC43Mjg2MSAzLjIxOTY5QzguNTg3OTYgMy4wNzkwMyA4LjM5NzE5IDMuMDAwMDIgOC4xOTgyOCAzLjAwMDAyQzcuOTk5MzcgMy4wMDAwMiA3LjgwODYgMy4wNzkwMyA3LjY2Nzk1IDMuMjE5NjlDNy41MjczIDMuMzYwMzQgNy40NDgyOCAzLjU1MTEgNy40NDgyOCAzLjc1MDAyVjcuNjkwMDJMNS40MTQyOCA5LjcyMzAyQzUuMzQwNTkgOS43OTE2OCA1LjI4MTQ5IDkuODc0NDggNS4yNDA1IDkuOTY2NDhDNS4xOTk1MSAxMC4wNTg1IDUuMTc3NDYgMTAuMTU3OCA1LjE3NTY5IDEwLjI1ODVDNS4xNzM5MSAxMC4zNTkyIDUuMTkyNDQgMTAuNDU5MiA1LjIzMDE2IDEwLjU1MjZDNS4yNjc4OCAxMC42NDYgNS4zMjQwMiAxMC43MzA4IDUuMzk1MjQgMTAuODAyMUM1LjQ2NjQ2IDEwLjg3MzMgNS41NTEyOSAxMC45Mjk0IDUuNjQ0NjggMTAuOTY3MUM1LjczODA3IDExLjAwNDkgNS44MzgxIDExLjAyMzQgNS45Mzg4IDExLjAyMTZDNi4wMzk1MSAxMS4wMTk4IDYuMTM4ODIgMTAuOTk3OCA2LjIzMDgyIDEwLjk1NjhDNi4zMjI4MiAxMC45MTU4IDYuNDA1NjIgMTAuODU2NyA2LjQ3NDI4IDEwLjc4M0w4LjcyODI4IDguNTMwMDJMOC45NDgyOCA4LjMxMDAyVjMuNzUwMDJaTTE1LjE5ODMgMTVDMTUuMTk4MyAxNS4yNjUyIDE1LjA5MjkgMTUuNTE5NiAxNC45MDU0IDE1LjcwNzFDMTQuNzE3OSAxNS44OTQ3IDE0LjQ2MzUgMTYgMTQuMTk4MyAxNkMxMy45MzMxIDE2IDEzLjY3ODcgMTUuODk0NyAxMy40OTEyIDE1LjcwNzFDMTMuMzAzNiAxNS41MTk2IDEzLjE5ODMgMTUuMjY1MiAxMy4xOTgzIDE1QzEzLjE5ODMgMTQuNzM0OCAxMy4zMDM2IDE0LjQ4MDQgMTMuNDkxMiAxNC4yOTI5QzEzLjY3ODcgMTQuMTA1NCAxMy45MzMxIDE0IDE0LjE5ODMgMTRDMTQuNDYzNSAxNCAxNC43MTc5IDE0LjEwNTQgMTQuOTA1NCAxNC4yOTI5QzE1LjA5MjkgMTQuNDgwNCAxNS4xOTgzIDE0LjczNDggMTUuMTk4MyAxNVpNMTQuOTQ4MyA4Ljc1MDAyQzE0Ljk0ODMgOC41NTExIDE0Ljg2OTMgOC4zNjAzNCAxNC43Mjg2IDguMjE5NjlDMTQuNTg4IDguMDc5MDMgMTQuMzk3MiA4LjAwMDAyIDE0LjE5ODMgOC4wMDAwMkMxMy45OTk0IDguMDAwMDIgMTMuODA4NiA4LjA3OTAzIDEzLjY2OCA4LjIxOTY5QzEzLjUyNzMgOC4zNjAzNCAxMy40NDgzIDguNTUxMSAxMy40NDgzIDguNzUwMDJWMTIuMjVDMTMuNDQ4MyAxMi40NDg5IDEzLjUyNzMgMTIuNjM5NyAxMy42NjggMTIuNzgwM0MxMy44MDg2IDEyLjkyMSAxMy45OTk0IDEzIDE0LjE5ODMgMTNDMTQuMzk3MiAxMyAxNC41ODggMTIuOTIxIDE0LjcyODYgMTIuNzgwM0MxNC44NjkzIDEyLjYzOTcgMTQuOTQ4MyAxMi40NDg5IDE0Ljk0ODMgMTIuMjVWOC43NTAwMlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNS4xODU4IDQuMTAzNzlDMTUuMDk5NiAzLjk0OTA3IDE1LjAwODMgMy43OTc0NCAxNC45MTIxIDMuNjQ5MTFDMTQuNTc0NyAzLjEyODQzIDE0LjE3NzYgMi42NDg1NCAxMy43Mjg5IDIuMjE5MzJDMTMuNDE4NyAxLjkyMjU3IDEzLjA4MzkgMS42NTAwNCAxMi43MjY5IDEuNDA0OThDMTIuNzI2OSAxLjQwNDkzIDEyLjcyNyAxLjQwNTA0IDEyLjcyNjkgMS40MDQ5OEMxMi41MTQ0IDEuMjU5MDYgMTIuMjk1NCAxLjEyMzc5IDEyLjA3MTEgMC45OTk3MjlDMTEuODI1NSAwLjg2Mzg5MyAxMS41NzM0IDAuNzQxMzIyIDExLjMxNTkgMC42MzIzNzdDMTAuMzg4MiAwLjIzOTg3MyA5LjM5MDA2IDAuMDI0MTk5IDguMzczMjggMC4wMDIwMTYwNkM4LjM3MzI0IDAuMDAyMDE1MTggOC4zNzMzMiAwLjAwMjAxNjk0IDguMzczMjggMC4wMDIwMTYwNkM4LjMxNDk2IDAuMDAwNzQ3NzkgOC4yNTY1NSAwLjAwMDExNTM4NyA4LjE5ODI4IDAuMDAwMTIyMTI0QzcuMTI3NiAwLjAwMDI0NTkyIDYuMDY3NTQgMC4yMTUzMDQgNS4wODEwOCAwLjYzMjgxNkM1LjA0OTgzIDAuNjQ2MDQzIDUuMDE4NjUgMC42NTk0NzMgNC45ODc1NSAwLjY3MzEwNkM0Ljc2MTE1IDAuNzcyMzQzIDQuNTM5OTMgMC44ODE4MiA0LjMyNDUyIDEuMDAxMDdDNC4yMDIwMSAxLjA2ODg5IDQuMDgxMzkgMS4xMzk4NyAzLjk2Mjc1IDEuMjEzOTNDMy4zMDc1NiAxLjYyMjk2IDIuNzEzMjkgMi4xMjU4MSAyLjE5OTY3IDIuNzA4MTFDMS42ODYwMiAzLjI5MDQzIDEuMjYxMjcgMy45NDI4NSAwLjkzNzIzMiA0LjY0NEMwLjc3NTQxNSA0Ljk5NDE0IDAuNjM4NzEzIDUuMzU2NDMgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk5IDYuODQ0NDUgMC4xMTQ5ODMgOC4wMTkzOCAwLjI4NTM2NiA5LjE3MDk5QzAuMjg1MzU0IDkuMTcwOTEgMC4yODUzNzkgOS4xNzEwOCAwLjI4NTM2NiA5LjE3MDk5QzAuNDU1OCAxMC4zMjI3IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzEuNzI4MzUgMTIuNzIwMSAxLjk2NDAyIDEzLjAyNzEgMi4yMjAxOSAxMy4zMTUzQzIuNzMzNDkgMTMuODkyNyAzLjMyOTA5IDE0LjM5NDMgMy45ODk1MSAxNC44MDI5QzQuNjQ5NjcgMTUuMjExNSA1LjM2Mzk4IDE1LjUyMDYgNi4xMDk0MyAxNS43MjI0QzYuNDgxOSAxNS44MjMyIDYuODYyMTUgMTUuODk3MSA3LjI0NzMgMTUuOTQzM0M3LjI5MTIzIDE1Ljk0ODYgNy4zMzUxOSAxNS45NTM1IDcuMzc5MTcgMTUuOTU4QzguMDE0OTIgMTYuMDIzNSA4LjY1NDY0IDE2LjAxMjQgOS4yODQ3OCAxNS45MjYxQzkuNTIxNDYgMTUuODkzNyA5Ljc1Njc4IDE1Ljg1MDcgOS45OTAwNCAxNS43OTcxQzEwLjIyMyAxNS43NDM2IDEwLjQ1MzkgMTUuNjc5NiAxMC42ODE5IDE1LjYwNTFDMTAuNjgxOCAxNS42MDUyIDEwLjY4MjEgMTUuNjA1MSAxMC42ODE5IDE1LjYwNTFDMTAuNzE5NiAxNS41OTI4IDEwLjc1NjMgMTUuNTc3NSAxMC43OTExIDE1LjU1OTdDMTAuOTMxMiAxNS40ODggMTEuMDQ2MSAxNS4zNzM1IDExLjExODIgMTUuMjMxNEMxMS4xNTU0IDE1LjE1ODEgMTEuMTggMTUuMDc5OSAxMS4xOTE2IDE1QzExLjIwODEgMTQuODg2NyAxMS4xOTg1IDE0Ljc3IDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTQgMTQuMTMzMSAxMC40MDU2IDE0LjExNzIgMTAuMjE2NiAxNC4xNzg5QzEwLjIxNjUgMTQuMTc4OSAxMC4yMTY4IDE0LjE3ODkgMTAuMjE2NiAxNC4xNzg5QzEwLjExMjEgMTQuMjEzIDEwLjAwNjUgMTQuMjQ0NiA5LjkwMDczIDE0LjI3MzNDOS43NDg0OCAxNC4zMTQ2IDkuNTk1MDYgMTQuMzUwMyA5LjQ0MDc4IDE0LjM4MDNDOS4zNzE0NiAxNC4zOTM4IDkuMzAxOTYgMTQuNDA2MiA5LjIzMjMzIDE0LjQxNzRDOC44NTQ4IDE0LjQ3ODIgOC40NzMwMiAxNC41MDU1IDguMDkxNDQgMTQuNDk5MkM3Ljk5NTY4IDE0LjQ5NzYgNy44OTk5MiAxNC40OTM5IDcuODA0MjYgMTQuNDg4MUM3LjY3NzkgMTQuNDgwNCA3LjU1MTY4IDE0LjQ2OTEgNy40MjU3OCAxNC40NTRDNy4zNjEzMyAxNC40NDYzIDcuMjk2OTYgMTQuNDM3NiA3LjIzMjY5IDE0LjQyNzlDNi45ODY5MyAxNC4zOTEgNi43NDI2NyAxNC4zMzk5IDYuNTAxMTQgMTQuMjc0NUM2LjMyOTMzIDE0LjIyOCA2LjE1OTk1IDE0LjE3NDYgNS45OTMzNyAxNC4xMTQ2QzUuNTY4MDkgMTMuOTYxMiA1LjE2MTEyIDEzLjc2NDIgNC43Nzg3IDEzLjUyNzZDNC43MzM3MyAxMy40OTk4IDQuNjg5MTEgMTMuNDcxNCA0LjY0NDgzIDEzLjQ0MjVDNC4yNzAwMyAxMy4xOTc4IDMuOTIwMjggMTIuOTE0MiAzLjYwMTc0IDEyLjU5NTZDMy41MTIyOSAxMi41MDYxIDMuNDI1MzEgMTIuNDEzOCAzLjM0MDkyIDEyLjMxODlDMy4xMzEzOSAxMi4wODMyIDIuOTQwMTQgMTEuODMzNiAyLjc2ODIxIDExLjU3MjJDMi43NjM4NSAxMS41NjU2IDIuNzU5NSAxMS41NTkgMi43NTUxNiAxMS41NTIzQzIuNDc5NjQgMTEuMTMwMSAyLjI1NDM3IDEwLjY3NzUgMi4wODM2OCAxMC4yMDM5QzEuOTM4MDcgOS43OTk5MyAxLjgzMjE4IDkuMzgwNjEgMS43Njg3MSA4Ljk1MTc0QzEuNzY4NjkgOC45NTE2NiAxLjc2ODcyIDguOTUxODIgMS43Njg3MSA4Ljk1MTc0QzEuNzQxMjUgOC43NjYyMSAxLjcyMTg4IDguNTc5ODYgMS43MTA1OSA4LjM5MzY3QzEuNzA0NzEgOC4yOTY4MyAxLjcwMTAxIDguMTk5OTggMS42OTk0OCA4LjEwMzE3QzEuNjg5MDIgNy40NDM1NSAxLjc3OTA1IDYuNzg2MjYgMS45NjYzMSA2LjE1NDA1QzIuMDU1MiA1Ljg1Mzk0IDIuMTY2MDEgNS41NTk0NyAyLjI5ODM3IDUuMjczMDlDMi41NjM3OCA0LjY5ODgzIDIuOTEwMTEgNC4xNjk1NCAzLjMyNDI1IDMuNzAwMDdDMy4zNjYxOCAzLjY1MjU0IDMuNDA4OCAzLjYwNTYzIDMuNDUyMSAzLjU1OTM0QzMuODM2NDkgMy4xNDg0OCA0LjI3NDU4IDIuNzg3MTQgNC43NTY4NCAyLjQ4NjExQzUuMDI0NTIgMi4zMTkwMyA1LjMwMjkxIDIuMTcyMzMgNS41ODk2MyAyLjA0NjY4QzUuODA0NzEgMS45NTI0MiA2LjAyNDQ5IDEuODcgNi4yNDc5NiAxLjc5OTdDNi44NzYyOCAxLjYwMjAyIDcuNTMzOCAxLjUwMDEyIDguMTk4MjggMS41MDAwOEM4LjI0NTYzIDEuNTAwMDggOC4yOTMwMiAxLjUwMDU5IDguMzQwNDQgMS41MDE2M0M4Ljk1NzQ1IDEuNTE1MTEgOS41NjYyIDEuNjE2MjkgMTAuMTQ4OCAxLjc5OTUyQzEwLjc2MDUgMS45OTE4OSAxMS4zNDM1IDIuMjc0NzIgMTEuODc3NyAyLjY0MTQ3QzExLjg3NzYgMi42NDE0MiAxMS44Nzc4IDIuNjQxNTEgMTEuODc3NyAyLjY0MTQ3QzEyLjA4MzkgMi43ODMwNCAxMi4yODEyIDIuOTM2MDMgMTIuNDY4NSAzLjA5OTIyQzEyLjYzNTEgMy4yNDQzNiAxMi43OTM5IDMuMzk3NjcgMTIuOTQ0NCAzLjU1ODQ4QzEzLjA5NzQgMy43MjE5NyAxMy4yNDE5IDMuODkzMjIgMTMuMzc3MSA0LjA3MTUyQzEzLjU1NTUgNC4zMDY2IDEzLjcxNzkgNC41NTM5NSAxMy44NjMxIDQuODExOTVDMTMuOTQyNyA0Ljk1MzM2IDE0LjAxNzEgNS4wOTc5OCAxNC4wODYxIDUuMjQ1NTJDMTQuMTI1MyA1LjMyOTE0IDE0LjE2MjcgNS40MTM3MSAxNC4xOTgzIDUuNDk5MTZDMTQuMjAzIDUuNTEwNDMgMTQuMjA3NiA1LjUyMTcyIDE0LjIxMjMgNS41MzMwMkMxNC4yMTIyIDUuNTMyOTIgMTQuMjEyMyA1LjUzMzEyIDE0LjIxMjMgNS41MzMwMkMxNC4yODc4IDUuNzE2OTMgMTQuNDMzMyA1Ljg2MzY3IDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjIgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTYgMTUuNjAwMyA0Ljk2NDAyQzE1LjYwMDIgNC45NjM5IDE1LjYwMDMgNC45NjQxNCAxNS42MDAzIDQuOTY0MDJDMTUuNTA5MSA0Ljc0MTg3IDE1LjQwODIgNC41MjQyIDE1LjI5ODEgNC4zMTIyOUMxNS4yNjE3IDQuMjQyMiAxNS4yMjQyIDQuMTcyNjkgMTUuMTg1OCA0LjEwMzc5Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjYxNDA1IDMuMTA1MTIgOC40NjYyNCAzLjAzMTQ1IDguMzA3ODYgMy4wMDgwNkM4LjI3MTg4IDMuMDAyNzYgOC4yMzUwOCAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0NTIgOS43MjI3OEM1LjQwMTU5IDkuNzM0ODMgNS4zODg4NyA5Ljc0NzU1IDUuMzc2ODYgOS43NjA0NEM1LjMyMDQxIDkuODIxMDIgNS4yNzQzIDkuODkwNjIgNS4yNDA1IDkuOTY2NDhDNS4xOTk1MSAxMC4wNTg1IDUuMTc3NDYgMTAuMTU3OCA1LjE3NTY5IDEwLjI1ODVDNS4xNzM5MSAxMC4zNTkyIDUuMTkyNDQgMTAuNDU5MiA1LjIzMDE2IDEwLjU1MjZDNS4yMzg2MyAxMC41NzM2IDUuMjQ4MDQgMTAuNTk0MiA1LjI1ODM0IDEwLjYxNDJDNS4yOTM4NyAxMC42ODM0IDUuMzQwMDIgMTAuNzQ2OCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzA2NjggMTAuOTIzIDYuMzc2MjggMTAuODc2OSA2LjQzNjg2IDEwLjgyMDRDNi40NDk2NiAxMC44MDg1IDYuNDYyMDYgMTAuNzk2MSA2LjQ3NDAzIDEwLjc4MzNDNi40NzM5NSAxMC43ODM0IDYuNDc0MTEgMTAuNzgzMiA2LjQ3NDAzIDEwLjc4MzNMOC45NDgyOCA4LjMxMDAyVjMuNzUwMDJaTTEzLjQ0ODMgMTIuMjVDMTMuNDQ4MyAxMi40NDg5IDEzLjUyNzMgMTIuNjM5NyAxMy42NjggMTIuNzgwM0MxMy44MDg2IDEyLjkyMSAxMy45OTk0IDEzIDE0LjE5ODMgMTNDMTQuMzg5NSAxMyAxNC41NzMyIDEyLjkyNyAxNC43MTIxIDEyLjc5NjNDMTQuNzE3NyAxMi43OTExIDE0LjcyMzIgMTIuNzg1OCAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjEwLjA1NjZDMTQuNzAxNSAxMC4wMTkxIDE0LjQ1MDkgMTAgMTQuMTk4MyAxMEMxMy45NDU3IDEwIDEzLjY5NSAxMC4wMTkxIDEzLjQ0ODMgMTAuMDU2NlYxMi4yNVpNMTMuNDQ4MyA5Ljc2OTI3QzEzLjY5MzIgOS44NDgyOCAxMy45NDQxIDkuOTA3MTkgMTQuMTk4MyA5Ljk0NTUxQzE0LjQyNjQgOS45Nzk4OSAxNC42NTcyIDkuOTk3NjkgMTQuODg4OSA5Ljk5ODU0QzE0LjkwODcgOS45OTg2MSAxNC45Mjg1IDkuOTk4NTYgMTQuOTQ4MyA5Ljk5ODM4VjguNzUwMDJDMTQuOTQ4MyA4LjY1MzU2IDE0LjkyOTcgOC41NTkwMSAxNC44OTQ1IDguNDcxMTdDMTQuODU3MSA4LjM3Nzg3IDE0LjgwMTEgOC4yOTIxMyAxNC43Mjg2IDguMjE5NjlDMTQuNTg4IDguMDc5MDQgMTQuMzk3MiA4LjAwMDAyIDE0LjE5ODMgOC4wMDAwMkMxMy45OTk0IDguMDAwMDIgMTMuODA4NiA4LjA3OTA0IDEzLjY2OCA4LjIxOTY5QzEzLjY2NSA4LjIyMjY4IDEzLjY2MiA4LjIyNTY5IDEzLjY1OTEgOC4yMjg3MkMxMy41MjgyIDguMzY0MSAxMy40NTMgOC41NDM3NiAxMy40NDg1IDguNzMxODhDMTMuNDQ4NCA4LjczNzkyIDEzLjQ0ODMgOC43NDM5NyAxMy40NDgzIDguNzUwMDJWOS43NjkyN1pNMTUuMTk2MyAxNS4wNjI2QzE1LjE5NzYgMTUuMDQxOCAxNS4xOTgzIDE1LjAyMDkgMTUuMTk4MyAxNUMxNS4xOTgzIDE0Ljk5ODQgMTUuMTk4MyAxNC45OTY4IDE1LjE5ODMgMTQuOTk1MUMxNS4xOTcgMTQuNzMxNyAxNS4wOTE4IDE0LjQ3OTMgMTQuOTA1NCAxNC4yOTI5QzE0LjcxNzggMTQuMTA1NCAxNC40NjM1IDE0IDE0LjE5ODMgMTRDMTMuOTMzMSAxNCAxMy42Nzg3IDE0LjEwNTQgMTMuNDkxMiAxNC4yOTI5QzEzLjMwMzYgMTQuNDgwNCAxMy4xOTgzIDE0LjczNDggMTMuMTk4MyAxNUMxMy4xOTgzIDE1LjI2NTIgMTMuMzAzNiAxNS41MTk2IDEzLjQ5MTIgMTUuNzA3MUMxMy42Nzg3IDE1Ljg5NDcgMTMuOTMzMSAxNiAxNC4xOTgzIDE2QzE0LjQ2MzUgMTYgMTQuNzE3OCAxNS44OTQ3IDE0LjkwNTQgMTUuNzA3MUMxNS4wNzgxIDE1LjUzNDQgMTUuMTgxMSAxNS4zMDUgMTUuMTk2MyAxNS4wNjI2WlwiIGZpbGw9XCIjRjc5MDA5XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEwMzM1XzIyODUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjE5OTIxOSlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlJiZvYmo/LnJldm9wc1R5cGUhPT0nJ1wiICAoY2xpY2spPVwicmV2b3BUYWdnaW5nKG9iailcIiBuZ2JUb29sdGlwPVwiQ3VzdG9tZXIgVGFnZ2luZyBpcyBEb25lXCIgIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODU2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS4wNjM4IDcuMzg2NjJWNy45OTk5NUMxNS4wNjMgOS40Mzc1NiAxNC41OTc1IDEwLjgzNjQgMTMuNzM2NyAxMS45ODc4QzEyLjg3NTkgMTMuMTM5MyAxMS42NjYgMTMuOTgxNiAxMC4yODc0IDE0LjM4OTJDOC45MDg3NiAxNC43OTY4IDcuNDM1MzEgMTQuNzQ3OSA2LjA4Njc4IDE0LjI0OTdDNC43MzgyNiAxMy43NTE1IDMuNTg2OTEgMTIuODMwNyAyLjgwNDQ0IDExLjYyNDdDMi4wMjE5OCAxMC40MTg2IDEuNjUwMzMgOC45OTE5OSAxLjc0NDkyIDcuNTU3NDlDMS44Mzk1MSA2LjEyMjk5IDIuMzk1MjcgNC43NTc1IDMuMzI5MzIgMy42NjQ2N0M0LjI2MzM3IDIuNTcxODMgNS41MjU2NiAxLjgxMDIxIDYuOTI3OTMgMS40OTMzOEM4LjMzMDIgMS4xNzY1NiA5Ljc5NzMxIDEuMzIxNTEgMTEuMTEwNSAxLjkwNjYyTTE1LjA2MzggMi42NjY2Mkw4LjM5NzE0IDkuMzM5OTVMNi4zOTcxNCA3LjMzOTk1XCIgc3Ryb2tlPVwiIzEyQjc2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4zOTg0MzgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC5lbnRyeVRpbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQuZXhpdFRpbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC50b3RhbFRpbWVTcGVudH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImltYWdlRmxvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9WaWV3KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIHB5LTIgaW1nLWRvYy1kaXJlY3RvcnlcIj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWluZm9cIj57e0ltYWdlZGF0YS50ZW1wSWR9fTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHZhbHVlID09PSAnZm9vdGZhbGwnICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6IHZhbHVlID09PSAncHVyY2hhc2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdwdXJjaGFzZXInID8gJ1B1cmNoYXNlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgfCB0aXRsZWNhc2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW25nQ2xhc3NdPVwieyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnOiBpc0ZpcnN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzRmlyc3RJbWFnZSgpID8gJ25vbmUnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0ZpcnN0SW1hZ2UoKSAmJiBwcmV2aW91cygpXCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDhDMC41IDMuODU3ODYgMy44NTc4NiAwLjUgOCAwLjVIMzkuNVYzOS41SDhDMy44NTc4NiAzOS41IDAuNSAzNi4xNDIxIDAuNSAzMlY4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgOEMwLjUgMy44NTc4NiAzLjg1Nzg2IDAuNSA4IDAuNUgzOS41VjM5LjVIOEMzLjg1Nzg2IDM5LjUgMC41IDM2LjE0MjEgMC41IDMyVjhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDI1TDE3LjUgMjBMMjIuNSAxNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJzogaXNMYXN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzTGFzdEltYWdlKCkgPyAnbm9uZScgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzTGFzdEltYWdlKCkgJiYgbmV4dCgpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgMC41SDMyQzM2LjE0MjEgMC41IDM5LjUgMy44NTc4NiAzOS41IDhWMzJDMzkuNSAzNi4xNDIxIDM2LjE0MjEgMzkuNSAzMiAzOS41SDAuNVYwLjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSAwLjVIMzJDMzYuMTQyMSAwLjUgMzkuNSAzLjg1Nzg2IDM5LjUgOFYzMkMzOS41IDM2LjE0MjEgMzYuMTQyMSAzOS41IDMyIDM5LjVIMC41VjAuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMjVMMjIuNSAyMEwxNy41IDE1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRhaW4gbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICBjbGFzcz1cImltZy1zcmMxXCIgW3NyY109XCJJbWFnZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZXMgPSBudWxsXCIgYWx0PVwiXCIgYXBwTWFnbmlmaWVyID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7bXlUaHVtYm5haWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtaW1hZ2Utem9vbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1iSW1hZ2VdPW15VGh1bWJuYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsSW1hZ2VdPW15RnVsbHJlc0ltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWduaWZpY2F0aW9uXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlU2Nyb2xsWm9vbV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZUxlbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZW5zV2lkdGhdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlbnNIZWlnaHRdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZ3gtaW1hZ2Utem9vbT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlc1wiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzbGlkZXIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FbnRyeSBUaW1lMTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctMTAwIHJvdW5kZWQtMiBtaC0xMDBweCBwYi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ2VudHJ5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlN0YWZmIEVuZ2FnZW1lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5zdGFmZkVuZ2FnZW1lbnRJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdzdGFmZicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC00IFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UgJiYgZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgIGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmV4aXRUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IHBlLTAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtd3JhcCBuYXYtZGV2IGZ3LWJvbGQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXktMSB3LTUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRhYiA9ICd0YWdnZWQnXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ3RhZ2dlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnZ2VkIEluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAnY3VzdG9tZXInXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiBjbGFzcz1cInRhYi10ZXh0LWRlZmF1bHQgYnRuIG5hdi1saW5rIHB4LTMgcHgtbGctOCBteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lciBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LTMgbXQtNSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvTm9uU2hvcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJub25TaG9wcGVyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEN1c3RvbWVyVHlwZVwiIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbm9uU2hvcHBlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvTm9uU2hvcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbiBTaG9wcGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvUHVyY2hhc2VyXCIgdmFsdWU9XCJwdXJjaGFzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ3B1cmNoYXNlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvUHVyY2hhc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb01pc3NlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtaXNzZWRPcHBvcnR1bml0eVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbWlzc2VkT3Bwb3J0dW5pdHknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb01pc3NlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc3NlZCBPcHBvcnR1bml0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb2JqIG9mIG5vblNob3BwZXJMaXN0XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlICBtdC0zIG1lLThcIiAgICAgW25nQ2xhc3NdPVwib2JqIT09bm9uU2hvcGVyVHlwZSA/ICdiYWRnZS1saWdodC1kZWZhdWx0JyA6J2JhZGdlLWxpZ2h0LXByaW1hcnknXCIgKGNsaWNrKT1cInNlbGVjdG5vblNob3BlcihvYmopXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICpuZ0lmPVwib2JqIT09bm9uU2hvcGVyVHlwZVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaj09PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4zOTc3IDQuOTI2NjFMNi42MjQzNCA5LjUzMzI4TDUuMzU3NjcgOC4xNzk5NEM1LjEyNDM0IDcuOTU5OTQgNC43NTc2NyA3Ljk0NjYxIDQuNDkxIDguMTMzMjhDNC4yMzEgOC4zMjY2MSA0LjE1NzY3IDguNjY2NjEgNC4zMTc2NyA4LjkzOTk0TDUuODE3NjcgMTEuMzc5OUM1Ljk2NDM0IDExLjYwNjYgNi4yMTc2NyAxMS43NDY2IDYuNTA0MzQgMTEuNzQ2NkM2Ljc3NzY3IDExLjc0NjYgNy4wMzc2NyAxMS42MDY2IDcuMTg0MzQgMTEuMzc5OUM3LjQyNDM0IDExLjA2NjYgMTIuMDA0MyA1LjYwNjYxIDEyLjAwNDMgNS42MDY2MUMxMi42MDQzIDQuOTkzMjggMTEuODc3NyA0LjQ1MzI4IDExLjM5NzcgNC45MTk5NFY0LjkyNjYxWlwiIGZpbGw9XCIjMzNCNUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7b2JqfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNSBwYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXROYW1lXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIiByb3dzPVwiNFwiIHBsYWNlaG9sZGVyPVwiXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJub25TaG9wcGVyU3VibWl0KClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lXCI+TmFtZTxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCduYW1lJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm5hbWUuZXJyb3JzPy5yZXF1aXJlZFwiPk5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db250YWN0IE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHBzLTMgcGUtOFwiIGlkPVwiaW5wdXRHcm91cFNlbGVjdDAxXCIgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeUNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCIgW3ZhbHVlXT1cImNvdW50cnkucGhvbmVjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvdW50cnkubmFtZX19ICh7e2NvdW50cnkucGhvbmVjb2RlfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9iaWxlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9iaWxlXCIgbWlubGVuZ3RoPVwiOFwiIG1heGxlbmd0aD1cIjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCdtb2JpbGUnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/LnJlcXVpcmVkXCI+Q29udGFjdCBOdW1iZXIgaXMgcmVxdWlyZWQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5taW5sZW5ndGhcIj5Db250YWN0IE51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDggZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWF4bGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgY2Fubm90IGV4Y2VlZCAxMyBkaWdpdHMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkVtYWlsIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LmludmFsaWQgJiYgKHVzZXJGb3JtLmdldCgnZW1haWwnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnZW1haWwnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZW1haWwuZXJyb3JzPy5wYXR0ZXJuXCI+SW52YWxpZCBlbWFpbCBmb3JtYXQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsb2NhdGlvblwiPkxvY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgaWQ9XCJsb2NhdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImxvY2F0aW9uXCIgI3BsYWNlc1JlZj1cIm5neC1wbGFjZXNcIiBuZ3gtZ3AtYXV0b2NvbXBsZXRlIChvbkFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYWdlXCI+QWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgbXQtM1wiIGZvcm1Db250cm9sTmFtZT1cImFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IEFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQmVsb3cgMTJcIj5CZWxvdyAxMjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTMtMTlcIj4xM+KAkzE5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMOKAkzMwXCI+MjDigJMzMDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMzHigJM0NVwiPjMx4oCTNDU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQ24oCTNTlcIj40NuKAkzU5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBYm92ZSA2MFwiPkFib3ZlIDYwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogMC4yNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcGUtNSB0ZXh0LWNlbnRlciBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIiBtYXg9XCI5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicmlnaHQ6IDIuNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbmNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnZW5kZXJcIj5HZW5kZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IG10LTNcIiBmb3JtQ29udHJvbE5hbWU9XCJnZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBHZW5kZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1hbGVcIj5NYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmZW1hbGVcIj5GZW1hbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRDdXN0b21lclR5cGUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zIGJvcmRlci1ncmF5LWFjdGl2ZTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBtaXNzZWRPcHBvcnR1bml0eUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtIG5hdi1pdGVtMSB3LTI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFicyhvYmoubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZE1pc3NlZCA9PT0gb2JqLm5hbWUgPyAnYWN0aXZlJyA6ICdhY3RpdmUtbm9ybWFsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBuYXYtbGluazEgY3Vyc29yLXBvaW50ZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvYmoubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG1iLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIElzc3VlIEJhZGdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvYmogb2YgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRNaXNzZWQgPT09IG9iai5uYW1lXCIgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9iai5pc3N1ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFN1Ymlzc3VlKG9iaiwgaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtZGVmYXVsdCc6IXNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXQtMiBtZS0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cIiFzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAyLjVWOS41TTIuNSA2SDkuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cInNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMzk3NyA0LjkyNjYxTDYuNjI0MzQgOS41MzMyOEw1LjM1NzY3IDguMTc5OTRDNS4xMjQzNCA3Ljk1OTk0IDQuNzU3NjcgNy45NDY2MSA0LjQ5MSA4LjEzMzI4QzQuMjMxIDguMzI2NjEgNC4xNTc2NyA4LjY2NjYxIDQuMzE3NjcgOC45Mzk5NEw1LjgxNzY3IDExLjM3OTlDNS45NjQzNCAxMS42MDY2IDYuMjE3NjcgMTEuNzQ2NiA2LjUwNDM0IDExLjc0NjZDNi43Nzc2NyAxMS43NDY2IDcuMDM3NjcgMTEuNjA2NiA3LjE4NDM0IDExLjM3OTlDNy40MjQzNCAxMS4wNjY2IDEyLjAwNDMgNS42MDY2MSAxMi4wMDQzIDUuNjA2NjFDMTIuNjA0MyA0Ljk5MzI4IDExLjg3NzcgNC40NTMyOCAxMS4zOTc3IDQuOTE5OTRWNC45MjY2MVpcIiBmaWxsPVwiIzMzQjVGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5EZXNjcmlwdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjb21tZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJzdWJtaXRNaXNzZWRPcHBvcnR1bml0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWNsYXNzXCI+VGFnZ2VkIFN1bW1hcnkgPHNwYW4gKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzPT09J3N1Ym1pdHRlZCdcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNC42NjY4IDcuMzg2NzRWOC4wMDAwN0MxNC42NjYgOS40Mzc2OSAxNC4yMDA1IDEwLjgzNjUgMTMuMzM5NyAxMS45ODhDMTIuNDc4OSAxMy4xMzk0IDExLjI2OSAxMy45ODE3IDkuODkwNCAxNC4zODkzQzguNTExNzggMTQuNzk3IDcuMDM4MzQgMTQuNzQ4IDUuNjg5ODEgMTQuMjQ5OEM0LjM0MTI4IDEzLjc1MTYgMy4xODk5MyAxMi44MzA4IDIuNDA3NDcgMTEuNjI0OEMxLjYyNTAxIDEwLjQxODggMS4yNTMzNiA4Ljk5MjExIDEuMzQ3OTUgNy41NTc2MUMxLjQ0MjU0IDYuMTIzMTIgMS45OTgzIDQuNzU3NjIgMi45MzIzNSAzLjY2NDc5QzMuODY2NCAyLjU3MTk1IDUuMTI4NjkgMS44MTAzMyA2LjUzMDk2IDEuNDkzNUM3LjkzMzIzIDEuMTc2NjggOS40MDAzNCAxLjMyMTYzIDEwLjcxMzUgMS45MDY3NE0xNC42NjY4IDIuNjY2NzRMOC4wMDAxNyA5LjM0MDA3TDYuMDAwMTcgNy4zNDAwN1wiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHRleHQtZW5kXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzIT09J3N1Ym1pdHRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDkwMV83Nzk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMTMxNTIgMC4wMDE0MjA0OUM1LjI1ODU1IC0wLjAxNzU3NzggNC4zOTE5NSAwLjE1NDE5MiAzLjU5MjIyIDAuNTA0NzM4QzIuNzkyNSAwLjg1NTI4MyAyLjA3ODkyIDEuMzc2MTYgMS41MDEzMSAyLjAzMDk5QzAuOTIzNzAzIDIuNjg1ODMgMC40OTU5ODEgMy40NTg4NSAwLjI0ODAwOSA0LjI5NjA4QzMuNzAyOTRlLTA1IDUuMTMzMyAtMC4wNjIyMDk1IDYuMDE0NTcgMC4wNjU2MTU0IDYuODc4MzRDMC4xOTM0NCA3Ljc0MjEyIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjQ2NzkxIDEwLjAyNjYgMi4xMDExOSAxMC42NDI2IDIuODQzNyAxMS4xMDIxQzMuNTg2MjEgMTEuNTYxNiA0LjQyMDA2IDExLjg1MzUgNS4yODcwMyAxMS45NTc0QzYuMTU0MDEgMTIuMDYxMyA3LjAzMzIyIDExLjk3NDcgNy44NjMyNyAxMS43MDM3QzguMDA1MSAxMS42NTczIDguMTIyNyAxMS41NTY1IDguMTkwMjIgMTEuNDIzNUM4LjI1NzczIDExLjI5MDQgOC4yNjk2MiAxMS4xMzYgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMDIgMTAuNTk5NyA3LjY1NTYgMTAuNTg3OCA3LjUxMzc3IDEwLjYzNDJDNi42MTE3NSAxMC45Mjg3IDUuNjQzMzggMTAuOTUzNiA0LjcyNzQyIDEwLjcwNThDMy44MTE0NiAxMC40NTggMi45ODc3MyA5Ljk0ODI1IDIuMzU3MjUgOS4yMzkxQzEuNzI2NzcgOC41Mjk5NSAxLjMxNjk2IDcuNjUyMjEgMS4xNzgwNyA2LjcxMzU0QzEuMDM5MTcgNS43NzQ4NyAxLjE3NzI0IDQuODE2MDcgMS41NzUzNCAzLjk1NDczQzEuOTczNDMgMy4wOTMzOCAyLjYxNDI1IDIuMzY2OTQgMy40MTkyIDEuODY0NDlDNC4yMjQxNCAxLjM2MjA0IDUuMTU4MjMgMS4xMDU0MyA2LjEwNjg5IDEuMTI2MTNDNy4wNTU1NiAxLjE0NjgzIDcuOTc3NTYgMS40NDM5MyA4Ljc1OTgzIDEuOTgxMDFDOS41NDIxIDIuNTE4MDkgMTAuMTUwNiAzLjI3MTc4IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NzIgMTAuNjc2NSA0LjM5NzYzIDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ3IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuMTA4NSAyLjY0MjM5IDEwLjM1OTYgMS43MTQ3IDkuMzk2NzcgMS4wNTM2NUM4LjQzMzk2IDAuMzkyNTg3IDcuMjk5MTUgMC4wMjY4OTQ2IDYuMTMxNTIgMC4wMDE0MjA0OVpNNi41NjI3NyAyLjgxMjQyQzYuNTYyNzcgMi42NjMyNCA2LjUwMzUxIDIuNTIwMTYgNi4zOTgwMiAyLjQxNDY3QzYuMjkyNTMgMi4zMDkxOCA2LjE0OTQ2IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTIyNyA3LjI5MjE3QzMuODU3MDEgNy4zNDM2NyAzLjgxMjY4IDcuNDA1NzcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjgwMjQ3IDcuOTg0NDEgMy44NDQ1OCA4LjA0ODA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODYgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTUgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU5MzY4IDguMTg2NzYgNC42NTU3OCA4LjE0MjQ0IDQuNzA3MjcgOC4wODcxN0w2LjM5Nzc3IDYuMzk3NDJMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTExLjI1MDMgMTEuMjQ5OUMxMS4yNTAzIDExLjQ0ODggMTEuMTcxMyAxMS42Mzk2IDExLjAzMDYgMTEuNzgwM0MxMC44ODk5IDExLjkyMDkgMTAuNjk5MiAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC4zMDE0IDExLjk5OTkgMTAuMTEwNiAxMS45MjA5IDkuOTY5OTQgMTEuNzgwM0M5LjgyOTI5IDExLjYzOTYgOS43NTAyNyAxMS40NDg4IDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjA1MSA5LjgyOTI5IDEwLjg2MDIgOS45Njk5NCAxMC43MTk2QzEwLjExMDYgMTAuNTc4OSAxMC4zMDE0IDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjY5OTIgMTAuNDk5OSAxMC44ODk5IDEwLjU3ODkgMTEuMDMwNiAxMC43MTk2QzExLjE3MTMgMTAuODYwMiAxMS4yNTAzIDExLjA1MSAxMS4yNTAzIDExLjI0OTlaTTExLjA2MjggNi41NjI0MkMxMS4wNjI4IDYuNDEzMjQgMTEuMDAzNSA2LjI3MDE2IDEwLjg5OCA2LjE2NDY3QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjdDOS45OTcwNCA2LjI3MDE2IDkuOTM3NzcgNi40MTMyNCA5LjkzNzc3IDYuNTYyNDJWOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0OTUgOS43NDk5MiAxMC43OTI1IDkuNjkwNjYgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNi41NjI0MlpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4yNDA5IDMuMDc3NzVDMTEuMTc2MiAyLjk2MTcxIDExLjEwNzggMi44NDc5OSAxMS4wMzU3IDIuNzM2NzRDMTAuNzgyNiAyLjM0NjIzIDEwLjQ4NDggMS45ODYzMSAxMC4xNDgzIDEuNjY0NEM5LjkxNTYxIDEuNDQxODQgOS42NjQ0NiAxLjIzNzQ0IDkuMzk2NzcgMS4wNTM2NUM5LjM5NjcyIDEuMDUzNjEgOS4zOTY4MyAxLjA1MzY4IDkuMzk2NzcgMS4wNTM2NUM5LjIzNzM3IDAuOTQ0MjA3IDkuMDczMDggMC44NDI3NDggOC45MDQ4NyAwLjc0OTcwNUM4LjcyMDcgMC42NDc4MjggOC41MzE2MyAwLjU1NTkgOC4zMzg1IDAuNDc0MTkyQzcuNjQyNjkgMC4xNzk4MTMgNi44OTQxIDAuMDE4MDU3NyA2LjEzMTUyIDAuMDAxNDIwNDlDNi4xMzE0OSAwLjAwMTQxOTgzIDYuMTMxNTUgMC4wMDE0MjExNSA2LjEzMTUyIDAuMDAxNDIwNDlDNi4wODc3OCAwLjAwMDQ2OTI5IDYuMDQzOTcgLTUuMDEyNjVlLTA2IDYuMDAwMjcgMy45OTQyNmUtMDhDNS4xOTcyNiA5LjI4ODcxZS0wNSA0LjQwMjIyIDAuMTYxMzg2IDMuNjYyMzcgMC40NzQ1MkMzLjYzODkzIDAuNDg0NDQxIDMuNjE1NTUgMC40OTQ1MTMgMy41OTIyMiAwLjUwNDczOEMzLjQyMjQzIDAuNTc5MTY2IDMuMjU2NTEgMC42NjEyNzMgMy4wOTQ5NiAwLjc1MDcxQzMuMDAzMDcgMC44MDE1NzcgMi45MTI2IDAuODU0ODE0IDIuODIzNjMgMC45MTAzNTlDMi4zMzIyMyAxLjIxNzEzIDEuODg2NTMgMS41OTQyNyAxLjUwMTMxIDIuMDMwOTlDMS4xMTYwOCAyLjQ2NzczIDAuNzk3NTE2IDIuOTU3MDQgMC41NTQ0ODYgMy40ODI5MUMwLjQzMzEyNCAzLjc0NTUxIDAuMzMwNTk3IDQuMDE3MjMgMC4yNDgwMDkgNC4yOTYwOEM1LjUxMzQzZS0wNSA1LjEzMzI0IC0wLjA2MjIwMDQgNi4wMTQ0NCAwLjA2NTU4NzQgNi44NzgxNUMwLjA2NTU3OCA2Ljg3ODA5IDAuMDY1NTk2NyA2Ljg3ODIyIDAuMDY1NTg3NCA2Ljg3ODE1QzAuMTkzNDEyIDcuNzQxOTMgMC41MDgyNTYgOC41Njc1OCAwLjk4ODA4MyA5LjI5NzExQzEuMTQ3ODMgOS41Mzk5OCAxLjMyNDU4IDkuNzcwMjcgMS41MTY3MSA5Ljk4NjM5QzEuOTAxNjggMTAuNDE5NCAyLjM0ODM4IDEwLjc5NTYgMi44NDM3IDExLjEwMjFDMy4zMzg4MiAxMS40MDg1IDMuODc0NTUgMTEuNjQwNCA0LjQzMzY0IDExLjc5MTdDNC43MTI5OSAxMS44NjczIDQuOTk4MTcgMTEuOTIyOCA1LjI4NzAzIDExLjk1NzRDNS4zMTk5OSAxMS45NjEzIDUuMzUyOTYgMTEuOTY1IDUuMzg1OTQgMTEuOTY4NEM1Ljg2Mjc1IDEyLjAxNzUgNi4zNDI1NCAxMi4wMDkyIDYuODE1MTQgMTEuOTQ0NUM2Ljk5MjY1IDExLjkyMDIgNy4xNjkxNSAxMS44ODc5IDcuMzQ0MDkgMTEuODQ3N0M3LjUxODggMTEuODA3NiA3LjY5MTk2IDExLjc1OTYgNy44NjMwMiAxMS43MDM4QzcuODYyOTQgMTEuNzAzOCA3Ljg2MzExIDExLjcwMzcgNy44NjMwMiAxMS43MDM4QzcuODkxMjcgMTEuNjk0NSA3LjkxODggMTEuNjgzMSA3Ljk0NDkyIDExLjY2OTdDOC4wNDk5NSAxMS42MTU5IDguMTM2MTUgMTEuNTMgOC4xOTAyMiAxMS40MjM1QzguMjE4MTIgMTEuMzY4NSA4LjIzNjUzIDExLjMwOTggOC4yNDUyNCAxMS4yNDk5QzguMjU3NjEgMTEuMTY0OSA4LjI1MDQ2IDExLjA3NzQgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMTEgMTAuNTk5OCA3LjY1NTc5IDEwLjU4NzggNy41MTQwNCAxMC42MzQxQzcuNTEzOTUgMTAuNjM0MSA3LjUxNDEzIDEwLjYzNDEgNy41MTQwNCAxMC42MzQxQzcuNDM1NjMgMTAuNjU5NyA3LjM1NjQ1IDEwLjY4MzMgNy4yNzcxMSAxMC43MDQ5QzcuMTYyOTIgMTAuNzM1OSA3LjA0Nzg2IDEwLjc2MjYgNi45MzIxNSAxMC43ODUxQzYuODgwMTYgMTAuNzk1MyA2LjgyODA0IDEwLjgwNDUgNi43NzU4MSAxMC44MTI5QzYuNDkyNjcgMTAuODU4NSA2LjIwNjMzIDEwLjg3OSA1LjkyMDE0IDEwLjg3NDNDNS44NDgzMiAxMC44NzMxIDUuNzc2NSAxMC44NzA0IDUuNzA0NzYgMTAuODY2QzUuNjA5OTggMTAuODYwMiA1LjUxNTMyIDEwLjg1MTcgNS40MjA5IDEwLjg0MDRDNS4zNzI1NiAxMC44MzQ2IDUuMzI0MjggMTAuODI4MSA1LjI3NjA4IDEwLjgyMDhDNS4wOTE3NiAxMC43OTMxIDQuOTA4NTYgMTAuNzU0OCA0LjcyNzQyIDEwLjcwNThDNC41OTg1NiAxMC42NzA5IDQuNDcxNTIgMTAuNjMwOSA0LjM0NjU5IDEwLjU4NThDNC4wMjc2MyAxMC40NzA4IDMuNzIyNCAxMC4zMjMxIDMuNDM1NTkgMTAuMTQ1NkMzLjQwMTg2IDEwLjEyNDggMy4zNjgzOSAxMC4xMDM1IDMuMzM1MTggMTAuMDgxOEMzLjA1NDA5IDkuODk4MjYgMi43OTE3OCA5LjY4NTU2IDIuNTUyODcgOS40NDY1OEMyLjQ4NTc4IDkuMzc5NDcgMi40MjA1NCA5LjMxMDI5IDIuMzU3MjUgOS4yMzkxQzIuMjAwMTEgOS4wNjIzNCAyLjA1NjY3IDguODc1MTIgMS45Mjc3MiA4LjY3OTA4QzEuOTI0NDUgOC42NzQxMSAxLjkyMTE4IDguNjY5MTMgMS45MTc5MyA4LjY2NDE0QzEuNzExMyA4LjM0NzQ5IDEuNTQyMzQgOC4wMDgwNyAxLjQxNDMyIDcuNjUyODZDMS4zMDUxMSA3LjM0OTg2IDEuMjI1NyA3LjAzNTM2IDEuMTc4MDkgNi43MTM3MUMxLjE3ODA4IDYuNzEzNjYgMS4xNzgxIDYuNzEzNzcgMS4xNzgwOSA2LjcxMzcxQzEuMTU3NSA2LjU3NDU3IDEuMTQyOTcgNi40MzQ4MSAxLjEzNDUgNi4yOTUxNkMxLjEzMDEgNi4yMjI1MyAxLjEyNzMyIDYuMTQ5ODkgMS4xMjYxNyA2LjA3NzI5QzEuMTE4MzIgNS41ODI1NyAxLjE4NTg1IDUuMDg5NjEgMS4zMjYzIDQuNjE1NDVDMS4zOTI5NyA0LjM5MDM2IDEuNDc2MDcgNC4xNjk1MSAxLjU3NTM0IDMuOTU0NzNDMS43NzQ0IDMuNTI0MDMgMi4wMzQxNCAzLjEyNzA2IDIuMzQ0NzUgMi43NzQ5NkMyLjM3NjIgMi43MzkzMiAyLjQwODE2IDIuNzA0MTMgMi40NDA2NCAyLjY2OTQyQzIuNzI4OTMgMi4zNjEyNyAzLjA1NzQ5IDIuMDkwMjcgMy40MTkyIDEuODY0NDlDMy42MTk5NSAxLjczOTE4IDMuODI4NzQgMS42MjkxNiA0LjA0Mzc5IDEuNTM0OTJDNC4yMDUxIDEuNDY0MjIgNC4zNjk5MyAxLjQwMjQxIDQuNTM3NTMgMS4zNDk2OEM1LjAwODc3IDEuMjAxNDMgNS41MDE5MSAxLjEyNSA2LjAwMDI3IDEuMTI0OTdDNi4wMzU3OSAxLjEyNDk3IDYuMDcxMzMgMS4xMjUzNSA2LjEwNjg5IDEuMTI2MTNDNi41Njk2NSAxLjEzNjI0IDcuMDI2MjEgMS4yMTIxMiA3LjQ2MzE1IDEuMzQ5NTRDNy45MjE5IDEuNDkzODMgOC4zNTkxOSAxLjcwNTk1IDguNzU5ODMgMS45ODEwMUM4Ljc1OTc4IDEuOTgwOTcgOC43NTk4OCAxLjk4MTA0IDguNzU5ODMgMS45ODEwMUM4LjkxNDQ3IDIuMDg3MTkgOS4wNjI0NyAyLjIwMTkzIDkuMjAyOTUgMi4zMjQzM0M5LjMyNzg5IDIuNDMzMTggOS40NDcgMi41NDgxNiA5LjU1OTg4IDIuNjY4NzdDOS42NzQ2NCAyLjc5MTM5IDkuNzgyOTUgMi45MTk4MiA5Ljg4NDQgMy4wNTM1NUMxMC4wMTgyIDMuMjI5ODYgMTAuMTQgMy40MTUzNyAxMC4yNDg5IDMuNjA4ODdDMTAuMzA4NiAzLjcxNDkzIDEwLjM2NDQgMy44MjMzOSAxMC40MTYyIDMuOTM0MDVDMTAuNDQ1NSAzLjk5Njc3IDEwLjQ3MzYgNC4wNjAxOSAxMC41MDAzIDQuMTI0MjhDMTAuNTAzOCA0LjEzMjczIDEwLjUwNzMgNC4xNDEyIDEwLjUxMDggNC4xNDk2N0MxMC41MTA3IDQuMTQ5NTkgMTAuNTEwOCA0LjE0OTc1IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NjEgMTAuNjc2NSA0LjM5NzY2IDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ4IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuNTUxNyAzLjcyMjgzIDExLjU1MTggMy43MjMwMSAxMS41NTE4IDMuNzIyOTJDMTEuNDgzNCAzLjU1NjMxIDExLjQwNzcgMy4zOTMwNiAxMS4zMjUxIDMuMjM0MTNDMTEuMjk3OCAzLjE4MTU2IDExLjI2OTcgMy4xMjk0MiAxMS4yNDA5IDMuMDc3NzVaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjMxMjEgMi4zMjg3NSA2LjIwMTI0IDIuMjczNSA2LjA4MjQ2IDIuMjU1OTVDNi4wNTU0OCAyLjI1MTk4IDYuMDI3ODcgMi4yNDk5MiA2LjAwMDI3IDIuMjQ5OTJDNS44NTEwOSAyLjI0OTkyIDUuNzA4MDEgMi4zMDkxOCA1LjYwMjUyIDIuNDE0NjdDNS40OTcwNCAyLjUyMDE2IDUuNDM3NzcgMi42NjMyNCA1LjQzNzc3IDIuODEyNDJWNS43Njc0MkwzLjkxMjQ1IDcuMjkyQzMuOTAyNzUgNy4zMDEwMyAzLjg5MzIyIDcuMzEwNTcgMy44ODQyMSA3LjMyMDIzQzMuODQxODcgNy4zNjU2NyAzLjgwNzI5IDcuNDE3ODcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjc4MDU0IDcuOTMwMTEgMy43ODc1OSA3Ljk0NTUyIDMuNzk1MzIgNy45NjA1N0MzLjgyMTk2IDguMDEyNDkgMy44NTY1OCA4LjA2MDA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODcgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTYgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU4MTU3IDguMTkyMTYgNC42MzM3NyA4LjE1NzU3IDQuNjc5MjEgOC4xMTUyNEM0LjY4ODgxIDguMTA2MjkgNC42OTgxMSA4LjA5NyA0LjcwNzA4IDguMDg3MzdDNC43MDcwMiA4LjA4NzQ0IDQuNzA3MTUgOC4wODczMSA0LjcwNzA4IDguMDg3MzdMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTkuOTM3NzcgOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0MzcgOS43NDk5MiAxMC43ODE1IDkuNjk1MTQgMTAuODg1NyA5LjU5NzE2QzEwLjg4OTggOS41OTMyMyAxMC44OTQgOS41ODkyNCAxMC44OTggOS41ODUxN0MxMS4wMDM1IDkuNDc5NjggMTEuMDYyOCA5LjMzNjYxIDExLjA2MjggOS4xODc0MlY3LjU0MjM0QzEwLjg3NzcgNy41MTQyNiAxMC42ODk3IDcuNDk5OTIgMTAuNTAwMyA3LjQ5OTkyQzEwLjMxMDggNy40OTk5MiAxMC4xMjI4IDcuNTE0MjYgOS45Mzc3NyA3LjU0MjM0VjkuMTg3NDJaTTkuOTM3NzcgNy4zMjY4NkMxMC4xMjE1IDcuMzg2MTIgMTAuMzA5NiA3LjQzMDMgMTAuNTAwMyA3LjQ1OTA0QzEwLjY3MTQgNy40ODQ4MyAxMC44NDQ1IDcuNDk4MTggMTEuMDE4MyA3LjQ5ODgxQzExLjAzMzEgNy40OTg4NyAxMS4wNDc5IDcuNDk4ODMgMTEuMDYyOCA3LjQ5ODdWNi41NjI0MkMxMS4wNjI4IDYuNDkwMDggMTEuMDQ4OCA2LjQxOTE3IDExLjAyMjQgNi4zNTMyOEMxMC45OTQ0IDYuMjgzMzEgMTAuOTUyNCA2LjIxOTAxIDEwLjg5OCA2LjE2NDY4QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjhDMTAuMTAwMyA2LjE2NjkyIDEwLjA5ODEgNi4xNjkxNyAxMC4wOTU5IDYuMTcxNDVDOS45OTc3IDYuMjcyOTkgOS45NDEzNSA2LjQwNzczIDkuOTM3OTQgNi41NDg4MkM5LjkzNzgzIDYuNTUzMzUgOS45Mzc3NyA2LjU1Nzg4IDkuOTM3NzcgNi41NjI0MlY3LjMyNjg2Wk0xMS4yNDg4IDExLjI5NjhDMTEuMjQ5OCAxMS4yODEzIDExLjI1MDMgMTEuMjY1NiAxMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS4yNDg3IDExLjI1MDMgMTEuMjQ3NSAxMS4yNTAzIDExLjI0NjNDMTEuMjQ5MyAxMS4wNDg3IDExLjE3MDQgMTAuODU5NCAxMS4wMzA2IDEwLjcxOTZDMTAuODg5OSAxMC41Nzg5IDEwLjY5OTIgMTAuNDk5OSAxMC41MDAzIDEwLjQ5OTlDMTAuMzAxNCAxMC40OTk5IDEwLjExMDYgMTAuNTc4OSA5Ljk2OTk0IDEwLjcxOTZDOS44MjkyOSAxMC44NjAyIDkuNzUwMjcgMTEuMDUxIDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjQ0ODggOS44MjkyOSAxMS42Mzk2IDkuOTY5OTQgMTEuNzgwM0MxMC4xMTA2IDExLjkyMDkgMTAuMzAxNCAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC42OTkyIDExLjk5OTkgMTAuODg5OSAxMS45MjA5IDExLjAzMDYgMTEuNzgwM0MxMS4xNjAyIDExLjY1MDcgMTEuMjM3NCAxMS40Nzg2IDExLjI0ODggMTEuMjk2OFpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDkwMV83Nzk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5QZW5kaW5nIFRhZ2dlZCBJbmZvPC9zcGFuPjwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5OYW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb24/dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb246XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TW9iaWxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm1vYmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5BZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uYWdlP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmFnZTpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5FbWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbD90YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbDpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5HZW5kZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZ2VuZGVyP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmdlbmRlcjpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFnZ2dlZERhdGEuaXNzdWVMaXN0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlXCI+e3tpdGVtLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbXMtMlwiICpuZ0Zvcj1cImxldCBkYXRhIG9mIGl0ZW0uaXNzdWVcIj57e2RhdGF9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LXRhZ2dlZCBteC0zIG15LTJcIiAqbmdJZj1cInRhZ2dnZWREYXRhPy5yZXZvcHNUeXBlPT09J25vblNob3BwZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1zLTJcIj57e25vblNob3BlclR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXktMlwiPjxzcGFuIGNsYXNzPVwiZGVzYy1pZFwiPk9yaWdpbmFsIElEPC9zcGFuPiA6IDxzcGFuIGNsYXNzPVwic3BlbnQtdmFsdWUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcIj57e0ltYWdlZGF0YT8udGVtcElkfX08L3NwYW4+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uZGVzY3JpcHRpb24mJnRhZ2dnZWREYXRhPy5kZXNjcmlwdGlvbiE9PScnXCIgY2xhc3M9XCJteS0zIGRlc2MtaWRcIj57e3RhZ2dnZWREYXRhLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRpbWUgU3BlbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8udG90YWxUaW1lU3BlbnR9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5lbnRyeVRpbWV9fSAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+RW50cnkgVGltZSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctMzMgIHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy50aW1lU3BlbnQ/LmV4aXRUaW1lfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdleGl0JylcIj5FeGl0IFRpbWUgPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiSW1hZ2VkYXRhPy56b25lVmlzaXRlZCYmSW1hZ2VkYXRhPy56b25lVmlzaXRlZC5sZW5ndGg+MFwiIGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkltYWdlZGF0YT8uem9uZVZpc2l0ZWQmJkltYWdlZGF0YT8uem9uZVZpc2l0ZWQubGVuZ3RoPjBcIiAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5ab25lcyBWaXNpdGVkPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJoLTIwMHB4IHNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIG10LTJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIEltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBcIj57e29ian19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJbWFnZWRhdGE/LnpvbmVWaXNpdGVkLmxlbmd0aCA9PT0wXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtMiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIFpvbmVzIFZpc2l0ZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFpvbmVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5TdGFmZiBFbmdhZ2VtZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctNDUgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnN0YWZmRW5nYWdlbWVudC50aW1lVGFrZW5Ub0Fzc2lzdH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlIG15LTFcIj5UaW1lIHRha2VuIHRvIGFzc2lzdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy00NSBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8uc3RhZmZFbmdhZ2VtZW50LnRpbWVTcGVudFdpdGhTdGFmZn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUgbXktMVwiPlRpbWUgc3BlbnQgd2l0aCBzdGFmZjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuPC9zZWN0aW9uPlxyXG48L2Rpdj4iXX0=