@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
37 lines • 14.7 kB
JavaScript
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
import { ICON_TYPE } from '../../../../misc/icon/index';
import * as i0 from "@angular/core";
import * as i1 from "../../../../../shared/components/modal/index";
import * as i2 from "../../../../misc/icon/icon.component";
import * as i3 from "@angular/forms";
import * as i4 from "@angular/common";
import * as i5 from "@spartacus/core";
export class SuggestedAddressDialogComponent {
constructor(modalService) {
this.modalService = modalService;
this.iconTypes = ICON_TYPE;
}
ngOnInit() {
this.selectedAddress = this.suggestedAddresses.length
? this.suggestedAddresses[0]
: this.enteredAddress;
}
closeModal(reason) {
this.modalService.closeActiveModal(reason);
}
}
SuggestedAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SuggestedAddressDialogComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component });
SuggestedAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: SuggestedAddressDialogComponent, selector: "cx-suggested-addresses-dialog", inputs: { suggestedAddresses: "suggestedAddresses", enteredAddress: "enteredAddress" }, ngImport: i0, template: "<div class=\"cx-dialog-header modal-header\">\n <div class=\"cx-dialog-title modal-title\">\n {{ 'addressSuggestion.verifyYourAddress' | cxTranslate }}\n </div>\n <button\n type=\"button\"\n class=\"close\"\n [attr.aria-label]=\"'common.close' | cxTranslate\"\n (click)=\"closeModal()\"\n >\n <span aria-hidden=\"true\">\n <cx-icon [type]=\"iconTypes.CLOSE\"></cx-icon>\n </span>\n </button>\n</div>\n<div class=\"cx-dialog-body modal-body\" ngForm>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"cx-dialog-info col-md-12\">\n <p>\n {{ 'addressSuggestion.ensureAccuracySuggestChange' | cxTranslate }}\n {{ 'addressSuggestion.chooseAddressToUse' | cxTranslate }}\n </p>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"cx-dialog-options col-md-12\">\n <div\n class=\"form-check\"\n *ngFor=\"let suggestedAddress of suggestedAddresses; let i = index\"\n >\n <input\n class=\"form-check-input\"\n type=\"radio\"\n name=\"selectedAddress\"\n [(ngModel)]=\"selectedAddress\"\n [value]=\"suggestedAddress\"\n [id]=\"'suggested-addresses--suggested-' + i\"\n />\n <label\n class=\"form-check-label cx-dialog-label\"\n [for]=\"'suggested-addresses--suggested-' + i\"\n >\n {{ 'addressSuggestion.suggestedAddress' | cxTranslate }}\n {{ suggestedAddresses?.length > 1 ? i + 1 : null }}\n </label>\n <div class=\"cx-dialog-suggested\">\n {{ suggestedAddress?.firstName }} {{ suggestedAddress?.lastName\n }}<br />\n {{ suggestedAddress?.line1 }}<br />\n <span>{{ suggestedAddress?.line2 }}</span\n ><br />\n {{ suggestedAddress?.town }} {{ suggestedAddress?.region?.isocode\n }}<br />\n {{ suggestedAddress?.postalCode }}\n </div>\n </div>\n <div class=\"form-check\">\n <input\n class=\"form-check-input\"\n type=\"radio\"\n name=\"selectedAddress\"\n [(ngModel)]=\"selectedAddress\"\n [value]=\"enteredAddress\"\n id=\"suggested-addresses--entered\"\n />\n <label\n class=\"form-check-label cx-dialog-label\"\n for=\"suggested-addresses--entered\"\n >\n {{ 'addressSuggestion.enteredAddress' | cxTranslate }}\n </label>\n <div class=\"cx-dialog-entered\">\n {{ enteredAddress?.firstName }} {{ enteredAddress?.lastName }}<br />\n {{ enteredAddress?.line1 }}<br />\n <span>{{ enteredAddress?.line2 }}</span\n ><br />\n {{ enteredAddress?.town }} {{ enteredAddress?.region?.isocode\n }}<br />\n {{ enteredAddress?.postalCode }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"cx-dialog-actions col-sm-12 col-md-6 offset-md-6\">\n <button\n class=\"btn btn-secondary btn-block cx-dialog-buttons\"\n (click)=\"closeModal()\"\n >\n {{ 'addressSuggestion.editAddress' | cxTranslate }}\n </button>\n <button\n cxAutoFocus\n class=\"btn btn-primary btn-block cx-dialog-buttons\"\n (click)=\"closeModal(selectedAddress)\"\n >\n {{ 'addressSuggestion.saveAddress' | cxTranslate }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i2.IconComponent, selector: "cx-icon,[cxIcon]", inputs: ["cxIcon", "type"] }], directives: [{ type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "cxTranslate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SuggestedAddressDialogComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-suggested-addresses-dialog',
templateUrl: './suggested-addresses-dialog.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { suggestedAddresses: [{
type: Input
}], enteredAddress: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGVkLWFkZHJlc3Nlcy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtY29tcG9uZW50cy9teWFjY291bnQvYWRkcmVzcy1ib29rL2FkZHJlc3MtZm9ybS9zdWdnZXN0ZWQtYWRkcmVzc2VzLWRpYWxvZy9zdWdnZXN0ZWQtYWRkcmVzc2VzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdG9yZWZyb250bGliL2Ntcy1jb21wb25lbnRzL215YWNjb3VudC9hZGRyZXNzLWJvb2svYWRkcmVzcy1mb3JtL3N1Z2dlc3RlZC1hZGRyZXNzZXMtZGlhbG9nL3N1Z2dlc3RlZC1hZGRyZXNzZXMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFPeEQsTUFBTSxPQUFPLCtCQUErQjtJQUcxQyxZQUFzQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUZoRCxjQUFTLEdBQUcsU0FBUyxDQUFDO0lBRTZCLENBQUM7SUFTcEQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU07WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFZO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7NEhBcEJVLCtCQUErQjtnSEFBL0IsK0JBQStCLDZKQ2Y1QyxnakhBd0dBOzJGRHpGYSwrQkFBK0I7a0JBTDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsV0FBVyxFQUFFLDZDQUE2QztvQkFDMUQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO21HQU9DLGtCQUFrQjtzQkFEakIsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbW9kYWwvaW5kZXgnO1xuaW1wb3J0IHsgSUNPTl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbWlzYy9pY29uL2luZGV4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3gtc3VnZ2VzdGVkLWFkZHJlc3Nlcy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VnZ2VzdGVkLWFkZHJlc3Nlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGVkQWRkcmVzc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGljb25UeXBlcyA9IElDT05fVFlQRTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpIHt9XG5cbiAgQElucHV0KClcbiAgc3VnZ2VzdGVkQWRkcmVzc2VzOiBBZGRyZXNzW107XG4gIEBJbnB1dCgpXG4gIGVudGVyZWRBZGRyZXNzOiBBZGRyZXNzO1xuXG4gIHNlbGVjdGVkQWRkcmVzczogQWRkcmVzcztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IHRoaXMuc3VnZ2VzdGVkQWRkcmVzc2VzLmxlbmd0aFxuICAgICAgPyB0aGlzLnN1Z2dlc3RlZEFkZHJlc3Nlc1swXVxuICAgICAgOiB0aGlzLmVudGVyZWRBZGRyZXNzO1xuICB9XG5cbiAgY2xvc2VNb2RhbChyZWFzb24/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZUFjdGl2ZU1vZGFsKHJlYXNvbik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjeC1kaWFsb2ctaGVhZGVyIG1vZGFsLWhlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwiY3gtZGlhbG9nLXRpdGxlIG1vZGFsLXRpdGxlXCI+XG4gICAge3sgJ2FkZHJlc3NTdWdnZXN0aW9uLnZlcmlmeVlvdXJBZGRyZXNzJyB8IGN4VHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29tbW9uLmNsb3NlJyB8IGN4VHJhbnNsYXRlXCJcbiAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgPlxuICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPGN4LWljb24gW3R5cGVdPVwiaWNvblR5cGVzLkNMT1NFXCI+PC9jeC1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjeC1kaWFsb2ctYm9keSBtb2RhbC1ib2R5XCIgbmdGb3JtPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImN4LWRpYWxvZy1pbmZvIGNvbC1tZC0xMlwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICB7eyAnYWRkcmVzc1N1Z2dlc3Rpb24uZW5zdXJlQWNjdXJhY3lTdWdnZXN0Q2hhbmdlJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgICAgICAge3sgJ2FkZHJlc3NTdWdnZXN0aW9uLmNob29zZUFkZHJlc3NUb1VzZScgfCBjeFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjeC1kaWFsb2ctb3B0aW9ucyBjb2wtbWQtMTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVja1wiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHN1Z2dlc3RlZEFkZHJlc3Mgb2Ygc3VnZ2VzdGVkQWRkcmVzc2VzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICBuYW1lPVwic2VsZWN0ZWRBZGRyZXNzXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRBZGRyZXNzXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdWdnZXN0ZWRBZGRyZXNzXCJcbiAgICAgICAgICAgIFtpZF09XCInc3VnZ2VzdGVkLWFkZHJlc3Nlcy0tc3VnZ2VzdGVkLScgKyBpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN4LWRpYWxvZy1sYWJlbFwiXG4gICAgICAgICAgICBbZm9yXT1cIidzdWdnZXN0ZWQtYWRkcmVzc2VzLS1zdWdnZXN0ZWQtJyArIGlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdhZGRyZXNzU3VnZ2VzdGlvbi5zdWdnZXN0ZWRBZGRyZXNzJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICB7eyBzdWdnZXN0ZWRBZGRyZXNzZXM/Lmxlbmd0aCA+IDEgPyBpICsgMSA6IG51bGwgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjeC1kaWFsb2ctc3VnZ2VzdGVkXCI+XG4gICAgICAgICAgICB7eyBzdWdnZXN0ZWRBZGRyZXNzPy5maXJzdE5hbWUgfX0ge3sgc3VnZ2VzdGVkQWRkcmVzcz8ubGFzdE5hbWVcbiAgICAgICAgICAgIH19PGJyIC8+XG4gICAgICAgICAgICB7eyBzdWdnZXN0ZWRBZGRyZXNzPy5saW5lMSB9fTxiciAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGVkQWRkcmVzcz8ubGluZTIgfX08L3NwYW5cbiAgICAgICAgICAgID48YnIgLz5cbiAgICAgICAgICAgIHt7IHN1Z2dlc3RlZEFkZHJlc3M/LnRvd24gfX0ge3sgc3VnZ2VzdGVkQWRkcmVzcz8ucmVnaW9uPy5pc29jb2RlXG4gICAgICAgICAgICB9fTxiciAvPlxuICAgICAgICAgICAge3sgc3VnZ2VzdGVkQWRkcmVzcz8ucG9zdGFsQ29kZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgbmFtZT1cInNlbGVjdGVkQWRkcmVzc1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQWRkcmVzc1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZW50ZXJlZEFkZHJlc3NcIlxuICAgICAgICAgICAgaWQ9XCJzdWdnZXN0ZWQtYWRkcmVzc2VzLS1lbnRlcmVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN4LWRpYWxvZy1sYWJlbFwiXG4gICAgICAgICAgICBmb3I9XCJzdWdnZXN0ZWQtYWRkcmVzc2VzLS1lbnRlcmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnYWRkcmVzc1N1Z2dlc3Rpb24uZW50ZXJlZEFkZHJlc3MnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjeC1kaWFsb2ctZW50ZXJlZFwiPlxuICAgICAgICAgICAge3sgZW50ZXJlZEFkZHJlc3M/LmZpcnN0TmFtZSB9fSB7eyBlbnRlcmVkQWRkcmVzcz8ubGFzdE5hbWUgfX08YnIgLz5cbiAgICAgICAgICAgIHt7IGVudGVyZWRBZGRyZXNzPy5saW5lMSB9fTxiciAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgZW50ZXJlZEFkZHJlc3M/LmxpbmUyIH19PC9zcGFuXG4gICAgICAgICAgICA+PGJyIC8+XG4gICAgICAgICAgICB7eyBlbnRlcmVkQWRkcmVzcz8udG93biB9fSB7eyBlbnRlcmVkQWRkcmVzcz8ucmVnaW9uPy5pc29jb2RlXG4gICAgICAgICAgICB9fTxiciAvPlxuICAgICAgICAgICAge3sgZW50ZXJlZEFkZHJlc3M/LnBvc3RhbENvZGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3gtZGlhbG9nLWFjdGlvbnMgY29sLXNtLTEyIGNvbC1tZC02IG9mZnNldC1tZC02XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1ibG9jayBjeC1kaWFsb2ctYnV0dG9uc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnYWRkcmVzc1N1Z2dlc3Rpb24uZWRpdEFkZHJlc3MnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjeEF1dG9Gb2N1c1xuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayBjeC1kaWFsb2ctYnV0dG9uc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoc2VsZWN0ZWRBZGRyZXNzKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnYWRkcmVzc1N1Z2dlc3Rpb24uc2F2ZUFkZHJlc3MnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==