nuxeo-development-framework 5.1.0 → 5.1.2

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.
@@ -1,9 +1,9 @@
1
- import { animate, state, style, transition, trigger, } from '@angular/animations';
2
- import { Component } from '@angular/core';
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Inject } from '@angular/core';
3
3
  import { Toast } from 'ngx-toastr';
4
4
  import { Subject } from 'rxjs';
5
5
  import { takeUntil } from 'rxjs/operators';
6
- import { UserPreferenceValues, } from '../../../../core/services/user/user-preferences.service';
6
+ import { UserPreferenceValues } from '../../../../core/services/user/user-preferences.service';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "ngx-toastr";
9
9
  import * as i2 from "@ngx-translate/core";
@@ -11,8 +11,9 @@ import * as i3 from "../../../../core/services/user/user-preferences.service";
11
11
  import * as i4 from "@angular/cdk/bidi";
12
12
  import * as i5 from "@angular/common";
13
13
  export class CustomToastrComponent extends Toast {
14
- constructor(toastrService, toastPackage, translate, userPreferenceService) {
14
+ constructor(_environment, toastrService, toastPackage, translate, userPreferenceService) {
15
15
  super(toastrService, toastPackage);
16
+ this._environment = _environment;
16
17
  this.toastrService = toastrService;
17
18
  this.toastPackage = toastPackage;
18
19
  this.translate = translate;
@@ -32,8 +33,32 @@ export class CustomToastrComponent extends Toast {
32
33
  });
33
34
  }
34
35
  }
36
+ // setbBackgroundColor() {
37
+ // this.toastrService.clear();
38
+ // let classes = {
39
+ // success: this.type === 'success',
40
+ // error: this.type === 'error',
41
+ // notification: this.type === 'notification',
42
+ // };
43
+ // console.log('back color function')
44
+ // return classes;
45
+ // }
46
+ // setTextColor() {
47
+ // let classes = {
48
+ // 'msg-success': this.type === 'success',
49
+ // 'msg-error': this.type === 'error',
50
+ // 'msg-notification': this.type === 'notification',
51
+ // };
52
+ // return classes;
53
+ // }
54
+ remove() {
55
+ var _a;
56
+ if (`${(_a = this._environment) === null || _a === void 0 ? void 0 : _a.toaster.canClear}`.toLowerCase() === 'yes') {
57
+ this.toastrService.clear();
58
+ }
59
+ }
35
60
  }
36
- CustomToastrComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomToastrComponent, deps: [{ token: i1.ToastrService }, { token: i1.ToastPackage }, { token: i2.TranslateService }, { token: i3.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
61
+ CustomToastrComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomToastrComponent, deps: [{ token: 'environment' }, { token: i1.ToastrService }, { token: i1.ToastPackage }, { token: i2.TranslateService }, { token: i3.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
37
62
  CustomToastrComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomToastrComponent, selector: "cts-custom-toastr", usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"toast-container {{ type }}-container\"\r\n [style.display]=\"state.value === 'inactive' ? 'none' : ''\"\r\n [dir]=\"lang\"\r\n [@simpleFadeAnimation]=\"'in'\"\r\n>\r\n <div class=\"icon-container rounded-s-md {{ type }}\">\r\n <ng-container [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <span class=\"bi bi-check2 toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'error'\">\r\n <span class=\"bi bi-x toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'info'\">\r\n <span class=\"bi bi-info-circle toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'warning'\">\r\n <span class=\"bi bi-exclamation-triangle toast-icon\"></span>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'notification'\">\r\n <span class=\"bi bi-bell-fill notification-icon\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"toast-content-container\">\r\n <div *ngIf=\"title\" [attr.aria-label]=\"title\" class=\"toast-content\">\r\n {{ title | translate }}\r\n </div>\r\n <div\r\n *ngIf=\"message\"\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"message\"\r\n class=\"message msg-{{ type }}\"\r\n >\r\n {{ message | translate : { value: value } }}\r\n </div>\r\n\r\n <div *ngIf=\"customContent\" class=\"message msg-{{ type }}\">{{ customContent }}</div>\r\n </div>\r\n <div (click)=\"remove()\" class=\"remove\">\r\n <span style=\"font-size: 26px; color: gray\" aria-hidden=\"true\">&times;</span>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.toast-container{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-left:16px;margin-right:16px;position:relative;width:400px;height:80px;box-shadow:0 0 4px #0000003b;background-color:#fff;border-radius:5px}.toast-container .error{background-color:#ff375e}.toast-container .success{background-color:#0dbab5}.toast-container .warning{background-color:#eca15f}.toast-container .info{background-color:#1a96c6}.toast-container .notification{background-color:#1a96c6}.toast-container .toast-icon{font-size:40px;color:#fff;-webkit-text-stroke:3px white}.toast-container .notification-icon{font-size:30px;color:#fff}.toast-container .msg-error{color:#ff375e}.toast-container .msg-success{color:#0dbab5}.toast-container .msg-warning{color:#eca15f}.toast-container .msg-info{color:#1a96c6}.toast-container .msg-notification{color:#1a96c6}.toast-container .icon-container{grid-column:span 1/span 1;display:flex;align-items:center;justify-content:center}.toast-container .toast-content-container{grid-column:span 3/span 3;display:flex;flex-direction:column;padding-top:4px;padding-bottom:4px;padding-inline-start:8px;overflow:hidden}.toast-container .toast-content-container .toast-content{font-size:18px;color:#8f98aa}.toast-container .toast-content-container .message{font-size:14px;line-height:20px}.toast-container .remove{grid-column:span 1/span 1;cursor:pointer;display:flex;justify-content:flex-end;padding-inline-end:8px}.toast-container .remove mat-icon{color:#8f98aa;font-size:20px;line-height:28px}.rounded-s-md{border-start-start-radius:6px;border-end-start-radius:6px}\n"], directives: [{ type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i2.TranslatePipe }, animations: [
38
63
  // the fade-in/fade-out animation.
39
64
  trigger('simpleFadeAnimation', [
@@ -42,8 +67,8 @@ CustomToastrComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
42
67
  // fade in when created. this could also be written as transition('void => *')
43
68
  transition(':enter', [style({ opacity: 0 }), animate(200)]),
44
69
  // fade out when destroyed. this could also be written as transition('void => *')
45
- transition(':leave', animate(400, style({ opacity: 0 }))),
46
- ]),
70
+ transition(':leave', animate(400, style({ opacity: 0 })))
71
+ ])
47
72
  ] });
48
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomToastrComponent, decorators: [{
49
74
  type: Component,
@@ -59,9 +84,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
59
84
  // fade in when created. this could also be written as transition('void => *')
60
85
  transition(':enter', [style({ opacity: 0 }), animate(200)]),
61
86
  // fade out when destroyed. this could also be written as transition('void => *')
62
- transition(':leave', animate(400, style({ opacity: 0 }))),
63
- ]),
64
- ],
87
+ transition(':leave', animate(400, style({ opacity: 0 })))
88
+ ])
89
+ ]
65
90
  }]
