tango-app-ui-ticket-user 3.0.23-dev → 3.0.24-dev
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.
|
@@ -457,11 +457,11 @@ export class InstallationComponent {
|
|
|
457
457
|
});
|
|
458
458
|
}
|
|
459
459
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InstallationComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i2.ActivatedRoute }, { token: i4.ToastService }, { token: i5.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
460
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: InstallationComponent, selector: "lib-installation", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "tooltipContent", first: true, predicate: ["tooltipContent"], descendants: true }], ngImport: i0, template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-semibold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2 fw-semibold\">{{ticketId}}</span>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n 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_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> {{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n\r\n <button *ngIf=\"installationStart&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"startInstallation()\">\r\n Start Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"configuring&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"Configuring()\">\r\n Configuring <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7148_17608)\">\r\n <path\r\n d=\"M10.0003 1.66675V5.00008M10.0003 15.0001V18.3334M4.10866 4.10841L6.46699 6.46675M13.5337 13.5334L15.892 15.8917M1.66699 10.0001H5.00033M15.0003 10.0001H18.3337M4.10866 15.8917L6.46699 13.5334M13.5337 6.46675L15.892 4.10841\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7148_17608\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n <button *ngIf=\"installationResume&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-15 me-2 btn-primary\"\r\n (click)=\"resumeInstallation()\">\r\n Resume Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div *ngIf=\"prerequestFailed&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"instal-failed mb-5 d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-start\">\r\n <img src=\"./assets/tango/Images/_File upload icon.svg\">\r\n <div class=\"ms-5\">\r\n <div class=\"main-text\">Intallation Failed </div>\r\n <div class=\"sub-text\">Please enter the reason behind the installation failed</div>\r\n </div>\r\n </div>\r\n <button (click)=\"updateIssue()\" type=\"button\" class=\"btn btn-default btn-danger\">\r\n Update Issue\r\n </button>\r\n </div>\r\n <div *ngIf=\"showform\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\">\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div>\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n \r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <!-- {{obj.actionType}} -->\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div>\r\n <!-- <span class=\"profile-label fw-bold-400\">tango has replied to the issue</span> -->\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckstart'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Started the</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckfailed'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Process failed on</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType === 'fetchcamera'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check -> Fetchcamera</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'configure'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\"> Fetchcamera -> Configuring</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div 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\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\" >{{ errorMessage }}</div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\">\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl)\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.filename}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.symbol .symbol-label{width:48px!important;height:48px!important}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Black, #101828);font-size:16px;line-height:24px}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.instal-failed{border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA);padding:16px}.instal-failed .main-text{color:var(--Error-700, #B42318);font-size:14px;font-weight:500;line-height:20px}.instal-failed .sub-text{color:var(--Error-600, #D92D20);font-size:14px;font-weight:400;line-height:20px}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.custom-tooltip-content{max-width:500px!important;text-align:left!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: i7.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: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i4.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
460
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: InstallationComponent, selector: "lib-installation", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "tooltipContent", first: true, predicate: ["tooltipContent"], descendants: true }], ngImport: i0, template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-semibold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2 fw-semibold\">{{ticketId}}</span>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n 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_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> {{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n\r\n <button *ngIf=\"installationStart&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"startInstallation()\">\r\n Start Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"configuring&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"Configuring()\">\r\n Configuring <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7148_17608)\">\r\n <path\r\n d=\"M10.0003 1.66675V5.00008M10.0003 15.0001V18.3334M4.10866 4.10841L6.46699 6.46675M13.5337 13.5334L15.892 15.8917M1.66699 10.0001H5.00033M15.0003 10.0001H18.3337M4.10866 15.8917L6.46699 13.5334M13.5337 6.46675L15.892 4.10841\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7148_17608\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n <button *ngIf=\"installationResume&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-15 me-2 btn-primary\"\r\n (click)=\"resumeInstallation()\">\r\n Resume Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div *ngIf=\"prerequestFailed&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"instal-failed mb-5 d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-start\">\r\n <img src=\"./assets/tango/Images/_File upload icon.svg\">\r\n <div class=\"ms-5\">\r\n <div class=\"main-text\">Intallation Failed </div>\r\n <div class=\"sub-text\">Please enter the reason behind the installation failed</div>\r\n </div>\r\n </div>\r\n <button (click)=\"updateIssue()\" type=\"button\" class=\"btn btn-default btn-danger\">\r\n Update Issue\r\n </button>\r\n </div>\r\n <div *ngIf=\"showform\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\">\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div>\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n \r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <!-- {{obj.actionType}} -->\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div>\r\n <!-- <span class=\"profile-label fw-bold-400\">tango has replied to the issue</span> -->\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckstart'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Started the</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckfailed'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Process failed on</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType === 'fetchcamera'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check -> Fetchcamera</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'configure'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\"> Fetchcamera -> Configuring</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div 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\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\" >{{ errorMessage }}</div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\">\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl)\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.filename}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.symbol .symbol-label{width:48px!important;height:48px!important}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Black, #101828);font-size:16px;line-height:24px}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.instal-failed{border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA);padding:16px}.instal-failed .main-text{color:var(--Error-700, #B42318);font-size:14px;font-weight:500;line-height:20px}.instal-failed .sub-text{color:var(--Error-600, #D92D20);font-size:14px;font-weight:400;line-height:20px}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.custom-tooltip-content{max-width:500px!important;text-align:left!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: i7.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: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i4.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
461
461
|
}
|
|
462
462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: InstallationComponent, decorators: [{
|
|
463
463
|
type: Component,
|
|
464
|
-
args: [{ selector: 'lib-installation', template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-semibold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2 fw-semibold\">{{ticketId}}</span>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n 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_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> {{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n\r\n <button *ngIf=\"installationStart&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"startInstallation()\">\r\n Start Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"configuring&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"Configuring()\">\r\n Configuring <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7148_17608)\">\r\n <path\r\n d=\"M10.0003 1.66675V5.00008M10.0003 15.0001V18.3334M4.10866 4.10841L6.46699 6.46675M13.5337 13.5334L15.892 15.8917M1.66699 10.0001H5.00033M15.0003 10.0001H18.3337M4.10866 15.8917L6.46699 13.5334M13.5337 6.46675L15.892 4.10841\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7148_17608\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n <button *ngIf=\"installationResume&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-15 me-2 btn-primary\"\r\n (click)=\"resumeInstallation()\">\r\n Resume Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div *ngIf=\"prerequestFailed&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"instal-failed mb-5 d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-start\">\r\n <img src=\"./assets/tango/Images/_File upload icon.svg\">\r\n <div class=\"ms-5\">\r\n <div class=\"main-text\">Intallation Failed </div>\r\n <div class=\"sub-text\">Please enter the reason behind the installation failed</div>\r\n </div>\r\n </div>\r\n <button (click)=\"updateIssue()\" type=\"button\" class=\"btn btn-default btn-danger\">\r\n Update Issue\r\n </button>\r\n </div>\r\n <div *ngIf=\"showform\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\">\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div>\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n \r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <!-- {{obj.actionType}} -->\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div>\r\n <!-- <span class=\"profile-label fw-bold-400\">tango has replied to the issue</span> -->\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckstart'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Started the</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckfailed'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Process failed on</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType === 'fetchcamera'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check -> Fetchcamera</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'configure'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\"> Fetchcamera -> Configuring</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div 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\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\" >{{ errorMessage }}</div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\">\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl)\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.filename}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.symbol .symbol-label{width:48px!important;height:48px!important}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Black, #101828);font-size:16px;line-height:24px}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.instal-failed{border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA);padding:16px}.instal-failed .main-text{color:var(--Error-700, #B42318);font-size:14px;font-weight:500;line-height:20px}.instal-failed .sub-text{color:var(--Error-600, #D92D20);font-size:14px;font-weight:400;line-height:20px}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.custom-tooltip-content{max-width:500px!important;text-align:left!important}\n"] }]
|
|
464
|
+
args: [{ selector: 'lib-installation', template: "<div class=\"mb-5 d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"maincard-content bg-white px-3 py-2 me-3 cursor-pointer\" style=\"width: fit-content;\" (click)=\"PrevRoute()\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path d=\"M12.8327 6.99935H1.16602M1.16602 6.99935L6.99935 12.8327M1.16602 6.99935L6.99935 1.16602\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></div>\r\n <span class=\"fw-semibold store-label\"> {{storeId}}</span> <span *ngIf=\"storeAddress?.address\"\r\n class=\"fw-bold store-label\"> |\r\n {{storeAddress?.address}} </span>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span class=\"badge badge-light-primary\"> {{activeTicketDetails?.count}} {{storeAddress?.status}}</span>\r\n <div class=\"position-relative ps-3\">\r\n <button type=\"button\" (click)=\"storeChange($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between bg-white\">\r\n {{storeId ? storeId : storeAddress?.storeId}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"storeDropDown\" class=\"card py-1 z-1 w-200px position-absolute top-50px end-0 h-300px overflow-auto\">\r\n <ul *ngFor=\"let details of activeTicketDetails?.data\" class=\"list-unstyled\">\r\n <li [ngClass]=\"storeAddress?.storeId === details?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"getstoreAddress(details)\">\r\n {{details?.storeId}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2 fw-semibold\">{{ticketId}}</span>\r\n <span class=\"text-sub fw-bold mb-2 badge badge-light-default\"><svg class=\"me-3\"\r\n 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_3877_96552)\">\r\n <path\r\n d=\"M8 1V3M4 1V3M1.5 5H10.5M2.5 2H9.5C10.0523 2 10.5 2.44772 10.5 3V10C10.5 10.5523 10.0523 11 9.5 11H2.5C1.94772 11 1.5 10.5523 1.5 10V3C1.5 2.44772 1.94772 2 2.5 2Z\"\r\n stroke=\"#667085\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_96552\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> {{ ticketInfo?.createdAt|customDateFormat}}</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n\r\n <button *ngIf=\"installationStart&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"startInstallation()\">\r\n Start Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"configuring&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-20 me-2 btn-primary\"\r\n (click)=\"Configuring()\">\r\n Configuring <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7148_17608)\">\r\n <path\r\n d=\"M10.0003 1.66675V5.00008M10.0003 15.0001V18.3334M4.10866 4.10841L6.46699 6.46675M13.5337 13.5334L15.892 15.8917M1.66699 10.0001H5.00033M15.0003 10.0001H18.3337M4.10866 15.8917L6.46699 13.5334M13.5337 6.46675L15.892 4.10841\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7148_17608\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n <button *ngIf=\"installationResume&&(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" class=\"btn btn-default px-15 me-2 btn-primary\"\r\n (click)=\"resumeInstallation()\">\r\n Resume Installation <svg class=\"ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M7.5 15L12.5 10L7.5 5\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3877_102203)\">\r\n <path\r\n d=\"M12.5415 4.16659C13.3555 4.32539 14.1035 4.72347 14.6899 5.30986C15.2763 5.89626 15.6744 6.64431 15.8332 7.45825M12.5415 0.833252C14.2326 1.02112 15.8095 1.7784 17.0134 2.98076C18.2173 4.18312 18.9765 5.75909 19.1665 7.44992M18.3332 14.0999V16.5999C18.3341 16.832 18.2866 17.0617 18.1936 17.2744C18.1006 17.487 17.9643 17.6779 17.7933 17.8348C17.6222 17.9917 17.4203 18.1112 17.2005 18.1855C16.9806 18.2599 16.7477 18.2875 16.5165 18.2666C13.9522 17.988 11.489 17.1117 9.32486 15.7083C7.31139 14.4288 5.60431 12.7217 4.32486 10.7083C2.91651 8.53426 2.04007 6.05908 1.76653 3.48325C1.7457 3.25281 1.77309 3.02055 1.84695 2.80127C1.9208 2.58199 2.03951 2.38049 2.1955 2.2096C2.3515 2.03871 2.54137 1.90218 2.75302 1.80869C2.96468 1.7152 3.19348 1.6668 3.42486 1.66659H5.92486C6.32928 1.6626 6.72136 1.80582 7.028 2.06953C7.33464 2.33324 7.53493 2.69946 7.59153 3.09992C7.69705 3.89997 7.89274 4.68552 8.17486 5.44159C8.28698 5.73986 8.31125 6.06401 8.24478 6.37565C8.17832 6.68729 8.02392 6.97334 7.79986 7.19992L6.74153 8.25825C7.92783 10.3445 9.65524 12.072 11.7415 13.2583L12.7999 12.1999C13.0264 11.9759 13.3125 11.8215 13.6241 11.755C13.9358 11.6885 14.2599 11.7128 14.5582 11.8249C15.3143 12.107 16.0998 12.3027 16.8999 12.4083C17.3047 12.4654 17.6744 12.6693 17.9386 12.9812C18.2029 13.2931 18.3433 13.6912 18.3332 14.0999Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3877_102203\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"ms-2\">Contact Details</span> </button>\r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" type=\"button\" (click)=\"openRemote()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><span>\r\n <img src=\"./assets/tango/Images/desktop.svg\">\r\n Connect Remotely</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8\">\r\n <div *ngIf=\"prerequestFailed&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"instal-failed mb-5 d-flex justify-content-between\">\r\n <div class=\"d-flex align-items-start\">\r\n <img src=\"./assets/tango/Images/_File upload icon.svg\">\r\n <div class=\"ms-5\">\r\n <div class=\"main-text\">Intallation Failed </div>\r\n <div class=\"sub-text\">Please enter the reason behind the installation failed</div>\r\n </div>\r\n </div>\r\n <button (click)=\"updateIssue()\" type=\"button\" class=\"btn btn-default btn-danger\">\r\n Update Issue\r\n </button>\r\n </div>\r\n <div *ngIf=\"showform\">\r\n <div class=\"openedissue d-flex justify-content-between align-items-center\">\r\n <span class=\"profile-label fw-semibold\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M21 12C21 7.0293 16.9707 3 12 3C7.0293 3 3 7.0293 3 12C3 16.9707 7.0293 21 12 21\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M12.9 3.04504C12.9 3.04504 15.6 6.60004 15.6 12L12.9 3.04504ZM11.1 20.955C11.1 20.955 8.4 17.4 8.4 12C8.4 6.60004 11.1 3.04504 11.1 3.04504M3.567 15.15H12H3.567ZM3.567 8.85004H20.433H3.567Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.8911 17.3252C21.3357 17.5988 21.3078 18.2639 20.8506 18.3161L18.5403 18.578L17.5044 20.6588C17.2992 21.0719 16.6647 20.8694 16.5594 20.3582L15.4299 14.8538C15.3408 14.4218 15.7296 14.15 16.1049 14.3813L20.8911 17.3252Z\"\r\n fill=\"white\" />\r\n <path\r\n d=\"M20.25 12C20.25 12.4142 20.5858 12.75 21 12.75C21.4142 12.75 21.75 12.4142 21.75 12H20.25ZM12 21.75C12.4142 21.75 12.75 21.4142 12.75 21C12.75 20.5858 12.4142 20.25 12 20.25V21.75ZM13.4973 2.59142C13.2467 2.26156 12.7762 2.19725 12.4464 2.44778C12.1165 2.6983 12.0522 3.1688 12.3027 3.49866L13.4973 2.59142ZM14.85 12C14.85 12.4143 15.1858 12.75 15.6 12.75C16.0142 12.75 16.35 12.4143 16.35 12H14.85ZM10.5027 21.4087C10.7533 21.7385 11.2238 21.8028 11.5536 21.5523C11.8835 21.3018 11.9478 20.8313 11.6973 20.5014L10.5027 21.4087ZM11.6973 3.49866C11.9478 3.1688 11.8835 2.6983 11.5536 2.44778C11.2238 2.19725 10.7533 2.26156 10.5027 2.59142L11.6973 3.49866ZM3.567 14.4C3.15279 14.4 2.817 14.7358 2.817 15.15C2.817 15.5643 3.15279 15.9 3.567 15.9V14.4ZM12 15.9C12.4142 15.9 12.75 15.5643 12.75 15.15C12.75 14.7358 12.4142 14.4 12 14.4V15.9ZM3.567 8.10004C3.15279 8.10004 2.817 8.43583 2.817 8.85004C2.817 9.26426 3.15279 9.60004 3.567 9.60004V8.10004ZM20.433 9.60004C20.8472 9.60004 21.183 9.26426 21.183 8.85004C21.183 8.43583 20.8472 8.10004 20.433 8.10004V9.60004ZM20.8911 17.3252L21.2842 16.6865L21.284 16.6864L20.8911 17.3252ZM20.8506 18.3161L20.9351 19.0613L20.9357 19.0613L20.8506 18.3161ZM18.5403 18.578L18.4558 17.8328L18.0506 17.8787L17.8689 18.2438L18.5403 18.578ZM17.5044 20.6588L16.833 20.3246L16.8327 20.3252L17.5044 20.6588ZM16.5594 20.3582L15.8247 20.509L15.8248 20.5095L16.5594 20.3582ZM15.4299 14.8538L16.1646 14.703L16.1644 14.7023L15.4299 14.8538ZM16.1049 14.3813L15.7114 15.0198L15.712 15.0201L16.1049 14.3813ZM21.75 12C21.75 6.61509 17.3849 2.25 12 2.25V3.75C16.5565 3.75 20.25 7.44351 20.25 12H21.75ZM12 2.25C6.61509 2.25 2.25 6.61509 2.25 12H3.75C3.75 7.44351 7.44351 3.75 12 3.75V2.25ZM2.25 12C2.25 17.3849 6.61509 21.75 12 21.75V20.25C7.44351 20.25 3.75 16.5565 3.75 12H2.25ZM12.9 3.04504C12.3027 3.49866 12.3026 3.49846 12.3024 3.49828C12.3024 3.49823 12.3023 3.49806 12.3022 3.49797C12.3021 3.49779 12.302 3.49767 12.3019 3.4976C12.3018 3.49746 12.3019 3.49753 12.3021 3.49781C12.3025 3.49838 12.3036 3.4998 12.3053 3.50206C12.3086 3.50658 12.3144 3.51447 12.3225 3.52567C12.3387 3.54809 12.3641 3.58375 12.3973 3.63226C12.4638 3.72929 12.5616 3.87752 12.6805 4.07361C12.9183 4.46606 13.2393 5.04863 13.5614 5.79478C14.2061 7.28837 14.85 9.42526 14.85 12H16.35C16.35 9.17483 15.6439 6.83422 14.9386 5.20031C14.5857 4.38271 14.2317 3.73902 13.9633 3.29616C13.829 3.0746 13.7159 2.90291 13.6347 2.78443C13.5941 2.72518 13.5615 2.6792 13.5381 2.6469C13.5265 2.63075 13.5171 2.61802 13.5102 2.60876C13.5068 2.60413 13.504 2.60036 13.5018 2.59747C13.5007 2.59602 13.4998 2.5948 13.4991 2.59379C13.4987 2.59329 13.4983 2.59284 13.498 2.59244C13.4979 2.59224 13.4977 2.59199 13.4976 2.59189C13.4974 2.59165 13.4973 2.59142 12.9 3.04504ZM11.1 20.955C11.6973 20.5014 11.6974 20.5016 11.6976 20.5018C11.6976 20.5019 11.6977 20.502 11.6978 20.5021C11.6979 20.5023 11.698 20.5024 11.6981 20.5025C11.6982 20.5026 11.6981 20.5026 11.6979 20.5023C11.6975 20.5017 11.6964 20.5003 11.6948 20.498C11.6914 20.4935 11.6856 20.4856 11.6775 20.4744C11.6613 20.452 11.6359 20.4163 11.6027 20.3678C11.5362 20.2708 11.4384 20.1226 11.3195 19.9265C11.0817 19.534 10.7607 18.9515 10.4386 18.2053C9.79388 16.7117 9.15 14.5748 9.15 12H7.65C7.65 14.8253 8.35613 17.1659 9.06142 18.7998C9.41434 19.6174 9.76833 20.2611 10.0367 20.7039C10.171 20.9255 10.2841 21.0972 10.3653 21.2157C10.4059 21.2749 10.4385 21.3209 10.4619 21.3532C10.4735 21.3693 10.4829 21.3821 10.4898 21.3913C10.4932 21.396 10.496 21.3997 10.4982 21.4026C10.4993 21.4041 10.5002 21.4053 10.5009 21.4063C10.5013 21.4068 10.5017 21.4073 10.502 21.4076C10.5021 21.4078 10.5023 21.4081 10.5024 21.4082C10.5026 21.4084 10.5027 21.4087 11.1 20.955ZM9.15 12C9.15 9.42526 9.79388 7.28837 10.4386 5.79478C10.7607 5.04863 11.0817 4.46606 11.3195 4.07361C11.4384 3.87752 11.5362 3.72929 11.6027 3.63226C11.6359 3.58375 11.6613 3.54809 11.6775 3.52567C11.6856 3.51447 11.6914 3.50658 11.6948 3.50206C11.6964 3.4998 11.6975 3.49838 11.6979 3.49781C11.6981 3.49753 11.6982 3.49746 11.6981 3.4976C11.698 3.49767 11.6979 3.49779 11.6978 3.49797C11.6977 3.49806 11.6976 3.49823 11.6976 3.49828C11.6974 3.49846 11.6973 3.49866 11.1 3.04504C10.5027 2.59142 10.5026 2.59165 10.5024 2.59189C10.5023 2.59199 10.5021 2.59224 10.502 2.59244C10.5017 2.59284 10.5013 2.59329 10.5009 2.59379C10.5002 2.5948 10.4993 2.59602 10.4982 2.59747C10.496 2.60036 10.4932 2.60413 10.4898 2.60876C10.4829 2.61802 10.4735 2.63075 10.4619 2.6469C10.4385 2.6792 10.4059 2.72518 10.3653 2.78443C10.2841 2.90291 10.171 3.0746 10.0367 3.29616C9.76833 3.73902 9.41434 4.38271 9.06142 5.20031C8.35613 6.83422 7.65 9.17483 7.65 12H9.15ZM3.567 15.9H12V14.4H3.567V15.9ZM3.567 9.60004H20.433V8.10004H3.567V9.60004ZM20.498 17.9639C20.4792 17.9524 20.4575 17.9252 20.4597 17.8727C20.4609 17.8434 20.4715 17.7772 20.5297 17.7054C20.5961 17.6235 20.6889 17.5797 20.7655 17.5709L20.9357 19.0613C21.6167 18.9835 21.9384 18.4179 21.9584 17.9346C21.9776 17.4682 21.7476 16.9717 21.2842 16.6865L20.498 17.9639ZM20.7661 17.5709L18.4558 17.8328L18.6248 19.3232L20.9351 19.0613L20.7661 17.5709ZM17.8689 18.2438L16.833 20.3246L18.1758 20.9931L19.2117 18.9123L17.8689 18.2438ZM16.8327 20.3252C16.8668 20.2565 16.9395 20.1839 17.0398 20.1492C17.1277 20.1188 17.194 20.1316 17.2221 20.1405C17.272 20.1564 17.2896 20.1857 17.294 20.2069L15.8248 20.5095C15.9345 21.0419 16.322 21.4281 16.7668 21.5697C17.2286 21.7168 17.8707 21.6073 18.1761 20.9925L16.8327 20.3252ZM17.2941 20.2074L16.1646 14.703L14.6952 15.0046L15.8247 20.509L17.2941 20.2074ZM16.1644 14.7023C16.1723 14.7406 16.1666 14.883 16.0232 14.9833C15.88 15.0835 15.7446 15.0402 15.7114 15.0198L16.4984 13.7428C16.0899 13.4911 15.5724 13.468 15.1633 13.7543C14.754 14.0407 14.5984 14.535 14.6954 15.0053L16.1644 14.7023ZM15.712 15.0201L20.4982 17.964L21.284 16.6864L16.4978 13.7425L15.712 15.0201Z\"\r\n fill=\"#475467\" />\r\n </svg> {{selectedIssue}}\r\n </span>\r\n <!-- (click)=\"chooseanissue('')\" -->\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown($event)\"\r\n class=\"maincard-content cursor-pointer bg-white px-3 py-2\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> </div>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.selectedIssue === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-3\"\r\n (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"selectedIssue === 'Internet Issues'||selectedIssue === 'Camera Issues'||selectedIssue === 'System Issues' \">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\" *ngIf=\"secondaryIssues?.length>0\"> Please\r\n select the\r\n relevant problem facing from the following </div>\r\n <div *ngFor=\"let issue of secondaryIssues; let index = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer \"\r\n (click)=\"toggleCheckbox(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{issue?.name}}</span>\r\n <span class=\"w-300px\" [ngbTooltip]=\"tooltipContent\" triggers=\"mouseenter:mouseleave\"\r\n placement=\"left\">\r\n <svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n <!-- Define tooltip content -->\r\n <ng-template #tooltipContent>\r\n <div class=\"custom-tooltip-content tooltip-content w-100\">\r\n <ul>\r\n <li class=\"w-100\" *ngFor=\"let tooltipItem of issue?.toolTips\">{{\r\n tooltipItem?.name }}</li>\r\n </ul>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"checkbox\" [checked]=\"issue.checked\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"0\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedIssue === 'Others'\">\r\n <div class=\"maincard-content w-100 mt-2 px-4 py-2 pb-4 mb-5\">\r\n <div class=\"maincard-label fw-semibold py-2\">Please select the relevant problem facing from\r\n the\r\n following</div>\r\n <div *ngFor=\"let others of othersIssue; let i = index\"\r\n class=\"maincard-content d-flex justify-content-between align-items-center w-100 mt-2 px-4 py-4 cursor-pointer\"\r\n (click)=\"toggleRadiobox(others)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span><img class=\"pe-3\" src='./assets/tango/Images/Featured icon.png'></span>\r\n <span class=\"headingtext\">{{others.name}}</span>\r\n <span><svg class=\"ms-3\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1826_44871)\">\r\n <path\r\n d=\"M8.00065 10.6673V8.00065M8.00065 5.33398H8.00732M14.6673 8.00065C14.6673 11.6826 11.6826 14.6673 8.00065 14.6673C4.31875 14.6673 1.33398 11.6826 1.33398 8.00065C1.33398 4.31875 4.31875 1.33398 8.00065 1.33398C11.6826 1.33398 14.6673 4.31875 14.6673 8.00065Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1826_44871\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </div>\r\n <div class=\"roundedcheck d-flex align-items-center\">\r\n <input type=\"radio\" name=\"radioGroup{{i}}\" [value]=\"others.name\"\r\n [(ngModel)]=\"selectedOption\" class=\"p-0\">\r\n </div>\r\n </div>\r\n <div class=\"form-group pt-6\">\r\n <label for=\"hiberntion\" class=\" maincard-label fw-semibold mb-2\">Hibernation (in days)\r\n *</label>\r\n <div class=\" w-250px position-relative\">\r\n <div class=\"position-absolute translate-middle-y top-50 me-5 ps-3 ticketDays\">\r\n <span class=\"svg-icon toggle-off svg-icon-1\" [ngClass]=\"count === 0 ? 'pe-none' : ''\" (click)=\"decreseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M4.66602 10H16.3327\" stroke=\"#344054\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" id=\"hiberntion\" [(ngModel)]=\"Hibernation\"\r\n style=\"text-align: center;\" value=\"{{count}}\" placeholder=\"\" readOnly />\r\n <div class=\"position-absolute translate-middle-y top-50 end-0 me-3\">\r\n <span class=\"svg-icon toggle-on svg-icon-1 ticketDays\"\r\n (click)=\"increaseCount()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.1665V15.8332M4.66602 9.99984H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\">\r\n\r\n <!-- Horizontal line with day -->\r\n\r\n <!-- <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"border border-1 border-gray p-0 w-100 me-3\"></div>\r\n <span class=\"text-day fw-bold-400\">Today</span>\r\n <div class=\"border border-1 border-gray p-0 w-100 ms-3\"></div>\r\n </div> -->\r\n\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5 mb-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div>\r\n <div class=\"d-flex\">\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply==='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply==='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div *ngIf=\"notworkingCamaralist && notworkingCamaralist?.length\" class=\"row\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3 my-5\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> to the Camera</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"res?.secondaryIssue && res?.secondaryIssue?.length\" class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <div class=\"symbol symbol-48px symbol-circle\" *ngIf=\"obj?.IdentifiedBy&&obj?.IdentifiedBy!==''&&obj?.IdentifiedBy!=='Tango'\">\r\n <span class=\"symbol-label badge-light-primary text-symbol\">\r\n <span class=\"text-primary fs-4 badge badge-light-primary fw-normal\">\r\n {{obj?.IdentifiedBy?.slice(0,2) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n <img *ngIf=\"!obj?.IdentifiedBy||obj?.IdentifiedBy===''||obj?.IdentifiedBy==='Tango'\" class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n \r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray verticalLine\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"d-flex\">\r\n <!-- {{obj.actionType}} -->\r\n <span class=\"headingtext fw-semibold\">{{obj?.IdentifiedBy?obj?.IdentifiedBy:\"Tango\"}}</span>\r\n <span class=\"updateddate fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div>\r\n <!-- <span class=\"profile-label fw-bold-400\">tango has replied to the issue</span> -->\r\n <div *ngIf=\"obj.actionType === 'statusChange'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Open -> Inprogress</span>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"obj.actionType === 'comment'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400 text-wrap\">{{obj?.comment}}</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckstart'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Started the</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'prerequestcheckfailed'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Process failed on</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check</span>\r\n </div>\r\n \r\n <div *ngIf=\"obj.actionType === 'fetchcamera'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\">Pre-Requisite Check -> Fetchcamera</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType === 'configure'\">\r\n <span class=\"timingtext pe-3 pt-1 fw-bold-400\">Updated the status</span><span\r\n class=\"timingtext fw-semibold text-primary\"> Fetchcamera -> Configuring</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div *ngIf=\"res.primaryIssue ==='Camera Issues'\">\r\n <div class=\"row my-5\">\r\n <div *ngFor=\"let item of notworkingCamaralist\" class=\"col-sm-3\">\r\n <div class=\"rounded-3 overflow-hidden mt-2\">\r\n <span class=\"camera fw-bold\">{{item.cameraName}}</span>\r\n <img [src]=\"item?.thumbnailImage\" style=\"height:180px\">\r\n </div>\r\n </div>\r\n </div>\r\n <span class=\"textupdates fw-bold-400 mt-3 me-2\">The above camera streaming are not working due</span>\r\n <span class=\"textupdates fw-bold-700 mt-3\" *ngFor=\"let issue of res?.secondaryIssue; let last = last\">{{issue?.name}} <ng-container *ngIf=\"!last\"> ,</ng-container></span> <span class=\"textupdates fw-bold-400 mt-3\">to the Camera</span>\r\n\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"investigation fw-bold-400 mb-3\">The following are the relevant\r\n problem\r\n facing</div>\r\n <div class=\"mb-5\">\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5 mb-5\">\r\n <div class=\"headingtext fw-semibold mb-1\">{{res.primaryIssue}}</div>\r\n <ul class=\"timingtext fw-bold-400 mb-0\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div 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\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showSubmit&&(gs.userAccess | async)?.manage_tickets_isEdit\" class=\"d-flex justify-content-between align-items-center mt-10\">\r\n <input class=\"form-control\" [(ngModel)]=\"comments\" (click)=\"addComment()\" type=\"text\"\r\n placeholder=\"Add your comments..\">\r\n\r\n <input type=\"file\" #fileInput style=\"display: none;\" accept=\"image/*\" multiple (change)=\"onFileSelected($event)\">\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default btn-outline ms-3\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></button>\r\n\r\n <button [disabled]=\"ticketInfo?.status === 'closed'\" class=\"btn btn-primary ms-3\" (click)=\"updateTicket()\"> Submit </button>\r\n\r\n <button class=\"btn btn-default btn-outline ms-3 text-nowrap\"><span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_3917_54621)\">\r\n <path\r\n d=\"M7.57435 7.50008C7.77027 6.94314 8.15698 6.4735 8.66598 6.17436C9.17498 5.87521 9.77343 5.76586 10.3553 5.86567C10.9372 5.96549 11.465 6.26802 11.8452 6.71969C12.2255 7.17136 12.4336 7.74302 12.4327 8.33342C12.4327 10.0001 9.93268 10.8334 9.93268 10.8334M9.99935 14.1667H10.0077M18.3327 10.0001C18.3327 14.6025 14.6017 18.3334 9.99935 18.3334C5.39698 18.3334 1.66602 14.6025 1.66602 10.0001C1.66602 5.39771 5.39698 1.66675 9.99935 1.66675C14.6017 1.66675 18.3327 5.39771 18.3327 10.0001Z\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3917_54621\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> Can\u2019t able to reach the store?\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\" >{{ errorMessage }}</div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <div class=\"border border-1 border-gray rounded-3 p-5 h-100\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"camera fw-semibold\">Attachments</div>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length ===0\"\r\n class=\"w-100 mt-10 mb-10 mh-60vh d-grid text-center mx-auto\">\r\n <img class=\"mx-auto\" src=\"./assets/tango/Images/taketicket.svg\">\r\n <span class=\"taketicket mt-2 fw-bold\">No Attachments </span>\r\n </div>\r\n <div *ngIf=\"ticketInfo?.attachments.length > 0\" class=\"row mt-10\">\r\n <div class=\"col-sm-6\" *ngFor=\"let file of ticketInfo?.attachments\">\r\n <div class=\"Attachment border border-1 border-gray w-100 rounded-2 overflow-hidden\">\r\n <img class=\"h-150px\" (click)=\"downloadimage(file?.signedUrl)\" [src]=\"file?.signedUrl\" alt=\"Selected Image\">\r\n <div class=\"d-grid border border-top-1 px-5 py-2\">\r\n <span class=\"imagename fw-bold\">{{file.filename}}</span>\r\n <!-- <span class=\"fw-bold-400 updateddate\">{{file.lastModifiedDateString}}</span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>", styles: [".nav-item .nav-link{font-size:16px!important;line-height:24px}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);padding:8px 12px}.nav-item .nav-link:hover{border:none}.rowbody{background:var(--Gray-50, #F9FAFB)}.symbol .symbol-label{width:48px!important;height:48px!important}.contenttext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.camera{color:var(--Gray-500, #344054);font-size:14px;line-height:20px}.textupdates{color:var(--Gray-500, #344054);font-size:16px;line-height:24px}.store-label{color:var(--Black, #101828);font-size:16px;line-height:24px}.card-label{font-size:18px!important}.text-sub{color:var(--Gray-700, #344054)!important;font-size:12px!important;line-height:18px!important;font-weight:500!important}.text-day{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.openedissue{border-radius:6px;background:var(--Gray-50, #F9FAFB);padding:8px 12px}.imagename{color:var(--Gray-900, #101828);font-size:12px;line-height:18px}.updateddate{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.w-45{width:49%}input,textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:14px;line-height:20px}.profile-label{font-size:12px;color:var(--Gray-500, #667085);line-height:18px}.investigation{color:var(--Gray-500, #667085);font-size:16px;line-height:24px}.fw-bold-400{font-weight:400!important}.fw-bold-700{font-weight:700!important}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.card-label{color:#000!important;font-size:16px!important;line-height:24px}.roundedcheck input[type=checkbox]{width:16px!important;height:16px!important;border-radius:10px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}.roundedcheck input[type=checkbox]:checked{outline:none;background-color:var(--primary-50, #00A3FF)}.roundedcheck input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid white;border-right:2px solid white;display:inline-block;width:4px;padding:5px 0 2px 3px;margin-top:2px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.instal-failed{border-radius:8px;border:1px solid var(--Error-300, #FDA29B);background:var(--Error-25, #FFFBFA);padding:16px}.instal-failed .main-text{color:var(--Error-700, #B42318);font-size:14px;font-weight:500;line-height:20px}.instal-failed .sub-text{color:var(--Error-600, #D92D20);font-size:14px;font-weight:400;line-height:20px}.text-primary{color:var(--Primary-700, #009BF3)!important}.verticalLine{width:0px;min-height:15px}.custom-tooltip-content{max-width:500px!important;text-align:left!important}\n"] }]
|
|
465
465
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i2.ActivatedRoute }, { type: i4.ToastService }, { type: i5.GlobalStateService }], propDecorators: { fileInput: [{
|
|
466
466
|
type: ViewChild,
|
|
467
467
|
args: ['fileInput']
|
|
@@ -472,4 +472,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
472
472
|
type: HostListener,
|
|
473
473
|
args: ['document:click', ['$event']]
|
|
474
474
|
}] } });
|
|
475
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9pbnN0YWxsYXRpb24vaW5zdGFsbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9pbnN0YWxsYXRpb24vaW5zdGFsbGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFRekUsaUZBQWlGO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjtJQXdEWjtJQUFnQztJQUMxQztJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBM0RULFdBQVcsR0FBUSxRQUFRLENBQUM7SUFDNUIsYUFBYSxHQUFRLGlCQUFpQixDQUFDO0lBQ3ZDLGdCQUFnQixHQUFZLEtBQUssQ0FBQTtJQUNqQyxlQUFlLENBQU07SUFDckIsV0FBVyxDQUFNO0lBQ2pCLFFBQVEsR0FBUSxFQUFFLENBQUM7SUFDbkIsYUFBYSxDQUFNO0lBQ25CLGFBQWEsR0FBVSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkYsV0FBVyxHQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxF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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYk1vZGFsUmVmLCBOZ2JBY3RpdmVNb2RhbCwgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ29udGFjdERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRha2VyZW1vdGVDb21wb25lbnQgfSBmcm9tICcuLi90YWtlcmVtb3RlL3Rha2VyZW1vdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4vLyBpbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG4vLyBpbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1pbnN0YWxsYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnN0YWxsYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbnN0YWxsYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnN0YWxsYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIFNlbGVjdGVkVGFiOiBhbnkgPSAndGlja2V0JztcclxuICBzZWxlY3RlZElzc3VlOiBhbnkgPSAnSW50ZXJuZXQgSXNzdWVzJztcclxuICBwcmVyZXF1ZXN0RmFpbGVkOiBib29sZWFuID0gZmFsc2VcclxuICBzZWNvbmRhcnlJc3N1ZXM6IGFueTtcclxuICBpc3N1ZVN0YXR1czogYW55O1xyXG4gIGNvbW1lbnRzOiBhbnkgPSAnJztcclxuICBwcmltYXJ5SXNzdWVzOiBhbnk7XHJcbiAgZHJvcGRvd25JdGVtczogYW55W10gPSBbJ0ludGVybmV0IElzc3VlcycsICdDYW1lcmEgSXNzdWVzJywgJ1N5c3RlbSBJc3N1ZXMnLCAnT3RoZXJzJ107XHJcbiAgb3RoZXJzSXNzdWU6IGFueVtdID0gW3sgbmFtZTogJ1Bvd2VyIFNodXRkb3duJyB9LCB7IG5hbWU6ICdTdG9yZSBUZW1wb3JhcmlseSBDbG9zZWQnIH0sIHsgbmFtZTogJ0FwcGxpY2F0aW9uIElzc3VlcycgfV1cclxuICBjYW1lcmFJc3N1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhbWVyYVNlbGVjdFdvcms6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dTdWJtaXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNhbWVyYVNlbGVjdDogYW55O1xyXG4gIHN0YXRlOiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRIaWJlcm5hdGlvbjogYW55ID0gJzAwJztcclxuICBjb3VudDogYW55ID0gMDtcclxuICBpc0NoZWNrZWQ6IGJvb2xlYW5bXSA9IFtdO1xyXG4gIHJlc29sdmVkSXNzdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpY2tldElkOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRpY2tldEluZm86IGFueTtcclxuICBhY3RpdmVUaWNrZXREZXRhaWxzOiBhbnk7XHJcbiAgc3RvcmVBZGRyZXNzOiBhbnk7XHJcbiAgcmVwbHlPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVwbGllZElzc3VlOiBhbnk7XHJcbiAgdmlld1RpY2tldERhdGE6IGFueTtcclxuICBjdXJyZW50VGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgdGFyZ2V0VGltZTogRGF0ZVxyXG4gIHNlbGVjdGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGJyYW5kTG9nbzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuICBsYXN0TW9kaWZpZWREYXRlU3RyaW5nOiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBDb250ZW50JykgdG9vbHRpcENvbnRlbnQhOiBOZ2JUb29sdGlwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGhlYWRlckZpbHRlcjogYW55O1xyXG4gIHVzZXI6IGFueTtcclxuICB1cGRhdGVkRGF0ZTogRGF0ZTtcclxuICBpc0dyZWF0ZXJUaGFuNV8zMEhvdXJzOiBib29sZWFuO1xyXG4gIHN0b3JlSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgc3RvcmVEcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkT3B0aW9uOiBhbnk7XHJcbiAgSGliZXJuYXRpb246IGFueTtcclxuICBjbGllbnRJZDogYW55O1xyXG4gIGluc3RhbGxhdGlvblN0YXJ0OiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25maWd1cmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGluc3RhbGxhdGlvblJlc3VtZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dmb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVOYW1lOiBhbnk7XHJcbiAgbm90d29ya2luZ0NhbWFyYWxpc3Q6IGFueVtdID0gW107XHJcbiAgdXNlclR5cGU6IGFueTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50aWNrZXRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0aWNrZXRJZCcpO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3N0b3JlSWQnKTtcclxuICAgIHRoaXMudmlld1RpY2tldCgpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3RcclxuICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3BEb3duJykpIHtcclxuICAgICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLnN0b3JlRHJvcERvd24nKSkge1xyXG4gICAgICB0aGlzLnN0b3JlRHJvcERvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZVxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMudXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8IFwiXCIpXHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaWx0ZXIgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGlja2V0KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgdmlld1RpY2tldCgpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIHRpY2tldElkOiB0aGlzLnRpY2tldElkXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uudmlld1RpY2tldChwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG5cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aWNrZXRJbmZvID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgaWYgKHRoaXMudGlja2V0SW5mby50aWNrZXREZXRhaWxzLmluc3RhbGxhdGlvblN0YXR1cyA9PSAnaW5zdGFsbGF0aW9uZmFpbGVkJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGF0aW9uU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25SZXN1bWUgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRpY2tldEluZm8udGlja2V0RGV0YWlscy5pbnN0YWxsYXRpb25TdGF0dXMgPT0gJ3BhaXJlZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGF0aW9uU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25SZXN1bWUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSByZXMuZGF0YS50aWNrZXRBY3Rpdml0eS5zbGljZSgpLnJldmVyc2UoKTtcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEuZm9yRWFjaCgoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGUudGltZVN0YW1wID0gdGhpcy5nZXRSZWxhdGl2ZVRpbWUoZS50aW1lU3RhbXApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXMuZGF0YS50aWNrZXRBY3Rpdml0eS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmFjdGlvblR5cGUgPT0gJ3ByZXJlcXVlc3RjaGVja2ZhaWxlZCcgJiYgcmVzLmRhdGE/LnRpY2tldERldGFpbHM/Lmlzc3VlU3RhdHVzICE9ICdpZGVudGlmaWVkJykge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnByZXJlcXVlc3RGYWlsZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uc3RhdHVzID09ICdvcGVuJykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1c1VwZGF0ZSgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcblxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENhbWVyYUxpc3Qobm90d29ya2luZ0NhbWVyYTogYW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjYW1lcmE6IG5vdHdvcmtpbmdDYW1lcmFcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5nZXRDYW1lcmFMaXN0KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm5vdHdvcmtpbmdDYW1hcmFsaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdub3R3b3JraW5nQ2FtYXJhbGlzdCcsIHRoaXMubm90d29ya2luZ0NhbWFyYWxpc3QpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlSXNzdWUoKSB7XHJcbiAgICB0aGlzLnNob3dmb3JtID0gdHJ1ZVxyXG4gICAgdGhpcy5wcmltYXJ5UmVhc29uKCk7XHJcbiAgICB0aGlzLnNlY29uZGFyeVJlYXNvbih0aGlzLnNlbGVjdGVkSXNzdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVsYXRpdmVUaW1lKHRpbWVzdGFtcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnREYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIDEwMDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xyXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoaG91cnMgLyAyNCk7XHJcblxyXG4gICAgaWYgKGRheXMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXlzID09PSAxID8gJzEgZGF5IGFnbycgOiBgJHtkYXlzfSBkYXlzIGFnb2A7XHJcbiAgICB9IGVsc2UgaWYgKGhvdXJzID4gMCkge1xyXG4gICAgICByZXR1cm4gaG91cnMgPT09IDEgPyAnMSBob3VyIGFnbycgOiBgJHtob3Vyc30gaG91cnMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+IDApIHtcclxuICAgICAgcmV0dXJuIG1pbnV0ZXMgPT09IDEgPyAnMSBtaW51dGUgYWdvJyA6IGAke21pbnV0ZXN9IG1pbnV0ZXMgYWdvYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnSnVzdCBub3cnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWN0aXZlVGlja2V0KCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIHVzZXJJZDogdGhpcy51c2VyLl9pZCxcclxuICAgICAgaXNzdWVUeXBlOiBcImluc3RhbGxhdGlvblwiLFxyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uZW5kRGF0ZSxcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5hY3RpdmVUaWNrZXQoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGlja2V0RGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IHRoaXMuYWN0aXZlVGlja2V0RGV0YWlscz8uZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnN0b3JlSWQgPT09IHRoaXMuc3RvcmVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IHRoaXMuc3RvcmVBZGRyZXNzWzBdO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9LFxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRzdG9yZUFkZHJlc3MoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IGRldGFpbHNcclxuICAgIHRoaXMuc3RvcmVOYW1lID0gdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVOYW1lO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZFxyXG4gICAgdGhpcy5jbGllbnRJZCA9IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB0aGlzLnN0b3JlRHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMudGlja2V0SWQgPSBkZXRhaWxzLnRpY2tldElkXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGB0aWNrZXRzL3VzZXJzL2luc3RhbGxhdGlvbmluZm8vJHtkZXRhaWxzLnRpY2tldElkfS8ke2RldGFpbHMuc3RvcmVJZH1gKVxyXG4gICAgdGhpcy52aWV3VGlja2V0KCk7XHJcbiAgfVxyXG5cclxuICBQcmV2Um91dGUoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvdGlja2V0cy91c2Vycz90eXBlPWluc3RhbGxhdGlvbicpXHJcbiAgfVxyXG5cclxuICBwcmltYXJ5UmVhc29uKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgXCJuYW1lXCI6IHRoaXMuc2VsZWN0ZWRJc3N1ZSxcclxuICAgICAgXCJvcmRlclwiOiAyXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UucHJpbWFyeVJlYXNvbihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5wcmltYXJ5SXNzdWVzID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Vjb25kYXJ5UmVhc29uKHZhbHVlOiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7IFwicHJpbWFyeUlzc3VlXCI6IHZhbHVlIH1cclxuICAgIHRoaXMuc2VydmljZS5zZWNvbmRhcnlSZWFzb24ocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kYXJ5SXNzdWVzID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IoZXJyKSB7XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpY2tldCgpIHtcclxuICAgIHRoaXMuc2hvd2Zvcm0gPSBmYWxzZTtcclxuICAgIHRoaXMucHJlcmVxdWVzdEZhaWxlZCA9IGZhbHNlO1xyXG4gICAgbGV0IGRhdGFcclxuICAgIGlmICh0aGlzLnNlY29uZGFyeUlzc3VlcyAmJiB0aGlzLnNlY29uZGFyeUlzc3Vlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZElzc3VlID09ICdPdGhlcnMnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdBcHBsaWNhdGlvbiBJc3N1ZXMnKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSAnQXBwbGljYXRpb24gSXNzdWVzJztcclxuICAgICAgICAgIGRhdGEgPSBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gJ1N0b3JlIE9wZXJhdGlvbiBJc3N1ZXMnO1xyXG4gICAgICAgICAgZGF0YSA9IFt0aGlzLnNlbGVjdGVkT3B0aW9uXVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBkYXRhID0gdGhpcy5vdGhlcnNJc3N1ZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5jaGVja2VkKS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5uYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhID0gdGhpcy5zZWNvbmRhcnlJc3N1ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uY2hlY2tlZCkubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uICE9ICdBcHBsaWNhdGlvbiBJc3N1ZXMnKSB7XHJcbiAgICBpZih0aGlzLnRpY2tldEluZm8/LnRpY2tldERldGFpbHMuaXNzdWVTdGF0dXMgPT09J25vdGlkZW50aWZpZWQnJiZkYXRhJiZkYXRhLmxlbmd0aD09MHx8dGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzPT09J25vdGlkZW50aWZpZWQnJiZkYXRhJiZkYXRhLmxlbmd0aD09MCl7XHJcbiAgICAgIHJldHVybiAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBTZWxlY3QgSXNzdWVzXCIpXHJcbiAgICB9ZWxzZSBpZih0aGlzLnRpY2tldEluZm8/LnRpY2tldERldGFpbHMuaXNzdWVTdGF0dXMgPT09J2lkZW50aWZpZWQnJiZ0aGlzLmNvbW1lbnRzID09Jyd8fHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy50aWNrZXRUeXBlPT0ncmVmcmVzaHRpY2tldCcmJnRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8ucmVmcmVzaFRpY2tldFN0YXR1cz09PSdpZGVudGlmaWVkJyYmdGhpcy5jb21tZW50cz09MCl7XHJcbiAgICAgIHJldHVybiAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBFbnRlciBDb21tZW50c1wiKVxyXG4gICAgfVxyXG4gIH1cclxuICAgIGxldCB0aWNrZXREZXRhaWxzID0ge1xyXG4gICAgICBcInRpY2tldElkXCI6IHRoaXMudGlja2V0SWQsXHJcbiAgICAgIFwicHJpbWFyeVwiOiB0aGlzLnNlbGVjdGVkSXNzdWUsXHJcbiAgICAgIFwic2Vjb25kYXJ5XCI6IGRhdGEsXHJcbiAgICAgIFwiY29tbWVudFwiOiB0aGlzLmNvbW1lbnRzXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlVGlja2V0KHRpY2tldERldGFpbHMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgdGhpcy52aWV3VGlja2V0KClcclxuICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAnJ1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gW11cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdHVzVXBkYXRlKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIFwidGlja2V0SWRcIjogdGhpcy50aWNrZXRJZCxcclxuICAgICAgXCJzdGF0dXNcIjogXCJpbnByb2dyZXNzXCJcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5zdGF0dXNVcGRhdGUoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFkZENvbW1lbnQoKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRzID0gdGhpcy5jb21tZW50c1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlXHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2Vjb25kYXJ5UmVhc29uKHRoaXMuc2VsZWN0ZWRJc3N1ZSlcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkSXNzdWUgPT0gJ0NhbWVyYSBJc3N1ZXMnKSB7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ym1pdCA9IGZhbHNlXHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG4gIGRvd25sb2FkaW1hZ2UodXJsOiBhbnkpIHtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gdXJsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgIGEuY2xpY2soKTtcclxuICB9XHJcbiAgb3BlblJlbW90ZSgpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUYWtlcmVtb3RlQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzY3JvbGxhYmxlOiB0cnVlLCB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlRGV0YWlscyA9IHtcclxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlQWRkcmVzcz8uc3RvcmVOYW1lLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5zdG9yZUFkZHJlc3M/LmNsaWVudElkLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlQWRkcmVzcz8uc3RvcmVJZFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FtZXJhU2VsZWN0ZWQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFTZWxlY3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByb2NlZGRJbWFnZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5jYW1lcmFJc3N1ZSA9IHRydWU7XHJcbiAgICB0aGlzLmNhbWVyYVNlbGVjdFdvcmsgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIFNlbGVjdGVkVGFicyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDaGVja2JveChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlY29uZGFyeUlzc3Vlc1tpbmRleF0uY2hlY2tlZCA9ICF0aGlzLnNlY29uZGFyeUlzc3Vlc1tpbmRleF0uY2hlY2tlZDtcclxuICB9XHJcbiAgdG9nZ2xlUmFkaW9ib3gob3RoZXJzOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvdGhlcnMubmFtZTtcclxuICB9XHJcbiAgZGVjcmVzZUNvdW50KCk6IGFueSB7XHJcbiAgICB0aGlzLmNvdW50IC09IDE7XHJcbiAgfVxyXG5cclxuICBpbmNyZWFzZUNvdW50KCk6IGFueSB7XHJcbiAgICB0aGlzLmNvdW50ICs9IDE7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29udGFjdCgpIHtcclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ29udGFjdERldGFpbHNDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB9LFxyXG5cclxuICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcbiAgc3RvcmVDaGFuZ2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gIXRoaXMuc3RvcmVEcm9wRG93bjtcclxuICB9XHJcbiAgb3BlbkZpbGVJbnB1dCgpIHtcclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbaV07XHJcbiAgICAgICAgaWYgKCFmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ09ubHkgaW1hZ2UgZmlsZXMgYXJlIGFsbG93ZWQhJztcclxuICAgICAgICAgIHJldHVybjsgLy8gU3RvcCBmdXJ0aGVyIHByb2Nlc3NpbmdcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdpbWcnLCBmaWxlKTtcclxuICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVzLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgIHVybDogZS50YXJnZXQucmVzdWx0LFxyXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWREYXRlU3RyaW5nOiBuZXcgRGF0ZShmaWxlLmxhc3RNb2RpZmllZCkudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS51cGxvYWRBdHRhY2htZW50cyh0aGlzLnRpY2tldElkLCBmb3JtRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMudmlld1RpY2tldCgpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZVRvb2x0aXAoKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29udGVudCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBDb250ZW50LmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDb250ZW50KSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRJbnN0YWxsYXRpb24oKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvdGlja2V0cy91c2Vycy9pbnN0YWxsYXRpb25pbmZvL2VkZ2UtYXBwL2VkZ2UtZW1haWwtam91cm5leVwiXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsIHRpY2tldElkOiB0aGlzLnRpY2tldElkIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgQ29uZmlndXJpbmcoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvdGlja2V0cy91c2Vycy9pbnN0YWxsYXRpb25pbmZvL2VkZ2UtYXBwL2VkZ2UtaW5zdGFsbGF0aW9uXCJdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCwgdGlja2V0SWQ6IHRoaXMudGlja2V0SWQgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlc3VtZUluc3RhbGxhdGlvbigpIHtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3RvcmUodGhpcy50aWNrZXRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi90aWNrZXRzL3VzZXJzL2luc3RhbGxhdGlvbmluZm8vZWRnZS1hcHAvZWRnZS1pbnN0YWxsYXRpb25cIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgc3RvcmVJZDogdGhpcy5zdG9yZUlkLCB0aWNrZXRJZDogdGhpcy50aWNrZXRJZCB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYi01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgYmctd2hpdGUgcHgtMyBweS0yIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cIndpZHRoOiBmaXQtY29udGVudDtcIiAoY2xpY2spPVwiUHJldlJvdXRlKClcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi44MzI3IDYuOTk5MzVIMS4xNjYwMk0xLjE2NjAyIDYuOTk5MzVMNi45OTkzNSAxMi44MzI3TTEuMTY2MDIgNi45OTkzNUw2Ljk5OTM1IDEuMTY2MDJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1zZW1pYm9sZCBzdG9yZS1sYWJlbFwiPiB7e3N0b3JlSWR9fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzdG9yZUFkZHJlc3M/LmFkZHJlc3NcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgc3RvcmUtbGFiZWxcIj4gfFxyXG4gICAgICAgICAgICB7e3N0b3JlQWRkcmVzcz8uYWRkcmVzc319IDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj4ge3thY3RpdmVUaWNrZXREZXRhaWxzPy5jb3VudH19IHt7c3RvcmVBZGRyZXNzPy5zdGF0dXN9fTwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgcHMtM1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3RvcmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3tzdG9yZUlkID8gc3RvcmVJZCA6IHN0b3JlQWRkcmVzcz8uc3RvcmVJZH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlRHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB6LTEgdy0yMDBweCBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTBweCBlbmQtMCBoLTMwMHB4IG92ZXJmbG93LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBhY3RpdmVUaWNrZXREZXRhaWxzPy5kYXRhXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInN0b3JlQWRkcmVzcz8uc3RvcmVJZCA9PT0gZGV0YWlscz8uc3RvcmVJZCA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwiZ2V0c3RvcmVBZGRyZXNzKGRldGFpbHMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0YWlscz8uc3RvcmVJZH19PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWwgbWItMiBmdy1zZW1pYm9sZFwiPnt7dGlja2V0SWR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YiBmdy1ib2xkIG1iLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zODc3Xzk2NTUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04IDFWM000IDFWM00xLjUgNUgxMC41TTIuNSAySDkuNUMxMC4wNTIzIDIgMTAuNSAyLjQ0NzcyIDEwLjUgM1YxMEMxMC41IDEwLjU1MjMgMTAuMDUyMyAxMSA5LjUgMTFIMi41QzEuOTQ3NzIgMTEgMS41IDEwLjU1MjMgMS41IDEwVjNDMS41IDIuNDQ3NzIgMS45NDc3MiAyIDIuNSAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfOTY1NTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+IHt7IHRpY2tldEluZm8/LmNyZWF0ZWRBdHxjdXN0b21EYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbGxhdGlvblN0YXJ0JiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTIwIG1lLTIgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnRJbnN0YWxsYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBJbnN0YWxsYXRpb24gPHN2ZyBjbGFzcz1cIm1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03LjUgMTVMMTIuNSAxMEw3LjUgNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbmZpZ3VyaW5nJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTIwIG1lLTIgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ29uZmlndXJpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmluZyA8c3ZnIGNsYXNzPVwibXMtMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzcxNDhfMTc2MDgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDAzIDEuNjY2NzVWNS4wMDAwOE0xMC4wMDAzIDE1LjAwMDFWMTguMzMzNE00LjEwODY2IDQuMTA4NDFMNi40NjY5OSA2LjQ2Njc1TTEzLjUzMzcgMTMuNTMzNEwxNS44OTIgMTUuODkxN00xLjY2Njk5IDEwLjAwMDFINS4wMDAzM00xNS4wMDAzIDEwLjAwMDFIMTguMzMzN000LjEwODY2IDE1Ljg5MTdMNi40NjY5OSAxMy41MzM0TTEzLjUzMzcgNi40NjY3NUwxNS44OTIgNC4xMDg0MVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83MTQ4XzE3NjA4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbGxhdGlvblJlc3VtZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBweC0xNSBtZS0yIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc3VtZUluc3RhbGxhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VtZSBJbnN0YWxsYXRpb24gPHN2ZyBjbGFzcz1cIm1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03LjUgMTVMMTIuNSAxMEw3LjUgNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Db250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM4NzdfMTAyMjAzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNTQxNSA0LjE2NjU5QzEzLjM1NTUgNC4zMjUzOSAxNC4xMDM1IDQuNzIzNDcgMTQuNjg5OSA1LjMwOTg2QzE1LjI3NjMgNS44OTYyNiAxNS42NzQ0IDYuNjQ0MzEgMTUuODMzMiA3LjQ1ODI1TTEyLjU0MTUgMC44MzMyNTJDMTQuMjMyNiAxLjAyMTEyIDE1LjgwOTUgMS43Nzg0IDE3LjAxMzQgMi45ODA3NkMxOC4yMTczIDQuMTgzMTIgMTguOTc2NSA1Ljc1OTA5IDE5LjE2NjUgNy40NDk5Mk0xOC4zMzMyIDE0LjA5OTlWMTYuNTk5OUMxOC4zMzQxIDE2LjgzMiAxOC4yODY2IDE3LjA2MTcgMTguMTkzNiAxNy4yNzQ0QzE4LjEwMDYgMTcuNDg3IDE3Ljk2NDMgMTcuNjc3OSAxNy43OTMzIDE3LjgzNDhDMTcuNjIyMiAxNy45OTE3IDE3LjQyMDMgMTguMTExMiAxNy4yMDA1IDE4LjE4NTVDMTYuOTgwNiAxOC4yNTk5IDE2Ljc0NzcgMTguMjg3NSAxNi41MTY1IDE4LjI2NjZDMTMuOTUyMiAxNy45ODggMTEuNDg5IDE3LjExMTcgOS4zMjQ4NiAxNS43MDgzQzcuMzExMzkgMTQuNDI4OCA1LjYwNDMxIDEyLjcyMTcgNC4zMjQ4NiAxMC43MDgzQzIuOTE2NTEgOC41MzQyNiAyLjA0MDA3IDYuMDU5MDggMS43NjY1MyAzLjQ4MzI1QzEuNzQ1NyAzLjI1MjgxIDEuNzczMDkgMy4wMjA1NSAxLjg0Njk1IDIuODAxMjdDMS45MjA4IDIuNTgxOTkgMi4wMzk1MSAyLjM4MDQ5IDIuMTk1NSAyLjIwOTZDMi4zNTE1IDIuMDM4NzEgMi41NDEzNyAxLjkwMjE4IDIuNzUzMDIgMS44MDg2OUMyLjk2NDY4IDEuNzE1MiAzLjE5MzQ4IDEuNjY2OCAzLjQyNDg2IDEuNjY2NTlINS45MjQ4NkM2LjMyOTI4IDEuNjYyNiA2LjcyMTM2IDEuODA1ODIgNy4wMjggMi4wNjk1M0M3LjMzNDY0IDIuMzMzMjQgNy41MzQ5MyAyLjY5OTQ2IDcuNTkxNTMgMy4wOTk5MkM3LjY5NzA1IDMuODk5OTcgNy44OTI3NCA0LjY4NTUyIDguMTc0ODYgNS40NDE1OUM4LjI4Njk4IDUuNzM5ODYgOC4zMTEyNSA2LjA2NDAxIDguMjQ0NzggNi4zNzU2NUM4LjE3ODMyIDYuNjg3MjkgOC4wMjM5MiA2Ljk3MzM0IDcuNzk5ODYgNy4xOTk5Mkw2Ljc0MTUzIDguMjU4MjVDNy45Mjc4MyAxMC4zNDQ1IDkuNjU1MjQgMTIuMDcyIDExLjc0MTUgMTMuMjU4M0wxMi43OTk5IDEyLjE5OTlDMTMuMDI2NCAxMS45NzU5IDEzLjMxMjUgMTEuODIxNSAxMy42MjQxIDExLjc1NUMxMy45MzU4IDExLjY4ODUgMTQuMjU5OSAxMS43MTI4IDE0LjU1ODIgMTEuODI0OUMxNS4zMTQzIDEyLjEwNyAxNi4wOTk4IDEyLjMwMjcgMTYuODk5OSAxMi40MDgzQzE3LjMwNDcgMTIuNDY1NCAxNy42NzQ0IDEyLjY2OTMgMTcuOTM4NiAxMi45ODEyQzE4LjIwMjkgMTMuMjkzMSAxOC4zNDMzIDEzLjY5MTIgMTguMzMzMiAxNC4wOTk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfMTAyMjAzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkNvbnRhY3QgRGV0YWlsczwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5SZW1vdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZGVza3RvcC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3QgUmVtb3RlbHk8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJlcmVxdWVzdEZhaWxlZCYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdFwiIGNsYXNzPVwiaW5zdGFsLWZhaWxlZCBtYi01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvX0ZpbGUgdXBsb2FkIGljb24uc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi10ZXh0XCI+SW50YWxsYXRpb24gRmFpbGVkIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+UGxlYXNlIGVudGVyIHRoZSByZWFzb24gYmVoaW5kIHRoZSBpbnN0YWxsYXRpb24gZmFpbGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInVwZGF0ZUlzc3VlKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGUgSXNzdWVcclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wZW5lZGlzc3VlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjEgMTJDMjEgNy4wMjkzIDE2Ljk3MDcgMyAxMiAzQzcuMDI5MyAzIDMgNy4wMjkzIDMgMTJDMyAxNi45NzA3IDcuMDI5MyAyMSAxMiAyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi45IDMuMDQ1MDRDMTIuOSAzLjA0NTA0IDE1LjYgNi42MDAwNCAxNS42IDEyTDEyLjkgMy4wNDUwNFpNMTEuMSAyMC45NTVDMTEuMSAyMC45NTUgOC40IDE3LjQgOC40IDEyQzguNCA2LjYwMDA0IDExLjEgMy4wNDUwNCAxMS4xIDMuMDQ1MDRNMy41NjcgMTUuMTVIMTJIMy41NjdaTTMuNTY3IDguODUwMDRIMjAuNDMzSDMuNTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC44OTExIDE3LjMyNTJDMjEuMzM1NyAxNy41OTg4IDIxLjMwNzggMTguMjYzOSAyMC44NTA2IDE4LjMxNjFMMTguNTQwMyAxOC41NzhMMTcuNTA0NCAyMC42NTg4QzE3LjI5OTIgMjEuMDcxOSAxNi42NjQ3IDIwLjg2OTQgMTYuNTU5NCAyMC4zNTgyTDE1LjQyOTkgMTQuODUzOEMxNS4zNDA4IDE0LjQyMTggMTUuNzI5NiAxNC4xNSAxNi4xMDQ5IDE0LjM4MTNMMjAuODkxMSAxNy4zMjUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC4yNSAxMkMyMC4yNSAxMi40MTQyIDIwLjU4NTggMTIuNzUgMjEgMTIuNzVDMjEuNDE0MiAxMi43NSAyMS43NSAxMi40MTQyIDIxLjc1IDEySDIwLjI1Wk0xMiAyMS43NUMxMi40MTQyIDIxLjc1IDEyLjc1IDIxLjQxNDIgMTIuNzUgMjFDMTIuNzUgMjAuNTg1OCAxMi40MTQyIDIwLjI1IDEyIDIwLjI1VjIxLjc1Wk0xMy40OTczIDIuNTkxNDJDMTMuMjQ2NyAyLjI2MTU2IDEyLjc3NjIgMi4xOTcyNSAxMi40NDY0IDIuNDQ3NzhDMTIuMTE2NSAyLjY5ODMgMTIuMDUyMiAzLjE2ODggMTIuMzAyNyAzLjQ5ODY2TDEzLjQ5NzMgMi41OTE0MlpNMTQuODUgMTJDMTQuODUgMTIuNDE0MyAxNS4xODU4IDEyLjc1IDE1LjYgMTIuNzVDMTYuMDE0MiAxMi43NSAxNi4zNSAxMi40MTQzIDE2LjM1IDEySDE0Ljg1Wk0xMC41MDI3IDIxLjQwODdDMTAuNzUzMyAyMS43Mzg1IDExLjIyMzggMjEuODAyOCAxMS41NTM2IDIxLjU1MjNDMTEuODgzNSAyMS4zMDE4IDExLjk0NzggMjAuODMxMyAxMS42OTczIDIwLjUwMTRMMTAuNTAyNyAyMS40MDg3Wk0xMS42OTczIDMuNDk4NjZDMTEuOTQ3OCAzLjE2ODggMTEuODgzNSAyLjY5ODMgMTEuNTUzNiAyLjQ0Nzc4QzExLjIyMzggMi4xOTcyNSAxMC43NTMzIDIuMjYxNTYgMTAuNTAyNyAyLjU5MTQyTDExLjY5NzMgMy40OTg2NlpNMy41NjcgMTQuNEMzLjE1Mjc5IDE0LjQgMi44MTcgMTQuNzM1OCAyLjgxNyAxNS4xNUMyLjgxNyAxNS41NjQzIDMuMTUyNzkgMTUuOSAzLjU2NyAxNS45VjE0LjRaTTEyIDE1LjlDMTIuNDE0MiAxNS45IDEyLjc1IDE1LjU2NDMgMTIuNzUgMTUuMTVDMTIuNzUgMTQuNzM1OCAxMi40MTQyIDE0LjQgMTIgMTQuNFYxNS45Wk0zLjU2NyA4LjEwMDA0QzMuMTUyNzkgOC4xMDAwNCAyLjgxNyA4LjQzNTgzIDIuODE3IDguODUwMDRDMi44MTcgOS4yNjQyNiAzLjE1Mjc5IDkuNjAwMDQgMy41NjcgOS42MDAwNFY4LjEwMDA0Wk0yMC40MzMgOS42MDAwNEMyMC44NDcyIDkuNjAwMDQgMjEuMTgzIDkuMjY0MjYgMjEuMTgzIDguODUwMDRDMjEuMTgzIDguNDM1ODMgMjAuODQ3MiA4LjEwMDA0IDIwLjQzMyA4LjEwMDA0VjkuNjAwMDRaTTIwLjg5MTEgMTcuMzI1MkwyMS4yODQyIDE2LjY4NjVMMjEuMjg0IDE2LjY4NjRMMjAuODkxMSAxNy4zMjUyWk0yMC44NTA2IDE4LjMxNjFMMjAuOTM1MSAxOS4wNjEzTDIwLjkzNTcgMTkuMDYxM0wyMC44NTA2IDE4LjMxNjFaTTE4LjU0MDMgMTguNTc4TDE4LjQ1NTggMTcuODMyOEwxOC4wNTA2IDE3Ljg3ODdMMTcuODY4OSAxOC4yNDM4TDE4LjU0MDMgMTguNTc4Wk0xNy41MDQ0IDIwLjY1ODhMMTYuODMzIDIwLjMyNDZMMTYuODMyNyAyMC4zMjUyTDE3LjUwNDQgMjAuNjU4OFpNMTYuNTU5NCAyMC4zNTgyTDE1LjgyNDcgMjAuNTA5TDE1LjgyNDggMjAuNTA5NUwxNi41NTk0IDIwLjM1ODJaTTE1LjQyOTkgMTQuODUzOEwxNi4xNjQ2IDE0LjcwM0wxNi4xNjQ0IDE0LjcwMjNMMTUuNDI5OSAxNC44NTM4Wk0xNi4xMDQ5IDE0LjM4MTNMMTUuNzExNCAxNS4wMTk4TDE1LjcxMiAxNS4wMjAxTDE2LjEwNDkgMTQuMzgxM1pNMjEuNzUgMTJDMjEuNzUgNi42MTUwOSAxNy4zODQ5IDIuMjUgMTIgMi4yNVYzLjc1QzE2LjU1NjUgMy43NSAyMC4yNSA3LjQ0MzUxIDIwLjI1IDEySDIxLjc1Wk0xMiAyLjI1QzYuNjE1MDkgMi4yNSAyLjI1IDYuNjE1MDkgMi4yNSAxMkgzLjc1QzMuNzUgNy40NDM1MSA3LjQ0MzUxIDMuNzUgMTIgMy43NVYyLjI1Wk0yLjI1IDEyQzIuMjUgMTcuMzg0OSA2LjYxNTA5IDIxLjc1IDEyIDIxLjc1VjIwLjI1QzcuNDQzNTEgMjAuMjUgMy43NSAxNi41NTY1IDMuNzUgMTJIMi4yNVpNMTIuOSAzLjA0NTA0QzEyLjMwMjcgMy40OTg2NiAxMi4zMDI2IDMuNDk4NDYgMTIuMzAyNCAzLjQ5ODI4QzEyLjMwMjQgMy40OTgyMyAxMi4zMDIzIDMuNDk4MDYgMTIuMzAyMiAzLjQ5Nzk3QzEyLjMwMjEgMy40OTc3OSAxMi4zMDIgMy40OTc2NyAxMi4zMDE5IDMuNDk3NkMxMi4zMDE4IDMuNDk3NDYgMTIuMzAxOSAzLjQ5NzUzIDEyLjMwMjEgMy40OTc4MUMxMi4zMDI1IDMuNDk4MzggMTIuMzAzNiAzLjQ5OTggMTIuMzA1MyAzLjUwMjA2QzEyLjMwODYgMy41MDY1OCAxMi4zMTQ0IDMuNTE0NDcgMTIuMzIyNSAzLjUyNTY3QzEyLjMzODcgMy41NDgwOSAxMi4zNjQxIDMuNTgzNzUgMTIuMzk3MyAzLjYzMjI2QzEyLjQ2MzggMy43MjkyOSAxMi41NjE2IDMuODc3NTIgMTIuNjgwNSA0LjA3MzYxQzEyLjkxODMgNC40NjYwNiAxMy4yMzkzIDUuMDQ4NjMgMTMuNTYxNCA1Ljc5NDc4QzE0LjIwNjEgNy4yODgzNyAxNC44NSA5LjQyNTI2IDE0Ljg1IDEySDE2LjM1QzE2LjM1IDkuMTc0ODMgMTUuNjQzOSA2LjgzNDIyIDE0LjkzODYgNS4yMDAzMUMxNC41ODU3IDQuMzgyNzEgMTQuMjMxNyAzLjczOTAyIDEzLjk2MzMgMy4yOTYxNkMxMy44MjkgMy4wNzQ2IDEzLjcxNTkgMi45MDI5MSAxMy42MzQ3IDIuNzg0NDNDMTMuNTk0MSAyLjcyNTE4IDEzLjU2MTUgMi42NzkyIDEzLjUzODEgMi42NDY5QzEzLjUyNjUgMi42MzA3NSAxMy41MTcxIDIuNjE4MDIgMTMuNTEwMiAyLjYwODc2QzEzLjUwNjggMi42MDQxMyAxMy41MDQgMi42MDAzNiAxMy41MDE4IDIuNTk3NDdDMTMuNTAwNyAyLjU5NjAyIDEzLjQ5OTggMi41OTQ4IDEzLjQ5OTEgMi41OTM3OUMxMy40OTg3IDIuNTkzMjkgMTMuNDk4MyAyLjU5Mjg0IDEzLjQ5OCAyLjU5MjQ0QzEzLjQ5NzkgMi41OTIyNCAxMy40OTc3IDIuNTkxOTkgMTMuNDk3NiAyLjU5MTg5QzEzLjQ5NzQgMi41OTE2NSAxMy40OTczIDIuNTkxNDIgMTIuOSAzLjA0NTA0Wk0xMS4xIDIwLjk1NUMxMS42OTczIDIwLjUwMTQgMTEuNjk3NCAyMC41MDE2IDExLjY5NzYgMjAuNTAxOEMxMS42OTc2IDIwLjUwMTkgMTEuNjk3NyAyMC41MDIgMTEuNjk3OCAyMC41MDIxQzExLjY5NzkgMjAuNTAyMyAxMS42OTggMjAuNTAyNCAxMS42OTgxIDIwLjUwMjVDMTEuNjk4MiAyMC41MDI2IDExLjY5ODEgMjAuNTAyNiAxMS42OTc5IDIwLjUwMjNDMTEuNjk3NSAyMC41MDE3IDExLjY5NjQgMjAuNTAwMyAxMS42OTQ4IDIwLjQ5OEMxMS42OTE0IDIwLjQ5MzUgMTEuNjg1NiAyMC40ODU2IDExLjY3NzUgMjAuNDc0NEMxMS42NjEzIDIwLjQ1MiAxMS42MzU5IDIwLjQxNjMgMTEuNjAyNyAyMC4zNjc4QzExLjUzNjIgMjAuMjcwOCAxMS40Mzg0IDIwLjEyMjYgMTEuMzE5NSAxOS45MjY1QzExLjA4MTcgMTkuNTM0IDEwLjc2MDcgMTguOTUxNSAxMC40Mzg2IDE4LjIwNTNDOS43OTM4OCAxNi43MTE3IDkuMTUgMTQuNTc0OCA5LjE1IDEySDcuNjVDNy42NSAxNC44MjUzIDguMzU2MTMgMTcuMTY1OSA5LjA2MTQyIDE4Ljc5OThDOS40MTQzNCAxOS42MTc0IDkuNzY4MzMgMjAuMjYxMSAxMC4wMzY3IDIwLjcwMzlDMTAuMTcxIDIwLjkyNTUgMTAuMjg0MSAyMS4wOTcyIDEwLjM2NTMgMjEuMjE1N0MxMC40MDU5IDIxLjI3NDkgMTAuNDM4NSAyMS4zMjA5IDEwLjQ2MTkgMjEuMzUzMkMxMC40NzM1IDIxLjM2OTMgMTAuNDgyOSAyMS4zODIxIDEwLjQ4OTggMjEuMzkxM0MxMC40OTMyIDIxLjM5NiAxMC40OTYgMjEuMzk5NyAxMC40OTgyIDIxLjQwMjZDMTAuNDk5MyAyMS40MDQxIDEwLjUwMDIgMjEuNDA1MyAxMC41MDA5IDIxLjQwNjNDMTAuNTAxMyAyMS40MDY4IDEwLjUwMTcgMjEuNDA3MyAxMC41MDIgMjEuNDA3NkMxMC41MDIxIDIxLjQwNzggMTAuNTAyMyAyMS40MDgxIDEwLjUwMjQgMjEuNDA4MkMxMC41MDI2IDIxLjQwODQgMTAuNTAyNyAyMS40MDg3IDExLjEgMjAuOTU1Wk05LjE1IDEyQzkuMTUgOS40MjUyNiA5Ljc5Mzg4IDcuMjg4MzcgMTAuNDM4NiA1Ljc5NDc4QzEwLjc2MDcgNS4wNDg2MyAxMS4wODE3IDQuNDY2MDYgMTEuMzE5NSA0LjA3MzYxQzExLjQzODQgMy44Nzc1MiAxMS41MzYyIDMuNzI5MjkgMTEuNjAyNyAzLjYzMjI2QzExLjYzNTkgMy41ODM3NSAxMS42NjEzIDMuNTQ4MDkgMTEuNjc3NSAzLjUyNTY3QzExLjY4NTYgMy41MTQ0NyAxMS42OTE0IDMuNTA2NTggMTEuNjk0OCAzLjUwMjA2QzExLjY5NjQgMy40OTk4IDExLjY5NzUgMy40OTgzOCAxMS42OTc5IDMuNDk3ODFDMTEuNjk4MSAzLjQ5NzUzIDExLjY5ODIgMy40OTc0NiAxMS42OTgxIDMuNDk3NkMxMS42OTggMy40OTc2NyAxMS42OTc5IDMuNDk3NzkgMTEuNjk3OCAzLjQ5Nzk3QzExLjY5NzcgMy40OTgwNiAxMS42OTc2IDMuNDk4MjMgMTEuNjk3NiAzLjQ5ODI4QzExLjY5NzQgMy40OTg0NiAxMS42OTczIDMuNDk4NjYgMTEuMSAzLjA0NTA0QzEwLjUwMjcgMi41OTE0MiAxMC41MDI2IDIuNTkxNjUgMTAuNTAyNCAyLjU5MTg5QzEwLjUwMjMgMi41OTE5OSAxMC41MDIxIDIuNTkyMjQgMTAuNTAyIDIuNTkyNDRDMTAuNTAxNyAyLjU5Mjg0IDEwLjUwMTMgMi41OTMyOSAxMC41MDA5IDIuNTkzNzlDMTAuNTAwMiAyLjU5NDggMTAuNDk5MyAyLjU5NjAyIDEwLjQ5ODIgMi41OTc0N0MxMC40OTYgMi42MDAzNiAxMC40OTMyIDIuNjA0MTMgMTAuNDg5OCAyLjYwODc2QzEwLjQ4MjkgMi42MTgwMiAxMC40NzM1IDIuNjMwNzUgMTAuNDYxOSAyLjY0NjlDMTAuNDM4NSAyLjY3OTIgMTAuNDA1OSAyLjcyNTE4IDEwLjM2NTMgMi43ODQ0M0MxMC4yODQxIDIuOTAyOTEgMTAuMTcxIDMuMDc0NiAxMC4wMzY3IDMuMjk2MTZDOS43NjgzMyAzLjczOTAyIDkuNDE0MzQgNC4zODI3MSA5LjA2MTQyIDUuMjAwMzFDOC4zNTYxMyA2LjgzNDIyIDcuNjUgOS4xNzQ4MyA3LjY1IDEySDkuMTVaTTMuNTY3IDE1LjlIMTJWMTQuNEgzLjU2N1YxNS45Wk0zLjU2NyA5LjYwMDA0SDIwLjQzM1Y4LjEwMDA0SDMuNTY3VjkuNjAwMDRaTTIwLjQ5OCAxNy45NjM5QzIwLjQ3OTIgMTcuOTUyNCAyMC40NTc1IDE3LjkyNTIgMjAuNDU5NyAxNy44NzI3QzIwLjQ2MDkgMTcuODQzNCAyMC40NzE1IDE3Ljc3NzIgMjAuNTI5NyAxNy43MDU0QzIwLjU5NjEgMTcuNjIzNSAyMC42ODg5IDE3LjU3OTcgMjAuNzY1NSAxNy41NzA5TDIwLjkzNTcgMTkuMDYxM0MyMS42MTY3IDE4Ljk4MzUgMjEuOTM4NCAxOC40MTc5IDIxLjk1ODQgMTcuOTM0NkMyMS45Nzc2IDE3LjQ2ODIgMjEuNzQ3NiAxNi45NzE3IDIxLjI4NDIgMTYuNjg2NUwyMC40OTggMTcuOTYzOVpNMjAuNzY2MSAxNy41NzA5TDE4LjQ1NTggMTcuODMyOEwxOC42MjQ4IDE5LjMyMzJMMjAuOTM1MSAxOS4wNjEzTDIwLjc2NjEgMTcuNTcwOVpNMTcuODY4OSAxOC4yNDM4TDE2LjgzMyAyMC4zMjQ2TDE4LjE3NTggMjAuOTkzMUwxOS4yMTE3IDE4LjkxMjNMMTcuODY4OSAxOC4yNDM4Wk0xNi44MzI3IDIwLjMyNTJDMTYuODY2OCAyMC4yNTY1IDE2LjkzOTUgMjAuMTgzOSAxNy4wMzk4IDIwLjE0OTJDMTcuMTI3NyAyMC4xMTg4IDE3LjE5NCAyMC4xMzE2IDE3LjIyMjEgMjAuMTQwNUMxNy4yNzIgMjAuMTU2NCAxNy4yODk2IDIwLjE4NTcgMTcuMjk0IDIwLjIwNjlMMTUuODI0OCAyMC41MDk1QzE1LjkzNDUgMjEuMDQxOSAxNi4zMjIgMjEuNDI4MSAxNi43NjY4IDIxLjU2OTdDMTcuMjI4NiAyMS43MTY4IDE3Ljg3MDcgMjEuNjA3MyAxOC4xNzYxIDIwLjk5MjVMMTYuODMyNyAyMC4zMjUyWk0xNy4yOTQxIDIwLjIwNzRMMTYuMTY0NiAxNC43MDNMMTQuNjk1MiAxNS4wMDQ2TDE1LjgyNDcgMjAuNTA5TDE3LjI5NDEgMjAuMjA3NFpNMTYuMTY0NCAxNC43MDIzQzE2LjE3MjMgMTQuNzQwNiAxNi4xNjY2IDE0Ljg4MyAxNi4wMjMyIDE0Ljk4MzNDMTUuODggMTUuMDgzNSAxNS43NDQ2IDE1LjA0MDIgMTUuNzExNCAxNS4wMTk4TDE2LjQ5ODQgMTMuNzQyOEMxNi4wODk5IDEzLjQ5MTEgMTUuNTcyNCAxMy40NjggMTUuMTYzMyAxMy43NTQzQzE0Ljc1NCAxNC4wNDA3IDE0LjU5ODQgMTQuNTM1IDE0LjY5NTQgMTUuMDA1M0wxNi4xNjQ0IDE0LjcwMjNaTTE1LjcxMiAxNS4wMjAxTDIwLjQ5ODIgMTcuOTY0TDIxLjI4NCAxNi42ODY0TDE2LjQ5NzggMTMuNzQyNUwxNS43MTIgMTUuMDIwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tzZWxlY3RlZElzc3VlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJjaG9vc2Vhbmlzc3VlKCcnKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgY3Vyc29yLXBvaW50ZXIgYmctd2hpdGUgcHgtMyBweS0yXCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTIwMHB4IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRyb3Bkb3duSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuc2VsZWN0ZWRJc3N1ZSA9PT0gaXRlbSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdJbnRlcm5ldCBJc3N1ZXMnfHxzZWxlY3RlZElzc3VlID09PSAnQ2FtZXJhIElzc3Vlcyd8fHNlbGVjdGVkSXNzdWUgPT09ICdTeXN0ZW0gSXNzdWVzJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMlwiICpuZ0lmPVwic2Vjb25kYXJ5SXNzdWVzPy5sZW5ndGg+MFwiPiBQbGVhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsZXZhbnQgcHJvYmxlbSBmYWNpbmcgZnJvbSB0aGUgZm9sbG93aW5nIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2Ygc2Vjb25kYXJ5SXNzdWVzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgbXQtMiBweC00IHB5LTQgY3Vyc29yLXBvaW50ZXIgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGltZyBjbGFzcz1cInBlLTNcIiBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy9GZWF0dXJlZCBpY29uLnBuZyc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0XCI+e3tpc3N1ZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMzAwcHhcIiBbbmdiVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudFwiIHRyaWdnZXJzPVwibW91c2VlbnRlcjptb3VzZWxlYXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtcy0zXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODI2XzQ0ODcxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDY1IDEwLjY2NzNWOC4wMDA2NU04LjAwMDY1IDUuMzMzOThIOC4wMDczMk0xNC42NjczIDguMDAwNjVDMTQuNjY3MyAxMS42ODI2IDExLjY4MjYgMTQuNjY3MyA4LjAwMDY1IDE0LjY2NzNDNC4zMTg3NSAxNC42NjczIDEuMzMzOTggMTEuNjgyNiAxLjMzMzk4IDguMDAwNjVDMS4zMzM5OCA0LjMxODc1IDQuMzE4NzUgMS4zMzM5OCA4LjAwMDY1IDEuMzMzOThDMTEuNjgyNiAxLjMzMzk4IDE0LjY2NzMgNC4zMTg3NSAxNC42NjczIDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODI2XzQ0ODcxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRGVmaW5lIHRvb2x0aXAgY29udGVudCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXRvb2x0aXAtY29udGVudCB0b29sdGlwLWNvbnRlbnQgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ3LTEwMFwiICpuZ0Zvcj1cImxldCB0b29sdGlwSXRlbSBvZiBpc3N1ZT8udG9vbFRpcHNcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwSXRlbT8ubmFtZSB9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZGNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzc3VlLmNoZWNrZWRcIiBjbGFzcz1cInAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpYmVybnRpb25cIiBjbGFzcz1cIiBtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBtYi0yXCI+SGliZXJuYXRpb24gKGluIGRheXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0yNTBweCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZS15IHRvcC01MCBtZS01IHBzLTMgdGlja2V0RGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb2ZmIHN2Zy1pY29uLTFcIiBbbmdDbGFzc109XCJjb3VudCA9PT0gMCA/ICdwZS1ub25lJyA6ICcnXCIgKGNsaWNrKT1cImRlY3Jlc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC42NjYwMiAxMEgxNi4zMzI3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJoaWJlcm50aW9uXCIgWyhuZ01vZGVsKV09XCJIaWJlcm5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIiB2YWx1ZT1cInt7Y291bnR9fVwiIHBsYWNlaG9sZGVyPVwiMFwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdPdGhlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IHctMTAwIG10LTIgcHgtNCBweS0yIHBiLTQgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWxhYmVsIGZ3LXNlbWlib2xkIHB5LTJcIj5QbGVhc2Ugc2VsZWN0IHRoZSByZWxldmFudCBwcm9ibGVtIGZhY2luZyBmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvdGhlcnMgb2Ygb3RoZXJzSXNzdWU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFpbmNhcmQtY29udGVudCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIG10LTIgcHgtNCBweS00IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmFkaW9ib3gob3RoZXJzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbWcgY2xhc3M9XCJwZS0zXCIgc3JjPScuL2Fzc2V0cy90YW5nby9JbWFnZXMvRmVhdHVyZWQgaWNvbi5wbmcnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dFwiPnt7b3RoZXJzLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyBjbGFzcz1cIm1zLTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4MjZfNDQ4NzEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwNjUgMTAuNjY3M1Y4LjAwMDY1TTguMDAwNjUgNS4zMzM5OEg4LjAwNzMyTTE0LjY2NzMgOC4wMDA2NUMxNC42NjczIDExLjY4MjYgMTEuNjgyNiAxNC42NjczIDguMDAwNjUgMTQuNjY3M0M0LjMxODc1IDE0LjY2NzMgMS4zMzM5OCAxMS42ODI2IDEuMzMzOTggOC4wMDA2NUMxLjMzMzk4IDQuMzE4NzUgNC4zMTg3NSAxLjMzMzk4IDguMDAwNjUgMS4zMzM5OEMxMS42ODI2IDEuMzMzOTggMTQuNjY3MyA0LjMxODc1IDE0LjY2NzMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4MjZfNDQ4NzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvR3JvdXB7e2l9fVwiIFt2YWx1ZV09XCJvdGhlcnMubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkT3B0aW9uXCIgY2xhc3M9XCJwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoaWJlcm50aW9uXCIgY2xhc3M9XCIgbWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgbWItMlwiPkhpYmVybmF0aW9uIChpbiBkYXlzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHctMjUwcHggcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRyYW5zbGF0ZS1taWRkbGUteSB0b3AtNTAgbWUtNSBwcy0zIHRpY2tldERheXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9mZiBzdmctaWNvbi0xXCIgW25nQ2xhc3NdPVwiY291bnQgPT09IDAgPyAncGUtbm9uZScgOiAnJ1wiIChjbGljayk9XCJkZWNyZXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuNjY2MDIgMTBIMTYuMzMyN1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiaGliZXJudGlvblwiIFsobmdNb2RlbCldPVwiSGliZXJuYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIgdmFsdWU9XCJ7e2NvdW50fX1cIiBwbGFjZWhvbGRlcj1cIlwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIHZpZXdUaWNrZXREYXRhO2xldCBpPWluZGV4XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhvcml6b250YWwgbGluZSB3aXRoIGRheSAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgcC0wIHctMTAwIG1lLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXkgZnctYm9sZC00MDBcIj5Ub2RheTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgcC0wIHctMTAwIG1zLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBVc2VyIGNvZGUgc3RhcnQgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvbkJ5ID09PSAnVXNlcidcIiBjbGFzcz1cImQtZmxleCBtcy01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNDhweCBzeW1ib2wtY2lyY2xlXCIgKm5nSWY9XCJvYmo/LklkZW50aWZpZWRCeSYmb2JqPy5JZGVudGlmaWVkQnkhPT0nJyYmb2JqPy5JZGVudGlmaWVkQnkhPT0nVGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtc3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnMtNCBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uSWRlbnRpZmllZEJ5Py5zbGljZSgwLDIpIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFvYmo/LklkZW50aWZpZWRCeXx8b2JqPy5JZGVudGlmaWVkQnk9PT0nJ3x8b2JqPy5JZGVudGlmaWVkQnk9PT0nVGFuZ28nXCIgY2xhc3M9XCJtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3RhbmdvcHJvZmlsZS5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSB2ZXJ0aWNhbExpbmVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTMgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGRcIj57e29iaj8uSWRlbnRpZmllZEJ5P29iaj8uSWRlbnRpZmllZEJ5OlwiVGFuZ29cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGRhdGVkZGF0ZSBweC0zIHB0LTEgZnctYm9sZC00MDBcIj57e29iaj8udGltZVN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlICE9PSdzdGF0dXNDaGFuZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmb250LWJvbGQtNDAwXCI+VXNlciBoYXMgcmVwbGllZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdzdGF0dXNDaGFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDBcIj5VcGRhdGVkIHRoZSBzdGF0dXM8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnc3RhdHVzQ2hlY2tSZXBseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5Jc3N1ZSBoYXMgYmVlbiA8Yj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPm5vdDwvc3Bhbj4gcmVzb2x2ZWQuPC9iPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiICpuZ0lmPVwib2JqLnN0YXR1c0NoZWNrUmVwbHk9PT0nTm8nXCI+IEl0IHRha2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uaGliZXJuYXRpb25EYXlzfX0gbW9yZSBkYXlzIHRvIHJlc29sdmUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29tbWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0naXNzdWVVcGRhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1zZW1pYm9sZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UncmUgY3VycmVudGx5IGVuY291bnRlcmluZyBhbiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tyZXMucHJpbWFyeUlzc3VlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXMucHJpbWFyeUlzc3VlID09PSdDYW1lcmEgSXNzdWVzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3R3b3JraW5nQ2FtYXJhbGlzdCAmJiBub3R3b3JraW5nQ2FtYXJhbGlzdD8ubGVuZ3RoXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBub3R3b3JraW5nQ2FtYXJhbGlzdFwiIGNsYXNzPVwiY29sLXNtLTMgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW4gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPnt7aXRlbS5jYW1lcmFOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTMgbWUtMlwiPlRoZSBhYm92ZSBjYW1lcmEgc3RyZWFtaW5nIGFyZSBub3Qgd29ya2luZyBkdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTcwMCBtdC0zXCIgKm5nRm9yPVwibGV0IGlzc3VlIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWU7IGxldCBsYXN0ID0gbGFzdFwiPnt7aXNzdWU/Lm5hbWV9fSA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhc3RcIj4gLDwvbmctY29udGFpbmVyPjwvc3Bhbj4gdG8gdGhlIENhbWVyYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcz8uc2Vjb25kYXJ5SXNzdWUgJiYgcmVzPy5zZWNvbmRhcnlJc3N1ZT8ubGVuZ3RoXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2luZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFVzZXIgY29kZSBlbmQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFuZ28gY29kZSBzdGFydCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1RhbmdvJ1wiIGNsYXNzPVwiZC1mbGV4IG1iLTUgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBwZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC00OHB4IHN5bWJvbC1jaXJjbGVcIiAqbmdJZj1cIm9iaj8uSWRlbnRpZmllZEJ5JiZvYmo/LklkZW50aWZpZWRCeSE9PScnJiZvYmo/LklkZW50aWZpZWRCeSE9PSdUYW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJhZGdlLWxpZ2h0LXByaW1hcnkgdGV4dC1zeW1ib2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSBmcy00IGJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgZnctbm9ybWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5JZGVudGlmaWVkQnk/LnNsaWNlKDAsMikgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiIW9iaj8uSWRlbnRpZmllZEJ5fHxvYmo/LklkZW50aWZpZWRCeT09PScnfHxvYmo/LklkZW50aWZpZWRCeT09PSdUYW5nbydcIiBjbGFzcz1cIm1zZ3Byb2ZpbGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGFuZ29wcm9maWxlLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSB2ZXJ0aWNhbExpbmVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTMgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7e29iai5hY3Rpb25UeXBlfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGRcIj57e29iaj8uSWRlbnRpZmllZEJ5P29iaj8uSWRlbnRpZmllZEJ5OlwiVGFuZ29cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwZGF0ZWRkYXRlIGZ3LWJvbGQtNDAwIHB4LTMgcHQtMVwiPnt7b2JqPy50aW1lU3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICBjbGFzcz1cInByb2ZpbGUtbGFiZWwgZnctYm9sZC00MDBcIj50YW5nbyBoYXMgcmVwbGllZCB0byB0aGUgaXNzdWU8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdzdGF0dXNDaGFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtcHJpbWFyeVwiPk9wZW4gLT4gSW5wcm9ncmVzczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29tbWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3ByZXJlcXVlc3RjaGVja3N0YXJ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+U3RhcnRlZCB0aGU8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5QcmUtUmVxdWlzaXRlIENoZWNrPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3ByZXJlcXVlc3RjaGVja2ZhaWxlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPlByb2Nlc3MgZmFpbGVkIG9uPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWluZ3RleHQgZnctc2VtaWJvbGQgdGV4dC1wcmltYXJ5XCI+UHJlLVJlcXVpc2l0ZSBDaGVjazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdmZXRjaGNhbWVyYSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPlVwZGF0ZWQgdGhlIHN0YXR1czwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtcHJpbWFyeVwiPlByZS1SZXF1aXNpdGUgQ2hlY2sgLT4gRmV0Y2hjYW1lcmE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29uZmlndXJlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWluZ3RleHQgZnctc2VtaWJvbGQgdGV4dC1wcmltYXJ5XCI+IEZldGNoY2FtZXJhIC0+IENvbmZpZ3VyaW5nPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0naXNzdWVVcGRhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1zZW1pYm9sZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UncmUgY3VycmVudGx5IGVuY291bnRlcmluZyBhbiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tyZXMucHJpbWFyeUlzc3VlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXMucHJpbWFyeUlzc3VlID09PSdDYW1lcmEgSXNzdWVzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW4gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPnt7aXRlbS5jYW1lcmFOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTMgbWUtMlwiPlRoZSBhYm92ZSBjYW1lcmEgc3RyZWFtaW5nIGFyZSBub3Qgd29ya2luZyBkdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTcwMCBtdC0zXCIgKm5nRm9yPVwibGV0IGlzc3VlIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWU7IGxldCBsYXN0ID0gbGFzdFwiPnt7aXNzdWU/Lm5hbWV9fSA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhc3RcIj4gLDwvbmctY29udGFpbmVyPjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+dG8gdGhlIENhbWVyYTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2luZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0nc3RlcHNUb1Jlc29sdmUnXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDBcIj5QbGVhc2UgZm9sbG93IHRoZSBiZWxvdyBzdGVwcyB0byByZXNvbHZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGQgbWItMVwiPnt7cmVzLnByaW1hcnlJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkLTQwMCBtYi0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIGNvZGUgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dTdWJtaXQmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNvbW1lbnRzXCIgKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgeW91ciBjb21tZW50cy4uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiBtdWx0aXBsZSAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRmlsZUlucHV0KClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSBtcy0zXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3Ljg2NjYgOS4yMDgzNUwxMC4yMDgyIDE2Ljg2NjdDOS4yNzAwNSAxNy44MDQ5IDcuOTk3NTcgMTguMzMyIDYuNjcwNzUgMTguMzMyQzUuMzQzOTMgMTguMzMyIDQuMDcxNDUgMTcuODA0OSAzLjEzMzI1IDE2Ljg2NjdDMi4xOTUwNSAxNS45Mjg1IDEuNjY3OTcgMTQuNjU2IDEuNjY3OTcgMTMuMzI5MkMxLjY2Nzk3IDEyLjAwMjQgMi4xOTUwNSAxMC43Mjk5IDMuMTMzMjUgOS43OTE2OEwxMC43OTE2IDIuMTMzMzVDMTEuNDE3MSAxLjUwNzg4IDEyLjI2NTQgMS4xNTY0OSAxMy4xNDk5IDEuMTU2NDlDMTQuMDM0NSAxLjE1NjQ5IDE0Ljg4MjggMS41MDc4OCAxNS41MDgyIDIuMTMzMzVDMTYuMTMzNyAyLjc1ODgyIDE2LjQ4NTEgMy42MDcxMyAxNi40ODUxIDQuNDkxNjhDMTYuNDg1MSA1LjM3NjIzIDE2LjEzMzcgNi4yMjQ1NSAxNS41MDgyIDYuODUwMDJMNy44NDE1OCAxNC41MDgzQzcuNTI4ODUgMTQuODIxMSA3LjEwNDY5IDE0Ljk5NjggNi42NjI0MiAxNC45OTY4QzYuMjIwMTQgMTQuOTk2OCA1Ljc5NTk4IDE0LjgyMTEgNS40ODMyNSAxNC41MDgzQzUuMTcwNTEgMTQuMTk1NiA0Ljk5NDgyIDEzLjc3MTUgNC45OTQ4MiAxMy4zMjkyQzQuOTk0ODIgMTIuODg2OSA1LjE3MDUxIDEyLjQ2MjcgNS40ODMyNSAxMi4xNUwxMi41NTgyIDUuMDgzMzVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtM1wiIChjbGljayk9XCJ1cGRhdGVUaWNrZXQoKVwiPiBTdWJtaXQgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgbXMtMyB0ZXh0LW5vd3JhcFwiPjxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM5MTdfNTQ2MjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc0MzUgNy41MDAwOEM3Ljc3MDI3IDYuOTQzMTQgOC4xNTY5OCA2LjQ3MzUgOC42NjU5OCA2LjE3NDM2QzkuMTc0OTggNS44NzUyMSA5Ljc3MzQzIDUuNzY1ODYgMTAuMzU1MyA1Ljg2NTY3QzEwLjkzNzIgNS45NjU0OSAxMS40NjUgNi4yNjgwMiAxMS44NDUyIDYuNzE5NjlDMTIuMjI1NSA3LjE3MTM2IDEyLjQzMzYgNy43NDMwMiAxMi40MzI3IDguMzMzNDJDMTIuNDMyNyAxMC4wMDAxIDkuOTMyNjggMTAuODMzNCA5LjkzMjY4IDEwLjgzMzRNOS45OTkzNSAxNC4xNjY3SDEwLjAwNzdNMTguMzMyNyAxMC4wMDAxQzE4LjMzMjcgMTQuNjAyNSAxNC42MDE3IDE4LjMzMzQgOS45OTkzNSAxOC4zMzM0QzUuMzk2OTggMTguMzMzNCAxLjY2NjAyIDE0LjYwMjUgMS42NjYwMiAxMC4wMDAxQzEuNjY2MDIgNS4zOTc3MSA1LjM5Njk4IDEuNjY2NzUgOS45OTkzNSAxLjY2Njc1QzE0LjYwMTcgMS42NjY3NSAxOC4zMzI3IDUuMzk3NzEgMTguMzMyNyAxMC4wMDAxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzkxN181NDYyMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gQ2Fu4oCZdCBhYmxlIHRvIHJlYWNoIHRoZSBzdG9yZT9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cImVycm9yTWVzc2FnZVwiID57eyBlcnJvck1lc3NhZ2UgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSByb3VuZGVkLTMgcC01IGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYSBmdy1zZW1pYm9sZFwiPkF0dGFjaG1lbnRzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRpY2tldEluZm8/LmF0dGFjaG1lbnRzLmxlbmd0aCA9PT0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBtdC0xMCBtYi0xMCBtaC02MHZoIGQtZ3JpZCB0ZXh0LWNlbnRlciBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC1hdXRvXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3Rha2V0aWNrZXQuc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFrZXRpY2tldCBtdC0yIGZ3LWJvbGRcIj5ObyBBdHRhY2htZW50cyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRpY2tldEluZm8/LmF0dGFjaG1lbnRzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInJvdyBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB0aWNrZXRJbmZvPy5hdHRhY2htZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIkF0dGFjaG1lbnQgYm9yZGVyIGJvcmRlci0xIGJvcmRlci1ncmF5IHctMTAwIHJvdW5kZWQtMiBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaC0xNTBweFwiICAoY2xpY2spPVwiZG93bmxvYWRpbWFnZShmaWxlPy5zaWduZWRVcmwpXCIgW3NyY109XCJmaWxlPy5zaWduZWRVcmxcIiBhbHQ9XCJTZWxlY3RlZCBJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgYm9yZGVyIGJvcmRlci10b3AtMSBweC01IHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZW5hbWUgZnctYm9sZFwiPnt7ZmlsZS5maWxlbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiZnctYm9sZC00MDAgdXBkYXRlZGRhdGVcIj57e2ZpbGUubGFzdE1vZGlmaWVkRGF0ZVN0cmluZ319PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PiJdfQ==
|
|
475
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9pbnN0YWxsYXRpb24vaW5zdGFsbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9pbnN0YWxsYXRpb24vaW5zdGFsbGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFRekUsaUZBQWlGO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjtJQXdEWjtJQUFnQztJQUMxQztJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBM0RULFdBQVcsR0FBUSxRQUFRLENBQUM7SUFDNUIsYUFBYSxHQUFRLGlCQUFpQixDQUFDO0lBQ3ZDLGdCQUFnQixHQUFZLEtBQUssQ0FBQTtJQUNqQyxlQUFlLENBQU07SUFDckIsV0FBVyxDQUFNO0lBQ2pCLFFBQVEsR0FBUSxFQUFFLENBQUM7SUFDbkIsYUFBYSxDQUFNO0lBQ25CLGFBQWEsR0FBVSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkYsV0FBVyxHQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxF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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYk1vZGFsUmVmLCBOZ2JBY3RpdmVNb2RhbCwgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ29udGFjdERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRha2VyZW1vdGVDb21wb25lbnQgfSBmcm9tICcuLi90YWtlcmVtb3RlL3Rha2VyZW1vdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4vLyBpbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG4vLyBpbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1pbnN0YWxsYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnN0YWxsYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbnN0YWxsYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnN0YWxsYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIFNlbGVjdGVkVGFiOiBhbnkgPSAndGlja2V0JztcclxuICBzZWxlY3RlZElzc3VlOiBhbnkgPSAnSW50ZXJuZXQgSXNzdWVzJztcclxuICBwcmVyZXF1ZXN0RmFpbGVkOiBib29sZWFuID0gZmFsc2VcclxuICBzZWNvbmRhcnlJc3N1ZXM6IGFueTtcclxuICBpc3N1ZVN0YXR1czogYW55O1xyXG4gIGNvbW1lbnRzOiBhbnkgPSAnJztcclxuICBwcmltYXJ5SXNzdWVzOiBhbnk7XHJcbiAgZHJvcGRvd25JdGVtczogYW55W10gPSBbJ0ludGVybmV0IElzc3VlcycsICdDYW1lcmEgSXNzdWVzJywgJ1N5c3RlbSBJc3N1ZXMnLCAnT3RoZXJzJ107XHJcbiAgb3RoZXJzSXNzdWU6IGFueVtdID0gW3sgbmFtZTogJ1Bvd2VyIFNodXRkb3duJyB9LCB7IG5hbWU6ICdTdG9yZSBUZW1wb3JhcmlseSBDbG9zZWQnIH0sIHsgbmFtZTogJ0FwcGxpY2F0aW9uIElzc3VlcycgfV1cclxuICBjYW1lcmFJc3N1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhbWVyYVNlbGVjdFdvcms6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dTdWJtaXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNhbWVyYVNlbGVjdDogYW55O1xyXG4gIHN0YXRlOiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRIaWJlcm5hdGlvbjogYW55ID0gJzAwJztcclxuICBjb3VudDogYW55ID0gMDtcclxuICBpc0NoZWNrZWQ6IGJvb2xlYW5bXSA9IFtdO1xyXG4gIHJlc29sdmVkSXNzdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpY2tldElkOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRpY2tldEluZm86IGFueTtcclxuICBhY3RpdmVUaWNrZXREZXRhaWxzOiBhbnk7XHJcbiAgc3RvcmVBZGRyZXNzOiBhbnk7XHJcbiAgcmVwbHlPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVwbGllZElzc3VlOiBhbnk7XHJcbiAgdmlld1RpY2tldERhdGE6IGFueTtcclxuICBjdXJyZW50VGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgdGFyZ2V0VGltZTogRGF0ZVxyXG4gIHNlbGVjdGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGJyYW5kTG9nbzogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuICBsYXN0TW9kaWZpZWREYXRlU3RyaW5nOiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXBDb250ZW50JykgdG9vbHRpcENvbnRlbnQhOiBOZ2JUb29sdGlwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGhlYWRlckZpbHRlcjogYW55O1xyXG4gIHVzZXI6IGFueTtcclxuICB1cGRhdGVkRGF0ZTogRGF0ZTtcclxuICBpc0dyZWF0ZXJUaGFuNV8zMEhvdXJzOiBib29sZWFuO1xyXG4gIHN0b3JlSWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgc3RvcmVEcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkT3B0aW9uOiBhbnk7XHJcbiAgSGliZXJuYXRpb246IGFueTtcclxuICBjbGllbnRJZDogYW55O1xyXG4gIGluc3RhbGxhdGlvblN0YXJ0OiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25maWd1cmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGluc3RhbGxhdGlvblJlc3VtZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dmb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVOYW1lOiBhbnk7XHJcbiAgbm90d29ya2luZ0NhbWFyYWxpc3Q6IGFueVtdID0gW107XHJcbiAgdXNlclR5cGU6IGFueTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50aWNrZXRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0aWNrZXRJZCcpO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3N0b3JlSWQnKTtcclxuICAgIHRoaXMudmlld1RpY2tldCgpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3RcclxuICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3BEb3duJykpIHtcclxuICAgICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLnN0b3JlRHJvcERvd24nKSkge1xyXG4gICAgICB0aGlzLnN0b3JlRHJvcERvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgJ3t9JylcclxuICAgIHRoaXMudXNlclR5cGUgPSB1c2VySW5mby51c2VyVHlwZVxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMudXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8IFwiXCIpXHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaWx0ZXIgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGlja2V0KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgdmlld1RpY2tldCgpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIHRpY2tldElkOiB0aGlzLnRpY2tldElkXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uudmlld1RpY2tldChwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG5cclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aWNrZXRJbmZvID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgaWYgKHRoaXMudGlja2V0SW5mby50aWNrZXREZXRhaWxzLmluc3RhbGxhdGlvblN0YXR1cyA9PSAnaW5zdGFsbGF0aW9uZmFpbGVkJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGF0aW9uU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25SZXN1bWUgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRpY2tldEluZm8udGlja2V0RGV0YWlscy5pbnN0YWxsYXRpb25TdGF0dXMgPT0gJ3BhaXJlZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbGF0aW9uU3RhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25SZXN1bWUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSByZXMuZGF0YS50aWNrZXRBY3Rpdml0eS5zbGljZSgpLnJldmVyc2UoKTtcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEuZm9yRWFjaCgoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGUudGltZVN0YW1wID0gdGhpcy5nZXRSZWxhdGl2ZVRpbWUoZS50aW1lU3RhbXApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXMuZGF0YS50aWNrZXRBY3Rpdml0eS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmFjdGlvblR5cGUgPT0gJ3ByZXJlcXVlc3RjaGVja2ZhaWxlZCcgJiYgcmVzLmRhdGE/LnRpY2tldERldGFpbHM/Lmlzc3VlU3RhdHVzICE9ICdpZGVudGlmaWVkJykge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnByZXJlcXVlc3RGYWlsZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHJlcz8uZGF0YT8uc3RhdHVzID09ICdvcGVuJykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1c1VwZGF0ZSgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcblxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENhbWVyYUxpc3Qobm90d29ya2luZ0NhbWVyYTogYW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjYW1lcmE6IG5vdHdvcmtpbmdDYW1lcmFcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5nZXRDYW1lcmFMaXN0KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLm5vdHdvcmtpbmdDYW1hcmFsaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdub3R3b3JraW5nQ2FtYXJhbGlzdCcsIHRoaXMubm90d29ya2luZ0NhbWFyYWxpc3QpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlSXNzdWUoKSB7XHJcbiAgICB0aGlzLnNob3dmb3JtID0gdHJ1ZVxyXG4gICAgdGhpcy5wcmltYXJ5UmVhc29uKCk7XHJcbiAgICB0aGlzLnNlY29uZGFyeVJlYXNvbih0aGlzLnNlbGVjdGVkSXNzdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVsYXRpdmVUaW1lKHRpbWVzdGFtcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnREYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIDEwMDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xyXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoaG91cnMgLyAyNCk7XHJcblxyXG4gICAgaWYgKGRheXMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXlzID09PSAxID8gJzEgZGF5IGFnbycgOiBgJHtkYXlzfSBkYXlzIGFnb2A7XHJcbiAgICB9IGVsc2UgaWYgKGhvdXJzID4gMCkge1xyXG4gICAgICByZXR1cm4gaG91cnMgPT09IDEgPyAnMSBob3VyIGFnbycgOiBgJHtob3Vyc30gaG91cnMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+IDApIHtcclxuICAgICAgcmV0dXJuIG1pbnV0ZXMgPT09IDEgPyAnMSBtaW51dGUgYWdvJyA6IGAke21pbnV0ZXN9IG1pbnV0ZXMgYWdvYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnSnVzdCBub3cnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWN0aXZlVGlja2V0KCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIHVzZXJJZDogdGhpcy51c2VyLl9pZCxcclxuICAgICAgaXNzdWVUeXBlOiBcImluc3RhbGxhdGlvblwiLFxyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uZW5kRGF0ZSxcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5hY3RpdmVUaWNrZXQoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVGlja2V0RGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IHRoaXMuYWN0aXZlVGlja2V0RGV0YWlscz8uZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnN0b3JlSWQgPT09IHRoaXMuc3RvcmVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IHRoaXMuc3RvcmVBZGRyZXNzWzBdO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9LFxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRzdG9yZUFkZHJlc3MoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLnN0b3JlQWRkcmVzcyA9IGRldGFpbHNcclxuICAgIHRoaXMuc3RvcmVOYW1lID0gdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVOYW1lO1xyXG4gICAgdGhpcy5zdG9yZUlkID0gdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZFxyXG4gICAgdGhpcy5jbGllbnRJZCA9IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB0aGlzLnN0b3JlRHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMudGlja2V0SWQgPSBkZXRhaWxzLnRpY2tldElkXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGB0aWNrZXRzL3VzZXJzL2luc3RhbGxhdGlvbmluZm8vJHtkZXRhaWxzLnRpY2tldElkfS8ke2RldGFpbHMuc3RvcmVJZH1gKVxyXG4gICAgdGhpcy52aWV3VGlja2V0KCk7XHJcbiAgfVxyXG5cclxuICBQcmV2Um91dGUoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvdGlja2V0cy91c2Vycz90eXBlPWluc3RhbGxhdGlvbicpXHJcbiAgfVxyXG5cclxuICBwcmltYXJ5UmVhc29uKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgXCJuYW1lXCI6IHRoaXMuc2VsZWN0ZWRJc3N1ZSxcclxuICAgICAgXCJvcmRlclwiOiAyXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UucHJpbWFyeVJlYXNvbihwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5wcmltYXJ5SXNzdWVzID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Vjb25kYXJ5UmVhc29uKHZhbHVlOiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7IFwicHJpbWFyeUlzc3VlXCI6IHZhbHVlIH1cclxuICAgIHRoaXMuc2VydmljZS5zZWNvbmRhcnlSZWFzb24ocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kYXJ5SXNzdWVzID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IoZXJyKSB7XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpY2tldCgpIHtcclxuICAgIHRoaXMuc2hvd2Zvcm0gPSBmYWxzZTtcclxuICAgIHRoaXMucHJlcmVxdWVzdEZhaWxlZCA9IGZhbHNlO1xyXG4gICAgbGV0IGRhdGFcclxuICAgIGlmICh0aGlzLnNlY29uZGFyeUlzc3VlcyAmJiB0aGlzLnNlY29uZGFyeUlzc3Vlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZElzc3VlID09ICdPdGhlcnMnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdBcHBsaWNhdGlvbiBJc3N1ZXMnKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSAnQXBwbGljYXRpb24gSXNzdWVzJztcclxuICAgICAgICAgIGRhdGEgPSBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gJ1N0b3JlIE9wZXJhdGlvbiBJc3N1ZXMnO1xyXG4gICAgICAgICAgZGF0YSA9IFt0aGlzLnNlbGVjdGVkT3B0aW9uXVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBkYXRhID0gdGhpcy5vdGhlcnNJc3N1ZS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5jaGVja2VkKS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5uYW1lKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhID0gdGhpcy5zZWNvbmRhcnlJc3N1ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uY2hlY2tlZCkubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uICE9ICdBcHBsaWNhdGlvbiBJc3N1ZXMnKSB7XHJcbiAgICBpZih0aGlzLnRpY2tldEluZm8/LnRpY2tldERldGFpbHMuaXNzdWVTdGF0dXMgPT09J25vdGlkZW50aWZpZWQnJiZkYXRhJiZkYXRhLmxlbmd0aD09MHx8dGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzLnRpY2tldFR5cGU9PSdyZWZyZXNodGlja2V0JyYmdGhpcy50aWNrZXRJbmZvPy50aWNrZXREZXRhaWxzPy5yZWZyZXNoVGlja2V0U3RhdHVzPT09J25vdGlkZW50aWZpZWQnJiZkYXRhJiZkYXRhLmxlbmd0aD09MCl7XHJcbiAgICAgIHJldHVybiAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBTZWxlY3QgSXNzdWVzXCIpXHJcbiAgICB9ZWxzZSBpZih0aGlzLnRpY2tldEluZm8/LnRpY2tldERldGFpbHMuaXNzdWVTdGF0dXMgPT09J2lkZW50aWZpZWQnJiZ0aGlzLmNvbW1lbnRzID09Jyd8fHRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscy50aWNrZXRUeXBlPT0ncmVmcmVzaHRpY2tldCcmJnRoaXMudGlja2V0SW5mbz8udGlja2V0RGV0YWlscz8ucmVmcmVzaFRpY2tldFN0YXR1cz09PSdpZGVudGlmaWVkJyYmdGhpcy5jb21tZW50cz09MCl7XHJcbiAgICAgIHJldHVybiAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBFbnRlciBDb21tZW50c1wiKVxyXG4gICAgfVxyXG4gIH1cclxuICAgIGxldCB0aWNrZXREZXRhaWxzID0ge1xyXG4gICAgICBcInRpY2tldElkXCI6IHRoaXMudGlja2V0SWQsXHJcbiAgICAgIFwicHJpbWFyeVwiOiB0aGlzLnNlbGVjdGVkSXNzdWUsXHJcbiAgICAgIFwic2Vjb25kYXJ5XCI6IGRhdGEsXHJcbiAgICAgIFwiY29tbWVudFwiOiB0aGlzLmNvbW1lbnRzXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlVGlja2V0KHRpY2tldERldGFpbHMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgdGhpcy52aWV3VGlja2V0KClcclxuICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAnJ1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlID0gW11cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG5cclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdHVzVXBkYXRlKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIFwidGlja2V0SWRcIjogdGhpcy50aWNrZXRJZCxcclxuICAgICAgXCJzdGF0dXNcIjogXCJpbnByb2dyZXNzXCJcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5zdGF0dXNVcGRhdGUoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFkZENvbW1lbnQoKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRzID0gdGhpcy5jb21tZW50c1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlXHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2Vjb25kYXJ5UmVhc29uKHRoaXMuc2VsZWN0ZWRJc3N1ZSlcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkSXNzdWUgPT0gJ0NhbWVyYSBJc3N1ZXMnKSB7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ym1pdCA9IGZhbHNlXHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG4gIGRvd25sb2FkaW1hZ2UodXJsOiBhbnkpIHtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gdXJsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgIGEuY2xpY2soKTtcclxuICB9XHJcbiAgb3BlblJlbW90ZSgpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUYWtlcmVtb3RlQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzY3JvbGxhYmxlOiB0cnVlLCB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlRGV0YWlscyA9IHtcclxuICAgICAgc3RvcmVOYW1lOiB0aGlzLnN0b3JlQWRkcmVzcz8uc3RvcmVOYW1lLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5zdG9yZUFkZHJlc3M/LmNsaWVudElkLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlQWRkcmVzcz8uc3RvcmVJZFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FtZXJhU2VsZWN0ZWQodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5jYW1lcmFTZWxlY3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByb2NlZGRJbWFnZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWJtaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5jYW1lcmFJc3N1ZSA9IHRydWU7XHJcbiAgICB0aGlzLmNhbWVyYVNlbGVjdFdvcmsgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIFNlbGVjdGVkVGFicyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDaGVja2JveChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlY29uZGFyeUlzc3Vlc1tpbmRleF0uY2hlY2tlZCA9ICF0aGlzLnNlY29uZGFyeUlzc3Vlc1tpbmRleF0uY2hlY2tlZDtcclxuICB9XHJcbiAgdG9nZ2xlUmFkaW9ib3gob3RoZXJzOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvdGhlcnMubmFtZTtcclxuICB9XHJcbiAgZGVjcmVzZUNvdW50KCk6IGFueSB7XHJcbiAgICB0aGlzLmNvdW50IC09IDE7XHJcbiAgfVxyXG5cclxuICBpbmNyZWFzZUNvdW50KCk6IGFueSB7XHJcbiAgICB0aGlzLmNvdW50ICs9IDE7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29udGFjdCgpIHtcclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQ29udGFjdERldGFpbHNDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0ge1xyXG4gICAgICBzdG9yZU5hbWU6IHRoaXMuc3RvcmVBZGRyZXNzLnN0b3JlTmFtZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUFkZHJlc3Muc3RvcmVJZCxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuc3RvcmVBZGRyZXNzLmNsaWVudElkXHJcbiAgICB9LFxyXG5cclxuICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcbiAgc3RvcmVDaGFuZ2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zdG9yZURyb3BEb3duID0gIXRoaXMuc3RvcmVEcm9wRG93bjtcclxuICB9XHJcbiAgb3BlbkZpbGVJbnB1dCgpIHtcclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbaV07XHJcbiAgICAgICAgaWYgKCFmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ09ubHkgaW1hZ2UgZmlsZXMgYXJlIGFsbG93ZWQhJztcclxuICAgICAgICAgIHJldHVybjsgLy8gU3RvcCBmdXJ0aGVyIHByb2Nlc3NpbmdcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdpbWcnLCBmaWxlKTtcclxuICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVzLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgIHVybDogZS50YXJnZXQucmVzdWx0LFxyXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWREYXRlU3RyaW5nOiBuZXcgRGF0ZShmaWxlLmxhc3RNb2RpZmllZCkudG9Mb2NhbGVTdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS51cGxvYWRBdHRhY2htZW50cyh0aGlzLnRpY2tldElkLCBmb3JtRGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMudmlld1RpY2tldCgpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGUoKSB7XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZVRvb2x0aXAoKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29udGVudCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBDb250ZW50LmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBDb250ZW50KSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRJbnN0YWxsYXRpb24oKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvdGlja2V0cy91c2Vycy9pbnN0YWxsYXRpb25pbmZvL2VkZ2UtYXBwL2VkZ2UtZW1haWwtam91cm5leVwiXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsIHRpY2tldElkOiB0aGlzLnRpY2tldElkIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgQ29uZmlndXJpbmcoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvdGlja2V0cy91c2Vycy9pbnN0YWxsYXRpb25pbmZvL2VkZ2UtYXBwL2VkZ2UtaW5zdGFsbGF0aW9uXCJdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCwgdGlja2V0SWQ6IHRoaXMudGlja2V0SWQgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlc3VtZUluc3RhbGxhdGlvbigpIHtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3RvcmUodGhpcy50aWNrZXRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi90aWNrZXRzL3VzZXJzL2luc3RhbGxhdGlvbmluZm8vZWRnZS1hcHAvZWRnZS1pbnN0YWxsYXRpb25cIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgc3RvcmVJZDogdGhpcy5zdG9yZUlkLCB0aWNrZXRJZDogdGhpcy50aWNrZXRJZCB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYi01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgYmctd2hpdGUgcHgtMyBweS0yIG1lLTMgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cIndpZHRoOiBmaXQtY29udGVudDtcIiAoY2xpY2spPVwiUHJldlJvdXRlKClcIj4gPHN2Z1xyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi44MzI3IDYuOTk5MzVIMS4xNjYwMk0xLjE2NjAyIDYuOTk5MzVMNi45OTkzNSAxMi44MzI3TTEuMTY2MDIgNi45OTkzNUw2Ljk5OTM1IDEuMTY2MDJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+PC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1zZW1pYm9sZCBzdG9yZS1sYWJlbFwiPiB7e3N0b3JlSWR9fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzdG9yZUFkZHJlc3M/LmFkZHJlc3NcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgc3RvcmUtbGFiZWxcIj4gfFxyXG4gICAgICAgICAgICB7e3N0b3JlQWRkcmVzcz8uYWRkcmVzc319IDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj4ge3thY3RpdmVUaWNrZXREZXRhaWxzPy5jb3VudH19IHt7c3RvcmVBZGRyZXNzPy5zdGF0dXN9fTwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgcHMtM1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3RvcmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3tzdG9yZUlkID8gc3RvcmVJZCA6IHN0b3JlQWRkcmVzcz8uc3RvcmVJZH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN0b3JlRHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB6LTEgdy0yMDBweCBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTBweCBlbmQtMCBoLTMwMHB4IG92ZXJmbG93LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBhY3RpdmVUaWNrZXREZXRhaWxzPy5kYXRhXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInN0b3JlQWRkcmVzcz8uc3RvcmVJZCA9PT0gZGV0YWlscz8uc3RvcmVJZCA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwiZ2V0c3RvcmVBZGRyZXNzKGRldGFpbHMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGV0YWlscz8uc3RvcmVJZH19PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWwgbWItMiBmdy1zZW1pYm9sZFwiPnt7dGlja2V0SWR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YiBmdy1ib2xkIG1iLTIgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdFwiPjxzdmcgY2xhc3M9XCJtZS0zXCJcclxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zODc3Xzk2NTUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04IDFWM000IDFWM00xLjUgNUgxMC41TTIuNSAySDkuNUMxMC4wNTIzIDIgMTAuNSAyLjQ0NzcyIDEwLjUgM1YxMEMxMC41IDEwLjU1MjMgMTAuMDUyMyAxMSA5LjUgMTFIMi41QzEuOTQ3NzIgMTEgMS41IDEwLjU1MjMgMS41IDEwVjNDMS41IDIuNDQ3NzIgMS45NDc3MiAyIDIuNSAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4xXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfOTY1NTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+IHt7IHRpY2tldEluZm8/LmNyZWF0ZWRBdHxjdXN0b21EYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbGxhdGlvblN0YXJ0JiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTIwIG1lLTIgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnRJbnN0YWxsYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBJbnN0YWxsYXRpb24gPHN2ZyBjbGFzcz1cIm1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03LjUgMTVMMTIuNSAxMEw3LjUgNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbmZpZ3VyaW5nJiYoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTIwIG1lLTIgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ29uZmlndXJpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmluZyA8c3ZnIGNsYXNzPVwibXMtMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzcxNDhfMTc2MDgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDAzIDEuNjY2NzVWNS4wMDAwOE0xMC4wMDAzIDE1LjAwMDFWMTguMzMzNE00LjEwODY2IDQuMTA4NDFMNi40NjY5OSA2LjQ2Njc1TTEzLjUzMzcgMTMuNTMzNEwxNS44OTIgMTUuODkxN00xLjY2Njk5IDEwLjAwMDFINS4wMDAzM00xNS4wMDAzIDEwLjAwMDFIMTguMzMzN000LjEwODY2IDE1Ljg5MTdMNi40NjY5OSAxMy41MzM0TTEzLjUzMzcgNi40NjY3NUwxNS44OTIgNC4xMDg0MVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83MTQ4XzE3NjA4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImluc3RhbGxhdGlvblJlc3VtZSYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBweC0xNSBtZS0yIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc3VtZUluc3RhbGxhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VtZSBJbnN0YWxsYXRpb24gPHN2ZyBjbGFzcz1cIm1zLTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03LjUgMTVMMTIuNSAxMEw3LjUgNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Db250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM4NzdfMTAyMjAzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNTQxNSA0LjE2NjU5QzEzLjM1NTUgNC4zMjUzOSAxNC4xMDM1IDQuNzIzNDcgMTQuNjg5OSA1LjMwOTg2QzE1LjI3NjMgNS44OTYyNiAxNS42NzQ0IDYuNjQ0MzEgMTUuODMzMiA3LjQ1ODI1TTEyLjU0MTUgMC44MzMyNTJDMTQuMjMyNiAxLjAyMTEyIDE1LjgwOTUgMS43Nzg0IDE3LjAxMzQgMi45ODA3NkMxOC4yMTczIDQuMTgzMTIgMTguOTc2NSA1Ljc1OTA5IDE5LjE2NjUgNy40NDk5Mk0xOC4zMzMyIDE0LjA5OTlWMTYuNTk5OUMxOC4zMzQxIDE2LjgzMiAxOC4yODY2IDE3LjA2MTcgMTguMTkzNiAxNy4yNzQ0QzE4LjEwMDYgMTcuNDg3IDE3Ljk2NDMgMTcuNjc3OSAxNy43OTMzIDE3LjgzNDhDMTcuNjIyMiAxNy45OTE3IDE3LjQyMDMgMTguMTExMiAxNy4yMDA1IDE4LjE4NTVDMTYuOTgwNiAxOC4yNTk5IDE2Ljc0NzcgMTguMjg3NSAxNi41MTY1IDE4LjI2NjZDMTMuOTUyMiAxNy45ODggMTEuNDg5IDE3LjExMTcgOS4zMjQ4NiAxNS43MDgzQzcuMzExMzkgMTQuNDI4OCA1LjYwNDMxIDEyLjcyMTcgNC4zMjQ4NiAxMC43MDgzQzIuOTE2NTEgOC41MzQyNiAyLjA0MDA3IDYuMDU5MDggMS43NjY1MyAzLjQ4MzI1QzEuNzQ1NyAzLjI1MjgxIDEuNzczMDkgMy4wMjA1NSAxLjg0Njk1IDIuODAxMjdDMS45MjA4IDIuNTgxOTkgMi4wMzk1MSAyLjM4MDQ5IDIuMTk1NSAyLjIwOTZDMi4zNTE1IDIuMDM4NzEgMi41NDEzNyAxLjkwMjE4IDIuNzUzMDIgMS44MDg2OUMyLjk2NDY4IDEuNzE1MiAzLjE5MzQ4IDEuNjY2OCAzLjQyNDg2IDEuNjY2NTlINS45MjQ4NkM2LjMyOTI4IDEuNjYyNiA2LjcyMTM2IDEuODA1ODIgNy4wMjggMi4wNjk1M0M3LjMzNDY0IDIuMzMzMjQgNy41MzQ5MyAyLjY5OTQ2IDcuNTkxNTMgMy4wOTk5MkM3LjY5NzA1IDMuODk5OTcgNy44OTI3NCA0LjY4NTUyIDguMTc0ODYgNS40NDE1OUM4LjI4Njk4IDUuNzM5ODYgOC4zMTEyNSA2LjA2NDAxIDguMjQ0NzggNi4zNzU2NUM4LjE3ODMyIDYuNjg3MjkgOC4wMjM5MiA2Ljk3MzM0IDcuNzk5ODYgNy4xOTk5Mkw2Ljc0MTUzIDguMjU4MjVDNy45Mjc4MyAxMC4zNDQ1IDkuNjU1MjQgMTIuMDcyIDExLjc0MTUgMTMuMjU4M0wxMi43OTk5IDEyLjE5OTlDMTMuMDI2NCAxMS45NzU5IDEzLjMxMjUgMTEuODIxNSAxMy42MjQxIDExLjc1NUMxMy45MzU4IDExLjY4ODUgMTQuMjU5OSAxMS43MTI4IDE0LjU1ODIgMTEuODI0OUMxNS4zMTQzIDEyLjEwNyAxNi4wOTk4IDEyLjMwMjcgMTYuODk5OSAxMi40MDgzQzE3LjMwNDcgMTIuNDY1NCAxNy42NzQ0IDEyLjY2OTMgMTcuOTM4NiAxMi45ODEyQzE4LjIwMjkgMTMuMjkzMSAxOC4zNDMzIDEzLjY5MTIgMTguMzMzMiAxNC4wOTk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM4NzdfMTAyMjAzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkNvbnRhY3QgRGV0YWlsczwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5SZW1vdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZGVza3RvcC5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3QgUmVtb3RlbHk8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJlcmVxdWVzdEZhaWxlZCYmKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRWRpdFwiIGNsYXNzPVwiaW5zdGFsLWZhaWxlZCBtYi01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvX0ZpbGUgdXBsb2FkIGljb24uc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi10ZXh0XCI+SW50YWxsYXRpb24gRmFpbGVkIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+UGxlYXNlIGVudGVyIHRoZSByZWFzb24gYmVoaW5kIHRoZSBpbnN0YWxsYXRpb24gZmFpbGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInVwZGF0ZUlzc3VlKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGUgSXNzdWVcclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wZW5lZGlzc3VlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjEgMTJDMjEgNy4wMjkzIDE2Ljk3MDcgMyAxMiAzQzcuMDI5MyAzIDMgNy4wMjkzIDMgMTJDMyAxNi45NzA3IDcuMDI5MyAyMSAxMiAyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi45IDMuMDQ1MDRDMTIuOSAzLjA0NTA0IDE1LjYgNi42MDAwNCAxNS42IDEyTDEyLjkgMy4wNDUwNFpNMTEuMSAyMC45NTVDMTEuMSAyMC45NTUgOC40IDE3LjQgOC40IDEyQzguNCA2LjYwMDA0IDExLjEgMy4wNDUwNCAxMS4xIDMuMDQ1MDRNMy41NjcgMTUuMTVIMTJIMy41NjdaTTMuNTY3IDguODUwMDRIMjAuNDMzSDMuNTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC44OTExIDE3LjMyNTJDMjEuMzM1NyAxNy41OTg4IDIxLjMwNzggMTguMjYzOSAyMC44NTA2IDE4LjMxNjFMMTguNTQwMyAxOC41NzhMMTcuNTA0NCAyMC42NTg4QzE3LjI5OTIgMjEuMDcxOSAxNi42NjQ3IDIwLjg2OTQgMTYuNTU5NCAyMC4zNTgyTDE1LjQyOTkgMTQuODUzOEMxNS4zNDA4IDE0LjQyMTggMTUuNzI5NiAxNC4xNSAxNi4xMDQ5IDE0LjM4MTNMMjAuODkxMSAxNy4zMjUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMC4yNSAxMkMyMC4yNSAxMi40MTQyIDIwLjU4NTggMTIuNzUgMjEgMTIuNzVDMjEuNDE0MiAxMi43NSAyMS43NSAxMi40MTQyIDIxLjc1IDEySDIwLjI1Wk0xMiAyMS43NUMxMi40MTQyIDIxLjc1IDEyLjc1IDIxLjQxNDIgMTIuNzUgMjFDMTIuNzUgMjAuNTg1OCAxMi40MTQyIDIwLjI1IDEyIDIwLjI1VjIxLjc1Wk0xMy40OTczIDIuNTkxNDJDMTMuMjQ2NyAyLjI2MTU2IDEyLjc3NjIgMi4xOTcyNSAxMi40NDY0IDIuNDQ3NzhDMTIuMTE2NSAyLjY5ODMgMTIuMDUyMiAzLjE2ODggMTIuMzAyNyAzLjQ5ODY2TDEzLjQ5NzMgMi41OTE0MlpNMTQuODUgMTJDMTQuODUgMTIuNDE0MyAxNS4xODU4IDEyLjc1IDE1LjYgMTIuNzVDMTYuMDE0MiAxMi43NSAxNi4zNSAxMi40MTQzIDE2LjM1IDEySDE0Ljg1Wk0xMC41MDI3IDIxLjQwODdDMTAuNzUzMyAyMS43Mzg1IDExLjIyMzggMjEuODAyOCAxMS41NTM2IDIxLjU1MjNDMTEuODgzNSAyMS4zMDE4IDExLjk0NzggMjAuODMxMyAxMS42OTczIDIwLjUwMTRMMTAuNTAyNyAyMS40MDg3Wk0xMS42OTczIDMuNDk4NjZDMTEuOTQ3OCAzLjE2ODggMTEuODgzNSAyLjY5ODMgMTEuNTUzNiAyLjQ0Nzc4QzExLjIyMzggMi4xOTcyNSAxMC43NTMzIDIuMjYxNTYgMTAuNTAyNyAyLjU5MTQyTDExLjY5NzMgMy40OTg2NlpNMy41NjcgMTQuNEMzLjE1Mjc5IDE0LjQgMi44MTcgMTQuNzM1OCAyLjgxNyAxNS4xNUMyLjgxNyAxNS41NjQzIDMuMTUyNzkgMTUuOSAzLjU2NyAxNS45VjE0LjRaTTEyIDE1LjlDMTIuNDE0MiAxNS45IDEyLjc1IDE1LjU2NDMgMTIuNzUgMTUuMTVDMTIuNzUgMTQuNzM1OCAxMi40MTQyIDE0LjQgMTIgMTQuNFYxNS45Wk0zLjU2NyA4LjEwMDA0QzMuMTUyNzkgOC4xMDAwNCAyLjgxNyA4LjQzNTgzIDIuODE3IDguODUwMDRDMi44MTcgOS4yNjQyNiAzLjE1Mjc5IDkuNjAwMDQgMy41NjcgOS42MDAwNFY4LjEwMDA0Wk0yMC40MzMgOS42MDAwNEMyMC44NDcyIDkuNjAwMDQgMjEuMTgzIDkuMjY0MjYgMjEuMTgzIDguODUwMDRDMjEuMTgzIDguNDM1ODMgMjAuODQ3MiA4LjEwMDA0IDIwLjQzMyA4LjEwMDA0VjkuNjAwMDRaTTIwLjg5MTEgMTcuMzI1MkwyMS4yODQyIDE2LjY4NjVMMjEuMjg0IDE2LjY4NjRMMjAuODkxMSAxNy4zMjUyWk0yMC44NTA2IDE4LjMxNjFMMjAuOTM1MSAxOS4wNjEzTDIwLjkzNTcgMTkuMDYxM0wyMC44NTA2IDE4LjMxNjFaTTE4LjU0MDMgMTguNTc4TDE4LjQ1NTggMTcuODMyOEwxOC4wNTA2IDE3Ljg3ODdMMTcuODY4OSAxOC4yNDM4TDE4LjU0MDMgMTguNTc4Wk0xNy41MDQ0IDIwLjY1ODhMMTYuODMzIDIwLjMyNDZMMTYuODMyNyAyMC4zMjUyTDE3LjUwNDQgMjAuNjU4OFpNMTYuNTU5NCAyMC4zNTgyTDE1LjgyNDcgMjAuNTA5TDE1LjgyNDggMjAuNTA5NUwxNi41NTk0IDIwLjM1ODJaTTE1LjQyOTkgMTQuODUzOEwxNi4xNjQ2IDE0LjcwM0wxNi4xNjQ0IDE0LjcwMjNMMTUuNDI5OSAxNC44NTM4Wk0xNi4xMDQ5IDE0LjM4MTNMMTUuNzExNCAxNS4wMTk4TDE1LjcxMiAxNS4wMjAxTDE2LjEwNDkgMTQuMzgxM1pNMjEuNzUgMTJDMjEuNzUgNi42MTUwOSAxNy4zODQ5IDIuMjUgMTIgMi4yNVYzLjc1QzE2LjU1NjUgMy43NSAyMC4yNSA3LjQ0MzUxIDIwLjI1IDEySDIxLjc1Wk0xMiAyLjI1QzYuNjE1MDkgMi4yNSAyLjI1IDYuNjE1MDkgMi4yNSAxMkgzLjc1QzMuNzUgNy40NDM1MSA3LjQ0MzUxIDMuNzUgMTIgMy43NVYyLjI1Wk0yLjI1IDEyQzIuMjUgMTcuMzg0OSA2LjYxNTA5IDIxLjc1IDEyIDIxLjc1VjIwLjI1QzcuNDQzNTEgMjAuMjUgMy43NSAxNi41NTY1IDMuNzUgMTJIMi4yNVpNMTIuOSAzLjA0NTA0QzEyLjMwMjcgMy40OTg2NiAxMi4zMDI2IDMuNDk4NDYgMTIuMzAyNCAzLjQ5ODI4QzEyLjMwMjQgMy40OTgyMyAxMi4zMDIzIDMuNDk4MDYgMTIuMzAyMiAzLjQ5Nzk3QzEyLjMwMjEgMy40OTc3OSAxMi4zMDIgMy40OTc2NyAxMi4zMDE5IDMuNDk3NkMxMi4zMDE4IDMuNDk3NDYgMTIuMzAxOSAzLjQ5NzUzIDEyLjMwMjEgMy40OTc4MUMxMi4zMDI1IDMuNDk4MzggMTIuMzAzNiAzLjQ5OTggMTIuMzA1MyAzLjUwMjA2QzEyLjMwODYgMy41MDY1OCAxMi4zMTQ0IDMuNTE0NDcgMTIuMzIyNSAzLjUyNTY3QzEyLjMzODcgMy41NDgwOSAxMi4zNjQxIDMuNTgzNzUgMTIuMzk3MyAzLjYzMjI2QzEyLjQ2MzggMy43MjkyOSAxMi41NjE2IDMuODc3NTIgMTIuNjgwNSA0LjA3MzYxQzEyLjkxODMgNC40NjYwNiAxMy4yMzkzIDUuMDQ4NjMgMTMuNTYxNCA1Ljc5NDc4QzE0LjIwNjEgNy4yODgzNyAxNC44NSA5LjQyNTI2IDE0Ljg1IDEySDE2LjM1QzE2LjM1IDkuMTc0ODMgMTUuNjQzOSA2LjgzNDIyIDE0LjkzODYgNS4yMDAzMUMxNC41ODU3IDQuMzgyNzEgMTQuMjMxNyAzLjczOTAyIDEzLjk2MzMgMy4yOTYxNkMxMy44MjkgMy4wNzQ2IDEzLjcxNTkgMi45MDI5MSAxMy42MzQ3IDIuNzg0NDNDMTMuNTk0MSAyLjcyNTE4IDEzLjU2MTUgMi42NzkyIDEzLjUzODEgMi42NDY5QzEzLjUyNjUgMi42MzA3NSAxMy41MTcxIDIuNjE4MDIgMTMuNTEwMiAyLjYwODc2QzEzLjUwNjggMi42MDQxMyAxMy41MDQgMi42MDAzNiAxMy41MDE4IDIuNTk3NDdDMTMuNTAwNyAyLjU5NjAyIDEzLjQ5OTggMi41OTQ4IDEzLjQ5OTEgMi41OTM3OUMxMy40OTg3IDIuNTkzMjkgMTMuNDk4MyAyLjU5Mjg0IDEzLjQ5OCAyLjU5MjQ0QzEzLjQ5NzkgMi41OTIyNCAxMy40OTc3IDIuNTkxOTkgMTMuNDk3NiAyLjU5MTg5QzEzLjQ5NzQgMi41OTE2NSAxMy40OTczIDIuNTkxNDIgMTIuOSAzLjA0NTA0Wk0xMS4xIDIwLjk1NUMxMS42OTczIDIwLjUwMTQgMTEuNjk3NCAyMC41MDE2IDExLjY5NzYgMjAuNTAxOEMxMS42OTc2IDIwLjUwMTkgMTEuNjk3NyAyMC41MDIgMTEuNjk3OCAyMC41MDIxQzExLjY5NzkgMjAuNTAyMyAxMS42OTggMjAuNTAyNCAxMS42OTgxIDIwLjUwMjVDMTEuNjk4MiAyMC41MDI2IDExLjY5ODEgMjAuNTAyNiAxMS42OTc5IDIwLjUwMjNDMTEuNjk3NSAyMC41MDE3IDExLjY5NjQgMjAuNTAwMyAxMS42OTQ4IDIwLjQ5OEMxMS42OTE0IDIwLjQ5MzUgMTEuNjg1NiAyMC40ODU2IDExLjY3NzUgMjAuNDc0NEMxMS42NjEzIDIwLjQ1MiAxMS42MzU5IDIwLjQxNjMgMTEuNjAyNyAyMC4zNjc4QzExLjUzNjIgMjAuMjcwOCAxMS40Mzg0IDIwLjEyMjYgMTEuMzE5NSAxOS45MjY1QzExLjA4MTcgMTkuNTM0IDEwLjc2MDcgMTguOTUxNSAxMC40Mzg2IDE4LjIwNTNDOS43OTM4OCAxNi43MTE3IDkuMTUgMTQuNTc0OCA5LjE1IDEySDcuNjVDNy42NSAxNC44MjUzIDguMzU2MTMgMTcuMTY1OSA5LjA2MTQyIDE4Ljc5OThDOS40MTQzNCAxOS42MTc0IDkuNzY4MzMgMjAuMjYxMSAxMC4wMzY3IDIwLjcwMzlDMTAuMTcxIDIwLjkyNTUgMTAuMjg0MSAyMS4wOTcyIDEwLjM2NTMgMjEuMjE1N0MxMC40MDU5IDIxLjI3NDkgMTAuNDM4NSAyMS4zMjA5IDEwLjQ2MTkgMjEuMzUzMkMxMC40NzM1IDIxLjM2OTMgMTAuNDgyOSAyMS4zODIxIDEwLjQ4OTggMjEuMzkxM0MxMC40OTMyIDIxLjM5NiAxMC40OTYgMjEuMzk5NyAxMC40OTgyIDIxLjQwMjZDMTAuNDk5MyAyMS40MDQxIDEwLjUwMDIgMjEuNDA1MyAxMC41MDA5IDIxLjQwNjNDMTAuNTAxMyAyMS40MDY4IDEwLjUwMTcgMjEuNDA3MyAxMC41MDIgMjEuNDA3NkMxMC41MDIxIDIxLjQwNzggMTAuNTAyMyAyMS40MDgxIDEwLjUwMjQgMjEuNDA4MkMxMC41MDI2IDIxLjQwODQgMTAuNTAyNyAyMS40MDg3IDExLjEgMjAuOTU1Wk05LjE1IDEyQzkuMTUgOS40MjUyNiA5Ljc5Mzg4IDcuMjg4MzcgMTAuNDM4NiA1Ljc5NDc4QzEwLjc2MDcgNS4wNDg2MyAxMS4wODE3IDQuNDY2MDYgMTEuMzE5NSA0LjA3MzYxQzExLjQzODQgMy44Nzc1MiAxMS41MzYyIDMuNzI5MjkgMTEuNjAyNyAzLjYzMjI2QzExLjYzNTkgMy41ODM3NSAxMS42NjEzIDMuNTQ4MDkgMTEuNjc3NSAzLjUyNTY3QzExLjY4NTYgMy41MTQ0NyAxMS42OTE0IDMuNTA2NTggMTEuNjk0OCAzLjUwMjA2QzExLjY5NjQgMy40OTk4IDExLjY5NzUgMy40OTgzOCAxMS42OTc5IDMuNDk3ODFDMTEuNjk4MSAzLjQ5NzUzIDExLjY5ODIgMy40OTc0NiAxMS42OTgxIDMuNDk3NkMxMS42OTggMy40OTc2NyAxMS42OTc5IDMuNDk3NzkgMTEuNjk3OCAzLjQ5Nzk3QzExLjY5NzcgMy40OTgwNiAxMS42OTc2IDMuNDk4MjMgMTEuNjk3NiAzLjQ5ODI4QzExLjY5NzQgMy40OTg0NiAxMS42OTczIDMuNDk4NjYgMTEuMSAzLjA0NTA0QzEwLjUwMjcgMi41OTE0MiAxMC41MDI2IDIuNTkxNjUgMTAuNTAyNCAyLjU5MTg5QzEwLjUwMjMgMi41OTE5OSAxMC41MDIxIDIuNTkyMjQgMTAuNTAyIDIuNTkyNDRDMTAuNTAxNyAyLjU5Mjg0IDEwLjUwMTMgMi41OTMyOSAxMC41MDA5IDIuNTkzNzlDMTAuNTAwMiAyLjU5NDggMTAuNDk5MyAyLjU5NjAyIDEwLjQ5ODIgMi41OTc0N0MxMC40OTYgMi42MDAzNiAxMC40OTMyIDIuNjA0MTMgMTAuNDg5OCAyLjYwODc2QzEwLjQ4MjkgMi42MTgwMiAxMC40NzM1IDIuNjMwNzUgMTAuNDYxOSAyLjY0NjlDMTAuNDM4NSAyLjY3OTIgMTAuNDA1OSAyLjcyNTE4IDEwLjM2NTMgMi43ODQ0M0MxMC4yODQxIDIuOTAyOTEgMTAuMTcxIDMuMDc0NiAxMC4wMzY3IDMuMjk2MTZDOS43NjgzMyAzLjczOTAyIDkuNDE0MzQgNC4zODI3MSA5LjA2MTQyIDUuMjAwMzFDOC4zNTYxMyA2LjgzNDIyIDcuNjUgOS4xNzQ4MyA3LjY1IDEySDkuMTVaTTMuNTY3IDE1LjlIMTJWMTQuNEgzLjU2N1YxNS45Wk0zLjU2NyA5LjYwMDA0SDIwLjQzM1Y4LjEwMDA0SDMuNTY3VjkuNjAwMDRaTTIwLjQ5OCAxNy45NjM5QzIwLjQ3OTIgMTcuOTUyNCAyMC40NTc1IDE3LjkyNTIgMjAuNDU5NyAxNy44NzI3QzIwLjQ2MDkgMTcuODQzNCAyMC40NzE1IDE3Ljc3NzIgMjAuNTI5NyAxNy43MDU0QzIwLjU5NjEgMTcuNjIzNSAyMC42ODg5IDE3LjU3OTcgMjAuNzY1NSAxNy41NzA5TDIwLjkzNTcgMTkuMDYxM0MyMS42MTY3IDE4Ljk4MzUgMjEuOTM4NCAxOC40MTc5IDIxLjk1ODQgMTcuOTM0NkMyMS45Nzc2IDE3LjQ2ODIgMjEuNzQ3NiAxNi45NzE3IDIxLjI4NDIgMTYuNjg2NUwyMC40OTggMTcuOTYzOVpNMjAuNzY2MSAxNy41NzA5TDE4LjQ1NTggMTcuODMyOEwxOC42MjQ4IDE5LjMyMzJMMjAuOTM1MSAxOS4wNjEzTDIwLjc2NjEgMTcuNTcwOVpNMTcuODY4OSAxOC4yNDM4TDE2LjgzMyAyMC4zMjQ2TDE4LjE3NTggMjAuOTkzMUwxOS4yMTE3IDE4LjkxMjNMMTcuODY4OSAxOC4yNDM4Wk0xNi44MzI3IDIwLjMyNTJDMTYuODY2OCAyMC4yNTY1IDE2LjkzOTUgMjAuMTgzOSAxNy4wMzk4IDIwLjE0OTJDMTcuMTI3NyAyMC4xMTg4IDE3LjE5NCAyMC4xMzE2IDE3LjIyMjEgMjAuMTQwNUMxNy4yNzIgMjAuMTU2NCAxNy4yODk2IDIwLjE4NTcgMTcuMjk0IDIwLjIwNjlMMTUuODI0OCAyMC41MDk1QzE1LjkzNDUgMjEuMDQxOSAxNi4zMjIgMjEuNDI4MSAxNi43NjY4IDIxLjU2OTdDMTcuMjI4NiAyMS43MTY4IDE3Ljg3MDcgMjEuNjA3MyAxOC4xNzYxIDIwLjk5MjVMMTYuODMyNyAyMC4zMjUyWk0xNy4yOTQxIDIwLjIwNzRMMTYuMTY0NiAxNC43MDNMMTQuNjk1MiAxNS4wMDQ2TDE1LjgyNDcgMjAuNTA5TDE3LjI5NDEgMjAuMjA3NFpNMTYuMTY0NCAxNC43MDIzQzE2LjE3MjMgMTQuNzQwNiAxNi4xNjY2IDE0Ljg4MyAxNi4wMjMyIDE0Ljk4MzNDMTUuODggMTUuMDgzNSAxNS43NDQ2IDE1LjA0MDIgMTUuNzExNCAxNS4wMTk4TDE2LjQ5ODQgMTMuNzQyOEMxNi4wODk5IDEzLjQ5MTEgMTUuNTcyNCAxMy40NjggMTUuMTYzMyAxMy43NTQzQzE0Ljc1NCAxNC4wNDA3IDE0LjU5ODQgMTQuNTM1IDE0LjY5NTQgMTUuMDA1M0wxNi4xNjQ0IDE0LjcwMjNaTTE1LjcxMiAxNS4wMjAxTDIwLjQ5ODIgMTcuOTY0TDIxLjI4NCAxNi42ODY0TDE2LjQ5NzggMTMuNzQyNUwxNS43MTIgMTUuMDIwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tzZWxlY3RlZElzc3VlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJjaG9vc2Vhbmlzc3VlKCcnKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgY3Vyc29yLXBvaW50ZXIgYmctd2hpdGUgcHgtMyBweS0yXCI+IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTIwMHB4IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRyb3Bkb3duSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuc2VsZWN0ZWRJc3N1ZSA9PT0gaXRlbSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdJbnRlcm5ldCBJc3N1ZXMnfHxzZWxlY3RlZElzc3VlID09PSAnQ2FtZXJhIElzc3Vlcyd8fHNlbGVjdGVkSXNzdWUgPT09ICdTeXN0ZW0gSXNzdWVzJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWNvbnRlbnQgdy0xMDAgbXQtMiBweC00IHB5LTIgcGItNCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgcHktMlwiICpuZ0lmPVwic2Vjb25kYXJ5SXNzdWVzPy5sZW5ndGg+MFwiPiBQbGVhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsZXZhbnQgcHJvYmxlbSBmYWNpbmcgZnJvbSB0aGUgZm9sbG93aW5nIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2Ygc2Vjb25kYXJ5SXNzdWVzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgbXQtMiBweC00IHB5LTQgY3Vyc29yLXBvaW50ZXIgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGltZyBjbGFzcz1cInBlLTNcIiBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy9GZWF0dXJlZCBpY29uLnBuZyc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0XCI+e3tpc3N1ZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMzAwcHhcIiBbbmdiVG9vbHRpcF09XCJ0b29sdGlwQ29udGVudFwiIHRyaWdnZXJzPVwibW91c2VlbnRlcjptb3VzZWxlYXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtcy0zXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODI2XzQ0ODcxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDY1IDEwLjY2NzNWOC4wMDA2NU04LjAwMDY1IDUuMzMzOThIOC4wMDczMk0xNC42NjczIDguMDAwNjVDMTQuNjY3MyAxMS42ODI2IDExLjY4MjYgMTQuNjY3MyA4LjAwMDY1IDE0LjY2NzNDNC4zMTg3NSAxNC42NjczIDEuMzMzOTggMTEuNjgyNiAxLjMzMzk4IDguMDAwNjVDMS4zMzM5OCA0LjMxODc1IDQuMzE4NzUgMS4zMzM5OCA4LjAwMDY1IDEuMzMzOThDMTEuNjgyNiAxLjMzMzk4IDE0LjY2NzMgNC4zMTg3NSAxNC42NjczIDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODI2XzQ0ODcxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRGVmaW5lIHRvb2x0aXAgY29udGVudCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXRvb2x0aXAtY29udGVudCB0b29sdGlwLWNvbnRlbnQgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ3LTEwMFwiICpuZ0Zvcj1cImxldCB0b29sdGlwSXRlbSBvZiBpc3N1ZT8udG9vbFRpcHNcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwSXRlbT8ubmFtZSB9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZGNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzc3VlLmNoZWNrZWRcIiBjbGFzcz1cInAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpYmVybnRpb25cIiBjbGFzcz1cIiBtYWluY2FyZC1sYWJlbCBmdy1zZW1pYm9sZCBtYi0yXCI+SGliZXJuYXRpb24gKGluIGRheXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0yNTBweCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZS15IHRvcC01MCBtZS01IHBzLTMgdGlja2V0RGF5c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiB0b2dnbGUtb2ZmIHN2Zy1pY29uLTFcIiBbbmdDbGFzc109XCJjb3VudCA9PT0gMCA/ICdwZS1ub25lJyA6ICcnXCIgKGNsaWNrKT1cImRlY3Jlc2VDb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNC42NjYwMiAxMEgxNi4zMzI3XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJoaWJlcm50aW9uXCIgWyhuZ01vZGVsKV09XCJIaWJlcm5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIiB2YWx1ZT1cInt7Y291bnR9fVwiIHBsYWNlaG9sZGVyPVwiMFwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkSXNzdWUgPT09ICdPdGhlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluY2FyZC1jb250ZW50IHctMTAwIG10LTIgcHgtNCBweS0yIHBiLTQgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWxhYmVsIGZ3LXNlbWlib2xkIHB5LTJcIj5QbGVhc2Ugc2VsZWN0IHRoZSByZWxldmFudCBwcm9ibGVtIGZhY2luZyBmcm9tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93aW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvdGhlcnMgb2Ygb3RoZXJzSXNzdWU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFpbmNhcmQtY29udGVudCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIG10LTIgcHgtNCBweS00IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmFkaW9ib3gob3RoZXJzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbWcgY2xhc3M9XCJwZS0zXCIgc3JjPScuL2Fzc2V0cy90YW5nby9JbWFnZXMvRmVhdHVyZWQgaWNvbi5wbmcnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dFwiPnt7b3RoZXJzLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyBjbGFzcz1cIm1zLTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4MjZfNDQ4NzEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwNjUgMTAuNjY3M1Y4LjAwMDY1TTguMDAwNjUgNS4zMzM5OEg4LjAwNzMyTTE0LjY2NzMgOC4wMDA2NUMxNC42NjczIDExLjY4MjYgMTEuNjgyNiAxNC42NjczIDguMDAwNjUgMTQuNjY3M0M0LjMxODc1IDE0LjY2NzMgMS4zMzM5OCAxMS42ODI2IDEuMzMzOTggOC4wMDA2NUMxLjMzMzk4IDQuMzE4NzUgNC4zMTg3NSAxLjMzMzk4IDguMDAwNjUgMS4zMzM5OEMxMS42ODI2IDEuMzMzOTggMTQuNjY3MyA0LjMxODc1IDE0LjY2NzMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4MjZfNDQ4NzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvR3JvdXB7e2l9fVwiIFt2YWx1ZV09XCJvdGhlcnMubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkT3B0aW9uXCIgY2xhc3M9XCJwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoaWJlcm50aW9uXCIgY2xhc3M9XCIgbWFpbmNhcmQtbGFiZWwgZnctc2VtaWJvbGQgbWItMlwiPkhpYmVybmF0aW9uIChpbiBkYXlzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHctMjUwcHggcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRyYW5zbGF0ZS1taWRkbGUteSB0b3AtNTAgbWUtNSBwcy0zIHRpY2tldERheXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9mZiBzdmctaWNvbi0xXCIgW25nQ2xhc3NdPVwiY291bnQgPT09IDAgPyAncGUtbm9uZScgOiAnJ1wiIChjbGljayk9XCJkZWNyZXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuNjY2MDIgMTBIMTYuMzMyN1wiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiaGliZXJudGlvblwiIFsobmdNb2RlbCldPVwiSGliZXJuYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIgdmFsdWU9XCJ7e2NvdW50fX1cIiBwbGFjZWhvbGRlcj1cIlwiIHJlYWRPbmx5IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlLXkgdG9wLTUwIGVuZC0wIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gdG9nZ2xlLW9uIHN2Zy1pY29uLTEgdGlja2V0RGF5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjQ5OTMgNC4xNjY1VjE1LjgzMzJNNC42NjYwMiA5Ljk5OTg0SDE2LjMzMjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIHZpZXdUaWNrZXREYXRhO2xldCBpPWluZGV4XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhvcml6b250YWwgbGluZSB3aXRoIGRheSAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgcC0wIHctMTAwIG1lLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYXkgZnctYm9sZC00MDBcIj5Ub2RheTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgcC0wIHctMTAwIG1zLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBVc2VyIGNvZGUgc3RhcnQgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvbkJ5ID09PSAnVXNlcidcIiBjbGFzcz1cImQtZmxleCBtcy01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNDhweCBzeW1ib2wtY2lyY2xlXCIgKm5nSWY9XCJvYmo/LklkZW50aWZpZWRCeSYmb2JqPy5JZGVudGlmaWVkQnkhPT0nJyYmb2JqPy5JZGVudGlmaWVkQnkhPT0nVGFuZ28nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtc3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnMtNCBiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uSWRlbnRpZmllZEJ5Py5zbGljZSgwLDIpIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFvYmo/LklkZW50aWZpZWRCeXx8b2JqPy5JZGVudGlmaWVkQnk9PT0nJ3x8b2JqPy5JZGVudGlmaWVkQnk9PT0nVGFuZ28nXCIgY2xhc3M9XCJtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3RhbmdvcHJvZmlsZS5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSB2ZXJ0aWNhbExpbmVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTMgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGRcIj57e29iaj8uSWRlbnRpZmllZEJ5P29iaj8uSWRlbnRpZmllZEJ5OlwiVGFuZ29cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGRhdGVkZGF0ZSBweC0zIHB0LTEgZnctYm9sZC00MDBcIj57e29iaj8udGltZVN0YW1wfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlICE9PSdzdGF0dXNDaGFuZ2UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmb250LWJvbGQtNDAwXCI+VXNlciBoYXMgcmVwbGllZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdzdGF0dXNDaGFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBwZS0zIHB0LTEgZnctYm9sZC00MDBcIj5VcGRhdGVkIHRoZSBzdGF0dXM8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5PcGVuIC0+IElucHJvZ3Jlc3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnc3RhdHVzQ2hlY2tSZXBseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5Jc3N1ZSBoYXMgYmVlbiA8Yj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT09J05vJ1wiPm5vdDwvc3Bhbj4gcmVzb2x2ZWQuPC9iPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiICpuZ0lmPVwib2JqLnN0YXR1c0NoZWNrUmVwbHk9PT0nTm8nXCI+IEl0IHRha2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uaGliZXJuYXRpb25EYXlzfX0gbW9yZSBkYXlzIHRvIHJlc29sdmUuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29tbWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0naXNzdWVVcGRhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1zZW1pYm9sZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UncmUgY3VycmVudGx5IGVuY291bnRlcmluZyBhbiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tyZXMucHJpbWFyeUlzc3VlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXMucHJpbWFyeUlzc3VlID09PSdDYW1lcmEgSXNzdWVzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3R3b3JraW5nQ2FtYXJhbGlzdCAmJiBub3R3b3JraW5nQ2FtYXJhbGlzdD8ubGVuZ3RoXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBub3R3b3JraW5nQ2FtYXJhbGlzdFwiIGNsYXNzPVwiY29sLXNtLTMgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW4gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPnt7aXRlbS5jYW1lcmFOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTMgbWUtMlwiPlRoZSBhYm92ZSBjYW1lcmEgc3RyZWFtaW5nIGFyZSBub3Qgd29ya2luZyBkdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTcwMCBtdC0zXCIgKm5nRm9yPVwibGV0IGlzc3VlIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWU7IGxldCBsYXN0ID0gbGFzdFwiPnt7aXNzdWU/Lm5hbWV9fSA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhc3RcIj4gLDwvbmctY29udGFpbmVyPjwvc3Bhbj4gdG8gdGhlIENhbWVyYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlcz8uc2Vjb25kYXJ5SXNzdWUgJiYgcmVzPy5zZWNvbmRhcnlJc3N1ZT8ubGVuZ3RoXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2luZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFVzZXIgY29kZSBlbmQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFuZ28gY29kZSBzdGFydCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1RhbmdvJ1wiIGNsYXNzPVwiZC1mbGV4IG1iLTUgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBwZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC00OHB4IHN5bWJvbC1jaXJjbGVcIiAqbmdJZj1cIm9iaj8uSWRlbnRpZmllZEJ5JiZvYmo/LklkZW50aWZpZWRCeSE9PScnJiZvYmo/LklkZW50aWZpZWRCeSE9PSdUYW5nbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJhZGdlLWxpZ2h0LXByaW1hcnkgdGV4dC1zeW1ib2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSBmcy00IGJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgZnctbm9ybWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5JZGVudGlmaWVkQnk/LnNsaWNlKDAsMikgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiIW9iaj8uSWRlbnRpZmllZEJ5fHxvYmo/LklkZW50aWZpZWRCeT09PScnfHxvYmo/LklkZW50aWZpZWRCeT09PSdUYW5nbydcIiBjbGFzcz1cIm1zZ3Byb2ZpbGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGFuZ29wcm9maWxlLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSB2ZXJ0aWNhbExpbmVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTMgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7e29iai5hY3Rpb25UeXBlfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGRcIj57e29iaj8uSWRlbnRpZmllZEJ5P29iaj8uSWRlbnRpZmllZEJ5OlwiVGFuZ29cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwZGF0ZWRkYXRlIGZ3LWJvbGQtNDAwIHB4LTMgcHQtMVwiPnt7b2JqPy50aW1lU3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICBjbGFzcz1cInByb2ZpbGUtbGFiZWwgZnctYm9sZC00MDBcIj50YW5nbyBoYXMgcmVwbGllZCB0byB0aGUgaXNzdWU8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdzdGF0dXNDaGFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtcHJpbWFyeVwiPk9wZW4gLT4gSW5wcm9ncmVzczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29tbWVudCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMCB0ZXh0LXdyYXBcIj57e29iaj8uY29tbWVudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3ByZXJlcXVlc3RjaGVja3N0YXJ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+U3RhcnRlZCB0aGU8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltaW5ndGV4dCBmdy1zZW1pYm9sZCB0ZXh0LXByaW1hcnlcIj5QcmUtUmVxdWlzaXRlIENoZWNrPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0gJ3ByZXJlcXVlc3RjaGVja2ZhaWxlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPlByb2Nlc3MgZmFpbGVkIG9uPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWluZ3RleHQgZnctc2VtaWJvbGQgdGV4dC1wcmltYXJ5XCI+UHJlLVJlcXVpc2l0ZSBDaGVjazwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09ICdmZXRjaGNhbWVyYSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHBlLTMgcHQtMSBmdy1ib2xkLTQwMFwiPlVwZGF0ZWQgdGhlIHN0YXR1czwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LXNlbWlib2xkIHRleHQtcHJpbWFyeVwiPlByZS1SZXF1aXNpdGUgQ2hlY2sgLT4gRmV0Y2hjYW1lcmE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSAnY29uZmlndXJlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcGUtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+VXBkYXRlZCB0aGUgc3RhdHVzPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWluZ3RleHQgZnctc2VtaWJvbGQgdGV4dC1wcmltYXJ5XCI+IEZldGNoY2FtZXJhIC0+IENvbmZpZ3VyaW5nPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0naXNzdWVVcGRhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1zZW1pYm9sZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UncmUgY3VycmVudGx5IGVuY291bnRlcmluZyBhbiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tyZXMucHJpbWFyeUlzc3VlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXMucHJpbWFyeUlzc3VlID09PSdDYW1lcmEgSXNzdWVzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdHdvcmtpbmdDYW1hcmFsaXN0XCIgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW4gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPnt7aXRlbS5jYW1lcmFOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0/LnRodW1ibmFpbEltYWdlXCIgc3R5bGU9XCJoZWlnaHQ6MTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTMgbWUtMlwiPlRoZSBhYm92ZSBjYW1lcmEgc3RyZWFtaW5nIGFyZSBub3Qgd29ya2luZyBkdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTcwMCBtdC0zXCIgKm5nRm9yPVwibGV0IGlzc3VlIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWU7IGxldCBsYXN0ID0gbGFzdFwiPnt7aXNzdWU/Lm5hbWV9fSA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxhc3RcIj4gLDwvbmctY29udGFpbmVyPjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+dG8gdGhlIENhbWVyYTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDAgbWItM1wiPlRoZSBmb2xsb3dpbmcgYXJlIHRoZSByZWxldmFudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2luZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbWItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VjSXNzdWVzIG9mIHJlcz8uc2Vjb25kYXJ5SXNzdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0nc3RlcHNUb1Jlc29sdmUnXCIgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDBcIj5QbGVhc2UgZm9sbG93IHRoZSBiZWxvdyBzdGVwcyB0byByZXNvbHZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGQgbWItMVwiPnt7cmVzLnByaW1hcnlJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkLTQwMCBtYi0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIGNvZGUgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dTdWJtaXQmJihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNvbW1lbnRzXCIgKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgeW91ciBjb21tZW50cy4uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiBtdWx0aXBsZSAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0aWNrZXRJbmZvPy5zdGF0dXMgPT09ICdjbG9zZWQnXCIgKGNsaWNrKT1cIm9wZW5GaWxlSW5wdXQoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTNcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODM1TDEwLjIwODIgMTYuODY2N0M5LjI3MDA1IDE3LjgwNDkgNy45OTc1NyAxOC4zMzIgNi42NzA3NSAxOC4zMzJDNS4zNDM5MyAxOC4zMzIgNC4wNzE0NSAxNy44MDQ5IDMuMTMzMjUgMTYuODY2N0MyLjE5NTA1IDE1LjkyODUgMS42Njc5NyAxNC42NTYgMS42Njc5NyAxMy4zMjkyQzEuNjY3OTcgMTIuMDAyNCAyLjE5NTA1IDEwLjcyOTkgMy4xMzMyNSA5Ljc5MTY4TDEwLjc5MTYgMi4xMzMzNUMxMS40MTcxIDEuNTA3ODggMTIuMjY1NCAxLjE1NjQ5IDEzLjE0OTkgMS4xNTY0OUMxNC4wMzQ1IDEuMTU2NDkgMTQuODgyOCAxLjUwNzg4IDE1LjUwODIgMi4xMzMzNUMxNi4xMzM3IDIuNzU4ODIgMTYuNDg1MSAzLjYwNzEzIDE2LjQ4NTEgNC40OTE2OEMxNi40ODUxIDUuMzc2MjMgMTYuMTMzNyA2LjIyNDU1IDE1LjUwODIgNi44NTAwMkw3Ljg0MTU4IDE0LjUwODNDNy41Mjg4NSAxNC44MjExIDcuMTA0NjkgMTQuOTk2OCA2LjY2MjQyIDE0Ljk5NjhDNi4yMjAxNCAxNC45OTY4IDUuNzk1OTggMTQuODIxMSA1LjQ4MzI1IDE0LjUwODNDNS4xNzA1MSAxNC4xOTU2IDQuOTk0ODIgMTMuNzcxNSA0Ljk5NDgyIDEzLjMyOTJDNC45OTQ4MiAxMi44ODY5IDUuMTcwNTEgMTIuNDYyNyA1LjQ4MzI1IDEyLjE1TDEyLjU1ODIgNS4wODMzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidGlja2V0SW5mbz8uc3RhdHVzID09PSAnY2xvc2VkJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTNcIiAoY2xpY2spPVwidXBkYXRlVGlja2V0KClcIj4gU3VibWl0IDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIG1zLTMgdGV4dC1ub3dyYXBcIj48c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zOTE3XzU0NjIxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NDM1IDcuNTAwMDhDNy43NzAyNyA2Ljk0MzE0IDguMTU2OTggNi40NzM1IDguNjY1OTggNi4xNzQzNkM5LjE3NDk4IDUuODc1MjEgOS43NzM0MyA1Ljc2NTg2IDEwLjM1NTMgNS44NjU2N0MxMC45MzcyIDUuOTY1NDkgMTEuNDY1IDYuMjY4MDIgMTEuODQ1MiA2LjcxOTY5QzEyLjIyNTUgNy4xNzEzNiAxMi40MzM2IDcuNzQzMDIgMTIuNDMyNyA4LjMzMzQyQzEyLjQzMjcgMTAuMDAwMSA5LjkzMjY4IDEwLjgzMzQgOS45MzI2OCAxMC44MzM0TTkuOTk5MzUgMTQuMTY2N0gxMC4wMDc3TTE4LjMzMjcgMTAuMDAwMUMxOC4zMzI3IDE0LjYwMjUgMTQuNjAxNyAxOC4zMzM0IDkuOTk5MzUgMTguMzMzNEM1LjM5Njk4IDE4LjMzMzQgMS42NjYwMiAxNC42MDI1IDEuNjY2MDIgMTAuMDAwMUMxLjY2NjAyIDUuMzk3NzEgNS4zOTY5OCAxLjY2Njc1IDkuOTk5MzUgMS42NjY3NUMxNC42MDE3IDEuNjY2NzUgMTguMzMyNyA1LjM5NzcxIDE4LjMzMjcgMTAuMDAwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM5MTdfNTQ2MjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IENhbuKAmXQgYWJsZSB0byByZWFjaCB0aGUgc3RvcmU/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiA+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXkgcm91bmRlZC0zIHAtNSBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEgZnctc2VtaWJvbGRcIj5BdHRhY2htZW50czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aWNrZXRJbmZvPy5hdHRhY2htZW50cy5sZW5ndGggPT09MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDAgbXQtMTAgbWItMTAgbWgtNjB2aCBkLWdyaWQgdGV4dC1jZW50ZXIgbXgtYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXgtYXV0b1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy90YWtldGlja2V0LnN2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRha2V0aWNrZXQgbXQtMiBmdy1ib2xkXCI+Tm8gQXR0YWNobWVudHMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aWNrZXRJbmZvPy5hdHRhY2htZW50cy5sZW5ndGggPiAwXCIgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgdGlja2V0SW5mbz8uYXR0YWNobWVudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJBdHRhY2htZW50IGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheSB3LTEwMCByb3VuZGVkLTIgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImgtMTUwcHhcIiAgKGNsaWNrKT1cImRvd25sb2FkaW1hZ2UoZmlsZT8uc2lnbmVkVXJsKVwiIFtzcmNdPVwiZmlsZT8uc2lnbmVkVXJsXCIgYWx0PVwiU2VsZWN0ZWQgSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIGJvcmRlciBib3JkZXItdG9wLTEgcHgtNSBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1hZ2VuYW1lIGZ3LWJvbGRcIj57e2ZpbGUuZmlsZW5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImZ3LWJvbGQtNDAwIHVwZGF0ZWRkYXRlXCI+e3tmaWxlLmxhc3RNb2RpZmllZERhdGVTdHJpbmd9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj4iXX0=
|