tango-app-ui-manage-settings 3.0.12-dev → 3.0.14-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/esm2022/lib/components/activity-logs/activity-logs.component.mjs +3 -3
  2. package/esm2022/lib/components/brand-details/billing-details/billing-details.component.mjs +10 -9
  3. package/esm2022/lib/components/brand-details/brand-info/brand-info.component.mjs +10 -7
  4. package/esm2022/lib/components/brand-details/signatory-details/signatory-details.component.mjs +10 -9
  5. package/esm2022/lib/components/configurations/audit-configuration/audit-configuration.component.mjs +11 -8
  6. package/esm2022/lib/components/configurations/configurations.component.mjs +17 -13
  7. package/esm2022/lib/components/configurations/domain-details/domain-details.component.mjs +10 -9
  8. package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +10 -9
  9. package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +10 -7
  10. package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +10 -9
  11. package/esm2022/lib/components/configurations/user-configuration/user-configuration.component.mjs +11 -8
  12. package/esm2022/lib/components/contact-directory/contact-directory.component.mjs +17 -10
  13. package/esm2022/lib/components/documents/documents.component.mjs +10 -7
  14. package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +764 -166
  15. package/esm2022/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.mjs +8 -4
  16. package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +146 -9
  17. package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +125 -72
  18. package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +75 -39
  19. package/esm2022/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.mjs +28 -22
  20. package/esm2022/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.mjs +119 -18
  21. package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +75 -25
  22. package/esm2022/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.mjs +15 -6
  23. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.mjs +8 -9
  24. package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +52 -19
  25. package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +124 -35
  26. package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +8 -6
  27. package/esm2022/lib/guards/activity-log.guard.mjs +33 -0
  28. package/esm2022/lib/guards/brand-detail.guard.mjs +33 -0
  29. package/esm2022/lib/guards/configuration.guard.mjs +33 -0
  30. package/esm2022/lib/guards/contact-directory.guard.mjs +33 -0
  31. package/esm2022/lib/guards/documents.guard.mjs +33 -0
  32. package/esm2022/lib/guards/payment-subscriptions.guard.mjs +33 -0
  33. package/esm2022/lib/services/payment-subscription.service.mjs +141 -4
  34. package/esm2022/lib/tango-manage-settings-routing.module.mjs +24 -7
  35. package/esm2022/lib/tango-manage-settings.module.mjs +6 -2
  36. package/fesm2022/tango-app-ui-manage-settings.mjs +1970 -538
  37. package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
  38. package/lib/components/brand-details/billing-details/billing-details.component.d.ts +4 -3
  39. package/lib/components/brand-details/brand-info/brand-info.component.d.ts +3 -1
  40. package/lib/components/brand-details/signatory-details/signatory-details.component.d.ts +4 -3
  41. package/lib/components/configurations/audit-configuration/audit-configuration.component.d.ts +3 -1
  42. package/lib/components/configurations/configurations.component.d.ts +3 -1
  43. package/lib/components/configurations/domain-details/domain-details.component.d.ts +4 -3
  44. package/lib/components/configurations/feature-configuration/feature-configuration.component.d.ts +4 -3
  45. package/lib/components/configurations/report-configuration/report-configuration.component.d.ts +3 -1
  46. package/lib/components/configurations/ticket-configuration/ticket-configuration.component.d.ts +4 -3
  47. package/lib/components/configurations/user-configuration/user-configuration.component.d.ts +3 -1
  48. package/lib/components/contact-directory/contact-directory.component.d.ts +5 -1
  49. package/lib/components/documents/documents.component.d.ts +3 -1
  50. package/lib/components/payments-subscription/payments-subscription.component.d.ts +85 -20
  51. package/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.d.ts +32 -4
  52. package/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.d.ts +14 -4
  53. package/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.d.ts +23 -4
  54. package/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.d.ts +6 -2
  55. package/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.d.ts +19 -10
  56. package/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.d.ts +14 -8
  57. package/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.d.ts +5 -1
  58. package/lib/components/payments-subscription/subscription-popups/update/update.component.d.ts +19 -5
  59. package/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.d.ts +28 -7
  60. package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +3 -2
  61. package/lib/guards/activity-log.guard.d.ts +2 -0
  62. package/lib/guards/brand-detail.guard.d.ts +2 -0
  63. package/lib/guards/configuration.guard.d.ts +2 -0
  64. package/lib/guards/contact-directory.guard.d.ts +2 -0
  65. package/lib/guards/documents.guard.d.ts +2 -0
  66. package/lib/guards/payment-subscriptions.guard.d.ts +2 -0
  67. package/lib/services/payment-subscription.service.d.ts +34 -3
  68. package/lib/tango-manage-settings.module.d.ts +1 -1
  69. package/package.json +1 -1
@@ -1,51 +1,73 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, Input } from '@angular/core';
2
2
  import { UpdateComponent } from '../update/update.component';
3
3
  import { TrailExpiredComponent } from '../trail-expired/trail-expired.component';
4
4
  import { SubscriptionApprovalComponent } from '../subscription-approval/subscription-approval.component';
5
+ import { Subject, takeUntil } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@ng-bootstrap/ng-bootstrap";
7
8
  import * as i2 from "tango-app-ui-shared";
