@firestitch/file
Advanced tools
Comparing version 12.10.8 to 12.10.9
@@ -10,3 +10,3 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; | ||
FsFileDragoverMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileDragoverMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); | ||
FsFileDragoverMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFileDragoverMessageComponent, selector: "fs-file-dragover-message", ngImport: i0, template: "<div class=\"dragover-message\">\n <fs-file-bouncing-icon icon=\"cloud_upload\"></fs-file-bouncing-icon>\n <div class=\"content\">\n Drop file to instantly upload them\n </div>\n</div>\n", styles: [":host .dragover-message{position:fixed;bottom:10px;left:50%;transform:translate(-50%);flex-direction:column;align-items:center}:host .dragover-message .content{color:#fff;padding:16px 20px;border-radius:2px}\n"], components: [{ type: i1.FsFileBouncingIconComponent, selector: "fs-file-bouncing-icon", inputs: ["icon", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); | ||
FsFileDragoverMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FsFileDragoverMessageComponent, selector: "fs-file-dragover-message", ngImport: i0, template: "<div class=\"dragover-message\">\n <fs-file-bouncing-icon icon=\"upload_file\"></fs-file-bouncing-icon>\n <div class=\"content\">\n Drop file to instantly upload them\n </div>\n</div>\n", styles: [":host .dragover-message{position:fixed;bottom:10px;left:50%;transform:translate(-50%);flex-direction:column;align-items:center}:host .dragover-message .content{color:#fff;padding:16px 20px;border-radius:2px}\n"], components: [{ type: i1.FsFileBouncingIconComponent, selector: "fs-file-bouncing-icon", inputs: ["icon", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFileDragoverMessageComponent, decorators: [{ | ||
@@ -21,2 +21,2 @@ type: Component, | ||
}], ctorParameters: function () { return []; } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UvZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UvZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVMzRSxNQUFNLE9BQU8sOEJBQThCO0lBRXpDLGdCQUFnQixDQUFDO0lBRVYsUUFBUTtJQUVmLENBQUM7OzRIQU5VLDhCQUE4QjtnSEFBOUIsOEJBQThCLGdFQ1QzQyxrTUFNQTs0RkRHYSw4QkFBOEI7a0JBTjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLDJDQUEyQztvQkFDeEQsU0FBUyxFQUFFLENBQUMsMkNBQTJDLENBQUM7b0JBQ3hELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbGUtZHJhZ292ZXItbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsZURyYWdvdmVyTWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJhZ292ZXItbWVzc2FnZVwiPlxuICA8ZnMtZmlsZS1ib3VuY2luZy1pY29uIGljb249XCJjbG91ZF91cGxvYWRcIj48L2ZzLWZpbGUtYm91bmNpbmctaWNvbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICBEcm9wIGZpbGUgdG8gaW5zdGFudGx5IHVwbG9hZCB0aGVtXG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UvZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UvZnMtZmlsZS1kcmFnb3Zlci1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVMzRSxNQUFNLE9BQU8sOEJBQThCO0lBRXpDLGdCQUFnQixDQUFDO0lBRVYsUUFBUTtJQUVmLENBQUM7OzRIQU5VLDhCQUE4QjtnSEFBOUIsOEJBQThCLGdFQ1QzQyxpTUFNQTs0RkRHYSw4QkFBOEI7a0JBTjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLDJDQUEyQztvQkFDeEQsU0FBUyxFQUFFLENBQUMsMkNBQTJDLENBQUM7b0JBQ3hELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbGUtZHJhZ292ZXItbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcy1maWxlLWRyYWdvdmVyLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsZURyYWdvdmVyTWVzc2FnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJhZ292ZXItbWVzc2FnZVwiPlxuICA8ZnMtZmlsZS1ib3VuY2luZy1pY29uIGljb249XCJ1cGxvYWRfZmlsZVwiPjwvZnMtZmlsZS1ib3VuY2luZy1pY29uPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIERyb3AgZmlsZSB0byBpbnN0YW50bHkgdXBsb2FkIHRoZW1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ== |
@@ -157,3 +157,3 @@ import { EventEmitter, Component, Input, Output, ViewChild, Inject, Optional, NgZone, ChangeDetectionStrategy, forwardRef, ChangeDetectorRef, QueryList, ContentChildren, TemplateRef, ContentChild } from '@angular/core'; | ||
} | ||
], queries: [{ propertyName: "filePickerSelectTemplate", first: true, predicate: FsFilePickerSelectDirective, descendants: true, read: TemplateRef }, { propertyName: "labels", predicate: FsFileLabelDirective }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fs-label-field\n class=\"fs-form-wrapper\"\n [ngClass]=\"{ 'percent-preview': previewPercent }\">\n <ng-container *ngIf=\"label; else labelContent\">\n <fs-label class=\"fs-form-label\">{{label}}</fs-label>\n </ng-container>\n <ng-template #labelContent>\n <fs-label *ngIf=\"labels.length\" class=\"fs-form-label\">\n <ng-content select=\"[fsFileLabel]\"></ng-content>\n </fs-label>\n </ng-template>\n <fs-file\n [accept]=\"accept\"\n (select)=\"selectFile($event)\"\n [imageWidth]=\"imageWidth\"\n [imageHeight]=\"imageHeight\"\n [imageQuality]=\"imageQuality\"\n [disabled]=\"disabled\">\n <div\n class=\"wrap\"\n [style.width]=\"previewWidth\"\n [style.height]=\"previewHeight\">\n <fs-file-preview\n class=\"preview\"\n *ngIf=\"file; else preview\"\n (remove)=\"removeFile()\"\n [file]=\"file\"\n [showFilename]=\"showFilename\"\n [previewHeight]=\"null\"\n [previewWidth]=\"null\">\n <ng-template\n fs-file-preview-action\n placement=\"top-right\"\n action=\"remove\"\n tooltip=\"Remove\"\n *ngIf=\"allowRemove\"\n (click)=\"actionClick($event)\">\n <mat-icon>close</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-right\"\n tooltip=\"Reupload\"\n *ngIf=\"allowReupload\">\n <mat-icon>cloud_upload</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-left\"\n action=\"download\"\n tooltip=\"Download\"\n [hide]=\"!(allowDownload && ((download.observers.length && file) || file.url))\"\n (click)=\"downloadClicked($event)\">\n <a\n [href]=\"file.url\"\n target=\"_blank\"\n tabindex=\"-1\"\n class=\"download\">\n <mat-icon>cloud_download</mat-icon>\n </a>\n </ng-template>\n </fs-file-preview>\n\n <ng-template #preview>\n <ng-container *ngIf=\"filePickerSelectTemplate\">\n <ng-container [ngTemplateOutlet]=\"filePickerSelectTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filePickerSelectTemplate\">\n <div class=\"select\">\n <mat-icon>cloud_upload</mat-icon>\n <div class=\"instruction\">{{instruction}}</div>\n <div class=\"mat-raised-button\">Upload</div>\n </div>\n </ng-container>\n </ng-template>\n </div>\n </fs-file>\n <fs-label-message class=\"fs-form-message\">\n <span class=\"fs-form-hint\">\n <ng-content select=\"[fsFileHint]\"></ng-content>\n <ng-content select=\"[fsFileMessageLabel]\"></ng-content>\n </span>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host .wrap{border:1px #efefef solid;border-radius:3px}:host .wrap:after{border-width:3px;border-style:dashed;border-radius:3px}:host.dragover .wrap{border-color:transparent}:host.dragover .wrap:after{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}:host.dragover .wrap .select{border:none}:host.dragover .select button{display:none}:host.dragover .select .mat-icon{color:#07a8e6}:host ::ng-deep .percent-preview fs-file .file-label,:host ::ng-deep .percent-preview fs-file-preview{display:block}:host ::ng-deep fs-file .file-label{position:relative}:host ::ng-deep fs-file-preview{border:none;height:100%;width:100%}:host ::ng-deep fs-file-preview .preview-container{order:none;display:flex;justify-content:center;align-items:center;flex-grow:1;height:100%}:host .download{color:inherit}:host .select{text-align:center;width:100%;height:100%;vertical-align:middle;padding:0 10px;justify-content:center;flex-direction:column;box-sizing:border-box;display:flex;align-items:center}:host .select mat-icon{transform:scale(1.8);color:#ddd}:host .instruction{font-size:75%;padding:12px 0;line-height:normal}\n"], components: [{ type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "clicked", "declined"] }, { type: i4.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "index", "setActions", "setActionsTemplate"], outputs: ["remove"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.FsLabelMessageComponent, selector: "fs-label-message" }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.FsFilePreviewActionDirective, selector: "[fs-file-preview-action]", inputs: ["placement", "tooltip", "action", "hide", "for-types"], outputs: ["click"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); | ||
], queries: [{ propertyName: "filePickerSelectTemplate", first: true, predicate: FsFilePickerSelectDirective, descendants: true, read: TemplateRef }, { propertyName: "labels", predicate: FsFileLabelDirective }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fs-label-field\n class=\"fs-form-wrapper\"\n [ngClass]=\"{ 'percent-preview': previewPercent }\">\n <ng-container *ngIf=\"label; else labelContent\">\n <fs-label class=\"fs-form-label\">{{label}}</fs-label>\n </ng-container>\n <ng-template #labelContent>\n <fs-label *ngIf=\"labels.length\" class=\"fs-form-label\">\n <ng-content select=\"[fsFileLabel]\"></ng-content>\n </fs-label>\n </ng-template>\n <fs-file\n [accept]=\"accept\"\n (select)=\"selectFile($event)\"\n [imageWidth]=\"imageWidth\"\n [imageHeight]=\"imageHeight\"\n [imageQuality]=\"imageQuality\"\n [disabled]=\"disabled\">\n <div\n class=\"wrap\"\n [style.width]=\"previewWidth\"\n [style.height]=\"previewHeight\">\n <fs-file-preview\n class=\"preview\"\n *ngIf=\"file; else preview\"\n (remove)=\"removeFile()\"\n [file]=\"file\"\n [showFilename]=\"showFilename\"\n [previewHeight]=\"null\"\n [previewWidth]=\"null\">\n <ng-template\n fs-file-preview-action\n placement=\"top-right\"\n action=\"remove\"\n tooltip=\"Remove\"\n *ngIf=\"allowRemove\"\n (click)=\"actionClick($event)\">\n <mat-icon>close</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-right\"\n tooltip=\"Reupload\"\n *ngIf=\"allowReupload\">\n <mat-icon>upload_file</mat-icon>\n </ng-template>\n <ng-template\n fs-file-preview-action\n placement=\"bottom-left\"\n action=\"download\"\n tooltip=\"Download\"\n [hide]=\"!(allowDownload && ((download.observers.length && file) || file.url))\"\n (click)=\"downloadClicked($event)\">\n <a\n [href]=\"file.url\"\n target=\"_blank\"\n tabindex=\"-1\"\n class=\"download\">\n <mat-icon>download</mat-icon>\n </a>\n </ng-template>\n </fs-file-preview>\n\n <ng-template #preview>\n <ng-container *ngIf=\"filePickerSelectTemplate\">\n <ng-container [ngTemplateOutlet]=\"filePickerSelectTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!filePickerSelectTemplate\">\n <div class=\"select\">\n <mat-icon>upload_file</mat-icon>\n <div class=\"instruction\">{{instruction}}</div>\n <div class=\"mat-raised-button\">Upload</div>\n </div>\n </ng-container>\n </ng-template>\n </div>\n </fs-file>\n <fs-label-message class=\"fs-form-message\">\n <span class=\"fs-form-hint\">\n <ng-content select=\"[fsFileHint]\"></ng-content>\n <ng-content select=\"[fsFileMessageLabel]\"></ng-content>\n </span>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host .wrap{border:1px #efefef solid;border-radius:3px}:host .wrap:after{border-width:3px;border-style:dashed;border-radius:3px}:host.dragover .wrap{border-color:transparent}:host.dragover .wrap:after{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}:host.dragover .wrap .select{border:none}:host.dragover .select button{display:none}:host.dragover .select .mat-icon{color:#07a8e6}:host ::ng-deep .percent-preview fs-file .file-label,:host ::ng-deep .percent-preview fs-file-preview{display:block}:host ::ng-deep fs-file .file-label{position:relative}:host ::ng-deep fs-file-preview{border:none;height:100%;width:100%}:host ::ng-deep fs-file-preview .preview-container{order:none;display:flex;justify-content:center;align-items:center;flex-grow:1;height:100%}:host .download{color:inherit}:host .select{text-align:center;width:100%;height:100%;vertical-align:middle;padding:0 10px;justify-content:center;flex-direction:column;box-sizing:border-box;display:flex;align-items:center}:host .select mat-icon{transform:scale(1.8);color:#ddd}:host .instruction{font-size:75%;padding:12px 0;line-height:normal}\n"], components: [{ type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "clicked", "declined"] }, { type: i4.FsFilePreviewComponent, selector: "fs-file-preview", inputs: ["showFilename", "previewWidth", "previewHeight", "file", "index", "setActions", "setActionsTemplate"], outputs: ["remove"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.FsLabelMessageComponent, selector: "fs-label-message" }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.FsFilePreviewActionDirective, selector: "[fs-file-preview-action]", inputs: ["placement", "tooltip", "action", "hide", "for-types"], outputs: ["click"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FsFilePickerComponent, decorators: [{ | ||
@@ -234,2 +234,2 @@ type: Component, | ||
}] } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZzLWZpbGUtcGlja2VyL2ZzLWZpbGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXBpY2tlci9mcy1maWxlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUVSLE1BQU0sRUFDTix1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFFWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5RCxhQUFhLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0ksT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFB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LE1BQU07MkJBQUMscUJBQXFCOzhIQXJGcEMsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVc7Z0JBSWYsTUFBTTtzQkFEWixlQUFlO3VCQUFDLG9CQUFvQjtnQkFJOUIsd0JBQXdCO3NCQUQ5QixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHaEQsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFWSxHQUFHO3NCQUFwQixLQUFLO3VCQUFDLEtBQUs7Z0JBSU8sSUFBSTtzQkFBdEIsS0FBSzt1QkFBQyxNQUFNO2dCQVdOLE1BQU07c0JBRFosS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQVVLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssYUFBYTtzQkFEdkIsS0FBSztnQkFTVyxNQUFNO3NCQUF0QixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIE9uSW5pdCxcbiAgTmdab25lLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgZm9yd2FyZFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBUZW1wbGF0ZVJlZixcbiAgT25EZXN0cm95LFxuICBDb250ZW50Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGZyb20sIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNGaWxlTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2ZzLWZpbGUtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRmlsZURyYWdCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZnMtZmlsZS1kcmFnLWJhc2UvZnMtZmlsZS1kcmFnLWJhc2UnO1xuaW1wb3J0IHsgSW5wdXRQcm9jZXNzb3IgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9mcy1maWxlJztcbmltcG9ydCB7IENvcmRvdmFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29yZG92YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZTX0ZJTEVfTU9EVUxFX0NPTkZJRyB9IGZyb20gJy4uLy4uL2ZzLWZpbGUucHJvdmlkZXJzJztcbmltcG9ydCB7IEZzRmlsZVBpY2tlclNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICdmcy1maWxlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmcy1maWxlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZzRmlsZVBpY2tlckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcbiAgICB1c2VFeGlzdGluZzogRnNGaWxlUGlja2VyQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbiAgXSwgIFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBGc0ZpbGVEcmFnQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFzeW5jVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIFxuICBwdWJsaWMgZmlsZUlucHV0OiBhbnk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGc0ZpbGVMYWJlbERpcmVjdGl2ZSlcbiAgcHVibGljIGxhYmVsczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNGaWxlUGlja2VyU2VsZWN0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHB1YmxpYyBmaWxlUGlja2VyU2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCkgcHVibGljIG1pbldpZHRoID0gMDtcbiAgQElucHV0KCkgcHVibGljIG1pbkhlaWdodCA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVdpZHRoO1xuICBASW5wdXQoKSBwdWJsaWMgaW1hZ2VIZWlnaHQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVF1YWxpdHk7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDtcbiAgQElucHV0KCkgcHVibGljIHNob3dGaWxlbmFtZSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd0Rvd25sb2FkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd1JldXBsb2FkID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGFsbG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgQElucHV0KCd1cmwnKSBzZXQgdXJsKHVybCkge1xuICAgIHRoaXMuZmlsZSA9IHVybCA/IG5ldyBGc0ZpbGUodXJsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoJ2ZpbGUnKSBzZXQgZmlsZShmaWxlKSB7XG4gICAgaWYoZmlsZSBpbnN0YW5jZW9mIEZzRmlsZSkge1xuICAgICAgdGhpcy5fZmlsZSA9IGZpbGU7XG4gICAgfSBlbHNlIGlmKGZpbGUpIHtcbiAgICAgIHRoaXMuX2ZpbGUgPSBuZXcgRnNGaWxlKGZpbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9maWxlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXB0OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgXG4gIHB1YmxpYyBnZXQgZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcHJldmlld1dpZHRoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9wcmV2aWV3V2lkdGggPSBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSA/IGAke3ZhbHVlfXB4YCA6IHZhbHVlPy50b1N0cmluZygpIHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBwcmV2aWV3V2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpZXdXaWR0aDtcbiAgfVxuICBcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwcmV2aWV3SGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9wcmV2aWV3SGVpZ2h0ID0gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiB2YWx1ZT8udG9TdHJpbmcoKSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlld0hlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld0hlaWdodDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIGRvd25sb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxGc0ZpbGU+KCk7XG5cbiAgcHVibGljIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbik6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuKTogdm9pZCB7IHRoaXMub25Ub3VjaCA9IGZuOyB9XG4gIHB1YmxpYyBpbnB1dFByb2Nlc3NvciA9IG51bGw7XG4gIHB1YmxpYyBpbnN0cnVjdGlvbiA9ICdEcmFnICYgRHJvcCB5b3VyIGZpbGUgb3IgdXNlIHRoZSBidXR0b24gYmVsb3cnO1xuICBwdWJsaWMgX2ZpbGU6IEZzRmlsZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuOyAgXG4gIHByaXZhdGUgX3ByZXZpZXdXaWR0aCA9ICcxNTBweCc7XG4gIHByaXZhdGUgX3ByZXZpZXdIZWlnaHQgPSAnMTUwcHgnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZTX0ZJTEVfTU9EVUxFX0NPTkZJRykgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnLFxuICAgIHByaXZhdGUgX2NvcmRvdmFTZXJ2aWNlOiBDb3Jkb3ZhU2VydmljZSxcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbnB1dFByb2Nlc3NvciA9IG5ldyBJbnB1dFByb2Nlc3NvcihfY29yZG92YVNlcnZpY2UsIF9uZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl9tb2R1bGVDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmFsbG93RG93bmxvYWQgPT09IHZvaWQgMCkge1xuICAgICAgICB0aGlzLmFsbG93RG93bmxvYWQgPSB0aGlzLl9tb2R1bGVDb25maWcuYWxsb3dEb3dubG9hZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hbGxvd1JlbW92ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRoaXMuYWxsb3dSZW1vdmUgPSB0aGlzLl9tb2R1bGVDb25maWcuYWxsb3dSZW1vdmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCAgbnVsbCB7IFxuICAgIGlmKHRoaXMuZmlsZT8udHlwZUltYWdlICYmICh0aGlzLm1pbldpZHRoIHx8IHRoaXMubWluSGVpZ2h0KSkge1xuICAgICAgLy8gaWYodGhpcy5maWxlLmltYWdlV2lkdGggPCB0aGlzLm1pbldpZHRoKSB7XG4gICAgICAvLyAgIHJldHVybiB7IG1pbldpZHRoOiBgTWluaW11bSB3aWR0aCAke3RoaXMubWluV2lkdGh9cHhgIH07XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIGlmKHRoaXMuZmlsZS5pbWFnZUhlaWdodCA8IHRoaXMubWluSGVpZ2h0KSB7XG4gICAgICAvLyAgIHJldHVybiB7IG1pbldpZHRoOiBgTWluaW11bSBoZWlnaHQgJHt0aGlzLm1pbkhlaWdodH1weGAgfTtcbiAgICAgIC8vIH0gICAgICBcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSBcblxuICBwdWJsaWMgZ2V0IHByZXZpZXdQZXJjZW50KCkge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5fcHJldmlld1dpZHRoKS5tYXRjaCgvJS8pO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUoZmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RmlsZShmc0ZpbGU6IEZzRmlsZSkge1xuICAgIG9mKHRydWUpICAgIFxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluV2lkdGggfHwgdGhpcy5taW5IZWlnaHQgPyBmcm9tKGZzRmlsZS5pbWFnZUluZm8pIDogb2YodHJ1ZSk7XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWxlID0gZnNGaWxlO1xuICAgICAgdGhpcy5zZWxlY3QuZW1pdChmc0ZpbGUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShmc0ZpbGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gdm9pZCAwO1xuICAgIHRoaXMucmVtb3ZlLmVtaXQodGhpcy5maWxlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICB9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGV2ZW50OiB7IGV2ZW50OiBQb2ludGVyRXZlbnQgfSkge1xuICAgIGV2ZW50LmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkQ2xpY2tlZChldmVudDogeyBldmVudDogUG9pbnRlckV2ZW50IH0pIHtcbiAgICBldmVudC5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmKHRoaXMuZG93bmxvYWQub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgZXZlbnQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuZG93bmxvYWQuZW1pdCh0aGlzLmZpbGUpO1xuICAgIH1cbiAgfVxuICBcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOdW1lcmljKHZhbHVlKSB7XG4gICAgcmV0dXJuIC9eLT9cXGQrJC8udGVzdCh2YWx1ZSk7XG4gIH1cblxufVxuIiwiPGZzLWxhYmVsLWZpZWxkXG4gICAgY2xhc3M9XCJmcy1mb3JtLXdyYXBwZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3BlcmNlbnQtcHJldmlldyc6IHByZXZpZXdQZXJjZW50IH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsOyBlbHNlIGxhYmVsQ29udGVudFwiPlxuICAgIDxmcy1sYWJlbCBjbGFzcz1cImZzLWZvcm0tbGFiZWxcIj57e2xhYmVsfX08L2ZzLWxhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG4gICAgPGZzLWxhYmVsICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiZnMtZm9ybS1sYWJlbFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZzRmlsZUxhYmVsXVwiPjwvbmctY29udGVudD5cbiAgICA8L2ZzLWxhYmVsPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZnMtZmlsZVxuICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgKHNlbGVjdCk9XCJzZWxlY3RGaWxlKCRldmVudClcIlxuICAgICAgW2ltYWdlV2lkdGhdPVwiaW1hZ2VXaWR0aFwiXG4gICAgICBbaW1hZ2VIZWlnaHRdPVwiaW1hZ2VIZWlnaHRcIlxuICAgICAgW2ltYWdlUXVhbGl0eV09XCJpbWFnZVF1YWxpdHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIndyYXBcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwicHJldmlld1dpZHRoXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJwcmV2aWV3SGVpZ2h0XCI+XG4gICAgICA8ZnMtZmlsZS1wcmV2aWV3XG4gICAgICAgICAgY2xhc3M9XCJwcmV2aWV3XCJcbiAgICAgICAgICAqbmdJZj1cImZpbGU7IGVsc2UgcHJldmlld1wiXG4gICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVGaWxlKClcIlxuICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICAgIFtzaG93RmlsZW5hbWVdPVwic2hvd0ZpbGVuYW1lXCJcbiAgICAgICAgICBbcHJldmlld0hlaWdodF09XCJudWxsXCJcbiAgICAgICAgICBbcHJldmlld1dpZHRoXT1cIm51bGxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBmcy1maWxlLXByZXZpZXctYWN0aW9uXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3AtcmlnaHRcIlxuICAgICAgICAgICAgYWN0aW9uPVwicmVtb3ZlXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgKm5nSWY9XCJhbGxvd1JlbW92ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgZnMtZmlsZS1wcmV2aWV3LWFjdGlvblxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJSZXVwbG9hZFwiXG4gICAgICAgICAgICAqbmdJZj1cImFsbG93UmV1cGxvYWRcIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBmcy1maWxlLXByZXZpZXctYWN0aW9uXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICBhY3Rpb249XCJkb3dubG9hZFwiXG4gICAgICAgICAgICB0b29sdGlwPVwiRG93bmxvYWRcIlxuICAgICAgICAgICAgW2hpZGVdPVwiIShhbGxvd0Rvd25sb2FkICYmICgoZG93bmxvYWQub2JzZXJ2ZXJzLmxlbmd0aCAmJiBmaWxlKSB8fCBmaWxlLnVybCkpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZENsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtocmVmXT1cImZpbGUudXJsXCJcbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZG93bmxvYWRcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG91ZF9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9mcy1maWxlLXByZXZpZXc+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlldz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbGVQaWNrZXJTZWxlY3RUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsZVBpY2tlclNlbGVjdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbGVQaWNrZXJTZWxlY3RUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uXCI+e3tpbnN0cnVjdGlvbn19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LXJhaXNlZC1idXR0b25cIj5VcGxvYWQ8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2ZzLWZpbGU+XG4gIDxmcy1sYWJlbC1tZXNzYWdlIGNsYXNzPVwiZnMtZm9ybS1tZXNzYWdlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmcy1mb3JtLWhpbnRcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmc0ZpbGVIaW50XVwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmc0ZpbGVNZXNzYWdlTGFiZWxdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgPC9mcy1sYWJlbC1tZXNzYWdlPlxuPC9mcy1sYWJlbC1maWVsZD5cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZzLWZpbGUtcGlja2VyL2ZzLWZpbGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mcy1maWxlLXBpY2tlci9mcy1maWxlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUVSLE1BQU0sRUFDTix1QkFBdUIsRUFDdkIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFFWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5RCxhQUFhLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0ksT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFB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LE1BQU07MkJBQUMscUJBQXFCOzhIQXJGcEMsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVc7Z0JBSWYsTUFBTTtzQkFEWixlQUFlO3VCQUFDLG9CQUFvQjtnQkFJOUIsd0JBQXdCO3NCQUQ5QixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHaEQsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFWSxHQUFHO3NCQUFwQixLQUFLO3VCQUFDLEtBQUs7Z0JBSU8sSUFBSTtzQkFBdEIsS0FBSzt1QkFBQyxNQUFNO2dCQVdOLE1BQU07c0JBRFosS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQVVLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssYUFBYTtzQkFEdkIsS0FBSztnQkFTVyxNQUFNO3NCQUF0QixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIE9uSW5pdCxcbiAgTmdab25lLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgZm9yd2FyZFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBUZW1wbGF0ZVJlZixcbiAgT25EZXN0cm95LFxuICBDb250ZW50Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGZyb20sIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNGaWxlTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2ZzLWZpbGUtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRmlsZURyYWdCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZnMtZmlsZS1kcmFnLWJhc2UvZnMtZmlsZS1kcmFnLWJhc2UnO1xuaW1wb3J0IHsgSW5wdXRQcm9jZXNzb3IgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IEZzRmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9mcy1maWxlJztcbmltcG9ydCB7IENvcmRvdmFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29yZG92YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZTX0ZJTEVfTU9EVUxFX0NPTkZJRyB9IGZyb20gJy4uLy4uL2ZzLWZpbGUucHJvdmlkZXJzJztcbmltcG9ydCB7IEZzRmlsZVBpY2tlclNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICdmcy1maWxlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmcy1maWxlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZzRmlsZVBpY2tlckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLCBcbiAgICB1c2VFeGlzdGluZzogRnNGaWxlUGlja2VyQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbiAgXSwgIFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBGc0ZpbGVEcmFnQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFzeW5jVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIFxuICBwdWJsaWMgZmlsZUlucHV0OiBhbnk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGc0ZpbGVMYWJlbERpcmVjdGl2ZSlcbiAgcHVibGljIGxhYmVsczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNGaWxlUGlja2VyU2VsZWN0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHB1YmxpYyBmaWxlUGlja2VyU2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCkgcHVibGljIG1pbldpZHRoID0gMDtcbiAgQElucHV0KCkgcHVibGljIG1pbkhlaWdodCA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVdpZHRoO1xuICBASW5wdXQoKSBwdWJsaWMgaW1hZ2VIZWlnaHQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVF1YWxpdHk7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDtcbiAgQElucHV0KCkgcHVibGljIHNob3dGaWxlbmFtZSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd0Rvd25sb2FkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd1JldXBsb2FkID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGFsbG93UmVtb3ZlID0gZmFsc2U7XG5cbiAgQElucHV0KCd1cmwnKSBzZXQgdXJsKHVybCkge1xuICAgIHRoaXMuZmlsZSA9IHVybCA/IG5ldyBGc0ZpbGUodXJsKSA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoJ2ZpbGUnKSBzZXQgZmlsZShmaWxlKSB7XG4gICAgaWYoZmlsZSBpbnN0YW5jZW9mIEZzRmlsZSkge1xuICAgICAgdGhpcy5fZmlsZSA9IGZpbGU7XG4gICAgfSBlbHNlIGlmKGZpbGUpIHtcbiAgICAgIHRoaXMuX2ZpbGUgPSBuZXcgRnNGaWxlKGZpbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9maWxlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWNjZXB0OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgXG4gIHB1YmxpYyBnZXQgZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcHJldmlld1dpZHRoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9wcmV2aWV3V2lkdGggPSBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSA/IGAke3ZhbHVlfXB4YCA6IHZhbHVlPy50b1N0cmluZygpIHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBwcmV2aWV3V2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpZXdXaWR0aDtcbiAgfVxuICBcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwcmV2aWV3SGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9wcmV2aWV3SGVpZ2h0ID0gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiB2YWx1ZT8udG9TdHJpbmcoKSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlld0hlaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld0hlaWdodDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIGRvd25sb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxGc0ZpbGU+KCk7XG5cbiAgcHVibGljIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbik6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm47IH1cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuKTogdm9pZCB7IHRoaXMub25Ub3VjaCA9IGZuOyB9XG4gIHB1YmxpYyBpbnB1dFByb2Nlc3NvciA9IG51bGw7XG4gIHB1YmxpYyBpbnN0cnVjdGlvbiA9ICdEcmFnICYgRHJvcCB5b3VyIGZpbGUgb3IgdXNlIHRoZSBidXR0b24gYmVsb3cnO1xuICBwdWJsaWMgX2ZpbGU6IEZzRmlsZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuOyAgXG4gIHByaXZhdGUgX3ByZXZpZXdXaWR0aCA9ICcxNTBweCc7XG4gIHByaXZhdGUgX3ByZXZpZXdIZWlnaHQgPSAnMTUwcHgnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZTX0ZJTEVfTU9EVUxFX0NPTkZJRykgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnLFxuICAgIHByaXZhdGUgX2NvcmRvdmFTZXJ2aWNlOiBDb3Jkb3ZhU2VydmljZSxcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbnB1dFByb2Nlc3NvciA9IG5ldyBJbnB1dFByb2Nlc3NvcihfY29yZG92YVNlcnZpY2UsIF9uZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl9tb2R1bGVDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmFsbG93RG93bmxvYWQgPT09IHZvaWQgMCkge1xuICAgICAgICB0aGlzLmFsbG93RG93bmxvYWQgPSB0aGlzLl9tb2R1bGVDb25maWcuYWxsb3dEb3dubG9hZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hbGxvd1JlbW92ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRoaXMuYWxsb3dSZW1vdmUgPSB0aGlzLl9tb2R1bGVDb25maWcuYWxsb3dSZW1vdmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCAgbnVsbCB7IFxuICAgIGlmKHRoaXMuZmlsZT8udHlwZUltYWdlICYmICh0aGlzLm1pbldpZHRoIHx8IHRoaXMubWluSGVpZ2h0KSkge1xuICAgICAgLy8gaWYodGhpcy5maWxlLmltYWdlV2lkdGggPCB0aGlzLm1pbldpZHRoKSB7XG4gICAgICAvLyAgIHJldHVybiB7IG1pbldpZHRoOiBgTWluaW11bSB3aWR0aCAke3RoaXMubWluV2lkdGh9cHhgIH07XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIGlmKHRoaXMuZmlsZS5pbWFnZUhlaWdodCA8IHRoaXMubWluSGVpZ2h0KSB7XG4gICAgICAvLyAgIHJldHVybiB7IG1pbldpZHRoOiBgTWluaW11bSBoZWlnaHQgJHt0aGlzLm1pbkhlaWdodH1weGAgfTtcbiAgICAgIC8vIH0gICAgICBcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSBcblxuICBwdWJsaWMgZ2V0IHByZXZpZXdQZXJjZW50KCkge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5fcHJldmlld1dpZHRoKS5tYXRjaCgvJS8pO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUoZmlsZSk6IHZvaWQge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RmlsZShmc0ZpbGU6IEZzRmlsZSkge1xuICAgIG9mKHRydWUpICAgIFxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluV2lkdGggfHwgdGhpcy5taW5IZWlnaHQgPyBmcm9tKGZzRmlsZS5pbWFnZUluZm8pIDogb2YodHJ1ZSk7XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWxlID0gZnNGaWxlO1xuICAgICAgdGhpcy5zZWxlY3QuZW1pdChmc0ZpbGUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShmc0ZpbGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gdm9pZCAwO1xuICAgIHRoaXMucmVtb3ZlLmVtaXQodGhpcy5maWxlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICB9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGV2ZW50OiB7IGV2ZW50OiBQb2ludGVyRXZlbnQgfSkge1xuICAgIGV2ZW50LmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkQ2xpY2tlZChldmVudDogeyBldmVudDogUG9pbnRlckV2ZW50IH0pIHtcbiAgICBldmVudC5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmKHRoaXMuZG93bmxvYWQub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgZXZlbnQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuZG93bmxvYWQuZW1pdCh0aGlzLmZpbGUpO1xuICAgIH1cbiAgfVxuICBcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOdW1lcmljKHZhbHVlKSB7XG4gICAgcmV0dXJuIC9eLT9cXGQrJC8udGVzdCh2YWx1ZSk7XG4gIH1cblxufVxuIiwiPGZzLWxhYmVsLWZpZWxkXG4gICAgY2xhc3M9XCJmcy1mb3JtLXdyYXBwZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3BlcmNlbnQtcHJldmlldyc6IHByZXZpZXdQZXJjZW50IH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsOyBlbHNlIGxhYmVsQ29udGVudFwiPlxuICAgIDxmcy1sYWJlbCBjbGFzcz1cImZzLWZvcm0tbGFiZWxcIj57e2xhYmVsfX08L2ZzLWxhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG4gICAgPGZzLWxhYmVsICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiZnMtZm9ybS1sYWJlbFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZzRmlsZUxhYmVsXVwiPjwvbmctY29udGVudD5cbiAgICA8L2ZzLWxhYmVsPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZnMtZmlsZVxuICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgKHNlbGVjdCk9XCJzZWxlY3RGaWxlKCRldmVudClcIlxuICAgICAgW2ltYWdlV2lkdGhdPVwiaW1hZ2VXaWR0aFwiXG4gICAgICBbaW1hZ2VIZWlnaHRdPVwiaW1hZ2VIZWlnaHRcIlxuICAgICAgW2ltYWdlUXVhbGl0eV09XCJpbWFnZVF1YWxpdHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIndyYXBcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwicHJldmlld1dpZHRoXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJwcmV2aWV3SGVpZ2h0XCI+XG4gICAgICA8ZnMtZmlsZS1wcmV2aWV3XG4gICAgICAgICAgY2xhc3M9XCJwcmV2aWV3XCJcbiAgICAgICAgICAqbmdJZj1cImZpbGU7IGVsc2UgcHJldmlld1wiXG4gICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVGaWxlKClcIlxuICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxuICAgICAgICAgIFtzaG93RmlsZW5hbWVdPVwic2hvd0ZpbGVuYW1lXCJcbiAgICAgICAgICBbcHJldmlld0hlaWdodF09XCJudWxsXCJcbiAgICAgICAgICBbcHJldmlld1dpZHRoXT1cIm51bGxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBmcy1maWxlLXByZXZpZXctYWN0aW9uXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3AtcmlnaHRcIlxuICAgICAgICAgICAgYWN0aW9uPVwicmVtb3ZlXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJSZW1vdmVcIlxuICAgICAgICAgICAgKm5nSWY9XCJhbGxvd1JlbW92ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgZnMtZmlsZS1wcmV2aWV3LWFjdGlvblxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJSZXVwbG9hZFwiXG4gICAgICAgICAgICAqbmdJZj1cImFsbG93UmV1cGxvYWRcIj5cbiAgICAgICAgICA8bWF0LWljb24+dXBsb2FkX2ZpbGU8L21hdC1pY29uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIGZzLWZpbGUtcHJldmlldy1hY3Rpb25cbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGFjdGlvbj1cImRvd25sb2FkXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJEb3dubG9hZFwiXG4gICAgICAgICAgICBbaGlkZV09XCIhKGFsbG93RG93bmxvYWQgJiYgKChkb3dubG9hZC5vYnNlcnZlcnMubGVuZ3RoICYmIGZpbGUpIHx8IGZpbGUudXJsKSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW2hyZWZdPVwiZmlsZS51cmxcIlxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkb3dubG9hZFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2ZzLWZpbGUtcHJldmlldz5cblxuICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsZVBpY2tlclNlbGVjdFRlbXBsYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWxlUGlja2VyU2VsZWN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsZVBpY2tlclNlbGVjdFRlbXBsYXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnVwbG9hZF9maWxlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnN0cnVjdGlvblwiPnt7aW5zdHJ1Y3Rpb259fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1yYWlzZWQtYnV0dG9uXCI+VXBsb2FkPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9mcy1maWxlPlxuICA8ZnMtbGFiZWwtbWVzc2FnZSBjbGFzcz1cImZzLWZvcm0tbWVzc2FnZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZnMtZm9ybS1oaW50XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZnNGaWxlSGludF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZnNGaWxlTWVzc2FnZUxhYmVsXVwiPjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gIDwvZnMtbGFiZWwtbWVzc2FnZT5cbjwvZnMtbGFiZWwtZmllbGQ+XG4iXX0= |
{ | ||
"name": "@firestitch/file", | ||
"version": "12.10.8", | ||
"version": "12.10.9", | ||
"repository": { | ||
@@ -5,0 +5,0 @@ "type": "git", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
834200