66
- }], ctorParameters: function () { return [{ type: i1.ToastrService }, { type: i1.ToastPackage }, { type: i2.TranslateService }, { type: i3.UserPreferencesService }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRvYXN0ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10b2FzdHIvY29tcG9uZW50cy9jdXN0b20tdG9hc3RyL2N1c3RvbS10b2FzdHIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tdG9hc3RyL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ci9jdXN0b20tdG9hc3RyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsS0FBSyxFQUErQixNQUFNLFlBQVksQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBRUwsb0JBQW9CLEdBQ3JCLE1BQU0seURBQXlELENBQUM7Ozs7Ozs7QUFxQmpFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxLQUFLO0lBTTlDLFlBQ1ksYUFBNEIsRUFDL0IsWUFBMEIsRUFDekIsU0FBMkIsRUFDNUIscUJBQThDO1FBRXJELEtBQUssQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFMekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUwvQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQVE1QyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1FBQ2hGLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLElBQUksQ0FBQyxxQkFBcUI7aUJBQ3ZCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7aUJBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDOzttSEExQlUscUJBQXFCO3VHQUFyQixxQkFBcUIsZ0ZDcENsQyw2ckRBNkNBLCs0UkR2QmM7UUFDVixrQ0FBa0M7UUFDbEMsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLG1GQUFtRjtZQUNuRixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLDhFQUE4RTtZQUM5RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFM0QsaUZBQWlGO1lBQ2pGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFELENBQUM7S0FDSDs0RkFFVSxxQkFBcUI7a0JBbEJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUM3QyxVQUFVLEVBQUU7d0JBQ1Ysa0NBQWtDO3dCQUNsQyxPQUFPLENBQUMscUJBQXFCLEVBQUU7NEJBQzdCLG1GQUFtRjs0QkFDbkYsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFFbEMsOEVBQThFOzRCQUM5RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBRTNELGlGQUFpRjs0QkFDakYsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQzFELENBQUM7cUJBQ0g7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0LCBUb2FzdFBhY2thZ2UsIFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICBVc2VyUHJlZmVyZW5jZVZhbHVlcyxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90b2FzdC10eXBlLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy1jdXN0b20tdG9hc3RyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRvYXN0ci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXRvYXN0ci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIC8vIHRoZSBmYWRlLWluL2ZhZGUtb3V0IGFuaW1hdGlvbi5cclxuICAgIHRyaWdnZXIoJ3NpbXBsZUZhZGVBbmltYXRpb24nLCBbXHJcbiAgICAgIC8vIHRoZSBcImluXCIgc3R5bGUgZGV0ZXJtaW5lcyB0aGUgXCJyZXN0aW5nXCIgc3RhdGUgb2YgdGhlIGVsZW1lbnQgd2hlbiBpdCBpcyB2aXNpYmxlLlxyXG4gICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxyXG5cclxuICAgICAgLy8gZmFkZSBpbiB3aGVuIGNyZWF0ZWQuIHRoaXMgY291bGQgYWxzbyBiZSB3cml0dGVuIGFzIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicpXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoMjAwKV0pLFxyXG5cclxuICAgICAgLy8gZmFkZSBvdXQgd2hlbiBkZXN0cm95ZWQuIHRoaXMgY291bGQgYWxzbyBiZSB3cml0dGVuIGFzIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicpXHJcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIGFuaW1hdGUoNDAwLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Ub2FzdHJDb21wb25lbnQgZXh0ZW5kcyBUb2FzdCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbGFuZztcclxuICB0eXBlOiBUb2FzdFR5cGU7XHJcbiAgdmFsdWU6IGFueTtcclxuICBjdXN0b21Db250ZW50OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRvYXN0UGFja2FnZTogVG9hc3RQYWNrYWdlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXNlclByZWZlcmVuY2VTZXJ2aWNlPzogVXNlclByZWZlcmVuY2VzU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIodG9hc3RyU2VydmljZSwgdG9hc3RQYWNrYWdlKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnRvYXN0UGFja2FnZS50b2FzdFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlO1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudG9hc3RQYWNrYWdlLnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLmN1c3RvbU1zZztcclxuICAgIHRoaXMuY3VzdG9tQ29udGVudCA9IHRoaXMudG9hc3RQYWNrYWdlLnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLmN1c3RvbUNvbnRlbnQ7XHJcbiAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2VcclxuICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2NhbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMubGFuZyA9IHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gc2V0YkJhY2tncm91bmRDb2xvcigpIHtcclxuICAvLyAgIHRoaXMudG9hc3RyU2VydmljZS5jbGVhcigpO1xyXG4gIC8vICAgbGV0IGNsYXNzZXMgPSB7XHJcbiAgLy8gICAgIHN1Y2Nlc3M6IHRoaXMudHlwZSA9PT0gJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICBlcnJvcjogdGhpcy50eXBlID09PSAnZXJyb3InLFxyXG4gIC8vICAgICBub3RpZmljYXRpb246IHRoaXMudHlwZSA9PT0gJ25vdGlmaWNhdGlvbicsXHJcbiAgLy8gICB9O1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2JhY2sgY29sb3IgZnVuY3Rpb24nKVxyXG4gIC8vICAgcmV0dXJuIGNsYXNzZXM7XHJcbiAgLy8gfVxyXG4gIC8vIHNldFRleHRDb2xvcigpIHtcclxuICAvLyAgIGxldCBjbGFzc2VzID0ge1xyXG4gIC8vICAgICAnbXNnLXN1Y2Nlc3MnOiB0aGlzLnR5cGUgPT09ICdzdWNjZXNzJyxcclxuICAvLyAgICAgJ21zZy1lcnJvcic6IHRoaXMudHlwZSA9PT0gJ2Vycm9yJyxcclxuICAvLyAgICAgJ21zZy1ub3RpZmljYXRpb24nOiB0aGlzLnR5cGUgPT09ICdub3RpZmljYXRpb24nLFxyXG4gIC8vICAgfTtcclxuICAvLyAgIHJldHVybiBjbGFzc2VzO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcmVtb3ZlKCl7XHJcbiAgLy8gICB0aGlzLnRvYXN0clNlcnZpY2UuY2xlYXIoKTtcclxuICAvLyAgIGNvbnNvbGUubG9nKCdjbGVhciBmdW5jdGlvbicpXHJcblxyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJ0b2FzdC1jb250YWluZXIge3sgdHlwZSB9fS1jb250YWluZXJcIlxyXG4gIFtzdHlsZS5kaXNwbGF5XT1cInN0YXRlLnZhbHVlID09PSAnaW5hY3RpdmUnID8gJ25vbmUnIDogJydcIlxyXG4gIFtkaXJdPVwibGFuZ1wiXHJcbiAgW0BzaW1wbGVGYWRlQW5pbWF0aW9uXT1cIidpbidcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyIHJvdW5kZWQtcy1tZCB7eyB0eXBlIH19XCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktY2hlY2syIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS14IHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5mbydcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbm90aWZpY2F0aW9uJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktYmVsbC1maWxsIG5vdGlmaWNhdGlvbi1pY29uXCI+PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0b2FzdC1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZVwiIGNsYXNzPVwidG9hc3QtY29udGVudFwiPlxyXG4gICAgICB7eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibWVzc2FnZVwiXHJcbiAgICAgIHJvbGU9XCJhbGVydFwiXHJcbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVzc2FnZVwiXHJcbiAgICAgIGNsYXNzPVwibWVzc2FnZSBtc2cte3sgdHlwZSB9fVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgOiB7IHZhbHVlOiB2YWx1ZSB9IH19XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tQ29udGVudFwiIGNsYXNzPVwibWVzc2FnZSBtc2cte3sgdHlwZSB9fVwiPnt7IGN1c3RvbUNvbnRlbnQgfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IChjbGljayk9XCJyZW1vdmUoKVwiIGNsYXNzPVwicmVtb3ZlXCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjZweDsgY29sb3I6IGdyYXlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
91
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
92
+ type: Inject,
93
+ args: ['environment']
94
+ }] }, { type: i1.ToastrService }, { type: i1.ToastPackage }, { type: i2.TranslateService }, { type: i3.UserPreferencesService }]; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRvYXN0ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10b2FzdHIvY29tcG9uZW50cy9jdXN0b20tdG9hc3RyL2N1c3RvbS10b2FzdHIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tdG9hc3RyL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ci9jdXN0b20tdG9hc3RyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBK0IsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUEwQixvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBc0J2SCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsS0FBSztJQU0vQyxZQUNrQyxZQUFpQyxFQUN4RCxhQUE0QixFQUMvQixZQUEwQixFQUN6QixTQUEyQixFQUM1QixxQkFBOEM7UUFFckQsS0FBSyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQU5GLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUN4RCxrQkFBYSxHQUFiLGFBQWEs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VUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUUzRCxpRkFBaUY7NEJBQ2pGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUN6RCxDQUFDO3FCQUNGO2lCQUNEOzswQkFRRSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0LCBUb2FzdFBhY2thZ2UsIFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0VHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdG9hc3QtdHlwZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwL2Vudmlyb25tZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3RzLWN1c3RvbS10b2FzdHInLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tdG9hc3RyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jdXN0b20tdG9hc3RyLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0YW5pbWF0aW9uczogW1xyXG5cdFx0Ly8gdGhlIGZhZGUtaW4vZmFkZS1vdXQgYW5pbWF0aW9uLlxyXG5cdFx0dHJpZ2dlcignc2ltcGxlRmFkZUFuaW1hdGlvbicsIFtcclxuXHRcdFx0Ly8gdGhlIFwiaW5cIiBzdHlsZSBkZXRlcm1pbmVzIHRoZSBcInJlc3RpbmdcIiBzdGF0ZSBvZiB0aGUgZWxlbWVudCB3aGVuIGl0IGlzIHZpc2libGUuXHJcblx0XHRcdHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXHJcblxyXG5cdFx0XHQvLyBmYWRlIGluIHdoZW4gY3JlYXRlZC4gdGhpcyBjb3VsZCBhbHNvIGJlIHdyaXR0ZW4gYXMgdHJhbnNpdGlvbigndm9pZCA9PiAqJylcclxuXHRcdFx0dHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgyMDApXSksXHJcblxyXG5cdFx0XHQvLyBmYWRlIG91dCB3aGVuIGRlc3Ryb3llZC4gdGhpcyBjb3VsZCBhbHNvIGJlIHdyaXR0ZW4gYXMgdHJhbnNpdGlvbigndm9pZCA9PiAqJylcclxuXHRcdFx0dHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSg0MDAsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpXHJcblx0XHRdKVxyXG5cdF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVRvYXN0ckNvbXBvbmVudCBleHRlbmRzIFRvYXN0IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRsYW5nO1xyXG5cdHR5cGU6IFRvYXN0VHlwZTtcclxuXHR2YWx1ZTogYW55O1xyXG5cdGN1c3RvbUNvbnRlbnQ6IHN0cmluZztcclxuXHRwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0QEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgX2Vudmlyb25tZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG5cdFx0cHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXHJcblx0XHRwdWJsaWMgdG9hc3RQYWNrYWdlOiBUb2FzdFBhY2thZ2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuXHRcdHB1YmxpYyB1c2VyUHJlZmVyZW5jZVNlcnZpY2U/OiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcih0b2FzdHJTZXJ2aWNlLCB0b2FzdFBhY2thZ2UpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnR5cGUgPSB0aGlzLnRvYXN0UGFja2FnZS50b2FzdFJlZi5jb21wb25lbnRJbnN0YW5jZS50eXBlO1xyXG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudG9hc3RQYWNrYWdlLnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLmN1c3RvbU1zZztcclxuXHRcdHRoaXMuY3VzdG9tQ29udGVudCA9IHRoaXMudG9hc3RQYWNrYWdlLnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLmN1c3RvbUNvbnRlbnQ7XHJcblx0XHRpZiAodGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UpIHtcclxuXHRcdFx0dGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2VcclxuXHRcdFx0XHQuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcclxuXHRcdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChsb2NhbGUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubGFuZyA9IHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuXHRcdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIHNldGJCYWNrZ3JvdW5kQ29sb3IoKSB7XHJcblx0Ly8gICB0aGlzLnRvYXN0clNlcnZpY2UuY2xlYXIoKTtcclxuXHQvLyAgIGxldCBjbGFzc2VzID0ge1xyXG5cdC8vICAgICBzdWNjZXNzOiB0aGlzLnR5cGUgPT09ICdzdWNjZXNzJyxcclxuXHQvLyAgICAgZXJyb3I6IHRoaXMudHlwZSA9PT0gJ2Vycm9yJyxcclxuXHQvLyAgICAgbm90aWZpY2F0aW9uOiB0aGlzLnR5cGUgPT09ICdub3RpZmljYXRpb24nLFxyXG5cdC8vICAgfTtcclxuXHQvLyAgIGNvbnNvbGUubG9nKCdiYWNrIGNvbG9yIGZ1bmN0aW9uJylcclxuXHQvLyAgIHJldHVybiBjbGFzc2VzO1xyXG5cdC8vIH1cclxuXHQvLyBzZXRUZXh0Q29sb3IoKSB7XHJcblx0Ly8gICBsZXQgY2xhc3NlcyA9IHtcclxuXHQvLyAgICAgJ21zZy1zdWNjZXNzJzogdGhpcy50eXBlID09PSAnc3VjY2VzcycsXHJcblx0Ly8gICAgICdtc2ctZXJyb3InOiB0aGlzLnR5cGUgPT09ICdlcnJvcicsXHJcblx0Ly8gICAgICdtc2ctbm90aWZpY2F0aW9uJzogdGhpcy50eXBlID09PSAnbm90aWZpY2F0aW9uJyxcclxuXHQvLyAgIH07XHJcblx0Ly8gICByZXR1cm4gY2xhc3NlcztcclxuXHQvLyB9XHJcblxyXG5cdHJlbW92ZSgpIHtcclxuXHRcdGlmIChgJHt0aGlzLl9lbnZpcm9ubWVudD8udG9hc3Rlci5jYW5DbGVhcn1gLnRvTG93ZXJDYXNlKCkgPT09ICd5ZXMnKSB7XHJcblx0XHRcdHRoaXMudG9hc3RyU2VydmljZS5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJ0b2FzdC1jb250YWluZXIge3sgdHlwZSB9fS1jb250YWluZXJcIlxyXG4gIFtzdHlsZS5kaXNwbGF5XT1cInN0YXRlLnZhbHVlID09PSAnaW5hY3RpdmUnID8gJ25vbmUnIDogJydcIlxyXG4gIFtkaXJdPVwibGFuZ1wiXHJcbiAgW0BzaW1wbGVGYWRlQW5pbWF0aW9uXT1cIidpbidcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyIHJvdW5kZWQtcy1tZCB7eyB0eXBlIH19XCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktY2hlY2syIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS14IHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5mbydcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHRvYXN0LWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbm90aWZpY2F0aW9uJ1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktYmVsbC1maWxsIG5vdGlmaWNhdGlvbi1pY29uXCI+PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0b2FzdC1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZVwiIGNsYXNzPVwidG9hc3QtY29udGVudFwiPlxyXG4gICAgICB7eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibWVzc2FnZVwiXHJcbiAgICAgIHJvbGU9XCJhbGVydFwiXHJcbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVzc2FnZVwiXHJcbiAgICAgIGNsYXNzPVwibWVzc2FnZSBtc2cte3sgdHlwZSB9fVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgOiB7IHZhbHVlOiB2YWx1ZSB9IH19XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tQ29udGVudFwiIGNsYXNzPVwibWVzc2FnZSBtc2cte3sgdHlwZSB9fVwiPnt7IGN1c3RvbUNvbnRlbnQgfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IChjbGljayk9XCJyZW1vdmUoKVwiIGNsYXNzPVwicmVtb3ZlXCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjZweDsgY29sb3I6IGdyYXlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,4 +1,5 @@
1
1
  import { getRandomNumber } from '../../utilities';