8
- import * as i3 from "@angular/common";
9
+ import * as i3 from "../../../../services/payment-subscription.service";
10
+ import * as i4 from "@angular/common";
9
11
  export class UpgradePlanComponent {
10
12
  modalService;
11
13
  activeModel;
12
14
  toast;
15
+ PaymentSubscriptionService;
16
+ changeDetector;
17
+ clientId;
13
18
  noofstoresdropDown = false;
14
19
  AvgstoresdropDown = false;
15
20
  noofstorestype = ['1(free)', '2 - 25', '26 - 50', '51 - 75', '76 - 100', '100+'];
16
- Avgstorestype = ['50 - 500 sq.ft', '500 - 750 sq.ft', '750 - 1000 sq.ft', '1000 - 1500 sq.ft', '1500 - 2000 sq.ft', '2000+ sq.ft'];
17
- noofstoresIssue = '1(free)';
18
- AvgstoresIssue = '50 - 500 sq.ft';
19
- plan = 'monthly'; // Default plan
20
- showNavGroup = true; // Initially show the nav group
21
- noofstoresItem(noofstoresvalue) {
22
- this.noofstoresIssue = noofstoresvalue;
23
- this.noofstoresdropDown = false;
24
- }
25
- AvgstoresItem(Avgstoresvalue) {
26
- this.AvgstoresIssue = Avgstoresvalue;
27
- this.AvgstoresdropDown = false;
28
- }
29
- constructor(modalService, activeModel, toast) {
21
+ Avgstorestype = [{ name: '50 - 500 sq.ft', value: '50-500' }, { name: '500 - 750 sq.ft', value: '500-750' }, { name: '750 - 1000 sq.ft', value: '750-1000' }, { name: '1000 - 1500 sq.ft', value: '1000-1500' }, { name: '1500 - 2000 sq.ft', value: '1500-2000' }, { name: '2000+ sq.ft', value: '2000+' }];
22
+ plan = 'monthly';
23
+ showNavGroup = true;
24
+ noofstoresitem;
25
+ noofstoresIssue;
26
+ Avgstoresitem;
27
+ AvgstoresIssue;
28
+ updateinfo;
29
+ active = false;
30
+ clientInfo;
31
+ price;
32
+ originalPrice = 0;
33
+ oldProducts;
34
+ disableBtn = true;
35
+ destroy$ = new Subject();
36
+ constructor(modalService, activeModel, toast, PaymentSubscriptionService, changeDetector) {
30
37
  this.modalService = modalService;
31
38
  this.activeModel = activeModel;
32
39
  this.toast = toast;
40
+ this.PaymentSubscriptionService = PaymentSubscriptionService;
41
+ this.changeDetector = changeDetector;
42
+ }
43
+ ngOnInit() {
44
+ this.updatesubscription(this.clientId);
45
+ }
46
+ ngOnDestroy() {
47
+ this.destroy$.next(true);
48
+ this.destroy$.complete();
33
49
  }
34
50
  selectPlan(plan) {
35
- this.plan = plan;
36
- // You can add additional logic here
51
+ this.clientInfo.currentPlanInfo.subscriptionPeriod = plan;
52
+ this.basePricing();
37
53
  }
38
54
  update() {
39
- console.log('this.modalService');
40
- this.activeModel.close();
41
55
  const modalRef = this.modalService.open(UpdateComponent, {
42
56
  centered: true, size: 'md'
43
57
  });
58
+ modalRef.componentInstance.modalData = {
59
+ brandName: this.clientInfo?.clientName,
60
+ gstNumber: this.clientInfo?.billingAddress?.gstNumber || '',
61
+ billingAddress: this.clientInfo?.billingAddress?.billingAddress || '',
62
+ };
44
63
  modalRef.result.then((result) => {
64
+ if (result) {
65
+ this.clientInfo.billingDetails.billingAddress = result?.billingAddress;
66
+ this.changeDetector.detectChanges();
67
+ }
45
68
  });
46
69
  }
47
70
  trailexpired() {
48
- console.log('this.modalService');
49
71
  this.activeModel.close();
50
72
  const modalRef = this.modalService.open(TrailExpiredComponent, {
51
73
  centered: true, size: 'md'
@@ -58,17 +80,11 @@ export class UpgradePlanComponent {
58
80
  const modalRef = this.modalService.open(SubscriptionApprovalComponent, {
59
81
  centered: true, size: 'md', scrollable: true
60
82
  });
61
- // modalRef.componentInstance.user = this.user;
62
- modalRef.result.then((result) => {
63
- console.log('result', result);
64
- // if (result == 'unsubscribed') {
65
- // this.toast.getErrorToast('Unsubscribed Tango Suite for “Brand Name” successfully')
66
- // }
67
- });
83
+ modalRef.componentInstance.products = this.clientInfo?.currentPlanInfo?.product;
84
+ modalRef.componentInstance.clientInfo = this.clientInfo;
68
85
  }
69
- // passBack() {this.activeModel.close('openpopup');}
70
86
  toggleNavGroup() {
71
- this.showNavGroup = !this.showNavGroup; // Toggle the boolean value
87
+ this.showNavGroup = !this.showNavGroup;
72
88
  }
73
89
  noofstoresDropdown(event) {
74
90
  event.stopPropagation();
@@ -78,11 +94,84 @@ export class UpgradePlanComponent {
78
94
  event.stopPropagation();
79
95
  this.AvgstoresdropDown = !this.AvgstoresdropDown;
80
96
  }
81
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpgradePlanComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.ToastService }], target: i0.ɵɵFactoryTarget.Component });
82
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpgradePlanComponent, selector: "lib-upgrade-plan", ngImport: i0, template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"plan === 'monthly'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"month\"\r\n (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"Quarterly\"\r\n (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'annual'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"annual\"\r\n (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'monthly'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\" >\r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\"><span\r\n class=\"submit\">Enter Billing Details </span></button>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'quarterly'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext py-4\">Select Products</div>\r\n\r\n \r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\" >\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\"><span\r\n class=\"submit\">Subscribe Now</span></button>\r\n <!-- (click)=\"suscribed();showGif()\" -->\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'annual'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext py-4\">Select Products</div>\r\n\r\n \r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\">\r\n <button (click)=\"trailexpired()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n \r\n\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:38%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
97
+ updatesubscription(id) {
98
+ this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res) => {
99
+ if (res && res.code == 200) {
100
+ this.clientInfo = res.data;
101
+ this.oldProducts = JSON.parse(JSON.stringify(this.clientInfo.currentPlanInfo.product));
102
+ this.basePricing();
103
+ this.changeDetector.detectChanges();
104
+ }
105
+ });
106
+ }
107
+ basePricing() {
108
+ let products = this.clientInfo?.currentPlanInfo?.product.filter((product) => product.active == true).map((item) => item.productName);
109
+ let params = {
110
+ camaraPerSqft: this.clientInfo.currentPlanInfo.storeSize,
111
+ storesCount: this.clientInfo.currentPlanInfo.totalStores,
112
+ planName: this.clientInfo.currentPlanInfo.subscriptionPeriod,
113
+ products: products,
114
+ currencyType: "rupees"
115
+ };
116
+ this.PaymentSubscriptionService.basePricing(params).pipe(takeUntil(this.destroy$)).subscribe((res) => {
117
+ if (res && res.code == 200) {
118
+ this.clientInfo.currentPlanInfo.price = res.data.price;
119
+ this.originalPrice = res.data.OriginalPrice;
120
+ this.clientInfo.currentPlanInfo.totalCamera = res.data.camaraCount;
121
+ this.changeDetector.detectChanges();
122
+ }
123
+ });
124
+ }
125
+ updateProduct(event, data) {
126
+ let changesCount = 0;
127
+ this.clientInfo?.currentPlanInfo?.product.forEach((item) => {
128
+ let details = this.oldProducts.find((ele) => ele.productName == item.productName);
129
+ if (details) {
130
+ if (details.active !== item.active) {
131
+ changesCount = changesCount + 1;
132
+ }
133
+ }
134
+ });
135
+ if (changesCount == 0) {
136
+ this.disableBtn = false;
137
+ }
138
+ else {
139
+ this.disableBtn = true;
140
+ }
141
+ let productIndex = this.clientInfo?.currentPlanInfo?.product.findIndex((product) => product.productName == data);
142
+ if (productIndex != -1) {
143
+ if (event.target.checked)
144
+ this.clientInfo.currentPlanInfo.product[productIndex].active = true;
145
+ else
146
+ this.clientInfo.currentPlanInfo.product[productIndex].active = false;
147
+ }
148
+ this.basePricing();
149
+ }
150
+ noofstoresdata(noofstoresvalue) {
151
+ this.clientInfo.currentPlanInfo.totalStores = noofstoresvalue;
152
+ this.noofstoresdropDown = false;
153
+ this.basePricing();
154
+ }
155
+ Avgstoresdata(Avgstoresvalue) {
156
+ this.clientInfo.currentPlanInfo.storeSize = Avgstoresvalue;
157
+ this.basePricing();
158
+ this.AvgstoresdropDown = false;
159
+ }
160
+ getColorClass(toolTip) {
161
+ switch (toolTip) {
162
+ case 'Subscribed': return 'badge badge-light-success mx-1';
163
+ case 'Trial Expired': return 'badge badge-light-warning mx-1';
164
+ case 'On Trial': return 'badge badge-light-primary mx-1';
165
+ default: return '';
166
+ }
167
+ }
168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpgradePlanComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.ToastService }, { token: i3.PaymentSubscriptionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
169
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpgradePlanComponent, selector: "lib-upgrade-plan", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0]}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live'\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}}\r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}}\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:38%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
83
170
  }
