simpo-component-library 3.6.473 → 3.6.475
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.
- package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +1 -4
- package/esm2022/lib/directive/background-directive.mjs +6 -6
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +34 -3
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +7 -4
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +34 -3
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +34 -3
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +50 -10
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -1
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +4 -2
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +4 -7
- package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +4 -4
- package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +7 -3
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +2 -2
- package/esm2022/lib/services/rest.service.mjs +4 -1
- package/fesm2022/simpo-component-library.mjs +188 -54
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +2 -0
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +3 -1
- package/lib/ecommerce/sections/product-list/product-list.component.d.ts +2 -0
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
- package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +9 -1
- package/lib/elements/pricing-s1/pricing-s1.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
- package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/services/rest.service.d.ts +1 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.475.tgz +0 -0
- package/simpo-component-library-3.6.473.tgz +0 -0
package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs
CHANGED
@@ -7,21 +7,31 @@ import { ColorDirective } from '../../../directive/color.directive';
|
|
7
7
|
import { ImageLoadingComponent } from '../../../components/image-loading/image-loading.component';
|
8
8
|
import { RatingModule } from 'primeng/rating';
|
9
9
|
import { FormsModule } from '@angular/forms';
|
10
|
+
import { ToastModule } from 'primeng/toast';
|
10
11
|
import * as i0 from "@angular/core";
|
11
12
|
import * as i1 from "../../../services/cart.service";
|
12
13
|
import * as i2 from "@angular/router";
|
13
|
-
import * as i3 from "
|
14
|
-
import * as i4 from "
|
15
|
-
import * as i5 from "
|
14
|
+
import * as i3 from "../../../services/rest.service";
|
15
|
+
import * as i4 from "../../../services/storage.service";
|
16
|
+
import * as i5 from "primeng/api";
|
17
|
+
import * as i6 from "@angular/common";
|
18
|
+
import * as i7 from "primeng/rating";
|
19
|
+
import * as i8 from "@angular/forms";
|
20
|
+
import * as i9 from "primeng/toast";
|
16
21
|
export class SmallProductListingComponent {
|
17
|
-
constructor(cartService, router) {
|
22
|
+
constructor(cartService, router, restService, storageService, messageService) {
|
18
23
|
this.cartService = cartService;
|
19
24
|
this.router = router;
|
25
|
+
this.restService = restService;
|
26
|
+
this.storageService = storageService;
|
27
|
+
this.messageService = messageService;
|
20
28
|
this.USER_CART = null;
|
21
29
|
this.isCategoryProductList = false;
|
30
|
+
this.IsEcommerce = false;
|
22
31
|
this.imageIndex = -1;
|
23
32
|
}
|
24
33
|
ngOnInit() {
|
34
|
+
this.IsEcommerce = localStorage.getItem("websiteType") != 'STATIC' ? true : false;
|
25
35
|
}
|
26
36
|
addItemToCart(event, product, type) {
|
27
37
|
// if (this.isItemOutOfStock(product)) {
|
@@ -65,6 +75,35 @@ export class SmallProductListingComponent {
|
|
65
75
|
removeDefault(event) {
|
66
76
|
event.stopPropagation();
|
67
77
|
}
|
78
|
+
raiseLead() {
|
79
|
+
const userDetails = this.storageService.getUser();
|
80
|
+
let payload = {
|
81
|
+
businessId: localStorage.getItem('businessId'),
|
82
|
+
email: userDetails?.contact?.email,
|
83
|
+
message: "",
|
84
|
+
mobileNo: "",
|
85
|
+
moreInfo: {
|
86
|
+
Name: userDetails?.contact?.name,
|
87
|
+
"Mobile Number": userDetails?.contact?.mobile,
|
88
|
+
Email: userDetails?.contact?.email,
|
89
|
+
"Lead Source": "Website",
|
90
|
+
"Lead Status": "NEW"
|
91
|
+
},
|
92
|
+
name: userDetails?.contact?.name
|
93
|
+
};
|
94
|
+
this.restService.createLead(payload).subscribe({
|
95
|
+
next: (res) => {
|
96
|
+
if (res?.data) {
|
97
|
+
this.messageService.add({ severity: 'success', summary: 'Thank you', detail: 'Our team will contact you soon' });
|
98
|
+
}
|
99
|
+
},
|
100
|
+
error: (err) => {
|
101
|
+
if (err) {
|
102
|
+
this.messageService.add({ severity: 'error', summary: 'Error', detail: 'Error occured please try again later' });
|
103
|
+
}
|
104
|
+
}
|
105
|
+
});
|
106
|
+
}
|
68
107
|
getItemVarient(product, varientId) {
|
69
108
|
let selectedVarient = null;
|
70
109
|
product?.itemVariant?.forEach((varient) => {
|
@@ -129,8 +168,8 @@ export class SmallProductListingComponent {
|
|
129
168
|
return noofratings;
|
130
169
|
}
|
131
170
|
}
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmallProductListingComponent, deps: [{ token: i1.CartService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList", customClass: "customClass", index: "index" }, ngImport: i0, template: "<div class=\"product hover-effect\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\n off</div>\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\">keyboard_arrow_left</mat-icon></div>\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\">keyboard_arrow_right</mat-icon></div>\n </div>\n </div>\n <div class=\"p-2 h-40\" (click)=\"goToProductDetail(product)\">\n <span class=\"trim-text color\">{{product.name}}</span>\n <div class=\"bottom\">\n <span class=\"m-1\">\n <span class=\"color\"><span
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmallProductListingComponent, deps: [{ token: i1.CartService }, { token: i2.Router }, { token: i3.RestService }, { token: i4.StorageServiceService }, { token: i5.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList", customClass: "customClass", index: "index" }, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\n<div class=\"product hover-effect\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\n off</div>\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\">keyboard_arrow_left</mat-icon></div>\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\">keyboard_arrow_right</mat-icon></div>\n </div>\n </div>\n <div class=\"p-2 h-40\" (click)=\"goToProductDetail(product)\">\n <span class=\"trim-text color\">{{product.name}}</span>\n <div class=\"bottom\">\n <span class=\"m-1\">\n <span class=\"color\"><span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}</span>\n <span class=\"color\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\"\n [ngClass]=\"{'strike-through' : product.price.value - product.price.discountedPrice > 2}\"><span\n [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}</span>\n </span>\n <div class=\"review-rating d-flex gap-2 align-items-center justify-content-between\" *ngIf=\"product?.averageRating\">\n <p-rating [(ngModel)]=\"product.averageRating\" [cancel]=\"false\" [readonly]=\"true\" />\n <div class=\"total-ratings\">{{\n getRatings(product?.totalReviewCount)}}</div>\n </div>\n <div class=\"add-to-cart\" [style.borderColor]=\"data.styles?.background?.accentColor\"\n *ngIf=\"data?.content?.display?.showButton\"\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\"\n (click)=\"removeDefault($event)\">\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\n <ng-container *ngIf=\"!product.quantity\">\n <div (click)=\"addItemToCart($event, product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\"\n *ngIf=\"IsEcommerce\">\n Add to Cart</div>\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\n Me</div>\n </ng-container>\n <ng-container *ngIf=\"product.quantity\">\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\n [style.color]=\"data.styles?.background?.accentColor\">-</span>\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'ADD')\"\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\n [style.color]=\"data.styles?.background?.accentColor\">+</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\n <span class=\"d-flex align-items-center justify-content-center w-100\">\n <mat-icon>notification_important</mat-icon>\n <span class=\"ml-2\">Notify</span>\n </span>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<!-- <ng-template #loadingScreen>\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '100%',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n }\" />\n</ng-template> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}.trim-text{text-align:inherit!important}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:10px;left:10px;transform:translateY(-50%);pointer-events:none}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ImageLoadingComponent, selector: "image-loading", inputs: ["hash", "imageUrl", "index", "product", "theme"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i7.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
|
134
173
|
}
|
135
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmallProductListingComponent, decorators: [{
|
136
175
|
type: Component,
|
@@ -140,9 +179,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
140
179
|
ImageLoadingComponent,
|
141
180
|
ColorDirective,
|
142
181
|
RatingModule,
|
143
|
-
FormsModule
|
144
|
-
|
145
|
-
|
182
|
+
FormsModule,
|
183
|
+
ToastModule
|
184
|
+
], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\n<div class=\"product hover-effect\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\n off</div>\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\">keyboard_arrow_left</mat-icon></div>\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\">keyboard_arrow_right</mat-icon></div>\n </div>\n </div>\n <div class=\"p-2 h-40\" (click)=\"goToProductDetail(product)\">\n <span class=\"trim-text color\">{{product.name}}</span>\n <div class=\"bottom\">\n <span class=\"m-1\">\n <span class=\"color\"><span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}</span>\n <span class=\"color\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\"\n [ngClass]=\"{'strike-through' : product.price.value - product.price.discountedPrice > 2}\"><span\n [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}</span>\n </span>\n <div class=\"review-rating d-flex gap-2 align-items-center justify-content-between\" *ngIf=\"product?.averageRating\">\n <p-rating [(ngModel)]=\"product.averageRating\" [cancel]=\"false\" [readonly]=\"true\" />\n <div class=\"total-ratings\">{{\n getRatings(product?.totalReviewCount)}}</div>\n </div>\n <div class=\"add-to-cart\" [style.borderColor]=\"data.styles?.background?.accentColor\"\n *ngIf=\"data?.content?.display?.showButton\"\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\"\n (click)=\"removeDefault($event)\">\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\n <ng-container *ngIf=\"!product.quantity\">\n <div (click)=\"addItemToCart($event, product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\"\n *ngIf=\"IsEcommerce\">\n Add to Cart</div>\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\n Me</div>\n </ng-container>\n <ng-container *ngIf=\"product.quantity\">\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\n [style.color]=\"data.styles?.background?.accentColor\">-</span>\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'ADD')\"\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\n [style.color]=\"data.styles?.background?.accentColor\">+</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\n <span class=\"d-flex align-items-center justify-content-center w-100\">\n <mat-icon>notification_important</mat-icon>\n <span class=\"ml-2\">Notify</span>\n </span>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<!-- <ng-template #loadingScreen>\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '100%',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n }\" />\n</ng-template> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}.trim-text{text-align:inherit!important}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:10px;left:10px;transform:translateY(-50%);pointer-events:none}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}\n"] }]
|
185
|
+
}], ctorParameters: () => [{ type: i1.CartService }, { type: i2.Router }, { type: i3.RestService }, { type: i4.StorageServiceService }, { type: i5.MessageService }], propDecorators: { product: [{
|
146
186
|
type: Input
|
147
187
|
}], data: [{
|
148
188
|
type: Input
|
@@ -155,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
155
195
|
}], index: [{
|
156
196
|
type: Input
|
157
197
|
}] } });
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWdCN0MsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxZQUNtQixXQUF3QixFQUN4QixNQUFjO1FBRGQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUd6QixjQUFTLEdBQTBCLElBQUksQ0FBQztRQUl2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LElBQUksT0FBTyxFQUFDLENBQUM7WUFDdEQsT0FBTyxDQUFDLFdBQVcsR0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hELENBQUM7YUFDSSxJQUFHLFdBQVcsR0FBRyxPQUFPLEVBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsV0FBVyxHQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakQsQ0FBQzthQUNHLENBQUM7WUFDSCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQzsrR0F2SVUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsK1BDM0J6Qyw0OEhBaUVrQix5MEREaERkLFlBQVksaU9BQ1osT0FBTywySUFDUCxxQkFBcUIscUhBQ3JCLGNBQWMsZ0ZBQ2QsWUFBWSx3VEFDWixXQUFXOzs0RkFLRiw0QkFBNEI7a0JBZHhDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtxR0FZUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEltYWdlTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW1hZ2UtbG9hZGluZy9pbWFnZS1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYXRpbmdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhdGluZyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tc21hbGwtcHJvZHVjdC1saXN0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIEltYWdlTG9hZGluZ0NvbXBvbmVudCxcbiAgICBDb2xvckRpcmVjdGl2ZSxcbiAgICBSYXRpbmdNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgU21hbGxQcm9kdWN0TGlzdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgcHJpdmF0ZSBVU0VSX0NBUlQ6IE9yZGVyZWRJdGVtc1tdIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHByb2R1Y3QhOiBQcm9kdWN0O1xuICBASW5wdXQoKSBkYXRhPzogYW55O1xuICBASW5wdXQoKSBpc1Njcm9sbGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBpc0NhdGVnb3J5UHJvZHVjdExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZGV4ITpudW1iZXJcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICB9XG5cbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xuICAgIC8vIGlmICh0aGlzLmlzSXRlbU91dE9mU3RvY2socHJvZHVjdCkpIHtcbiAgICAvLyAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cblxuICAgIGlmICghcHJvZHVjdD8ucXVhbnRpdHkpXG4gICAgICBwcm9kdWN0LnF1YW50aXR5ID0gMDtcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xuICAgICAgcHJvZHVjdC5xdWFudGl0eSArPSAxO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgLT0gMTtcbiAgICB9XG5cbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0KTtcbiAgICB9XG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcbiAgICAgIGxldCBpc1ByZXNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XG4gICAgICAgICAgaXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmICghaXNQcmVzZW50KVxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcmVtb3ZlRGVmYXVsdChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xuICAgIGxldCBzZWxlY3RlZFZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT0gdmFyaWVudElkKVxuICAgICAgICBzZWxlY3RlZFZhcmllbnQgPSB2YXJpZW50O1xuICAgIH0pXG5cbiAgICByZXR1cm4gc2VsZWN0ZWRWYXJpZW50O1xuICB9XG4gIGdldFBlcmNlbnRhZ2UocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHJldHVybiAoKChwcm9kdWN0Py5wcmljZT8uc2VsbGluZ1ByaWNlIC0gcHJvZHVjdD8ucHJpY2U/LmRpc2NvdW50ZWRQcmljZSkgLyBwcm9kdWN0Py5wcmljZT8uc2VsbGluZ1ByaWNlKSAqIDEwMCkudG9GaXhlZCgwKTtcbiAgfVxuICBnb1RvUHJvZHVjdERldGFpbChwcm9kdWN0OiBQcm9kdWN0KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2BkZXRhaWxzYF0sIHsgcXVlcnlQYXJhbXM6IHsgaWQ6IHByb2R1Y3QuaXRlbUlkIH0gfSk7XG4gIH1cbiAgZ2V0U3VwcG9ydGluZ0NvbG9yKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBoZXggPSBjb2xvcjtcbiAgICBpZiAoIWhleClcbiAgICAgIHJldHVybiBjb2xvcjtcbiAgICBoZXggPSBoZXgucmVwbGFjZSgvXiMvLCAnJyk7XG5cbiAgICBsZXQgYmlnaW50ID0gcGFyc2VJbnQoaGV4LCAxNik7XG4gICAgbGV0IHIgPSAoYmlnaW50ID4+IDE2KSAmIDI1NTtcbiAgICBsZXQgZyA9IChiaWdpbnQgPj4gOCkgJiAyNTU7XG4gICAgbGV0IGIgPSBiaWdpbnQgJiAyNTU7XG5cbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgMC40KWA7XG4gIH1cblxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xuICB9XG5cbiAgZ2V0UHJvZHVjdEltYWdlcyhwcm9kdWN0OiBhbnkpIHtcbiAgICBpZighcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSlcbiAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10gPSAwO1xuXG4gICAgbGV0IGltYWdlSW5kZXg6bnVtYmVyID0gcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSAlIHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5sZW5ndGg7XG4gICAgcmV0dXJuIHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5baW1hZ2VJbmRleF0/LmltZ1VybFxuICB9XG5cbiAgaW1hZ2VJbmRleDogbnVtYmVyID0gLTE7XG4gIGFzeW5jIGNoYW5nZUltYWdlKHByb2R1Y3Q6IGFueSwgYWN0aW9uOiAnUFJFVicgfCAnTkVYVCcpIHtcbiAgICB0aGlzLmltYWdlSW5kZXggPSB0aGlzLmluZGV4O1xuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAzMDApKTtcblxuICAgIGlmKGFjdGlvbiA9PT0gJ05FWFQnKSB7XG4gICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10tLTtcblxuICAgICAgaWYocHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSA8IDApXG4gICAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10gPSBwcm9kdWN0Py5bJ2l0ZW1JbWFnZXMnXT8ubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgICB0aGlzLmltYWdlSW5kZXggPSAtMTtcbiAgfVxuICBnZXRSYXRpbmdzKG5vb2ZyYXRpbmdzIDogYW55KXtcbiAgICBpZihub29mcmF0aW5ncyA+PSAxMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwKXtcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MvMTAwMCkudG9GaXhlZCgxKSArIFwiSytcIjtcbiAgICB9XG4gICAgZWxzZSBpZihub29mcmF0aW5ncyA+IDEwMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwMCl7XG4gICAgICByZXR1cm4gKG5vb2ZyYXRpbmdzLzEwMDAwKS50b0ZpeGVkKDEpICsgXCJLK1wiO1xuICAgIH1cbiAgICBlbHNlIGlmKG5vb2ZyYXRpbmdzID4gMTAwMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwMDApe1xuICAgICAgcmV0dXJuIChub29mcmF0aW5ncy8xMDAwMDApLnRvRml4ZWQoMSkgKyBcIkwrXCI7XG4gICAgfVxuICAgIGVsc2UgaWYobm9vZnJhdGluZ3MgPiAxMDAwMDAwKXtcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MvMTAwMDAwMCkudG9GaXhlZCgxKSArIFwiTStcIjtcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIHJldHVybiBub29mcmF0aW5ncztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9kdWN0IGhvdmVyLWVmZmVjdFwiIFtuZ0NsYXNzXT1cInsnd2lkdGgnIDogaXNTY3JvbGxhYmxlLCAnYWRqdXN0SGVpZ2h0V2lkdGgnOiBpc0NhdGVnb3J5UHJvZHVjdExpc3R9XCJcbiAgW3N0eWxlLm9wYWNpdHldPVwicHJvZHVjdD8uaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrID09IDAgPyAwLjUgOiAxXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgPGRpdiBjbGFzcz1cInByb2QtaW1nXCIgW2NsYXNzLmZhZGUtb3V0XT1cImltYWdlSW5kZXggPT0gaW5kZXhcIj5cbiAgICA8aW1hZ2UtbG9hZGluZyBbaW1hZ2VVcmxdPVwiZ2V0UHJvZHVjdEltYWdlcyhwcm9kdWN0KVwiIFtoYXNoXT1cInByb2R1Y3QuaXRlbUltYWdlcz8uWzBdPy5ibHVyaGFzaFwiXG4gICAgICAoY2xpY2spPVwiZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdClcIiBbdGhlbWVdPVwiZGF0YT8uc3R5bGVzPy50aGVtZVwiPjwvaW1hZ2UtbG9hZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwiZGlzY291bnRcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIlxuICAgICAgW3NpbXBvQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiICpuZ0lmPVwiZ2V0UGVyY2VudGFnZShwcm9kdWN0KSA+ICcwJ1wiPnt7Z2V0UGVyY2VudGFnZShwcm9kdWN0KX19JVxuICAgICAgb2ZmPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWJ1dHRvbnNcIiAqbmdJZj1cIihwcm9kdWN0Py5pdGVtSW1hZ2VzPy5sZW5ndGggfHwgMCkgPiAxXCI+XG4gICAgICA8ZGl2PjxtYXQtaWNvbiAoY2xpY2spPVwiY2hhbmdlSW1hZ2UocHJvZHVjdCwgJ1BSRVYnKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvZGl2PlxuICAgICAgPGRpdj48bWF0LWljb24gKGNsaWNrKT1cImNoYW5nZUltYWdlKHByb2R1Y3QsICdORVhUJylcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicC0yIGgtNDBcIiAoY2xpY2spPVwiZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdClcIj5cbiAgICA8c3BhbiBjbGFzcz1cInRyaW0tdGV4dCBjb2xvclwiPnt7cHJvZHVjdC5uYW1lfX08L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtLTFcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2xvclwiPjxzcGFuXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3Q/LnByaWNlPy5zZWxsaW5nUHJpY2UgPz8gMH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbG9yXCIgKm5nSWY9XCJwcm9kdWN0LnByaWNlLnZhbHVlIC0gcHJvZHVjdC5wcmljZS5kaXNjb3VudGVkUHJpY2UgPiAyXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3N0cmlrZS10aHJvdWdoJyA6IHByb2R1Y3QucHJpY2UudmFsdWUgLSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZSA+IDJ9XCI+PHNwYW5cbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IHt7cHJvZHVjdD8ucHJpY2U/LnZhbHVlID8/IDB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctcmF0aW5nIGQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdJZj1cInByb2R1Y3Q/LmF2ZXJhZ2VSYXRpbmdcIj5cbiAgICAgICAgPHAtcmF0aW5nIFsobmdNb2RlbCldPVwicHJvZHVjdC5hdmVyYWdlUmF0aW5nXCIgW2NhbmNlbF09XCJmYWxzZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsLXJhdGluZ3NcIj57e1xuICAgICAgICAgIGdldFJhdGluZ3MocHJvZHVjdD8udG90YWxSZXZpZXdDb3VudCl9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLXRvLWNhcnRcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJkYXRhPy5jb250ZW50Py5kaXNwbGF5Py5zaG93QnV0dG9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTAgZC1mbGV4JzogcHJvZHVjdC5xdWFudGl0eSwgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiAhcHJvZHVjdC5xdWFudGl0eX1cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlRGVmYXVsdCgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByb2R1Y3QucXVhbnRpdHlcIj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIiBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgICAgICAgIEFkZCB0byBDYXJ0PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHktYnRuXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnU1VCU1RSQUNUJylcIlxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFN1cHBvcnRpbmdDb2xvcihkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPi08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5XCIgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7cHJvZHVjdC5xdWFudGl0eX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWFudGl0eS1idG5cIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0U3VwcG9ydGluZ0NvbG9yKGRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Kzwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJvZHVjdD8uaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDBcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25faW1wb3J0YW50PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMlwiPk5vdGlmeTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gPG5nLXRlbXBsYXRlICNsb2FkaW5nU2NyZWVuPlxuICA8bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImZpbHRlckxvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxuICAgICAgICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXG4gICAgICAgICAgJ3JpZ2h0JzogJzVweCdcbiAgICAgICAgfVwiIC8+XG48L25nLXRlbXBsYXRlPiAtLT4iXX0=
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQWlCNUMsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsY0FBcUMsRUFDckMsY0FBOEI7UUFK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T0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRlbVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICcuLi8uLi9zdHlsZXMvcHJvZHVjdC5tb2RhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbWFnZUxvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ltYWdlLWxvYWRpbmcvaW1hZ2UtbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmF0aW5nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYXRpbmcnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1zbWFsbC1wcm9kdWN0LWxpc3RpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgSW1hZ2VMb2FkaW5nQ29tcG9uZW50LFxuICAgIENvbG9yRGlyZWN0aXZlLFxuICAgIFJhdGluZ01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUb2FzdE1vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBTbWFsbFByb2R1Y3RMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICApIHsgfVxuXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwcm9kdWN0ITogUHJvZHVjdDtcbiAgQElucHV0KCkgZGF0YT86IGFueTtcbiAgQElucHV0KCkgaXNTY3JvbGxhYmxlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNDYXRlZ29yeVByb2R1Y3RMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbmRleCE6IG51bWJlclxuICBJc0Vjb21tZXJjZTogYm9vbGVhbiA9IGZhbHNlO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLklzRWNvbW1lcmNlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ3ZWJzaXRlVHlwZVwiKSAhPSAnU1RBVElDJyA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGFkZEl0ZW1Ub0NhcnQoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1NVQlNUUkFDVCcpIHtcbiAgICAvLyBpZiAodGhpcy5pc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpKSB7XG4gICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdDYXJ0JywgZGV0YWlsOiAnSXRlbSBpcyBub3QgYXZhaWxhYmxlIGFzIG9mIG5vdy4gV2Ugd2lsbCBub3RpZnkgeW91IG9uY2UgYXZhaWxhYmxlJyB9KTtcbiAgICAvLyAgIHJldHVybjtcbiAgICAvLyB9XG5cbiAgICBpZiAoIXByb2R1Y3Q/LnF1YW50aXR5KVxuICAgICAgcHJvZHVjdC5xdWFudGl0eSA9IDA7XG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgKz0gMTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwcm9kdWN0LnF1YW50aXR5IC09IDE7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcbiAgICAgIGlmIChpdGVtVmFyaWVudCkge1xuICAgICAgICBpdGVtVmFyaWVudC5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCk7XG4gICAgfVxuICAgIGlmIChwcm9kdWN0LnF1YW50aXR5KSB7XG4gICAgICBsZXQgaXNQcmVzZW50OiBib29sZWFuID0gZmFsc2U7XG4gICAgICB0aGlzLlVTRVJfQ0FSVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLnZhcmllbnRJZCA9PSBwcm9kdWN0LnZhcmllbnRJZCkge1xuICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xuICAgICAgICAgIGlzUHJlc2VudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAoIWlzUHJlc2VudClcbiAgICAgICAgdGhpcy5VU0VSX0NBUlQ/LnB1c2gobmV3IE9yZGVyZWRJdGVtcyhwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLlVTRVJfQ0FSVCA9IHRoaXMuVVNFUl9DQVJUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHJlbW92ZURlZmF1bHQoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICByYWlzZUxlYWQoKSB7XG4gICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKTtcbiAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJyksXG4gICAgICBlbWFpbDogdXNlckRldGFpbHM/LmNvbnRhY3Q/LmVtYWlsLFxuICAgICAgbWVzc2FnZTogXCJcIixcbiAgICAgIG1vYmlsZU5vOiBcIlwiLFxuICAgICAgbW9yZUluZm86IHtcbiAgICAgICAgTmFtZTogdXNlckRldGFpbHM/LmNvbnRhY3Q/Lm5hbWUsXG4gICAgICAgIFwiTW9iaWxlIE51bWJlclwiOiB1c2VyRGV0YWlscz8uY29udGFjdD8ubW9iaWxlLFxuICAgICAgICBFbWFpbDogdXNlckRldGFpbHM/LmNvbnRhY3Q/LmVtYWlsLFxuICAgICAgICBcIkxlYWQgU291cmNlXCI6IFwiV2Vic2l0ZVwiLFxuICAgICAgICBcIkxlYWQgU3RhdHVzXCI6IFwiTkVXXCJcbiAgICAgIH0sXG4gICAgICBuYW1lOiB1c2VyRGV0YWlscz8uY29udGFjdD8ubmFtZVxuICAgIH1cbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNyZWF0ZUxlYWQocGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzPy5kYXRhKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnVGhhbmsgeW91JywgZGV0YWlsOiAnT3VyIHRlYW0gd2lsbCBjb250YWN0IHlvdSBzb29uJyB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0Vycm9yIG9jY3VyZWQgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlcicgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGdldEl0ZW1WYXJpZW50KHByb2R1Y3Q6IFByb2R1Y3QsIHZhcmllbnRJZDogc3RyaW5nKTogSXRlbVZhcmlhbnQgfCBudWxsIHtcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xuICAgIHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5mb3JFYWNoKCh2YXJpZW50OiBJdGVtVmFyaWFudCkgPT4ge1xuICAgICAgaWYgKHZhcmllbnQudmFyaWFudElkID09IHZhcmllbnRJZClcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcbiAgICB9KVxuXG4gICAgcmV0dXJuIHNlbGVjdGVkVmFyaWVudDtcbiAgfVxuICBnZXRQZXJjZW50YWdlKHByb2R1Y3Q6IFByb2R1Y3QpIHtcbiAgICByZXR1cm4gKCgocHJvZHVjdD8ucHJpY2U/LnNlbGxpbmdQcmljZSAtIHByb2R1Y3Q/LnByaWNlPy5kaXNjb3VudGVkUHJpY2UpIC8gcHJvZHVjdD8ucHJpY2U/LnNlbGxpbmdQcmljZSkgKiAxMDApLnRvRml4ZWQoMCk7XG4gIH1cbiAgZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgZGV0YWlsc2BdLCB7IHF1ZXJ5UGFyYW1zOiB7IGlkOiBwcm9kdWN0Lml0ZW1JZCB9IH0pO1xuICB9XG4gIGdldFN1cHBvcnRpbmdDb2xvcihjb2xvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgaGV4ID0gY29sb3I7XG4gICAgaWYgKCFoZXgpXG4gICAgICByZXR1cm4gY29sb3I7XG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xuXG4gICAgbGV0IGJpZ2ludCA9IHBhcnNlSW50KGhleCwgMTYpO1xuICAgIGxldCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XG4gICAgbGV0IGcgPSAoYmlnaW50ID4+IDgpICYgMjU1O1xuICAgIGxldCBiID0gYmlnaW50ICYgMjU1O1xuXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sIDAuNClgO1xuICB9XG5cbiAgZ2V0IGN1cnJlbmN5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJVU0lORVNTX0NPTlNUQU5UUy5DVVJSRU5DWTtcbiAgfVxuXG4gIGdldFByb2R1Y3RJbWFnZXMocHJvZHVjdDogYW55KSB7XG4gICAgaWYgKCFwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddKVxuICAgICAgcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSA9IDA7XG5cbiAgICBsZXQgaW1hZ2VJbmRleDogbnVtYmVyID0gcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSAlIHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5sZW5ndGg7XG4gICAgcmV0dXJuIHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5baW1hZ2VJbmRleF0/LmltZ1VybFxuICB9XG5cbiAgaW1hZ2VJbmRleDogbnVtYmVyID0gLTE7XG4gIGFzeW5jIGNoYW5nZUltYWdlKHByb2R1Y3Q6IGFueSwgYWN0aW9uOiAnUFJFVicgfCAnTkVYVCcpIHtcbiAgICB0aGlzLmltYWdlSW5kZXggPSB0aGlzLmluZGV4O1xuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAzMDApKTtcblxuICAgIGlmIChhY3Rpb24gPT09ICdORVhUJykge1xuICAgICAgcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddLS07XG5cbiAgICAgIGlmIChwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddIDwgMClcbiAgICAgICAgcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSA9IHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICB0aGlzLmltYWdlSW5kZXggPSAtMTtcbiAgfVxuICBnZXRSYXRpbmdzKG5vb2ZyYXRpbmdzOiBhbnkpIHtcbiAgICBpZiAobm9vZnJhdGluZ3MgPj0gMTAwMCAmJiBub29mcmF0aW5ncyA8PSAxMDAwMCkge1xuICAgICAgcmV0dXJuIChub29mcmF0aW5ncyAvIDEwMDApLnRvRml4ZWQoMSkgKyBcIksrXCI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG5vb2ZyYXRpbmdzID4gMTAwMDAgJiYgbm9vZnJhdGluZ3MgPD0gMTAwMDAwKSB7XG4gICAgICByZXR1cm4gKG5vb2ZyYXRpbmdzIC8gMTAwMDApLnRvRml4ZWQoMSkgKyBcIksrXCI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG5vb2ZyYXRpbmdzID4gMTAwMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwMDApIHtcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MgLyAxMDAwMDApLnRvRml4ZWQoMSkgKyBcIkwrXCI7XG4gICAgfVxuICAgIGVsc2UgaWYgKG5vb2ZyYXRpbmdzID4gMTAwMDAwMCkge1xuICAgICAgcmV0dXJuIChub29mcmF0aW5ncyAvIDEwMDAwMDApLnRvRml4ZWQoMSkgKyBcIk0rXCI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5vb2ZyYXRpbmdzO1xuICAgIH1cbiAgfVxufVxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIj48L3AtdG9hc3Q+XG48ZGl2IGNsYXNzPVwicHJvZHVjdCBob3Zlci1lZmZlY3RcIiBbbmdDbGFzc109XCJ7J3dpZHRoJyA6IGlzU2Nyb2xsYWJsZSwgJ2FkanVzdEhlaWdodFdpZHRoJzogaXNDYXRlZ29yeVByb2R1Y3RMaXN0fVwiXG4gIFtzdHlsZS5vcGFjaXR5XT1cInByb2R1Y3Q/Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9jayA9PSAwID8gMC41IDogMVwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJwcm9kLWltZ1wiIFtjbGFzcy5mYWRlLW91dF09XCJpbWFnZUluZGV4ID09IGluZGV4XCI+XG4gICAgPGltYWdlLWxvYWRpbmcgW2ltYWdlVXJsXT1cImdldFByb2R1Y3RJbWFnZXMocHJvZHVjdClcIiBbaGFzaF09XCJwcm9kdWN0Lml0ZW1JbWFnZXM/LlswXT8uYmx1cmhhc2hcIlxuICAgICAgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlsKHByb2R1Y3QpXCIgW3RoZW1lXT1cImRhdGE/LnN0eWxlcz8udGhlbWVcIj48L2ltYWdlLWxvYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cImRpc2NvdW50XCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcbiAgICAgIFtzaW1wb0NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIiAqbmdJZj1cImdldFBlcmNlbnRhZ2UocHJvZHVjdCkgPiAnMCdcIj57e2dldFBlcmNlbnRhZ2UocHJvZHVjdCl9fSVcbiAgICAgIG9mZjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1idXR0b25zXCIgKm5nSWY9XCIocHJvZHVjdD8uaXRlbUltYWdlcz8ubGVuZ3RoIHx8IDApID4gMVwiPlxuICAgICAgPGRpdj48bWF0LWljb24gKGNsaWNrKT1cImNoYW5nZUltYWdlKHByb2R1Y3QsICdQUkVWJylcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2Rpdj5cbiAgICAgIDxkaXY+PG1hdC1pY29uIChjbGljayk9XCJjaGFuZ2VJbWFnZShwcm9kdWN0LCAnTkVYVCcpXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInAtMiBoLTQwXCIgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlsKHByb2R1Y3QpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0cmltLXRleHQgY29sb3JcIj57e3Byb2R1Y3QubmFtZX19PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJib3R0b21cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibS0xXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29sb3JcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3Q/LnByaWNlPy5zZWxsaW5nUHJpY2UgPz8gMH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbG9yXCIgKm5nSWY9XCJwcm9kdWN0LnByaWNlLnZhbHVlIC0gcHJvZHVjdC5wcmljZS5kaXNjb3VudGVkUHJpY2UgPiAyXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3N0cmlrZS10aHJvdWdoJyA6IHByb2R1Y3QucHJpY2UudmFsdWUgLSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZSA+IDJ9XCI+PHNwYW5cbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IHt7cHJvZHVjdD8ucHJpY2U/LnZhbHVlID8/IDB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctcmF0aW5nIGQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdJZj1cInByb2R1Y3Q/LmF2ZXJhZ2VSYXRpbmdcIj5cbiAgICAgICAgPHAtcmF0aW5nIFsobmdNb2RlbCldPVwicHJvZHVjdC5hdmVyYWdlUmF0aW5nXCIgW2NhbmNlbF09XCJmYWxzZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsLXJhdGluZ3NcIj57e1xuICAgICAgICAgIGdldFJhdGluZ3MocHJvZHVjdD8udG90YWxSZXZpZXdDb3VudCl9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLXRvLWNhcnRcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgKm5nSWY9XCJkYXRhPy5jb250ZW50Py5kaXNwbGF5Py5zaG93QnV0dG9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTAgZC1mbGV4JzogcHJvZHVjdC5xdWFudGl0eSwgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiAhcHJvZHVjdC5xdWFudGl0eX1cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlRGVmYXVsdCgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByb2R1Y3QucXVhbnRpdHlcIj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIiBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJJc0Vjb21tZXJjZVwiPlxuICAgICAgICAgICAgICBBZGQgdG8gQ2FydDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCIhSXNFY29tbWVyY2VcIiAoY2xpY2spPVwicmFpc2VMZWFkKClcIj5Ob3RpZnlcbiAgICAgICAgICAgICAgTWU8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdC5xdWFudGl0eVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWFudGl0eS1idG5cIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0U3VwcG9ydGluZ0NvbG9yKGRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+LTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHlcIiBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+e3twcm9kdWN0LnF1YW50aXR5fX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5LWJ0blwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdXBwb3J0aW5nQ29sb3IoZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4rPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPm5vdGlmaWNhdGlvbl9pbXBvcnRhbnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+Tm90aWZ5PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSA8bmctdGVtcGxhdGUgI2xvYWRpbmdTY3JlZW4+XG4gIDxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiZmlsdGVyTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXG4gICAgICAgICAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAncmlnaHQnOiAnNXB4J1xuICAgICAgICB9XCIgLz5cbjwvbmctdGVtcGxhdGU+IC0tPiJdfQ==
|
@@ -105,6 +105,8 @@ export class StoreListComponent extends BaseSection {
|
|
105
105
|
this.router.navigate(['/store'], { queryParams: { storeId: storeId } });
|
106
106
|
}
|
107
107
|
getTime(storeHours, type) {
|
108
|
+
if (!storeHours || storeHours?.length == 0)
|
109
|
+
return;
|
108
110
|
const today = new Date();
|
109
111
|
const dayName = today.toLocaleDateString('en-US', { weekday: 'long' }).toUpperCase();
|
110
112
|
for (let ele of storeHours) {
|
@@ -154,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
154
156
|
}], index: [{
|
155
157
|
type: Input
|
156
158
|
}] } });
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1saXN0L3N0b3JlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtbGlzdC9zdG9yZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxF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c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nTW9kdWxlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBTdG9yZUxpc3RNb2RhbCwgU3RvcmVMaXN0U3R5bGVNb2RlbCB9IGZyb20gJy4vc3RvcmUtbGlzdC5tb2RhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XG5pbXBvcnQgeyBCdXR0b25FZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWVkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXN0b3JlLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbixcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSxcbiAgICBCdXR0b25FZGl0b3JEaXJlY3RpdmUsXG4gICAgQ29sb3JEaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3N0b3JlLWxpc3QuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xuXG4gIEBJbnB1dCgpIGRhdGE/OiBTdG9yZUxpc3RNb2RhbFxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgcGFnZU5vOiBudW1iZXIgPSAwO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FyZFNpemU6IG51bWJlciA9IDUwO1xuXG5cbiAgc3R5bGVzPzogU3RvcmVMaXN0U3R5bGVNb2RlbDtcbiAgYnV0dG9uPzogQnV0dG9uTW9kZWxcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5idXR0b24gPSB0aGlzLmRhdGE/LmFjdGlvbj8uYnV0dG9uc1swXTtcbiAgICB0aGlzLnBpbmNvZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGluY29kZScpID8/IFwiXCI7XG4gICAgaWYgKHRoaXMucGluY29kZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gNikge1xuICAgICAgdGhpcy5nZXREYXRhV2l0aFBpbmNvZGUoKTtcbiAgICB9XG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcbiAgfVxuICBzdG9yZXNMaXN0OiBhbnkgPSBbXTtcbiAgcGluY29kZTogYW55O1xuICBzdG9yZVBheWxvYWQ6IGFueSA9IHtcbiAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpID8/IFwiMWYwNWYwODUtZDg2NS02YmM1LTgyYjQtMDU3MDY2N2Q2ZjVlXCIsXG4gICAgcGFnZU5vOiAwLFxuICAgIHBhZ2VTaXplOiAxNVxuICB9XG4gIGdldERhdGFXaXRoUGluY29kZSgpIHtcbiAgICBpZiAodGhpcy5waW5jb2RlLnRvU3RyaW5nKCkubGVuZ3RoICE9IDYpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0cnVlXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RvcmVQYXlsb2FkLnBpbmNvZGUgPSB0aGlzLnBpbmNvZGU7XG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcbiAgfVxuICBzaG93TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xuICBzdWJtaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHN0YXRlTGlzdDogYW55XG4gIGdldFN0b3JlRGV0YWlscygpIHtcbiAgICB0aGlzLnN1Ym1pdCA9IHRydWU7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QWxsU3RvcmVzKHRoaXMuc3RvcmVQYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLnN0b3Jlc0xpc3QgPSByZXM/LmRhdGE/LmRhdGE7XG4gICAgICB0aGlzLnN0b3Jlc0xpc3QuZm9yRWFjaCgoc3RvcmUgOiBhbnkpPT4ge1xuICAgICAgICBzdG9yZS5zdGFyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOSkgKyAxO1xuICAgICAgICBzdG9yZS5yZXZpZXdDb3VudCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg1MDAgLSAxMDAgKyAxKSkgKyAxMDA7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlcz8uZGF0YT8uY291bnQ7XG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHJlcz8uZGF0YT8uc3RhdGVEZXRhaWxzO1xuICAgICAgaWYgKHRoaXMucGluY29kZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gNilcbiAgICAgICAgdGhpcy5zaG93TWVzc2FnZSA9IHJlcz8uZGF0YT8uc3RvcmVQcmVzZW50O1xuICAgICAgdGhpcy5zdG9yZVBheWxvYWQucGFnZU5vKys7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZVxuICAgICAgfSlcbiAgfVxuICBzaG93U3RhdGU6IGJvb2xlYW4gPSB0cnVlXG4gIHNlbGVjdGVkU3RhdGU6IHN0cmluZyA9IFwiXCJcbiAgc2V0U3RhdGVEYXRhKHN0YXRlRGF0YTogYW55KSB7XG4gICAgdGhpcy5zdG9yZXNMaXN0ID0gc3RhdGVEYXRhPy5zdG9yZUxpc3Q7XG4gICAgdGhpcy5zaG93U3RhdGUgPSBmYWxzZTtcbiAgfVxuICBnZXRUZXh0Q29sb3IoYmdDb2xvcjogYW55KSB7XG4gICAgaWYgKGJnQ29sb3IpIHtcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IDEzMDsgLy8gQWRqdXN0IHRoaXMgdGhyZXNob2xkIGFzIG5lZWRlZFxuICAgICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XG4gICAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xuICAgICAgY29uc3QgYnJpZ2h0bmVzcyA9IChyICogMjk5ICsgZyAqIDU4NyArIGIgKiAxMTQpIC8gMTAwMDtcblxuICAgICAgcmV0dXJuIGJyaWdodG5lc3MgPiB0aHJlc2hvbGQgPyAnIzAwMDAwMCcgOiAnI2ZmZmZmZic7XG4gICAgfVxuICAgIHJldHVybiBcIiNmZmZmZmY7XCJcbiAgfVxuICBvcGVuV2hhdHNhcHAocGhvbmU6IHN0cmluZykge1xuICAgIGlmIChwaG9uZSkge1xuICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly93YS5tZS8ke3Bob25lfWA7XG4gICAgICB3aW5kb3cub3Blbih3aGF0c2FwcFVybCwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxuICB2aWV3U3RvcmUoc3RvcmVJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc3RvcmUnXSwgeyBxdWVyeVBhcmFtczogeyBzdG9yZUlkOiBzdG9yZUlkIH0gfSk7XG4gIH1cbiAgZ2V0VGltZShzdG9yZUhvdXJzOiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXlOYW1lID0gdG9kYXkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycsIHsgd2Vla2RheTogJ2xvbmcnIH0pLnRvVXBwZXJDYXNlKCk7XG4gICAgZm9yIChsZXQgZWxlIG9mIHN0b3JlSG91cnMpIHtcbiAgICAgIGlmIChlbGUuZGF5T2ZXZWVrID09IGRheU5hbWUpIHtcbiAgICAgICAgaWYgKHR5cGUgPT0gJ09QRU4nKSB7XG4gICAgICAgICAgcmV0dXJuIGVsZS5vcGVuaW5nVGltZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBlbGUuY2xvc2luZ1RpbWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXRSR0JBKGJnQ29sb3I6IGFueSwgb3BhY2l0eTogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRhaW5lclwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiIFtpZF09XCJkYXRhPy5pZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXNlY3Rpb24gdy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRleHQtY2VudGVyIGZsZXgtY29sdW1uXCJcbiAgICAgICAgICAgIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZS1oZWFkZXIgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyBzdWJtaXQgJiYgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlICYmIHBpbmNvZGU/LnRvU3RyaW5nKCk/Lmxlbmd0aCA9PSA2ID8gXCJTdG9yZXMgaW4gXCIgK1xuICAgICAgICAgICAgICAgICAgICBwaW5jb2RlIDpcbiAgICAgICAgICAgICAgICAgICAgXCJGaW5kIGEgU3RvcmUgTmVhciBZb3VcIn19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1Ym1pdCAmJiBzaG93TWVzc2FnZSA9PSB0cnVlICYmIHBpbmNvZGUgJiYgcGluY29kZT8udG9TdHJpbmcoKT8ubGVuZ3RoID09IDYgPyAnV2UgaGF2ZSAnICtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxDb3VudFxuICAgICAgICAgICAgICAgICAgICArICcgc3RvcmVzIGluIHRoaXMgbG9jYWxpdHksIHNjcm9sbCBkb3duIHRvIHZpZXcgdGhlIHN0b3Jlc1xuICAgICAgICAgICAgICAgICAgICBhbmQgYnJvd3NlIHRoZSBkZXNpZ25zIGF2YWlsYWJsZS4nIDogJ0xvY2F0ZSBhIHN0b3JlIG5lYXIgeW91IOKAlCBvdXIgcHJlc2VuY2UgaXMgZXhwYW5kaW5nIGV2ZXJ5IGRheSxcbiAgICAgICAgICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICAgICAgICAgIHdlIGxvb2sgZm9yd2FyZCB0byBzZXJ2aW5nIHlvdS4nIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgW3RoZW1lXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzM1JScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnM3ZoJyxcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB3LTc1XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIFt0aGVtZV09XCJ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICczNSUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzJ2aCcsXG4gICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICAgfVwiPjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMjVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB3LTkwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXgtMVwiPjxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPmdwc19maXhlZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiUGluIENvZGVcIiBbKG5nTW9kZWwpXT1cInBpbmNvZGVcIiBjbGFzcz1cInctOTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGluY29kZS50b1N0cmluZygpLmxlbmd0aCAhPSA2ID8gc3VibWl0ID0gZmFsc2UgOiBlcnJvciA9IGZhbHNlO1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ2V0RGF0YVdpdGhQaW5jb2RlKClcIiBjbGFzcz1cImYtMTMgY3Vyc29yLXBvaW50ZXJcIj5TdWJtaXQ8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmLTEyIHctMjUgdGV4dC1zdGFydCBtdC0yXCIgKm5nSWY9XCJlcnJvclwiIFtzdHlsZS5jb2xvcl09XCInI2RjMzU0NSdcIj5JbnZhbGlkIFBpbmNvZGVcbiAgICAgICAgICAgICAgICAoRXg6NTAwMDg4KTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tY29udGFpbmVyIHJvdyBteC1hdXRvIG10LTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXIgcm93IGdhcC0zIGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItNVwiICpuZ0lmPVwic2hvd1N0YXRlICYmICFwaW5jb2RlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RhdGUgb2Ygc3RhdGVMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1jYXJkIHAtMiBjb2wtc20tNlwiIChjbGljayk9XCJzZXRTdGF0ZURhdGEoc3RhdGUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGU/LnN0YXRlSW1hZ2U7IGVsc2Ugbm9JbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBoLTc1XCIgW3NyY109XCJzdGF0ZT8uc3RhdGVJbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIGgtNzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvRmluZF9Jbl9TdG9yZS9jaXR5XzUuc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTIgc3RhdGUtbmFtZVwiPnt7c3RhdGU/LnN0YXRlTmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmUtY291bnQgdGV4dC1jZW50ZXIgbWItMyBtdC0xXCI+e3tzdGF0ZT8uc3RvcmVDb3VudCArIFwiIHN0b3Jlc1wifX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItM1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJtaXQgJiYgc2hvd01lc3NhZ2UgPT0gZmFsc2UgJiYgcGluY29kZSAmJiBwaW5jb2RlLnRvU3RyaW5nKCkubGVuZ3RoID09NiAmJiAhbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG5vdC1hdmFpbGFibGUtdGV4dFwiPldlIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgbG9jYXRpb24gY3VycmVudGx5PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdy0xMDAgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgW3RoZW1lXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzM1JScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnNnZoJyxcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLXN1Yi10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0zIHctMTAwIGYtMjAgZnctYm9sZFwiPiB7e1xuICAgICAgICAgICAgICAgIHN1Ym1pdCAmJlxuICAgICAgICAgICAgICAgIHNob3dNZXNzYWdlID09IHRydWUgJiYgcGluY29kZSA/IFwiU2hvd2luZyBcIiArIHRvdGFsQ291bnQgKyBcIiBTdG9yZXMgaW4gXCIgKyBwaW5jb2RlIDpcbiAgICAgICAgICAgICAgICBcIlNob3dpbmcgQWxsIFN0b3Jlc1wifX08L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyO2Vsc2UgbG9hZGVyU2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHAtMiBzdG9yZSBkLWZsZXggZmxleC1jb2x1bW4gXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAxMnB4OyBib3JkZXI6IG5vbmU7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGUgb2Ygc3RvcmVzTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggZmxleC1jb2x1bW4gIGgtMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCAgcC0zIHBiLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1iLTIgYmItMSB3LTEwMCBwYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZSBmdy1ib2xkIG1iLTEgdy0xMDBcIj57e2VsZT8uc3RvcmVOYW1lfX08L2g2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmLTExXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKtkDQue3tlbGU/LnN0YXJ9fSAmbmJzcDsmI3gyMDIyOyZuYnNwO3t7ZWxlPy5yZXZpZXdDb3VudH19Jm5ic3A7R29vZ2xlIFJldmlld3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgZi0xMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0xIHRleHQtZGFyayBmdy1tZWRpdW1cIj57e2VsZT8uYWRkcmVzc0RldGFpbHM/LmFkZHJlc3NMaW5lfX0sPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0xIHRleHQtZGFyayBmdy1tZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VsZT8uYWRkcmVzc0RldGFpbHM/LmNpdHl9fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VsZT8uYWRkcmVzc0RldGFpbHM/LnN0YXRlfX0se3tlbGU/LmFkZHJlc3NEZXRhaWxzPy5waW5jb2RlfX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgZnctYm9sZFwiPlBob25lLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+e3tlbGU/LnN0b3JlQ29udGFjdERldGFpbHM/Lm1vYmlsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgZi0xMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wICBmdy1ib2xkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVE9SRSBIT1VSUyAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRUaW1lKGVsZT8uc3RvcmVIb3VycywnT1BFTicpfX0gdG8ge3tnZXRUaW1lKGVsZT8uc3RvcmVIb3VycywnQ0xPU0UnKX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRml4ZWQgYm90dG9tIGJ1dHRvbnMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gIHAtMyB3LTEwMCBici0yMFwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0UkdCQShzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yLDEwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnItMTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDtcIiAoY2xpY2spPVwib3BlbldoYXRzYXBwKGVsZT8uc3RvcmVDb250YWN0RGV0YWlscz8ubW9iaWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O2N1cnNvcjogcG9pbnRlcjtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5maWxsXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42elwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gdy01MFwiIFtidXR0b25EYXRhXT1cImJ1dHRvbj8uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2FwcEJ1dHRvbkVkaXRvcl09XCJlZGl0ID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25JZF09XCJidXR0b24/LmlkID8/ICcnXCIgKGNsaWNrKT1cInZpZXdTdG9yZShlbGUuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclNjcmVlbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIFsxLDIsMyw0LDUsNl1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNsYXNzPVwiY29sLTQgbG9hZGVyLWNvbHVtblwiIFt0aGVtZV09XCJ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0MHZoJyxcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxuICAgICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1saXN0L3N0b3JlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtbGlzdC9zdG9yZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxF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cUJBQ2Y7cUdBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBOZ01vZHVsZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgU3RvcmVMaXN0TW9kYWwsIFN0b3JlTGlzdFN0eWxlTW9kZWwgfSBmcm9tICcuL3N0b3JlLWxpc3QubW9kYWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSB9IGZyb20gJ25neC1za2VsZXRvbi1sb2FkZXInO1xuaW1wb3J0IHsgQnV0dG9uRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1zdG9yZS1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsXG4gICAgQnV0dG9uRWRpdG9yRGlyZWN0aXZlLFxuICAgIENvbG9yRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RvcmUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zdG9yZS1saXN0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlTGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcblxuICBASW5wdXQoKSBkYXRhPzogU3RvcmVMaXN0TW9kYWxcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIHBhZ2VObzogbnVtYmVyID0gMDtcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGNhcmRTaXplOiBudW1iZXIgPSA1MDtcblxuXG4gIHN0eWxlcz86IFN0b3JlTGlzdFN0eWxlTW9kZWw7XG4gIGJ1dHRvbj86IEJ1dHRvbk1vZGVsXG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5kYXRhPy5hY3Rpb24/LmJ1dHRvbnNbMF07XG4gICAgdGhpcy5waW5jb2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSA/PyBcIlwiO1xuICAgIGlmICh0aGlzLnBpbmNvZGU/LnRvU3RyaW5nKCkubGVuZ3RoID09IDYpIHtcbiAgICAgIHRoaXMuZ2V0RGF0YVdpdGhQaW5jb2RlKCk7XG4gICAgfVxuICAgIHRoaXMuZ2V0U3RvcmVEZXRhaWxzKCk7XG4gIH1cbiAgc3RvcmVzTGlzdDogYW55ID0gW107XG4gIHBpbmNvZGU6IGFueTtcbiAgc3RvcmVQYXlsb2FkOiBhbnkgPSB7XG4gICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSA/PyBcIjFmMDVmMDg1LWQ4NjUtNmJjNS04MmI0LTA1NzA2NjdkNmY1ZVwiLFxuICAgIHBhZ2VObzogMCxcbiAgICBwYWdlU2l6ZTogMTVcbiAgfVxuICBnZXREYXRhV2l0aFBpbmNvZGUoKSB7XG4gICAgaWYgKHRoaXMucGluY29kZS50b1N0cmluZygpLmxlbmd0aCAhPSA2KSB7XG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlUGF5bG9hZC5waW5jb2RlID0gdGhpcy5waW5jb2RlO1xuICAgIHRoaXMuZ2V0U3RvcmVEZXRhaWxzKCk7XG4gIH1cbiAgc2hvd01lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxDb3VudDogbnVtYmVyID0gMDtcbiAgc3VibWl0OiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzdGF0ZUxpc3Q6IGFueVxuICBnZXRTdG9yZURldGFpbHMoKSB7XG4gICAgdGhpcy5zdWJtaXQgPSB0cnVlO1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbFN0b3Jlcyh0aGlzLnN0b3JlUGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zdG9yZXNMaXN0ID0gcmVzPy5kYXRhPy5kYXRhO1xuICAgICAgdGhpcy5zdG9yZXNMaXN0LmZvckVhY2goKHN0b3JlIDogYW55KT0+IHtcbiAgICAgICAgc3RvcmUuc3RhciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDkpICsgMTtcbiAgICAgICAgc3RvcmUucmV2aWV3Q291bnQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoNTAwIC0gMTAwICsgMSkpICsgMTAwO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXM/LmRhdGE/LmNvdW50O1xuICAgICAgdGhpcy5zdGF0ZUxpc3QgPSByZXM/LmRhdGE/LnN0YXRlRGV0YWlscztcbiAgICAgIGlmICh0aGlzLnBpbmNvZGU/LnRvU3RyaW5nKCkubGVuZ3RoID09IDYpXG4gICAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSByZXM/LmRhdGE/LnN0b3JlUHJlc2VudDtcbiAgICAgIHRoaXMuc3RvcmVQYXlsb2FkLnBhZ2VObysrO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcbiAgICAgIH0pXG4gIH1cbiAgc2hvd1N0YXRlOiBib29sZWFuID0gdHJ1ZVxuICBzZWxlY3RlZFN0YXRlOiBzdHJpbmcgPSBcIlwiXG4gIHNldFN0YXRlRGF0YShzdGF0ZURhdGE6IGFueSkge1xuICAgIHRoaXMuc3RvcmVzTGlzdCA9IHN0YXRlRGF0YT8uc3RvcmVMaXN0O1xuICAgIHRoaXMuc2hvd1N0YXRlID0gZmFsc2U7XG4gIH1cbiAgZ2V0VGV4dENvbG9yKGJnQ29sb3I6IGFueSkge1xuICAgIGlmIChiZ0NvbG9yKSB7XG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7IC8vIEFkanVzdCB0aGlzIHRocmVzaG9sZCBhcyBuZWVkZWRcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XG4gICAgICBjb25zdCBnID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xuICAgICAgY29uc3QgYiA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG5cbiAgICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xuICAgIH1cbiAgICByZXR1cm4gXCIjZmZmZmZmO1wiXG4gIH1cbiAgb3BlbldoYXRzYXBwKHBob25lOiBzdHJpbmcpIHtcbiAgICBpZiAocGhvbmUpIHtcbiAgICAgIGNvbnN0IHdoYXRzYXBwVXJsID0gYGh0dHBzOi8vd2EubWUvJHtwaG9uZX1gO1xuICAgICAgd2luZG93Lm9wZW4od2hhdHNhcHBVcmwsICdfYmxhbmsnKTtcbiAgICB9XG4gIH1cbiAgdmlld1N0b3JlKHN0b3JlSWQ6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3N0b3JlJ10sIHsgcXVlcnlQYXJhbXM6IHsgc3RvcmVJZDogc3RvcmVJZCB9IH0pO1xuICB9XG4gIGdldFRpbWUoc3RvcmVIb3VyczogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBpZighc3RvcmVIb3VycyB8fCBzdG9yZUhvdXJzPy5sZW5ndGggPT0gMCkgXG4gICAgICByZXR1cm47XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRheU5hbWUgPSB0b2RheS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyB3ZWVrZGF5OiAnbG9uZycgfSkudG9VcHBlckNhc2UoKTtcbiAgICBmb3IgKGxldCBlbGUgb2Ygc3RvcmVIb3Vycykge1xuICAgICAgaWYgKGVsZS5kYXlPZldlZWsgPT0gZGF5TmFtZSkge1xuICAgICAgICBpZiAodHlwZSA9PSAnT1BFTicpIHtcbiAgICAgICAgICByZXR1cm4gZWxlLm9wZW5pbmdUaW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGVsZS5jbG9zaW5nVGltZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldFJHQkEoYmdDb2xvcjogYW55LCBvcGFjaXR5OiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMywgNSksIDE2KTtcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xuICAgIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke29wYWNpdHkgLyAxMDB9KWA7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2lkXT1cImRhdGE/LmlkXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCIgW2lkXT1cImRhdGE/LmlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3Atc2VjdGlvbiB3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgZmxleC1jb2x1bW5cIlxuICAgICAgICAgICAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlLWhlYWRlciBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHN1Ym1pdCAmJiBzaG93TWVzc2FnZSA9PSB0cnVlICYmIHBpbmNvZGUgJiYgcGluY29kZT8udG9TdHJpbmcoKT8ubGVuZ3RoID09IDYgPyBcIlN0b3JlcyBpbiBcIiArXG4gICAgICAgICAgICAgICAgICAgIHBpbmNvZGUgOlxuICAgICAgICAgICAgICAgICAgICBcIkZpbmQgYSBTdG9yZSBOZWFyIFlvdVwifX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgc3VibWl0ICYmIHNob3dNZXNzYWdlID09IHRydWUgJiYgcGluY29kZSAmJiBwaW5jb2RlPy50b1N0cmluZygpPy5sZW5ndGggPT0gNiA/ICdXZSBoYXZlICcgK1xuICAgICAgICAgICAgICAgICAgICB0b3RhbENvdW50XG4gICAgICAgICAgICAgICAgICAgICsgJyBzdG9yZXMgaW4gdGhpcyBsb2NhbGl0eSwgc2Nyb2xsIGRvd24gdG8gdmlldyB0aGUgc3RvcmVzXG4gICAgICAgICAgICAgICAgICAgIGFuZCBicm93c2UgdGhlIGRlc2lnbnMgYXZhaWxhYmxlLicgOiAnTG9jYXRlIGEgc3RvcmUgbmVhciB5b3Ug4oCUIG91ciBwcmVzZW5jZSBpcyBleHBhbmRpbmcgZXZlcnkgZGF5LFxuICAgICAgICAgICAgICAgICAgICBhbmRcbiAgICAgICAgICAgICAgICAgICAgd2UgbG9vayBmb3J3YXJkIHRvIHNlcnZpbmcgeW91LicgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMzUlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICczdmgnLFxuICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHctNzVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgW3RoZW1lXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzM1JScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMnZoJyxcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0yNVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmVycm9yLWJvcmRlcl09XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHctOTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteC0xXCI+PG1hdC1pY29uIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Z3BzX2ZpeGVkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJQaW4gQ29kZVwiIFsobmdNb2RlbCldPVwicGluY29kZVwiIGNsYXNzPVwidy05MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwaW5jb2RlLnRvU3RyaW5nKCkubGVuZ3RoICE9IDYgPyBzdWJtaXQgPSBmYWxzZSA6IGVycm9yID0gZmFsc2U7XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXREYXRhV2l0aFBpbmNvZGUoKVwiIGNsYXNzPVwiZi0xMyBjdXJzb3ItcG9pbnRlclwiPlN1Ym1pdDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImYtMTIgdy0yNSB0ZXh0LXN0YXJ0IG10LTJcIiAqbmdJZj1cImVycm9yXCIgW3N0eWxlLmNvbG9yXT1cIicjZGMzNTQ1J1wiPkludmFsaWQgUGluY29kZVxuICAgICAgICAgICAgICAgIChFeDo1MDAwODgpPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1jb250YWluZXIgcm93IG14LWF1dG8gbXQtM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lciByb3cgZ2FwLTMganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi01XCIgKm5nSWY9XCJzaG93U3RhdGUgJiYgIXBpbmNvZGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGF0ZSBvZiBzdGF0ZUxpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWNhcmQgcC0yIGNvbC1zbS02XCIgKGNsaWNrKT1cInNldFN0YXRlRGF0YShzdGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZT8uc3RhdGVJbWFnZTsgZWxzZSBub0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIGgtNzVcIiBbc3JjXT1cInN0YXRlPy5zdGF0ZUltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgaC03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy9GaW5kX0luX1N0b3JlL2NpdHlfNS5zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMiBzdGF0ZS1uYW1lXCI+e3tzdGF0ZT8uc3RhdGVOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZS1jb3VudCB0ZXh0LWNlbnRlciBtYi0zIG10LTFcIj57e3N0YXRlPy5zdG9yZUNvdW50ICsgXCIgc3RvcmVzXCJ9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0zXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN1Ym1pdCAmJiBzaG93TWVzc2FnZSA9PSBmYWxzZSAmJiBwaW5jb2RlICYmIHBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggPT02ICYmICFsb2FkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbm90LWF2YWlsYWJsZS10ZXh0XCI+V2UgYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBsb2NhdGlvbiBjdXJyZW50bHk8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB3LTEwMCB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMzUlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICc2dmgnLFxuICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tc3ViLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1iLTMgdy0xMDAgZi0yMCBmdy1ib2xkXCI+IHt7XG4gICAgICAgICAgICAgICAgc3VibWl0ICYmXG4gICAgICAgICAgICAgICAgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlID8gXCJTaG93aW5nIFwiICsgdG90YWxDb3VudCArIFwiIFN0b3JlcyBpbiBcIiArIHBpbmNvZGUgOlxuICAgICAgICAgICAgICAgIFwiU2hvd2luZyBBbGwgU3RvcmVzXCJ9fTwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXI7ZWxzZSBsb2FkZXJTY3JlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgcC0yIHN0b3JlIGQtZmxleCBmbGV4LWNvbHVtbiBcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDEycHg7IGJvcmRlcjogbm9uZTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZSBvZiBzdG9yZXNMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBmbGV4LWNvbHVtbiAgaC0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwICBwLTMgcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0IG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbWItMiBiYi0xIHctMTAwIHBiLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJjYXJkLXRpdGxlIGZ3LWJvbGQgbWItMSB3LTEwMFwiPnt7ZWxlPy5zdG9yZU5hbWV9fTwvaDY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImYtMTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4q2QNC57e2VsZT8uc3Rhcn19ICZuYnNwOyYjeDIwMjI7Jm5ic3A7e3tlbGU/LnJldmlld0NvdW50fX0mbmJzcDtHb29nbGUgUmV2aWV3c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBmLTExXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1kYXJrIGZ3LW1lZGl1bVwiPnt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmV9fSw8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1kYXJrIGZ3LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uY2l0eX19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uc3RhdGV9fSx7e2VsZT8uYWRkcmVzc0RldGFpbHM/LnBpbmNvZGV9fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBmdy1ib2xkXCI+UGhvbmUtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj57e2VsZT8uc3RvcmVDb250YWN0RGV0YWlscz8ubW9iaWxlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBmLTExXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgIGZ3LWJvbGRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUT1JFIEhPVVJTIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2dldFRpbWUoZWxlPy5zdG9yZUhvdXJzLCdPUEVOJyl9fSB0byB7e2dldFRpbWUoZWxlPy5zdG9yZUhvdXJzLCdDTE9TRScpfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGaXhlZCBib3R0b20gYnV0dG9ucyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiAgcC0zIHctMTAwIGJyLTIwXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRSR0JBKHN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IsMTApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJici0xMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4O1wiIChjbGljayk9XCJvcGVuV2hhdHNhcHAoZWxlPy5zdG9yZUNvbnRhY3REZXRhaWxzPy5tb2JpbGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0NDggNTEyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7Y3Vyc29yOiBwb2ludGVyO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIFthdHRyLmZpbGxdPVwiZ2V0VGV4dENvbG9yKGRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biB3LTUwXCIgW2J1dHRvbkRhdGFdPVwiYnV0dG9uPy5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJkYXRhPy5pZCsoYnV0dG9uPy5pZCB8fCAnJylcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbklkXT1cImJ1dHRvbj8uaWQgPz8gJydcIiAoY2xpY2spPVwidmlld1N0b3JlKGVsZS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YnV0dG9uPy5jb250ZW50Py5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyU2NyZWVuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMiwzLDQsNSw2XVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY2xhc3M9XCJjb2wtNCBsb2FkZXItY29sdW1uXCIgW3RoZW1lXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzQwdmgnLFxuICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
@@ -52,10 +52,12 @@ export class VerifyComponent extends BaseSection {
|
|
52
52
|
}, 3000);
|
53
53
|
}, 3000);
|
54
54
|
const passBookOrderId = localStorage.getItem("passbookOrderId");
|
55
|
+
const orderId = localStorage.getItem("orderId");
|
56
|
+
console.log('calling verify payment');
|
55
57
|
if (passBookOrderId) {
|
56
58
|
this.checkPassbookPaymentStatus();
|
57
59
|
}
|
58
|
-
else {
|
60
|
+
else if (orderId) {
|
59
61
|
this.checkPaymentStatus();
|
60
62
|
}
|
61
63
|
}
|
@@ -187,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
187
189
|
}], customClass: [{
|
188
190
|
type: Input
|
189
191
|
}] } });
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWtCOUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE5QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsYUFBNEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOUyxnQkFBVyxHQUFYLFdB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QzFCLE9BQU87UUFFVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7K0dBcktVLGVBQWU7bUdBQWYsZUFBZSx1TUFKZixDQUFDLGNBQWMsQ0FBQyxpREM5QjdCLDY3RkF5RUEsdytCRGpESSxXQUFXLDhCQUNYLFlBQVksa0lBR1osd0JBQXdCOzs0RkFNZixlQUFlO2tCQWhCM0IsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHdCQUF3QjtxQkFDekIsYUFDVSxDQUFDLGNBQWMsQ0FBQztrTUFNbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWZXJpZnlQYXltZW50Q29udGVudE1vZGVsLCBWZXJpZnlQYXltZW50U2VjdGlvbk1vZGFsLCBWZXJpZnlQYXltZW50U3R5bGVzTW9kZWwgfSBmcm9tICcuL3ZlcmlmeS1wYXltZW50Lm1vZGVsJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaG92ZXItZWxlbWVudHMvaG92ZXItZWxlbWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tdmVyaWZ5LXBheW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBUb2FzdE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcbiAgICBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmeUNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBkYXRhPzogVmVyaWZ5UGF5bWVudFNlY3Rpb25Nb2RhbDtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIHN0eWxlcz86IFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbDtcbiAgY29udGVudD86IFZlcmlmeVBheW1lbnRDb250ZW50TW9kZWw7XG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcbiAgcGF5bWVudFN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcgfCAnT05HT0lORycgPSAnT05HT0lORydcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJQbGVhc2Ugd2FpdC4uLlwiO1xuICBwcml2YXRlIEFQSV9DT1VOVDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBNQVhfQVBJX0NPVU5UOiBudW1iZXIgPSAyMDtcbiAgcHJpdmF0ZSBQQVNTQk9PS19BUElfQ09VTlQ6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgTUFYX1BBU1NCT09LX0FQSV9DT1VOVCA9IDIwO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXI7XG4gICAgaWYgKCF0aGlzLnVzZXJEZXRhaWxzICYmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKSA9PSBcIlVTRVJcIikpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB0byBhY2Nlc3MgcHJvZmlsZScgfSk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiUkVRVUVTVF9GUk9NXCIpID09IFwiRUNPTU1FUkNFXCIpXG4gICAgICByZXR1cm47XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ1RleHQgPSAnVGhhbmtzIGZvciBjaG9vc2luZyB1cyc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdXZSBhcmUgcHJvY2Vzc2luZyB5b3VyIHBheW1lbnRzJztcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdIb2xkIE9uLi4uJztcbiAgICAgICAgfSwgMzAwMCk7XG4gICAgICB9LCAzMDAwKTtcbiAgICB9LCAzMDAwKTtcblxuICAgIGNvbnN0IHBhc3NCb29rT3JkZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGFzc2Jvb2tPcmRlcklkXCIpO1xuICAgICAgaWYgKHBhc3NCb29rT3JkZXJJZCkge1xuICAgICAgICB0aGlzLmNoZWNrUGFzc2Jvb2tQYXltZW50U3RhdHVzKCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja1BheW1lbnRTdGF0dXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZ2V0SW1hZ2VVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8uaW1hZ2U/LnVybDtcbiAgfVxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xuICB9XG5cbiAgcHVibGljIGNoZWNrUGF5bWVudFN0YXR1cygpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgXCJvcmRlcklkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwib3JkZXJJZFwiKVxuICAgIH1cbiAgICB0aGlzLkFQSV9DT1VOVCsrO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuY2hlY2tQYXltZW50U3RhdHVzKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwib3JkZXJJZFwiKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY2FydElkXCIpO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXltZW50Rm9yXCIpO1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclVzZXJDYXJ0KCk7XG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XG4gICAgICB9LCAzMDAwKTtcbiAgICAgIC8vIFN3YWwuZmlyZSh7XG4gICAgICAvLyAgIGljb246IFwic3VjY2Vzc1wiLFxuICAgICAgLy8gICB0aXRsZTogXCJIdXJyYXlcIixcbiAgICAgIC8vICAgdGV4dDogXCJPcmRlciBwbGFjZWQgc3VjY2Vzc2Z1bGx5XCIsXG4gICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNlZSBEZXRhaWxzXCJcbiAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xuICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAodGhpcy5BUElfQ09VTlQgPj0gdGhpcy5NQVhfQVBJX0NPVU5UKSB7XG4gICAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdGQUlMRUQnXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIC8vIFN3YWwuZmlyZSh7XG4gICAgICAgIC8vICAgaWNvbjogXCJlcnJvclwiLFxuICAgICAgICAvLyAgIHRpdGxlOiBcIlNvcnJ5XCIsXG4gICAgICAgIC8vICAgdGV4dDogXCJXZSBlbmNvdW50ZXJlZCBzb21lIGlzc3VlIHdoaWxlIHBsYWNpbmcgeW91ciBvcmRlclwiLFxuICAgICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxuICAgICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xuICAgICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2hlY2tQYXltZW50U3RhdHVzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBwdWJsaWMgY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKSB7XG4gICAgY29uc3Qgb3JkZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGFzc2Jvb2tPcmRlcklkXCIpXG4gICAgdGhpcy5QQVNTQk9PS19BUElfQ09VTlQrKztcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFBhc3Nib29rT3JkZXJTdGF0dXMob3JkZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXNzYm9va09yZGVySWRcIik7XG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XG4gICAgICB9LCAzMDAwKTtcbiAgICAgIC8vIFN3YWwuZmlyZSh7XG4gICAgICAvLyAgIGljb246IFwic3VjY2Vzc1wiLFxuICAgICAgLy8gICB0aXRsZTogXCJIdXJyYXlcIixcbiAgICAgIC8vICAgdGV4dDogXCJQYXltZW50IFN1Y2Nlc3NmdWxcIixcbiAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2VlIERldGFpbHNcIlxuICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XG4gICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddLCB7cXVlcnlQYXJhbXM6IHt0YWI6ICdTY2hlbWUgUGFzc2Jvb2snfX0pO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9KVxuXG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAodGhpcy5QQVNTQk9PS19BUElfQ09VTlQgPj0gdGhpcy5NQVhfUEFTU0JPT0tfQVBJX0NPVU5UKSB7XG4gICAgICAgIC8vIFN3YWwuZmlyZSh7XG4gICAgICAgIC8vICAgaWNvbjogXCJlcnJvclwiLFxuICAgICAgICAvLyAgIHRpdGxlOiBcIlNvcnJ5XCIsXG4gICAgICAgIC8vICAgdGV4dDogXCJXZSBlbmNvdW50ZXJlZCBzb21lIGlzc3VlIHdoaWxlIHBsYWNpbmcgeW91ciBvcmRlclwiLFxuICAgICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxuICAgICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xuICAgICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfSlcbiAgICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ0ZBSUxFRCdcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICB9LCAzMDAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGVkaXRTZWN0aW9uKCkge1xuXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgIH0sIDEwMCk7XG4gIH1cbn1cbiIsIjwhLS0gPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIiBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIj48L3AtdG9hc3Q+XG48c2VjdGlvbiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB0b3RhbC1jb250YWluZXJcIiBzdHlsZT1cImhlaWdodDogMTAwdmg7XCIgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiAgIFtzcmNdPVwiZ2V0SW1hZ2VVcmxcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDtcIiBbYWx0XT1cImNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57e2xvYWRpbmdUZXh0fX08L3NwYW4+XG5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCIgW2lzRWNvbW1lcmNlXT1cInRydWVcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPiAtLT5cbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ1NVQ0NFU1MnXCIgY2xhc3M9XCJtYWluX3NlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImltYWdlX3NlY3Rpb25cIj5cbiAgICA8aW1nIGFsdD1cImxvYWRlclwiIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjg4OTk2YzE3NTU5MzQ5MDg1Mjc5NjIzNy1zdWNjZXNzLmdpZlwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN1Y2Nlc3NfaGVhZGluZyBoZWFkaW5nXCI+XG4gICAgUGF5bWVudCBTdWNjZXNzZnVsbFxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnRfc3ViX3RleHRcIj5cbiAgICBZb3VyIHBheW1lbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC5cbiAgPC9kaXY+XG4gIDwhLS0gPGRpdiBjbGFzcz1cInBsYW5fZGVzY3JpcHRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVfdmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3RpdGxlXCI+XG4gICAgICAgIFN1YnNjcmliZWQgUGxhblxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxuICAgICAgICB7eyBwbGFuTmFtZSB8IHRpdGxlY2FzZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlX3ZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl90aXRsZVwiPlxuICAgICAgICBBbW91bnQgUGFpZFxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxuICAgICAgICA8c3Bhbj7igrk8L3NwYW4+PHNwYW4+e3sgcGxhbkFtb3VudCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZV92YWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdGl0bGVcIj5cbiAgICAgICAgVmFsaWQgdGlsbFxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxuICAgICAgICB7eyB2YWxpZGl0eSB8IGRhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj4gLS0+XG48L3NlY3Rpb24+XG48c2VjdGlvbiAqbmdJZj1cInBheW1lbnRTdGF0dXMgPT09ICdGQUlMRUQnXCIgY2xhc3M9XCJtYWluX3NlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImltYWdlX3NlY3Rpb25cIj5cbiAgICA8aW1nIGFsdD1cImxvYWRlclwiIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjYzODc4YzE3NTU5MzQ5MzI1NzNwYXltZW50ZmFpbGVkLmdpZlwiPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN1Y2Nlc3NfaGVhZGluZyBoZWFkaW5nXCI+XG4gICAgUGF5bWVudCBGYWlsZWRcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X3N1Yl90ZXh0XCI+XG4gICAgVW5mb3J0dW5hdGVseSBQYXltZW50IHdhcyByZWplY3RlZFxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnRfbWluaW1hbF90ZXh0XCI+XG4gICAgUGFnZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gaG9tZXBhZ2VcbiAgPC9kaXY+XG4gIDwhLS0gPGRpdiBjbGFzcz1cInBsYW5fZGVzY3JpcHRpb25cIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvbmUoKVwiPkRvbmU8L2J1dHRvbj5cbiAgPC9kaXY+IC0tPlxuPC9zZWN0aW9uPlxuXG48c2VjdGlvbiAqbmdJZj1cInBheW1lbnRTdGF0dXMgPT09ICdPTkdPSU5HJ1wiIGNsYXNzPVwibWFpbl9zZWN0aW9uIHNwaW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnQtb25nb2luZ1wiPlxuICAgIDxtYXQtc3Bpbm5lciBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPjwvbWF0LXNwaW5uZXI+XG4gICAgPHA+e3tsb2FkaW5nVGV4dH19PC9wPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWtCOUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE5QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsYUFBNEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOUyxnQkFBVyxHQUFYLFdB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QUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsV0FBVztRQUVULElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQzFCLE9BQU87UUFFVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7K0dBdktVLGVBQWU7bUdBQWYsZUFBZSx1TUFKZixDQUFDLGNBQWMsQ0FBQyxpREM5QjdCLDY3RkF5RUEsdytCRGpESSxXQUFXLDhCQUNYLFlBQVksa0lBR1osd0JBQXdCOzs0RkFNZixlQUFlO2tCQWhCM0IsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHdCQUF3QjtxQkFDekIsYUFDVSxDQUFDLGNBQWMsQ0FBQztrTUFNbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWZXJpZnlQYXltZW50Q29udGVudE1vZGVsLCBWZXJpZnlQYXltZW50U2VjdGlvbk1vZGFsLCBWZXJpZnlQYXltZW50U3R5bGVzTW9kZWwgfSBmcm9tICcuL3ZlcmlmeS1wYXltZW50Lm1vZGVsJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaG92ZXItZWxlbWVudHMvaG92ZXItZWxlbWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tdmVyaWZ5LXBheW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBUb2FzdE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcbiAgICBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmeUNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBkYXRhPzogVmVyaWZ5UGF5bWVudFNlY3Rpb25Nb2RhbDtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIHN0eWxlcz86IFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbDtcbiAgY29udGVudD86IFZlcmlmeVBheW1lbnRDb250ZW50TW9kZWw7XG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcbiAgcGF5bWVudFN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcgfCAnT05HT0lORycgPSAnT05HT0lORydcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJQbGVhc2Ugd2FpdC4uLlwiO1xuICBwcml2YXRlIEFQSV9DT1VOVDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBNQVhfQVBJX0NPVU5UOiBudW1iZXIgPSAyMDtcbiAgcHJpdmF0ZSBQQVNTQk9PS19BUElfQ09VTlQ6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgTUFYX1BBU1NCT09LX0FQSV9DT1VOVCA9IDIwO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuXG4gICAgdGhpcy51c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXI7XG4gICAgaWYgKCF0aGlzLnVzZXJEZXRhaWxzICYmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKSA9PSBcIlVTRVJcIikpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB0byBhY2Nlc3MgcHJvZmlsZScgfSk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiUkVRVUVTVF9GUk9NXCIpID09IFwiRUNPTU1FUkNFXCIpXG4gICAgICByZXR1cm47XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ1RleHQgPSAnVGhhbmtzIGZvciBjaG9vc2luZyB1cyc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdXZSBhcmUgcHJvY2Vzc2luZyB5b3VyIHBheW1lbnRzJztcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdIb2xkIE9uLi4uJztcbiAgICAgICAgfSwgMzAwMCk7XG4gICAgICB9LCAzMDAwKTtcbiAgICB9LCAzMDAwKTtcblxuICAgIGNvbnN0IHBhc3NCb29rT3JkZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGFzc2Jvb2tPcmRlcklkXCIpO1xuICAgIGNvbnN0IG9yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9yZGVySWRcIilcbiAgICBjb25zb2xlLmxvZygnY2FsbGluZyB2ZXJpZnkgcGF5bWVudCcpO1xuICAgICAgaWYgKHBhc3NCb29rT3JkZXJJZCkge1xuICAgICAgICB0aGlzLmNoZWNrUGFzc2Jvb2tQYXltZW50U3RhdHVzKCk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKG9yZGVySWQpe1xuICAgICAgICB0aGlzLmNoZWNrUGF5bWVudFN0YXR1cygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBnZXRJbWFnZVVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Py5pbWFnZT8udXJsO1xuICB9XG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA0NzU7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYXltZW50U3RhdHVzKCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBcIm9yZGVySWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJvcmRlcklkXCIpXG4gICAgfVxuICAgIHRoaXMuQVBJX0NPVU5UKys7XG4gICAgdGhpcy5yZXN0U2VydmljZS5jaGVja1BheW1lbnRTdGF0dXMocGF5bG9hZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJvcmRlcklkXCIpO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJjYXJ0SWRcIik7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBheW1lbnRGb3JcIik7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyVXNlckNhcnQoKTtcbiAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdTVUNDRVNTJ1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcbiAgICAgIH0sIDMwMDApO1xuICAgICAgLy8gU3dhbC5maXJlKHtcbiAgICAgIC8vICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxuICAgICAgLy8gICB0ZXh0OiBcIk9yZGVyIHBsYWNlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2VlIERldGFpbHNcIlxuICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XG4gICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSlcbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmICh0aGlzLkFQSV9DT1VOVCA+PSB0aGlzLk1BWF9BUElfQ09VTlQpIHtcbiAgICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ0ZBSUxFRCdcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgLy8gU3dhbC5maXJlKHtcbiAgICAgICAgLy8gICBpY29uOiBcImVycm9yXCIsXG4gICAgICAgIC8vICAgdGl0bGU6IFwiU29ycnlcIixcbiAgICAgICAgLy8gICB0ZXh0OiBcIldlIGVuY291bnRlcmVkIHNvbWUgaXNzdWUgd2hpbGUgcGxhY2luZyB5b3VyIG9yZGVyXCIsXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiR28gVG8gSG9tZVwiXG4gICAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja1BheW1lbnRTdGF0dXMoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIHB1YmxpYyBjaGVja1Bhc3Nib29rUGF5bWVudFN0YXR1cygpIHtcbiAgICBjb25zdCBvcmRlcklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwYXNzYm9va09yZGVySWRcIilcbiAgICB0aGlzLlBBU1NCT09LX0FQSV9DT1VOVCsrO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0UGFzc2Jvb2tPcmRlclN0YXR1cyhvcmRlcklkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBhc3Nib29rT3JkZXJJZFwiKTtcbiAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdTVUNDRVNTJ1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcbiAgICAgIH0sIDMwMDApO1xuICAgICAgLy8gU3dhbC5maXJlKHtcbiAgICAgIC8vICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxuICAgICAgLy8gICB0ZXh0OiBcIlBheW1lbnQgU3VjY2Vzc2Z1bFwiLFxuICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJTZWUgRGV0YWlsc1wiXG4gICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcbiAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10sIHtxdWVyeVBhcmFtczoge3RhYjogJ1NjaGVtZSBQYXNzYm9vayd9fSk7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG5cbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmICh0aGlzLlBBU1NCT09LX0FQSV9DT1VOVCA+PSB0aGlzLk1BWF9QQVNTQk9PS19BUElfQ09VTlQpIHtcbiAgICAgICAgLy8gU3dhbC5maXJlKHtcbiAgICAgICAgLy8gICBpY29uOiBcImVycm9yXCIsXG4gICAgICAgIC8vICAgdGl0bGU6IFwiU29ycnlcIixcbiAgICAgICAgLy8gICB0ZXh0OiBcIldlIGVuY291bnRlcmVkIHNvbWUgaXNzdWUgd2hpbGUgcGxhY2luZyB5b3VyIG9yZGVyXCIsXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiR28gVG8gSG9tZVwiXG4gICAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9KVxuICAgICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnRkFJTEVEJ1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgICAgIH0sIDMwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja1Bhc3Nib29rUGF5bWVudFN0YXR1cygpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIiwiPCEtLSA8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cbjxzZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRvdGFsLWNvbnRhaW5lclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aDtcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgb25lcnJvcj1cInRoaXMuc3JjPSdodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnJ1wiICAgW3NyY109XCJnZXRJbWFnZVVybFwiIHN0eWxlPVwiaGVpZ2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4O1wiIFthbHRdPVwiY29udGVudD8uaW1hZ2U/LmFsdFRleHRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7bG9hZGluZ1RleHR9fTwvc3Bhbj5cblxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIiBbaXNFY29tbWVyY2VdPVwidHJ1ZVwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgPC9kaXY+XG48L3NlY3Rpb24+IC0tPlxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnU1VDQ0VTUydcIiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiaW1hZ2Vfc2VjdGlvblwiPlxuICAgIDxpbWcgYWx0PVwibG9hZGVyXCIgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82ODg5OTZjMTc1NTkzNDkwODUyNzk2MjM3LXN1Y2Nlc3MuZ2lmXCI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3VjY2Vzc19oZWFkaW5nIGhlYWRpbmdcIj5cbiAgICBQYXltZW50IFN1Y2Nlc3NmdWxsXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGF5bWVudF9zdWJfdGV4dFwiPlxuICAgIFlvdXIgcGF5bWVudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkLlxuICA8L2Rpdj5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwicGxhbl9kZXNjcmlwdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZV92YWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdGl0bGVcIj5cbiAgICAgICAgU3Vic2NyaWJlZCBQbGFuXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XG4gICAgICAgIHt7IHBsYW5OYW1lIHwgdGl0bGVjYXNlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVfdmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3RpdGxlXCI+XG4gICAgICAgIEFtb3VudCBQYWlkXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XG4gICAgICAgIDxzcGFuPuKCuTwvc3Bhbj48c3Bhbj57eyBwbGFuQW1vdW50IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlX3ZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl90aXRsZVwiPlxuICAgICAgICBWYWxpZCB0aWxsXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XG4gICAgICAgIHt7IHZhbGlkaXR5IHwgZGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PiAtLT5cbjwvc2VjdGlvbj5cbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ0ZBSUxFRCdcIiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiaW1hZ2Vfc2VjdGlvblwiPlxuICAgIDxpbWcgYWx0PVwibG9hZGVyXCIgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82NjM4NzhjMTc1NTkzNDkzMjU3M3BheW1lbnRmYWlsZWQuZ2lmXCI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3VjY2Vzc19oZWFkaW5nIGhlYWRpbmdcIj5cbiAgICBQYXltZW50IEZhaWxlZFxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnRfc3ViX3RleHRcIj5cbiAgICBVbmZvcnR1bmF0ZWx5IFBheW1lbnQgd2FzIHJlamVjdGVkXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGF5bWVudF9taW5pbWFsX3RleHRcIj5cbiAgICBQYWdlIHdpbGwgYmUgYXV0b21hdGljYWxseSByZWRpcmVjdCB0byBob21lcGFnZVxuICA8L2Rpdj5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwicGxhbl9kZXNjcmlwdGlvblwiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCI+RG9uZTwvYnV0dG9uPlxuICA8L2Rpdj4gLS0+XG48L3NlY3Rpb24+XG5cbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ09OR09JTkcnXCIgY2xhc3M9XCJtYWluX3NlY3Rpb24gc3Bpbm5lclwiPlxuICA8ZGl2IGNsYXNzPVwicGF5bWVudC1vbmdvaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8cD57e2xvYWRpbmdUZXh0fX08L3A+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|