simpo-component-library 1.6.37 → 1.6.39
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +10 -8
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +18 -13
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +12 -6
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +6 -5
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +9 -7
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +6 -3
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -3
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +8 -3
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +8 -3
- package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +35 -0
- package/esm2022/lib/elements/index.mjs +6 -5
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +5 -3
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +5 -3
- package/esm2022/lib/sections/banner-section/banner-section.component.mjs +5 -3
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +5 -3
- package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +5 -3
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +5 -3
- package/esm2022/lib/sections/contact-us/contact-us.component.mjs +5 -3
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +5 -3
- package/esm2022/lib/sections/features-section/features-section.component.mjs +5 -3
- package/esm2022/lib/sections/footer-section/footer-section.component.mjs +5 -3
- package/esm2022/lib/sections/header-text/header-text.component.mjs +5 -3
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +5 -3
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +5 -3
- package/esm2022/lib/sections/image-section/image-section.component.mjs +5 -3
- package/esm2022/lib/sections/location-section/location-section.component.mjs +5 -3
- package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -3
- package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +5 -3
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +5 -3
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -3
- package/esm2022/lib/sections/process-section/process-section.component.mjs +5 -3
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +5 -3
- package/esm2022/lib/sections/service-section/service-section.component.mjs +5 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +5 -3
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +5 -3
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +5 -3
- package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +5 -3
- package/esm2022/lib/sections/text-section/text-section.component.mjs +5 -3
- package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -3
- package/fesm2022/simpo-component-library.mjs +257 -127
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/address/address.component.d.ts +2 -1
- package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +2 -1
- package/lib/ecommerce/sections/cart/cart.component.d.ts +2 -1
- package/lib/ecommerce/sections/category-product/category-product.component.d.ts +4 -4
- package/lib/ecommerce/sections/checkout/checkout.component.d.ts +2 -1
- package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +2 -1
- package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +2 -1
- package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +3 -2
- package/lib/ecommerce/sections/order-details/order-details.component.d.ts +2 -1
- package/lib/ecommerce/sections/product-category-list/product-category-list.component.d.ts +2 -1
- package/lib/ecommerce/sections/product-list/product-list.component.d.ts +1 -1
- package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +2 -1
- package/lib/ecommerce/sections/user-basic-info/user-basic-info.component.d.ts +1 -0
- package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +2 -1
- package/lib/ecommerce/sections/verify-payment/verify-payment.component.d.ts +3 -1
- package/lib/ecommerce/sections/whislist/whislist.component.d.ts +3 -1
- package/lib/elements/card-skeleton-loader/card-skeleton-loader.component.d.ts +10 -0
- package/lib/elements/index.d.ts +2 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -1
- package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +2 -1
- package/lib/sections/banner-section/banner-section.component.d.ts +2 -1
- package/lib/sections/blog-list/blog-list.component.d.ts +2 -1
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +2 -1
- package/lib/sections/choose-us-section/choose-us-section.component.d.ts +2 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +2 -1
- package/lib/sections/faq-section/faq-section.component.d.ts +2 -1
- package/lib/sections/features-section/features-section.component.d.ts +2 -1
- package/lib/sections/footer-section/footer-section.component.d.ts +2 -1
- package/lib/sections/header-text/header-text.component.d.ts +2 -1
- package/lib/sections/image-carousel-section/image-carousel-section.component.d.ts +2 -1
- package/lib/sections/image-grid-section/image-grid-section.component.d.ts +2 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -1
- package/lib/sections/location-section/location-section.component.d.ts +2 -1
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -1
- package/lib/sections/navbar-section/navbar-section.component.d.ts +2 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -1
- package/lib/sections/process-modern/process-modern.component.d.ts +2 -1
- package/lib/sections/process-section/process-section.component.d.ts +2 -1
- package/lib/sections/recent-blog-post-section/recent-blog-post-section.component.d.ts +2 -1
- package/lib/sections/service-section/service-section.component.d.ts +2 -1
- package/lib/sections/team-member-section/team-member-section.component.d.ts +2 -1
- package/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.d.ts +2 -1
- package/lib/sections/testimonial-section/testimonial-section.component.d.ts +2 -1
- package/lib/sections/text-image-section/text-image-section.component.d.ts +2 -1
- package/lib/sections/text-section/text-section.component.d.ts +2 -1
- package/lib/sections/video-section/video-section.component.d.ts +2 -1
- package/package.json +1 -1
- package/simpo-component-library-1.6.38.tgz +0 -0
- package/simpo-component-library-1.6.39.tgz +0 -0
- package/simpo-component-library-1.6.37.tgz +0 -0
@@ -257,7 +257,7 @@ export class AddressComponent extends BaseSection {
|
|
257
257
|
return window.innerWidth <= 475;
|
258
258
|
}
|
259
259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AddressComponent, deps: [{ token: i0.NgZone }, { token: i1.RestService }, { token: i2.MatDialog }, { token: i3.MatBottomSheet }, { token: i4.Router }, { token: i5.StorageServiceService }, { token: i6.EventsService }, { token: MAT_DIALOG_DATA, optional: true }, { token: i2.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AddressComponent, isStandalone: true, selector: "simpo-address", inputs: { responseData: "responseData", data: "data", index: "index", edit: "edit", delete: "delete", isCart: "isCart" }, outputs: { selectedAddress: "selectedAddress" }, providers: [], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"address-sec\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" >\r\n <div class=\"header\">\r\n <div class=\"new-address-header\">\r\n <mat-icon (click)=\"goToProfile()\" *ngIf=\"!isCart\">keyboard_arrow_left</mat-icon>\r\n <h3>{{isCart ? 'Shipping To' : 'New Address'}}</h3>\r\n </div>\r\n <span class=\"add-address\" [style.color]=\"styles?.background?.accentColor\" *ngIf=\"!addNewAddress\" (click)=\"addNewAddress = true\">+ add address</span>\r\n </div>\r\n <ng-container *ngIf=\"addNewAddress\">\r\n <!-- <p (click)=\"getCurrentLocation()\" class=\"d-flex align-items-center\" style=\"cursor: pointer;\">\r\n <mat-icon>my_location</mat-icon>\r\n <span>Take my current location</span>\r\n </p> -->\r\n <div class=\"forms d-flex flex-wrap\">\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Name</div>\r\n <input type=\"text\" placeholder=\"Enter name\" [(ngModel)]=\"address.receiverName\" (keydown)=\"validateName($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Mobile</div>\r\n <input type=\"text\" placeholder=\"Enter mobile\" [(ngModel)]=\"address.receiverPhone\" (keydown)=\"validateMobile($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Email</div>\r\n <input type=\"text\" placeholder=\"Enter email\" [(ngModel)]=\"address.receiverEmail\">\r\n </div>\r\n <div class=\"form-control-full-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address</div>\r\n <input type=\"text\" placeholder=\"Enter address\" matGoogleMapsAutocomplete\r\n (onAutocompleteSelected)=\"onAutocompleteSelected($event)\"\r\n (onLocationSelected)=\"onLocationSelected($event)\" [(ngModel)]=\"address.addressLine1\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Locality</div>\r\n <input type=\"text\" placeholder=\"Enter locality\" [(ngModel)]=\"address.localityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label\" [style.color]=\"data?.styles?.background?.accentColor\">Landmark</div>\r\n <input type=\"text\" placeholder=\"Enter landmark\" [(ngModel)]=\"address.landmark\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Pincode</div>\r\n <input type=\"text\" placeholder=\"Enter pincode\" [(ngModel)]=\"address.zipCode\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">City</div>\r\n <input type=\"text\" placeholder=\"Enter city\" [(ngModel)]=\"address.cityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">State</div>\r\n <input type=\"text\" placeholder=\"Enter state\" [(ngModel)]=\"address.stateName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address Type</div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let address of addessType\">\r\n <span class=\"address-type\" (click)=\"checkAddressType(address)\" [style.backgroundColor]=\"address.status ? data?.styles?.background?.accentColor : 'rgba(211, 211, 211, 0.362)'\" [ngClass]=\"{'active-address': address.status}\">{{address.key}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"address-list\" *ngIf=\"!addNewAddress\">\r\n <ng-container *ngFor=\"let address of addressList; let idx = index\">\r\n <div class=\"address\" (click)=\"addressSelected(idx)\" [style.borderColor]=\"selectedAddressIdx == idx ? data?.styles?.background?.accentColor : ''\">\r\n <div class=\"address-left\">\r\n <div class=\"top\">\r\n <span class=\"fw-bold mr-2\">{{address?.receiverName}}</span>\r\n <span class=\"address-type\">{{address?.addressType}}</span>\r\n </div>\r\n <div class=\"address-det\">{{address.addressLine1}}</div>\r\n <div class=\"phone\">\r\n <span>Phone:</span>\r\n <span class=\"address-phone\">{{address.receiverPhone}}</span>\r\n </div>\r\n </div>\r\n <div class=\"address-right\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"action-btn\" *ngIf=\"addNewAddress\">\r\n <div class=\"error-message\">\r\n <span *ngIf=\"address.receiverPhone?.length != 10 && address.receiverPhone?.length\">*Mobile number is invalid</span>\r\n <span *ngIf=\"!isEmailValid\">*Email is invalid</span>\r\n </div>\r\n <button [style.backgroundColor]=\"data?.styles?.background?.accentColor\" [disabled]=\"\r\n !address.receiverName || \r\n !address.receiverPhone ||\r\n address.receiverPhone?.length != 10 ||\r\n !isEmailValid || \r\n !address.addressLine1 || \r\n !address.localityName || \r\n !address.zipCode || \r\n !address.cityName ||\r\n !address.stateName || \r\n !address.addressType || isLoading\r\n \" (click)=\"updateAddress()\">{{isLoading ? 'Loading' : 'Update'}}</button>\r\n </div>\r\n</section>\r\n\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: [".address-sec{padding:20px;position:relative}.address-sec .header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:20px}.new-address-header{display:flex;align-items:center}.mat-icon{cursor:pointer;margin-right:5px}.action-btn{margin-left:auto;bottom:-20px;position:relative;right:0;display:flex;flex-direction:column;align-items:flex-end}.action-btn button{color:#fff;padding:10px;width:200px!important;border:none;border-radius:5px}.label:after{content:\"*\"}.active-address{color:#fff!important}.forms{gap:10px;justify-content:space-between}.form-control-group,.form-control-full-group{width:48%}:is(.form-control-group,.form-control-full-group) input{width:100%;padding:10px;border-radius:3px;border:1.5px solid lightgray}.form-control-full-group{width:100%!important}.address-type{width:150px;padding:10px;color:#000;text-align:center;border-radius:5px;margin:0 5px;cursor:pointer}.address{display:flex;padding:15px;border-radius:5px;box-shadow:0 1px 1px #0000,0 1px 1px #00000030;border:2px solid transparent}.address-list{display:flex;flex-direction:column;gap:10px;height:500px;overflow-y:auto}.address-list .address-left{width:80%}.address-list .address-right{width:20%}.address-list .address-phone{margin-left:10px}.address-list .address-type{background-color:#d3d3d34a;padding:5px 10px;text-align:center;border-radius:5px;margin-left:15px}.address-list .address-det{margin:10px 0}.add-address{cursor:pointer;font-weight:600}.address-active{color:#fff}.error-message{color:tomato;display:flex;flex-direction:column;width:100%}@media only screen and (max-width: 475px){.address-list{height:fit-content;max-height:230px}.forms{flex-direction:column}.form-control-group{width:100%}.label{padding-bottom:10px}.address-type-options{position:relative;right:4px}.action-btn{position:relative;bottom:0;top:19px;right:0}.action-btn button{width:100%!important}.address-type{padding:10px 27px}.address-sec{padding:20px 4px}}button:disabled{background-color:#d3d3d3!important}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatBottomSheetModule }, { kind: "component", type: DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }] }); }
|
260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AddressComponent, isStandalone: true, selector: "simpo-address", inputs: { responseData: "responseData", data: "data", index: "index", customClass: "customClass", edit: "edit", delete: "delete", isCart: "isCart" }, outputs: { selectedAddress: "selectedAddress" }, providers: [], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section class=\"address-sec\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div class=\"header\">\r\n <div class=\"new-address-header\">\r\n <mat-icon (click)=\"goToProfile()\" *ngIf=\"!isCart\">keyboard_arrow_left</mat-icon>\r\n <h3>{{isCart ? 'Shipping To' : 'New Address'}}</h3>\r\n </div>\r\n <span class=\"add-address\" [style.color]=\"styles?.background?.accentColor\" *ngIf=\"!addNewAddress\" (click)=\"addNewAddress = true\">+ add address</span>\r\n </div>\r\n <ng-container *ngIf=\"addNewAddress\">\r\n <!-- <p (click)=\"getCurrentLocation()\" class=\"d-flex align-items-center\" style=\"cursor: pointer;\">\r\n <mat-icon>my_location</mat-icon>\r\n <span>Take my current location</span>\r\n </p> -->\r\n <div class=\"forms d-flex flex-wrap\">\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Name</div>\r\n <input type=\"text\" placeholder=\"Enter name\" [(ngModel)]=\"address.receiverName\" (keydown)=\"validateName($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Mobile</div>\r\n <input type=\"text\" placeholder=\"Enter mobile\" [(ngModel)]=\"address.receiverPhone\" (keydown)=\"validateMobile($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Email</div>\r\n <input type=\"text\" placeholder=\"Enter email\" [(ngModel)]=\"address.receiverEmail\">\r\n </div>\r\n <div class=\"form-control-full-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address</div>\r\n <input type=\"text\" placeholder=\"Enter address\" matGoogleMapsAutocomplete\r\n (onAutocompleteSelected)=\"onAutocompleteSelected($event)\"\r\n (onLocationSelected)=\"onLocationSelected($event)\" [(ngModel)]=\"address.addressLine1\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Locality</div>\r\n <input type=\"text\" placeholder=\"Enter locality\" [(ngModel)]=\"address.localityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label\" [style.color]=\"data?.styles?.background?.accentColor\">Landmark</div>\r\n <input type=\"text\" placeholder=\"Enter landmark\" [(ngModel)]=\"address.landmark\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Pincode</div>\r\n <input type=\"text\" placeholder=\"Enter pincode\" [(ngModel)]=\"address.zipCode\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">City</div>\r\n <input type=\"text\" placeholder=\"Enter city\" [(ngModel)]=\"address.cityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">State</div>\r\n <input type=\"text\" placeholder=\"Enter state\" [(ngModel)]=\"address.stateName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address Type</div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let address of addessType\">\r\n <span class=\"address-type\" (click)=\"checkAddressType(address)\" [style.backgroundColor]=\"address.status ? data?.styles?.background?.accentColor : 'rgba(211, 211, 211, 0.362)'\" [ngClass]=\"{'active-address': address.status}\">{{address.key}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"address-list\" *ngIf=\"!addNewAddress\">\r\n <ng-container *ngFor=\"let address of addressList; let idx = index\">\r\n <div class=\"address\" (click)=\"addressSelected(idx)\" [style.borderColor]=\"selectedAddressIdx == idx ? data?.styles?.background?.accentColor : ''\">\r\n <div class=\"address-left\">\r\n <div class=\"top\">\r\n <span class=\"fw-bold mr-2\">{{address?.receiverName}}</span>\r\n <span class=\"address-type\">{{address?.addressType}}</span>\r\n </div>\r\n <div class=\"address-det\">{{address.addressLine1}}</div>\r\n <div class=\"phone\">\r\n <span>Phone:</span>\r\n <span class=\"address-phone\">{{address.receiverPhone}}</span>\r\n </div>\r\n </div>\r\n <div class=\"address-right\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"action-btn\" *ngIf=\"addNewAddress\">\r\n <div class=\"error-message\">\r\n <span *ngIf=\"address.receiverPhone?.length != 10 && address.receiverPhone?.length\">*Mobile number is invalid</span>\r\n <span *ngIf=\"!isEmailValid\">*Email is invalid</span>\r\n </div>\r\n <button [style.backgroundColor]=\"data?.styles?.background?.accentColor\" [disabled]=\"\r\n !address.receiverName || \r\n !address.receiverPhone ||\r\n address.receiverPhone?.length != 10 ||\r\n !isEmailValid || \r\n !address.addressLine1 || \r\n !address.localityName || \r\n !address.zipCode || \r\n !address.cityName ||\r\n !address.stateName || \r\n !address.addressType || isLoading\r\n \" (click)=\"updateAddress()\">{{isLoading ? 'Loading' : 'Update'}}</button>\r\n </div>\r\n</section>\r\n\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: [".address-sec{padding:20px;position:relative}.address-sec .header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:20px}.new-address-header{display:flex;align-items:center}.mat-icon{cursor:pointer;margin-right:5px}.action-btn{margin-left:auto;bottom:-20px;position:relative;right:0;display:flex;flex-direction:column;align-items:flex-end}.action-btn button{color:#fff;padding:10px;width:200px!important;border:none;border-radius:5px}.label:after{content:\"*\"}.active-address{color:#fff!important}.forms{gap:10px;justify-content:space-between}.form-control-group,.form-control-full-group{width:48%}:is(.form-control-group,.form-control-full-group) input{width:100%;padding:10px;border-radius:3px;border:1.5px solid lightgray}.form-control-full-group{width:100%!important}.address-type{width:150px;padding:10px;color:#000;text-align:center;border-radius:5px;margin:0 5px;cursor:pointer}.address{display:flex;padding:15px;border-radius:5px;box-shadow:0 1px 1px #0000,0 1px 1px #00000030;border:2px solid transparent}.address-list{display:flex;flex-direction:column;gap:10px;height:500px;overflow-y:auto}.address-list .address-left{width:80%}.address-list .address-right{width:20%}.address-list .address-phone{margin-left:10px}.address-list .address-type{background-color:#d3d3d34a;padding:5px 10px;text-align:center;border-radius:5px;margin-left:15px}.address-list .address-det{margin:10px 0}.add-address{cursor:pointer;font-weight:600}.address-active{color:#fff}.error-message{color:tomato;display:flex;flex-direction:column;width:100%}@media only screen and (max-width: 475px){.address-list{height:fit-content;max-height:230px}.forms{flex-direction:column}.form-control-group{width:100%}.label{padding-bottom:10px}.address-type-options{position:relative;right:4px}.action-btn{position:relative;bottom:0;top:19px;right:0}.action-btn button{width:100%!important}.address-type{padding:10px 27px}.address-sec{padding:20px 4px}}button:disabled{background-color:#d3d3d3!important}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatBottomSheetModule }, { kind: "component", type: DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }] }); }
|
261
261
|
}
|
262
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AddressComponent, decorators: [{
|
263
263
|
type: Component,
|
@@ -270,7 +270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
270
270
|
MatBottomSheetModule,
|
271
271
|
DeleteHoverElementComponent,
|
272
272
|
HoverElementsComponent
|
273
|
-
], providers: [], template: "<section class=\"address-sec\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" >\r\n <div class=\"header\">\r\n <div class=\"new-address-header\">\r\n <mat-icon (click)=\"goToProfile()\" *ngIf=\"!isCart\">keyboard_arrow_left</mat-icon>\r\n <h3>{{isCart ? 'Shipping To' : 'New Address'}}</h3>\r\n </div>\r\n <span class=\"add-address\" [style.color]=\"styles?.background?.accentColor\" *ngIf=\"!addNewAddress\" (click)=\"addNewAddress = true\">+ add address</span>\r\n </div>\r\n <ng-container *ngIf=\"addNewAddress\">\r\n <!-- <p (click)=\"getCurrentLocation()\" class=\"d-flex align-items-center\" style=\"cursor: pointer;\">\r\n <mat-icon>my_location</mat-icon>\r\n <span>Take my current location</span>\r\n </p> -->\r\n <div class=\"forms d-flex flex-wrap\">\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Name</div>\r\n <input type=\"text\" placeholder=\"Enter name\" [(ngModel)]=\"address.receiverName\" (keydown)=\"validateName($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Mobile</div>\r\n <input type=\"text\" placeholder=\"Enter mobile\" [(ngModel)]=\"address.receiverPhone\" (keydown)=\"validateMobile($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Email</div>\r\n <input type=\"text\" placeholder=\"Enter email\" [(ngModel)]=\"address.receiverEmail\">\r\n </div>\r\n <div class=\"form-control-full-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address</div>\r\n <input type=\"text\" placeholder=\"Enter address\" matGoogleMapsAutocomplete\r\n (onAutocompleteSelected)=\"onAutocompleteSelected($event)\"\r\n (onLocationSelected)=\"onLocationSelected($event)\" [(ngModel)]=\"address.addressLine1\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Locality</div>\r\n <input type=\"text\" placeholder=\"Enter locality\" [(ngModel)]=\"address.localityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label\" [style.color]=\"data?.styles?.background?.accentColor\">Landmark</div>\r\n <input type=\"text\" placeholder=\"Enter landmark\" [(ngModel)]=\"address.landmark\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Pincode</div>\r\n <input type=\"text\" placeholder=\"Enter pincode\" [(ngModel)]=\"address.zipCode\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">City</div>\r\n <input type=\"text\" placeholder=\"Enter city\" [(ngModel)]=\"address.cityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">State</div>\r\n <input type=\"text\" placeholder=\"Enter state\" [(ngModel)]=\"address.stateName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address Type</div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let address of addessType\">\r\n <span class=\"address-type\" (click)=\"checkAddressType(address)\" [style.backgroundColor]=\"address.status ? data?.styles?.background?.accentColor : 'rgba(211, 211, 211, 0.362)'\" [ngClass]=\"{'active-address': address.status}\">{{address.key}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"address-list\" *ngIf=\"!addNewAddress\">\r\n <ng-container *ngFor=\"let address of addressList; let idx = index\">\r\n <div class=\"address\" (click)=\"addressSelected(idx)\" [style.borderColor]=\"selectedAddressIdx == idx ? data?.styles?.background?.accentColor : ''\">\r\n <div class=\"address-left\">\r\n <div class=\"top\">\r\n <span class=\"fw-bold mr-2\">{{address?.receiverName}}</span>\r\n <span class=\"address-type\">{{address?.addressType}}</span>\r\n </div>\r\n <div class=\"address-det\">{{address.addressLine1}}</div>\r\n <div class=\"phone\">\r\n <span>Phone:</span>\r\n <span class=\"address-phone\">{{address.receiverPhone}}</span>\r\n </div>\r\n </div>\r\n <div class=\"address-right\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"action-btn\" *ngIf=\"addNewAddress\">\r\n <div class=\"error-message\">\r\n <span *ngIf=\"address.receiverPhone?.length != 10 && address.receiverPhone?.length\">*Mobile number is invalid</span>\r\n <span *ngIf=\"!isEmailValid\">*Email is invalid</span>\r\n </div>\r\n <button [style.backgroundColor]=\"data?.styles?.background?.accentColor\" [disabled]=\"\r\n !address.receiverName || \r\n !address.receiverPhone ||\r\n address.receiverPhone?.length != 10 ||\r\n !isEmailValid || \r\n !address.addressLine1 || \r\n !address.localityName || \r\n !address.zipCode || \r\n !address.cityName ||\r\n !address.stateName || \r\n !address.addressType || isLoading\r\n \" (click)=\"updateAddress()\">{{isLoading ? 'Loading' : 'Update'}}</button>\r\n </div>\r\n</section>\r\n\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: [".address-sec{padding:20px;position:relative}.address-sec .header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:20px}.new-address-header{display:flex;align-items:center}.mat-icon{cursor:pointer;margin-right:5px}.action-btn{margin-left:auto;bottom:-20px;position:relative;right:0;display:flex;flex-direction:column;align-items:flex-end}.action-btn button{color:#fff;padding:10px;width:200px!important;border:none;border-radius:5px}.label:after{content:\"*\"}.active-address{color:#fff!important}.forms{gap:10px;justify-content:space-between}.form-control-group,.form-control-full-group{width:48%}:is(.form-control-group,.form-control-full-group) input{width:100%;padding:10px;border-radius:3px;border:1.5px solid lightgray}.form-control-full-group{width:100%!important}.address-type{width:150px;padding:10px;color:#000;text-align:center;border-radius:5px;margin:0 5px;cursor:pointer}.address{display:flex;padding:15px;border-radius:5px;box-shadow:0 1px 1px #0000,0 1px 1px #00000030;border:2px solid transparent}.address-list{display:flex;flex-direction:column;gap:10px;height:500px;overflow-y:auto}.address-list .address-left{width:80%}.address-list .address-right{width:20%}.address-list .address-phone{margin-left:10px}.address-list .address-type{background-color:#d3d3d34a;padding:5px 10px;text-align:center;border-radius:5px;margin-left:15px}.address-list .address-det{margin:10px 0}.add-address{cursor:pointer;font-weight:600}.address-active{color:#fff}.error-message{color:tomato;display:flex;flex-direction:column;width:100%}@media only screen and (max-width: 475px){.address-list{height:fit-content;max-height:230px}.forms{flex-direction:column}.form-control-group{width:100%}.label{padding-bottom:10px}.address-type-options{position:relative;right:4px}.action-btn{position:relative;bottom:0;top:19px;right:0}.action-btn button{width:100%!important}.address-type{padding:10px 27px}.address-sec{padding:20px 4px}}button:disabled{background-color:#d3d3d3!important}\n"] }]
|
273
|
+
], providers: [], template: "<section class=\"address-sec\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div class=\"header\">\r\n <div class=\"new-address-header\">\r\n <mat-icon (click)=\"goToProfile()\" *ngIf=\"!isCart\">keyboard_arrow_left</mat-icon>\r\n <h3>{{isCart ? 'Shipping To' : 'New Address'}}</h3>\r\n </div>\r\n <span class=\"add-address\" [style.color]=\"styles?.background?.accentColor\" *ngIf=\"!addNewAddress\" (click)=\"addNewAddress = true\">+ add address</span>\r\n </div>\r\n <ng-container *ngIf=\"addNewAddress\">\r\n <!-- <p (click)=\"getCurrentLocation()\" class=\"d-flex align-items-center\" style=\"cursor: pointer;\">\r\n <mat-icon>my_location</mat-icon>\r\n <span>Take my current location</span>\r\n </p> -->\r\n <div class=\"forms d-flex flex-wrap\">\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Name</div>\r\n <input type=\"text\" placeholder=\"Enter name\" [(ngModel)]=\"address.receiverName\" (keydown)=\"validateName($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Mobile</div>\r\n <input type=\"text\" placeholder=\"Enter mobile\" [(ngModel)]=\"address.receiverPhone\" (keydown)=\"validateMobile($event)\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Email</div>\r\n <input type=\"text\" placeholder=\"Enter email\" [(ngModel)]=\"address.receiverEmail\">\r\n </div>\r\n <div class=\"form-control-full-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address</div>\r\n <input type=\"text\" placeholder=\"Enter address\" matGoogleMapsAutocomplete\r\n (onAutocompleteSelected)=\"onAutocompleteSelected($event)\"\r\n (onLocationSelected)=\"onLocationSelected($event)\" [(ngModel)]=\"address.addressLine1\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Locality</div>\r\n <input type=\"text\" placeholder=\"Enter locality\" [(ngModel)]=\"address.localityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label\" [style.color]=\"data?.styles?.background?.accentColor\">Landmark</div>\r\n <input type=\"text\" placeholder=\"Enter landmark\" [(ngModel)]=\"address.landmark\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Pincode</div>\r\n <input type=\"text\" placeholder=\"Enter pincode\" [(ngModel)]=\"address.zipCode\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">City</div>\r\n <input type=\"text\" placeholder=\"Enter city\" [(ngModel)]=\"address.cityName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">State</div>\r\n <input type=\"text\" placeholder=\"Enter state\" [(ngModel)]=\"address.stateName\">\r\n </div>\r\n <div class=\"form-control-group\">\r\n <div class=\"label required\" [style.color]=\"data?.styles?.background?.accentColor\">Address Type</div>\r\n <div class=\"d-flex\">\r\n <ng-container *ngFor=\"let address of addessType\">\r\n <span class=\"address-type\" (click)=\"checkAddressType(address)\" [style.backgroundColor]=\"address.status ? data?.styles?.background?.accentColor : 'rgba(211, 211, 211, 0.362)'\" [ngClass]=\"{'active-address': address.status}\">{{address.key}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"address-list\" *ngIf=\"!addNewAddress\">\r\n <ng-container *ngFor=\"let address of addressList; let idx = index\">\r\n <div class=\"address\" (click)=\"addressSelected(idx)\" [style.borderColor]=\"selectedAddressIdx == idx ? data?.styles?.background?.accentColor : ''\">\r\n <div class=\"address-left\">\r\n <div class=\"top\">\r\n <span class=\"fw-bold mr-2\">{{address?.receiverName}}</span>\r\n <span class=\"address-type\">{{address?.addressType}}</span>\r\n </div>\r\n <div class=\"address-det\">{{address.addressLine1}}</div>\r\n <div class=\"phone\">\r\n <span>Phone:</span>\r\n <span class=\"address-phone\">{{address.receiverPhone}}</span>\r\n </div>\r\n </div>\r\n <div class=\"address-right\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"action-btn\" *ngIf=\"addNewAddress\">\r\n <div class=\"error-message\">\r\n <span *ngIf=\"address.receiverPhone?.length != 10 && address.receiverPhone?.length\">*Mobile number is invalid</span>\r\n <span *ngIf=\"!isEmailValid\">*Email is invalid</span>\r\n </div>\r\n <button [style.backgroundColor]=\"data?.styles?.background?.accentColor\" [disabled]=\"\r\n !address.receiverName || \r\n !address.receiverPhone ||\r\n address.receiverPhone?.length != 10 ||\r\n !isEmailValid || \r\n !address.addressLine1 || \r\n !address.localityName || \r\n !address.zipCode || \r\n !address.cityName ||\r\n !address.stateName || \r\n !address.addressType || isLoading\r\n \" (click)=\"updateAddress()\">{{isLoading ? 'Loading' : 'Update'}}</button>\r\n </div>\r\n</section>\r\n\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: [".address-sec{padding:20px;position:relative}.address-sec .header{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:20px}.new-address-header{display:flex;align-items:center}.mat-icon{cursor:pointer;margin-right:5px}.action-btn{margin-left:auto;bottom:-20px;position:relative;right:0;display:flex;flex-direction:column;align-items:flex-end}.action-btn button{color:#fff;padding:10px;width:200px!important;border:none;border-radius:5px}.label:after{content:\"*\"}.active-address{color:#fff!important}.forms{gap:10px;justify-content:space-between}.form-control-group,.form-control-full-group{width:48%}:is(.form-control-group,.form-control-full-group) input{width:100%;padding:10px;border-radius:3px;border:1.5px solid lightgray}.form-control-full-group{width:100%!important}.address-type{width:150px;padding:10px;color:#000;text-align:center;border-radius:5px;margin:0 5px;cursor:pointer}.address{display:flex;padding:15px;border-radius:5px;box-shadow:0 1px 1px #0000,0 1px 1px #00000030;border:2px solid transparent}.address-list{display:flex;flex-direction:column;gap:10px;height:500px;overflow-y:auto}.address-list .address-left{width:80%}.address-list .address-right{width:20%}.address-list .address-phone{margin-left:10px}.address-list .address-type{background-color:#d3d3d34a;padding:5px 10px;text-align:center;border-radius:5px;margin-left:15px}.address-list .address-det{margin:10px 0}.add-address{cursor:pointer;font-weight:600}.address-active{color:#fff}.error-message{color:tomato;display:flex;flex-direction:column;width:100%}@media only screen and (max-width: 475px){.address-list{height:fit-content;max-height:230px}.forms{flex-direction:column}.form-control-group{width:100%}.label{padding-bottom:10px}.address-type-options{position:relative;right:4px}.action-btn{position:relative;bottom:0;top:19px;right:0}.action-btn button{width:100%!important}.address-type{padding:10px 27px}.address-sec{padding:20px 4px}}button:disabled{background-color:#d3d3d3!important}\n"] }]
|
274
274
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.RestService }, { type: i2.MatDialog }, { type: i3.MatBottomSheet }, { type: i4.Router }, { type: i5.StorageServiceService }, { type: i6.EventsService }, { type: undefined, decorators: [{
|
275
275
|
type: Optional
|
276
276
|
}, {
|
@@ -284,6 +284,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
284
284
|
type: Input
|
285
285
|
}], index: [{
|
286
286
|
type: Input
|
287
|
+
}], customClass: [{
|
288
|
+
type: Input
|
287
289
|
}], edit: [{
|
288
290
|
type: Input
|
289
291
|
}], delete: [{
|
@@ -293,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
293
295
|
}], isCart: [{
|
294
296
|
type: Input
|
295
297
|
}] } });
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLEtBQUssRUFBNEIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBS3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFckcsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBdUJ0RixNQUFNLE9BQU8sZ0JBQWlCLFNB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QkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUksZUFBZTtzQkFBeEIsTUFBTTtnQkFtQ0UsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE5nWm9uZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3B0aW9uYWwsIEluamVjdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQUREUkVTU19UWVBFLCBBZGRyZXNzRGV0YWlscywgVXNlciB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS0VZQk9BUkRfS0VZUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1leHRlbnNpb25zL2dvb2dsZS1tYXBzLWF1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaG92ZXItZWxlbWVudHMvaG92ZXItZWxlbWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4uL2NhcnQvY2FydC5tb2RhbCc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0LCBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcblxyXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYWRkcmVzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRJY29uLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxyXG4gICAgRGVsZXRlSG92ZXJFbGVtZW50Q29tcG9uZW50LFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcblxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hZGRyZXNzLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTsgXHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuICBwdWJsaWMgYWRkcmVzc0xpc3Q6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQWRkcmVzc0lkeDogbnVtYmVyID0gMDtcclxuICBzdHlsZXM6IGFueTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRBZGRyZXNzOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdEJvdHRvbXNoZWV0OiBNYXRCb3R0b21TaGVldCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIG1hdERhdGE6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBtYXREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBZGRyZXNzQ29tcG9uZW50PlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRyZXNzOiBBZGRyZXNzRGV0YWlscyA9IHtcclxuICAgIFwicmVjZWl2ZXJOYW1lXCI6IFwiXCIsXHJcbiAgICBcInJlY2VpdmVyUGhvbmVcIjogXCJcIixcclxuICAgIFwicmVjZWl2ZXJFbWFpbFwiOiBcIlwiLFxyXG4gICAgXCJjb3VudHJ5TmFtZVwiOiBcIlwiLFxyXG4gICAgXCJzdGF0ZU5hbWVcIjogXCJcIixcclxuICAgIFwiY2l0eU5hbWVcIjogXCJcIixcclxuICAgIFwibG9jYWxpdHlOYW1lXCI6IFwiXCIsXHJcbiAgICBcImFkZHJlc3NMaW5lMVwiOiBcIlwiLFxyXG4gICAgXCJsYW5kbWFya1wiOiBcIlwiLFxyXG4gICAgXCJ6aXBDb2RlXCI6IFwiXCIsXHJcbiAgICBcInN0YXRlQ29kZVwiOiBcIlwiLFxyXG4gICAgXCJhZGRyZXNzVHlwZVwiOiBudWxsLFxyXG4gICAgXCJnZW9sb2NhdGlvblwiOiB7XHJcbiAgICAgIFwibGF0aXR1ZGVcIjogMCxcclxuICAgICAgXCJsb25naXR1ZGVcIjogMFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgaXNDYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgZWRpdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICBwcml2YXRlIGxhdGl0dXRlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGxvbmdpdHV0ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGFkZE5ld0FkZHJlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG1hcENlbnRlcjogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbCA9IHtcclxuICAgIGxhdDogMCxcclxuICAgIGxuZzogMFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBtYXJrZXJQb3NpdGlvbjogZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbCA9IHtcclxuICAgIGxhdDogMCxcclxuICAgIGxuZzogMFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBtYXJrZXJPcHRpb25zOiBnb29nbGUubWFwcy5NYXJrZXJPcHRpb25zID0geyBkcmFnZ2FibGU6IHRydWUgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZW9jb2RlciA9IG5ldyBnb29nbGUubWFwcy5HZW9jb2RlcigpO1xyXG5cclxuICBwdWJsaWMgYWRkZXNzVHlwZTogeyBrZXk6IHN0cmluZywgc3RhdHVzOiBib29sZWFuIH1bXSA9IFtcclxuICAgIHsga2V5OiBcIkhPTUVcIiwgc3RhdHVzOiBmYWxzZSB9LFxyXG4gICAgeyBrZXk6IFwiV09SS1wiLCBzdGF0dXM6IGZhbHNlIH0sXHJcbiAgICB7IGtleTogXCJPVEhFUlwiLCBzdGF0dXM6IGZhbHNlIH1cclxuICBdO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKCk7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hZGROZXdBZGRyZXNzID0gdGhpcy5yZXNwb25zZURhdGE/Lmxlbmd0aCA9PSAwO1xyXG4gICAgaWYgKHRoaXMubWF0RGF0YSkge1xyXG4gICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMubWF0RGF0YS5hZGRyZXNzTGlzdDtcclxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5tYXREYXRhPy5kYXRhO1xyXG4gICAgICBpZiAodGhpcy5tYXREYXRhPy5hZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzID0gey4uLnRoaXMubWF0RGF0YS5hZGRyZXNzfTtcclxuICAgICAgICB0aGlzLmVkaXRJbmRleCA9IHRoaXMubWF0RGF0YT8uZWRpdEluZGV4ID8/IC0xO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWRkTmV3QWRkcmVzcyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFkZHJlc3NMaXN0ID0gdGhpcy5yZXNwb25zZURhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGROZXdBZGRyZXNzICYmICF0aGlzLm1hdERhdGE/LmFkZHJlc3M/LnJlY2VpdmVyTmFtZSkge1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpO1xyXG4gICAgICB0aGlzLmFkZHJlc3MgPSB7IFxyXG4gICAgICAgIC4uLnRoaXMuYWRkcmVzcyxcclxuICAgICAgICByZWNlaXZlck5hbWU6IHVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUgPz8gXCJcIixcclxuICAgICAgICByZWNlaXZlckVtYWlsOiB1c2VyRGV0YWlscz8uY29udGFjdC5lbWFpbCA/PyBcIlwiLFxyXG4gICAgICAgIHJlY2VpdmVyUGhvbmU6IHVzZXJEZXRhaWxzPy5jb250YWN0Lm1vYmlsZSA/PyBcIlwiXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5hZGRyZXNzTGlzdCA9IHRoaXMucmVzcG9uc2VEYXRhO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tBZGRyZXNzVHlwZShhZGRyZXNzOiB7IGtleTogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4gfSkge1xyXG4gICAgdGhpcy5hZGRlc3NUeXBlLmZvckVhY2goKGFkZCk9PiBhZGQuc3RhdHVzID0gKGFkZC5rZXkgPT0gYWRkcmVzcy5rZXkpKTtcclxuICAgIHRoaXMuYWRkcmVzcy5hZGRyZXNzVHlwZSA9IGFkZHJlc3Mua2V5IGFzIEFERFJFU1NfVFlQRTtcclxuICB9XHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm1hdERpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBnZXRDdXJyZW50TG9jYXRpb24oKSB7XHJcbiAgICBcclxuICAgIGlmIChuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHtcclxuICAgICAgXHJcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oKHZhbHVlcykgPT4ge1xyXG4gICAgICAgIHRoaXMubGF0aXR1dGUgPSB2YWx1ZXMuY29vcmRzLmxhdGl0dWRlO1xyXG4gICAgICAgIHRoaXMubG9uZ2l0dXRlID0gdmFsdWVzLmNvb3Jkcy5sb25naXR1ZGU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRBZGRyZXNzKCkge1xyXG4gICAgdGhpcy5nZW9jb2Rlci5nZW9jb2RlKHsgbG9jYXRpb246IHRoaXMubWFya2VyUG9zaXRpb24gfSwgKHJlc3VsdHM6IGFueSwgc3RhdHVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzWzBdKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMuYWRkcmVzcyA9IHJlc3VsdHNbMF0uZm9ybWF0dGVkX2FkZHJlc3M7XHJcbiAgICAgICAgICByZXN1bHRzWzBdLmFkZHJlc3NfY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IGNvbXBvbmVudC50eXBlcztcclxuICAgICAgICAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLmNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlcy5pbmNsdWRlcyhcImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuc3RhdGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwicG9zdGFsX2NvZGVcIikpIHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnppcCA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25Mb2NhdGlvblNlbGVjdGVkKGxvY2F0aW9uOiBhbnkpIHtcclxuICAgIFxyXG4gICAgdGhpcy5sYXRpdHV0ZSA9IGxvY2F0aW9uLmxhdGl0dWRlO1xyXG4gICAgdGhpcy5sb25naXR1dGUgPSBsb2NhdGlvbi5sb25naXR1ZGU7XHJcbiAgICAgIC8vIHRoaXMuc2V0UG9zaXRpb24oKTsgIC8vIFVwZGF0ZSBtYXAgcG9zaXRpb25cclxuICAgIC8vIHRoaXMudXBkYXRlQWRkcmVzc0ZpZWxkcygpO1xyXG4gIH1cclxuICBvbkF1dG9jb21wbGV0ZVNlbGVjdGVkKHJlc3VsdDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgLy8gdGhpcy5zZWxlY3RlZENvdW50cnkgPSBudWxsO1xyXG4gICAgLy8gdGhpcy56aXAgPSBcIlwiO1xyXG4gICAgLy8gdGhpcy5zdGF0ZSA9IFwiXCI7XHJcbiAgICAvLyB0aGlzLmNpdHkgPSBcIlwiO1xyXG4gICAgLy8gdGhpcy5hZGRyZXNzID0gcmVzdWx0Py5mb3JtYXR0ZWRfYWRkcmVzcztcclxuICAgIHJlc3VsdD8uYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YT8udHlwZXMuaW5jbHVkZXMoXCJjb3VudHJ5XCIpKXt9XHJcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZENvdW50cnkgPSBkYXRhLmxvbmdfbmFtZTtcclxuICAgICAgZWxzZSBpZiAoZGF0YT8udHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSl7fVxyXG4gICAgICAgIC8vIHRoaXMuemlwID0gZGF0YS5sb25nX25hbWU7XHJcbiAgICAgIGVsc2UgaWYgKGRhdGE/LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKXt9XHJcbiAgICAgICAgLy8gdGhpcy5zdGF0ZSA9IGRhdGEubG9uZ19uYW1lO1xyXG4gICAgICBlbHNlIGlmIChkYXRhPy50eXBlcy5pbmNsdWRlcyhcImxvY2FsaXR5XCIpKXt9XHJcbiAgICAgICAgLy8gdGhpcy5jaXR5ID0gZGF0YS5sb25nX25hbWU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgYWRkcmVzc1NlbGVjdGVkKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBZGRyZXNzSWR4ID0gaW5kZXg7XHJcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcy5lbWl0KGluZGV4KTtcclxuICB9XHJcbiAgZ29Ub1Byb2ZpbGUoKSB7XHJcbiAgICBpZiAodGhpcy5tYXREYXRhKSB7XHJcbiAgICAgIHRoaXMubWF0RGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcclxuICAgIH1cclxuICB9XHJcbiAgdXBkYXRlQWRkcmVzcygpIHtcclxuICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXIpO1xyXG4gICAgaWYgKHVzZXJEZXRhaWxzKSB7XHJcblxyXG4gICAgICBjb25zdCBhZGRyZXNzTGlzdCA9IHVzZXJEZXRhaWxzPy5hZGRyZXNzRGV0YWlsc0xpc3Q7XHJcbiAgICAgIGlmICh0aGlzLm1hdERhdGE/LmVkaXRJbmRleCkge1xyXG4gICAgICAgIHRoaXMuYWRkcmVzc0xpc3QuZm9yRWFjaCgoYWRkcmVzczogYW55LCBpZHg6IG51bWJlcik9PiB7XHJcbiAgICAgICAgICBpZiAoaWR4ID09IHRoaXMubWF0RGF0YS5lZGl0SW5keCkge1xyXG4gICAgICAgICAgICBhZGRyZXNzID0gdGhpcy5hZGRyZXNzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRkcmVzc0xpc3QucHVzaCh0aGlzLmFkZHJlc3MpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIFwidXNlcklkXCI6IHVzZXJEZXRhaWxzLnVzZXJJZCxcclxuICAgICAgICBcImJ1c2luZXNzSWRcIjogdXNlckRldGFpbHMuYnVzaW5lc3NJZCxcclxuICAgICAgICBcImFkZHJlc3NEZXRhaWxzTGlzdFwiOiBhZGRyZXNzTGlzdCxcclxuICAgICAgICBcImNvbnRhY3RcIjogdXNlckRldGFpbHM/LmNvbnRhY3QgPz8ge30sXHJcbiAgICAgICAgXCJnZW5kZXJcIjogdXNlckRldGFpbHM/LmdlbmRlcj8ubGVuZ3RoID4gMCA/IHVzZXJEZXRhaWxzPy5nZW5kZXIgIDogIFwiTk9UX1BST1ZJREVEXCJcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVzdFNlcnZpY2UuYWRkVXNlckFkZHJlc3MocGF5bG9hZCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgICBcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFkZE5ld0FkZHJlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tYXREaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCEhdXNlckRldGFpbHMpIHtcclxuICAgICAgICAgICAgdXNlckRldGFpbHMuYWRkcmVzc0RldGFpbHNMaXN0ID0gYWRkcmVzc0xpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkcmVzc0xpc3QgPSB1c2VyRGV0YWlscy5hZGRyZXNzRGV0YWlsc0xpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcih1c2VyRGV0YWlscyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH0sIChlcnJvcik9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpIHtcclxuICAgICAgICB0aGlzLm1hdEJvdHRvbXNoZWV0Lm9wZW4oQXV0aGVudGljYXRlVXNlckNvbXBvbmVudCwge2RhdGE6IHRoaXMuZGF0YX0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQXV0aGVudGljYXRlVXNlckNvbXBvbmVudCwge1xyXG4gICAgICAgICAgaGVpZ2h0OiAnNTB2aCcsXHJcbiAgICAgICAgICB3aWR0aDogJzM1dncnLFxyXG4gICAgICAgICAgZGF0YTogdGhpcy5kYXRhXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdmFsaWRhdGVNb2JpbGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICgoIWlzTmFOKE51bWJlcihldmVudC5rZXkpKSB8fCBldmVudC5rZXlDb2RlID09IEtFWUJPQVJEX0tFWVMuQkFDS1NQQUNFIHx8IGV2ZW50LmtleUNvZGUgPT0gS0VZQk9BUkRfS0VZUy5UQUIpICYmIGV2ZW50LmtleUNvZGUgIT0gS0VZQk9BUkRfS0VZUy5TUEFDRSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICB2YWxpZGF0ZU5hbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICgoZXZlbnQua2V5Q29kZSA+PSBLRVlCT0FSRF9LRVlTLkNIQVJBQ1RFUl9BICYmIGV2ZW50LmtleUNvZGUgPD0gS0VZQk9BUkRfS0VZUy5DSEFSQUNURVJfWikgfHwgZXZlbnQua2V5Q29kZSA9PSAxNiB8fCBldmVudC5rZXlDb2RlID09IDggfHwgZXZlbnQua2V5Q29kZSA9PSAzMiB8fCBldmVudC5rZXlDb2RlID09IDQ2IHx8IGV2ZW50LmtleUNvZGUgPT0gOSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpe1xyXG4gICAgXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG4gIGdldCBpc0VtYWlsVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzPy5yZWNlaXZlckVtYWlsPy5pbmNsdWRlcyhcIkBcIikgJiYgdGhpcy5hZGRyZXNzPy5yZWNlaXZlckVtYWlsLmluY2x1ZGVzKFwiLmNvbVwiKSB8fCAodGhpcy5hZGRyZXNzPy5yZWNlaXZlckVtYWlsPy5sZW5ndGggPT0gMCk7XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cImFkZHJlc3Mtc2VjXCIgKGNsaWNrKT1cImVkaXRTZWN0aW9uKClcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiID5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LWFkZHJlc3MtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiZ29Ub1Byb2ZpbGUoKVwiICpuZ0lmPVwiIWlzQ2FydFwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8aDM+e3tpc0NhcnQgPyAnU2hpcHBpbmcgVG8nIDogJ05ldyBBZGRyZXNzJ319PC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZC1hZGRyZXNzXCIgW3N0eWxlLmNvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cIiFhZGROZXdBZGRyZXNzXCIgKGNsaWNrKT1cImFkZE5ld0FkZHJlc3MgPSB0cnVlXCI+KyBhZGQgYWRkcmVzczwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZE5ld0FkZHJlc3NcIj5cclxuICAgICAgICA8IS0tIDxwIChjbGljayk9XCJnZXRDdXJyZW50TG9jYXRpb24oKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+bXlfbG9jYXRpb248L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj5UYWtlIG15IGN1cnJlbnQgbG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgPC9wPiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybXMgZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPk5hbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIFsobmdNb2RlbCldPVwiYWRkcmVzcy5yZWNlaXZlck5hbWVcIiAoa2V5ZG93bik9XCJ2YWxpZGF0ZU5hbWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Nb2JpbGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbW9iaWxlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnJlY2VpdmVyUGhvbmVcIiAoa2V5ZG93bik9XCJ2YWxpZGF0ZU1vYmlsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGVtYWlsXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnJlY2VpdmVyRW1haWxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZnVsbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5BZGRyZXNzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGFkZHJlc3NcIiBtYXRHb29nbGVNYXBzQXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQXV0b2NvbXBsZXRlU2VsZWN0ZWQpPVwib25BdXRvY29tcGxldGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25Mb2NhdGlvblNlbGVjdGVkKT1cIm9uTG9jYXRpb25TZWxlY3RlZCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmFkZHJlc3NMaW5lMVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Mb2NhbGl0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBsb2NhbGl0eVwiIFsobmdNb2RlbCldPVwiYWRkcmVzcy5sb2NhbGl0eU5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+TGFuZG1hcms8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbGFuZG1hcmtcIiBbKG5nTW9kZWwpXT1cImFkZHJlc3MubGFuZG1hcmtcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCByZXF1aXJlZFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+UGluY29kZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBwaW5jb2RlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnppcENvZGVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCByZXF1aXJlZFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Q2l0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBjaXR5XCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmNpdHlOYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlN0YXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHN0YXRlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnN0YXRlTmFtZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5BZGRyZXNzIFR5cGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIGFkZGVzc1R5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRyZXNzLXR5cGVcIiAoY2xpY2spPVwiY2hlY2tBZGRyZXNzVHlwZShhZGRyZXNzKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWRkcmVzcy5zdGF0dXMgPyBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJ3JnYmEoMjExLCAyMTEsIDIxMSwgMC4zNjIpJ1wiIFtuZ0NsYXNzXT1cInsnYWN0aXZlLWFkZHJlc3MnOiBhZGRyZXNzLnN0YXR1c31cIj57e2FkZHJlc3Mua2V5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWxpc3RcIiAqbmdJZj1cIiFhZGROZXdBZGRyZXNzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBhZGRyZXNzTGlzdDsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzXCIgKGNsaWNrKT1cImFkZHJlc3NTZWxlY3RlZChpZHgpXCIgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJzZWxlY3RlZEFkZHJlc3NJZHggPT0gaWR4ID8gZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkcmVzcy1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgbXItMlwiPnt7YWRkcmVzcz8ucmVjZWl2ZXJOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkcmVzcy10eXBlXCI+e3thZGRyZXNzPy5hZGRyZXNzVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWRldFwiPnt7YWRkcmVzcy5hZGRyZXNzTGluZTF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5QaG9uZTo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkcmVzcy1waG9uZVwiPnt7YWRkcmVzcy5yZWNlaXZlclBob25lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0blwiICpuZ0lmPVwiYWRkTmV3QWRkcmVzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWRkcmVzcy5yZWNlaXZlclBob25lPy5sZW5ndGggIT0gMTAgJiYgYWRkcmVzcy5yZWNlaXZlclBob25lPy5sZW5ndGhcIj4qTW9iaWxlIG51bWJlciBpcyBpbnZhbGlkPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc0VtYWlsVmFsaWRcIj4qRW1haWwgaXMgaW52YWxpZDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtkaXNhYmxlZF09XCJcclxuICAgICAgICAgICAgIWFkZHJlc3MucmVjZWl2ZXJOYW1lIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5yZWNlaXZlclBob25lIHx8XHJcbiAgICAgICAgICAgIGFkZHJlc3MucmVjZWl2ZXJQaG9uZT8ubGVuZ3RoICE9IDEwIHx8XHJcbiAgICAgICAgICAgICFpc0VtYWlsVmFsaWQgfHwgXHJcbiAgICAgICAgICAgICFhZGRyZXNzLmFkZHJlc3NMaW5lMSB8fCBcclxuICAgICAgICAgICAgIWFkZHJlc3MubG9jYWxpdHlOYW1lIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy56aXBDb2RlIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5jaXR5TmFtZSB8fFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5zdGF0ZU5hbWUgfHwgXHJcbiAgICAgICAgICAgICFhZGRyZXNzLmFkZHJlc3NUeXBlIHx8IGlzTG9hZGluZ1xyXG4gICAgICAgICAgICBcIiAoY2xpY2spPVwidXBkYXRlQWRkcmVzcygpXCI+e3tpc0xvYWRpbmcgPyAnTG9hZGluZycgOiAnVXBkYXRlJ319PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG5cclxuXHJcbjxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuPC9kaXY+Il19
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLEtBQUssRUFBNEIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQWEsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBS3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFckcsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBdUJ0RixNQUFNLE9BQU8sZ0JBQWlCLFNB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Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFJSSxlQUFlO3NCQUF4QixNQUFNO2dCQW1DRSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgTmdab25lLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPcHRpb25hbCwgSW5qZWN0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgfSBmcm9tICcuLi9hdXRoZW50aWNhdGUtdXNlci9hdXRoZW50aWNhdGUtdXNlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBRERSRVNTX1RZUEUsIEFkZHJlc3NEZXRhaWxzLCBVc2VyIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLRVlCT0FSRF9LRVlTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWV4dGVuc2lvbnMvZ29vZ2xlLW1hcHMtYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgRGVsZXRlSG92ZXJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kZWxldGUtaG92ZXItZWxlbWVudC9kZWxldGUtaG92ZXItZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vY2FydC9jYXJ0Lm1vZGFsJztcclxuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQsIE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuXHJcbmRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1hZGRyZXNzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb24sXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXHJcbiAgICBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgZGF0YTogYW55OyBcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIHB1YmxpYyBhZGRyZXNzTGlzdDogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRBZGRyZXNzSWR4OiBudW1iZXIgPSAwO1xyXG4gIHN0eWxlczogYW55O1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEFkZHJlc3M6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Qm90dG9tc2hlZXQ6IE1hdEJvdHRvbVNoZWV0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgbWF0RGF0YTogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIG1hdERpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFkZHJlc3NDb21wb25lbnQ+XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZHJlc3M6IEFkZHJlc3NEZXRhaWxzID0ge1xyXG4gICAgXCJyZWNlaXZlck5hbWVcIjogXCJcIixcclxuICAgIFwicmVjZWl2ZXJQaG9uZVwiOiBcIlwiLFxyXG4gICAgXCJyZWNlaXZlckVtYWlsXCI6IFwiXCIsXHJcbiAgICBcImNvdW50cnlOYW1lXCI6IFwiXCIsXHJcbiAgICBcInN0YXRlTmFtZVwiOiBcIlwiLFxyXG4gICAgXCJjaXR5TmFtZVwiOiBcIlwiLFxyXG4gICAgXCJsb2NhbGl0eU5hbWVcIjogXCJcIixcclxuICAgIFwiYWRkcmVzc0xpbmUxXCI6IFwiXCIsXHJcbiAgICBcImxhbmRtYXJrXCI6IFwiXCIsXHJcbiAgICBcInppcENvZGVcIjogXCJcIixcclxuICAgIFwic3RhdGVDb2RlXCI6IFwiXCIsXHJcbiAgICBcImFkZHJlc3NUeXBlXCI6IG51bGwsXHJcbiAgICBcImdlb2xvY2F0aW9uXCI6IHtcclxuICAgICAgXCJsYXRpdHVkZVwiOiAwLFxyXG4gICAgICBcImxvbmdpdHVkZVwiOiAwXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpc0NhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBlZGl0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgbGF0aXR1dGU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgbG9uZ2l0dXRlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgYWRkTmV3QWRkcmVzczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbWFwQ2VudGVyOiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsID0ge1xyXG4gICAgbGF0OiAwLFxyXG4gICAgbG5nOiAwXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIG1hcmtlclBvc2l0aW9uOiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsID0ge1xyXG4gICAgbGF0OiAwLFxyXG4gICAgbG5nOiAwXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIG1hcmtlck9wdGlvbnM6IGdvb2dsZS5tYXBzLk1hcmtlck9wdGlvbnMgPSB7IGRyYWdnYWJsZTogdHJ1ZSB9O1xyXG5cclxuICBwcml2YXRlIGdlb2NvZGVyID0gbmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyKCk7XHJcblxyXG4gIHB1YmxpYyBhZGRlc3NUeXBlOiB7IGtleTogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4gfVtdID0gW1xyXG4gICAgeyBrZXk6IFwiSE9NRVwiLCBzdGF0dXM6IGZhbHNlIH0sXHJcbiAgICB7IGtleTogXCJXT1JLXCIsIHN0YXR1czogZmFsc2UgfSxcclxuICAgIHsga2V5OiBcIk9USEVSXCIsIHN0YXR1czogZmFsc2UgfVxyXG4gIF07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oKTtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmFkZE5ld0FkZHJlc3MgPSB0aGlzLnJlc3BvbnNlRGF0YT8ubGVuZ3RoID09IDA7XHJcbiAgICBpZiAodGhpcy5tYXREYXRhKSB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy5tYXREYXRhLmFkZHJlc3NMaXN0O1xyXG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLm1hdERhdGE/LmRhdGE7XHJcbiAgICAgIGlmICh0aGlzLm1hdERhdGE/LmFkZHJlc3MpIHtcclxuICAgICAgICB0aGlzLmFkZHJlc3MgPSB7Li4udGhpcy5tYXREYXRhLmFkZHJlc3N9O1xyXG4gICAgICAgIHRoaXMuZWRpdEluZGV4ID0gdGhpcy5tYXREYXRhPy5lZGl0SW5kZXggPz8gLTE7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGROZXdBZGRyZXNzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0xpc3QgPSB0aGlzLnJlc3BvbnNlRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFkZE5ld0FkZHJlc3MgJiYgIXRoaXMubWF0RGF0YT8uYWRkcmVzcz8ucmVjZWl2ZXJOYW1lKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcyA9IHsgXHJcbiAgICAgICAgLi4udGhpcy5hZGRyZXNzLFxyXG4gICAgICAgIHJlY2VpdmVyTmFtZTogdXNlckRldGFpbHM/LmNvbnRhY3QubmFtZSA/PyBcIlwiLFxyXG4gICAgICAgIHJlY2VpdmVyRW1haWw6IHVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsID8/IFwiXCIsXHJcbiAgICAgICAgcmVjZWl2ZXJQaG9uZTogdXNlckRldGFpbHM/LmNvbnRhY3QubW9iaWxlID8/IFwiXCJcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLmFkZHJlc3NMaXN0ID0gdGhpcy5yZXNwb25zZURhdGE7XHJcbiAgfVxyXG5cclxuICBjaGVja0FkZHJlc3NUeXBlKGFkZHJlc3M6IHsga2V5OiBzdHJpbmcsIHN0YXR1czogYm9vbGVhbiB9KSB7XHJcbiAgICB0aGlzLmFkZGVzc1R5cGUuZm9yRWFjaCgoYWRkKT0+IGFkZC5zdGF0dXMgPSAoYWRkLmtleSA9PSBhZGRyZXNzLmtleSkpO1xyXG4gICAgdGhpcy5hZGRyZXNzLmFkZHJlc3NUeXBlID0gYWRkcmVzcy5rZXkgYXMgQUREUkVTU19UWVBFO1xyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMubWF0RGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIGdldEN1cnJlbnRMb2NhdGlvbigpIHtcclxuICAgIFxyXG4gICAgaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikge1xyXG4gICAgICBcclxuICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbigodmFsdWVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXRpdHV0ZSA9IHZhbHVlcy5jb29yZHMubGF0aXR1ZGU7XHJcbiAgICAgICAgdGhpcy5sb25naXR1dGUgPSB2YWx1ZXMuY29vcmRzLmxvbmdpdHVkZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEFkZHJlc3MoKSB7XHJcbiAgICB0aGlzLmdlb2NvZGVyLmdlb2NvZGUoeyBsb2NhdGlvbjogdGhpcy5tYXJrZXJQb3NpdGlvbiB9LCAocmVzdWx0czogYW55LCBzdGF0dXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnT0snICYmIHJlc3VsdHNbMF0pIHtcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5hZGRyZXNzID0gcmVzdWx0c1swXS5mb3JtYXR0ZWRfYWRkcmVzcztcclxuICAgICAgICAgIHJlc3VsdHNbMF0uYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGVzID0gY29tcG9uZW50LnR5cGVzO1xyXG4gICAgICAgICAgICBpZiAodHlwZXMuaW5jbHVkZXMoXCJsb2NhbGl0eVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuY2l0eSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICAgICAgLy8gdGhpcy5zdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVzLmluY2x1ZGVzKFwiY291bnRyeVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMuemlwID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBvbkxvY2F0aW9uU2VsZWN0ZWQobG9jYXRpb246IGFueSkge1xyXG4gICAgXHJcbiAgICB0aGlzLmxhdGl0dXRlID0gbG9jYXRpb24ubGF0aXR1ZGU7XHJcbiAgICB0aGlzLmxvbmdpdHV0ZSA9IGxvY2F0aW9uLmxvbmdpdHVkZTtcclxuICAgICAgLy8gdGhpcy5zZXRQb3NpdGlvbigpOyAgLy8gVXBkYXRlIG1hcCBwb3NpdGlvblxyXG4gICAgLy8gdGhpcy51cGRhdGVBZGRyZXNzRmllbGRzKCk7XHJcbiAgfVxyXG4gIG9uQXV0b2NvbXBsZXRlU2VsZWN0ZWQocmVzdWx0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG51bGw7XHJcbiAgICAvLyB0aGlzLnppcCA9IFwiXCI7XHJcbiAgICAvLyB0aGlzLnN0YXRlID0gXCJcIjtcclxuICAgIC8vIHRoaXMuY2l0eSA9IFwiXCI7XHJcbiAgICAvLyB0aGlzLmFkZHJlc3MgPSByZXN1bHQ/LmZvcm1hdHRlZF9hZGRyZXNzO1xyXG4gICAgcmVzdWx0Py5hZGRyZXNzX2NvbXBvbmVudHMuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhPy50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpe31cclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGRhdGEubG9uZ19uYW1lO1xyXG4gICAgICBlbHNlIGlmIChkYXRhPy50eXBlcy5pbmNsdWRlcyhcInBvc3RhbF9jb2RlXCIpKXt9XHJcbiAgICAgICAgLy8gdGhpcy56aXAgPSBkYXRhLmxvbmdfbmFtZTtcclxuICAgICAgZWxzZSBpZiAoZGF0YT8udHlwZXMuaW5jbHVkZXMoXCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzFcIikpe31cclxuICAgICAgICAvLyB0aGlzLnN0YXRlID0gZGF0YS5sb25nX25hbWU7XHJcbiAgICAgIGVsc2UgaWYgKGRhdGE/LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpe31cclxuICAgICAgICAvLyB0aGlzLmNpdHkgPSBkYXRhLmxvbmdfbmFtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhZGRyZXNzU2VsZWN0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFkZHJlc3NJZHggPSBpbmRleDtcclxuICAgIHRoaXMuc2VsZWN0ZWRBZGRyZXNzLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxuICBnb1RvUHJvZmlsZSgpIHtcclxuICAgIGlmICh0aGlzLm1hdERhdGEpIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVBZGRyZXNzKCkge1xyXG4gICAgY29uc3QgdXNlckRldGFpbHMgPSAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcik7XHJcbiAgICBpZiAodXNlckRldGFpbHMpIHtcclxuXHJcbiAgICAgIGNvbnN0IGFkZHJlc3NMaXN0ID0gdXNlckRldGFpbHM/LmFkZHJlc3NEZXRhaWxzTGlzdDtcclxuICAgICAgaWYgKHRoaXMubWF0RGF0YT8uZWRpdEluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzTGlzdC5mb3JFYWNoKChhZGRyZXNzOiBhbnksIGlkeDogbnVtYmVyKT0+IHtcclxuICAgICAgICAgIGlmIChpZHggPT0gdGhpcy5tYXREYXRhLmVkaXRJbmR4KSB7XHJcbiAgICAgICAgICAgIGFkZHJlc3MgPSB0aGlzLmFkZHJlc3M7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhZGRyZXNzTGlzdC5wdXNoKHRoaXMuYWRkcmVzcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgXCJ1c2VySWRcIjogdXNlckRldGFpbHMudXNlcklkLFxyXG4gICAgICAgIFwiYnVzaW5lc3NJZFwiOiB1c2VyRGV0YWlscy5idXNpbmVzc0lkLFxyXG4gICAgICAgIFwiYWRkcmVzc0RldGFpbHNMaXN0XCI6IGFkZHJlc3NMaXN0LFxyXG4gICAgICAgIFwiY29udGFjdFwiOiB1c2VyRGV0YWlscz8uY29udGFjdCA/PyB7fSxcclxuICAgICAgICBcImdlbmRlclwiOiB1c2VyRGV0YWlscz8uZ2VuZGVyPy5sZW5ndGggPiAwID8gdXNlckRldGFpbHM/LmdlbmRlciAgOiAgXCJOT1RfUFJPVklERURcIlxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXN0U2VydmljZS5hZGRVc2VyQWRkcmVzcyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuYWRkTmV3QWRkcmVzcyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1hdERpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoISF1c2VyRGV0YWlscykge1xyXG4gICAgICAgICAgICB1c2VyRGV0YWlscy5hZGRyZXNzRGV0YWlsc0xpc3QgPSBhZGRyZXNzTGlzdDtcclxuICAgICAgICAgICAgdGhpcy5hZGRyZXNzTGlzdCA9IHVzZXJEZXRhaWxzLmFkZHJlc3NEZXRhaWxzTGlzdDtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHVzZXJEZXRhaWxzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgfSwgKGVycm9yKT0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSkge1xyXG4gICAgICAgIHRoaXMubWF0Qm90dG9tc2hlZXQub3BlbihBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50LCB7ZGF0YTogdGhpcy5kYXRhfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBoZWlnaHQ6ICc1MHZoJyxcclxuICAgICAgICAgIHdpZHRoOiAnMzV2dycsXHJcbiAgICAgICAgICBkYXRhOiB0aGlzLmRhdGFcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB2YWxpZGF0ZU1vYmlsZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKCghaXNOYU4oTnVtYmVyKGV2ZW50LmtleSkpIHx8IGV2ZW50LmtleUNvZGUgPT0gS0VZQk9BUkRfS0VZUy5CQUNLU1BBQ0UgfHwgZXZlbnQua2V5Q29kZSA9PSBLRVlCT0FSRF9LRVlTLlRBQikgJiYgZXZlbnQua2V5Q29kZSAhPSBLRVlCT0FSRF9LRVlTLlNQQUNFKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIHZhbGlkYXRlTmFtZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKChldmVudC5rZXlDb2RlID49IEtFWUJPQVJEX0tFWVMuQ0hBUkFDVEVSX0EgJiYgZXZlbnQua2V5Q29kZSA8PSBLRVlCT0FSRF9LRVlTLkNIQVJBQ1RFUl9aKSB8fCBldmVudC5rZXlDb2RlID09IDE2IHx8IGV2ZW50LmtleUNvZGUgPT0gOCB8fCBldmVudC5rZXlDb2RlID09IDMyIHx8IGV2ZW50LmtleUNvZGUgPT0gNDYgfHwgZXZlbnQua2V5Q29kZSA9PSA5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICBcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgZ2V0IGlzRW1haWxWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFkZHJlc3M/LnJlY2VpdmVyRW1haWw/LmluY2x1ZGVzKFwiQFwiKSAmJiB0aGlzLmFkZHJlc3M/LnJlY2VpdmVyRW1haWwuaW5jbHVkZXMoXCIuY29tXCIpIHx8ICh0aGlzLmFkZHJlc3M/LnJlY2VpdmVyRW1haWw/Lmxlbmd0aCA9PSAwKTtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwiYWRkcmVzcy1zZWNcIiAoY2xpY2spPVwiZWRpdFNlY3Rpb24oKVwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LWFkZHJlc3MtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiZ29Ub1Byb2ZpbGUoKVwiICpuZ0lmPVwiIWlzQ2FydFwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8aDM+e3tpc0NhcnQgPyAnU2hpcHBpbmcgVG8nIDogJ05ldyBBZGRyZXNzJ319PC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZC1hZGRyZXNzXCIgW3N0eWxlLmNvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cIiFhZGROZXdBZGRyZXNzXCIgKGNsaWNrKT1cImFkZE5ld0FkZHJlc3MgPSB0cnVlXCI+KyBhZGQgYWRkcmVzczwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZE5ld0FkZHJlc3NcIj5cclxuICAgICAgICA8IS0tIDxwIChjbGljayk9XCJnZXRDdXJyZW50TG9jYXRpb24oKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+bXlfbG9jYXRpb248L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj5UYWtlIG15IGN1cnJlbnQgbG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgPC9wPiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybXMgZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPk5hbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIFsobmdNb2RlbCldPVwiYWRkcmVzcy5yZWNlaXZlck5hbWVcIiAoa2V5ZG93bik9XCJ2YWxpZGF0ZU5hbWUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Nb2JpbGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbW9iaWxlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnJlY2VpdmVyUGhvbmVcIiAoa2V5ZG93bik9XCJ2YWxpZGF0ZU1vYmlsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkVtYWlsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGVtYWlsXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnJlY2VpdmVyRW1haWxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZnVsbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5BZGRyZXNzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGFkZHJlc3NcIiBtYXRHb29nbGVNYXBzQXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQXV0b2NvbXBsZXRlU2VsZWN0ZWQpPVwib25BdXRvY29tcGxldGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25Mb2NhdGlvblNlbGVjdGVkKT1cIm9uTG9jYXRpb25TZWxlY3RlZCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmFkZHJlc3NMaW5lMVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Mb2NhbGl0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBsb2NhbGl0eVwiIFsobmdNb2RlbCldPVwiYWRkcmVzcy5sb2NhbGl0eU5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+TGFuZG1hcms8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbGFuZG1hcmtcIiBbKG5nTW9kZWwpXT1cImFkZHJlc3MubGFuZG1hcmtcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCByZXF1aXJlZFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+UGluY29kZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBwaW5jb2RlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnppcENvZGVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCByZXF1aXJlZFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Q2l0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBjaXR5XCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmNpdHlOYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgcmVxdWlyZWRcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlN0YXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHN0YXRlXCIgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnN0YXRlTmFtZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsIHJlcXVpcmVkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5BZGRyZXNzIFR5cGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIGFkZGVzc1R5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRyZXNzLXR5cGVcIiAoY2xpY2spPVwiY2hlY2tBZGRyZXNzVHlwZShhZGRyZXNzKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWRkcmVzcy5zdGF0dXMgPyBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJ3JnYmEoMjExLCAyMTEsIDIxMSwgMC4zNjIpJ1wiIFtuZ0NsYXNzXT1cInsnYWN0aXZlLWFkZHJlc3MnOiBhZGRyZXNzLnN0YXR1c31cIj57e2FkZHJlc3Mua2V5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWxpc3RcIiAqbmdJZj1cIiFhZGROZXdBZGRyZXNzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBhZGRyZXNzTGlzdDsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzXCIgKGNsaWNrKT1cImFkZHJlc3NTZWxlY3RlZChpZHgpXCIgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJzZWxlY3RlZEFkZHJlc3NJZHggPT0gaWR4ID8gZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkcmVzcy1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgbXItMlwiPnt7YWRkcmVzcz8ucmVjZWl2ZXJOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkcmVzcy10eXBlXCI+e3thZGRyZXNzPy5hZGRyZXNzVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWRldFwiPnt7YWRkcmVzcy5hZGRyZXNzTGluZTF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5QaG9uZTo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkcmVzcy1waG9uZVwiPnt7YWRkcmVzcy5yZWNlaXZlclBob25lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0blwiICpuZ0lmPVwiYWRkTmV3QWRkcmVzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWRkcmVzcy5yZWNlaXZlclBob25lPy5sZW5ndGggIT0gMTAgJiYgYWRkcmVzcy5yZWNlaXZlclBob25lPy5sZW5ndGhcIj4qTW9iaWxlIG51bWJlciBpcyBpbnZhbGlkPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc0VtYWlsVmFsaWRcIj4qRW1haWwgaXMgaW52YWxpZDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtkaXNhYmxlZF09XCJcclxuICAgICAgICAgICAgIWFkZHJlc3MucmVjZWl2ZXJOYW1lIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5yZWNlaXZlclBob25lIHx8XHJcbiAgICAgICAgICAgIGFkZHJlc3MucmVjZWl2ZXJQaG9uZT8ubGVuZ3RoICE9IDEwIHx8XHJcbiAgICAgICAgICAgICFpc0VtYWlsVmFsaWQgfHwgXHJcbiAgICAgICAgICAgICFhZGRyZXNzLmFkZHJlc3NMaW5lMSB8fCBcclxuICAgICAgICAgICAgIWFkZHJlc3MubG9jYWxpdHlOYW1lIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy56aXBDb2RlIHx8IFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5jaXR5TmFtZSB8fFxyXG4gICAgICAgICAgICAhYWRkcmVzcy5zdGF0ZU5hbWUgfHwgXHJcbiAgICAgICAgICAgICFhZGRyZXNzLmFkZHJlc3NUeXBlIHx8IGlzTG9hZGluZ1xyXG4gICAgICAgICAgICBcIiAoY2xpY2spPVwidXBkYXRlQWRkcmVzcygpXCI+e3tpc0xvYWRpbmcgPyAnTG9hZGluZycgOiAnVXBkYXRlJ319PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG5cclxuXHJcbjxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuPC9kaXY+Il19
|
@@ -147,7 +147,7 @@ export class AuthenticateUserComponent extends BaseSection {
|
|
147
147
|
return window.innerWidth <= 475;
|
148
148
|
}
|
149
149
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticateUserComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: MAT_BOTTOM_SHEET_DATA, optional: true }, { token: i1.RestService }, { token: i2.Router }, { token: i3.MatDialog }, { token: i4.StorageServiceService }, { token: i3.MatDialogRef, optional: true }, { token: i5.MatBottomSheetRef, optional: true }, { token: i6.EventsService }, { token: i7.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AuthenticateUserComponent, isStandalone: true, selector: "simpo-authenticate-user", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <div [style.height.vh]=\"isMobile ? '40' : ''\" [id]=\"data?.id\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [simpoBackground]=\"styles?.background\">\r\n <ng-container [ngSwitch]=\"screen\">\r\n <section style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\"\r\n *ngSwitchCase=\"'LOGIN'\"[ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\" [style.color]=\"data?.styles?.background?.accentColor\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Welcome</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Log or Signup in to your account</p>\r\n <input type=\"number\" placeholder=\"Mobile Number\" [(ngModel)]=\"mobile\">\r\n <p class=\"text-center\"[style.color]=\"data?.styles?.background?.accentColor\">You will receive an OTP in WhatsApp</p>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"generateOTP()\" [disabled]=\"!isMobileValid\">Send OTP</button>\r\n <!-- <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Use email\r\n instead</div> -->\r\n </div>\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n </section>\r\n <section *ngSwitchCase=\"'OTP'\" style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\" [ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\">Verify OTP</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Enter the 6-digit that we have sent via the phone number +{{ countryCode }}{{ mobile\r\n }}</p>\r\n <div class=\"otpContainer\">\r\n <ng-container *ngFor=\"let _ of [].constructor(6); let idx = index\">\r\n <input type=\"number\" class=\"otp\" max=\"1\" [id]=\"'otp_'+idx\" [(ngModel)]=\"otpData[idx]\" (keyup)=\"move($event, idx)\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"verifyOTP()\">Verify</button>\r\n <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"resendOTP()\">Resend code</div>\r\n </div>\r\n\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n <div class=\"back-btn onlyDesktop\" (click)=\"goBack()\">\r\n <mat-icon>keyboard_backspace</mat-icon>\r\n </div>\r\n </section>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\">\r\n</ngx-skeleton-loader>\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: ["input,button{width:80%!important;margin:10px auto}input{padding:10px}.alternate-opt:hover{text-decoration:underline;cursor:pointer}button:disabled{background-color:#d3d3d3!important}.btn{border:1.5px solid transparent}.btn:hover{background-color:#000;color:#fff!important}.close-btn{position:absolute;top:10px;right:10px;cursor:pointer}.otpContainer{display:flex;gap:4px;margin:auto}.otpContainer .otp{border-radius:50%;padding:5px;height:50px;width:50px!important;margin:5px!important;text-align:center}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.back-btn{position:absolute;top:10px;left:10px;cursor:pointer}@media only screen and (max-width: 475px){.onlyDesktop{display:none}.text-center{text-align:left!important}.verify-otp{text-align:left!important;margin-top:8%}.otpContainer{width:100vw;margin-left:-20px;right:10px;justify-content:space-between;padding:0 5px!important}.otpContainer .otp{height:45px!important;width:45px!important;margin:0!important}button,input{width:100%!important}.fullSection{justify-content:start!important}.action-btn{position:relative;bottom:0;width:95%}.action-btn .text-center{text-align:center!important}.otpContainer{margin-top:20px;position:relative;right:10px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i10.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i11.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i12.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i13.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AuthenticateUserComponent, isStandalone: true, selector: "simpo-authenticate-user", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\r\n <div [style.height.vh]=\"isMobile ? '40' : ''\" [id]=\"data?.id\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [simpoBackground]=\"styles?.background\" [attr.style]=\"customClass\">\r\n <ng-container [ngSwitch]=\"screen\">\r\n <section style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\"\r\n *ngSwitchCase=\"'LOGIN'\"[ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\" [style.color]=\"data?.styles?.background?.accentColor\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Welcome</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Log or Signup in to your account</p>\r\n <input type=\"number\" placeholder=\"Mobile Number\" [(ngModel)]=\"mobile\">\r\n <p class=\"text-center\"[style.color]=\"data?.styles?.background?.accentColor\">You will receive an OTP in WhatsApp</p>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"generateOTP()\" [disabled]=\"!isMobileValid\">Send OTP</button>\r\n <!-- <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Use email\r\n instead</div> -->\r\n </div>\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n </section>\r\n <section *ngSwitchCase=\"'OTP'\" style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\" [ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\">Verify OTP</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Enter the 6-digit that we have sent via the phone number +{{ countryCode }}{{ mobile\r\n }}</p>\r\n <div class=\"otpContainer\">\r\n <ng-container *ngFor=\"let _ of [].constructor(6); let idx = index\">\r\n <input type=\"number\" class=\"otp\" max=\"1\" [id]=\"'otp_'+idx\" [(ngModel)]=\"otpData[idx]\" (keyup)=\"move($event, idx)\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"verifyOTP()\">Verify</button>\r\n <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"resendOTP()\">Resend code</div>\r\n </div>\r\n\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n <div class=\"back-btn onlyDesktop\" (click)=\"goBack()\">\r\n <mat-icon>keyboard_backspace</mat-icon>\r\n </div>\r\n </section>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\">\r\n</ngx-skeleton-loader>\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\" [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: ["input,button{width:80%!important;margin:10px auto}input{padding:10px}.alternate-opt:hover{text-decoration:underline;cursor:pointer}button:disabled{background-color:#d3d3d3!important}.btn{border:1.5px solid transparent}.btn:hover{background-color:#000;color:#fff!important}.close-btn{position:absolute;top:10px;right:10px;cursor:pointer}.otpContainer{display:flex;gap:4px;margin:auto}.otpContainer .otp{border-radius:50%;padding:5px;height:50px;width:50px!important;margin:5px!important;text-align:center}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.back-btn{position:absolute;top:10px;left:10px;cursor:pointer}@media only screen and (max-width: 475px){.onlyDesktop{display:none}.text-center{text-align:left!important}.verify-otp{text-align:left!important;margin-top:8%}.otpContainer{width:100vw;margin-left:-20px;right:10px;justify-content:space-between;padding:0 5px!important}.otpContainer .otp{height:45px!important;width:45px!important;margin:0!important}button,input{width:100%!important}.fullSection{justify-content:start!important}.action-btn{position:relative;bottom:0;width:95%}.action-btn .text-center{text-align:center!important}.otpContainer{margin-top:20px;position:relative;right:10px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i10.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i11.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i12.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i13.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
|
151
151
|
}
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticateUserComponent, decorators: [{
|
153
153
|
type: Component,
|
@@ -160,7 +160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
160
160
|
ButtonDirectiveDirective,
|
161
161
|
ToastModule,
|
162
162
|
HoverDirective,
|
163
|
-
], providers: [MessageService], template: "<ng-container *ngIf=\"!isLoading\">\r\n <div [style.height.vh]=\"isMobile ? '40' : ''\" [id]=\"data?.id\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [simpoBackground]=\"styles?.background\">\r\n <ng-container [ngSwitch]=\"screen\">\r\n <section style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\"\r\n *ngSwitchCase=\"'LOGIN'\"[ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\" [style.color]=\"data?.styles?.background?.accentColor\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Welcome</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Log or Signup in to your account</p>\r\n <input type=\"number\" placeholder=\"Mobile Number\" [(ngModel)]=\"mobile\">\r\n <p class=\"text-center\"[style.color]=\"data?.styles?.background?.accentColor\">You will receive an OTP in WhatsApp</p>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"generateOTP()\" [disabled]=\"!isMobileValid\">Send OTP</button>\r\n <!-- <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Use email\r\n instead</div> -->\r\n </div>\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n </section>\r\n <section *ngSwitchCase=\"'OTP'\" style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\" [ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\">Verify OTP</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Enter the 6-digit that we have sent via the phone number +{{ countryCode }}{{ mobile\r\n }}</p>\r\n <div class=\"otpContainer\">\r\n <ng-container *ngFor=\"let _ of [].constructor(6); let idx = index\">\r\n <input type=\"number\" class=\"otp\" max=\"1\" [id]=\"'otp_'+idx\" [(ngModel)]=\"otpData[idx]\" (keyup)=\"move($event, idx)\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"verifyOTP()\">Verify</button>\r\n <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"resendOTP()\">Resend code</div>\r\n </div>\r\n\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n <div class=\"back-btn onlyDesktop\" (click)=\"goBack()\">\r\n <mat-icon>keyboard_backspace</mat-icon>\r\n </div>\r\n </section>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\">\r\n</ngx-skeleton-loader>\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: ["input,button{width:80%!important;margin:10px auto}input{padding:10px}.alternate-opt:hover{text-decoration:underline;cursor:pointer}button:disabled{background-color:#d3d3d3!important}.btn{border:1.5px solid transparent}.btn:hover{background-color:#000;color:#fff!important}.close-btn{position:absolute;top:10px;right:10px;cursor:pointer}.otpContainer{display:flex;gap:4px;margin:auto}.otpContainer .otp{border-radius:50%;padding:5px;height:50px;width:50px!important;margin:5px!important;text-align:center}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.back-btn{position:absolute;top:10px;left:10px;cursor:pointer}@media only screen and (max-width: 475px){.onlyDesktop{display:none}.text-center{text-align:left!important}.verify-otp{text-align:left!important;margin-top:8%}.otpContainer{width:100vw;margin-left:-20px;right:10px;justify-content:space-between;padding:0 5px!important}.otpContainer .otp{height:45px!important;width:45px!important;margin:0!important}button,input{width:100%!important}.fullSection{justify-content:start!important}.action-btn{position:relative;bottom:0;width:95%}.action-btn .text-center{text-align:center!important}.otpContainer{margin-top:20px;position:relative;right:10px}}\n"] }]
|
163
|
+
], providers: [MessageService], template: "<ng-container *ngIf=\"!isLoading\">\r\n <div [style.height.vh]=\"isMobile ? '40' : ''\" [id]=\"data?.id\" (click)=\"editSection()\" simpoHover (hovering)=\"showEditTabs($event)\" [simpoBackground]=\"styles?.background\" [attr.style]=\"customClass\">\r\n <ng-container [ngSwitch]=\"screen\">\r\n <section style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\"\r\n *ngSwitchCase=\"'LOGIN'\"[ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\" [style.color]=\"data?.styles?.background?.accentColor\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Welcome</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Log or Signup in to your account</p>\r\n <input type=\"number\" placeholder=\"Mobile Number\" [(ngModel)]=\"mobile\">\r\n <p class=\"text-center\"[style.color]=\"data?.styles?.background?.accentColor\">You will receive an OTP in WhatsApp</p>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"generateOTP()\" [disabled]=\"!isMobileValid\">Send OTP</button>\r\n <!-- <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Use email\r\n instead</div> -->\r\n </div>\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n </section>\r\n <section *ngSwitchCase=\"'OTP'\" style=\"padding: 15px;\"\r\n class=\"d-flex flex-column align-item-center justify-content-center position-relative h-100\" [ngClass]=\"{'fullSection': isMobile}\">\r\n <h5 class=\"text-center onlyDesktop\">{{data?.content?.siteName?.value}}</h5>\r\n <h2 class=\"text-center\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\">Verify OTP</h2>\r\n <p class=\"text-center\" [style.color]=\"data?.styles?.background?.accentColor\">Enter the 6-digit that we have sent via the phone number +{{ countryCode }}{{ mobile\r\n }}</p>\r\n <div class=\"otpContainer\">\r\n <ng-container *ngFor=\"let _ of [].constructor(6); let idx = index\">\r\n <input type=\"number\" class=\"otp\" max=\"1\" [id]=\"'otp_'+idx\" [(ngModel)]=\"otpData[idx]\" (keyup)=\"move($event, idx)\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"action-btn d-flex flex-column align-item-center justify-content-center\">\r\n <button class=\"btn\" [style.borderColor]=\"data?.styles?.background?.accentColor\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"verifyOTP()\">Verify</button>\r\n <div class=\"alternate-opt text-center\" [style.color]=\"data?.styles?.background?.accentColor\" (click)=\"resendOTP()\">Resend code</div>\r\n </div>\r\n\r\n <div class=\"close-btn onlyDesktop\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n </div>\r\n <div class=\"back-btn onlyDesktop\" (click)=\"goBack()\">\r\n <mat-icon>keyboard_backspace</mat-icon>\r\n </div>\r\n </section>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\">\r\n</ngx-skeleton-loader>\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\" [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n</div>\r\n<div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n</div>", styles: ["input,button{width:80%!important;margin:10px auto}input{padding:10px}.alternate-opt:hover{text-decoration:underline;cursor:pointer}button:disabled{background-color:#d3d3d3!important}.btn{border:1.5px solid transparent}.btn:hover{background-color:#000;color:#fff!important}.close-btn{position:absolute;top:10px;right:10px;cursor:pointer}.otpContainer{display:flex;gap:4px;margin:auto}.otpContainer .otp{border-radius:50%;padding:5px;height:50px;width:50px!important;margin:5px!important;text-align:center}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.back-btn{position:absolute;top:10px;left:10px;cursor:pointer}@media only screen and (max-width: 475px){.onlyDesktop{display:none}.text-center{text-align:left!important}.verify-otp{text-align:left!important;margin-top:8%}.otpContainer{width:100vw;margin-left:-20px;right:10px;justify-content:space-between;padding:0 5px!important}.otpContainer .otp{height:45px!important;width:45px!important;margin:0!important}button,input{width:100%!important}.fullSection{justify-content:start!important}.action-btn{position:relative;bottom:0;width:95%}.action-btn .text-center{text-align:center!important}.otpContainer{margin-top:20px;position:relative;right:10px}}\n"] }]
|
164
164
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
165
165
|
type: Optional
|
166
166
|
}, {
|
@@ -183,5 +183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
183
183
|
type: Input
|
184
184
|
}], delete: [{
|
185
185
|
type: Input
|
186
|
+
}], customClass: [{
|
187
|
+
type: Input
|
186
188
|
}] } });
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSWpFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNB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QUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQ2xDLENBQUM7OEdBeElVLHlCQUF5QixrQkFjZCxlQUFlLDZCQUNmLHFCQUFxQjtrR0FmaEMseUJBQXlCLGdKQUp6QixDQUFDLGNBQWMsQ0FBQyxpREMvQzdCLDAvSUErRE0sKzBDRDFCRixXQUFXLDQ4QkFDWCxPQUFPLDBJQUNQLFlBQVksMGhCQUNaLG1CQUFtQix5R0FDbkIsb0JBQW9CLHNoQkFFcEIsV0FBVyx5V0FDWCxjQUFjOzsyRkFPTCx5QkFBeUI7a0JBbEJyQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsV0FBVzt3QkFDWCxjQUFjO3FCQUVmLGFBQ1UsQ0FBQyxjQUFjLENBQUM7OzBCQWtCeEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUt4QyxRQUFROzswQkFDUixRQUFRO2tHQXBCRixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBVc2VyQmFzaWNJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1iYXNpYy1pbmZvL3VzZXItYmFzaWMtaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRNb2RlbCwgU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1BVF9CT1RUT01fU0hFRVRfREFUQSwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcblxyXG5pbnRlcmZhY2UgQXV0aGVudGljYXRlU2VjdGlvbk1vZGVse1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY29udGVudDogQXV0aGVudGljYXRlQ29udGVudE1vZGVsLFxyXG4gIHN0eWxlczpTdHlsZXNNb2RlbCxcclxuICBhY3Rpb246IEFjdGlvbk1vZGVsLFxyXG4gIHR5cGU6ICdTVEFUSUMnIHwgJ0VfQ09NTUVSQ0UnXHJcbn1cclxuaW50ZXJmYWNlIEF1dGhlbnRpY2F0ZUNvbnRlbnRNb2RlbCB7XHJcbiAgc2l0ZU5hbWU6IElucHV0VGV4dE1vZGVsXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYXV0aGVudGljYXRlLXVzZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgVG9hc3RNb2R1bGUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YT86IEF1dGhlbnRpY2F0ZVNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgb3RwRGF0YSA9IFssLCwsLF07XHJcbiAgcHVibGljIG90cFN0cmluZzogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgc2NyZWVuOiAnTE9HSU4nIHwgJ09UUCcgPSAnTE9HSU4nO1xyXG4gIHB1YmxpYyBtb2JpbGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBjb3VudHJ5Q29kZTogc3RyaW5nIHwgbnVsbCA9IFwiOTFcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIG1hdERhdGE6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0JPVFRPTV9TSEVFVF9EQVRBKSBwdWJsaWMgYm90dG9tc2hlZXREYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tc2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHN0eWxlczogYW55O1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMubWF0RGF0YSlcclxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5tYXREYXRhO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIG1vdmUoZXZlbnQ6IGFueSwgaWR4OiBudW1iZXIpIHtcclxuICAgIFxyXG4gICAgaWYgKGlzTmFOKE51bWJlcihldmVudC5rZXkpKSAmJiBldmVudC5jb2RlICE9IFwiQmFja3NwYWNlXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIFxyXG4gICAgaWYgKGV2ZW50LmNvZGUgIT0gXCJCYWNrc3BhY2VcIikge1xyXG4gICAgICB0aGlzLm90cERhdGFbaWR4XSA9IGV2ZW50LmtleTtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIrKGlkeCArMSkpPy5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT0gXCJCYWNrc3BhY2VcIiAmJiAhdGhpcy5vdHBEYXRhW2lkeF0pIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIrKGlkeCAtMSkpPy5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxyXG4gICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoKTtcclxuICB9XHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5yZXNldFZhbHVlKCk7XHJcbiAgICB0aGlzLnNjcmVlbiA9IFwiTE9HSU5cIjtcclxuICB9XHJcbiAgcHJpdmF0ZSByZXNldFZhbHVlKCkge1xyXG4gICAgdGhpcy5vdHBTdHJpbmcgPSAnJztcclxuICAgIHRoaXMub3RwRGF0YSA9IFssLCwsLF07XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZU9UUCgpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5jb3VudHJ5Q29kZSA/PyBcIlwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5zY3JlZW4gPSBcIk9UUFwiO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAgU2VudCcsIGRldGFpbDogJ09UUCBzZW50IHRvIG1vYmlsZS4gVmFsaWQgZm9yIDMgbWlucycsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgfSwgKGVycm9yKT0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ09UUCBSZXF1ZXN0JywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgfSlcclxuICB9XHJcbiAgdmVyaWZ5T1RQKCkge1xyXG4gICAgdGhpcy5vdHBTdHJpbmcgPSBcIlwiO1xyXG4gICAgdGhpcy5vdHBEYXRhLmZvckVhY2goKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGlkeDogbnVtYmVyKT0+ICB0aGlzLm90cFN0cmluZyArPSAodmFsdWUgPz8gXCJcIikpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5vdHBTdHJpbmcpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXHJcbiAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxyXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246ICEodXNlckRldGFpbHMuY29udGFjdD8ubmFtZT8ubGVuZ3RoID4gMCksXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSSBsb3ZlZCBpdFwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiIzkyOGM4Y1wiLFxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpPT4ge1xyXG5cclxuICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxyXG4gICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5pc0Rpc21pc3NlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ib3R0b21zaGVldFJlZilcclxuICAgICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xyXG4gICAgICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcclxuICAgICAgICAgICAgICBoZWlnaHQ6ICc1MHZoJyxcclxuICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGggPiA0NzUgPyAnNDB2dycgOiAnOTV2dycsXHJcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcclxuICAgICAgICAgICAgICBkYXRhOiB7fVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9LCAoZXJyb3IpPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICBcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgXHJcbiAgcHVibGljIHJlc2VuZE9UUCgpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVzZW5kT1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHRoaXMub3RwU3RyaW5nID0gXCJcIjtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZVZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9iaWxlPy50b1N0cmluZygpLmxlbmd0aCA9PSAxMDtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgW3N0eWxlLmhlaWdodC52aF09XCJpc01vYmlsZSA/ICc0MCcgOiAnJ1wiIFtpZF09XCJkYXRhPy5pZFwiIChjbGljayk9XCJlZGl0U2VjdGlvbigpXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzY3JlZW5cIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24gc3R5bGU9XCJwYWRkaW5nOiAxNXB4O1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCJcclxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInTE9HSU4nXCJbbmdDbGFzc109XCJ7J2Z1bGxTZWN0aW9uJzogaXNNb2JpbGV9XCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+e3tkYXRhPy5jb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+V2VsY29tZTwvaDI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Mb2cgb3IgU2lnbnVwIGluIHRvIHlvdXIgYWNjb3VudDwvcD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJNb2JpbGUgTnVtYmVyXCIgWyhuZ01vZGVsKV09XCJtb2JpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIltzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+WW91IHdpbGwgcmVjZWl2ZSBhbiBPVFAgaW4gV2hhdHNBcHA8L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idG4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJnZW5lcmF0ZU9UUCgpXCIgW2Rpc2FibGVkXT1cIiFpc01vYmlsZVZhbGlkXCI+U2VuZCBPVFA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhbHRlcm5hdGUtb3B0IHRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Vc2UgZW1haWxcclxuICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nU3dpdGNoQ2FzZT1cIidPVFAnXCIgc3R5bGU9XCJwYWRkaW5nOiAxNXB4O1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCIgW25nQ2xhc3NdPVwieydmdWxsU2VjdGlvbic6IGlzTW9iaWxlfVwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwidGV4dC1jZW50ZXIgb25seURlc2t0b3BcIj57e2RhdGE/LmNvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9oNT5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlZlcmlmeSBPVFA8L2gyPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+RW50ZXIgdGhlIDYtZGlnaXQgdGhhdCB3ZSBoYXZlIHNlbnQgdmlhIHRoZSBwaG9uZSBudW1iZXIgK3t7IGNvdW50cnlDb2RlIH19e3sgbW9iaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3RwQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgXyBvZiBbXS5jb25zdHJ1Y3Rvcig2KTsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJvdHBcIiBtYXg9XCIxXCIgW2lkXT1cIidvdHBfJytpZHhcIiBbKG5nTW9kZWwpXT1cIm90cERhdGFbaWR4XVwiIChrZXl1cCk9XCJtb3ZlKCRldmVudCwgaWR4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idG4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJ2ZXJpZnlPVFAoKVwiPlZlcmlmeTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbHRlcm5hdGUtb3B0IHRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwicmVzZW5kT1RQKClcIj5SZXNlbmQgY29kZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlLWJ0biBvbmx5RGVza3RvcFwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2JhY2tzcGFjZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgd2lkdGg6ICcxMDAlJyxcclxuICAgIGhlaWdodDogJzQwdmgnLFxyXG4gICAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICAgJ3JpZ2h0JzogJzVweCdcclxuICB9XCI+XHJcbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIj48L3AtdG9hc3Q+XHJcblxyXG48ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbjwvZGl2PiJdfQ==
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSWpFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNB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QUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO0lBQ2xDLENBQUM7OEdBeklVLHlCQUF5QixrQkFlZCxlQUFlLDZCQUNmLHFCQUFxQjtrR0FoQmhDLHlCQUF5Qiw0S0FKekIsQ0FBQyxjQUFjLENBQUMsaURDL0M3QixzbEpBK0RNLCswQ0QxQkYsV0FBVyw0OEJBQ1gsT0FBTywwSUFDUCxZQUFZLDBoQkFDWixtQkFBbUIseUdBQ25CLG9CQUFvQixzaEJBRXBCLFdBQVcseVdBQ1gsY0FBYzs7MkZBT0wseUJBQXlCO2tCQWxCckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLFdBQVc7d0JBQ1gsY0FBYztxQkFFZixhQUNVLENBQUMsY0FBYyxDQUFDOzswQkFtQnhCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFLeEMsUUFBUTs7MEJBQ1IsUUFBUTtrR0FyQkYsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBVc2VyQmFzaWNJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1iYXNpYy1pbmZvL3VzZXItYmFzaWMtaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRNb2RlbCwgU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1BVF9CT1RUT01fU0hFRVRfREFUQSwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcblxyXG5pbnRlcmZhY2UgQXV0aGVudGljYXRlU2VjdGlvbk1vZGVse1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY29udGVudDogQXV0aGVudGljYXRlQ29udGVudE1vZGVsLFxyXG4gIHN0eWxlczpTdHlsZXNNb2RlbCxcclxuICBhY3Rpb246IEFjdGlvbk1vZGVsLFxyXG4gIHR5cGU6ICdTVEFUSUMnIHwgJ0VfQ09NTUVSQ0UnXHJcbn1cclxuaW50ZXJmYWNlIEF1dGhlbnRpY2F0ZUNvbnRlbnRNb2RlbCB7XHJcbiAgc2l0ZU5hbWU6IElucHV0VGV4dE1vZGVsXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYXV0aGVudGljYXRlLXVzZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgVG9hc3RNb2R1bGUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YT86IEF1dGhlbnRpY2F0ZVNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgb3RwRGF0YSA9IFssLCwsLF07XHJcbiAgcHVibGljIG90cFN0cmluZzogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgc2NyZWVuOiAnTE9HSU4nIHwgJ09UUCcgPSAnTE9HSU4nO1xyXG4gIHB1YmxpYyBtb2JpbGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBjb3VudHJ5Q29kZTogc3RyaW5nIHwgbnVsbCA9IFwiOTFcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIG1hdERhdGE6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0JPVFRPTV9TSEVFVF9EQVRBKSBwdWJsaWMgYm90dG9tc2hlZXREYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tc2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHN0eWxlczogYW55O1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMubWF0RGF0YSlcclxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5tYXREYXRhO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIG1vdmUoZXZlbnQ6IGFueSwgaWR4OiBudW1iZXIpIHtcclxuICAgIFxyXG4gICAgaWYgKGlzTmFOKE51bWJlcihldmVudC5rZXkpKSAmJiBldmVudC5jb2RlICE9IFwiQmFja3NwYWNlXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIFxyXG4gICAgaWYgKGV2ZW50LmNvZGUgIT0gXCJCYWNrc3BhY2VcIikge1xyXG4gICAgICB0aGlzLm90cERhdGFbaWR4XSA9IGV2ZW50LmtleTtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIrKGlkeCArMSkpPy5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT0gXCJCYWNrc3BhY2VcIiAmJiAhdGhpcy5vdHBEYXRhW2lkeF0pIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIrKGlkeCAtMSkpPy5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxyXG4gICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoKTtcclxuICB9XHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5yZXNldFZhbHVlKCk7XHJcbiAgICB0aGlzLnNjcmVlbiA9IFwiTE9HSU5cIjtcclxuICB9XHJcbiAgcHJpdmF0ZSByZXNldFZhbHVlKCkge1xyXG4gICAgdGhpcy5vdHBTdHJpbmcgPSAnJztcclxuICAgIHRoaXMub3RwRGF0YSA9IFssLCwsLF07XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZU9UUCgpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5jb3VudHJ5Q29kZSA/PyBcIlwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5zY3JlZW4gPSBcIk9UUFwiO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAgU2VudCcsIGRldGFpbDogJ09UUCBzZW50IHRvIG1vYmlsZS4gVmFsaWQgZm9yIDMgbWlucycsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgfSwgKGVycm9yKT0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ09UUCBSZXF1ZXN0JywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgfSlcclxuICB9XHJcbiAgdmVyaWZ5T1RQKCkge1xyXG4gICAgdGhpcy5vdHBTdHJpbmcgPSBcIlwiO1xyXG4gICAgdGhpcy5vdHBEYXRhLmZvckVhY2goKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGlkeDogbnVtYmVyKT0+ICB0aGlzLm90cFN0cmluZyArPSAodmFsdWUgPz8gXCJcIikpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5vdHBTdHJpbmcpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXHJcbiAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxyXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246ICEodXNlckRldGFpbHMuY29udGFjdD8ubmFtZT8ubGVuZ3RoID4gMCksXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSSBsb3ZlZCBpdFwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiIzkyOGM4Y1wiLFxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpPT4ge1xyXG5cclxuICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcclxuICAgICAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxyXG4gICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5pc0Rpc21pc3NlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5ib3R0b21zaGVldFJlZilcclxuICAgICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xyXG4gICAgICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcclxuICAgICAgICAgICAgICBoZWlnaHQ6ICc1MHZoJyxcclxuICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGggPiA0NzUgPyAnNDB2dycgOiAnOTV2dycsXHJcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcclxuICAgICAgICAgICAgICBkYXRhOiB7fVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9LCAoZXJyb3IpPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICBcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgXHJcbiAgcHVibGljIHJlc2VuZE9UUCgpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVzZW5kT1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHRoaXMub3RwU3RyaW5nID0gXCJcIjtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZVZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9iaWxlPy50b1N0cmluZygpLmxlbmd0aCA9PSAxMDtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgW3N0eWxlLmhlaWdodC52aF09XCJpc01vYmlsZSA/ICc0MCcgOiAnJ1wiIFtpZF09XCJkYXRhPy5pZFwiIChjbGljayk9XCJlZGl0U2VjdGlvbigpXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInNjcmVlblwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBzdHlsZT1cInBhZGRpbmc6IDE1cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidMT0dJTidcIltuZ0NsYXNzXT1cInsnZnVsbFNlY3Rpb24nOiBpc01vYmlsZX1cIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRleHQtY2VudGVyIG9ubHlEZXNrdG9wXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj57e2RhdGE/LmNvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9oNT5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5XZWxjb21lPC9oMj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkxvZyBvciBTaWdudXAgaW4gdG8geW91ciBhY2NvdW50PC9wPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIk1vYmlsZSBOdW1iZXJcIiBbKG5nTW9kZWwpXT1cIm1vYmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Zb3Ugd2lsbCByZWNlaXZlIGFuIE9UUCBpbiBXaGF0c0FwcDwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cImdlbmVyYXRlT1RQKClcIiBbZGlzYWJsZWRdPVwiIWlzTW9iaWxlVmFsaWRcIj5TZW5kIE9UUDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFsdGVybmF0ZS1vcHQgdGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlVzZSBlbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgIGluc3RlYWQ8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdTd2l0Y2hDYXNlPVwiJ09UUCdcIiBzdHlsZT1cInBhZGRpbmc6IDE1cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIiBbbmdDbGFzc109XCJ7J2Z1bGxTZWN0aW9uJzogaXNNb2JpbGV9XCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiPnt7ZGF0YT8uY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+VmVyaWZ5IE9UUDwvaDI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5FbnRlciB0aGUgNi1kaWdpdCB0aGF0IHdlIGhhdmUgc2VudCB2aWEgdGhlIHBob25lIG51bWJlciAre3sgY291bnRyeUNvZGUgfX17eyBtb2JpbGVcclxuICAgICAgICAgICAgICAgICAgICB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdHBDb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBfIG9mIFtdLmNvbnN0cnVjdG9yKDYpOyBsZXQgaWR4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cIm90cFwiIG1heD1cIjFcIiBbaWRdPVwiJ290cF8nK2lkeFwiIFsobmdNb2RlbCldPVwib3RwRGF0YVtpZHhdXCIgKGtleXVwKT1cIm1vdmUoJGV2ZW50LCBpZHgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInZlcmlmeU9UUCgpXCI+VmVyaWZ5PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdGVybmF0ZS1vcHQgdGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJyZXNlbmRPVFAoKVwiPlJlc2VuZCBjb2RlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYmFja3NwYWNlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXHJcbiAgICAncmlnaHQnOiAnNXB4J1xyXG4gIH1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG48cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cclxuXHJcbjxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuPC9kaXY+Il19
|