84
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpgradePlanComponent, decorators: [{
85
172
  type: Component,
86
- args: [{ selector: 'lib-upgrade-plan', template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"plan === 'monthly'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"month\"\r\n (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"Quarterly\"\r\n (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"plan === 'annual'? 'activePlanBtn':'inactivePlanBtn'\" data-kt-plan=\"annual\"\r\n (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'monthly'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\" >\r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\"><span\r\n class=\"submit\">Enter Billing Details </span></button>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'quarterly'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext py-4\">Select Products</div>\r\n\r\n \r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\" >\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\"><span\r\n class=\"submit\">Subscribe Now</span></button>\r\n <!-- (click)=\"suscribed();showGif()\" -->\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"plan == 'annual'\" class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{noofstoresIssue}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstoresitem of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.noofstoresIssue == noofstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresItem(noofstoresitem)\">{{noofstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{AvgstoresIssue}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstoresitem of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.AvgstoresIssue == Avgstoresitem ? 'active' : ''\" class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"AvgstoresItem(Avgstoresitem)\">{{Avgstoresitem}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum 2 Cameras are permitted in stores with square feet between 50 -500.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext py-4\">Select Products</div>\r\n\r\n \r\n <div class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input disabled class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Traffic <span class=\"badge badge-light-success ms-2\">Subscribed\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango Zone <span class=\"badge badge-light-warning ms-2\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span> </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Tango SOP <span class=\"badge badge-light-primary ms-2\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span></label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n <div class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\"\r\n id=\"tangorevop\" checked=\"\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">Priority Support </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br >Zone & Tango RevOps ></div> </div>\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B91899</s></span><span\r\n class=\"billingtext ms-4\">\u20B9799</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: --</div>\r\n <div>Billing Address: --</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\">\r\n <button (click)=\"trailexpired()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n \r\n\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:38%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"] }]
87
- }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.ToastService }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBncmFkZS1wbGFuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZ3JhZGUtcGxhbi91cGdyYWRlLXBsYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBUXpHLE1BQU0sT0FBTyxvQkFBb0I7SUFvQlo7SUFBZ0M7SUFBcUM7SUFuQnhGLGtCQUFrQixHQUFXLEtBQUssQ0FBQztJQUNuQyxpQkFBaUIsR0FBVyxLQUFLLENBQUM7SUFDbEMsY0FBYyxHQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLENBQUUsQ0FBQztJQUN0RixhQUFhLEdBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBQyxhQUFhLENBQUUsQ0FBQztJQUN4SSxlQUFlLEdBQVEsU0FBUyxDQUFDO0lB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SSxDQUFDLGlCQUFpQixDQUFDO0lBQ25ELENBQUM7dUdBL0VVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLHdEQ2JqQyxreTZCQXliQTs7MkZENWFhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFN1Y2Nlc3NmdWxsU3Vic2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uL3N1Y2Nlc3NmdWxsLXN1YnNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFpbEV4cGlyZWRDb21wb25lbnQgfSBmcm9tICcuLi90cmFpbC1leHBpcmVkL3RyYWlsLWV4cGlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uQXBwcm92YWxDb21wb25lbnQgfSBmcm9tICcuLi9zdWJzY3JpcHRpb24tYXBwcm92YWwvc3Vic2NyaXB0aW9uLWFwcHJvdmFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBncmFkZS1wbGFuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBncmFkZS1wbGFuLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBncmFkZS1wbGFuLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBncmFkZVBsYW5Db21wb25lbnQge1xyXG4gIG5vb2ZzdG9yZXNkcm9wRG93bjpib29sZWFuID0gZmFsc2U7XHJcbiAgQXZnc3RvcmVzZHJvcERvd246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vb2ZzdG9yZXN0eXBlOmFueVtdID0gWycxKGZyZWUpJywgJzIgLSAyNScsJzI2IC0gNTAnLCAnNTEgLSA3NScsICc3NiAtIDEwMCcsJzEwMCsnIF07XHJcbiAgQXZnc3RvcmVzdHlwZTphbnlbXSA9IFsnNTAgLSA1MDAgc3EuZnQnLCAnNTAwIC0gNzUwIHNxLmZ0JywnNzUwIC0gMTAwMCBzcS5mdCcsICcxMDAwIC0gMTUwMCBzcS5mdCcsICcxNTAwIC0gMjAwMCBzcS5mdCcsJzIwMDArIHNxLmZ0JyBdO1xyXG4gIG5vb2ZzdG9yZXNJc3N1ZTogYW55ID0gJzEoZnJlZSknO1xyXG4gIEF2Z3N0b3Jlc0lzc3VlOmFueSA9ICc1MCAtIDUwMCBzcS5mdCc7XHJcbiAgcGxhbjogc3RyaW5nID0gJ21vbnRobHknOyAvLyBEZWZhdWx0IHBsYW5cclxuICBzaG93TmF2R3JvdXA6IGJvb2xlYW4gPSB0cnVlOyAvLyBJbml0aWFsbHkgc2hvdyB0aGUgbmF2IGdyb3VwXHJcblxyXG4gIG5vb2ZzdG9yZXNJdGVtKG5vb2ZzdG9yZXN2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5ub29mc3RvcmVzSXNzdWUgPSBub29mc3RvcmVzdmFsdWU7XHJcbiAgICB0aGlzLm5vb2ZzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBBdmdzdG9yZXNJdGVtKEF2Z3N0b3Jlc3ZhbHVlOmFueSl7XHJcbiAgICB0aGlzLkF2Z3N0b3Jlc0lzc3VlID0gQXZnc3RvcmVzdmFsdWU7XHJcbiAgICB0aGlzLkF2Z3N0b3Jlc2Ryb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbmNvbnN0cnVjdG9yKCBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgYWN0aXZlTW9kZWwgOk5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSl7XHJcblxyXG59XHJcbiAgc2VsZWN0UGxhbihwbGFuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGxhbiA9IHBsYW47XHJcbiAgICAvLyBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGxvZ2ljIGhlcmVcclxuICB9XHJcbiAgXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMubW9kYWxTZXJ2aWNlJyk7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVXBkYXRlQ29tcG9uZW50LHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCdcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgXHJcbiAgICB9KTtcclxuICAgXHJcbiAgfVxyXG4gXHJcbiAgdHJhaWxleHBpcmVkKCl7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5tb2RhbFNlcnZpY2UnKTtcclxuICAgIHRoaXMuYWN0aXZlTW9kZWwuY2xvc2UoKTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUcmFpbEV4cGlyZWRDb21wb25lbnQse1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ1xyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybWF0aW9uKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFN1YnNjcmlwdGlvbkFwcHJvdmFsQ29tcG9uZW50LHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcsc2Nyb2xsYWJsZTp0cnVlXHJcbiAgICB9KTtcclxuICAgIC8vIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHQnLCByZXN1bHQpO1xyXG4gICAgICAvLyBpZiAocmVzdWx0ID09ICd1bnN1YnNjcmliZWQnKSB7XHJcbiAgICAgIC8vICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdVbnN1YnNjcmliZWQgVGFuZ28gU3VpdGUgZm9yIOKAnEJyYW5kIE5hbWXigJ0gc3VjY2Vzc2Z1bGx5JylcclxuICAgICAgLy8gfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBcclxuLy8gcGFzc0JhY2soKSB7dGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgnb3BlbnBvcHVwJyk7fVxyXG5cclxuICB0b2dnbGVOYXZHcm91cCgpIHtcclxuICAgIHRoaXMuc2hvd05hdkdyb3VwID0gIXRoaXMuc2hvd05hdkdyb3VwOyAvLyBUb2dnbGUgdGhlIGJvb2xlYW4gdmFsdWVcclxuICB9XHJcbiAgXHJcbiAgbm9vZnN0b3Jlc0Ryb3Bkb3duKGV2ZW50Ok1vdXNlRXZlbnQpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm5vb2ZzdG9yZXNkcm9wRG93biA9ICF0aGlzLm5vb2ZzdG9yZXNkcm9wRG93bjtcclxuICB9XHJcbiAgQXZnc3RvcmVzRHJvcGRvd24oZXZlbnQ6TW91c2VFdmVudCl7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSAhdGhpcy5BdmdzdG9yZXNkcm9wRG93bjtcclxuICB9XHJcbiBcclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvd05hdkdyb3VwXCIgY2xhc3M9XCJuYXYtZ3JvdXAgbmF2LWdyb3VwLW91dGxpbmUgbXgtYXV0byBtdC04IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1jb2xvci1ncmF5LTYwMCBidG4tYWN0aXZlIGJ0bi1hY3RpdmUtc2Vjb25kYXJ5IHB4LTYgcHktMyBtZS0yXCJcclxuICAgICAgICBbbmdDbGFzc109XCJwbGFuID09PSAnbW9udGhseSc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiIGRhdGEta3QtcGxhbj1cIm1vbnRoXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0UGxhbignbW9udGhseScpXCI+XHJcbiAgICAgICAgTW9udGhseVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tY29sb3ItZ3JheS02MDAgYnRuLWFjdGl2ZSBidG4tYWN0aXZlLXNlY29uZGFyeSBweC02IHB5LTNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInBsYW4gPT09ICdxdWFydGVybHknPyAnYWN0aXZlUGxhbkJ0bic6J2luYWN0aXZlUGxhbkJ0bidcIiBkYXRhLWt0LXBsYW49XCJRdWFydGVybHlcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuKCdxdWFydGVybHknKVwiPlxyXG4gICAgICAgIFF1YXJ0ZXJseSAtIDEwJVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1jb2xvci1ncmF5LTYwMCBidG4tYWN0aXZlIGJ0bi1hY3RpdmUtc2Vjb25kYXJ5IHB4LTYgcHktM1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwicGxhbiA9PT0gJ2FubnVhbCc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiIGRhdGEta3QtcGxhbj1cImFubnVhbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ2FubnVhbCcpXCI+XHJcbiAgICAgICAgQW5udWFsIC0gMTUlXHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInBsYW4gPT0gJ21vbnRobHknXCIgY2xhc3M9XCJtb2RhbC1ib2R5IHJvdyBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBwZS04IHZlcnRpY2FsXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImhlYWRpbmd0ZXh0IG1iLTNcIj5ObyBvZiBTdG9yZXMgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdCBsZXZlbHZpZXd0ZXh0XCIgaWQ9XCJjdXJyZW5jeVwiIChjbGljayk9XCJub29mc3RvcmVzRHJvcGRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e25vb2ZzdG9yZXNJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vb2ZzdG9yZXNkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBub29mc3RvcmVzaXRlbSBvZiBub29mc3RvcmVzdHlwZVwiIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5ub29mc3RvcmVzSXNzdWUgPT0gbm9vZnN0b3Jlc2l0ZW0gPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwibm9vZnN0b3Jlc0l0ZW0obm9vZnN0b3Jlc2l0ZW0pXCI+e3tub29mc3RvcmVzaXRlbX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+QXZlcmFnZSBTaXplIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIkF2Z3N0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWZhdWx0IHNlbGVjdCBleGFtcGxlXCI+e3tBdmdzdG9yZXNJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkF2Z3N0b3Jlc2Ryb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IEF2Z3N0b3Jlc2l0ZW0gb2YgQXZnc3RvcmVzdHlwZVwiIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5BdmdzdG9yZXNJc3N1ZSA9PSBBdmdzdG9yZXNpdGVtID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwicHJvZHVjdHRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00XCIgKGNsaWNrKT1cIkF2Z3N0b3Jlc0l0ZW0oQXZnc3RvcmVzaXRlbSlcIj57e0F2Z3N0b3Jlc2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF4Y2FtIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIE1heGltdW0gMiBDYW1lcmFzIGFyZSBwZXJtaXR0ZWQgaW4gc3RvcmVzIHdpdGggc3F1YXJlIGZlZXQgYmV0d2VlbiA1MCAtNTAwLlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHRleHQgbXktNSBtdC0xMlwiPlNlbGVjdCBQcm9kdWN0czwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2PjxpbnB1dCBkaXNhYmxlZCAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0YW5nb3Jldm9wXCIgY2hlY2tlZD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIF9uZ2NvbnRlbnQtd2toLWMyNDk9XCJcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgaGVhZGluZ3RleHQgZC1mbGV4XCI+VGFuZ28gVHJhZmZpYyAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5TdWJzY3JpYmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC02XCI+XHJcbiAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlRhbmdvIFpvbmUgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+VHJhaWwgRXhwaXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3dhcm5pbmctY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpZXdcIj5WaWV3IEluZm8gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNi41VjkuNUM5IDkuNzY1MjIgOC44OTQ2NCAxMC4wMTk2IDguNzA3MTEgMTAuMjA3MUM4LjUxOTU3IDEwLjM5NDYgOC4yNjUyMiAxMC41IDggMTAuNUgyLjVDMi4yMzQ3OCAxMC41IDEuOTgwNDMgMTAuMzk0NiAxLjc5Mjg5IDEwLjIwNzFDMS42MDUzNiAxMC4wMTk2IDEuNSA5Ljc2NTIyIDEuNSA5LjVWNEMxLjUgMy43MzQ3OCAxLjYwNTM2IDMuNDgwNDMgMS43OTI4OSAzLjI5Mjg5QzEuOTgwNDMgMy4xMDUzNiAyLjIzNDc4IDMgMi41IDNINS41TTcuNSAxLjVIMTAuNU0xMC41IDEuNVY0LjVNMTAuNSAxLjVMNSA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTZcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlRhbmdvIFNPUCAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1zLTJcIj5PbiBUcmFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3ByaW1hcnktY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlld1wiPlZpZXcgSW5mbyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA2LjVWOS41QzkgOS43NjUyMiA4Ljg5NDY0IDEwLjAxOTYgOC43MDcxMSAxMC4yMDcxQzguNTE5NTcgMTAuMzk0NiA4LjI2NTIyIDEwLjUgOCAxMC41SDIuNUMyLjIzNDc4IDEwLjUgMS45ODA0MyAxMC4zOTQ2IDEuNzkyODkgMTAuMjA3MUMxLjYwNTM2IDEwLjAxOTYgMS41IDkuNzY1MjIgMS41IDkuNVY0QzEuNSAzLjczNDc4IDEuNjA1MzYgMy40ODA0MyAxLjc5Mjg5IDMuMjkyODlDMS45ODA0MyAzLjEwNTM2IDIuMjM0NzggMyAyLjUgM0g1LjVNNy41IDEuNUgxMC41TTEwLjUgMS41VjQuNU0xMC41IDEuNUw1IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2PjxpbnB1dCAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0YW5nb3Jldm9wXCIgY2hlY2tlZD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIF9uZ2NvbnRlbnQtd2toLWMyNDk9XCJcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgaGVhZGluZ3RleHQgZC1mbGV4XCI+UHJpb3JpdHkgU3VwcG9ydCA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGItNlwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNpbmd0ZXh0XCI+RnJlZTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbWkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgSW50ZWdyYXRlZCBTb2x1dGlvbiBmb3IgR3Jvd2luZyBCdXNpbmVzc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPjxzcGFuIGNsYXNzPVwibWUtMyBtdC01XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjIzMV80MjM0MilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ljk5OTY3IDEwLjY2NzNWOC4wMDA2NU03Ljk5OTY3IDUuMzMzOThIOC4wMDYzNE0xNC42NjYzIDguMDAwNjVDMTQuNjY2MyAxMS42ODI2IDExLjY4MTYgMTQuNjY3MyA3Ljk5OTY3IDE0LjY2NzNDNC4zMTc3OCAxNC42NjczIDEuMzMzMDEgMTEuNjgyNiAxLjMzMzAxIDguMDAwNjVDMS4zMzMwMSA0LjMxODc1IDQuMzE3NzggMS4zMzM5OCA3Ljk5OTY3IDEuMzMzOThDMTEuNjgxNiAxLjMzMzk4IDE0LjY2NjMgNC4zMTg3NSAxNC42NjYzIDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjU0NzA4XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyMzFfNDIzNDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48ZGl2IGNsYXNzPVwic3VidGV4dCBtdC02XCI+WW91IHdpbGwgb25seSBiZSBjaGFyZ2VkIGZvciA8IFRhbmdvIFRyYWZmaWMsVGFuZ28gPGJyID5ab25lICYgVGFuZ28gUmV2T3BzID48L2Rpdj4gPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC01XCI+U3RhcnRzIGZyb20gPHNwYW4gY2xhc3M9XCJiaWxsZWR0ZXh0IG1zLTJcIj48cz7igrkxODk5PC9zPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmlsbGluZ3RleHQgbXMtNFwiPuKCuTc5OTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YjF0ZXh0IG10LTJcIj5QZXIgc3RvcmUgUGVyIG1vbnRoPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzdGV4dFwiPkJpbGxpbmcgRGV0YWlsczwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViMXRleHQgcHktNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPkJyYW5kIE5hbWU6IC0tPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+QmlsbGluZyBBZGRyZXNzOiAtLTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBzdWJzY3JpYmVcIiA+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInVwZGF0ZSgpXCIgICB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMiBuZy1zdGFyLWluc2VydGVkIHctMTAwIGJ0bi1ibG9jayB0ZXh0LW5vd3JhcFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIj5FbnRlciBCaWxsaW5nIERldGFpbHMgPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwicGxhbiA9PSAncXVhcnRlcmx5J1wiIGNsYXNzPVwibW9kYWwtYm9keSByb3cgXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcGUtOCB2ZXJ0aWNhbFwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+Tm8gb2YgU3RvcmVzIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3QgbGV2ZWx2aWV3dGV4dFwiIGlkPVwiY3VycmVuY3lcIiAoY2xpY2spPVwibm9vZnN0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWZhdWx0IHNlbGVjdCBleGFtcGxlXCI+e3tub29mc3RvcmVzSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub29mc3RvcmVzZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgbm9vZnN0b3Jlc2l0ZW0gb2Ygbm9vZnN0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMubm9vZnN0b3Jlc0lzc3VlID09IG5vb2ZzdG9yZXNpdGVtID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwicHJvZHVjdHRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00XCIgKGNsaWNrKT1cIm5vb2ZzdG9yZXNJdGVtKG5vb2ZzdG9yZXNpdGVtKVwiPnt7bm9vZnN0b3Jlc2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItM1wiPkF2ZXJhZ2UgU2l6ZSBvZiBTdG9yZXMgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdCBsZXZlbHZpZXd0ZXh0XCIgaWQ9XCJjdXJyZW5jeVwiIChjbGljayk9XCJBdmdzdG9yZXNEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7QXZnc3RvcmVzSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJBdmdzdG9yZXNkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBBdmdzdG9yZXNpdGVtIG9mIEF2Z3N0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuQXZnc3RvcmVzSXNzdWUgPT0gQXZnc3RvcmVzaXRlbSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cInByb2R1Y3R0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiIChjbGljayk9XCJBdmdzdG9yZXNJdGVtKEF2Z3N0b3Jlc2l0ZW0pXCI+e3tBdmdzdG9yZXNpdGVtfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1heGNhbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICBNYXhpbXVtIDIgQ2FtZXJhcyBhcmUgcGVybWl0dGVkIGluIHN0b3JlcyB3aXRoIHNxdWFyZSBmZWV0IGJldHdlZW4gNTAgLTUwMC5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3R0ZXh0IHB5LTRcIj5TZWxlY3QgUHJvZHVjdHM8L2Rpdj5cclxuXHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgZGlzYWJsZWQgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlRhbmdvIFRyYWZmaWMgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+U3Vic2NyaWJlZFxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlld1wiPlZpZXcgSW5mbyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA2LjVWOS41QzkgOS43NjUyMiA4Ljg5NDY0IDEwLjAxOTYgOC43MDcxMSAxMC4yMDcxQzguNTE5NTcgMTAuMzk0NiA4LjI2NTIyIDEwLjUgOCAxMC41SDIuNUMyLjIzNDc4IDEwLjUgMS45ODA0MyAxMC4zOTQ2IDEuNzkyODkgMTAuMjA3MUMxLjYwNTM2IDEwLjAxOTYgMS41IDkuNzY1MjIgMS41IDkuNVY0QzEuNSAzLjczNDc4IDEuNjA1MzYgMy40ODA0MyAxLjc5Mjg5IDMuMjkyODlDMS45ODA0MyAzLjEwNTM2IDIuMjM0NzggMyAyLjUgM0g1LjVNNy41IDEuNUgxMC41TTEwLjUgMS41VjQuNU0xMC41IDEuNUw1IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2PjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRhbmdvcmV2b3BcIiBjaGVja2VkPVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgX25nY29udGVudC13a2gtYzI0OT1cIlwiIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBoZWFkaW5ndGV4dCBkLWZsZXhcIj5UYW5nbyBab25lICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXMtMlwiPlRyYWlsIEV4cGlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy93YXJuaW5nLWNsb2NrLWljb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC02XCI+XHJcbiAgICAgICAgICAgIDxkaXY+PGlucHV0ICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICBpZD1cInRhbmdvcmV2b3BcIiBjaGVja2VkPVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgX25nY29udGVudC13a2gtYzI0OT1cIlwiIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBoZWFkaW5ndGV4dCBkLWZsZXhcIj5UYW5nbyBTT1AgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtcy0yXCI+T24gVHJhaWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9wcmltYXJ5LWNsb2NrLWljb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpZXdcIj5WaWV3IEluZm8gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNi41VjkuNUM5IDkuNzY1MjIgOC44OTQ2NCAxMC4wMTk2IDguNzA3MTEgMTAuMjA3MUM4LjUxOTU3IDEwLjM5NDYgOC4yNjUyMiAxMC41IDggMTAuNUgyLjVDMi4yMzQ3OCAxMC41IDEuOTgwNDMgMTAuMzk0NiAxLjc5Mjg5IDEwLjIwNzFDMS42MDUzNiAxMC4wMTk2IDEuNSA5Ljc2NTIyIDEuNSA5LjVWNEMxLjUgMy43MzQ3OCAxLjYwNTM2IDMuNDgwNDMgMS43OTI4OSAzLjI5Mjg5QzEuOTgwNDMgMy4xMDUzNiAyLjIzNDc4IDMgMi41IDNINS41TTcuNSAxLjVIMTAuNU0xMC41IDEuNVY0LjVNMTAuNSAxLjVMNSA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTZcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlByaW9yaXR5IFN1cHBvcnQgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlld1wiPlZpZXcgSW5mbyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA2LjVWOS41QzkgOS43NjUyMiA4Ljg5NDY0IDEwLjAxOTYgOC43MDcxMSAxMC4yMDcxQzguNTE5NTcgMTAuMzk0NiA4LjI2NTIyIDEwLjUgOCAxMC41SDIuNUMyLjIzNDc4IDEwLjUgMS45ODA0MyAxMC4zOTQ2IDEuNzkyODkgMTAuMjA3MUMxLjYwNTM2IDEwLjAxOTYgMS41IDkuNzY1MjIgMS41IDkuNVY0QzEuNSAzLjczNDc4IDEuNjA1MzYgMy40ODA0MyAxLjc5Mjg5IDMuMjkyODlDMS45ODA0MyAzLjEwNTM2IDIuMjM0NzggMyAyLjUgM0g1LjVNNy41IDEuNUgxMC41TTEwLjUgMS41VjQuNU0xMC41IDEuNUw1IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBweC04XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBiLTZcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljaW5ndGV4dFwiPkZyZWU8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZW1pIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIEludGVncmF0ZWQgU29sdXRpb24gZm9yIEdyb3dpbmcgQnVzaW5lc3NcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj48c3BhbiBjbGFzcz1cIm1lLTMgbXQtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyMzFfNDIzNDIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy45OTk2NyAxMC42NjczVjguMDAwNjVNNy45OTk2NyA1LjMzMzk4SDguMDA2MzRNMTQuNjY2MyA4LjAwMDY1QzE0LjY2NjMgMTEuNjgyNiAxMS42ODE2IDE0LjY2NzMgNy45OTk2NyAxNC42NjczQzQuMzE3NzggMTQuNjY3MyAxLjMzMzAxIDExLjY4MjYgMS4zMzMwMSA4LjAwMDY1QzEuMzMzMDEgNC4zMTg3NSA0LjMxNzc4IDEuMzMzOTggNy45OTk2NyAxLjMzMzk4QzExLjY4MTYgMS4zMzM5OCAxNC42NjYzIDQuMzE4NzUgMTQuNjY2MyA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0I1NDcwOFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjMxXzQyMzQyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PGRpdiBjbGFzcz1cInN1YnRleHQgbXQtNlwiPllvdSB3aWxsIG9ubHkgYmUgY2hhcmdlZCBmb3IgPCBUYW5nbyBUcmFmZmljLFRhbmdvIDxiciA+Wm9uZSAmIFRhbmdvIFJldk9wcyA+PC9kaXY+IDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViMXRleHQgbXQtNVwiPlN0YXJ0cyBmcm9tIDxzcGFuIGNsYXNzPVwiYmlsbGVkdGV4dCBtcy0yXCI+PHM+4oK5MTg5OTwvcz48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpbGxpbmd0ZXh0IG1zLTRcIj7igrk3OTk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC0yXCI+UGVyIHN0b3JlIFBlciBtb250aDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc3RleHRcIj5CaWxsaW5nIERldGFpbHM8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1YjF0ZXh0IHB5LTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5CcmFuZCBOYW1lOiAtLTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PkJpbGxpbmcgQWRkcmVzczogLS08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgc3Vic2NyaWJlXCIgPlxyXG4gICAgICAgICAgICA8YnV0dG9uICAoY2xpY2spPVwiY29uZmlybWF0aW9uKClcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMiBuZy1zdGFyLWluc2VydGVkIHctMTAwIGJ0bi1ibG9jayB0ZXh0LW5vd3JhcFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIj5TdWJzY3JpYmUgTm93PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgIDwhLS0gKGNsaWNrKT1cInN1c2NyaWJlZCgpO3Nob3dHaWYoKVwiIC0tPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwicGxhbiA9PSAnYW5udWFsJ1wiIGNsYXNzPVwibW9kYWwtYm9keSByb3cgXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcGUtOCB2ZXJ0aWNhbFwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+Tm8gb2YgU3RvcmVzIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3QgbGV2ZWx2aWV3dGV4dFwiIGlkPVwiY3VycmVuY3lcIiAoY2xpY2spPVwibm9vZnN0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWZhdWx0IHNlbGVjdCBleGFtcGxlXCI+e3tub29mc3RvcmVzSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub29mc3RvcmVzZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgbm9vZnN0b3Jlc2l0ZW0gb2Ygbm9vZnN0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMubm9vZnN0b3Jlc0lzc3VlID09IG5vb2ZzdG9yZXNpdGVtID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwicHJvZHVjdHRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00XCIgKGNsaWNrKT1cIm5vb2ZzdG9yZXNJdGVtKG5vb2ZzdG9yZXNpdGVtKVwiPnt7bm9vZnN0b3Jlc2l0ZW19fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItM1wiPkF2ZXJhZ2UgU2l6ZSBvZiBTdG9yZXMgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdCBsZXZlbHZpZXd0ZXh0XCIgaWQ9XCJjdXJyZW5jeVwiIChjbGljayk9XCJBdmdzdG9yZXNEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7QXZnc3RvcmVzSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJBdmdzdG9yZXNkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBBdmdzdG9yZXNpdGVtIG9mIEF2Z3N0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuQXZnc3RvcmVzSXNzdWUgPT0gQXZnc3RvcmVzaXRlbSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cInByb2R1Y3R0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiIChjbGljayk9XCJBdmdzdG9yZXNJdGVtKEF2Z3N0b3Jlc2l0ZW0pXCI+e3tBdmdzdG9yZXNpdGVtfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1heGNhbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICBNYXhpbXVtIDIgQ2FtZXJhcyBhcmUgcGVybWl0dGVkIGluIHN0b3JlcyB3aXRoIHNxdWFyZSBmZWV0IGJldHdlZW4gNTAgLTUwMC5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3R0ZXh0IHB5LTRcIj5TZWxlY3QgUHJvZHVjdHM8L2Rpdj5cclxuXHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2PjxpbnB1dCBkaXNhYmxlZCAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0YW5nb3Jldm9wXCIgY2hlY2tlZD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIF9uZ2NvbnRlbnQtd2toLWMyNDk9XCJcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgaGVhZGluZ3RleHQgZC1mbGV4XCI+VGFuZ28gVHJhZmZpYyAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5TdWJzY3JpYmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC02XCI+XHJcbiAgICAgICAgICAgIDxkaXY+PGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlRhbmdvIFpvbmUgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+VHJhaWwgRXhwaXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3dhcm5pbmctY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpZXdcIj5WaWV3IEluZm8gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNi41VjkuNUM5IDkuNzY1MjIgOC44OTQ2NCAxMC4wMTk2IDguNzA3MTEgMTAuMjA3MUM4LjUxOTU3IDEwLjM5NDYgOC4yNjUyMiAxMC41IDggMTAuNUgyLjVDMi4yMzQ3OCAxMC41IDEuOTgwNDMgMTAuMzk0NiAxLjc5Mjg5IDEwLjIwNzFDMS42MDUzNiAxMC4wMTk2IDEuNSA5Ljc2NTIyIDEuNSA5LjVWNEMxLjUgMy43MzQ3OCAxLjYwNTM2IDMuNDgwNDMgMS43OTI4OSAzLjI5Mjg5QzEuOTgwNDMgMy4xMDUzNiAyLjIzNDc4IDMgMi41IDNINS41TTcuNSAxLjVIMTAuNU0xMC41IDEuNVY0LjVNMTAuNSAxLjVMNSA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTZcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidGFuZ29yZXZvcFwiIGNoZWNrZWQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPlRhbmdvIFNPUCAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1zLTJcIj5PbiBUcmFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3ByaW1hcnktY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlld1wiPlZpZXcgSW5mbyA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA2LjVWOS41QzkgOS43NjUyMiA4Ljg5NDY0IDEwLjAxOTYgOC43MDcxMSAxMC4yMDcxQzguNTE5NTcgMTAuMzk0NiA4LjI2NTIyIDEwLjUgOCAxMC41SDIuNUMyLjIzNDc4IDEwLjUgMS45ODA0MyAxMC4zOTQ2IDEuNzkyODkgMTAuMjA3MUMxLjYwNTM2IDEwLjAxOTYgMS41IDkuNzY1MjIgMS41IDkuNVY0QzEuNSAzLjczNDc4IDEuNjA1MzYgMy40ODA0MyAxLjc5Mjg5IDMuMjkyODlDMS45ODA0MyAzLjEwNTM2IDIuMjM0NzggMyAyLjUgM0g1LjVNNy41IDEuNUgxMC41TTEwLjUgMS41VjQuNU0xMC41IDEuNUw1IDdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2PjxpbnB1dCAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0YW5nb3Jldm9wXCIgY2hlY2tlZD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIF9uZ2NvbnRlbnQtd2toLWMyNDk9XCJcIiBmb3I9XCJmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgaGVhZGluZ3RleHQgZC1mbGV4XCI+UHJpb3JpdHkgU3VwcG9ydCA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGItNlwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNpbmd0ZXh0XCI+RnJlZTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbWkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgSW50ZWdyYXRlZCBTb2x1dGlvbiBmb3IgR3Jvd2luZyBCdXNpbmVzc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPjxzcGFuIGNsYXNzPVwibWUtMyBtdC01XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjIzMV80MjM0MilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03Ljk5OTY3IDEwLjY2NzNWOC4wMDA2NU03Ljk5OTY3IDUuMzMzOThIOC4wMDYzNE0xNC42NjYzIDguMDAwNjVDMTQuNjY2MyAxMS42ODI2IDExLjY4MTYgMTQuNjY3MyA3Ljk5OTY3IDE0LjY2NzNDNC4zMTc3OCAxNC42NjczIDEuMzMzMDEgMTEuNjgyNiAxLjMzMzAxIDguMDAwNjVDMS4zMzMwMSA0LjMxODc1IDQuMzE3NzggMS4zMzM5OCA3Ljk5OTY3IDEuMzMzOThDMTEuNjgxNiAxLjMzMzk4IDE0LjY2NjMgNC4zMTg3NSAxNC42NjYzIDguMDAwNjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjU0NzA4XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyMzFfNDIzNDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48ZGl2IGNsYXNzPVwic3VidGV4dCBtdC02XCI+WW91IHdpbGwgb25seSBiZSBjaGFyZ2VkIGZvciA8IFRhbmdvIFRyYWZmaWMsVGFuZ28gPGJyID5ab25lICYgVGFuZ28gUmV2T3BzID48L2Rpdj4gPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC01XCI+U3RhcnRzIGZyb20gPHNwYW4gY2xhc3M9XCJiaWxsZWR0ZXh0IG1zLTJcIj48cz7igrkxODk5PC9zPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmlsbGluZ3RleHQgbXMtNFwiPuKCuTc5OTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YjF0ZXh0IG10LTJcIj5QZXIgc3RvcmUgUGVyIG1vbnRoPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzdGV4dFwiPkJpbGxpbmcgRGV0YWlsczwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViMXRleHQgcHktNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPkJyYW5kIE5hbWU6IC0tPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+QmlsbGluZyBBZGRyZXNzOiAtLTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBzdWJzY3JpYmVcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidHJhaWxleHBpcmVkKClcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMiBuZy1zdGFyLWluc2VydGVkIHctMTAwIGJ0bi1ibG9ja1wiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3Vic2NyaWJlIE5vdyA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbiJdfQ==
173
+ args: [{ selector: 'lib-upgrade-plan', template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0]}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-4\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live'\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}}\r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}}\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:38%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"] }]
174
+ }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.ToastService }, { type: i3.PaymentSubscriptionService }, { type: i0.ChangeDetectorRef }], propDecorators: { clientId: [{
175
+ type: Input
176
+ }] } });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBncmFkZS1wbGFuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZ3JhZGUtcGxhbi91cGdyYWRlLXBsYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUd6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBTTFDLE1BQU0sT0FBTyxvQkFBb0I7SUF1Qlg7SUFBZ0M7SUFBcUM7SUFBNkI7SUFBZ0U7SUF0QjdLLFFBQVEsQ0FBTztJQUN4QixrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDcEMsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLGNBQWMsR0FBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEYsYUFBYSxHQUFVLENBQUMsRUFBQyxJQUFJLEVB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Q0FBQztTQUNwQjtJQUNILENBQUM7dUdBcEtVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDBGQ2RqQyxtalFBaUlNOzsyRkRuSE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs4TUFLbkIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuLi91cGRhdGUvdXBkYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgU3VjY2Vzc2Z1bGxTdWJzY3JpcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWNjZXNzZnVsbC1zdWJzY3JpcHRpb24vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYWlsRXhwaXJlZENvbXBvbmVudCB9IGZyb20gJy4uL3RyYWlsLWV4cGlyZWQvdHJhaWwtZXhwaXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25BcHByb3ZhbENvbXBvbmVudCB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11cGdyYWRlLXBsYW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGdyYWRlLXBsYW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91cGdyYWRlLXBsYW4uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlUGxhbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSxPbkluaXQge1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOnN0cmluZ1xyXG4gIG5vb2ZzdG9yZXNkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEF2Z3N0b3Jlc2Ryb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbm9vZnN0b3Jlc3R5cGU6IGFueVtdID0gWycxKGZyZWUpJywgJzIgLSAyNScsICcyNiAtIDUwJywgJzUxIC0gNzUnLCAnNzYgLSAxMDAnLCAnMTAwKyddO1xyXG4gIEF2Z3N0b3Jlc3R5cGU6IGFueVtdID0gW3tuYW1lOic1MCAtIDUwMCBzcS5mdCcsdmFsdWU6JzUwLTUwMCd9LHtuYW1lOiAnNTAwIC0gNzUwIHNxLmZ0Jyx2YWx1ZTonNTAwLTc1MCd9LHtuYW1lOic3NTAgLSAxMDAwIHNxLmZ0Jyx2YWx1ZTonNzUwLTEwMDAnfSwge25hbWU6JzEwMDAgLSAxNTAwIHNxLmZ0Jyx2YWx1ZTonMTAwMC0xNTAwJ30sIHtuYW1lOicxNTAwIC0gMjAwMCBzcS5mdCcsdmFsdWU6JzE1MDAtMjAwMCd9LHtuYW1lOiAnMjAwMCsgc3EuZnQnLHZhbHVlOicyMDAwKyd9XTtcclxuICBwbGFuOiBzdHJpbmcgPSAnbW9udGhseSc7XHJcbiAgc2hvd05hdkdyb3VwOiBib29sZWFuID0gdHJ1ZTtcclxuICBub29mc3RvcmVzaXRlbTogYW55O1xyXG4gIG5vb2ZzdG9yZXNJc3N1ZTogYW55O1xyXG4gIEF2Z3N0b3Jlc2l0ZW06IGFueTtcclxuICBBdmdzdG9yZXNJc3N1ZTogYW55O1xyXG4gIHVwZGF0ZWluZm86IGFueTtcclxuICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjbGllbnRJbmZvOiBhbnk7XHJcbiAgcHJpY2U6YW55O1xyXG4gIG9yaWdpbmFsUHJpY2U6YW55ID0gMDtcclxuICBvbGRQcm9kdWN0czphbnk7XHJcbiAgZGlzYWJsZUJ0bjpib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHByaXZhdGUgYWN0aXZlTW9kZWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsIHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiwpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6dm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZXN1YnNjcmlwdGlvbih0aGlzLmNsaWVudElkKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBzZWxlY3RQbGFuKHBsYW46IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5zdWJzY3JpcHRpb25QZXJpb2QgPSBwbGFuO1xyXG4gICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFVwZGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5tb2RhbERhdGEgPSB7XHJcbiAgICAgIGJyYW5kTmFtZTogdGhpcy5jbGllbnRJbmZvPy5jbGllbnROYW1lLFxyXG4gICAgICBnc3ROdW1iZXI6dGhpcy5jbGllbnRJbmZvPy5iaWxsaW5nQWRkcmVzcz8uZ3N0TnVtYmVyfHwgJycsXHJcbiAgICAgIGJpbGxpbmdBZGRyZXNzOnRoaXMuY2xpZW50SW5mbz8uYmlsbGluZ0FkZHJlc3M/LmJpbGxpbmdBZGRyZXNzfHwgJycsXHJcbiAgICB9XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLmNsaWVudEluZm8uYmlsbGluZ0RldGFpbHMuYmlsbGluZ0FkZHJlc3MgPSByZXN1bHQ/LmJpbGxpbmdBZGRyZXNzO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICB0cmFpbGV4cGlyZWQoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVHJhaWxFeHBpcmVkQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1hdGlvbigpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kZWwuY2xvc2UoKTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihTdWJzY3JpcHRpb25BcHByb3ZhbENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJywgc2Nyb2xsYWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9kdWN0cyA9IHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcm9kdWN0O1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xpZW50SW5mbyA9IHRoaXMuY2xpZW50SW5mbztcclxuICB9XHJcblxyXG4gIHRvZ2dsZU5hdkdyb3VwKCkge1xyXG4gICAgdGhpcy5zaG93TmF2R3JvdXAgPSAhdGhpcy5zaG93TmF2R3JvdXA7XHJcbiAgfVxyXG5cclxuICBub29mc3RvcmVzRHJvcGRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5ub29mc3RvcmVzZHJvcERvd24gPSAhdGhpcy5ub29mc3RvcmVzZHJvcERvd247XHJcbiAgfVxyXG4gIEF2Z3N0b3Jlc0Ryb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSAhdGhpcy5BdmdzdG9yZXNkcm9wRG93bjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZXN1YnNjcmlwdGlvbihpZDogYW55KSB7XHJcbiAgICB0aGlzLlBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlLmNsaWVudEJpbGxpbmdJbmZvKGlkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SW5mbyA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMub2xkUHJvZHVjdHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJvZHVjdCkpXHJcbiAgICAgICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGJhc2VQcmljaW5nKCkge1xyXG4gICAgbGV0IHByb2R1Y3RzID0gdGhpcy5jbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnByb2R1Y3QuZmlsdGVyKChwcm9kdWN0OmFueSkgPT4gcHJvZHVjdC5hY3RpdmUgPT0gdHJ1ZSkubWFwKChpdGVtOmFueSkgPT4gaXRlbS5wcm9kdWN0TmFtZSk7XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIGNhbWFyYVBlclNxZnQ6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3RvcmVTaXplLFxyXG4gICAgICBzdG9yZXNDb3VudDogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby50b3RhbFN0b3JlcyxcclxuICAgICAgcGxhbk5hbWU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3Vic2NyaXB0aW9uUGVyaW9kLFxyXG4gICAgICBwcm9kdWN0czogcHJvZHVjdHMsXHJcbiAgICAgIGN1cnJlbmN5VHlwZTogXCJydXBlZXNcIlxyXG4gICAgfVxyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS5iYXNlUHJpY2luZyhwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnByaWNlID0gcmVzLmRhdGEucHJpY2U7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbFByaWNlID0gcmVzLmRhdGEuT3JpZ2luYWxQcmljZTtcclxuICAgICAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsQ2FtZXJhID0gcmVzLmRhdGEuY2FtYXJhQ291bnQ7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZHVjdChldmVudDphbnksZGF0YTpzdHJpbmcpIHtcclxuICAgIGxldCBjaGFuZ2VzQ291bnQgPSAwO1xyXG4gICAgdGhpcy5jbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnByb2R1Y3QuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLm9sZFByb2R1Y3RzLmZpbmQoKGVsZTphbnkpID0+IGVsZS5wcm9kdWN0TmFtZSA9PSBpdGVtLnByb2R1Y3ROYW1lKTtcclxuICAgICAgaWYoZGV0YWlscykge1xyXG4gICAgICAgIGlmKGRldGFpbHMuYWN0aXZlICE9PSBpdGVtLmFjdGl2ZSkge1xyXG4gICAgICAgICAgY2hhbmdlc0NvdW50ICA9IGNoYW5nZXNDb3VudCArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKGNoYW5nZXNDb3VudCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGxldCBwcm9kdWN0SW5kZXggPSB0aGlzLmNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJvZHVjdC5maW5kSW5kZXgoKHByb2R1Y3Q6YW55KSA9PiBwcm9kdWN0LnByb2R1Y3ROYW1lID09IGRhdGEpO1xyXG4gICAgaWYocHJvZHVjdEluZGV4ICE9IC0xKSB7XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJvZHVjdFtwcm9kdWN0SW5kZXhdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIGVsc2UgXHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcm9kdWN0W3Byb2R1Y3RJbmRleF0uYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgfVxyXG4gICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gIH1cclxuXHJcbiAgbm9vZnN0b3Jlc2RhdGEobm9vZnN0b3Jlc3ZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udG90YWxTdG9yZXMgPSBub29mc3RvcmVzdmFsdWU7XHJcbiAgICB0aGlzLm5vb2ZzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gIH1cclxuICBBdmdzdG9yZXNkYXRhKEF2Z3N0b3Jlc3ZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3RvcmVTaXplID0gQXZnc3RvcmVzdmFsdWU7XHJcbiAgICB0aGlzLmJhc2VQcmljaW5nKCk7XHJcbiAgICB0aGlzLkF2Z3N0b3Jlc2Ryb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG4gIGdldENvbG9yQ2xhc3ModG9vbFRpcDogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKHRvb2xUaXApIHtcclxuICAgICAgY2FzZSAnU3Vic2NyaWJlZCc6IHJldHVybiAnYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBteC0xJztcclxuICAgICAgY2FzZSAnVHJpYWwgRXhwaXJlZCc6IHJldHVybiAnYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBteC0xJztcclxuICAgICAgY2FzZSAnT24gVHJpYWwnOiByZXR1cm4gJ2JhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgbXgtMSc7XHJcbiAgICAgIGRlZmF1bHQ6IHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93TmF2R3JvdXBcIiBjbGFzcz1cIm5hdi1ncm91cCBuYXYtZ3JvdXAtb3V0bGluZSBteC1hdXRvIG10LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zIG1lLTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3Vic2NyaXB0aW9uUGVyaW9kID09PSAnbW9udGhseScgPyAnYWN0aXZlUGxhbkJ0bic6J2luYWN0aXZlUGxhbkJ0bidcIlxyXG4gICAgICAgIGRhdGEta3QtcGxhbj1cIm1vbnRoXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ21vbnRobHknKVwiPlxyXG4gICAgICAgIE1vbnRobHlcclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ3F1YXJ0ZXJseSc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiUXVhcnRlcmx5XCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ3F1YXJ0ZXJseScpXCI+XHJcbiAgICAgICAgUXVhcnRlcmx5IC0gMTAlXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ2FubnVhbCc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiYW5udWFsXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ2FubnVhbCcpXCI+XHJcbiAgICAgICAgQW5udWFsIC0gMTUlXHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgcm93IFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHBlLTggdmVydGljYWxcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItM1wiPk5vIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIm5vb2ZzdG9yZXNEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2NsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8udG90YWxTdG9yZXMgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9vZnN0b3Jlc3R5cGVbMF19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub29mc3RvcmVzZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBub29mc3RvcmVzIG9mIG5vb2ZzdG9yZXN0eXBlXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsU3RvcmVzID09PSBub29mc3RvcmVzID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwibm9vZnN0b3Jlc2RhdGEobm9vZnN0b3JlcylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBub29mc3RvcmVzIH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+QXZlcmFnZSBTaXplIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIkF2Z3N0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7Y2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5zdG9yZVNpemUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQXZnc3RvcmVzdHlwZVswXX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkF2Z3N0b3Jlc2Ryb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgQXZnc3RvcmVzIG9mIEF2Z3N0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3RvcmVTaXplID09PSBBdmdzdG9yZXMgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3R0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiIChjbGljayk9XCJBdmdzdG9yZXNkYXRhKEF2Z3N0b3Jlcy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e0F2Z3N0b3Jlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF4Y2FtIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIE1heGltdW0ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsQ2FtZXJhfX0gQ2FtZXJhcyBhcmUgcGVybWl0dGVkIGluIHN0b3JlcyB3aXRoIHNxdWFyZSBmZWV0IGJldHdlZW4ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN0b3JlU2l6ZX19LlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHRleHQgbXktNSBtdC0xMlwiPlNlbGVjdCBQcm9kdWN0czwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwcm9kdWN0bGlzdCBvZiBjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnByb2R1Y3RcIiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTRcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwidGFuZ29yZXZvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwicHJvZHVjdGxpc3QuYWN0aXZlID09PSB0cnVlXCIgKGNoYW5nZSk9XCJ1cGRhdGVQcm9kdWN0KCRldmVudCxwcm9kdWN0bGlzdC5wcm9kdWN0TmFtZSlcIiBbZGlzYWJsZWRdPVwicHJvZHVjdGxpc3Quc3RhdHVzID09PSAnbGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPnt7cHJvZHVjdGxpc3QuYWxpc2VQcm9kdWN0TmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImdldENvbG9yQ2xhc3MocHJvZHVjdGxpc3QudG9vbFRpcClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3twcm9kdWN0bGlzdC50b29sVGlwfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aWV3XCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGItNlwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNpbmd0ZXh0XCI+RnJlZTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbWkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgSW50ZWdyYXRlZCBTb2x1dGlvbiBmb3IgR3Jvd2luZyBCdXNpbmVzc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+PHNwYW4gY2xhc3M9XCJtZS0zIG10LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMjMxXzQyMzQyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuOTk5NjcgMTAuNjY3M1Y4LjAwMDY1TTcuOTk5NjcgNS4zMzM5OEg4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNTQ3MDhcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjIzMV80MjM0MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRleHQgbXQtNlwiPllvdSB3aWxsIG9ubHkgYmUgY2hhcmdlZCBmb3IgPCBUYW5nbyBUcmFmZmljLFRhbmdvIDxicj5ab25lICYgVGFuZ28gUmV2T3BzID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC01XCI+U3RhcnRzIGZyb20gPHNwYW4gY2xhc3M9XCJiaWxsZWR0ZXh0IG1zLTJcIj48cz7igrl7e29yaWdpbmFsUHJpY2V9fTwvcz48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpbGxpbmd0ZXh0IG1zLTRcIj7igrl7e2NsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJpY2UgfHwgMH19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViMXRleHQgbXQtMlwiPlBlciBzdG9yZSBQZXIgbW9udGg8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHN0ZXh0XCI+QmlsbGluZyBEZXRhaWxzPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBweS00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+QnJhbmQgTmFtZToge3tjbGllbnRJbmZvPy5jbGllbnROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj5CaWxsaW5nIEFkZHJlc3M6IHt7Y2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzIHx8ICctLSd9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBzdWJzY3JpYmVcIj4gXHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInVwZGF0ZSgpXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yIG5nLXN0YXItaW5zZXJ0ZWQgdy0xMDAgYnRuLWJsb2NrIHRleHQtbm93cmFwXCIgKm5nSWY9XCIhY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzXCI+PHNwYW4gY2xhc3M9XCJzdWJtaXRcIj5FbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIEJpbGxpbmcgRGV0YWlscyA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNvbmZpcm1hdGlvbigpXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiICpuZ0lmPVwiY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTIgbmctc3Rhci1pbnNlcnRlZCB3LTEwMCBidG4tYmxvY2tcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5cIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3Vic2NyaWJlIE5vdyA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==