tango-app-ui-auth 3.0.5 → 3.0.7

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.
@@ -1,27 +1,120 @@
1
1
  import { Component } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/router";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "../../services/auth.service";
7
+ import * as i4 from "tango-app-ui-shared";
8
+ import * as i5 from "@angular/common";
4
9
  export class TangoAuthLoginComponent {
5
10
  router;
6
11
  route;
12
+ fb;
13
+ service;
14
+ gs;
15
+ toastService;
16
+ defaultAuth = {
17
+ email: "admin@demo.com",
18
+ password: "demo",
19
+ };
20
+ hasError;
7
21
  returnUrl;
8
- constructor(router, route) {
22
+ show = false;
23
+ loginForm;
24
+ credentials = {
25
+ email: null,
26
+ password: null,
27
+ };
28
+ isLoading;
29
+ authlocalStorageToken;
30
+ constructor(router, route, fb, service, gs, toastService) {
9
31
  this.router = router;
10
32
  this.route = route;
33
+ this.fb = fb;
34
+ this.service = service;
35
+ this.gs = gs;
36
+ this.toastService = toastService;
37
+ this.gs.environment.subscribe((env) => {
38
+ if (env) {
39
+ this.authlocalStorageToken = `${env.appVersion}-${env.USERDATA_KEY}`;
40
+ }
41
+ });
42
+ if (this.service.currentUserValue) {
43
+ this.router.navigate(["/"]);
44
+ }
11
45
  }
12
46
  ngOnInit() {
47
+ this.initForm();
48
+ // this.userProfile();
13
49
  // get return url from route parameters or default to '/'
14
- this.returnUrl = this.route.snapshot.queryParams['returnUrl'.toString()] || '/';
50
+ this.returnUrl =
51
+ this.route.snapshot.queryParams["returnUrl".toString()] || "/";
15
52
  }
16
- onClick() {
17
- localStorage.setItem('isLoggedIn', 'true');
18
- this.router.navigateByUrl(this.returnUrl);
53
+ initForm() {
54
+ this.loginForm = this.fb.group({
55
+ email: [
56
+ this.defaultAuth.email,
57
+ Validators.compose([
58
+ Validators.required,
59
+ Validators.email,
60
+ Validators.minLength(3),
61
+ Validators.maxLength(320),
62
+ ]),
63
+ ],
64
+ password: [
65
+ this.defaultAuth.password,
66
+ Validators.compose([
67
+ Validators.required,
68
+ Validators.minLength(3),
69
+ Validators.maxLength(100),
70
+ ]),
71
+ ],
72
+ });
19
73
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", ngImport: i0, template: "<p>tango-auth-login works!</p>\r\n\r\n\r\n<button (click)=\"onClick()\">Log In</button>", styles: [""] });
74
+ onLogin() {
75
+ this.hasError = false;
76
+ this.isLoading = true;
77
+ this.show = false;
78
+ this.service.login(this.credentials).subscribe({
79
+ next: (res) => {
80
+ console.log(res);
81
+ let loginToken = localStorage.getItem(this.authlocalStorageToken) || undefined;
82
+ if (loginToken) {
83
+ loginToken = JSON.parse(loginToken);
84
+ }
85
+ // if (res && res.code == 200) {
86
+ localStorage.setItem(this.authlocalStorageToken, JSON.stringify(res?.data?.result));
87
+ this.userProfile();
88
+ // }
89
+ },
90
+ error: (err) => {
91
+ this.hasError = true;
92
+ this.toastService.getErrorToast(err.error);
93
+ },
94
+ });
95
+ }
96
+ userProfile() {
97
+ this.service.userProfileDet().subscribe({
98
+ next: (res) => {
99
+ if (res && res.code == 200) {
100
+ // this.router.navigate(['/manage/brands']);
101
+ this.router.navigateByUrl(this.returnUrl);
102
+ }
103
+ },
104
+ error: (err) => {
105
+ this.hasError = true;
106
+ this.toastService.getErrorToast(err.error);
107
+ },
108
+ });
109
+ }
110
+ showPassword() {
111
+ this.show = !this.show;
112
+ }
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.FormBuilder }, { token: i3.AuthService }, { token: i4.GlobalStateService }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin w-100\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Brand\" class=\"form-label\">Email</label>\r\n <input type=\"type\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Brand\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n\r\n <h6 class=\"forgot\">Forgot Password</h6>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> </button>\r\n <button class=\"btn btn-outline w-100 mt-3\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
22
115
  }