2
+ import { NODE_MARGIN, NODE_TYPE, NODE_WIDTH } from '../../constants';
2
3
  export const createSegmentedPath = (connection, options) => {
3
4
  var _a;
4
5
  const { multiPoints = true, offset = 0 } = ((_a = options === null || options === void 0 ? void 0 : options.transform) === null || _a === void 0 ? void 0 : _a.options) || {};
@@ -24,6 +25,26 @@ export const createSegmentedPath = (connection, options) => {
24
25
  return [start, ..._points, end];
25
26
  }
26
27
  case 'forward': {
28
+ const _x = start.x + NODE_WIDTH + NODE_MARGIN;
29
+ if (end.x > _x && end.y > start.y) {
30
+ return [start, { x: start.x, y: end.y + offset }, end];
31
+ }
32
+ if (end.x > _x && end.y == start.y) {
33
+ const y = Math.random() * (70 - 5) + 20 + start.y;
34
+ const _points = [
35
+ { x: start.x, y: y },
36
+ { x: end.x, y: y }
37
+ ];
38
+ return [start, ..._points, end];
39
+ }
40
+ if (end.y > start.y && end.x > start.x && connection.targetNode.type == NODE_TYPE.end) {
41
+ const x = Math.random() * (40 - 5) + 15 + start.x;
42
+ const _points = [
43
+ { x: x, y: start.y },
44
+ { x: x, y: end.y }
45
+ ];
46
+ return [start, ..._points, end];
47
+ }
27
48
  if (end.y < start.y) {
28
49
  const _points = [{ x: start.x, y: end.y }];
29
50
  return [start, ..._points, end];
@@ -47,4 +68,4 @@ export const createSegmentedPath = (connection, options) => {
47
68
  return [start, end];
48
69
  };
49
70
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1wYXRoLnRyYW5zZm9ybWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGlhZ3JhbXMvZWRpdG9yL292ZXJyaWRlcy9jb25uZWN0aW9uLXBhdGgudHJhbnNmb3JtZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBdUIsQ0FDdEQsVUFBVSxFQUNWLE9BQU8sRUFDTixFQUFFOztJQUNILE1BQU0sRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsMENBQUUsT0FBTyxLQUFJLEVBQUUsQ0FBQztJQUM3RSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDakIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUNkLDBEQUEwRCxDQUMxRCxDQUFDO1NBQ0Y7UUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUU1QixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hCLFFBQVEsU0FBUyxFQUFFO2dCQUNsQixLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNaLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDOUQsTUFBTSxPQUFPLEdBQUc7d0JBQ2YsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUU7d0JBQ25DLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFO3FCQUMvQixDQUFDO29CQUNGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ2hDO2dCQUVELEtBQUssVUFBVSxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ2hDO2dCQUVELEtBQUssU0FBUyxDQUFDLENBQUM7b0JBQ2YsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7d0JBQ3BCLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQzNDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ2hDO29CQUNELE1BQU07aUJBQ047YUFDRDtTQUNEO1FBRUQsSUFBSSxXQUFXLEVBQUU7WUFDaEIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUVsRCxNQUFNLGtCQUFrQixHQUFHO2dCQUMxQixFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFFO2dCQUNyQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFFO2FBQ25DLENBQUM7WUFFRixPQUFPO2dEQUNELEtBQUssS0FBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxHQUFHLE1BQU0sRUFBRTtnQkFDN0QsR0FBRyxrQkFBa0I7Z0RBQ2hCLEdBQUcsS0FBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxHQUFHLE1BQU0sRUFBRTthQUN4RCxDQUFDO1NBQ0Y7UUFFRCxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybWVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgZ2V0UmFuZG9tTnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVTZWdtZW50ZWRQYXRoOiBUcmFuc2Zvcm1lckZhY3RvcnkgPSAoXHJcblx0Y29ubmVjdGlvbixcclxuXHRvcHRpb25zXHJcbikgPT4ge1xyXG5cdGNvbnN0IHsgbXVsdGlQb2ludHMgPSB0cnVlLCBvZmZzZXQgPSAwIH0gPSBvcHRpb25zPy50cmFuc2Zvcm0/Lm9wdGlvbnMgfHwge307XHJcblx0Y29uc3QgaXNWZXJ0aWNhbCA9ICEhb3B0aW9ucz8udmVydGljYWw7XHJcblx0Y29uc3QgZGlyZWN0aW9uID0gY29ubmVjdGlvbi5kaXJlY3Rpb247XHJcblx0cmV0dXJuIChwb2ludHMpID0+IHtcclxuXHRcdGlmIChwb2ludHMubGVuZ3RoICE9PSAyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcclxuXHRcdFx0XHQnRXhhY3RseSB0d28gcG9pbnRzIGFyZSByZXF1aXJlZCB0byBjcmVhdGUgYSBsaW5lYXIgcGF0aC4nXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgW3N0YXJ0LCBlbmRdID0gcG9pbnRzO1xyXG5cclxuXHRcdGlmICghaXNWZXJ0aWNhbCkge1xyXG5cdFx0XHRzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG5cdFx0XHRcdGNhc2UgJ2Rvd24nOiB7XHJcblx0XHRcdFx0XHRjb25zdCBvZmZzZXQgPSBnZXRSYW5kb21OdW1iZXIoc3RhcnQueCwgc3RhcnQueSwgMTAsIDUwLCAxNTApO1xyXG5cdFx0XHRcdFx0Y29uc3QgX3BvaW50cyA9IFtcclxuXHRcdFx0XHRcdFx0eyB4OiBzdGFydC54LCB5OiBzdGFydC55ICsgb2Zmc2V0IH0sXHJcblx0XHRcdFx0XHRcdHsgeDogZW5kLngsIHk6IGVuZC55ICsgb2Zmc2V0IH1cclxuXHRcdFx0XHRcdF07XHJcblx0XHRcdFx0XHRyZXR1cm4gW3N0YXJ0LCAuLi5fcG9pbnRzLCBlbmRdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y2FzZSAnYmFja3dhcmQnOiB7XHJcblx0XHRcdFx0XHRjb25zdCBfcG9pbnRzID0gW3sgeDogZW5kLngsIHk6IHN0YXJ0LnkgfV07XHJcblx0XHRcdFx0XHRyZXR1cm4gW3N0YXJ0LCAuLi5fcG9pbnRzLCBlbmRdO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y2FzZSAnZm9yd2FyZCc6IHtcclxuXHRcdFx0XHRcdGlmIChlbmQueSA8IHN0YXJ0LnkpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgX3BvaW50cyA9IFt7IHg6IHN0YXJ0LngsIHk6IGVuZC55IH1dO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gW3N0YXJ0LCAuLi5fcG9pbnRzLCBlbmRdO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG11bHRpUG9pbnRzKSB7XHJcblx0XHRcdGNvbnN0IG1pZHBvaW50WSA9IChlbmQueSAtIHN0YXJ0LnkpIC8gMiArIHN0YXJ0Lnk7XHJcblxyXG5cdFx0XHRjb25zdCBpbnRlcm1lZGlhdGVQb2ludHMgPSBbXHJcblx0XHRcdFx0eyB4OiBzdGFydC54LCB5OiBtaWRwb2ludFkgLSBvZmZzZXQgfSxcclxuXHRcdFx0XHR7IHg6IGVuZC54LCB5OiBtaWRwb2ludFkgKyBvZmZzZXQgfVxyXG5cdFx0XHRdO1xyXG5cclxuXHRcdFx0cmV0dXJuIFtcclxuXHRcdFx0XHR7IC4uLnN0YXJ0LCBjb250cm9sT3V0OiB7IHg6IHN0YXJ0LngsIHk6IG1pZHBvaW50WSAtIG9mZnNldCB9IH0sXHJcblx0XHRcdFx0Li4uaW50ZXJtZWRpYXRlUG9pbnRzLFxyXG5cdFx0XHRcdHsgLi4uZW5kLCBjb250cm9sSW46IHsgeDogZW5kLngsIHk6IG1pZHBvaW50WSArIG9mZnNldCB9IH1cclxuXHRcdFx0XTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gW3N0YXJ0LCBlbmRdO1xyXG5cdH07XHJcbn07XHJcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1wYXRoLnRyYW5zZm9ybWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZGlhZ3JhbXMvZWRpdG9yL292ZXJyaWRlcy9jb25uZWN0aW9uLXBhdGgudHJhbnNmb3JtZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBdUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUU7O0lBQzlFLE1BQU0sRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsMENBQUUsT0FBTyxLQUFJLEVBQUUsQ0FBQztJQUM3RSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDakIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7U0FDNUU7UUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUU1QixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hCLFFBQVEsU0FBUyxFQUFFO2dCQUNsQixLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNaLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDOUQsTUFBTSxPQUFPLEdBQUc7d0JBQ2YsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUU7d0JBQ25DLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFO3FCQUMvQixDQUFDO29CQUNGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ2hDO2dCQUVELEtBQUssVUFBVSxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ2hDO2dCQUVELEtBQUssU0FBUyxDQUFDLENBQUM7b0JBQ2YsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsV0FBVyxDQUFDO29CQUU5QyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDbEMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN2RDtvQkFFRCxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDbkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxNQUFNLE9BQU8sR0FBRzs0QkFDZixFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7NEJBQ3BCLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTt5QkFDbEIsQ0FBQzt3QkFDRixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNoQztvQkFFRCxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRTt3QkFDdEYsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxNQUFNLE9BQU8sR0FBRzs0QkFDZixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7NEJBQ3BCLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTt5QkFDbEIsQ0FBQzt3QkFDRixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNoQztvQkFFRCxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDcEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDM0MsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDaEM7b0JBQ0QsTUFBTTtpQkFDTjthQUNEO1NBQ0Q7UUFFRCxJQUFJLFdBQVcsRUFBRTtZQUNoQixNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRWxELE1BQU0sa0JBQWtCLEdBQUc7Z0JBQzFCLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsR0FBRyxNQUFNLEVBQUU7Z0JBQ3JDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsR0FBRyxNQUFNLEVBQUU7YUFDbkMsQ0FBQztZQUVGLE9BQU87Z0RBQ0QsS0FBSyxLQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFFO2dCQUM3RCxHQUFHLGtCQUFrQjtnREFDaEIsR0FBRyxLQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUFFO2FBQ3hELENBQUM7U0FDRjtRQUVELE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmb3JtZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBnZXRSYW5kb21OdW1iZXIgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBOT0RFX01BUkdJTiwgTk9ERV9UWVBFLCBOT0RFX1dJRFRIIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVTZWdtZW50ZWRQYXRoOiBUcmFuc2Zvcm1lckZhY3RvcnkgPSAoY29ubmVjdGlvbiwgb3B0aW9ucykgPT4ge1xyXG5cdGNvbnN0IHsgbXVsdGlQb2ludHMgPSB0cnVlLCBvZmZzZXQgPSAwIH0gPSBvcHRpb25zPy50cmFuc2Zvcm0/Lm9wdGlvbnMgfHwge307XHJcblx0Y29uc3QgaXNWZXJ0aWNhbCA9ICEhb3B0aW9ucz8udmVydGljYWw7XHJcblx0Y29uc3QgZGlyZWN0aW9uID0gY29ubmVjdGlvbi5kaXJlY3Rpb247XHJcblx0cmV0dXJuIChwb2ludHMpID0+IHtcclxuXHRcdGlmIChwb2ludHMubGVuZ3RoICE9PSAyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignRXhhY3RseSB0d28gcG9pbnRzIGFyZSByZXF1aXJlZCB0byBjcmVhdGUgYSBsaW5lYXIgcGF0aC4nKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBbc3RhcnQsIGVuZF0gPSBwb2ludHM7XHJcblxyXG5cdFx0aWYgKCFpc1ZlcnRpY2FsKSB7XHJcblx0XHRcdHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcblx0XHRcdFx0Y2FzZSAnZG93bic6IHtcclxuXHRcdFx0XHRcdGNvbnN0IG9mZnNldCA9IGdldFJhbmRvbU51bWJlcihzdGFydC54LCBzdGFydC55LCAxMCwgNTAsIDE1MCk7XHJcblx0XHRcdFx0XHRjb25zdCBfcG9pbnRzID0gW1xyXG5cdFx0XHRcdFx0XHR7IHg6IHN0YXJ0LngsIHk6IHN0YXJ0LnkgKyBvZmZzZXQgfSxcclxuXHRcdFx0XHRcdFx0eyB4OiBlbmQueCwgeTogZW5kLnkgKyBvZmZzZXQgfVxyXG5cdFx0XHRcdFx0XTtcclxuXHRcdFx0XHRcdHJldHVybiBbc3RhcnQsIC4uLl9wb2ludHMsIGVuZF07XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjYXNlICdiYWNrd2FyZCc6IHtcclxuXHRcdFx0XHRcdGNvbnN0IF9wb2ludHMgPSBbeyB4OiBlbmQueCwgeTogc3RhcnQueSB9XTtcclxuXHRcdFx0XHRcdHJldHVybiBbc3RhcnQsIC4uLl9wb2ludHMsIGVuZF07XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjYXNlICdmb3J3YXJkJzoge1xyXG5cdFx0XHRcdFx0Y29uc3QgX3ggPSBzdGFydC54ICsgTk9ERV9XSURUSCArIE5PREVfTUFSR0lOO1xyXG5cclxuXHRcdFx0XHRcdGlmIChlbmQueCA+IF94ICYmIGVuZC55ID4gc3RhcnQueSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gW3N0YXJ0LCB7IHg6IHN0YXJ0LngsIHk6IGVuZC55ICsgb2Zmc2V0IH0sIGVuZF07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0aWYgKGVuZC54ID4gX3ggJiYgZW5kLnkgPT0gc3RhcnQueSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCB5ID0gTWF0aC5yYW5kb20oKSAqICg3MCAtIDUpICsgMjAgKyBzdGFydC55O1xyXG5cdFx0XHRcdFx0XHRjb25zdCBfcG9pbnRzID0gW1xyXG5cdFx0XHRcdFx0XHRcdHsgeDogc3RhcnQueCwgeTogeSB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgeDogZW5kLngsIHk6IHkgfVxyXG5cdFx0XHRcdFx0XHRdO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gW3N0YXJ0LCAuLi5fcG9pbnRzLCBlbmRdO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGlmIChlbmQueSA+IHN0YXJ0LnkgJiYgZW5kLnggPiBzdGFydC54ICYmIGNvbm5lY3Rpb24udGFyZ2V0Tm9kZS50eXBlID09IE5PREVfVFlQRS5lbmQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgeCA9IE1hdGgucmFuZG9tKCkgKiAoNDAgLSA1KSArIDE1ICsgc3RhcnQueDtcclxuXHRcdFx0XHRcdFx0Y29uc3QgX3BvaW50cyA9IFtcclxuXHRcdFx0XHRcdFx0XHR7IHg6IHgsIHk6IHN0YXJ0LnkgfSxcclxuXHRcdFx0XHRcdFx0XHR7IHg6IHgsIHk6IGVuZC55IH1cclxuXHRcdFx0XHRcdFx0XTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIFtzdGFydCwgLi4uX3BvaW50cywgZW5kXTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRpZiAoZW5kLnkgPCBzdGFydC55KSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IF9wb2ludHMgPSBbeyB4OiBzdGFydC54LCB5OiBlbmQueSB9XTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIFtzdGFydCwgLi4uX3BvaW50cywgZW5kXTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChtdWx0aVBvaW50cykge1xyXG5cdFx0XHRjb25zdCBtaWRwb2ludFkgPSAoZW5kLnkgLSBzdGFydC55KSAvIDIgKyBzdGFydC55O1xyXG5cclxuXHRcdFx0Y29uc3QgaW50ZXJtZWRpYXRlUG9pbnRzID0gW1xyXG5cdFx0XHRcdHsgeDogc3RhcnQueCwgeTogbWlkcG9pbnRZIC0gb2Zmc2V0IH0sXHJcblx0XHRcdFx0eyB4OiBlbmQueCwgeTogbWlkcG9pbnRZICsgb2Zmc2V0IH1cclxuXHRcdFx0XTtcclxuXHJcblx0XHRcdHJldHVybiBbXHJcblx0XHRcdFx0eyAuLi5zdGFydCwgY29udHJvbE91dDogeyB4OiBzdGFydC54LCB5OiBtaWRwb2ludFkgLSBvZmZzZXQgfSB9LFxyXG5cdFx0XHRcdC4uLmludGVybWVkaWF0ZVBvaW50cyxcclxuXHRcdFx0XHR7IC4uLmVuZCwgY29udHJvbEluOiB7IHg6IGVuZC54LCB5OiBtaWRwb2ludFkgKyBvZmZzZXQgfSB9XHJcblx0XHRcdF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtzdGFydCwgZW5kXTtcclxuXHR9O1xyXG59O1xyXG4iXX0=
@@ -23,4 +23,4 @@ export class BaseNodeClass extends ClassicPreset.Node {
23
23
  this.options = config === null || config === void 0 ? void 0 : config.options;
24
24
  }
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ub2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy9tb2RlbHMvYmFzZS1ub2RlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsU0FBUyxFQUNULFVBQVUsRUFDWCxNQUFNLGNBQWMsQ0FBQztBQVl0QixNQUFNLE9BQWdCLGFBQ3JCLFNBQVEsYUFBYSxDQUFDLElBQUk7SUF1QjFCLFlBQVksTUFBMEI7UUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQWpCckIsU0FBSSxHQUFhLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFbkMsVUFBSyxHQUFXLFVBQVUsQ0FBQztRQUMzQixXQUFNLEdBQVcsV0FBVyxDQUFDO1FBTzdCLGVBQVUsR0FBZ0Q7WUFDekQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDOUIsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7U0FDN0IsQ0FBQztRQUtELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLEtBQUksVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxLQUFJLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPLENBQUM7SUFDaEMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENsYXNzaWNQcmVzZXQgfSBmcm9tICdyZXRlJztcclxuaW1wb3J0IHtcclxuICBJTl9PVVRfRElSRUNUSU9OLFxyXG4gIE5PREVfSEVJR0hULFxyXG4gIE5PREVfVFlQRSxcclxuICBOT0RFX1dJRFRIXHJcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuICBEaWFncmFtQ29uZmlnLFxyXG4gIERpcmVjdGlvblR5cGUsXHJcbiAgTm9kZUNvbnRlbnQsXHJcbiAgTm9kZURlZmluaXRpb25EYXRhLFxyXG4gIE5vZGVTdGF0dXMsXHJcbiAgTm9kZVR5cGUsXHJcbiAgTm90aWZ5RXZlbnRUeXBlLFxyXG4gIE9wdGlvbmFsXHJcbn0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb2RlQ2xhc3M8VCA9IHVua25vd24+XHJcblx0ZXh0ZW5kcyBDbGFzc2ljUHJlc2V0Lk5vZGVcclxuXHRpbXBsZW1lbnRzIE5vZGVEZWZpbml0aW9uRGF0YVxyXG57XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHR0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblx0bmFtZT86IE9wdGlvbmFsPHN0cmluZz47XHJcblx0ZGVzY3JpcHRpb24/OiBPcHRpb25hbDxzdHJpbmc+O1xyXG5cdHR5cGU6IE5vZGVUeXBlID0gTk9ERV9UWVBFLmNvbnRlbnQ7XHJcblx0c3RhdHVzPzogTm9kZVN0YXR1cyB8IHN0cmluZztcclxuXHR3aWR0aDogbnVtYmVyID0gTk9ERV9XSURUSDtcclxuXHRoZWlnaHQ6IG51bWJlciA9IE5PREVfSEVJR0hUO1xyXG5cdGNvbnRlbnQ/OiBPcHRpb25hbDxOb2RlQ29udGVudDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj47XHJcblx0cGFyZW50PzogT3B0aW9uYWw8c3RyaW5nPjtcclxuXHRjb25maWc/OiBPcHRpb25hbDxEaWFncmFtQ29uZmlnWydub2RlJ10+O1xyXG5cdGNoaWxkcmVuPzogQmFzZU5vZGVDbGFzczxUPltdO1xyXG5cdHN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0b3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0ZGlyZWN0aW9uczogUmVjb3JkPCdpbnB1dHMnIHwgJ291dHB1dHMnLCBEaXJlY3Rpb25UeXBlPiA9IHtcclxuXHRcdGlucHV0czogSU5fT1VUX0RJUkVDVElPTi5zdGFydCxcclxuXHRcdG91dHB1dHM6IElOX09VVF9ESVJFQ1RJT04uZW5kXHJcblx0fTtcclxuXHRub3RpZnkhOiAoZXZlbnRUeXBlOiBOb3RpZnlFdmVudFR5cGUsIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQ7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGNvbmZpZzogTm9kZURlZmluaXRpb25EYXRhKSB7XHJcblx0XHRzdXBlcihjb25maWcubGFiZWwpO1xyXG5cdFx0dGhpcy5uYW1lID0gY29uZmlnPy5uYW1lO1xyXG5cdFx0dGhpcy5kaXJlY3Rpb25zID0gY29uZmlnPy5kaXJlY3Rpb25zIHx8IHRoaXMuZGlyZWN0aW9ucztcclxuXHRcdHRoaXMudHlwZSA9IGNvbmZpZy50eXBlIHx8IE5PREVfVFlQRS5jb250ZW50O1xyXG5cdFx0dGhpcy5kZXNjcmlwdGlvbiA9IGNvbmZpZz8uZGVzY3JpcHRpb247XHJcblx0XHR0aGlzLnN0YXR1cyA9IGNvbmZpZz8uc3RhdHVzO1xyXG5cdFx0dGhpcy53aWR0aCA9IGNvbmZpZz8ud2lkdGggfHwgTk9ERV9XSURUSDtcclxuXHRcdHRoaXMuaGVpZ2h0ID0gY29uZmlnPy5oZWlnaHQgfHwgTk9ERV9IRUlHSFQ7XHJcblx0XHR0aGlzLmNvbnRlbnQgPSBjb25maWc/LmNvbnRlbnQ7XHJcblx0XHR0aGlzLmNvbmZpZyA9IGNvbmZpZz8uY29uZmlnO1xyXG5cdFx0dGhpcy5zdHlsZUNsYXNzID0gY29uZmlnPy5zdHlsZUNsYXNzO1xyXG5cdFx0dGhpcy5vcHRpb25zID0gY29uZmlnPy5vcHRpb25zO1xyXG5cdH1cclxufVxyXG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ub2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy9tb2RlbHMvYmFzZS1ub2RlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBWXBGLE1BQU0sT0FBZ0IsYUFBMkIsU0FBUSxhQUFhLENBQUMsSUFBSTtJQXVCMUUsWUFBWSxNQUEwQjtRQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBbkJyQixTQUFJLEdBQWEsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUVuQyxVQUFLLEdBQVcsVUFBVSxDQUFDO1FBQzNCLFdBQU0sR0FBVyxXQUFXLENBQUM7UUFPN0IsZUFBVSxHQUFnRDtZQUN6RCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM5QixPQUFPLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztTQUM3QixDQUFDO1FBT0QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVSxLQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssS0FBSSxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLEtBQUksV0FBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCB9IGZyb20gJ3JldGUnO1xyXG5pbXBvcnQgeyBJTl9PVVRfRElSRUNUSU9OLCBOT0RFX0hFSUdIVCwgTk9ERV9UWVBFLCBOT0RFX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuXHREaWFncmFtQ29uZmlnLFxyXG5cdERpcmVjdGlvblR5cGUsXHJcblx0Tm9kZUNvbnRlbnQsXHJcblx0Tm9kZURlZmluaXRpb25EYXRhLFxyXG5cdE5vZGVTdGF0dXMsXHJcblx0Tm9kZVR5cGUsXHJcblx0Tm90aWZ5RXZlbnRUeXBlLFxyXG5cdE9wdGlvbmFsXHJcbn0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb2RlQ2xhc3M8VCA9IHVua25vd24+IGV4dGVuZHMgQ2xhc3NpY1ByZXNldC5Ob2RlIGltcGxlbWVudHMgTm9kZURlZmluaXRpb25EYXRhIHtcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRuYW1lPzogT3B0aW9uYWw8c3RyaW5nPjtcclxuXHRkZXNjcmlwdGlvbj86IE9wdGlvbmFsPHN0cmluZz47XHJcblx0dHlwZTogTm9kZVR5cGUgPSBOT0RFX1RZUEUuY29udGVudDtcclxuXHRzdGF0dXM/OiBOb2RlU3RhdHVzIHwgc3RyaW5nO1xyXG5cdHdpZHRoOiBudW1iZXIgPSBOT0RFX1dJRFRIO1xyXG5cdGhlaWdodDogbnVtYmVyID0gTk9ERV9IRUlHSFQ7XHJcblx0Y29udGVudD86IE9wdGlvbmFsPE5vZGVDb250ZW50PFJlY29yZDxzdHJpbmcsIGFueT4+PjtcclxuXHRwYXJlbnQ/OiBPcHRpb25hbDxzdHJpbmc+O1xyXG5cdGNvbmZpZz86IE9wdGlvbmFsPERpYWdyYW1Db25maWdbJ25vZGUnXT47XHJcblx0Y2hpbGRyZW4/OiBCYXNlTm9kZUNsYXNzPFQ+W107XHJcblx0c3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRvcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRkaXJlY3Rpb25zOiBSZWNvcmQ8J2lucHV0cycgfCAnb3V0cHV0cycsIERpcmVjdGlvblR5cGU+ID0ge1xyXG5cdFx0aW5wdXRzOiBJTl9PVVRfRElSRUNUSU9OLnN0YXJ0LFxyXG5cdFx0b3V0cHV0czogSU5fT1VUX0RJUkVDVElPTi5lbmRcclxuXHR9O1xyXG5cdGxldmVsPzogbnVtYmVyO1xyXG5cdGVkZ2VzPzogc3RyaW5nW107XHJcblx0bm90aWZ5ITogKGV2ZW50VHlwZTogTm90aWZ5RXZlbnRUeXBlLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihjb25maWc6IE5vZGVEZWZpbml0aW9uRGF0YSkge1xyXG5cdFx0c3VwZXIoY29uZmlnLmxhYmVsKTtcclxuXHRcdHRoaXMubmFtZSA9IGNvbmZpZz8ubmFtZTtcclxuXHRcdHRoaXMuZGlyZWN0aW9ucyA9IGNvbmZpZz8uZGlyZWN0aW9ucyB8fCB0aGlzLmRpcmVjdGlvbnM7XHJcblx0XHR0aGlzLnR5cGUgPSBjb25maWcudHlwZSB8fCBOT0RFX1RZUEUuY29udGVudDtcclxuXHRcdHRoaXMuZGVzY3JpcHRpb24gPSBjb25maWc/LmRlc2NyaXB0aW9uO1xyXG5cdFx0dGhpcy5zdGF0dXMgPSBjb25maWc/LnN0YXR1cztcclxuXHRcdHRoaXMud2lkdGggPSBjb25maWc/LndpZHRoIHx8IE5PREVfV0lEVEg7XHJcblx0XHR0aGlzLmhlaWdodCA9IGNvbmZpZz8uaGVpZ2h0IHx8IE5PREVfSEVJR0hUO1xyXG5cdFx0dGhpcy5jb250ZW50ID0gY29uZmlnPy5jb250ZW50O1xyXG5cdFx0dGhpcy5jb25maWcgPSBjb25maWc/LmNvbmZpZztcclxuXHRcdHRoaXMuc3R5bGVDbGFzcyA9IGNvbmZpZz8uc3R5bGVDbGFzcztcclxuXHRcdHRoaXMub3B0aW9ucyA9IGNvbmZpZz8ub3B0aW9ucztcclxuXHR9XHJcbn1cclxuIl19
@@ -27,11 +27,10 @@ export class DiagramService {
27
27
  return this.plugins.area.container.getBoundingClientRect();
28
28
  }
29
29
  getContentNodes() {
30
- return this.editor
31
- .getNodes()
32
- .filter((nd) => ![NODE_TYPE.start, NODE_TYPE.end].includes(nd.type));
30
+ return this.editor.getNodes().filter((nd) => ![NODE_TYPE.start, NODE_TYPE.end].includes(nd.type));
33
31
  }
34
32
  getNodesData() {
33
+ //@ts-ignore
35
34
  return this.getContentNodes().map((node) => node.content.data);
36
35
  }
37
36
  canAddNode(nodeType) {
@@ -67,6 +66,7 @@ export class DiagramService {
67
66
  DiagramUtils.createInputsConfig(_node.id, contentPorts).forEach(({ id, config }) => this.createInput(_node, id, config));
68
67
  DiagramUtils.createOutputsConfig(_node.id, contentPorts).forEach(({ id, config }) => this.createOutput(_node, id, config));
69
68
  }
69
+ //@ts-ignore
70
70
  _node.notify = this.notifyListener(_node);
71
71
  return _node;
72
72
  }
@@ -111,6 +111,14 @@ export class DiagramService {
111
111
  const node = this.getViewNode(id);
112
112
  return node ? node.position : null;
113
113
  }
114
+ getLargestXPosition() {
115
+ return this.getViewNodes().reduce((x, node) => {
116
+ if (node.position.x > x) {
117
+ x = node.position.x;
118
+ }
119
+ return x;
120
+ }, 0);
121
+ }
114
122
  createInput(node, id = `${node.id}-input`, config) {
115
123
  node.addInput(id, new InputPort(Object.assign({ socket: this.socket }, config)));
116
124
  return node;
@@ -171,10 +179,7 @@ export class DiagramService {
171
179
  });
172
180
  }
173
181
  _creteGatewayOutput(_node) {
174
- DiagramUtils.createOutputsConfig(_node.id, [
175
- 'secondary',
176
- 'tertiary'
177
- ]).forEach((input) => this.createOutput(_node, input.id, input === null || input === void 0 ? void 0 : input.config));
182
+ DiagramUtils.createOutputsConfig(_node.id, ['secondary', 'tertiary']).forEach((input) => this.createOutput(_node, input.id, input === null || input === void 0 ? void 0 : input.config));
178
183
  }
179
184
  _removeNode(data) {
180
185
  return __awaiter(this, void 0, void 0, function* () {
@@ -185,32 +190,38 @@ export class DiagramService {
185
190
  const viewNode = (id) => this.plugins.area.nodeViews.get(id);
186
191
  let config = node.config;
187
192
  let index = null;
188
- let position = null;
193
+ let position = { x: 0, y: 0 };
189
194
  let direction = null;
190
- if (config.isLinked) {
191
- index = this.editor.getNodes().findIndex((nd) => nd.id === data.nodeId);
192
- position = viewNode(data.nodeId).position;
193
- direction = node.directions;
194
- }
195
- this.plugins.readonly.disable();
196
- yield removeNode(data, this.editor);
197
- if (config.isLinked) {
198
- const nodes = this.editor.getNodes().slice(index);
199
- while (nodes.length) {
200
- const _node = nodes.shift();
201
- const _dir = Object.assign({}, _node.directions);
202
- const _position = Object.assign({}, viewNode(_node.id).position);
203
- _node.directions = direction;
204
- if (_node.type == NODE_TYPE.end) {
205
- position.y = Math.abs(Math.floor(position.y - (_node.height - NODE_CIRCLE_SIZE) / 2));
195
+ if (config) {
196
+ if (config === null || config === void 0 ? void 0 : config.isLinked) {
197
+ index = this.editor.getNodes().findIndex((nd) => nd.id === data.nodeId);
198
+ position = viewNode(data.nodeId).position;
199
+ direction = node.directions;
200
+ }
201
+ this.plugins.readonly.disable();
202
+ yield removeNode(data, this.editor);
203
+ if (config.isLinked) {
204
+ //@ts-ignore
205
+ const nodes = this.editor.getNodes().slice(index);
206
+ while (nodes.length) {
207
+ const _node = nodes.shift();
208
+ if (!_node) {
209
+ continue;
210
+ }
211
+ const _dir = Object.assign({}, _node.directions);
212
+ const _position = Object.assign({}, viewNode(_node.id).position);
213
+ _node.directions = direction;
214
+ if (_node.type == NODE_TYPE.end) {
215
+ position.y = Math.abs(Math.floor(position.y - (_node.height - NODE_CIRCLE_SIZE) / 2));
216
+ }
217
+ yield this.plugins.area.translate(_node.id, position);
218
+ yield this.plugins.area.update('node', _node.id);
219
+ position = _position;
220
+ direction = _dir;
206
221
  }
207
- yield this.plugins.area.translate(_node.id, position);
208
- yield this.plugins.area.update('node', _node.id);
209
- position = _position;
210
- direction = _dir;
211
222
  }
223
+ this.plugins.readonly.enable();
212
224
  }
213
- this.plugins.readonly.enable();
214
225
  });
215
226
  }
216
227
  }
@@ -219,4 +230,4 @@ DiagramService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versi
219
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DiagramService, decorators: [{
220
231
  type: Injectable
221
232
  }], ctorParameters: function () { return [{ type: i1.DiagramPluginsService }]; } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy9zZXJ2aWNlcy9kaWFncmFtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsU0FBUyxFQUNULFVBQVUsRUFFWCxNQUFNLFdBQVcsQ0FBQztBQVluQixPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVix3QkFBd0IsRUFDekIsTUFBTSxjQUFjLENBQUM7OztBQUl0QixNQUFNLE9BQU8sY0FBYztJQVUxQjs7T0FFRztJQUNILFlBQW1CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBWnpDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztRQUs3RCxhQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU9VLENBQUM7SUFFckQsU0FBUyxDQUFDLE1BQWdDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELGVBQWU7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2hCLFFBQVEsRUFBRTthQUNWLE1BQU0sQ0FDTixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBVyxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWtCO1FBQzVCLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDM0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFFLEVBQW9CLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDL0MsQ0FBQztRQUNGLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVLLE9BQU8sQ0FBQyxJQUFtQjs7WUFDaEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFRCxVQUFVLENBQ1QsT0FBaUIsU0FBUyxDQUFDLE9BQU8sRUFDbEMsTUFBMEI7UUFFMUIsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDN0QsVUFBVSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRTthQUMzQyxDQUFDLENBQUM7U0FDSDtRQUVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMvRCxVQUFVLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixFQUFFO2FBQzVDLENBQUMsQ0FBQztTQUNIO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFJLEtBQUssQ0FBQyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBVyxDQUFDLEVBQUU7WUFDekUsTUFBTSxZQUFZLEdBQWUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRXpFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FDOUQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUN2RCxDQUFDO1lBRUYsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUMvRCxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQ3hELENBQUM7U0FDRjtRQUVELEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxPQUFPLEtBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzlCLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDakMsT0FBTyxLQUFLLENBQUM7U0FDYjtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDM0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFFLEVBQW9CLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQ3RELENBQUM7UUFFRixPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFlBQVk7UUFDWCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGVBQWU7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQVU7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQ1YsSUFBbUIsRUFDbkIsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUN2QixNQUF3QjtRQUV4QixJQUFJLENBQUMsUUFBUSxDQUNaLEVBQUUsRUFDRixJQUFJLFNBQVMsaUJBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQ2hCLE1BQU0sRUFDUixDQUNGLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLENBQ1gsSUFBbUIsRUFDbkIsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUN4QixNQUF5QjtRQUV6QixJQUFJLENBQUMsU0FBUyxDQUNiLEVBQUUsRUFDRixJQUFJLFVBQVUsaUJBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQ2hCLE1BQU0sRUFDUixDQUNGLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFSyxhQUFhLENBQ2xCLFVBQXlCLEVBQ3pCLFVBQXlCLEVBQ3pCLE1BQTZCOztZQUU3QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FDckQsQ0FBQztRQUNILENBQUM7S0FBQTtJQUVELGdCQUFnQixDQUNmLFVBQXlCLEVBQ3pCLFVBQXlCLEVBQ3pCLE1BQTZCO1FBRTdCLE9BQU8sSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUssZ0JBQWdCLENBQUMsVUFBc0I7O1lBQzVDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsQ0FBQztLQUFBO0lBRUssS0FBSzs7WUFDVixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0tBQUE7SUFFRCxNQUFNO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBbUI7UUFDakMsT0FBTyxDQUNOLFNBQTBCLEVBQzFCLE9BRXNCLEVBQ3JCLEVBQUU7O1lBQ0gsTUFBTSxRQUFRLEdBQUc7Z0JBQ2hCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsRCxDQUFDO1lBRUYsT0FBTyxNQUFBLFFBQVEsQ0FBQyxTQUFTLENBQUMsK0NBQW5CLFFBQVEsRUFBYyxPQUE2QixDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVLLGFBQWE7O1lBQ2xCLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDbkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuRSxDQUFDO0tBQUE7SUFFSyxhQUFhOztZQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLElBQUksRUFBRTtnQkFDVCxNQUFNLHdCQUF3QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEQ7UUFDRixDQUFDO0tBQUE7SUFFTyxtQkFBbUIsQ0FDMUIsS0FBMkI7UUFFM0IsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDMUMsV0FBVztZQUNYLFVBQVU7U0FDVixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFYSxXQUFXLENBQUMsSUFBd0I7O1lBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNWLE9BQU87YUFDUDtZQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXJFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDekIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksUUFBUSxHQUFhLElBQUksQ0FBQztZQUM5QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQzFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsTUFBTSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVwQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDNUIsTUFBTSxJQUFJLHFCQUFRLEtBQUssQ0FBQyxVQUFVLENBQUUsQ0FBQztvQkFDckMsTUFBTSxTQUFTLHFCQUFRLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFFLENBQUM7b0JBQ3JELEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO29CQUM3QixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRTt3QkFDaEMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzlELENBQUM7cUJBQ0Y7b0JBQ0QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDdEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDakQsUUFBUSxHQUFHLFNBQVMsQ0FBQztvQkFDckIsU0FBUyxHQUFHLElBQUksQ0FBQztpQkFDakI7YUFDRDtZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hDLENBQUM7S0FBQTs7NEdBcFNXLGNBQWM7Z0hBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOb2RlRWRpdG9yIH0gZnJvbSAncmV0ZSc7XHJcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAncmV0ZS1hcmVhLXBsdWdpbi9fdHlwZXMvdHlwZXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5PREVfQ0lSQ0xFX1NJWkUsIE5PREVfVFlQRSwgTk9USUZZX0VWRU5UIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgaW5pdE5vZGVCeVR5cGUgfSBmcm9tICcuLi9lZGl0b3InO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VOb2RlQ2xhc3MsXHJcbiAgQ29ubmVjdGlvbixcclxuICBDb250ZW50Tm9kZSxcclxuICBJbnB1dFBvcnQsXHJcbiAgT3V0cHV0UG9ydCxcclxuICBTb2NrZXRcclxufSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIENvbm5lY3Rpb25Db25maWdUeXBlLFxyXG4gIERpYWdyYW1FZGl0b3JXaXRoUGx1Z2lucyxcclxuICBJbnB1dENvbmZpZ1R5cGUsXHJcbiAgTm9kZURlZmluaXRpb25EYXRhLFxyXG4gIE5vZGVUeXBlLFxyXG4gIE5vdGlmeUV2ZW50VHlwZSxcclxuICBPdXRwdXRDb25maWdUeXBlLFxyXG4gIFBvcnRUeXBlLFxyXG4gIFNjaGVtZXNcclxufSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgRGlhZ3JhbVV0aWxzLFxyXG4gIHJlbW92ZU5vZGUsXHJcbiAgcmVtb3ZlTm9kZUFuZENvbm5lY3Rpb25zXHJcbn0gZnJvbSAnLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgRGlhZ3JhbVBsdWdpbnNTZXJ2aWNlIH0gZnJvbSAnLi9kaWFncmFtLXBsdWdpbnMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEaWFncmFtU2VydmljZSB7XHJcblx0cHJpdmF0ZSBfZWRpdG9yU3ViID0gbmV3IFN1YmplY3Q8RGlhZ3JhbUVkaXRvcldpdGhQbHVnaW5zPigpO1xyXG5cclxuXHRwdWJsaWMgZWRpdG9yITogTm9kZUVkaXRvcjxTY2hlbWVzPjtcclxuXHRwdWJsaWMgc29ja2V0ITogU29ja2V0O1xyXG5cclxuXHRvblJlYWR5JCA9IHRoaXMuX2VkaXRvclN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRkZXN0cm95ITogKCkgPT4gdm9pZDtcclxuXHRmaXRUb1pvb20hOiAoKSA9PiB2b2lkO1xyXG5cclxuXHQvKipcclxuXHQgKlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBwbHVnaW5zOiBEaWFncmFtUGx1Z2luc1NlcnZpY2UpIHt9XHJcblxyXG5cdHNldEVkaXRvcihlZGl0b3I6IERpYWdyYW1FZGl0b3JXaXRoUGx1Z2lucykge1xyXG5cdFx0dGhpcy5fZWRpdG9yU3ViLm5leHQoZWRpdG9yKTtcclxuXHRcdHRoaXMuZWRpdG9yID0gZWRpdG9yLmVkaXRvcjtcclxuXHRcdHRoaXMuc29ja2V0ID0gZWRpdG9yLnNvY2tldDtcclxuXHRcdHRoaXMuZGVzdHJveSA9IGVkaXRvci5kZXN0cm95O1xyXG5cdFx0dGhpcy5maXRUb1pvb20gPSBlZGl0b3IuZml0VG9ab29tO1xyXG5cdH1cclxuXHJcblx0ZGlhZ3JhbUNsaWVudFJlY3QoKTogRE9NUmVjdCB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5wbHVnaW5zLmFyZWEuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0Q29udGVudE5vZGVzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yXHJcblx0XHRcdC5nZXROb2RlcygpXHJcblx0XHRcdC5maWx0ZXIoXHJcblx0XHRcdFx0KG5kKSA9PiAhW05PREVfVFlQRS5zdGFydCwgTk9ERV9UWVBFLmVuZF0uaW5jbHVkZXMobmQudHlwZSBhcyBhbnkpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXROb2Rlc0RhdGEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRDb250ZW50Tm9kZXMoKS5tYXAoKG5vZGUpID0+IG5vZGUuY29udGVudC5kYXRhKTtcclxuXHR9XHJcblxyXG5cdGNhbkFkZE5vZGUobm9kZVR5cGU6IE5vZGVUeXBlKSB7XHJcblx0XHRpZiAobm9kZVR5cGUgPT09IE5PREVfVFlQRS5jb250ZW50KSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgX25vZGVzID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKTtcclxuXHRcdGNvbnN0IF9pc0V4aXN0ID0gX25vZGVzLnNvbWUoXHJcblx0XHRcdChuZCkgPT4gKG5kIGFzIEJhc2VOb2RlQ2xhc3MpLnR5cGUgPT09IG5vZGVUeXBlXHJcblx0XHQpO1xyXG5cdFx0cmV0dXJuICFfaXNFeGlzdDtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFkZE5vZGUobm9kZTogQmFzZU5vZGVDbGFzcykge1xyXG5cdFx0YXdhaXQgdGhpcy5lZGl0b3IuYWRkTm9kZShub2RlKTtcclxuXHR9XHJcblxyXG5cdGNyZWF0ZU5vZGU8VCBleHRlbmRzIEJhc2VOb2RlQ2xhc3MgPSBDb250ZW50Tm9kZT4oXHJcblx0XHR0eXBlOiBOb2RlVHlwZSA9IE5PREVfVFlQRS5jb250ZW50LFxyXG5cdFx0Y29uZmlnOiBOb2RlRGVmaW5pdGlvbkRhdGFcclxuXHQpOiBUIHtcclxuXHRcdGNvbnN0IF9ub2RlID0gaW5pdE5vZGVCeVR5cGUodHlwZSwgY29uZmlnKTtcclxuXHJcblx0XHRpZiAoY29uZmlnLnR5cGUgIT09IE5PREVfVFlQRS5zdGFydCkge1xyXG5cdFx0XHR0aGlzLmNyZWF0ZUlucHV0KF9ub2RlLCBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRJZChfbm9kZS5pZCksIHtcclxuXHRcdFx0XHRzdHlsZUNsYXNzOiBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRDbGFzcygpXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcudHlwZSAhPT0gTk9ERV9UWVBFLmVuZCkge1xyXG5cdFx0XHR0aGlzLmNyZWF0ZU91dHB1dChfbm9kZSwgRGlhZ3JhbVV0aWxzLmNyZWF0ZU91dHB1dElkKF9ub2RlLmlkKSwge1xyXG5cdFx0XHRcdHN0eWxlQ2xhc3M6IERpYWdyYW1VdGlscy5jcmVhdGVPdXRwdXRDbGFzcygpXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcudHlwZSA9PT0gTk9ERV9UWVBFLmdhdGV3YXkpIHtcclxuXHRcdFx0dGhpcy5fY3JldGVHYXRld2F5T3V0cHV0PFQ+KF9ub2RlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoW05PREVfVFlQRS5jb250ZW50LCBOT0RFX1RZUEUudGVtcGxhdGVdLmluY2x1ZGVzKGNvbmZpZy50eXBlIGFzIGFueSkpIHtcclxuXHRcdFx0Y29uc3QgY29udGVudFBvcnRzOiBQb3J0VHlwZVtdID0gWydzZWNvbmRhcnknLCAndGVydGlhcnknLCAncXVhdGVybmFyeSddO1xyXG5cclxuXHRcdFx0RGlhZ3JhbVV0aWxzLmNyZWF0ZUlucHV0c0NvbmZpZyhfbm9kZS5pZCwgY29udGVudFBvcnRzKS5mb3JFYWNoKFxyXG5cdFx0XHRcdCh7IGlkLCBjb25maWcgfSkgPT4gdGhpcy5jcmVhdGVJbnB1dChfbm9kZSwgaWQsIGNvbmZpZylcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdERpYWdyYW1VdGlscy5jcmVhdGVPdXRwdXRzQ29uZmlnKF9ub2RlLmlkLCBjb250ZW50UG9ydHMpLmZvckVhY2goXHJcblx0XHRcdFx0KHsgaWQsIGNvbmZpZyB9KSA9PiB0aGlzLmNyZWF0ZU91dHB1dChfbm9kZSwgaWQsIGNvbmZpZylcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRfbm9kZS5ub3RpZnkgPSB0aGlzLm5vdGlmeUxpc3RlbmVyKF9ub2RlKTtcclxuXHJcblx0XHRyZXR1cm4gX25vZGUgYXMgVDtcclxuXHR9XHJcblxyXG5cdHNob3VsZEFkZFN0YXJ0KG5vZGVUeXBlOiBzdHJpbmcpIHtcclxuXHRcdGlmIChub2RlVHlwZSA9PT0gTk9ERV9UWVBFLnN0YXJ0KSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IF9ub2RlcyA9IHRoaXMuZWRpdG9yLmdldE5vZGVzKCk7XHJcblx0XHRjb25zdCBfaXNFeGlzdCA9IF9ub2Rlcy5zb21lKFxyXG5cdFx0XHQobmQpID0+IChuZCBhcyBCYXNlTm9kZUNsYXNzKS50eXBlID09PSBOT0RFX1RZUEUuc3RhcnRcclxuXHRcdCk7XHJcblxyXG5cdFx0cmV0dXJuICFfaXNFeGlzdDtcclxuXHR9XHJcblxyXG5cdGdldE5vZGUoaWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yLmdldE5vZGUoaWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm9kZXMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKTtcclxuXHR9XHJcblxyXG5cdGdldENvbm5lY3Rpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yLmdldENvbm5lY3Rpb25zKCk7XHJcblx0fVxyXG5cclxuXHRnZXRDb25uZWN0aW9uKGlkOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXRvci5nZXRDb25uZWN0aW9uKGlkKTtcclxuXHR9XHJcblxyXG5cdGdldExhc3ROb2RlKCkge1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmVkaXRvci5nZXROb2RlcygpO1xyXG5cdFx0cmV0dXJuIG5vZGVzLmxlbmd0aCA/IG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdIDogbnVsbDtcclxuXHR9XHJcblxyXG5cdGdldE5vZGVzQnlUeXBlKHR5cGU6IE5vZGVUeXBlKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKS5maWx0ZXIoKG5kKSA9PiBuZC50eXBlID09PSB0eXBlKTtcclxuXHR9XHJcblxyXG5cdGdldFZpZXdOb2RlcygpIHtcclxuXHRcdHJldHVybiBBcnJheS5mcm9tKHRoaXMucGx1Z2lucy5hcmVhLm5vZGVWaWV3cy52YWx1ZXMoKSk7XHJcblx0fVxyXG5cclxuXHRnZXRMYXN0Vmlld05vZGUoKSB7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMuZ2V0Vmlld05vZGVzKCk7XHJcblx0XHRyZXR1cm4gbm9kZXMubGVuZ3RoID8gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0gOiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0Vmlld05vZGUoaWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMucGx1Z2lucy5hcmVhLm5vZGVWaWV3cy5nZXQoaWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0Vmlld05vZGVQb3NpdGlvbihpZDogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBub2RlID0gdGhpcy5nZXRWaWV3Tm9kZShpZCk7XHJcblx0XHRyZXR1cm4gbm9kZSA/IG5vZGUucG9zaXRpb24gOiBudWxsO1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlSW5wdXQoXHJcblx0XHRub2RlOiBCYXNlTm9kZUNsYXNzLFxyXG5cdFx0aWQgPSBgJHtub2RlLmlkfS1pbnB1dGAsXHJcblx0XHRjb25maWc/OiBJbnB1dENvbmZpZ1R5cGVcclxuXHQpIHtcclxuXHRcdG5vZGUuYWRkSW5wdXQoXHJcblx0XHRcdGlkLFxyXG5cdFx0XHRuZXcgSW5wdXRQb3J0KHtcclxuXHRcdFx0XHRzb2NrZXQ6IHRoaXMuc29ja2V0LFxyXG5cdFx0XHRcdC4uLmNvbmZpZ1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHRcdHJldHVybiBub2RlO1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlT3V0cHV0KFxyXG5cdFx0bm9kZTogQmFzZU5vZGVDbGFzcyxcclxuXHRcdGlkID0gYCR7bm9kZS5pZH0tb3V0cHV0YCxcclxuXHRcdGNvbmZpZz86IE91dHB1dENvbmZpZ1R5cGVcclxuXHQpIHtcclxuXHRcdG5vZGUuYWRkT3V0cHV0KFxyXG5cdFx0XHRpZCxcclxuXHRcdFx0bmV3IE91dHB1dFBvcnQoe1xyXG5cdFx0XHRcdHNvY2tldDogdGhpcy5zb2NrZXQsXHJcblx0XHRcdFx0Li4uY29uZmlnXHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdFx0cmV0dXJuIG5vZGU7XHJcblx0fVxyXG5cclxuXHRhc3luYyBhZGRDb25uZWN0aW9uKFxyXG5cdFx0c291cmNlTm9kZTogQmFzZU5vZGVDbGFzcyxcclxuXHRcdHRhcmdldE5vZGU6IEJhc2VOb2RlQ2xhc3MsXHJcblx0XHRjb25maWc/OiBDb25uZWN0aW9uQ29uZmlnVHlwZVxyXG5cdCkge1xyXG5cdFx0YXdhaXQgdGhpcy5lZGl0b3IuYWRkQ29ubmVjdGlvbihcclxuXHRcdFx0dGhpcy5jcmVhdGVDb25uZWN0aW9uKHNvdXJjZU5vZGUsIHRhcmdldE5vZGUsIGNvbmZpZylcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRjcmVhdGVDb25uZWN0aW9uKFxyXG5cdFx0c291cmNlTm9kZTogQmFzZU5vZGVDbGFzcyxcclxuXHRcdHRhcmdldE5vZGU6IEJhc2VOb2RlQ2xhc3MsXHJcblx0XHRjb25maWc/OiBDb25uZWN0aW9uQ29uZmlnVHlwZVxyXG5cdCkge1xyXG5cdFx0cmV0dXJuIG5ldyBDb25uZWN0aW9uKHNvdXJjZU5vZGUsIHRhcmdldE5vZGUsIGNvbmZpZyk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBhcHBlbmRDb25uZWN0aW9uKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcclxuXHRcdGF3YWl0IHRoaXMuZWRpdG9yLmFkZENvbm5lY3Rpb24oY29ubmVjdGlvbik7XHJcblx0fVxyXG5cclxuXHRhc3luYyBjbGVhcigpIHtcclxuXHRcdHJldHVybiBhd2FpdCB0aGlzLmVkaXRvci5jbGVhcigpO1xyXG5cdH1cclxuXHJcblx0cmVkcmF3KCkge1xyXG5cdFx0dGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKS5mb3JFYWNoKChub2RlKSA9PiB7XHJcblx0XHRcdHRoaXMucGx1Z2lucy5hcmVhLnVwZGF0ZSgnbm9kZScsIG5vZGUuaWQpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRub3RpZnlMaXN0ZW5lcihub2RlOiBCYXNlTm9kZUNsYXNzKSB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHRldmVudFR5cGU6IE5vdGlmeUV2ZW50VHlwZSxcclxuXHRcdFx0cGF5bG9hZDogTm90aWZ5RXZlbnRUeXBlIGV4dGVuZHMgJ3JlbW92ZSdcclxuXHRcdFx0XHQ/IHsgbm9kZUlkOiBzdHJpbmcgfVxyXG5cdFx0XHRcdDogUmVjb3JkPHN0cmluZywgYW55PlxyXG5cdFx0KSA9PiB7XHJcblx0XHRcdGNvbnN0IF9hY3Rpb25zID0ge1xyXG5cdFx0XHRcdFtOT1RJRllfRVZFTlQucmVtb3ZlXTogdGhpcy5fcmVtb3ZlTm9kZS5iaW5kKHRoaXMpXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRyZXR1cm4gX2FjdGlvbnNbZXZlbnRUeXBlXT8uKHBheWxvYWQgYXMgeyBub2RlSWQ6IHN0cmluZyB9KTtcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRhc3luYyB0cmFuc2xhdGVWaWV3KCkge1xyXG5cdFx0Y29uc3QgeyBjb250YWluZXIsIGFyZWEgfSA9IHRoaXMucGx1Z2lucy5hcmVhO1xyXG5cdFx0Y29uc3QgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGNvbnN0IGsgPSBhcmVhLnRyYW5zZm9ybS5rO1xyXG5cdFx0Y29uc3QgZGVsdGEgPSAtMC4yO1xyXG5cdFx0Y29uc3Qgb3ggPSBNYXRoLm1heCgwLCAocmVjdC5sZWZ0IC0gY29udGFpbmVyLmNsaWVudFdpZHRoIC8gMikgKiBrKTtcclxuXHRcdGNvbnN0IG95ID0gTWF0aC5tYXgoMCwgKHJlY3QudG9wIC0gY29udGFpbmVyLmNsaWVudEhlaWdodCAvIDIpICogayk7XHJcblxyXG5cdFx0YXJlYS56b29tKE1hdGgubWF4KDAuMSwgayAqICgxICsgZGVsdGEpKSwgb3ggKiBkZWx0YSwgb3kgKiBkZWx0YSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyByZW1vdmVFbmROb2RlKCkge1xyXG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZXNCeVR5cGUoTk9ERV9UWVBFLmVuZClbMF07XHJcblx0XHRpZiAobm9kZSkge1xyXG5cdFx0XHRhd2FpdCByZW1vdmVOb2RlQW5kQ29ubmVjdGlvbnMobm9kZSwgdGhpcy5lZGl0b3IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfY3JldGVHYXRld2F5T3V0cHV0PFQgZXh0ZW5kcyBCYXNlTm9kZUNsYXNzID0gQ29udGVudE5vZGU+KFxyXG5cdFx0X25vZGU6IENvbnRlbnROb2RlPHVua25vd24+XHJcblx0KSB7XHJcblx0XHREaWFncmFtVXRpbHMuY3JlYXRlT3V0cHV0c0NvbmZpZyhfbm9kZS5pZCwgW1xyXG5cdFx0XHQnc2Vjb25kYXJ5JyxcclxuXHRcdFx0J3RlcnRpYXJ5J1xyXG5cdFx0XSkuZm9yRWFjaCgoaW5wdXQpID0+IHRoaXMuY3JlYXRlT3V0cHV0KF9ub2RlLCBpbnB1dC5pZCwgaW5wdXQ/LmNvbmZpZykpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBfcmVtb3ZlTm9kZShkYXRhOiB7IG5vZGVJZDogc3RyaW5nIH0pIHtcclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmVkaXRvci5nZXROb2RlKGRhdGEubm9kZUlkKTtcclxuXHRcdGlmICghbm9kZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgdmlld05vZGUgPSAoaWQ6IHN0cmluZykgPT4gdGhpcy5wbHVnaW5zLmFyZWEubm9kZVZpZXdzLmdldChpZCk7XHJcblxyXG5cdFx0bGV0IGNvbmZpZyA9IG5vZGUuY29uZmlnO1xyXG5cdFx0bGV0IGluZGV4ID0gbnVsbDtcclxuXHRcdGxldCBwb3NpdGlvbjogUG9zaXRpb24gPSBudWxsO1xyXG5cdFx0bGV0IGRpcmVjdGlvbiA9IG51bGw7XHJcblx0XHRpZiAoY29uZmlnLmlzTGlua2VkKSB7XHJcblx0XHRcdGluZGV4ID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKS5maW5kSW5kZXgoKG5kKSA9PiBuZC5pZCA9PT0gZGF0YS5ub2RlSWQpO1xyXG5cdFx0XHRwb3NpdGlvbiA9IHZpZXdOb2RlKGRhdGEubm9kZUlkKS5wb3NpdGlvbjtcclxuXHRcdFx0ZGlyZWN0aW9uID0gbm9kZS5kaXJlY3Rpb25zO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wbHVnaW5zLnJlYWRvbmx5LmRpc2FibGUoKTtcclxuXHRcdGF3YWl0IHJlbW92ZU5vZGUoZGF0YSwgdGhpcy5lZGl0b3IpO1xyXG5cclxuXHRcdGlmIChjb25maWcuaXNMaW5rZWQpIHtcclxuXHRcdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmVkaXRvci5nZXROb2RlcygpLnNsaWNlKGluZGV4KTtcclxuXHJcblx0XHRcdHdoaWxlIChub2Rlcy5sZW5ndGgpIHtcclxuXHRcdFx0XHRjb25zdCBfbm9kZSA9IG5vZGVzLnNoaWZ0KCk7XHJcblx0XHRcdFx0Y29uc3QgX2RpciA9IHsgLi4uX25vZGUuZGlyZWN0aW9ucyB9O1xyXG5cdFx0XHRcdGNvbnN0IF9wb3NpdGlvbiA9IHsgLi4udmlld05vZGUoX25vZGUuaWQpLnBvc2l0aW9uIH07XHJcblx0XHRcdFx0X25vZGUuZGlyZWN0aW9ucyA9IGRpcmVjdGlvbjtcclxuXHRcdFx0XHRpZiAoX25vZGUudHlwZSA9PSBOT0RFX1RZUEUuZW5kKSB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbi55ID0gTWF0aC5hYnMoXHJcblx0XHRcdFx0XHRcdE1hdGguZmxvb3IocG9zaXRpb24ueSAtIChfbm9kZS5oZWlnaHQgLSBOT0RFX0NJUkNMRV9TSVpFKSAvIDIpXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbnMuYXJlYS50cmFuc2xhdGUoX25vZGUuaWQsIHBvc2l0aW9uKTtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbnMuYXJlYS51cGRhdGUoJ25vZGUnLCBfbm9kZS5pZCk7XHJcblx0XHRcdFx0cG9zaXRpb24gPSBfcG9zaXRpb247XHJcblx0XHRcdFx0ZGlyZWN0aW9uID0gX2RpcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5wbHVnaW5zLnJlYWRvbmx5LmVuYWJsZSgpO1xyXG5cdH1cclxufVxyXG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy9zZXJ2aWNlcy9kaWFncmFtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBaUIsVUFBVSxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQVUsTUFBTSxXQUFXLENBQUM7QUFjbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUlsRixNQUFNLE9BQU8sY0FBYztJQVUxQjs7T0FFRztJQUNILFlBQW1CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBWnpDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztRQUs3RCxhQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU9VLENBQUM7SUFFckQsU0FBUyxDQUFDLE1BQWdDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FB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QUU7d0JBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRTs0QkFDWCxTQUFTO3lCQUNUO3dCQUNELE1BQU0sSUFBSSxxQkFBUSxLQUFLLENBQUMsVUFBVSxDQUFFLENBQUM7d0JBQ3JDLE1BQU0sU0FBUyxxQkFBUSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBRSxDQUFDO3dCQUNyRCxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQXdELENBQUM7d0JBQzVFLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFOzRCQUNoQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RGO3dCQUNELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQ3RELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2pELFFBQVEsR0FBRyxTQUFTLENBQUM7d0JBQ3JCLFNBQVMsR0FBRyxJQUFJLENBQUM7cUJBQ2pCO2lCQUNEO2dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQy9CO1FBQ0YsQ0FBQztLQUFBOzs0R0FsUlcsY0FBYztnSEFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vZGVFZGl0b3IgfSBmcm9tICdyZXRlJztcclxuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICdyZXRlLWFyZWEtcGx1Z2luL190eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTk9ERV9DSVJDTEVfU0laRSwgTk9ERV9UWVBFLCBOT1RJRllfRVZFTlQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBpbml0Tm9kZUJ5VHlwZSB9IGZyb20gJy4uL2VkaXRvcic7XHJcbmltcG9ydCB7IEJhc2VOb2RlQ2xhc3MsIENvbm5lY3Rpb24sIENvbnRlbnROb2RlLCBJbnB1dFBvcnQsIE91dHB1dFBvcnQsIFNvY2tldCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE5vZGVWaWV3IH0gZnJvbSAncmV0ZS1hcmVhLXBsdWdpbic7XHJcbmltcG9ydCB7XHJcblx0Q29ubmVjdGlvbkNvbmZpZ1R5cGUsXHJcblx0RGlhZ3JhbUVkaXRvcldpdGhQbHVnaW5zLFxyXG5cdERpcmVjdGlvblR5cGUsXHJcblx0SW5wdXRDb25maWdUeXBlLFxyXG5cdE5vZGVEZWZpbml0aW9uRGF0YSxcclxuXHROb2RlVHlwZSxcclxuXHROb3RpZnlFdmVudFR5cGUsXHJcblx0T3V0cHV0Q29uZmlnVHlwZSxcclxuXHRQb3J0VHlwZSxcclxuXHRTY2hlbWVzXHJcbn0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBEaWFncmFtVXRpbHMsIHJlbW92ZU5vZGUsIHJlbW92ZU5vZGVBbmRDb25uZWN0aW9ucyB9IGZyb20gJy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IERpYWdyYW1QbHVnaW5zU2VydmljZSB9IGZyb20gJy4vZGlhZ3JhbS1wbHVnaW5zLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGlhZ3JhbVNlcnZpY2Uge1xyXG5cdHByaXZhdGUgX2VkaXRvclN1YiA9IG5ldyBTdWJqZWN0PERpYWdyYW1FZGl0b3JXaXRoUGx1Z2lucz4oKTtcclxuXHJcblx0cHVibGljIGVkaXRvciE6IE5vZGVFZGl0b3I8U2NoZW1lcz47XHJcblx0cHVibGljIHNvY2tldCE6IFNvY2tldDtcclxuXHJcblx0b25SZWFkeSQgPSB0aGlzLl9lZGl0b3JTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0ZGVzdHJveSE6ICgpID0+IHZvaWQ7XHJcblx0Zml0VG9ab29tITogKCkgPT4gdm9pZDtcclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgcGx1Z2luczogRGlhZ3JhbVBsdWdpbnNTZXJ2aWNlKSB7fVxyXG5cclxuXHRzZXRFZGl0b3IoZWRpdG9yOiBEaWFncmFtRWRpdG9yV2l0aFBsdWdpbnMpIHtcclxuXHRcdHRoaXMuX2VkaXRvclN1Yi5uZXh0KGVkaXRvcik7XHJcblx0XHR0aGlzLmVkaXRvciA9IGVkaXRvci5lZGl0b3I7XHJcblx0XHR0aGlzLnNvY2tldCA9IGVkaXRvci5zb2NrZXQ7XHJcblx0XHR0aGlzLmRlc3Ryb3kgPSBlZGl0b3IuZGVzdHJveTtcclxuXHRcdHRoaXMuZml0VG9ab29tID0gZWRpdG9yLmZpdFRvWm9vbTtcclxuXHR9XHJcblxyXG5cdGRpYWdyYW1DbGllbnRSZWN0KCk6IERPTVJlY3QgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMucGx1Z2lucy5hcmVhLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHR9XHJcblxyXG5cdGdldENvbnRlbnROb2RlcygpIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXRvci5nZXROb2RlcygpLmZpbHRlcigobmQpID0+ICFbTk9ERV9UWVBFLnN0YXJ0LCBOT0RFX1RZUEUuZW5kXS5pbmNsdWRlcyhuZC50eXBlIGFzIGFueSkpO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm9kZXNEYXRhKCkge1xyXG5cdFx0Ly9AdHMtaWdub3JlXHJcblx0XHRyZXR1cm4gdGhpcy5nZXRDb250ZW50Tm9kZXMoKS5tYXAoKG5vZGUpID0+IG5vZGUuY29udGVudC5kYXRhKTtcclxuXHR9XHJcblxyXG5cdGNhbkFkZE5vZGUobm9kZVR5cGU6IE5vZGVUeXBlKSB7XHJcblx0XHRpZiAobm9kZVR5cGUgPT09IE5PREVfVFlQRS5jb250ZW50KSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgX25vZGVzID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKTtcclxuXHRcdGNvbnN0IF9pc0V4aXN0ID0gX25vZGVzLnNvbWUoKG5kKSA9PiAobmQgYXMgQmFzZU5vZGVDbGFzcykudHlwZSA9PT0gbm9kZVR5cGUpO1xyXG5cdFx0cmV0dXJuICFfaXNFeGlzdDtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFkZE5vZGUobm9kZTogQmFzZU5vZGVDbGFzcykge1xyXG5cdFx0YXdhaXQgdGhpcy5lZGl0b3IuYWRkTm9kZShub2RlKTtcclxuXHR9XHJcblxyXG5cdGNyZWF0ZU5vZGU8VCBleHRlbmRzIEJhc2VOb2RlQ2xhc3MgPSBDb250ZW50Tm9kZT4odHlwZTogTm9kZVR5cGUgPSBOT0RFX1RZUEUuY29udGVudCwgY29uZmlnOiBOb2RlRGVmaW5pdGlvbkRhdGEpOiBUIHtcclxuXHRcdGNvbnN0IF9ub2RlID0gaW5pdE5vZGVCeVR5cGUodHlwZSwgY29uZmlnKTtcclxuXHJcblx0XHRpZiAoY29uZmlnLnR5cGUgIT09IE5PREVfVFlQRS5zdGFydCkge1xyXG5cdFx0XHR0aGlzLmNyZWF0ZUlucHV0KF9ub2RlLCBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRJZChfbm9kZS5pZCksIHtcclxuXHRcdFx0XHRzdHlsZUNsYXNzOiBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRDbGFzcygpXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcudHlwZSAhPT0gTk9ERV9UWVBFLmVuZCkge1xyXG5cdFx0XHR0aGlzLmNyZWF0ZU91dHB1dChfbm9kZSwgRGlhZ3JhbVV0aWxzLmNyZWF0ZU91dHB1dElkKF9ub2RlLmlkKSwge1xyXG5cdFx0XHRcdHN0eWxlQ2xhc3M6IERpYWdyYW1VdGlscy5jcmVhdGVPdXRwdXRDbGFzcygpXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcudHlwZSA9PT0gTk9ERV9UWVBFLmdhdGV3YXkpIHtcclxuXHRcdFx0dGhpcy5fY3JldGVHYXRld2F5T3V0cHV0PFQ+KF9ub2RlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoW05PREVfVFlQRS5jb250ZW50LCBOT0RFX1RZUEUudGVtcGxhdGVdLmluY2x1ZGVzKGNvbmZpZy50eXBlIGFzIGFueSkpIHtcclxuXHRcdFx0Y29uc3QgY29udGVudFBvcnRzOiBQb3J0VHlwZVtdID0gWydzZWNvbmRhcnknLCAndGVydGlhcnknLCAncXVhdGVybmFyeSddO1xyXG5cclxuXHRcdFx0RGlhZ3JhbVV0aWxzLmNyZWF0ZUlucHV0c0NvbmZpZyhfbm9kZS5pZCwgY29udGVudFBvcnRzKS5mb3JFYWNoKCh7IGlkLCBjb25maWcgfSkgPT5cclxuXHRcdFx0XHR0aGlzLmNyZWF0ZUlucHV0KF9ub2RlLCBpZCwgY29uZmlnKVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0RGlhZ3JhbVV0aWxzLmNyZWF0ZU91dHB1dHNDb25maWcoX25vZGUuaWQsIGNvbnRlbnRQb3J0cykuZm9yRWFjaCgoeyBpZCwgY29uZmlnIH0pID0+XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVPdXRwdXQoX25vZGUsIGlkLCBjb25maWcpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHQvL0B0cy1pZ25vcmVcclxuXHRcdF9ub2RlLm5vdGlmeSA9IHRoaXMubm90aWZ5TGlzdGVuZXIoX25vZGUpO1xyXG5cclxuXHRcdHJldHVybiBfbm9kZSBhcyBUO1xyXG5cdH1cclxuXHJcblx0c2hvdWxkQWRkU3RhcnQobm9kZVR5cGU6IHN0cmluZykge1xyXG5cdFx0aWYgKG5vZGVUeXBlID09PSBOT0RFX1RZUEUuc3RhcnQpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgX25vZGVzID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKTtcclxuXHRcdGNvbnN0IF9pc0V4aXN0ID0gX25vZGVzLnNvbWUoKG5kKSA9PiAobmQgYXMgQmFzZU5vZGVDbGFzcykudHlwZSA9PT0gTk9ERV9UWVBFLnN0YXJ0KTtcclxuXHJcblx0XHRyZXR1cm4gIV9pc0V4aXN0O1xyXG5cdH1cclxuXHJcblx0Z2V0Tm9kZShpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Tm9kZShpZCk7XHJcblx0fVxyXG5cclxuXHRnZXROb2RlcygpIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXRvci5nZXROb2RlcygpO1xyXG5cdH1cclxuXHJcblx0Z2V0Q29ubmVjdGlvbnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Q29ubmVjdGlvbnMoKTtcclxuXHR9XHJcblxyXG5cdGdldENvbm5lY3Rpb24oaWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yLmdldENvbm5lY3Rpb24oaWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0TGFzdE5vZGUoKSB7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMuZWRpdG9yLmdldE5vZGVzKCk7XHJcblx0XHRyZXR1cm4gbm9kZXMubGVuZ3RoID8gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0gOiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm9kZXNCeVR5cGUodHlwZTogTm9kZVR5cGUpIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXRvci5nZXROb2RlcygpLmZpbHRlcigobmQpID0+IG5kLnR5cGUgPT09IHR5cGUpO1xyXG5cdH1cclxuXHJcblx0Z2V0Vmlld05vZGVzKCkge1xyXG5cdFx0cmV0dXJuIEFycmF5LmZyb20odGhpcy5wbHVnaW5zLmFyZWEubm9kZVZpZXdzLnZhbHVlcygpKTtcclxuXHR9XHJcblxyXG5cdGdldExhc3RWaWV3Tm9kZSgpIHtcclxuXHRcdGNvbnN0IG5vZGVzID0gdGhpcy5nZXRWaWV3Tm9kZXMoKTtcclxuXHRcdHJldHVybiBub2Rlcy5sZW5ndGggPyBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSA6IG51bGw7XHJcblx0fVxyXG5cclxuXHRnZXRWaWV3Tm9kZShpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wbHVnaW5zLmFyZWEubm9kZVZpZXdzLmdldChpZCk7XHJcblx0fVxyXG5cclxuXHRnZXRWaWV3Tm9kZVBvc2l0aW9uKGlkOiBzdHJpbmcpIHtcclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmdldFZpZXdOb2RlKGlkKTtcclxuXHRcdHJldHVybiBub2RlID8gbm9kZS5wb3NpdGlvbiA6IG51bGw7XHJcblx0fVxyXG5cclxuXHRnZXRMYXJnZXN0WFBvc2l0aW9uKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ2V0Vmlld05vZGVzKCkucmVkdWNlKCh4LCBub2RlKSA9PiB7XHJcblx0XHRcdGlmIChub2RlLnBvc2l0aW9uLnggPiB4KSB7XHJcblx0XHRcdFx0eCA9IG5vZGUucG9zaXRpb24ueDtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4geDtcclxuXHRcdH0sIDApO1xyXG5cdH1cclxuXHJcblx0Y3JlYXRlSW5wdXQobm9kZTogQmFzZU5vZGVDbGFzcywgaWQgPSBgJHtub2RlLmlkfS1pbnB1dGAsIGNvbmZpZz86IElucHV0Q29uZmlnVHlwZSkge1xyXG5cdFx0bm9kZS5hZGRJbnB1dChcclxuXHRcdFx0aWQsXHJcblx0XHRcdG5ldyBJbnB1dFBvcnQoe1xyXG5cdFx0XHRcdHNvY2tldDogdGhpcy5zb2NrZXQsXHJcblx0XHRcdFx0Li4uY29uZmlnXHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdFx0cmV0dXJuIG5vZGU7XHJcblx0fVxyXG5cclxuXHRjcmVhdGVPdXRwdXQobm9kZTogQmFzZU5vZGVDbGFzcywgaWQgPSBgJHtub2RlLmlkfS1vdXRwdXRgLCBjb25maWc/OiBPdXRwdXRDb25maWdUeXBlKSB7XHJcblx0XHRub2RlLmFkZE91dHB1dChcclxuXHRcdFx0aWQsXHJcblx0XHRcdG5ldyBPdXRwdXRQb3J0KHtcclxuXHRcdFx0XHRzb2NrZXQ6IHRoaXMuc29ja2V0LFxyXG5cdFx0XHRcdC4uLmNvbmZpZ1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHRcdHJldHVybiBub2RlO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgYWRkQ29ubmVjdGlvbihzb3VyY2VOb2RlOiBCYXNlTm9kZUNsYXNzLCB0YXJnZXROb2RlOiBCYXNlTm9kZUNsYXNzLCBjb25maWc/OiBDb25uZWN0aW9uQ29uZmlnVHlwZSkge1xyXG5cdFx0YXdhaXQgdGhpcy5lZGl0b3IuYWRkQ29ubmVjdGlvbih0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oc291cmNlTm9kZSwgdGFyZ2V0Tm9kZSwgY29uZmlnKSk7XHJcblx0fVxyXG5cclxuXHRjcmVhdGVDb25uZWN0aW9uKHNvdXJjZU5vZGU6IEJhc2VOb2RlQ2xhc3MsIHRhcmdldE5vZGU6IEJhc2VOb2RlQ2xhc3MsIGNvbmZpZz86IENvbm5lY3Rpb25Db25maWdUeXBlKSB7XHJcblx0XHRyZXR1cm4gbmV3IENvbm5lY3Rpb24oc291cmNlTm9kZSwgdGFyZ2V0Tm9kZSwgY29uZmlnKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFwcGVuZENvbm5lY3Rpb24oY29ubmVjdGlvbjogQ29ubmVjdGlvbikge1xyXG5cdFx0YXdhaXQgdGhpcy5lZGl0b3IuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGNsZWFyKCkge1xyXG5cdFx0cmV0dXJuIGF3YWl0IHRoaXMuZWRpdG9yLmNsZWFyKCk7XHJcblx0fVxyXG5cclxuXHRyZWRyYXcoKSB7XHJcblx0XHR0aGlzLmVkaXRvci5nZXROb2RlcygpLmZvckVhY2goKG5vZGUpID0+IHtcclxuXHRcdFx0dGhpcy5wbHVnaW5zLmFyZWEudXBkYXRlKCdub2RlJywgbm9kZS5pZCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5vdGlmeUxpc3RlbmVyKG5vZGU6IEJhc2VOb2RlQ2xhc3MpIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdGV2ZW50VHlwZTogTm90aWZ5RXZlbnRUeXBlLFxyXG5cdFx0XHRwYXlsb2FkOiBOb3RpZnlFdmVudFR5cGUgZXh0ZW5kcyAncmVtb3ZlJyA/IHsgbm9kZUlkOiBzdHJpbmcgfSA6IFJlY29yZDxzdHJpbmcsIGFueT5cclxuXHRcdCkgPT4ge1xyXG5cdFx0XHRjb25zdCBfYWN0aW9ucyA9IHtcclxuXHRcdFx0XHRbTk9USUZZX0VWRU5ULnJlbW92ZV06IHRoaXMuX3JlbW92ZU5vZGUuYmluZCh0aGlzKVxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0cmV0dXJuIF9hY3Rpb25zW2V2ZW50VHlwZV0/LihwYXlsb2FkIGFzIHsgbm9kZUlkOiBzdHJpbmcgfSk7XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0YXN5bmMgdHJhbnNsYXRlVmlldygpIHtcclxuXHRcdGNvbnN0IHsgY29udGFpbmVyLCBhcmVhIH0gPSB0aGlzLnBsdWdpbnMuYXJlYTtcclxuXHRcdGNvbnN0IHJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRjb25zdCBrID0gYXJlYS50cmFuc2Zvcm0uaztcclxuXHRcdGNvbnN0IGRlbHRhID0gLTAuMjtcclxuXHRcdGNvbnN0IG94ID0gTWF0aC5tYXgoMCwgKHJlY3QubGVmdCAtIGNvbnRhaW5lci5jbGllbnRXaWR0aCAvIDIpICogayk7XHJcblx0XHRjb25zdCBveSA9IE1hdGgubWF4KDAsIChyZWN0LnRvcCAtIGNvbnRhaW5lci5jbGllbnRIZWlnaHQgLyAyKSAqIGspO1xyXG5cclxuXHRcdGFyZWEuem9vbShNYXRoLm1heCgwLjEsIGsgKiAoMSArIGRlbHRhKSksIG94ICogZGVsdGEsIG95ICogZGVsdGEpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgcmVtb3ZlRW5kTm9kZSgpIHtcclxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGVzQnlUeXBlKE5PREVfVFlQRS5lbmQpWzBdO1xyXG5cdFx0aWYgKG5vZGUpIHtcclxuXHRcdFx0YXdhaXQgcmVtb3ZlTm9kZUFuZENvbm5lY3Rpb25zKG5vZGUsIHRoaXMuZWRpdG9yKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2NyZXRlR2F0ZXdheU91dHB1dDxUIGV4dGVuZHMgQmFzZU5vZGVDbGFzcyA9IENvbnRlbnROb2RlPihfbm9kZTogQ29udGVudE5vZGU8dW5rbm93bj4pIHtcclxuXHRcdERpYWdyYW1VdGlscy5jcmVhdGVPdXRwdXRzQ29uZmlnKF9ub2RlLmlkLCBbJ3NlY29uZGFyeScsICd0ZXJ0aWFyeSddKS5mb3JFYWNoKChpbnB1dCkgPT5cclxuXHRcdFx0dGhpcy5jcmVhdGVPdXRwdXQoX25vZGUsIGlucHV0LmlkLCBpbnB1dD8uY29uZmlnKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgX3JlbW92ZU5vZGUoZGF0YTogeyBub2RlSWQ6IHN0cmluZyB9KSB7XHJcblx0XHRjb25zdCBub2RlID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZShkYXRhLm5vZGVJZCk7XHJcblx0XHRpZiAoIW5vZGUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHZpZXdOb2RlID0gKGlkOiBzdHJpbmcpID0+IHRoaXMucGx1Z2lucy5hcmVhLm5vZGVWaWV3cy5nZXQoaWQpIGFzIE5vZGVWaWV3O1xyXG5cclxuXHRcdGxldCBjb25maWcgPSBub2RlLmNvbmZpZztcclxuXHRcdGxldCBpbmRleCA9IG51bGw7XHJcblxyXG5cdFx0bGV0IHBvc2l0aW9uOiBQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9O1xyXG5cdFx0bGV0IGRpcmVjdGlvbjogUmVjb3JkPCdpbnB1dHMnIHwgJ291dHB1dHMnLCBEaXJlY3Rpb25UeXBlPiB8IG51bGwgPSBudWxsO1xyXG5cdFx0aWYgKGNvbmZpZykge1xyXG5cdFx0XHRpZiAoY29uZmlnPy5pc0xpbmtlZCkge1xyXG5cdFx0XHRcdGluZGV4ID0gdGhpcy5lZGl0b3IuZ2V0Tm9kZXMoKS5maW5kSW5kZXgoKG5kKSA9PiBuZC5pZCA9PT0gZGF0YS5ub2RlSWQpO1xyXG5cclxuXHRcdFx0XHRwb3NpdGlvbiA9IHZpZXdOb2RlKGRhdGEubm9kZUlkKS5wb3NpdGlvbjtcclxuXHRcdFx0XHRkaXJlY3Rpb24gPSBub2RlLmRpcmVjdGlvbnM7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5wbHVnaW5zLnJlYWRvbmx5LmRpc2FibGUoKTtcclxuXHRcdFx0YXdhaXQgcmVtb3ZlTm9kZShkYXRhLCB0aGlzLmVkaXRvcik7XHJcblxyXG5cdFx0XHRpZiAoY29uZmlnLmlzTGlua2VkKSB7XHJcblx0XHRcdFx0Ly9AdHMtaWdub3JlXHJcblx0XHRcdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmVkaXRvci5nZXROb2RlcygpLnNsaWNlKGluZGV4KTtcclxuXHJcblx0XHRcdFx0d2hpbGUgKG5vZGVzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0Y29uc3QgX25vZGUgPSBub2Rlcy5zaGlmdCgpO1xyXG5cdFx0XHRcdFx0aWYgKCFfbm9kZSkge1xyXG5cdFx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IF9kaXIgPSB7IC4uLl9ub2RlLmRpcmVjdGlvbnMgfTtcclxuXHRcdFx0XHRcdGNvbnN0IF9wb3NpdGlvbiA9IHsgLi4udmlld05vZGUoX25vZGUuaWQpLnBvc2l0aW9uIH07XHJcblx0XHRcdFx0XHRfbm9kZS5kaXJlY3Rpb25zID0gZGlyZWN0aW9uIGFzIFJlY29yZDwnaW5wdXRzJyB8ICdvdXRwdXRzJywgRGlyZWN0aW9uVHlwZT47XHJcblx0XHRcdFx0XHRpZiAoX25vZGUudHlwZSA9PSBOT0RFX1RZUEUuZW5kKSB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uLnkgPSBNYXRoLmFicyhNYXRoLmZsb29yKHBvc2l0aW9uLnkgLSAoX25vZGUuaGVpZ2h0IC0gTk9ERV9DSVJDTEVfU0laRSkgLyAyKSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbnMuYXJlYS50cmFuc2xhdGUoX25vZGUuaWQsIHBvc2l0aW9uKTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2lucy5hcmVhLnVwZGF0ZSgnbm9kZScsIF9ub2RlLmlkKTtcclxuXHRcdFx0XHRcdHBvc2l0aW9uID0gX3Bvc2l0aW9uO1xyXG5cdFx0XHRcdFx0ZGlyZWN0aW9uID0gX2RpcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5wbHVnaW5zLnJlYWRvbmx5LmVuYWJsZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=