ps-toolkit-ui 1.9.30 → 1.9.32

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.
@@ -71,7 +71,7 @@ export class FormSelectComponent {
71
71
  }
72
72
  if (this.inp.addModal) {
73
73
  if ((_a = this.inp.addModal.form) === null || _a === void 0 ? void 0 : _a.permission) {
74
- this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-t-25');
74
+ this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-t-25 m-r-15-p');
75
75
  this.addIcon.onClick = () => {
76
76
  this.inp.addModal.show();
77
77
  };
@@ -400,7 +400,7 @@ FormSelectComponent.decorators = [
400
400
  { type: Component, args: [{
401
401
  selector: 'lib-form-select',
402
402
  template: "<div #inputDiv [id]=\"inp.id + 'SelectInput'\" [style]=\"inp.style\" [className]=\"'form-input-con select w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon != null ? '' : ' without-icon') + (inp.addModal != null ? ' add-modal' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"toggleOption($event)\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i><span class=\"f-r\" [innerHTML]=\"inp.getLabel()\"></span></div>\r\n <div class=\"w-100 p-r\">\r\n <div *ngIf=\"inp.type === type.Select\" class=\"without-search\"></div>\r\n <span *ngIf=\"inp.icon != null || inp.loading\" (click)=\"inp.button && onClickButton()\" #inputIcon [className]=\"(inp.button ? inp.button + ' button ' : '') + 'icon'\">\r\n <i [className]=\"inp.loading ? 'fa-duotone fa-spin fa-spinner ' : inp.icon + ' '\"></i>\r\n </span>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fa-duotone fa-eraser clear-icon\"></i>\r\n <input (keydown)=\"onKeyDown($event)\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.search\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" [name]=\"inp.name\" class=\"control\" autocomplete=\"off\" [readOnly]=\"inp.type === type.Select\" [maxLength]=\"inp.maxLength > 0 ? inp.maxLength : 524288\">\r\n <div class=\"options\">\r\n <div #inputOptionsDiv class=\"items\">\r\n <lib-form-select-item (selectOption)=\"selectOption($event)\" [level]=\"1\" [select]=\"inp\" [item]=\"opt\" *ngFor=\"let opt of inp.options\"></lib-form-select-item>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <lib-form-icon *ngIf=\"addIcon != null\" [inp]=\"addIcon\"></lib-form-icon>\r\n</div>\r\n<lib-modal *ngIf=\"inp.addModal != null\" [modal]=\"inp.addModal\"></lib-modal>\r\n",
403
- styles: [".form-input-con.select{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-size:12px;padding:0 15px;position:relative}.form-input-con.select.plaque{width:185px!important}.form-input-con.select>.form-input{float:right;position:relative;width:100%}.form-input-con.select.add-modal>.form-input{margin-left:15px;width:calc(100% - 45px)}.form-input-con.select>.form-input>.label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.select.error>.form-input>.label{color:var(--red);font-size:10px}.form-input-con.select>.form-input>.label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.select>.form-input .without-search{cursor:pointer;height:100%;position:absolute;right:0;top:0;width:100%;z-index:3}.form-input-con.select>.form-input .control{background-color:#fff;background-image:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;text-align:center;width:100%}.form-input-con.select>.form-input .control:focus,.form-input-con.select>.form-input:hover .control{border:1px solid var(--black-light);outline:none}.form-input-con.select>.form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;outline:none}.form-input-con.select.error>.form-input .control{border:var(--border-input-red)}.form-input-con.select.error>.form-input .control,.form-input-con.select.error>.form-input span.icon{color:var(--red)}.form-input-con.select.error>.form-input .control:focus,.form-input-con.select.error>.form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.select.top>.form-input .control:focus{border-radius:0 0 var(--border-radius-base) var(--border-radius-base);outline:none}.form-input-con.select>.form-input span.icon{bottom:0;color:var(--primary);font-size:15px;height:35px;left:0;line-height:37px;position:absolute;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input span.icon.button{background-color:var(--base);border-radius:5px 0 0 5px;color:#fff;cursor:pointer}.form-input-con.select>.form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.select>.form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.select>.form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.select>.form-input span.icon.button.green{background-color:var(--green)}.form-input-con.select>.form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.select>.form-input span.icon.button.red{background-color:var(--red)}.form-input-con.select>.form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.select>.form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.select>.form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.select>.form-input i.clear-icon{bottom:0;color:var(--red);cursor:pointer;font-size:15px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input .options{background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);cursor:pointer;overflow:hidden;position:absolute;right:0;top:-200000px;width:100%;z-index:103}.form-input-con.select>.form-input .control:focus+.options{top:35px!important}.form-input-con.select.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.select>.form-input .options .items{float:right;max-height:200px;overflow-y:auto;scroll-behavior:smooth;width:100%}.form-input-con.select>.form-input .options .option{border-radius:0;float:right;font-size:11px;height:35px;line-height:35px;text-align:center;width:100%}.form-input-con.select .tags{float:right;width:100%}.form-input-con.select .tags .tag-con{float:right;padding:5px;width:auto}.form-input-con.select .tags .tag-con .tag{background-color:var(--base);border-radius:var(--border-radius-base);color:#fff;float:right;font-size:12px;height:25px;line-height:25px;overflow:hidden;position:relative;width:auto}.form-input-con.select .tags .tag-con .tag>.label{float:right;padding:0 5px 0 10px;width:auto}.form-input-con.select .tags .tag-con .tag>.delete{cursor:pointer;float:right;line-height:25px;text-align:center;width:25px}.form-input-con.select .tags .tag-con .tag>.delete:hover{background-color:var(--base-dark)}.form-input-con.select.h-50>.form-input .control{height:50px;line-height:50px}.form-input-con.select.h-50>.form-input .control:focus+.options{top:50px!important}.form-input-con.select.h-50.top>.form-input .options{bottom:50px;top:unset!important}.form-input-con.select.h-25,.form-input-con.select.h-25>.form-input .control{height:25px;line-height:25px}.form-input-con.select.h-25>.form-input span.icon{height:25px;line-height:25px;width:25px}.form-input-con.select.h-25>.form-input .control:focus+.options{top:25px!important}.form-input-con.select.h-25.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:25px;top:unset!important}.form-input-con.select.h-25>.form-input .control::-moz-placeholder,.form-input-con.select.h-25>.form-input .control::-webkit-input-placeholder{font-size:10px;font-weight:200}.form-input-con.select.h-30>.form-input .control{height:30px;padding:5px 30px}.form-input-con.select.h-30>.form-input .control:focus+.options{top:30px!important}.form-input-con.select.h-30>.form-input span.icon{font-size:15px;height:30px;line-height:32px;width:30px}.form-input-con.select.h-30>.form-input i.clear-icon{height:30px;line-height:30px;width:30px}.form-input-con.select.h-30.top>.form-input .control:focus+.options{bottom:30px}.form-input-con.select.h-45,.form-input-con.select.h-45>.form-input .control{height:45px;line-height:45px}.form-input-con.select.h-45>.form-input .control::-moz-placeholder,.form-input-con.select.h-45>.form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.select.h-45>.form-input span.icon{height:45px;line-height:45px;width:45px}.form-input-con.select.h-45>.form-input .control:focus+.options{top:45px!important}.form-input-con.select.h-45.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:45px;top:unset!important}.form-input-con.select.without-icon.h-25>.form-input .control,.form-input-con.select.without-icon.h-30>.form-input .control{padding:0}.form-input-con.select.h-30>.form-input span.icon{font-size:11px}::ng-deep .form-input-con.select.without-sub-options>.form-input .options .option{width:100%}.form-input-con.select.disabled>.form-input .control,.form-input-con.select.disabled>.form-input .label,.form-input-con.select.disabled>.form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}"]
403
+ styles: [".form-input-con.select{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-size:12px;padding:0 15px;position:relative}.form-input-con.select.plaque{width:185px!important}.form-input-con.select>.form-input{float:right;position:relative;width:100%}.form-input-con.select.add-modal>.form-input{width:calc(100% - 45px)}.form-input-con.select>.form-input>.label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.select.error>.form-input>.label{color:var(--red);font-size:10px}.form-input-con.select>.form-input>.label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.select>.form-input .without-search{cursor:pointer;height:100%;position:absolute;right:0;top:0;width:100%;z-index:3}.form-input-con.select>.form-input .control{background-color:#fff;background-image:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;text-align:center;width:100%}.form-input-con.select>.form-input .control:focus,.form-input-con.select>.form-input:hover .control{border:1px solid var(--black-light);outline:none}.form-input-con.select>.form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;outline:none}.form-input-con.select.error>.form-input .control{border:var(--border-input-red)}.form-input-con.select.error>.form-input .control,.form-input-con.select.error>.form-input span.icon{color:var(--red)}.form-input-con.select.error>.form-input .control:focus,.form-input-con.select.error>.form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.select.top>.form-input .control:focus{border-radius:0 0 var(--border-radius-base) var(--border-radius-base);outline:none}.form-input-con.select>.form-input span.icon{bottom:0;color:var(--primary);font-size:15px;height:35px;left:0;line-height:37px;position:absolute;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input span.icon.button{background-color:var(--base);border-radius:5px 0 0 5px;color:#fff;cursor:pointer}.form-input-con.select>.form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.select>.form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.select>.form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.select>.form-input span.icon.button.green{background-color:var(--green)}.form-input-con.select>.form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.select>.form-input span.icon.button.red{background-color:var(--red)}.form-input-con.select>.form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.select>.form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.select>.form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.select>.form-input i.clear-icon{bottom:0;color:var(--red);cursor:pointer;font-size:15px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input .options{background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);cursor:pointer;overflow:hidden;position:absolute;right:0;top:-200000px;width:100%;z-index:103}.form-input-con.select>.form-input .control:focus+.options{top:35px!important}.form-input-con.select.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.select>.form-input .options .items{float:right;max-height:200px;overflow-y:auto;scroll-behavior:smooth;width:100%}.form-input-con.select>.form-input .options .option{border-radius:0;float:right;font-size:11px;height:35px;line-height:35px;text-align:center;width:100%}.form-input-con.select .tags{float:right;width:100%}.form-input-con.select .tags .tag-con{float:right;padding:5px;width:auto}.form-input-con.select .tags .tag-con .tag{background-color:var(--base);border-radius:var(--border-radius-base);color:#fff;float:right;font-size:12px;height:25px;line-height:25px;overflow:hidden;position:relative;width:auto}.form-input-con.select .tags .tag-con .tag>.label{float:right;padding:0 5px 0 10px;width:auto}.form-input-con.select .tags .tag-con .tag>.delete{cursor:pointer;float:right;line-height:25px;text-align:center;width:25px}.form-input-con.select .tags .tag-con .tag>.delete:hover{background-color:var(--base-dark)}.form-input-con.select.h-50>.form-input .control{height:50px;line-height:50px}.form-input-con.select.h-50>.form-input .control:focus+.options{top:50px!important}.form-input-con.select.h-50.top>.form-input .options{bottom:50px;top:unset!important}.form-input-con.select.h-25,.form-input-con.select.h-25>.form-input .control{height:25px;line-height:25px}.form-input-con.select.h-25>.form-input span.icon{height:25px;line-height:25px;width:25px}.form-input-con.select.h-25>.form-input .control:focus+.options{top:25px!important}.form-input-con.select.h-25.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:25px;top:unset!important}.form-input-con.select.h-25>.form-input .control::-moz-placeholder,.form-input-con.select.h-25>.form-input .control::-webkit-input-placeholder{font-size:10px;font-weight:200}.form-input-con.select.h-30>.form-input .control{height:30px;padding:5px 30px}.form-input-con.select.h-30>.form-input .control:focus+.options{top:30px!important}.form-input-con.select.h-30>.form-input span.icon{font-size:15px;height:30px;line-height:32px;width:30px}.form-input-con.select.h-30>.form-input i.clear-icon{height:30px;line-height:30px;width:30px}.form-input-con.select.h-30.top>.form-input .control:focus+.options{bottom:30px}.form-input-con.select.h-45,.form-input-con.select.h-45>.form-input .control{height:45px;line-height:45px}.form-input-con.select.h-45>.form-input .control::-moz-placeholder,.form-input-con.select.h-45>.form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.select.h-45>.form-input span.icon{height:45px;line-height:45px;width:45px}.form-input-con.select.h-45>.form-input .control:focus+.options{top:45px!important}.form-input-con.select.h-45.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:45px;top:unset!important}.form-input-con.select.without-icon.h-25>.form-input .control,.form-input-con.select.without-icon.h-30>.form-input .control{padding:0}.form-input-con.select.h-30>.form-input span.icon{font-size:11px}::ng-deep .form-input-con.select.without-sub-options>.form-input .options .option{width:100%}.form-input-con.select.disabled>.form-input .control,.form-input-con.select.disabled>.form-input .label,.form-input-con.select.disabled>.form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}"]
404
404
  },] }
405
405
  ];
406
406
  FormSelectComponent.propDecorators = {
@@ -412,4 +412,4 @@ FormSelectComponent.propDecorators = {
412
412
  inputOptionsDiv: [{ type: ViewChild, args: ['inputOptionsDiv',] }],
413
413
  inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
414
414
  };
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsVUFBVSxFQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUt6QyxZQUFPLEdBQUcsRUFBRSxDQUFDO0lBMlhmLENBQUM7SUF6WEMsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUtsRCxRQUFROztRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFDO1lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENB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QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFDO1lBQy9CLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3RDthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxHQUFHLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OztZQXRZRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IseTlEQUEyQzs7YUFFNUM7OzswQkFFRSxNQUFNO2tCQUVOLEtBQUs7cUJBRUwsS0FBSzt1QkFLTCxTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVc7OEJBQ3JCLFNBQVMsU0FBQyxpQkFBaUI7eUJBQzNCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzcywgT3B0aW9uQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBASW5wdXQoKVxyXG4gIGluRm9ybTogYm9vbGVhbjtcclxuICBjU2VhcmNoID0gJyc7XHJcbiAgYWRkSWNvbjogSW5wdXRDbGFzcztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0T3B0aW9uc0RpdicpIGlucHV0T3B0aW9uc0RpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dExhYmVsJykgaW5wdXRMYWJlbDogRWxlbWVudFJlZjtcclxuICBuZ09uSW5pdCgpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2LCBpc0VkaXQpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odiA9PSBudWxsID8gbnVsbCA6IHYudG9TdHJpbmcoKSwgaXNFZGl0KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYgKHYgIT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKHYubWFwKFN0cmluZykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmlucC5kZWZhdWx0ICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucC5zZXRTZWFyY2ggPSAocykgPT4ge1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSBzO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgKCghdGhpcy5pbnAubXVsdGlwbGUgJiYgKCh0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnNlYXJjaCkgfHwgKCF0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnZhbHVlKSkpIHx8XHJcbiAgICAgICAgKHRoaXMuaW5wLm11bHRpcGxlICYmIHRoaXMuZ2V0U2VsZWN0ZWQoKS5sZW5ndGggPT09IDApKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKCF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgdHJ1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWUoW10pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZWwgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZCA9IHt9O1xyXG4gICAgICBkW3RoaXMuaW5wLm5hbWVdID0gdGhpcy5pbnAuYWRkTmV3ID8gdGhpcy5pbnAuc2VhcmNoIDogdGhpcy5pbnAudmFsdWU7XHJcbiAgICAgIGRbdGhpcy5pbnAubmFtZSArICdOYW1lJ10gPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbnAubXVsdGlwbGUgPyBkIDogdGhpcy5nZXRTZWxlY3RlZCgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuaGFzQmFyY29kZVJlYWRlcil7XHJcbiAgICAgIEhlbHBlckNsYXNzLnNldEJhcmNvZGVSZWFkZXIodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLmFkZE1vZGFsKXtcclxuICAgICAgaWYgKHRoaXMuaW5wLmFkZE1vZGFsLmZvcm0/LnBlcm1pc3Npb24pe1xyXG4gICAgICAgIHRoaXMuYWRkSWNvbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnQWRkJyArIHRoaXMuaW5wLm5hbWUsICdmYS1kdW90b25lIGZhLXBsdXMnLCBJbnB1dFR5cGUuSWNvbiwgJ2JsdWUgbS10LTI1Jyk7XHJcbiAgICAgICAgdGhpcy5hZGRJY29uLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucC5hZGRNb2RhbC5zaG93KCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzZXRWYWx1ZShpZHMsIHJvd3MgPSB0aGlzLmlucC5vcHRpb25zKTogYm9vbGVhbntcclxuICAgIGZvciAoY29uc3QgciBvZiByb3dzKXtcclxuICAgICAgci5zZWxlY3RlZCA9IGlkcy5pbmNsdWRlcyhyLnZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgaWYgKHIuc2VsZWN0ZWQpe1xyXG4gICAgICAgICAgdGhpcy5jaGVja1BhcmVudChyLnBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0VmFsdWUoaWRzLCByLm9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGxvYWRPcHRpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnAuc2VhcmNoLnJlcGxhY2UoL15fK3xfKyQvZywgJycpO1xyXG4gICAgaWYgKHYpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKHRoaXMuaW5wLnVybC5yZXBsYWNlKCd7fScsIHYpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5PcHRpb25zKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoKTogdm9pZHtcclxuICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgfVxyXG4gIGNsb3NlT3B0aW9ucygpOiBib29sZWFue1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnZhbHVlID09PSBudWxsKXtcclxuICAgICAgICBpZiAoIXRoaXMuaW5wLmFkZE5ldyl7XHJcbiAgICAgICAgICB0aGlzLmlucC5zZWFyY2ggPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAxKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzZXRQb3NpdGlvbigpOiB2b2lke1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IG9mZnNldE9mQm90dG9tID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5ib3R0b207XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIGlmIChvZmZzZXRPZkJvdHRvbSA8IGhlaWdodCl7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5hZGRDbGFzcygndG9wJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyID0gdGhpcy5pbnAub3B0aW9ucyk6IHZvaWR7XHJcbiAgICByLm1hcCgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE9wdGlvbnMoeC5vcHRpb25zKTtcclxuICAgICAgeC5zaG93ID0gKHRoaXMuaW5wLnZhbHVlICE9PSBudWxsIHx8IHRoaXMuaW5wLnNlYXJjaCA9PT0gJycgfHwgeC5uYW1lLmluY2x1ZGVzKHRoaXMuaW5wLnNlYXJjaCkgfHxcclxuICAgICAgICAgIHgudmFsdWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fCB4Lm9wdGlvbnMuZmlsdGVyKG8gPT4gby5zaG93KS5sZW5ndGggPiAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY0koZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMyl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKCQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuaXMoJzpmb2N1cycpKXtcclxuICAgICAgICBjb25zdCBoID0gdGhpcy5nZXRTZWxlY3RlZEhvdmVyKCk7XHJcbiAgICAgICAgaWYgKCFoKXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24oaCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSA0MCl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckRvd24oKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyVXAoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlT3B0aW9uKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLm11bHRpcGxlICYmICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb24nKS5oYXNDbGFzcygnb3B0aW9uJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgfVxyXG4gIG9uS2V5VXAoZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5jU2VhcmNoICE9PSBlLnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmNTZWFyY2ggPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3Qpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuc2VhcmNoID0gdmEgPyAoKCh0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoICYmIHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3QpIHx8IHZhLnNlYXJjaCkgPyB2YS5zZWFyY2ggOiB2YS5uYW1lKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmNTZWFyY2ggPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmlucCwgaXNFZGl0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucC5yZWwpe1xyXG4gICAgICB0aGlzLmlucC5yZWwudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5yZWwuc2VhcmNoID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIGlmICh2ICE9PSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwudXJsID0gdGhpcy5pbnAucmVsVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5pbnAudmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZWwudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLmxvYWQoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuaW5wLnJlbC51cmwgKz0gJ197fSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRWRpdCAmJiAhdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlKG9wOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgaWYgKG9wLnNlbGVjdGVkKXtcclxuICAgICAgdGhpcy51bkNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrUGFyZW50KG9wLnBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuVHJlZSl7XHJcbiAgICAgICAgdGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpIHtcclxuICAgICAgdGhpcy5jaGVja0NoaWxkcmVuKGMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKSB7XHJcbiAgICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5DaGVjayhjaCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKG86IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIG8ub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKGNoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgY0koaTogc3RyaW5nKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoaSk7XHJcbiAgICAgIGlmICghdGhpcy5pbkZvcm0pe1xyXG4gICAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgIH0sIDIwKTtcclxuICB9XHJcbiAgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSh0aGlzLmlucCk7XHJcbiAgfVxyXG4gIGdldFRpdGxlKG9zKTogc3RyaW5ne1xyXG4gICAgZm9yIChjb25zdCBzIG9mIG9zLm9wdGlvbnMpe1xyXG4gICAgICBpZiAocy52YWx1ZSA9PT0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wLmwocy5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ID0gdGhpcy5nZXRUaXRsZShzKTtcclxuICAgICAgaWYgKHYgIT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IGFueVtde1xyXG4gICAgbGV0IGwgPSBbXTtcclxuICAgIGZvciAoY29uc3QgZiBvZiBvcHRzKXtcclxuICAgICAgaWYgKGYuc2VsZWN0ZWQgJiYgKCF0aGlzLmlucC5vbmx5Q2hpbGQgfHwgZi5vcHRpb25zLmxlbmd0aCA9PT0gMCkpe1xyXG4gICAgICAgIGwucHVzaChmLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0U2VsZWN0ZWQoZi5vcHRpb25zKTtcclxuICAgICAgbCA9IGwuY29uY2F0KHJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuICBvbkNsaWNrQnV0dG9uKCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5vbkNsaWNrQnV0dG9uKHRoaXMuaW5wKTtcclxuICB9XHJcbiAgc2V0SG92ZXJDZW50ZXIoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKTtcclxuICAgICAgb3B0aW9uID0gb3B0aW9uICE9PSBudWxsID8gb3B0aW9uIDogdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpO1xyXG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIGlmIChvcHRpb24gPT09IG51bGwpe1xyXG4gICAgICAgIGl0ZW1zLnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1zLnNjcm9sbFRvcCA9IG9wdGlvbi5vZmZzZXRUb3AgLSBvcHRpb24uY2xpZW50SGVpZ2h0ICogMjtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuICByZW1vdmVIb3ZlcigpOiB2b2lke1xyXG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgaWYgKG9wdGlvbiAhPT0gbnVsbCl7XHJcbiAgICAgIG9wdGlvbi5jbGFzc0xpc3QucmVtb3ZlKCdob3ZlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRTZWxlY3RlZEhvdmVyKCk6IGFueXtcclxuICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKTtcclxuICAgIGlmIChvcHRpb24gPT09IG51bGwpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRpb24uZ2V0QXR0cmlidXRlKCdkYXRhLXZhbHVlJyk7XHJcbiAgfVxyXG4gIHNldEhvdmVyVXAoKTogdm9pZHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50O1xyXG4gICAgbGV0IGggPSBbXS5pbmRleE9mLmNhbGwob3B0aW9ucy5xdWVyeVNlbGVjdG9yQWxsKCcub3B0aW9uLWNvbicpLCBvcHRpb25zLnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLmhvdmVyJykpO1xyXG4gICAgY29uc3QgcyA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uc2VsZWN0ZWQnKSk7XHJcbiAgICBoID0gaCA+PSAwID8gaCA6IHM7XHJcbiAgICBpZiAoaCA+IDApIHtcclxuICAgICAgdGhpcy5yZW1vdmVIb3ZlcigpO1xyXG4gICAgICBvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJylbaCAtIDFdLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgfVxyXG4gIHNldEhvdmVyRG93bigpOiB2b2lke1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBjb3VudE9wdGlvbnMgPSBvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJykubGVuZ3RoO1xyXG4gICAgbGV0IGggPSBbXS5pbmRleE9mLmNhbGwob3B0aW9ucy5xdWVyeVNlbGVjdG9yQWxsKCcub3B0aW9uLWNvbicpLCBvcHRpb25zLnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLmhvdmVyJykpO1xyXG4gICAgY29uc3QgcyA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uc2VsZWN0ZWQnKSk7XHJcbiAgICBoID0gaCA+PSAwID8gaCA6IHM7XHJcbiAgICBpZiAoaCA9PT0gLTEgJiYgY291bnRPcHRpb25zID4gMCl7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24nKS5jbGFzc0xpc3QuYWRkKCdob3ZlcicpO1xyXG4gICAgfSBlbHNlIGlmIChoID49IDAgJiYgaCA8IGNvdW50T3B0aW9ucyAtIDEpIHtcclxuICAgICAgdGhpcy5yZW1vdmVIb3ZlcigpO1xyXG4gICAgICBvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJylbaCArIDFdLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsVUFBVSxFQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPMUQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUt6QyxZQUFPLEdBQUcsRUFBRSxDQUFDO0lBMlhmLENBQUM7SUF6WEMsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUtsRCxRQUFROztRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFDO1lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENB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Q25CLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUM7WUFDL0IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdkU7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7O1lBdFlGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5OURBQTJDOzthQUU1Qzs7OzBCQUVFLE1BQU07a0JBRU4sS0FBSztxQkFFTCxLQUFLO3VCQUtMLFNBQVMsU0FBQyxVQUFVO3dCQUNwQixTQUFTLFNBQUMsV0FBVzs4QkFDckIsU0FBUyxTQUFDLGlCQUFpQjt5QkFDM0IsU0FBUyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtJbnB1dENsYXNzLCBPcHRpb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGV9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uc2VsZWN0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5Gb3JtOiBib29sZWFuO1xyXG4gIGNTZWFyY2ggPSAnJztcclxuICBhZGRJY29uOiBJbnB1dENsYXNzO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYsIGlzRWRpdCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih2ID09IG51bGwgPyBudWxsIDogdi50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICAgIHRoaXMuc2V0VmFsdWUodi5tYXAoU3RyaW5nKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaW5wLmRlZmF1bHQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKHRoaXMuaW5wLmRlZmF1bHQsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFNlYXJjaCA9IChzKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHM7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAoKCF0aGlzLmlucC5tdWx0aXBsZSAmJiAoKHRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAuc2VhcmNoKSB8fCAoIXRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAudmFsdWUpKSkgfHxcclxuICAgICAgICAodGhpcy5pbnAubXVsdGlwbGUgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCB0cnVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShbXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlbCAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBkID0ge307XHJcbiAgICAgIGRbdGhpcy5pbnAubmFtZV0gPSB0aGlzLmlucC5hZGROZXcgPyB0aGlzLmlucC5zZWFyY2ggOiB0aGlzLmlucC52YWx1ZTtcclxuICAgICAgZFt0aGlzLmlucC5uYW1lICsgJ05hbWUnXSA9IHRoaXMuaW5wLnNlYXJjaDtcclxuICAgICAgcmV0dXJuICF0aGlzLmlucC5tdWx0aXBsZSA/IGQgOiB0aGlzLmdldFNlbGVjdGVkKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXNPdXQgPSAoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmlucC5oYXNCYXJjb2RlUmVhZGVyKXtcclxuICAgICAgSGVscGVyQ2xhc3Muc2V0QmFyY29kZVJlYWRlcih0aGlzLmlucCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnAuYWRkTW9kYWwpe1xyXG4gICAgICBpZiAodGhpcy5pbnAuYWRkTW9kYWwuZm9ybT8ucGVybWlzc2lvbil7XHJcbiAgICAgICAgdGhpcy5hZGRJY29uID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsICdBZGQnICsgdGhpcy5pbnAubmFtZSwgJ2ZhLWR1b3RvbmUgZmEtcGx1cycsIElucHV0VHlwZS5JY29uLCAnYmx1ZSBtLXQtMjUgbS1yLTE1LXAnKTtcclxuICAgICAgICB0aGlzLmFkZEljb24ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wLmFkZE1vZGFsLnNob3coKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFZhbHVlKGlkcywgcm93cyA9IHRoaXMuaW5wLm9wdGlvbnMpOiBib29sZWFue1xyXG4gICAgZm9yIChjb25zdCByIG9mIHJvd3Mpe1xyXG4gICAgICByLnNlbGVjdGVkID0gaWRzLmluY2x1ZGVzKHIudmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKXtcclxuICAgICAgICBpZiAoci5zZWxlY3RlZCl7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrUGFyZW50KHIucGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRWYWx1ZShpZHMsIHIub3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgbG9hZE9wdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmlucC5zZWFyY2gucmVwbGFjZSgvXl8rfF8rJC9nLCAnJyk7XHJcbiAgICBpZiAodil7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQodGhpcy5pbnAudXJsLnJlcGxhY2UoJ3t9JywgdikpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcbiAgb3Blbk9wdGlvbnMoKTogdm9pZHtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcclxuICB9XHJcbiAgb25Gb2N1c091dCgpOiB2b2lke1xyXG4gICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICB9XHJcbiAgY2xvc2VPcHRpb25zKCk6IGJvb2xlYW57XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgICAgdGhpcy5yZW1vdmVIb3ZlcigpO1xyXG4gICAgICBpZiAodGhpcy5pbnAudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICAgIGlmICghdGhpcy5pbnAuYWRkTmV3KXtcclxuICAgICAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHNldFBvc2l0aW9uKCk6IHZvaWR7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0T2ZCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0KXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCd0b3AnKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIgPSB0aGlzLmlucC5vcHRpb25zKTogdm9pZHtcclxuICAgIHIubWFwKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh4Lm9wdGlvbnMpO1xyXG4gICAgICB4LnNob3cgPSAodGhpcy5pbnAudmFsdWUgIT09IG51bGwgfHwgdGhpcy5pbnAuc2VhcmNoID09PSAnJyB8fCB4Lm5hbWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fFxyXG4gICAgICAgICAgeC52YWx1ZS5pbmNsdWRlcyh0aGlzLmlucC5zZWFyY2gpIHx8IHgub3B0aW9ucy5maWx0ZXIobyA9PiBvLnNob3cpLmxlbmd0aCA+IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jSShlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDEzKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5pcygnOmZvY3VzJykpe1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoKTtcclxuICAgICAgICBpZiAoIWgpe1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbihoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jSSgnVGFiJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyRG93bigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMzgpe1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJVcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVPcHRpb24oZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUgJiYgJChlLnRhcmdldCkuY2xvc2VzdCgnLm9wdGlvbicpLmhhc0NsYXNzKCdvcHRpb24nKSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICB9XHJcbiAgb25LZXlVcChlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmNTZWFyY2ggIT09IGUudGFyZ2V0LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY1NlYXJjaCA9IGUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5yZW1vdmVIb3ZlcigpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnAsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCl7XHJcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICAgIH1lbHNlIGlmIChlLnRhcmdldC52YWx1ZSl7XHJcbiAgICAgICAgdGhpcy5sb2FkT3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0T3B0aW9uKHYsIGlzRWRpdCA9IGZhbHNlKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgIGNvbnN0IHZhID0gdGhpcy5nZXRWYWx1ZSh2KTtcclxuICAgIGlmICh0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgIHRoaXMudG9nZ2xlKHZhKTtcclxuICAgICAgdGhpcy5pbnAuc2VhcmNoID0gJyc7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB2O1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSB2YSA/ICgoKHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2ggJiYgdGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdCkgfHwgdmEuc2VhcmNoKSA/IHZhLnNlYXJjaCA6IHZhLm5hbWUpIDogJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgIHRoaXMuY1NlYXJjaCA9IHRoaXMuaW5wLnNlYXJjaDtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBpc0VkaXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLnJlbCl7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5zZWFyY2ggPSAnJztcclxuICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgaWYgKHYgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC51cmwgPSB0aGlzLmlucC5yZWxVcmwucmVwbGFjZSgne30nLCB0aGlzLmlucC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlbC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5yZWwubG9hZCgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLnVybCArPSAnX3t9JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaXNFZGl0ICYmICF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGUob3A6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBpZiAob3Auc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob3ApO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKXtcclxuICAgICAgICB0aGlzLnVuQ2hlY2tQYXJlbnQob3AucGFyZW50KTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuY2hlY2sob3ApO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25seUNoaWxkICYmIHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5UcmVlKXtcclxuICAgICAgICB0aGlzLmNoZWNrUGFyZW50KG9wLnBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCkge1xyXG4gICAgICB0aGlzLmNoZWNrQ2hpbGRyZW4oYyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVuQ2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpIHtcclxuICAgICAgYy5vcHRpb25zLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrKGNoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrQ2hpbGRyZW4obzogT3B0aW9uQ2xhc3MpOiB2b2lke1xyXG4gICAgby5vcHRpb25zLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiB4LnNlbGVjdGVkIHx8IHguc2VsZWN0ZWQgPT0gbnVsbCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVuQ2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjSShpOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChpKTtcclxuICAgICAgaWYgKCF0aGlzLmluRm9ybSl7XHJcbiAgICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgfSwgMjApO1xyXG4gIH1cclxuICB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaW5wLnZhbHVlID09IG51bGwpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaW5wKTtcclxuICB9XHJcbiAgZ2V0VGl0bGUob3MpOiBzdHJpbmd7XHJcbiAgICBmb3IgKGNvbnN0IHMgb2Ygb3Mub3B0aW9ucyl7XHJcbiAgICAgIGlmIChzLnZhbHVlID09PSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnAubChzLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHYgPSB0aGlzLmdldFRpdGxlKHMpO1xyXG4gICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICByZXR1cm4gdjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGdldFZhbHVlKHYsIG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zKTogT3B0aW9uQ2xhc3N7XHJcbiAgICBjb25zdCBoID0gby5maW5kKHggPT4geC52YWx1ZSA9PT0gdik7XHJcbiAgICBpZiAoaCl7XHJcbiAgICAgIHJldHVybiBoO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBpIG9mIG8pe1xyXG4gICAgICBjb25zdCBoaSA9IHRoaXMuZ2V0VmFsdWUodiwgaS5vcHRpb25zKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkKG9wdHM6IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCAmJiAoIXRoaXMuaW5wLm9ubHlDaGlsZCB8fCBmLm9wdGlvbnMubGVuZ3RoID09PSAwKSl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIG9uQ2xpY2tCdXR0b24oKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLm9uQ2xpY2tCdXR0b24odGhpcy5pbnApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsZXQgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgICBvcHRpb24gPSBvcHRpb24gIT09IG51bGwgPyBvcHRpb24gOiB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLnNlbGVjdGVkJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gb3B0aW9uLm9mZnNldFRvcCAtIG9wdGlvbi5jbGllbnRIZWlnaHQgKiAyO1xyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG4gIHJlbW92ZUhvdmVyKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLmhvdmVyJyk7XHJcbiAgICBpZiAob3B0aW9uICE9PSBudWxsKXtcclxuICAgICAgb3B0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2hvdmVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIoKTogYW55e1xyXG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdGlvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFsdWUnKTtcclxuICB9XHJcbiAgc2V0SG92ZXJVcCgpOiB2b2lke1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID4gMCkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoIC0gMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbiAgc2V0SG92ZXJEb3duKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGNvdW50T3B0aW9ucyA9IG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKS5sZW5ndGg7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID09PSAtMSAmJiBjb3VudE9wdGlvbnMgPiAwKXtcclxuICAgICAgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbicpLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XHJcbiAgICB9IGVsc2UgaWYgKGggPj0gMCAmJiBoIDwgY291bnRPcHRpb25zIC0gMSkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoICsgMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -10,6 +10,7 @@ export class FormVehicleSearchComponent {
10
10
  }
11
11
  get vehicleType() { return VehicleType; }
12
12
  ngOnInit() {
13
+ var _a;
13
14
  this.car = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-user', InputType.SelectAutoCompletePlaque, 'plaque-inp');
14
15
  this.motor = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-motorcycle', InputType.SelectAutoCompletePlaqueM, 'plaque-inp');
15
16
  this.carF = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-earth-asia', InputType.SelectAutoCompletePlaqueF, 'plaque-inp');
@@ -134,6 +135,14 @@ export class FormVehicleSearchComponent {
134
135
  this.type === VehicleType.Fingerprint ? this.fingerprint.data() : null;
135
136
  return d;
136
137
  };
138
+ if (this.inp.addModal) {
139
+ if ((_a = this.inp.addModal.form) === null || _a === void 0 ? void 0 : _a.permission) {
140
+ this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-b-2');
141
+ this.addIcon.onClick = () => {
142
+ this.inp.addModal.show();
143
+ };
144
+ }
145
+ }
137
146
  }
138
147
  changeType(t) {
139
148
  this.type = t;
@@ -199,8 +208,8 @@ export class FormVehicleSearchComponent {
199
208
  FormVehicleSearchComponent.decorators = [
200
209
  { type: Component, args: [{
201
210
  selector: 'lib-form-vehicle-search',
202
- template: "<div #inputDiv [id]=\"inp.id + 'VehicleSearchInput'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + ' form-input vehicle-search'\">\r\n <div class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Car)\" [className]=\"(type == vehicleType.Car ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType(vehicleType.Car)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Motorcycle)\" [className]=\"(type == vehicleType.Motorcycle ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType(vehicleType.Motorcycle)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Driver)\" [className]=\"(type == vehicleType.Driver ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType(vehicleType.Driver)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Fingerprint)\" [className]=\"(type == vehicleType.Fingerprint ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType(vehicleType.Fingerprint)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarF)\" [className]=\"(type == vehicleType.CarF ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarF)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarG)\" [className]=\"(type == vehicleType.CarG ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarG)\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"car\" *ngIf=\"type === vehicleType.Car\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"motor\" *ngIf=\"type === vehicleType.Motorcycle\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carF\" *ngIf=\"type === vehicleType.CarF\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carG\" *ngIf=\"type === vehicleType.CarG\"></lib-form-plaque-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"driver\" *ngIf=\"type === vehicleType.Driver\"></lib-form-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"fingerprint\" *ngIf=\"type === vehicleType.Fingerprint\"></lib-form-select>\r\n </div>\r\n</div>\r\n",
203
- styles: [".form-input.vehicle-search{border-radius:var(--border-radius-base);float:right;font-size:15px;position:relative;width:185px}.form-input.vehicle-search .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input.vehicle-search.error .label{color:var(--red);font-size:10px}.form-input.vehicle-search .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input.vehicle-search .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input.vehicle-search .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input.vehicle-search .label .change-type-btn.active,.form-input.vehicle-search .label .change-type-btn:hover{color:var(--primary)}.form-input.vehicle-search .control{background-color:#fff;background-image:none;border:none;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input.vehicle-search .control:focus,.form-input.vehicle-search:hover .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input.vehicle-search span.icon{bottom:0;color:var(--primary);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input.vehicle-search span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input.vehicle-search span.icon.button:hover{background-color:var(--base-dark)}.form-input.vehicle-search span.icon.button.blue{background-color:var(--blue)}.form-input.vehicle-search span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input.vehicle-search span.icon.button.green{background-color:var(--green)}.form-input.vehicle-search span.icon.button.green:hover{background-color:var(--green-dark)}.form-input.vehicle-search span.icon.button.red{background-color:var(--red)}.form-input.vehicle-search span.icon.button.red:hover{background-color:var(--red-dark)}.form-input.vehicle-search span.icon.button.yellow{background-color:var(--yellow)}.form-input.vehicle-search span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input.vehicle-search.disabled .control,.form-input.vehicle-search.disabled .label,.form-input.vehicle-search.disabled span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input.vehicle-search.error .control{box-shadow:0 1px 3px 0 var(--red)}.form-input.vehicle-search.error .control,.form-input.vehicle-search.error span.icon{color:var(--red-light)}.form-input.vehicle-search .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input.vehicle-search.without-icon .control{padding:5px 10px}.form-input.vehicle-search.h-50 .control{height:50px}.form-input.vehicle-search.h-50 span.icon{height:50px;line-height:50px}.form-input.vehicle-search.h-45 .control{height:45px}.form-input.vehicle-search.h-45 span.icon{height:45px;line-height:45px}.form-input.vehicle-search.h-30 .control{font-size:10px;height:30px;padding:0}.form-input.vehicle-search.h-30 span.icon{height:30px;line-height:30px}.form-input.vehicle-search.h-35{height:35px}.form-input.vehicle-search.h-35 .control{height:35px;padding:0 35px}.form-input.vehicle-search.h-35 span.icon{height:35px;line-height:35px}.form-input.vehicle-search.h-25 .control{height:25px;padding:0}.form-input.vehicle-search.h-25 span.icon{height:25px;line-height:25px}.form-input.vehicle-search.table-search{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input.vehicle-search.h-22 .control{height:22px;padding:0}.form-input.vehicle-search.h-22 span.icon{height:22px;line-height:22px}.form-input.vehicle-search.plaque-part-1{float:left;padding:0!important;width:35px!important}.form-input.vehicle-search.plaque-part-1.plaque-part-m{width:49px!important}.form-input.vehicle-search.plaque-part-3{float:left;padding:0!important;width:49px!important}.form-input.vehicle-search.plaque-part-3.plaque-part-m{width:69px!important}.form-input.vehicle-search.plaque-part-4{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input.vehicle-search.plaque-part-4 .control{height:25px!important}.form-input.vehicle-search.plaque-part-4.plaque-part-m{display:none!important}.form-input.vehicle-search.bank-card-part-item{float:left;padding:0!important;width:25%}.form-input.vehicle-search.bank-card-part-item:not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input.vehicle-search.bank-card-part-item .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
211
+ template: "<div #inputDiv [id]=\"inp.id + 'VehicleSearchInput'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + (inp.addModal != null ? ' add-modal' : '') + ' form-input-con vehicle-search'\">\r\n <div class=\"form-input\">\r\n <div class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Car)\" [className]=\"(type == vehicleType.Car ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType(vehicleType.Car)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Motorcycle)\" [className]=\"(type == vehicleType.Motorcycle ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType(vehicleType.Motorcycle)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Driver)\" [className]=\"(type == vehicleType.Driver ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType(vehicleType.Driver)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Fingerprint)\" [className]=\"(type == vehicleType.Fingerprint ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType(vehicleType.Fingerprint)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarF)\" [className]=\"(type == vehicleType.CarF ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarF)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarG)\" [className]=\"(type == vehicleType.CarG ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarG)\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"car\" *ngIf=\"type === vehicleType.Car\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"motor\" *ngIf=\"type === vehicleType.Motorcycle\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carF\" *ngIf=\"type === vehicleType.CarF\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carG\" *ngIf=\"type === vehicleType.CarG\"></lib-form-plaque-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"driver\" *ngIf=\"type === vehicleType.Driver\"></lib-form-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"fingerprint\" *ngIf=\"type === vehicleType.Fingerprint\"></lib-form-select>\r\n </div>\r\n </div>\r\n <lib-form-icon *ngIf=\"addIcon != null\" [inp]=\"addIcon\"></lib-form-icon>\r\n</div>\r\n<lib-modal *ngIf=\"inp.addModal != null\" [modal]=\"inp.addModal\"></lib-modal>\r\n",
212
+ styles: [".form-input-con.vehicle-search{align-items:end;display:flex;float:right;justify-content:center;position:relative;width:100%}.form-input-con.vehicle-search.add-modal{width:243px}.form-input-con.vehicle-search .form-input{float:right;position:relative;width:198px}.form-input-con.vehicle-search .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.vehicle-search.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.vehicle-search .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.vehicle-search .form-input .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input-con.vehicle-search .form-input .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input-con.vehicle-search .form-input .label .change-type-btn.active,.form-input-con.vehicle-search .form-input .label .change-type-btn:hover{color:var(--primary)}.form-input-con.vehicle-search .form-input .control{background-color:#fff;background-image:none;border:none;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.vehicle-search .form-input .control:focus,.form-input-con.vehicle-search:hover .form-input .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input-con.vehicle-search .form-input span.icon{bottom:0;color:var(--primary);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.vehicle-search .form-input span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input-con.vehicle-search .form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.vehicle-search .form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.vehicle-search .form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.vehicle-search .form-input span.icon.button.green{background-color:var(--green)}.form-input-con.vehicle-search .form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.vehicle-search .form-input span.icon.button.red{background-color:var(--red)}.form-input-con.vehicle-search .form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.vehicle-search .form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.vehicle-search .form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.vehicle-search.disabled .form-input .control,.form-input-con.vehicle-search.disabled .form-input .label,.form-input-con.vehicle-search.disabled .form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.vehicle-search.error .form-input .control{box-shadow:0 1px 3px 0 var(--red)}.form-input-con.vehicle-search.error .form-input .control,.form-input-con.vehicle-search.error .form-input span.icon{color:var(--red-light)}.form-input-con.vehicle-search .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input-con.vehicle-search.without-icon .form-input .control{padding:5px 10px}.form-input-con.vehicle-search.h-50 .form-input .control{height:50px}.form-input-con.vehicle-search.h-50 .form-input span.icon{height:50px;line-height:50px}.form-input-con.vehicle-search.h-45 .form-input .control{height:45px}.form-input-con.vehicle-search.h-45 .form-input span.icon{height:45px;line-height:45px}.form-input-con.vehicle-search.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.vehicle-search.h-30 .form-input span.icon{height:30px;line-height:30px}.form-input-con.vehicle-search.h-35 .form-input{height:35px}.form-input-con.vehicle-search.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.vehicle-search.h-35 .form-input span.icon{height:35px;line-height:35px}.form-input-con.vehicle-search.h-25 .form-input .control{height:25px;padding:0}.form-input-con.vehicle-search.h-25 .form-input span.icon{height:25px;line-height:25px}.form-input-con.vehicle-search.table-search .form-input{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input-con.vehicle-search.h-22 .form-input .control{height:22px;padding:0}.form-input-con.vehicle-search.h-22 .form-input span.icon{height:22px;line-height:22px}.form-input-con.vehicle-search.plaque-part-1 .form-input{float:left;padding:0!important;width:35px!important}.form-input-con.vehicle-search.plaque-part-1 .form-input .plaque-part-m{width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input{float:left;padding:0!important;width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input .plaque-part-m{width:69px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .control{height:25px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .plaque-part-m{display:none!important}.form-input-con.vehicle-search.bank-card-part-item .form-input{float:left;padding:0!important;width:25%}.form-input-con.vehicle-search.bank-card-part-item .form-input :not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input-con.vehicle-search.bank-card-part-item .form-input .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
204
213
  },] }
205
214
  ];
206
215
  FormVehicleSearchComponent.ctorParameters = () => [];
@@ -209,4 +218,4 @@ FormVehicleSearchComponent.propDecorators = {
209
218
  changeIndex: [{ type: Output }],
210
219
  inputDiv: [{ type: ViewChild, args: ['inputDiv',] }]
211
220
  };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS52ZWhpY2xlLnNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS92ZWhpY2xlL3NlYXJjaC9mb3JtLnZlaGljbGUuc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBTzdELE1BQU0sT0FBTywwQkFBMEI7SUFlckM7UUFYQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsU0FBSSxHQUFnQixXQUFXLENBQUMsR0FBRyxDQUFDO1FBT3BDLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFJZCxDQUFDO0lBSEQsSUFBSSxXQUFXLEtBQXlCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQztJQUk3RCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2hGLFNBQVMsRUFBRSxTQUFTLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2xGLGVBQWUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2pGLGVBQWUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2pGLFVBQVUsRUFBRSxTQUFTLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ25GLElBQUksRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxN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Z0JBQ3RGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzdGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtZQUNuQixNQUFNLENBQUMsR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDakQsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ2pELElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dDQUNyRCxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNqRixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxXQUFXLEVBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDMUIsQ0FBQyxDQUFDO1lBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztvQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDckI7Z0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBQztvQkFDMUIsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDbEM7cUJBQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQztvQkFDdEMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNsQztxQkFBTTtvQkFDTCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNsQztnQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDM0IsQ0FBQyxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUM7WUFDNUksVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLG9CQUFvQixHQUFHLGNBQWMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyRSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEYsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLEVBQUM7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7OztZQTlNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsNCtFQUFtRDs7YUFFcEQ7Ozs7a0JBRUUsS0FBSzswQkFFTCxNQUFNO3VCQVdOLFNBQVMsU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlLCBWZWhpY2xlVHlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS12ZWhpY2xlLXNlYXJjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0udmVoaWNsZS5zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udmVoaWNsZS5zZWFyY2guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmVoaWNsZVNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICB0eXBlOiBWZWhpY2xlVHlwZSA9IFZlaGljbGVUeXBlLkNhcjtcclxuICBjYXI6IElucHV0Q2xhc3M7XHJcbiAgbW90b3I6IElucHV0Q2xhc3M7XHJcbiAgY2FyRjogSW5wdXRDbGFzcztcclxuICBjYXJHOiBJbnB1dENsYXNzO1xyXG4gIGRyaXZlcjogSW5wdXRDbGFzcztcclxuICBmaW5nZXJwcmludDogSW5wdXRDbGFzcztcclxuICB3c0F1dGggPSBudWxsO1xyXG4gIGdldCB2ZWhpY2xlVHlwZSgpOiB0eXBlb2YgVmVoaWNsZVR5cGUgeyByZXR1cm4gVmVoaWNsZVR5cGU7IH1cclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYXIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgJ2ZhLXVzZXInLCBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlLCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5tb3RvciA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLFxyXG4gICAgICAnZmEtbW90b3JjeWNsZScsIElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNLCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5jYXJGID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS1lYXJ0aC1hc2lhJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYsICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLmNhckcgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgJ2ZhLWdsb2JlJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUcsICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLmRyaXZlciA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLFxyXG4gICAgICBudWxsLCBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlLCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5kcml2ZXIucGxhY2Vob2xkZXIgPSB0aGlzLmlucC5sKCdEcml2ZXJOYW1lJyk7XHJcbiAgICB0aGlzLmZpbmdlcnByaW50ID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsIG51bGwsIElucHV0VHlwZS5TZWxlY3QsICdwbGFxdWUtaW5wJyk7XHJcbiAgICB0aGlzLmNhci5kaXNwbGF5TGFiZWwgPSB0aGlzLm1vdG9yLmRpc3BsYXlMYWJlbCA9IHRoaXMuY2FyRi5kaXNwbGF5TGFiZWwgPSB0aGlzLmNhckcuZGlzcGxheUxhYmVsID0gdGhpcy5kcml2ZXIuZGlzcGxheUxhYmVsID0gdGhpcy5maW5nZXJwcmludC5kaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FyLnVybCA9IHRoaXMubW90b3IudXJsID0gdGhpcy5jYXJGLnVybCA9IHRoaXMuY2FyRy51cmwgPSB0aGlzLmRyaXZlci51cmwgPSB0aGlzLmlucC51cmwucmVwbGFjZSgnX3t9JywgJ18nICsgdGhpcy50eXBlKTtcclxuICAgIHRoaXMuY2FyLm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuY2FyLmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLm1vdG9yLm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMubW90b3IuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2FyRi5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmNhckYuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuY2FyRy5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmNhckcuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuZHJpdmVyLm9uQ2hhbmdlID0gKGUpID0+IHtcclxuICAgICAgaWYgKGUudmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5kcml2ZXIuZGF0YSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbmdlcnByaW50Lm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoJ1RhYicpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuZmluZ2VycHJpbnQuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmluZ2VycHJpbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5maW5nZXJwcmludC5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ0xvYWRpbmdUZXh0JywgJ1dhaXRpbmcnKTtcclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYpID0+IHtcclxuICAgICAgaWYgKHYgIT0gbnVsbCAmJiB2LlNlYXJjaCl7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlKHYuVHlwZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodi5UeXBlID09PSBWZWhpY2xlVHlwZS5Nb3RvcmN5Y2xlKXtcclxuICAgICAgICAgICAgdGhpcy5tb3Rvci5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMubW90b3Iuc2V0U2VhcmNoKHYuU2VhcmNoKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodi5UeXBlID09PSBWZWhpY2xlVHlwZS5DYXJGKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyRi5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyRi5zZXRTZWFyY2godi5TZWFyY2gpO1xyXG4gICAgICAgICAgfWVsc2UgaWYgKHYuVHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyKXtcclxuICAgICAgICAgICAgdGhpcy5jYXIuc2V0VmFsdWUodi5WYWx1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmNhci5zZXRTZWFyY2godi5TZWFyY2gpO1xyXG4gICAgICAgICAgfWVsc2UgaWYgKHYuVHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRyl7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyRy5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyRy5zZXRTZWFyY2godi5TZWFyY2gpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXIgJiYgIXRoaXMuY2FyLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuTW90b3JjeWNsZSAmJiAhdGhpcy5tb3Rvci5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckYgJiYgIXRoaXMuY2FyRi5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckcgJiYgIXRoaXMuY2FyRy5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkRyaXZlciAmJiAhdGhpcy5kcml2ZXIuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5GaW5nZXJwcmludCAmJiAhdGhpcy5maW5nZXJwcmludC5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKG51bGwsIGZhbHNlKTtcclxuICAgICAgdGhpcy5jaGFuZ2VUeXBlKFZlaGljbGVUeXBlLkNhcik7XHJcbiAgICAgIHRoaXMuY2FyLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubW90b3IuY2xlYXIoKTtcclxuICAgICAgdGhpcy5jYXJGLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuY2FyRy5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRyaXZlci5jbGVhcigpO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LmNsZWFyKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZCA9IHtUeXBlOiB0aGlzLnR5cGV9O1xyXG4gICAgICBkW3RoaXMuaW5wLm5hbWVdID0gdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXIgPyB0aGlzLmNhci5kYXRhKCkgOlxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuTW90b3JjeWNsZSA/IHRoaXMubW90b3IuZGF0YSgpIDpcclxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRiA/IHRoaXMuY2FyRi5kYXRhKCkgOlxyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckcgPyB0aGlzLmNhckcuZGF0YSgpIDpcclxuICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkRyaXZlciA/IHRoaXMuZHJpdmVyLmRhdGEoKSA6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50ID8gdGhpcy5maW5nZXJwcmludC5kYXRhKCkgOiBudWxsO1xyXG4gICAgICByZXR1cm4gZDtcclxuICAgIH07XHJcbiAgfVxyXG4gIGNoYW5nZVR5cGUodDogVmVoaWNsZVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZSA9IHQ7XHJcbiAgICBpZiAodGhpcy53c0F1dGggIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMud3NBdXRoLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodCA9PT0gVmVoaWNsZVR5cGUuRmluZ2VycHJpbnQpe1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTG9hZGluZ1RleHQnLCAnV2FpdGluZycpO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSBudWxsO1xyXG4gICAgICB0aGlzLndzQXV0aCA9IG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojc4OTAvQXV0aCcpO1xyXG4gICAgICB0aGlzLndzQXV0aC5vbm9wZW4gPSAoKSA9PiB7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLndzQXV0aC5vbm1lc3NhZ2UgPSAoZXZ0KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMud3NBdXRoICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy53c0F1dGguY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5kYXRhID09PSAnTm90Zm91bmQnKXtcclxuICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0aGlzLmlucC5sKCdOb3Rmb3VuZFRpdGxlJykpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ05vdGZvdW5kVGl0bGUnKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldnQuZGF0YS5zdGFydHNXaXRoKCdFcnJvcicpKXtcclxuICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbihldnQuZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTm90Zm91bmRUaXRsZScpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlciA9IEpTT04ucGFyc2UoZXZ0LmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IHVzZXIuSWQ7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IHVzZXIuTmFtZTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndzQXV0aC5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMud3NBdXRoID0gbnVsbDtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy53c0F1dGgub25jbG9zZSA9ICgpID0+IHtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FyLnVybCA9IHRoaXMubW90b3IudXJsID0gdGhpcy5jYXJGLnVybCA9IHRoaXMuY2FyRy51cmwgPSB0aGlzLmRyaXZlci51cmwgPSB0aGlzLmlucC51cmwucmVwbGFjZSgnX3t9JywgJ18nICsgdGhpcy50eXBlKTtcclxuICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNJbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhciB8fCB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLk1vdG9yY3ljbGUgfHwgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXJGIHx8IHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRyl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICQoJyMnICsgdGhpcy5pbnAuaWQgKyAnVmVoaWNsZVNlYXJjaElucHV0JyArICcgLnBsYXF1ZS1pbnAnKS5jbGljaygpO1xyXG4gICAgICAgICQoJyMnICsgdGhpcy5pbnAuaWQgKyAnVmVoaWNsZVNlYXJjaElucHV0JyArICcgI1BhcnQxVGV4dElucHV0IC5jb250cm9sJykuZm9jdXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIpe1xyXG4gICAgICB0aGlzLmRyaXZlci5mb2N1cygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50KXtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS52ZWhpY2xlLnNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS92ZWhpY2xlL3NlYXJjaC9mb3JtLnZlaGljbGUuc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBTzdELE1BQU0sT0FBTywwQkFBMEI7SUFnQnJDO1FBWkEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLFNBQUksR0FBZ0IsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQVFwQyxXQUFNLEdBQUcsSUFBSSxDQUFDO0lBSWQsQ0FBQztJQUhELElBQUksV0FBVyxLQUF5QixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFJN0QsUUFBUTs7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFDaEYsU0FBUyxFQUFFLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFDbEYsZUFBZSxFQUFFLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFDakYsZUFBZSxFQUFFLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFDakYsVUFBVSxFQUFFLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFDbkYsSUFBSSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFH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RTtnQkFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDN0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUNqRCxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzs0QkFDakQsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0NBQ3JELElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2pGLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBQztZQUNwQixVQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksMENBQUUsVUFBVSxFQUFDO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUMzSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixDQUFDLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFjO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUMxQixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFDO29CQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFDO29CQUMxQixXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNsQztxQkFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDO29CQUN0QyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7aUJBQ2xDO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7aUJBQ2xDO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUMzQixDQUFDLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBQztZQUM1SSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLEdBQUcsY0FBYyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JFLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwRixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckI7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBdk5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQywrd0ZBQW1EOzthQUVwRDs7OztrQkFFRSxLQUFLOzBCQUVMLE1BQU07dUJBWU4sU0FBUyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGUsIFZlaGljbGVUeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXZlaGljbGUtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS52ZWhpY2xlLnNlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS52ZWhpY2xlLnNlYXJjaC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1WZWhpY2xlU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHR5cGU6IFZlaGljbGVUeXBlID0gVmVoaWNsZVR5cGUuQ2FyO1xyXG4gIGNhcjogSW5wdXRDbGFzcztcclxuICBtb3RvcjogSW5wdXRDbGFzcztcclxuICBjYXJGOiBJbnB1dENsYXNzO1xyXG4gIGNhckc6IElucHV0Q2xhc3M7XHJcbiAgZHJpdmVyOiBJbnB1dENsYXNzO1xyXG4gIGZpbmdlcnByaW50OiBJbnB1dENsYXNzO1xyXG4gIGFkZEljb246IElucHV0Q2xhc3M7XHJcbiAgd3NBdXRoID0gbnVsbDtcclxuICBnZXQgdmVoaWNsZVR5cGUoKTogdHlwZW9mIFZlaGljbGVUeXBlIHsgcmV0dXJuIFZlaGljbGVUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FyID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS11c2VyJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSwgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMubW90b3IgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgJ2ZhLW1vdG9yY3ljbGUnLCBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSwgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMuY2FyRiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLFxyXG4gICAgICAnZmEtZWFydGgtYXNpYScsIElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVGLCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5jYXJHID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS1nbG9iZScsIElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVHLCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5kcml2ZXIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgbnVsbCwgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSwgJ3BsYXF1ZS1pbnAnKTtcclxuICAgIHRoaXMuZHJpdmVyLnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnRHJpdmVyTmFtZScpO1xyXG4gICAgdGhpcy5maW5nZXJwcmludCA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCB0aGlzLmlucC5uYW1lICsgJ0l0ZW0nLCBudWxsLCBJbnB1dFR5cGUuU2VsZWN0LCAncGxhcXVlLWlucCcpO1xyXG4gICAgdGhpcy5jYXIuZGlzcGxheUxhYmVsID0gdGhpcy5tb3Rvci5kaXNwbGF5TGFiZWwgPSB0aGlzLmNhckYuZGlzcGxheUxhYmVsID0gdGhpcy5jYXJHLmRpc3BsYXlMYWJlbCA9IHRoaXMuZHJpdmVyLmRpc3BsYXlMYWJlbCA9IHRoaXMuZmluZ2VycHJpbnQuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhci51cmwgPSB0aGlzLm1vdG9yLnVybCA9IHRoaXMuY2FyRi51cmwgPSB0aGlzLmNhckcudXJsID0gdGhpcy5kcml2ZXIudXJsID0gdGhpcy5pbnAudXJsLnJlcGxhY2UoJ197fScsICdfJyArIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLmNhci5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmNhci5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5tb3Rvci5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLm1vdG9yLmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmNhckYub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5jYXJGLmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmNhckcub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5jYXJHLmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmRyaXZlci5vbkNoYW5nZSA9IChlKSA9PiB7XHJcbiAgICAgIGlmIChlLnZhbHVlICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuZHJpdmVyLmRhdGEoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maW5nZXJwcmludC5vbkNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmZpbmdlcnByaW50LmRhdGEoKSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbmdlcnByaW50LmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuZmluZ2VycHJpbnQucGxhY2Vob2xkZXIgPSB0aGlzLmlucC5sKCdMb2FkaW5nVGV4dCcsICdXYWl0aW5nJyk7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIGlmICh2ICE9IG51bGwgJiYgdi5TZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVHlwZSh2LlR5cGUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHYuVHlwZSA9PT0gVmVoaWNsZVR5cGUuTW90b3JjeWNsZSl7XHJcbiAgICAgICAgICAgIHRoaXMubW90b3Iuc2V0VmFsdWUodi5WYWx1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm1vdG9yLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHYuVHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRikge1xyXG4gICAgICAgICAgICB0aGlzLmNhckYuc2V0VmFsdWUodi5WYWx1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmNhckYuc2V0U2VhcmNoKHYuU2VhcmNoKTtcclxuICAgICAgICAgIH1lbHNlIGlmICh2LlR5cGUgPT09IFZlaGljbGVUeXBlLkNhcil7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyLnNldFZhbHVlKHYuVmFsdWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXIuc2V0U2VhcmNoKHYuU2VhcmNoKTtcclxuICAgICAgICAgIH1lbHNlIGlmICh2LlR5cGUgPT09IFZlaGljbGVUeXBlLkNhckcpe1xyXG4gICAgICAgICAgICB0aGlzLmNhckcuc2V0VmFsdWUodi5WYWx1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmNhckcuc2V0U2VhcmNoKHYuU2VhcmNoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyICYmICF0aGlzLmNhci5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLk1vdG9yY3ljbGUgJiYgIXRoaXMubW90b3IuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXJGICYmICF0aGlzLmNhckYuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXJHICYmICF0aGlzLmNhckcuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIgJiYgIXRoaXMuZHJpdmVyLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuRmluZ2VycHJpbnQgJiYgIXRoaXMuZmluZ2VycHJpbnQuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5zZXRWYWx1ZShudWxsLCBmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVHlwZShWZWhpY2xlVHlwZS5DYXIpO1xyXG4gICAgICB0aGlzLmNhci5jbGVhcigpO1xyXG4gICAgICB0aGlzLm1vdG9yLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuY2FyRi5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNhckcuY2xlYXIoKTtcclxuICAgICAgdGhpcy5kcml2ZXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5jbGVhcigpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGQgPSB7VHlwZTogdGhpcy50eXBlfTtcclxuICAgICAgZFt0aGlzLmlucC5uYW1lXSA9IHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyID8gdGhpcy5jYXIuZGF0YSgpIDpcclxuICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLk1vdG9yY3ljbGUgPyB0aGlzLm1vdG9yLmRhdGEoKSA6XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhckYgPyB0aGlzLmNhckYuZGF0YSgpIDpcclxuICAgICAgICAgICAgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXJHID8gdGhpcy5jYXJHLmRhdGEoKSA6XHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIgPyB0aGlzLmRyaXZlci5kYXRhKCkgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5GaW5nZXJwcmludCA/IHRoaXMuZmluZ2VycHJpbnQuZGF0YSgpIDogbnVsbDtcclxuICAgICAgcmV0dXJuIGQ7XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaW5wLmFkZE1vZGFsKXtcclxuICAgICAgaWYgKHRoaXMuaW5wLmFkZE1vZGFsLmZvcm0/LnBlcm1pc3Npb24pe1xyXG4gICAgICAgIHRoaXMuYWRkSWNvbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuaW5wLmVudmlyb25tZW50LCB0aGlzLmlucC5sLCAnQWRkJyArIHRoaXMuaW5wLm5hbWUsICdmYS1kdW90b25lIGZhLXBsdXMnLCBJbnB1dFR5cGUuSWNvbiwgJ2JsdWUgbS1iLTInKTtcclxuICAgICAgICB0aGlzLmFkZEljb24ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wLmFkZE1vZGFsLnNob3coKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZVR5cGUodDogVmVoaWNsZVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZSA9IHQ7XHJcbiAgICBpZiAodGhpcy53c0F1dGggIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMud3NBdXRoLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodCA9PT0gVmVoaWNsZVR5cGUuRmluZ2VycHJpbnQpe1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTG9hZGluZ1RleHQnLCAnV2FpdGluZycpO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSBudWxsO1xyXG4gICAgICB0aGlzLndzQXV0aCA9IG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojc4OTAvQXV0aCcpO1xyXG4gICAgICB0aGlzLndzQXV0aC5vbm9wZW4gPSAoKSA9PiB7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLndzQXV0aC5vbm1lc3NhZ2UgPSAoZXZ0KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMud3NBdXRoICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy53c0F1dGguY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5kYXRhID09PSAnTm90Zm91bmQnKXtcclxuICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0aGlzLmlucC5sKCdOb3Rmb3VuZFRpdGxlJykpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ05vdGZvdW5kVGl0bGUnKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldnQuZGF0YS5zdGFydHNXaXRoKCdFcnJvcicpKXtcclxuICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbihldnQuZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTm90Zm91bmRUaXRsZScpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlciA9IEpTT04ucGFyc2UoZXZ0LmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IHVzZXIuSWQ7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnNlYXJjaCA9IHVzZXIuTmFtZTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndzQXV0aC5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMud3NBdXRoID0gbnVsbDtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy53c0F1dGgub25jbG9zZSA9ICgpID0+IHtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FyLnVybCA9IHRoaXMubW90b3IudXJsID0gdGhpcy5jYXJGLnVybCA9IHRoaXMuY2FyRy51cmwgPSB0aGlzLmRyaXZlci51cmwgPSB0aGlzLmlucC51cmwucmVwbGFjZSgnX3t9JywgJ18nICsgdGhpcy50eXBlKTtcclxuICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNJbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkNhciB8fCB0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLk1vdG9yY3ljbGUgfHwgdGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5DYXJGIHx8IHRoaXMudHlwZSA9PT0gVmVoaWNsZVR5cGUuQ2FyRyl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICQoJyMnICsgdGhpcy5pbnAuaWQgKyAnVmVoaWNsZVNlYXJjaElucHV0JyArICcgLnBsYXF1ZS1pbnAnKS5jbGljaygpO1xyXG4gICAgICAgICQoJyMnICsgdGhpcy5pbnAuaWQgKyAnVmVoaWNsZVNlYXJjaElucHV0JyArICcgI1BhcnQxVGV4dElucHV0IC5jb250cm9sJykuZm9jdXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBWZWhpY2xlVHlwZS5Ecml2ZXIpe1xyXG4gICAgICB0aGlzLmRyaXZlci5mb2N1cygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFZlaGljbGVUeXBlLkZpbmdlcnByaW50KXtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -4612,7 +4612,7 @@ class FormSelectComponent {
4612
4612
  }
4613
4613
  if (this.inp.addModal) {
4614
4614
  if ((_a = this.inp.addModal.form) === null || _a === void 0 ? void 0 : _a.permission) {
4615
- this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-t-25');
4615
+ this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-t-25 m-r-15-p');
4616
4616
  this.addIcon.onClick = () => {
4617
4617
  this.inp.addModal.show();
4618
4618
  };
@@ -4941,7 +4941,7 @@ FormSelectComponent.decorators = [
4941
4941
  { type: Component, args: [{
4942
4942
  selector: 'lib-form-select',
4943
4943
  template: "<div #inputDiv [id]=\"inp.id + 'SelectInput'\" [style]=\"inp.style\" [className]=\"'form-input-con select w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon != null ? '' : ' without-icon') + (inp.addModal != null ? ' add-modal' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"toggleOption($event)\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i><span class=\"f-r\" [innerHTML]=\"inp.getLabel()\"></span></div>\r\n <div class=\"w-100 p-r\">\r\n <div *ngIf=\"inp.type === type.Select\" class=\"without-search\"></div>\r\n <span *ngIf=\"inp.icon != null || inp.loading\" (click)=\"inp.button && onClickButton()\" #inputIcon [className]=\"(inp.button ? inp.button + ' button ' : '') + 'icon'\">\r\n <i [className]=\"inp.loading ? 'fa-duotone fa-spin fa-spinner ' : inp.icon + ' '\"></i>\r\n </span>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fa-duotone fa-eraser clear-icon\"></i>\r\n <input (keydown)=\"onKeyDown($event)\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.search\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" [name]=\"inp.name\" class=\"control\" autocomplete=\"off\" [readOnly]=\"inp.type === type.Select\" [maxLength]=\"inp.maxLength > 0 ? inp.maxLength : 524288\">\r\n <div class=\"options\">\r\n <div #inputOptionsDiv class=\"items\">\r\n <lib-form-select-item (selectOption)=\"selectOption($event)\" [level]=\"1\" [select]=\"inp\" [item]=\"opt\" *ngFor=\"let opt of inp.options\"></lib-form-select-item>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <lib-form-icon *ngIf=\"addIcon != null\" [inp]=\"addIcon\"></lib-form-icon>\r\n</div>\r\n<lib-modal *ngIf=\"inp.addModal != null\" [modal]=\"inp.addModal\"></lib-modal>\r\n",
4944
- styles: [".form-input-con.select{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-size:12px;padding:0 15px;position:relative}.form-input-con.select.plaque{width:185px!important}.form-input-con.select>.form-input{float:right;position:relative;width:100%}.form-input-con.select.add-modal>.form-input{margin-left:15px;width:calc(100% - 45px)}.form-input-con.select>.form-input>.label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.select.error>.form-input>.label{color:var(--red);font-size:10px}.form-input-con.select>.form-input>.label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.select>.form-input .without-search{cursor:pointer;height:100%;position:absolute;right:0;top:0;width:100%;z-index:3}.form-input-con.select>.form-input .control{background-color:#fff;background-image:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;text-align:center;width:100%}.form-input-con.select>.form-input .control:focus,.form-input-con.select>.form-input:hover .control{border:1px solid var(--black-light);outline:none}.form-input-con.select>.form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;outline:none}.form-input-con.select.error>.form-input .control{border:var(--border-input-red)}.form-input-con.select.error>.form-input .control,.form-input-con.select.error>.form-input span.icon{color:var(--red)}.form-input-con.select.error>.form-input .control:focus,.form-input-con.select.error>.form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.select.top>.form-input .control:focus{border-radius:0 0 var(--border-radius-base) var(--border-radius-base);outline:none}.form-input-con.select>.form-input span.icon{bottom:0;color:var(--primary);font-size:15px;height:35px;left:0;line-height:37px;position:absolute;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input span.icon.button{background-color:var(--base);border-radius:5px 0 0 5px;color:#fff;cursor:pointer}.form-input-con.select>.form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.select>.form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.select>.form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.select>.form-input span.icon.button.green{background-color:var(--green)}.form-input-con.select>.form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.select>.form-input span.icon.button.red{background-color:var(--red)}.form-input-con.select>.form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.select>.form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.select>.form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.select>.form-input i.clear-icon{bottom:0;color:var(--red);cursor:pointer;font-size:15px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input .options{background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);cursor:pointer;overflow:hidden;position:absolute;right:0;top:-200000px;width:100%;z-index:103}.form-input-con.select>.form-input .control:focus+.options{top:35px!important}.form-input-con.select.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.select>.form-input .options .items{float:right;max-height:200px;overflow-y:auto;scroll-behavior:smooth;width:100%}.form-input-con.select>.form-input .options .option{border-radius:0;float:right;font-size:11px;height:35px;line-height:35px;text-align:center;width:100%}.form-input-con.select .tags{float:right;width:100%}.form-input-con.select .tags .tag-con{float:right;padding:5px;width:auto}.form-input-con.select .tags .tag-con .tag{background-color:var(--base);border-radius:var(--border-radius-base);color:#fff;float:right;font-size:12px;height:25px;line-height:25px;overflow:hidden;position:relative;width:auto}.form-input-con.select .tags .tag-con .tag>.label{float:right;padding:0 5px 0 10px;width:auto}.form-input-con.select .tags .tag-con .tag>.delete{cursor:pointer;float:right;line-height:25px;text-align:center;width:25px}.form-input-con.select .tags .tag-con .tag>.delete:hover{background-color:var(--base-dark)}.form-input-con.select.h-50>.form-input .control{height:50px;line-height:50px}.form-input-con.select.h-50>.form-input .control:focus+.options{top:50px!important}.form-input-con.select.h-50.top>.form-input .options{bottom:50px;top:unset!important}.form-input-con.select.h-25,.form-input-con.select.h-25>.form-input .control{height:25px;line-height:25px}.form-input-con.select.h-25>.form-input span.icon{height:25px;line-height:25px;width:25px}.form-input-con.select.h-25>.form-input .control:focus+.options{top:25px!important}.form-input-con.select.h-25.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:25px;top:unset!important}.form-input-con.select.h-25>.form-input .control::-moz-placeholder,.form-input-con.select.h-25>.form-input .control::-webkit-input-placeholder{font-size:10px;font-weight:200}.form-input-con.select.h-30>.form-input .control{height:30px;padding:5px 30px}.form-input-con.select.h-30>.form-input .control:focus+.options{top:30px!important}.form-input-con.select.h-30>.form-input span.icon{font-size:15px;height:30px;line-height:32px;width:30px}.form-input-con.select.h-30>.form-input i.clear-icon{height:30px;line-height:30px;width:30px}.form-input-con.select.h-30.top>.form-input .control:focus+.options{bottom:30px}.form-input-con.select.h-45,.form-input-con.select.h-45>.form-input .control{height:45px;line-height:45px}.form-input-con.select.h-45>.form-input .control::-moz-placeholder,.form-input-con.select.h-45>.form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.select.h-45>.form-input span.icon{height:45px;line-height:45px;width:45px}.form-input-con.select.h-45>.form-input .control:focus+.options{top:45px!important}.form-input-con.select.h-45.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:45px;top:unset!important}.form-input-con.select.without-icon.h-25>.form-input .control,.form-input-con.select.without-icon.h-30>.form-input .control{padding:0}.form-input-con.select.h-30>.form-input span.icon{font-size:11px}::ng-deep .form-input-con.select.without-sub-options>.form-input .options .option{width:100%}.form-input-con.select.disabled>.form-input .control,.form-input-con.select.disabled>.form-input .label,.form-input-con.select.disabled>.form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}"]
4944
+ styles: [".form-input-con.select{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;font-size:12px;padding:0 15px;position:relative}.form-input-con.select.plaque{width:185px!important}.form-input-con.select>.form-input{float:right;position:relative;width:100%}.form-input-con.select.add-modal>.form-input{width:calc(100% - 45px)}.form-input-con.select>.form-input>.label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.select.error>.form-input>.label{color:var(--red);font-size:10px}.form-input-con.select>.form-input>.label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.select>.form-input .without-search{cursor:pointer;height:100%;position:absolute;right:0;top:0;width:100%;z-index:3}.form-input-con.select>.form-input .control{background-color:#fff;background-image:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;text-align:center;width:100%}.form-input-con.select>.form-input .control:focus,.form-input-con.select>.form-input:hover .control{border:1px solid var(--black-light);outline:none}.form-input-con.select>.form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;outline:none}.form-input-con.select.error>.form-input .control{border:var(--border-input-red)}.form-input-con.select.error>.form-input .control,.form-input-con.select.error>.form-input span.icon{color:var(--red)}.form-input-con.select.error>.form-input .control:focus,.form-input-con.select.error>.form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.select.top>.form-input .control:focus{border-radius:0 0 var(--border-radius-base) var(--border-radius-base);outline:none}.form-input-con.select>.form-input span.icon{bottom:0;color:var(--primary);font-size:15px;height:35px;left:0;line-height:37px;position:absolute;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input span.icon.button{background-color:var(--base);border-radius:5px 0 0 5px;color:#fff;cursor:pointer}.form-input-con.select>.form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.select>.form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.select>.form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.select>.form-input span.icon.button.green{background-color:var(--green)}.form-input-con.select>.form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.select>.form-input span.icon.button.red{background-color:var(--red)}.form-input-con.select>.form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.select>.form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.select>.form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.select>.form-input i.clear-icon{bottom:0;color:var(--red);cursor:pointer;font-size:15px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;width:35px;z-index:1}.form-input-con.select>.form-input .options{background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);cursor:pointer;overflow:hidden;position:absolute;right:0;top:-200000px;width:100%;z-index:103}.form-input-con.select>.form-input .control:focus+.options{top:35px!important}.form-input-con.select.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.select>.form-input .options .items{float:right;max-height:200px;overflow-y:auto;scroll-behavior:smooth;width:100%}.form-input-con.select>.form-input .options .option{border-radius:0;float:right;font-size:11px;height:35px;line-height:35px;text-align:center;width:100%}.form-input-con.select .tags{float:right;width:100%}.form-input-con.select .tags .tag-con{float:right;padding:5px;width:auto}.form-input-con.select .tags .tag-con .tag{background-color:var(--base);border-radius:var(--border-radius-base);color:#fff;float:right;font-size:12px;height:25px;line-height:25px;overflow:hidden;position:relative;width:auto}.form-input-con.select .tags .tag-con .tag>.label{float:right;padding:0 5px 0 10px;width:auto}.form-input-con.select .tags .tag-con .tag>.delete{cursor:pointer;float:right;line-height:25px;text-align:center;width:25px}.form-input-con.select .tags .tag-con .tag>.delete:hover{background-color:var(--base-dark)}.form-input-con.select.h-50>.form-input .control{height:50px;line-height:50px}.form-input-con.select.h-50>.form-input .control:focus+.options{top:50px!important}.form-input-con.select.h-50.top>.form-input .options{bottom:50px;top:unset!important}.form-input-con.select.h-25,.form-input-con.select.h-25>.form-input .control{height:25px;line-height:25px}.form-input-con.select.h-25>.form-input span.icon{height:25px;line-height:25px;width:25px}.form-input-con.select.h-25>.form-input .control:focus+.options{top:25px!important}.form-input-con.select.h-25.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:25px;top:unset!important}.form-input-con.select.h-25>.form-input .control::-moz-placeholder,.form-input-con.select.h-25>.form-input .control::-webkit-input-placeholder{font-size:10px;font-weight:200}.form-input-con.select.h-30>.form-input .control{height:30px;padding:5px 30px}.form-input-con.select.h-30>.form-input .control:focus+.options{top:30px!important}.form-input-con.select.h-30>.form-input span.icon{font-size:15px;height:30px;line-height:32px;width:30px}.form-input-con.select.h-30>.form-input i.clear-icon{height:30px;line-height:30px;width:30px}.form-input-con.select.h-30.top>.form-input .control:focus+.options{bottom:30px}.form-input-con.select.h-45,.form-input-con.select.h-45>.form-input .control{height:45px;line-height:45px}.form-input-con.select.h-45>.form-input .control::-moz-placeholder,.form-input-con.select.h-45>.form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.select.h-45>.form-input span.icon{height:45px;line-height:45px;width:45px}.form-input-con.select.h-45>.form-input .control:focus+.options{top:45px!important}.form-input-con.select.h-45.top>.form-input .control:focus+.options{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:45px;top:unset!important}.form-input-con.select.without-icon.h-25>.form-input .control,.form-input-con.select.without-icon.h-30>.form-input .control{padding:0}.form-input-con.select.h-30>.form-input span.icon{font-size:11px}::ng-deep .form-input-con.select.without-sub-options>.form-input .options .option{width:100%}.form-input-con.select.disabled>.form-input .control,.form-input-con.select.disabled>.form-input .label,.form-input-con.select.disabled>.form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}"]
4945
4945
  },] }
4946
4946
  ];
4947
4947
  FormSelectComponent.propDecorators = {
@@ -5940,6 +5940,7 @@ class FormVehicleSearchComponent {
5940
5940
  }
5941
5941
  get vehicleType() { return VehicleType; }
5942
5942
  ngOnInit() {
5943
+ var _a;
5943
5944
  this.car = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-user', InputType.SelectAutoCompletePlaque, 'plaque-inp');
5944
5945
  this.motor = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-motorcycle', InputType.SelectAutoCompletePlaqueM, 'plaque-inp');
5945
5946
  this.carF = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-earth-asia', InputType.SelectAutoCompletePlaqueF, 'plaque-inp');
@@ -6064,6 +6065,14 @@ class FormVehicleSearchComponent {
6064
6065
  this.type === VehicleType.Fingerprint ? this.fingerprint.data() : null;
6065
6066
  return d;
6066
6067
  };
6068
+ if (this.inp.addModal) {
6069
+ if ((_a = this.inp.addModal.form) === null || _a === void 0 ? void 0 : _a.permission) {
6070
+ this.addIcon = new InputClass(this.inp.environment, this.inp.l, 'Add' + this.inp.name, 'fa-duotone fa-plus', InputType.Icon, 'blue m-b-2');
6071
+ this.addIcon.onClick = () => {
6072
+ this.inp.addModal.show();
6073
+ };
6074
+ }
6075
+ }
6067
6076
  }
6068
6077
  changeType(t) {
6069
6078
  this.type = t;
@@ -6129,8 +6138,8 @@ class FormVehicleSearchComponent {
6129
6138
  FormVehicleSearchComponent.decorators = [
6130
6139
  { type: Component, args: [{
6131
6140
  selector: 'lib-form-vehicle-search',
6132
- template: "<div #inputDiv [id]=\"inp.id + 'VehicleSearchInput'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + ' form-input vehicle-search'\">\r\n <div class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Car)\" [className]=\"(type == vehicleType.Car ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType(vehicleType.Car)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Motorcycle)\" [className]=\"(type == vehicleType.Motorcycle ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType(vehicleType.Motorcycle)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Driver)\" [className]=\"(type == vehicleType.Driver ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType(vehicleType.Driver)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Fingerprint)\" [className]=\"(type == vehicleType.Fingerprint ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType(vehicleType.Fingerprint)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarF)\" [className]=\"(type == vehicleType.CarF ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarF)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarG)\" [className]=\"(type == vehicleType.CarG ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarG)\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"car\" *ngIf=\"type === vehicleType.Car\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"motor\" *ngIf=\"type === vehicleType.Motorcycle\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carF\" *ngIf=\"type === vehicleType.CarF\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carG\" *ngIf=\"type === vehicleType.CarG\"></lib-form-plaque-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"driver\" *ngIf=\"type === vehicleType.Driver\"></lib-form-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"fingerprint\" *ngIf=\"type === vehicleType.Fingerprint\"></lib-form-select>\r\n </div>\r\n</div>\r\n",
6133
- styles: [".form-input.vehicle-search{border-radius:var(--border-radius-base);float:right;font-size:15px;position:relative;width:185px}.form-input.vehicle-search .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input.vehicle-search.error .label{color:var(--red);font-size:10px}.form-input.vehicle-search .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input.vehicle-search .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input.vehicle-search .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input.vehicle-search .label .change-type-btn.active,.form-input.vehicle-search .label .change-type-btn:hover{color:var(--primary)}.form-input.vehicle-search .control{background-color:#fff;background-image:none;border:none;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input.vehicle-search .control:focus,.form-input.vehicle-search:hover .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input.vehicle-search span.icon{bottom:0;color:var(--primary);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input.vehicle-search span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input.vehicle-search span.icon.button:hover{background-color:var(--base-dark)}.form-input.vehicle-search span.icon.button.blue{background-color:var(--blue)}.form-input.vehicle-search span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input.vehicle-search span.icon.button.green{background-color:var(--green)}.form-input.vehicle-search span.icon.button.green:hover{background-color:var(--green-dark)}.form-input.vehicle-search span.icon.button.red{background-color:var(--red)}.form-input.vehicle-search span.icon.button.red:hover{background-color:var(--red-dark)}.form-input.vehicle-search span.icon.button.yellow{background-color:var(--yellow)}.form-input.vehicle-search span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input.vehicle-search.disabled .control,.form-input.vehicle-search.disabled .label,.form-input.vehicle-search.disabled span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input.vehicle-search.error .control{box-shadow:0 1px 3px 0 var(--red)}.form-input.vehicle-search.error .control,.form-input.vehicle-search.error span.icon{color:var(--red-light)}.form-input.vehicle-search .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input.vehicle-search.without-icon .control{padding:5px 10px}.form-input.vehicle-search.h-50 .control{height:50px}.form-input.vehicle-search.h-50 span.icon{height:50px;line-height:50px}.form-input.vehicle-search.h-45 .control{height:45px}.form-input.vehicle-search.h-45 span.icon{height:45px;line-height:45px}.form-input.vehicle-search.h-30 .control{font-size:10px;height:30px;padding:0}.form-input.vehicle-search.h-30 span.icon{height:30px;line-height:30px}.form-input.vehicle-search.h-35{height:35px}.form-input.vehicle-search.h-35 .control{height:35px;padding:0 35px}.form-input.vehicle-search.h-35 span.icon{height:35px;line-height:35px}.form-input.vehicle-search.h-25 .control{height:25px;padding:0}.form-input.vehicle-search.h-25 span.icon{height:25px;line-height:25px}.form-input.vehicle-search.table-search{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input.vehicle-search.h-22 .control{height:22px;padding:0}.form-input.vehicle-search.h-22 span.icon{height:22px;line-height:22px}.form-input.vehicle-search.plaque-part-1{float:left;padding:0!important;width:35px!important}.form-input.vehicle-search.plaque-part-1.plaque-part-m{width:49px!important}.form-input.vehicle-search.plaque-part-3{float:left;padding:0!important;width:49px!important}.form-input.vehicle-search.plaque-part-3.plaque-part-m{width:69px!important}.form-input.vehicle-search.plaque-part-4{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input.vehicle-search.plaque-part-4 .control{height:25px!important}.form-input.vehicle-search.plaque-part-4.plaque-part-m{display:none!important}.form-input.vehicle-search.bank-card-part-item{float:left;padding:0!important;width:25%}.form-input.vehicle-search.bank-card-part-item:not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input.vehicle-search.bank-card-part-item .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
6141
+ template: "<div #inputDiv [id]=\"inp.id + 'VehicleSearchInput'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + (inp.addModal != null ? ' add-modal' : '') + ' form-input-con vehicle-search'\">\r\n <div class=\"form-input\">\r\n <div class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Car)\" [className]=\"(type == vehicleType.Car ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType(vehicleType.Car)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Motorcycle)\" [className]=\"(type == vehicleType.Motorcycle ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType(vehicleType.Motorcycle)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Driver)\" [className]=\"(type == vehicleType.Driver ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType(vehicleType.Driver)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.Fingerprint)\" [className]=\"(type == vehicleType.Fingerprint ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType(vehicleType.Fingerprint)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarF)\" [className]=\"(type == vehicleType.CarF ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarF)\"></i>\r\n <i *ngIf=\"inp.rows.includes(vehicleType.CarG)\" [className]=\"(type == vehicleType.CarG ? 'active ' : '') + 'change-type-btn fas fa-earth-asia'\" (click)=\"changeType(vehicleType.CarG)\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"car\" *ngIf=\"type === vehicleType.Car\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"motor\" *ngIf=\"type === vehicleType.Motorcycle\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carF\" *ngIf=\"type === vehicleType.CarF\"></lib-form-plaque-select>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"carG\" *ngIf=\"type === vehicleType.CarG\"></lib-form-plaque-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"driver\" *ngIf=\"type === vehicleType.Driver\"></lib-form-select>\r\n <lib-form-select (changeIndex)=\"changeIndex.emit($event)\" [inp]=\"fingerprint\" *ngIf=\"type === vehicleType.Fingerprint\"></lib-form-select>\r\n </div>\r\n </div>\r\n <lib-form-icon *ngIf=\"addIcon != null\" [inp]=\"addIcon\"></lib-form-icon>\r\n</div>\r\n<lib-modal *ngIf=\"inp.addModal != null\" [modal]=\"inp.addModal\"></lib-modal>\r\n",
6142
+ styles: [".form-input-con.vehicle-search{align-items:end;display:flex;float:right;justify-content:center;position:relative;width:100%}.form-input-con.vehicle-search.add-modal{width:243px}.form-input-con.vehicle-search .form-input{float:right;position:relative;width:198px}.form-input-con.vehicle-search .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.vehicle-search.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.vehicle-search .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.vehicle-search .form-input .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input-con.vehicle-search .form-input .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input-con.vehicle-search .form-input .label .change-type-btn.active,.form-input-con.vehicle-search .form-input .label .change-type-btn:hover{color:var(--primary)}.form-input-con.vehicle-search .form-input .control{background-color:#fff;background-image:none;border:none;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.vehicle-search .form-input .control:focus,.form-input-con.vehicle-search:hover .form-input .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input-con.vehicle-search .form-input span.icon{bottom:0;color:var(--primary);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.vehicle-search .form-input span.icon.button{background-color:var(--base);border-radius:var(--border-radius-base) 0 0 var(--border-radius-base);color:#fff;cursor:pointer}.form-input-con.vehicle-search .form-input span.icon.button:hover{background-color:var(--base-dark)}.form-input-con.vehicle-search .form-input span.icon.button.blue{background-color:var(--blue)}.form-input-con.vehicle-search .form-input span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input-con.vehicle-search .form-input span.icon.button.green{background-color:var(--green)}.form-input-con.vehicle-search .form-input span.icon.button.green:hover{background-color:var(--green-dark)}.form-input-con.vehicle-search .form-input span.icon.button.red{background-color:var(--red)}.form-input-con.vehicle-search .form-input span.icon.button.red:hover{background-color:var(--red-dark)}.form-input-con.vehicle-search .form-input span.icon.button.yellow{background-color:var(--yellow)}.form-input-con.vehicle-search .form-input span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input-con.vehicle-search.disabled .form-input .control,.form-input-con.vehicle-search.disabled .form-input .label,.form-input-con.vehicle-search.disabled .form-input span.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.vehicle-search.error .form-input .control{box-shadow:0 1px 3px 0 var(--red)}.form-input-con.vehicle-search.error .form-input .control,.form-input-con.vehicle-search.error .form-input span.icon{color:var(--red-light)}.form-input-con.vehicle-search .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input-con.vehicle-search.without-icon .form-input .control{padding:5px 10px}.form-input-con.vehicle-search.h-50 .form-input .control{height:50px}.form-input-con.vehicle-search.h-50 .form-input span.icon{height:50px;line-height:50px}.form-input-con.vehicle-search.h-45 .form-input .control{height:45px}.form-input-con.vehicle-search.h-45 .form-input span.icon{height:45px;line-height:45px}.form-input-con.vehicle-search.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.vehicle-search.h-30 .form-input span.icon{height:30px;line-height:30px}.form-input-con.vehicle-search.h-35 .form-input{height:35px}.form-input-con.vehicle-search.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.vehicle-search.h-35 .form-input span.icon{height:35px;line-height:35px}.form-input-con.vehicle-search.h-25 .form-input .control{height:25px;padding:0}.form-input-con.vehicle-search.h-25 .form-input span.icon{height:25px;line-height:25px}.form-input-con.vehicle-search.table-search .form-input{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input-con.vehicle-search.h-22 .form-input .control{height:22px;padding:0}.form-input-con.vehicle-search.h-22 .form-input span.icon{height:22px;line-height:22px}.form-input-con.vehicle-search.plaque-part-1 .form-input{float:left;padding:0!important;width:35px!important}.form-input-con.vehicle-search.plaque-part-1 .form-input .plaque-part-m{width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input{float:left;padding:0!important;width:49px!important}.form-input-con.vehicle-search.plaque-part-3 .form-input .plaque-part-m{width:69px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .control{height:25px!important}.form-input-con.vehicle-search.plaque-part-4 .form-input .plaque-part-m{display:none!important}.form-input-con.vehicle-search.bank-card-part-item .form-input{float:left;padding:0!important;width:25%}.form-input-con.vehicle-search.bank-card-part-item .form-input :not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input-con.vehicle-search.bank-card-part-item .form-input .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
6134
6143
  },] }
6135
6144
  ];
6136
6145
  FormVehicleSearchComponent.ctorParameters = () => [];