23
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, decorators: [{
24
117
  type: Component,
25
- args: [{ selector: 'lib-tango-auth-login', template: "<p>tango-auth-login works!</p>\r\n\r\n\r\n<button (click)=\"onClick()\">Log In</button>" }]
26
- }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDOzs7QUFRMUQsTUFBTSxPQUFPLHVCQUF1QjtJQUtkO0lBQXVCO0lBSDNDLFNBQVMsQ0FBUztJQUdsQixZQUFvQixNQUFhLEVBQVUsS0FBb0I7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFVLFVBQUssR0FBTCxLQUFLLENBQWU7SUFFL0QsQ0FBQztJQUNELFFBQVE7UUFDTix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxPQUFPO1FBQ0wsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7dUdBaEJVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDREQ1JwQyx5RkFHMkM7OzJGREs5Qix1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhbmdvLWF1dGgtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhbmdvQXV0aExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcmV0dXJuVXJsOiBzdHJpbmc7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjpSb3V0ZXIsIHByaXZhdGUgcm91dGU6QWN0aXZhdGVkUm91dGUpe1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBnZXQgcmV0dXJuIHVybCBmcm9tIHJvdXRlIHBhcmFtZXRlcnMgb3IgZGVmYXVsdCB0byAnLydcclxuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncmV0dXJuVXJsJy50b1N0cmluZygpXSB8fCAnLyc7ICAgICAgXHJcbiAgfVxyXG5cclxuICBvbkNsaWNrKCl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaXNMb2dnZWRJbicsICd0cnVlJylcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5VcmwpXHJcbiAgfVxyXG59XHJcbiIsIjxwPnRhbmdvLWF1dGgtbG9naW4gd29ya3MhPC9wPlxyXG5cclxuXHJcbjxidXR0b24gKGNsaWNrKT1cIm9uQ2xpY2soKVwiPkxvZyBJbjwvYnV0dG9uPiJdfQ==
118
+ args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin w-100\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Brand\" class=\"form-label\">Email</label>\r\n <input type=\"type\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Brand\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n\r\n <h6 class=\"forgot\">Forgot Password</h6>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> </button>\r\n <button class=\"btn btn-outline w-100 mt-3\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}\n"] }]
119
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.AuthService }, { type: i4.GlobalStateService }, { type: i4.ToastService }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVl6RCxNQUFNLE9BQU8sdUJBQXVCO0lBZ0J4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFwQlYsV0FBVyxHQUFRO1FBQ2pCLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsUUFBUSxFQUFFLE1BQU07S0FDakIsQ0FBQztJQUNGLFFBQVEsQ0FBVTtJQUNsQixTQUFTLENBQVM7SUFDbEIsSUFBSSxHQUFZLEtBQUssQ0FBQztJQUN0QixTQUFTLENBQU07SUFDZixXQUFXLEdBQVE7UUFDakIsS0FBSyxFQUFFLElBQUk7UUFDWCxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7SUFDRixTQUFTLENBQVU7SUFDWCxxQkFBcUIsQ0FBTTtJQUNuQyxZQUNVLE1BQWMsRUFDZCxLQUFxQixFQUNyQixFQUFlLEVBQ2YsT0FBb0IsRUFDcEIsRUFBc0IsRUFDdEIsWUFBMEI7UUFMMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRWxDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3RFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsc0JBQXNCO1FBQ3RCLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLEtBQUssRUFBRTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ3RCLFVBQVUsQ0FBQyxPQUFPLENBQUM7b0JBQ2pCLFVBQVUsQ0FBQyxRQUFRO29CQUNuQixVQUFVLENBQUMsS0FBSztvQkFDaEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO2lCQUMxQixDQUFDO2FBQ0g7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2dCQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDO29CQUNqQixVQUFVLENBQUMsUUFBUTtvQkFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO2lCQUMxQixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsSUFBSSxVQUFVLEdBQ1osWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxTQUFTLENBQUM7Z0JBQ2hFLElBQUksVUFBVSxFQUFFO29CQUNkLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNyQztnQkFDRCxnQ0FBZ0M7Z0JBQzlCLFlBQVksQ0FBQyxPQUFPLENBQ2xCLElBQUksQ0FBQyxxQkFBcUIsRUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUNsQyxDQUFDO2dCQUVGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsSUFBSTtZQUNOLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3RDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxJQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUcsR0FBRyxFQUFFO29CQUN4Qiw0Q0FBNEM7b0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDM0M7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO3VHQTFHVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qiw0RENicEMsNGdPQWtITTs7MkZEckdPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdGFuZ28tYXV0aC1sb2dpblwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFuZ29BdXRoTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRlZmF1bHRBdXRoOiBhbnkgPSB7XHJcbiAgICBlbWFpbDogXCJhZG1pbkBkZW1vLmNvbVwiLFxyXG4gICAgcGFzc3dvcmQ6IFwiZGVtb1wiLFxyXG4gIH07XHJcbiAgaGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgcmV0dXJuVXJsOiBzdHJpbmc7XHJcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvZ2luRm9ybTogYW55O1xyXG4gIGNyZWRlbnRpYWxzOiBhbnkgPSB7XHJcbiAgICBlbWFpbDogbnVsbCxcclxuICAgIHBhc3N3b3JkOiBudWxsLFxyXG4gIH07XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgYXV0aGxvY2FsU3RvcmFnZVRva2VuOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgc2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbiA9IGAke2Vudi5hcHBWZXJzaW9ufS0ke2Vudi5VU0VSREFUQV9LRVl9YDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL1wiXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpO1xyXG4gICAgLy8gdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgLy8gZ2V0IHJldHVybiB1cmwgZnJvbSByb3V0ZSBwYXJhbWV0ZXJzIG9yIGRlZmF1bHQgdG8gJy8nXHJcbiAgICB0aGlzLnJldHVyblVybCA9XHJcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJyZXR1cm5VcmxcIi50b1N0cmluZygpXSB8fCBcIi9cIjtcclxuICB9XHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZW1haWw6IFtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBdXRoLmVtYWlsLFxyXG4gICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5lbWFpbCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIwKSxcclxuICAgICAgICBdKSxcclxuICAgICAgXSxcclxuICAgICAgcGFzc3dvcmQ6IFtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBdXRoLnBhc3N3b3JkLFxyXG4gICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICBdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uTG9naW4oKSB7XHJcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VydmljZS5sb2dpbih0aGlzLmNyZWRlbnRpYWxzKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2cocmVzKVxyXG4gICAgICAgIGxldCBsb2dpblRva2VuOiBhbnkgPVxyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW4pIHx8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAobG9naW5Ub2tlbikge1xyXG4gICAgICAgICAgbG9naW5Ub2tlbiA9IEpTT04ucGFyc2UobG9naW5Ub2tlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW4sXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlcz8uZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVyci5lcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVzZXJQcm9maWxlKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVzZXJQcm9maWxlRGV0KCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMmJiByZXMuY29kZSA9PTIwMCkge1xyXG4gICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL2JyYW5kcyddKTtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZXR1cm5VcmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVyci5lcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dQYXNzd29yZCgpIHtcclxuICAgIHRoaXMuc2hvdyA9ICF0aGlzLnNob3c7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGxvZ290ZXh0IHB4LTBcIj5cclxuICAgIDxpbWcgIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL2xvZ2luLWJhY2tncm91bmQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuPCEtLSBcclxuPGJ1dHRvbiAoY2xpY2spPVwib25DbGljaygpXCI+TG9nIEluPC9idXR0b24+IC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDwhLS0gc3R5bGU9XCJwYWRkaW5nOiA5NnB4IDE0MnB4IDk2cHggMTQycHg7XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBwb3NpdGlvbi1hYnNvbHV0ZVwiID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBlLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL0xIUy5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiaW1nLWZsdWlkXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcHMtMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+IFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgIFxyXG4gICAgIFxyXG5cclxuXHJcbiAgICBcclxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWZvcm0gbG9naW4tc2lnbmluIHctMTAwXCI+XHJcbiAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWJldHdlZW4gdGl0bGUtcGFkZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXktMTAgbXMtMTBcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwibG9naW4tdGl0bGVcIj5Mb2cgaW48L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImxvZ2luLXN1Yi10aXRsZVwiPldlbGNvbWUgYmFjayEgUGxlYXNlIGVudGVyIHlvdXIgZGV0YWlscy48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxmb3JtICNsb2dpbkZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cInctMTAwIHRpdGxlLXBhZGRpbmdcIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNSBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiQnJhbmRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWFpbDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0eXBlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIkVtYWlsXCIgbmFtZT1cIkVtYWlsXCIgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIFsobmdNb2RlbCldPVwiY3JlZGVudGlhbHMuZW1haWxcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJCcmFuZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgbWItM1wiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIlBhc3N3b3JkXCIgW3R5cGVdPVwic2hvdyA/ICd0ZXh0JyA6ICdwYXNzd29yZCdcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCIgbmFtZT1cInBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNyZWRlbnRpYWxzLnBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInNob3dQYXNzd29yZCgpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gcG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZSB0b3AtNTAgZW5kLTAgbWUtbjJcIlxyXG4gICAgICAgICAgICAgIGRhdGEta3QtcGFzc3dvcmQtbWV0ZXItY29udHJvbD1cInZpc2liaWxpdHlcIj5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cInNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFzaG93XCIgY2xhc3M9XCJmYSBmYS1leWUtc2xhc2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBzdHlsZT1cImNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XCI+XHJcbiAgICAgICAgICAgIEVtYWlsIElkIC8gTW9iaWxlIE51bWJlciBvciBQYXNzd29yZCBpcyBpbmNvcnJlY3RcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aDYgY2xhc3M9XCJmb3Jnb3RcIj5Gb3Jnb3QgUGFzc3dvcmQ8L2g2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG10LTNcIiBbZGlzYWJsZWRdPVwiIWxvZ2luRm9ybS52YWxpZCB8fCAoIWNyZWRlbnRpYWxzLmVtYWlsIHx8ICFjcmVkZW50aWFscy5wYXNzd29yZClcIiAoY2xpY2spPVwib25Mb2dpbigpXCI+U2lnbiBpbjwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNzI3XzE3NzU5KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMjQuMjY2MyAxMi45NzY3QzI0LjI2NjMgMTIuMTYxIDI0LjIwMDEgMTEuMzQwOCAyNC4wNTkgMTAuNTM4M0gxMi43NDAyVjE1LjE1OTNIMTkuMjIyQzE4Ljk1MyAxNi42NDk3IDE4LjA4ODggMTcuOTY4MSAxNi44MjMzIDE4LjgwNThWMjEuODA0MkgyMC42OTAzQzIyLjk2MTEgMTkuNzE0MiAyNC4yNjYzIDE2LjYyNzYgMjQuMjY2MyAxMi45NzY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM0Mjg1RjRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzQwMSAyNC43MDFDMTUuOTc2NiAyNC43MDEgMTguNzA1OSAyMy42Mzg0IDIwLjY5NDUgMjEuODA0MUwxNi44Mjc2IDE4LjgwNTdDMTUuNzUxNyAxOS41Mzc3IDE0LjM2MjcgMTkuOTUyMiAxMi43NDQ1IDE5Ljk1MjJDOS42MTM4OCAxOS45NTIyIDYuOTU5NDYgMTcuODQwMSA2LjAwNzA1IDE1LjAwMDVIMi4wMTY2VjE4LjA5MTRDNC4wNTM3MSAyMi4xNDM2IDguMjAyOSAyNC43MDEgMTIuNzQwMSAyNC43MDFaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzM0QTg1M1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAwMjc3IDE1LjAwMDRDNS41MDAxMSAxMy41MTAxIDUuNTAwMTEgMTEuODk2MiA2LjAwMjc3IDEwLjQwNTlWNy4zMTQ5NEgyLjAxNjc0QzAuMzE0NzM0IDEwLjcwNTcgMC4zMTQ3MzQgMTQuNzAwNiAyLjAxNjc0IDE4LjA5MTNMNi4wMDI3NyAxNS4wMDA0WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGQkJDMDRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzQwMSA1LjQ0OTg2QzE0LjQ1MDkgNS40MjM0IDE2LjEwNDQgNi4wNjcxNiAxNy4zNDM0IDcuMjQ4ODZMMjAuNzY5NSAzLjgyMjgxQzE4LjYwMDEgMS43ODU3IDE1LjcyMDggMC42NjU3MjkgMTIuNzQwMSAwLjcwMTAwNEM4LjIwMjkgMC43MDEwMDQgNC4wNTM3MSAzLjI1ODQyIDIuMDE2NiA3LjMxNUw2LjAwMjY0IDEwLjQwNTlDNi45NTA2NCA3LjU2MTkzIDkuNjA5NDcgNS40NDk4NiAxMi43NDAxIDUuNDQ5ODZaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0VBNDMzNVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzcyN18xNzc1OVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUgMC43MDAxOTUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTJcIj5TaWduIGluIHdpdGggR29vZ2xlPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNzI3XzYxNDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuOTA1NyAxMi4xMDRIMC41VjAuNzAwMTk1SDExLjkwNTdWMTIuMTA0WlwiIGZpbGw9XCIjRjE1MTFCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNC41MDA0IDEyLjEwNEgxMy4wOTM4VjAuNzAwMTk1SDI0LjQ5OTRWMTIuMTA0SDI0LjUwMDRaXCIgZmlsbD1cIiM4MENDMjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjkwNTcgMjQuNzAwMkgwLjVWMTMuMjk2NEgxMS45MDU3VjI0LjcwMDJaXCIgZmlsbD1cIiMwMEFERUZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI0LjUwMDQgMjQuNzAwMkgxMy4wOTM4VjEzLjI5NjRIMjQuNDk5NFYyNC43MDAySDI0LjUwMDRaXCIgZmlsbD1cIiNGQkJDMDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfNjE0MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUgMC43MDAxOTUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTJcIj5TaWduIGluIHdpdGggTWljcm9zb2Z0PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyIG1zLTc1cHhcIj48c3BhbiBjbGFzcz1cInNpZ251cC1kZWZhdWx0XCI+PC9zcGFuPkRvbuKAmXQgaGF2ZSBhbiBhY2NvdW50PzxzcGFuIGNsYXNzPVwic2lnbnVwLXByaW1hcnkgbXMtMiBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9zaWdudXBcIj5TaWduIHVwPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyAgZmxleC1tZC1zdGFjayBwdC0zIGNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgb3JkZXItMiBvcmRlci1tZC0xIG1zLTEwXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0xIGZvb3RlclwiPjIwMjQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJmb290ZXIgdGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPiYjNjQ7VGFuZ29JVFNvbHV0aW9ucyBJbmRpYSBQdnQgTHRkPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJtZW51IG1lbnUtZ3JheS02MDAgbWVudS1ob3Zlci1wcmltYXJ5IGZ3LXNlbWlib2xkIG9yZGVyLTEgbWUtN1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBmb290ZXJcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS8jYWJvdXR1c1wiIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMy43MDAyQzExIDMuMTUwMiAxMC41NSAyLjcwMDIgMTAgMi43MDAySDJDMS40NSAyLjcwMDIgMSAzLjE1MDIgMSAzLjcwMDJNMTEgMy43MDAyVjkuNzAwMkMxMSAxMC4yNTAyIDEwLjU1IDEwLjcwMDIgMTAgMTAuNzAwMkgyQzEuNDUgMTAuNzAwMiAxIDEwLjI1MDIgMSA5LjcwMDJWMy43MDAyTTExIDMuNzAwMkw2IDcuMjAwMkwxIDMuNzAwMlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5zdXBwb3J0JiM2NDt0YW5nb3RlY2guY28uaW48L3NwYW4+PC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgXHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZDEuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImJhY2tncm91bmQtaW1hZ2VcIj5cclxuPC9kaXY+Il19
@@ -34,11 +34,11 @@ export class ModalContentComponent {
34
34
  this.activeModal.close(this.user);
35
35
  }
