tango-app-ui-manage-billing 3.3.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,173 @@
1
+ import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i2 from "../../services/billing.service";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "tango-app-ui-shared";
9
+ import * as i5 from "@angular/common";
10
+ export class OneTimeFeeComponent {
11
+ activeModal;
12
+ BillingService;
13
+ changeDetector;
14
+ fb;
15
+ toast;
16
+ clientId;
17
+ invoiceIssue;
18
+ invoicetype = [];
19
+ invoicetypedropDown = false;
20
+ onetimefeeform;
21
+ amount = 0;
22
+ discount;
23
+ revisedAmount = 0;
24
+ moreThanTenPercent = false;
25
+ currency = '';
26
+ totalAmount = 0;
27
+ transactionvalue = "";
28
+ passEntry = new EventEmitter();
29
+ invoiceitem;
30
+ destroy$ = new Subject();
31
+ constructor(activeModal, BillingService, changeDetector, fb, toast) {
32
+ this.activeModal = activeModal;
33
+ this.BillingService = BillingService;
34
+ this.changeDetector = changeDetector;
35
+ this.fb = fb;
36
+ this.toast = toast;
37
+ }
38
+ ngOnInit() {
39
+ this.creditnote();
40
+ this.onetimefeeform = this.fb.group({
41
+ invoicetype: ['', Validators.required],
42
+ amount: ['', Validators.required],
43
+ revisedAmount: ['', Validators.required],
44
+ discount: ['', [Validators.required, Validators.max(10)]],
45
+ });
46
+ this.onetimefeeform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
47
+ if (e) {
48
+ this.amount = this.onetimefeeform.get('amount')?.value;
49
+ this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);
50
+ this.revisedAmount = e;
51
+ if (this.discount > 10 || isNaN(e) || this.discount < 0 || e < 0) {
52
+ this.moreThanTenPercent = true;
53
+ }
54
+ else {
55
+ this.moreThanTenPercent = false;
56
+ }
57
+ this.onetimefeeform.get('discount')?.setValue(this.discount, {
58
+ emitEvent: false
59
+ });
60
+ }
61
+ else {
62
+ let emptdiscount = '';
63
+ this.onetimefeeform.get('discount')?.setValue(emptdiscount, {
64
+ emitEvent: false
65
+ });
66
+ this.moreThanTenPercent = false;
67
+ }
68
+ });
69
+ this.onetimefeeform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
70
+ if (e) {
71
+ this.amount = this.onetimefeeform.get('amount')?.value;
72
+ this.revisedAmount = this.amount * (1 - e / 100);
73
+ this.revisedAmount = parseInt(this.revisedAmount.toFixed());
74
+ this.discount = e;
75
+ if (this.discount > 10 || isNaN(e) || e < 0 || this.revisedAmount < 0) {
76
+ this.moreThanTenPercent = true;
77
+ }
78
+ else {
79
+ this.moreThanTenPercent = false;
80
+ }
81
+ this.onetimefeeform.get('revisedAmount')?.setValue(this.revisedAmount, {
82
+ emitEvent: false
83
+ });
84
+ }
85
+ else {
86
+ let emptdiscount = '';
87
+ this.onetimefeeform.get('revisedAmount')?.setValue(emptdiscount, {
88
+ emitEvent: false
89
+ });
90
+ this.moreThanTenPercent = false;
91
+ }
92
+ this.changeDetector.detectChanges();
93
+ });
94
+ this.onetimefeeform.valueChanges.subscribe(() => this.calculateTotal());
95
+ }
96
+ get revisedamount() { return this.onetimefeeform.get('revisedAmount'); }
97
+ get discounts() { return this.onetimefeeform.get('discount'); }
98
+ ngOnDestroy() {
99
+ this.destroy$.next(true);
100
+ this.destroy$.complete();
101
+ }
102
+ creditnote() {
103
+ let payload = {
104
+ clientId: this.clientId
105
+ };
106
+ this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res) => {
107
+ if (res && res.code == 200) {
108
+ this.invoiceitem = res?.data;
109
+ this.invoiceIssue = this.invoiceitem[0]?.invoice;
110
+ const amount = this.invoiceitem[0]?.amount || "";
111
+ this.currency = this.invoiceitem[0]?.currency || "";
112
+ this.onetimefeeform.patchValue({
113
+ amount: amount,
114
+ discount: this.invoiceitem?.discount
115
+ });
116
+ this.changeDetector.detectChanges();
117
+ }
118
+ });
119
+ }
120
+ invoiceItem(invoicevalue) {
121
+ this.onetimefeeform.patchValue({
122
+ amount: invoicevalue.amount,
123
+ ...(invoicevalue?.discount ? { discount: invoicevalue?.discount } : { discount: '' }),
124
+ ...(invoicevalue?.revisedAmount ? { revisedAmount: invoicevalue?.revisedAmount } : { revisedAmount: '' })
125
+ });
126
+ this.invoiceIssue = invoicevalue.invoice;
127
+ this.onetimefeeform.get('invoicetype')?.setValue(this.invoiceIssue);
128
+ this.invoicetypedropDown = false;
129
+ }
130
+ invoicetypeDropdown(event) {
131
+ event.stopPropagation();
132
+ this.invoicetypedropDown = !this.invoicetypedropDown;
133
+ this.revisedAmount;
134
+ }
135
+ successcredit() {
136
+ const requestData = {
137
+ oneTimeFee: this.revisedAmount
138
+ };
139
+ this.BillingService.oneTimeFee(requestData, this.invoiceIssue).pipe(takeUntil(this.destroy$)).subscribe((res) => {
140
+ if (res && res.code == 200) {
141
+ this.activeModal.close('successcredit');
142
+ // this.toast.getPrimaryToast(res.message);
143
+ this.changeDetector.detectChanges();
144
+ }
145
+ }, (error) => {
146
+ console.error('Error submitting update:', error);
147
+ });
148
+ }
149
+ onDocumentClick(event) {
150
+ this.invoicetypedropDown = false;
151
+ }
152
+ calculateTotal() {
153
+ const amount = parseFloat(this.onetimefeeform.get('amount')?.value || '0');
154
+ const revisedAmount = parseFloat(this.onetimefeeform.get('revisedAmount')?.value || '0');
155
+ this.totalAmount = parseFloat((amount + revisedAmount).toFixed(2));
156
+ }
157
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneTimeFeeComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.BillingService }, { token: i0.ChangeDetectorRef }, { token: i3.FormBuilder }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OneTimeFeeComponent, selector: "app-one-time-fee", inputs: { clientId: "clientId", transactionvalue: "transactionvalue" }, outputs: { passEntry: "passEntry" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">\u20B9</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" formControlName=\"revisedAmount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '\u20B9' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">\u20B923,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{min-height:auto!important;max-height:170px!important;overflow:auto}.selectedinvoicetext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.selectedinvoicevalue{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:600;line-height:30px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneTimeFeeComponent, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'app-one-time-fee', template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">\u20B9</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">\u20B9</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" formControlName=\"revisedAmount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '\u20B9' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">\u20B923,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{min-height:auto!important;max-height:170px!important;overflow:auto}.selectedinvoicetext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.selectedinvoicevalue{color:var(--Gray-900, #101828);font-size:20px;font-style:normal;font-weight:600;line-height:30px}\n"] }]
163
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.BillingService }, { type: i0.ChangeDetectorRef }, { type: i3.FormBuilder }, { type: i4.ToastService }], propDecorators: { clientId: [{
164
+ type: Input
165
+ }], transactionvalue: [{
166
+ type: Input
167
+ }], passEntry: [{
168
+ type: Output
169
+ }], onDocumentClick: [{
170
+ type: HostListener,
171
+ args: ['document:click', ['$event']]
172
+ }] } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLXRpbWUtZmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9vbmUtdGltZS1mZWUvb25lLXRpbWUtZmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9vbmUtdGltZS1mZWUvb25lLXRpbWUtZmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWdDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1SCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFxQnJCO0lBQW9DO0lBQXdDO0lBQTBDO0lBQXdCO0lBcEI5SSxRQUFRLENBQUs7SUFDdEIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsR0FBc0MsRUFBRSxDQUFDO0lBQ3BELG1CQUFtQixHQUFXLEtBQUssQ0FBQztJQUNwQyxjQUFjLENBQVk7SUFDMUIsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUNuQixRQUFRLENBQU07SUFDZCxhQUFhLEdBQVcsQ0FBQyxDQUFBO0lBQ3pCLGtCQUFrQixHQUFXLEtBQUssQ0FBQztJQUNuQyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFFakIsZ0JBQWdCLEdBQVcsRUFBRSxDQUFBO0lBRTFCLFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1RCxXQUFXLENBQU07SUFFQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxZQUNTLFdBQTJCLEVBQVMsY0FBOEIsRUFBVSxjQUFpQyxFQUFTLEVBQWUsRUFBUyxLQUFrQjtRQUFoSyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBYTtJQUV6SyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2xDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2pDLGFBQWEsRUFBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BHLElBQUcsQ0FBQyxFQUFFO2dCQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLENBQUMsYUFBYSxHQUFDLENBQUMsQ0FBQztnQkFDckIsSUFBRyxJQUFJLENBQUMsUUFBUSxHQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQztvQkFDNUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztpQkFDaEM7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztpQkFDakM7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzNELFNBQVMsRUFDTCxLQUFLO2lCQUFFLENBQUMsQ0FBQzthQUNoQjtpQkFBSTtnQkFDSCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUE7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUU7b0JBQzFELFNBQVMsRUFDTCxLQUFLO2lCQUFFLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvRixJQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQztnQkFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBQztvQkFDbEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztpQkFDaEM7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztpQkFDakM7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3JFLFNBQVMsRUFDUCxLQUFLO2lCQUFFLENBQUMsQ0FBQzthQUNkO2lCQUFJO2dCQUNILElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQTtnQkFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksRUFBRTtvQkFDL0QsU0FBUyxFQUNMLEtBQUs7aUJBQUUsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7YUFDL0I7WUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXRDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxJQUFJLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxJQUFJLFNBQVMsS0FBSyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsVUFBVTtRQUNSLElBQUksT0FBTyxHQUFLO1lBQ2QsUUFBUSxFQUFDLElBQUksQ0FBQyxRQUFRO1NBQ3ZCLENBQUE7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQy9GLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO29CQUM3QixNQUFNLEVBQUUsTUFBTTtvQkFDZCxRQUFRLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRO2lCQUNwQyxDQUFDLENBQUM7Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUNuQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFnQjtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztZQUM3QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDM0IsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUM7WUFDL0UsR0FBRyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUMsYUFBYSxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxhQUFhLEVBQUMsRUFBRSxFQUFDLENBQUM7U0FDcEcsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsS0FBZ0I7UUFDbEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQ3BCLENBQUM7SUFDRCxhQUFhO1FBQ1gsTUFBTSxXQUFXLEdBQUc7WUFDbEIsVUFBVSxFQUFDLElBQUksQ0FBQyxhQUFhO1NBQzlCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDbkgsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN4QywyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDcEM7UUFBQSxDQUFDLEVBQ0YsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBR0QsZUFBZSxDQUFDLEtBQWlCO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUNELGNBQWM7UUFDWixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzt3R0F0SlUsbUJBQW1COzRGQUFuQixtQkFBbUIsMk9DYmhDLHE0SkE0RU07OzRGRC9ETyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3FNQUtuQixRQUFRO3NCQUFoQixLQUFLO2dCQVlDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFTSxTQUFTO3NCQUFsQixNQUFNO2dCQWdJUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgbGVmdCB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbGxpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmlsbGluZy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtb25lLXRpbWUtZmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb25lLXRpbWUtZmVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vb25lLXRpbWUtZmVlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT25lVGltZUZlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOmFueTtcclxuICBpbnZvaWNlSXNzdWU6IGFueTtcclxuICBpbnZvaWNldHlwZTogeyBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107IFxyXG4gIGludm9pY2V0eXBlZHJvcERvd246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIG9uZXRpbWVmZWVmb3JtOiBGb3JtR3JvdXA7XHJcbiAgYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIGRpc2NvdW50OiBhbnk7XHJcbiAgcmV2aXNlZEFtb3VudDogbnVtYmVyID0gMFxyXG4gIG1vcmVUaGFuVGVuUGVyY2VudDpib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVuY3k6IHN0cmluZyA9ICcnO1xyXG4gIHRvdGFsQW1vdW50OiBudW1iZXIgPSAwO1xyXG5cclxuQElucHV0KCkgdHJhbnNhY3Rpb252YWx1ZTogc3RyaW5nID0gXCJcIlxyXG5cclxuICBAT3V0cHV0KCkgcGFzc0VudHJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpbnZvaWNlaXRlbTogYW55O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIEJpbGxpbmdTZXJ2aWNlOiBCaWxsaW5nU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2VcclxuICApIHsgXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlZGl0bm90ZSgpO1xyXG4gICAgdGhpcy5vbmV0aW1lZmVlZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBpbnZvaWNldHlwZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgYW1vdW50OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLCBcclxuICAgICAgcmV2aXNlZEFtb3VudDpbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdICxcclxuICAgICAgZGlzY291bnQ6IFsnJyxbIFZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4KDEwKV1dLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZihlKSB7IFxyXG4gICAgICAgIHRoaXMuYW1vdW50ID0gdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Ftb3VudCcpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLmRpc2NvdW50ID0gKCh0aGlzLmFtb3VudCAtIGUpIC8gdGhpcy5hbW91bnQgKiAxMDApLnRvRml4ZWQoMik7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50PWU7XHJcbiAgICAgICAgaWYodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSB8fCB0aGlzLmRpc2NvdW50IDwgMCB8fCBlIDwgMCl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy5zZXRWYWx1ZSh0aGlzLmRpc2NvdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbGV0IGVtcHRkaXNjb3VudCA9ICcnXHJcbiAgICAgICAgdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnNldFZhbHVlKGVtcHRkaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlOyBcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgICBcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZihlKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnQgPSB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnYW1vdW50Jyk/LnZhbHVlO1xyXG4gICAgICAgIHRoaXMucmV2aXNlZEFtb3VudCA9IHRoaXMuYW1vdW50ICogKDEgLSBlIC8gMTAwKTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQgPSBwYXJzZUludCh0aGlzLnJldmlzZWRBbW91bnQudG9GaXhlZCgpKVxyXG4gICAgICAgIHRoaXMuZGlzY291bnQ9ZTtcclxuICAgICAgICBpZiAodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSB8fCBlIDwgMCB8fCB0aGlzLnJldmlzZWRBbW91bnQgPCAwKXtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gdHJ1ZTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKT8uc2V0VmFsdWUodGhpcy5yZXZpc2VkQW1vdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxldCBlbXB0ZGlzY291bnQgPSAnJ1xyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnNldFZhbHVlKGVtcHRkaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgfSlcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGN1bGF0ZVRvdGFsKCkpO1xyXG4gIH1cclxuICBnZXQgcmV2aXNlZGFtb3VudCgpIHsgcmV0dXJuIHRoaXMub25ldGltZWZlZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk7IH1cclxuICBnZXQgZGlzY291bnRzKCkgeyByZXR1cm4gdGhpcy5vbmV0aW1lZmVlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk7IH1cclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGNyZWRpdG5vdGUoKXtcclxuICAgIGxldCBwYXlsb2FkOmFueT17XHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICB0aGlzLkJpbGxpbmdTZXJ2aWNlLnBlbmRpbmdJbnZvaWNlcyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZWl0ZW0gPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlSXNzdWUgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5pbnZvaWNlO1xyXG4gICAgICAgIGNvbnN0IGFtb3VudCA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/LmFtb3VudCB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5jdXJyZW5jeSB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMub25ldGltZWZlZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBhbW91bnQ6IGFtb3VudCxcclxuICAgICAgICAgIGRpc2NvdW50OnRoaXMuaW52b2ljZWl0ZW0/LmRpc2NvdW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnZvaWNlSXRlbShpbnZvaWNldmFsdWU6YW55KXtcclxuICAgIHRoaXMub25ldGltZWZlZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGFtb3VudDogaW52b2ljZXZhbHVlLmFtb3VudCxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8uZGlzY291bnQgPyB7ZGlzY291bnQ6aW52b2ljZXZhbHVlPy5kaXNjb3VudH0gOiB7ZGlzY291bnQ6Jyd9KSxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudCA/IHtyZXZpc2VkQW1vdW50Omludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudH0gOiB7cmV2aXNlZEFtb3VudDonJ30pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW52b2ljZUlzc3VlID0gaW52b2ljZXZhbHVlLmludm9pY2U7XHJcbiAgICB0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnaW52b2ljZXR5cGUnKT8uc2V0VmFsdWUodGhpcy5pbnZvaWNlSXNzdWUpXHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbiAgaW52b2ljZXR5cGVEcm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gIXRoaXMuaW52b2ljZXR5cGVkcm9wRG93bjtcclxuICAgIHRoaXMucmV2aXNlZEFtb3VudCAgIFxyXG4gIH1cclxuICBzdWNjZXNzY3JlZGl0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIG9uZVRpbWVGZWU6dGhpcy5yZXZpc2VkQW1vdW50XHJcbiAgICB9O1xyXG4gICAgdGhpcy5CaWxsaW5nU2VydmljZS5vbmVUaW1lRmVlKHJlcXVlc3REYXRhLHRoaXMuaW52b2ljZUlzc3VlKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzY3JlZGl0Jyk7XHJcbiAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH19LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG4gIGNhbGN1bGF0ZVRvdGFsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdCh0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgnYW1vdW50Jyk/LnZhbHVlIHx8ICcwJyk7XHJcbiAgICBjb25zdCByZXZpc2VkQW1vdW50ID0gcGFyc2VGbG9hdCh0aGlzLm9uZXRpbWVmZWVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy52YWx1ZSB8fCAnMCcpOyBcclxuICAgIHRoaXMudG90YWxBbW91bnQgPSBwYXJzZUZsb2F0KChhbW91bnQgKyByZXZpc2VkQW1vdW50KS50b0ZpeGVkKDIpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTUgcHgtNlwiPlxyXG4gICAgICAgIDwhLS0gPGRpdj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3BsdXMtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmcgbXQtNCBtcy0xXCI+QWRkIE9uZSBUaW1lIEZlZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00XCI+XHJcbiAgICAgICAgICAgIFlvdSBoYXZlIHRoZSBmbGV4aWJpbGl0eSB0byBzZWxlY3QgYSBtb250aCBpbiB3aGljaCB0aGUgYnJhbmQgY2FuIG1ha2UgY3JlZGl0IHBheW1lbnRzLlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbWItOFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwib25ldGltZWZlZWZvcm1cIiBjbGFzcz1cImZvcm0gZnYtcGx1Z2lucy1ib290c3RyYXA1IGZ2LXBsdWdpbnMtZnJhbWV3b3JrXCIgYWN0aW9uPVwiI1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNldHlwZVwiIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItMlwiPkludm9pY2UgSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdFwiIGlkPVwiaW52b2ljZXR5cGVcIiAoY2xpY2spPVwiaW52b2ljZXR5cGVEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEZWZhdWx0IHNlbGVjdCBleGFtcGxlXCI+e3tpbnZvaWNlSXNzdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW52b2ljZXR5cGVkcm9wRG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBpbnZvaWNlaWRzZWxlY3QgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xIGludm9pY2VEcm9wRG93blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGludm9pY2VpdGVtXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5pbnZvaWNlSXNzdWUgPT09IGl0ZW0/Lmludm9pY2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwiaW52b2ljZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtPy5pbnZvaWNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwiYW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMiBcIj5DdXJyZW50IEludm9pY2UgQW1vdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImRvbGxhci1zaWduIGFtb3VudFwiPuKCuTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3VycmVuY3kgPT09ICdpbnInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPuKCuTwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbmN5ID09PSAnZG9sbGFyJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj4kPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYW1vdW50XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgY2xhc3M9XCJuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWQgYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cInJldmlzZWRBbW91bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yXCI+T25lIFRpbWUgRmVlIChJbnN0YWxsYXRpb24pIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbmN5ID09PSAnaW5yJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj7igrk8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVuY3kgPT09ICdkb2xsYXInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPiQ8L3NwYW4+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmV2aXNlZEFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cIiFtb3JlVGhhblRlblBlcmNlbnRcIiAgY2xhc3M9XCJoZWFkaW5ndGV4dCBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRpbnZvaWNldGV4dCBtZS0yXCI+U2VsZWN0ZWQgSW52b2ljZSBBbW91bnQgKyBPbmUgVGltZSBGZWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbGVjdGVkaW52b2ljZXZhbHVlXCI+e3tjdXJyZW5jeSA9PT0gJ2lucicgPyAn4oK5JyA6ICckJ319e3t0b3RhbEFtb3VudC50b0ZpeGVkKDIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkaW52b2ljZXRleHQgbWUtMlwiPlNlbGVjdGVkIEludm9pY2UgQW1vdW50ICsgT25lIFRpbWUgRmVlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZGludm9pY2V2YWx1ZVwiPuKCuTIzLDAwMDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWNjZXNzY3JlZGl0KClcIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgbmctc3Rhci1pbnNlcnRlZCB3LTUwXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+QXBwbHkgPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19