36
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModalContentComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModalContentComponent, selector: "lib-modal-content", inputs: { user: "user", width: "width", height: "height" }, ngImport: i0, template: "<div [style.width]=\"width\" [style.height]=\"height\" >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://pub-f88985f8e0964d3d8cd7fa6f2dde6962.r2.dev/tango-static-website/main.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-10\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;padding-left:1.8rem!important;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}::ng-deep .modal-dialog{display:flex;align-items:center;justify-content:center;min-height:calc(70% - 60px)}::ng-deep .modal-content{margin:auto;max-height:calc(70% - 40px);overflow-y:auto}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModalContentComponent, selector: "lib-modal-content", inputs: { user: "user", width: "width", height: "height" }, ngImport: i0, template: "<div [style.width]=\"width\" [style.height]=\"height\" >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://pub-f88985f8e0964d3d8cd7fa6f2dde6962.r2.dev/tango-static-website/main.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}::ng-deep .modal-content{border-radius:12px!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}::ng-deep .modal-dialog{display:flex;align-items:center;justify-content:center;min-height:calc(70% - 60px)}::ng-deep .modal-content{margin:auto;max-height:calc(70% - 40px);overflow-y:auto}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModalContentComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'lib-modal-content', template: "<div [style.width]=\"width\" [style.height]=\"height\" >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://pub-f88985f8e0964d3d8cd7fa6f2dde6962.r2.dev/tango-static-website/main.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-10\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;padding-left:1.8rem!important;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}::ng-deep .modal-dialog{display:flex;align-items:center;justify-content:center;min-height:calc(70% - 60px)}::ng-deep .modal-content{margin:auto;max-height:calc(70% - 40px);overflow-y:auto}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"] }]
41
+ args: [{ selector: 'lib-modal-content', template: "<div [style.width]=\"width\" [style.height]=\"height\" >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://pub-f88985f8e0964d3d8cd7fa6f2dde6962.r2.dev/tango-static-website/main.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}::ng-deep .modal-content{border-radius:12px!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}::ng-deep .modal-dialog{display:flex;align-items:center;justify-content:center;min-height:calc(70% - 60px)}::ng-deep .modal-content{margin:auto;max-height:calc(70% - 40px);overflow-y:auto}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"] }]
42
42
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { user: [{
43
43
  type: Input
44
44
  }], width: [{
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
46
46
  }], height: [{
47
47
  type: Input
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8scUJBQXFCO0lBWXZCO0lBWEEsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ3hCLGFBQWEsR0FBUTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztJQUNGLFlBQ1MsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQ2hDLENBQUM7SUFDTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRXRDLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBUTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssR0FBRztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFFBQVE7UUFDTixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7dUdBNUJVLHFCQUFxQjsyRkFBckIscUJBQXFCLHFIQ1JsQyxxb2ZBc1BBOzsyRkQ5T2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttRkFLcEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxDb250ZW50Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB1c2VyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBleHBhbmREZXRhaWxzOiBhbnkgPSB7XHJcbiAgICB0cmFmZmljOiBmYWxzZSxcclxuICAgIHpvbmU6IGZhbHNlLFxyXG4gICAgcmV2b3BzOiBmYWxzZSxcclxuICAgIHNvcDogZmFsc2UsXHJcbiAgICBzdXBwb3J0OiBmYWxzZSxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbFxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZERldGFpbHNbdGhpcy51c2VyXSA9IHRydWVcclxuXHJcbiAgfVxyXG4gIGV4cGFuZFBsYW4oa2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZERldGFpbHMpXHJcbiAgICBrZXlzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09IGVsZSkgdGhpcy5leHBhbmREZXRhaWxzW2VsZV0gPSAhdGhpcy5leHBhbmREZXRhaWxzW2VsZV1cclxuICAgICAgZWxzZSB0aGlzLmV4cGFuZERldGFpbHNbZWxlXSA9IGZhbHNlXHJcbiAgICB9KVxyXG4gIH1cclxuICBwYXNzQmFjaygpIHtcclxuICAgIC8vIHRoaXMucGFzc0VudHJ5LmVtaXQodGhpcy51c2VyKTtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UodGhpcy51c2VyKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiID5cclxuPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBib3JkZXItYm90dG9tLTBcIj5cclxuICAgIDwhLS0gPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cIm1vZGFsLWJhc2ljLXRpdGxlXCI+U2ltcGxlIG1vZGFsPC9oND4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIGRhdGEtYnMtZGlzbWlzcz1cIm1vZGFsXCI+XHJcbiAgICAgICAgICAgIDxpIChjbGljayk9XCJhY3RpdmVNb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCIgY2xhc3M9XCJraS1kdW90b25lIGtpLWNyb3NzIGZzLTFcIj48c3BhbiBjbGFzcz1cInBhdGgxXCI+PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXRoMlwiPjwvc3Bhbj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBwdC0wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG14LTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTYgbWQtb2Zmc2V0LTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluIGZzLWxnLTEgdGV4dC1ncmF5LTgwMCBtYi0yIFwiPlByb2R1Y3QgT2ZmZXJpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbigndHJhZmZpYycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnRyYWZmaWNcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMudHJhZmZpY1wiPjxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ28gVHJhZmZpY1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy50cmFmZmljXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkZvb3RmYWxsIEFuYWx5c2lzLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Qm91bmNlZCB2cyBFbmdhZ2VyIEFuYWx5c2lzPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5NaXNzZWQgT3Bwb3J0dW5pdHkgVnMgQ29udmVyc2lvbiBSYXRlLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Rm9vdGZhbGwgSW1hZ2UgRGlyZWN0b3J5IGJ5IHRoZSBob3VyLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SW5mcmEgdHJhY2tpbmcgdGlja2V0aW5nIHN5c3RlbS48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbignem9uZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnpvbmVcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuem9uZVwiPjxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ28gWm9uZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy56b25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCAgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5IZWF0bWFwIEFuYWx5c2lzLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q29uY2VudHJhdGlvbiAlIG9mIGVhY2ggb2YgeW91ciB6b25lLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q3VzdG9tZXIgdHJhamVjdG9yeSBkdXJpbmcgdGhlaXIgdmlzaXQgdG8geW91ciBzdG9yZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbigncmV2b3BzJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMucmV2b3BzXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0XCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIiAqbmdJZj1cIiFleHBhbmREZXRhaWxzLnJldm9wc1wiPjxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVGFuZ28gUmV2b3BzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnJldm9wc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IHRleHQtZ3JheS03MDAgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5JZGVudGlmeWluZyBtaXNzZWQgb3Bwb3J0dW5pdGllcyBhY3Jvc3MgcmVhc29ucyBsaWtlIFByaWNpbmcsIFN0b3JlLCBQcm9kdWN0LCBTdGFmZlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV0Yy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkN1c3RvbWVyIGRhdGFiYXNlIHNvbHV0aW9uIGZvciByZXRhcmdldGluZy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlBPUyBpbnRlZ3JhdGlvbiB0byBjYXB0dXJlIGNvbnZlcnNpb24uPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjb2xsYXBzaWJsZSBweS0zIHRvZ2dsZSAgbWItMFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBtdy0yMHB4IGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBtZS01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFBsYW4oJ3NvcCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnNvcFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy5zb3BcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtZ3JheS03MDAgZnctYm9sZCBjdXJzb3ItcG9pbnRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFNPUFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zb3BcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RGFpbHkgc3RvcmUgb3BlcmF0aW9uLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IEV4dGVuc2l2ZSBzdW1tYXJ5IG9mIGRhdGEgcG9pbnRzIGxpa2Ugc3RvcmUgb3BlbiBhbmQgY2xvc2UgdGltZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCdzdXBwb3J0JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuc3VwcG9ydFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy5zdXBwb3J0XCI+PHN2ZyB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSBTdXBwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnN1cHBvcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+IDI0KjcgQ0NUViBtb25pdG9yaW5nIG9mIGFsbCB0aGUgY2FtZXJhcyBpbiBhIHNpbmdsZSBzY3JlZW4uPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5MaXZlIGFuZCBSZWNhcCB2aWRlbyBvcHRpb24gZm9yIHRoZSBlbnRpcmUgZGF5LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBjb2wtbWQtNiBjb2wtc20tNiBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8dmlkZW8gY2xhc3M9XCJ2aWRlby13aWR0aFwiIG11dGVkIGF1dG9wbGF5IGNvbnRyb2xzIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMjBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c291cmNlIHNyYz1cImh0dHBzOi8vcHViLWY4ODk4NWY4ZTA5NjRkM2Q4Y2Q3ZmE2ZjJkZGU2OTYyLnIyLmRldi90YW5nby1zdGF0aWMtd2Vic2l0ZS9tYWluLm1wNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ2aWRlby9tcDRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGh0dHBzOi8vdGFuZ28tc3RhdGljc2l0ZS5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vVGFuZ28rRXllXzcyMHBfd2l0aCttdXNpY19UcmltLm1wNFwiIC0tPlxyXG4gICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbiBmcy1sZy0xIHRleHQtZ3JheS04MDBcIj5Qcm9kdWN0IFdhbGstVGhyb3VnaDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci0wIG15LTIgbXMtMTBcIiA+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YlwiPldlIHRyYW5zZm9ybSB5b3VyIGV4aXN0aW5nIENDVFYgY2FtZXJhcyBpbnRvIGEgcG93ZXJmdWwgc3RvcmUgYW5hbHl0aWNzIHRvb2wuXHJcbiAgICAgICAgICAgICAgICAgICAgT3VyIGluZHVzdHJ5LWZpcnN0IEFsIGFuZCBjb21wdXRlciB2aXNpb24gdGVjaG5vbG9neSBoZWxwIGJyYW5kcyBpZGVudGlmeSBtaXNzZWQgc2FsZVxyXG4gICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMgYW5kIGZvY3VzIG9uIGltcHJvdmluZyBjb252ZXJzaW9uIHJhdGVzIGFjcm9zcyBzdG9yZXMuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBWXZCO0lBWEEsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ3hCLGFBQWEsR0FBUTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztJQUNGLFlBQ1MsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQ2hDLENBQUM7SUFDTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRXRDLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBUTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssR0FBRztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFFBQVE7UUFDTixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7dUdBNUJVLHFCQUFxQjsyRkFBckIscUJBQXFCLHFIQ1JsQyxvb2ZBc1BBOzsyRkQ5T2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttRkFLcEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tb2RhbC1jb250ZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL21vZGFsLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KCkgdXNlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgZXhwYW5kRGV0YWlsczogYW55ID0ge1xyXG4gICAgdHJhZmZpYzogZmFsc2UsXHJcbiAgICB6b25lOiBmYWxzZSxcclxuICAgIHJldm9wczogZmFsc2UsXHJcbiAgICBzb3A6IGZhbHNlLFxyXG4gICAgc3VwcG9ydDogZmFsc2UsXHJcbiAgfTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWxcclxuICApIHsgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5leHBhbmREZXRhaWxzW3RoaXMudXNlcl0gPSB0cnVlXHJcblxyXG4gIH1cclxuICBleHBhbmRQbGFuKGtleTogYW55KSB7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5leHBhbmREZXRhaWxzKVxyXG4gICAga2V5cy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoa2V5ID09PSBlbGUpIHRoaXMuZXhwYW5kRGV0YWlsc1tlbGVdID0gIXRoaXMuZXhwYW5kRGV0YWlsc1tlbGVdXHJcbiAgICAgIGVsc2UgdGhpcy5leHBhbmREZXRhaWxzW2VsZV0gPSBmYWxzZVxyXG4gICAgfSlcclxuICB9XHJcbiAgcGFzc0JhY2soKSB7XHJcbiAgICAvLyB0aGlzLnBhc3NFbnRyeS5lbWl0KHRoaXMudXNlcik7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKHRoaXMudXNlcik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIiA+XHJcbjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYm9yZGVyLWJvdHRvbS0wXCI+XHJcbiAgICA8IS0tIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJtb2RhbC1iYXNpYy10aXRsZVwiPlNpbXBsZSBtb2RhbDwvaDQ+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiBkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiPlxyXG4gICAgICAgICAgICA8aSAoY2xpY2spPVwiYWN0aXZlTW9kYWwuZGlzbWlzcygnQ3Jvc3MgY2xpY2snKVwiIGNsYXNzPVwia2ktZHVvdG9uZSBraS1jcm9zcyBmcy0xXCI+PHNwYW4gY2xhc3M9XCJwYXRoMVwiPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGF0aDJcIj48L3NwYW4+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgcHQtMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBteC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IGNvbC1tZC02IGNvbC1zbS02IG1kLW9mZnNldC0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbiBmcy1sZy0xIHRleHQtZ3JheS04MDAgbWItMiBcIj5Qcm9kdWN0IE9mZmVyaW5nczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjb2xsYXBzaWJsZSBweS0zIHRvZ2dsZSAgbWItMFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBtdy0yMHB4IGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBtZS01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFBsYW4oJ3RyYWZmaWMnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy50cmFmZmljXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0XCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIiAqbmdJZj1cIiFleHBhbmREZXRhaWxzLnRyYWZmaWNcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDEwLjg4OTEgMTcuODAzMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtZ3JheS03MDAgZnctYm9sZCBjdXJzb3ItcG9pbnRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFRyYWZmaWNcclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia3Rfam9iXzRfMVwiIGNsYXNzPVwiY29sbGFwc2Ugc2hvdyBmcy02IG1zLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMudHJhZmZpY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IHRleHQtZ3JheS03MDAgc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Gb290ZmFsbCBBbmFseXNpcy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJvdW5jZWQgdnMgRW5nYWdlciBBbmFseXNpczwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TWlzc2VkIE9wcG9ydHVuaXR5IFZzIENvbnZlcnNpb24gUmF0ZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkZvb3RmYWxsIEltYWdlIERpcmVjdG9yeSBieSB0aGUgaG91ci48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkluZnJhIHRyYWNraW5nIHRpY2tldGluZyBzeXN0ZW0uPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjb2xsYXBzaWJsZSBweS0zIHRvZ2dsZSAgbWItMFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBtdy0yMHB4IGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBtZS01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFBsYW4oJ3pvbmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy56b25lXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0XCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIiAqbmdJZj1cIiFleHBhbmREZXRhaWxzLnpvbmVcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDEwLjg4OTEgMTcuODAzMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtZ3JheS03MDAgZnctYm9sZCBjdXJzb3ItcG9pbnRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFpvbmVcclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia3Rfam9iXzRfMVwiIGNsYXNzPVwiY29sbGFwc2Ugc2hvdyBmcy02IG1zLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuem9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IHRleHQtZ3JheS03MDAgIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SGVhdG1hcCBBbmFseXNpcy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbmNlbnRyYXRpb24gJSBvZiBlYWNoIG9mIHlvdXIgem9uZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkN1c3RvbWVyIHRyYWplY3RvcnkgZHVyaW5nIHRoZWlyIHZpc2l0IHRvIHlvdXIgc3RvcmUuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjb2xsYXBzaWJsZSBweS0zIHRvZ2dsZSAgbWItMFwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBtdy0yMHB4IGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeSBtZS01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFBsYW4oJ3Jldm9wcycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnJldm9wc1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy5yZXZvcHNcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjNcIiB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgcng9XCI1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDEwLjg4OTEgMTcuODAzMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtZ3JheS03MDAgZnctYm9sZCBjdXJzb3ItcG9pbnRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFJldm9wc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5yZXZvcHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SWRlbnRpZnlpbmcgbWlzc2VkIG9wcG9ydHVuaXRpZXMgYWNyb3NzIHJlYXNvbnMgbGlrZSBQcmljaW5nLCBTdG9yZSwgUHJvZHVjdCwgU3RhZmZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DdXN0b21lciBkYXRhYmFzZSBzb2x1dGlvbiBmb3IgcmV0YXJnZXRpbmcuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QT1MgaW50ZWdyYXRpb24gdG8gY2FwdHVyZSBjb252ZXJzaW9uLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCdzb3AnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zb3BcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc29wXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBTT1BcclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia3Rfam9iXzRfMVwiIGNsYXNzPVwiY29sbGFwc2Ugc2hvdyBmcy02IG1zLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuc29wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRhaWx5IHN0b3JlIG9wZXJhdGlvbi48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBFeHRlbnNpdmUgc3VtbWFyeSBvZiBkYXRhIHBvaW50cyBsaWtlIHN0b3JlIG9wZW4gYW5kIGNsb3NlIHRpbWUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbignc3VwcG9ydCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnN1cHBvcnRcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc3VwcG9ydFwiPjxzdmcgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgU3VwcG9ydFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zdXBwb3J0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiAyNCo3IENDVFYgbW9uaXRvcmluZyBvZiBhbGwgdGhlIGNhbWVyYXMgaW4gYSBzaW5nbGUgc2NyZWVuLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TGl2ZSBhbmQgUmVjYXAgdmlkZW8gb3B0aW9uIGZvciB0aGUgZW50aXJlIGRheS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTYgXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidmlkZW8td2lkdGhcIiBtdXRlZCBhdXRvcGxheSBjb250cm9scyBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBzcmM9XCJodHRwczovL3B1Yi1mODg5ODVmOGUwOTY0ZDNkOGNkN2ZhNmYyZGRlNjk2Mi5yMi5kZXYvdGFuZ28tc3RhdGljLXdlYnNpdGUvbWFpbi5tcDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidmlkZW8vbXA0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBodHRwczovL3RhbmdvLXN0YXRpY3NpdGUuczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL1RhbmdvK0V5ZV83MjBwX3dpdGgrbXVzaWNfVHJpbS5tcDRcIiAtLT5cclxuICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci0wIG10LTRcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4gZnMtbGctMSB0ZXh0LWdyYXktODAwXCI+UHJvZHVjdCBXYWxrLVRocm91Z2g8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBteS0yIG1zLTZcIiA+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YlwiPldlIHRyYW5zZm9ybSB5b3VyIGV4aXN0aW5nIENDVFYgY2FtZXJhcyBpbnRvIGEgcG93ZXJmdWwgc3RvcmUgYW5hbHl0aWNzIHRvb2wuXHJcbiAgICAgICAgICAgICAgICAgICAgT3VyIGluZHVzdHJ5LWZpcnN0IEFsIGFuZCBjb21wdXRlciB2aXNpb24gdGVjaG5vbG9neSBoZWxwIGJyYW5kcyBpZGVudGlmeSBtaXNzZWQgc2FsZVxyXG4gICAgICAgICAgICAgICAgICAgIG9wcG9ydHVuaXRpZXMgYW5kIGZvY3VzIG9uIGltcHJvdmluZyBjb252ZXJzaW9uIHJhdGVzIGFjcm9zcyBzdG9yZXMuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==