@bnsights/bbsf-controls 1.0.5 → 1.0.9

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.
Files changed (67) hide show
  1. package/bnsights-bbsf-controls.metadata.json +1 -1
  2. package/bundles/bnsights-bbsf-controls.umd.js +238 -179
  3. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  4. package/esm2015/lib/Shared/Models/AutocompleteOptions.js +2 -3
  5. package/esm2015/lib/Shared/Models/ConfirmationModalOptions.js +2 -5
  6. package/esm2015/lib/Shared/Models/DropdownOptions.js +2 -3
  7. package/esm2015/lib/Shared/Models/FileUploadOptions.js +2 -3
  8. package/esm2015/lib/Shared/Models/HtmlEditorOptions.js +2 -3
  9. package/esm2015/lib/Shared/Models/ImageUploadOptions.js +2 -3
  10. package/esm2015/lib/Shared/Models/MapAutoCompleteOptions.js +2 -3
  11. package/esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js +3 -5
  12. package/esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js +4 -6
  13. package/esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js +4 -6
  14. package/esm2015/lib/Shared/Models/PhoneOptions.js +2 -3
  15. package/esm2015/lib/Shared/Models/ProfileImageUploadOptions.js +2 -3
  16. package/esm2015/lib/Shared/Models/RadioButtonOptions.js +2 -3
  17. package/esm2015/lib/Shared/Models/TagsInputOptions.js +2 -3
  18. package/esm2015/lib/Shared/Models/TextAreaOptions.js +2 -3
  19. package/esm2015/lib/Shared/Models/TextBoxOptions.js +2 -3
  20. package/esm2015/lib/Shared/Models/ToggleslideOptions.js +2 -3
  21. package/esm2015/lib/Shared/services/GlobalSettings.service.js +20 -0
  22. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +16 -9
  23. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +3 -13
  24. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +10 -7
  25. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +9 -6
  26. package/esm2015/lib/controls/Form/Form.component.js +2 -1
  27. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +9 -6
  28. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +14 -10
  29. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +8 -9
  30. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +41 -30
  31. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +13 -9
  32. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +13 -7
  33. package/esm2015/lib/controls/Paging/Paging.component.js +6 -4
  34. package/esm2015/lib/controls/Phone/Phone.component.js +8 -6
  35. package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +13 -7
  36. package/esm2015/lib/controls/RadioButton/RadioButton.component.js +8 -3
  37. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +16 -22
  38. package/esm2015/lib/controls/TextArea/TextArea.component.js +8 -6
  39. package/esm2015/lib/controls/TextBox/TextBox.component.js +8 -3
  40. package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +8 -7
  41. package/esm2015/lib/controls/bbsf-controls.module.js +10 -9
  42. package/esm2015/public-api.js +2 -1
  43. package/fesm2015/bnsights-bbsf-controls.js +234 -178
  44. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  45. package/lib/Shared/Models/ConfirmationModalOptions.d.ts +0 -1
  46. package/lib/Shared/services/GlobalSettings.service.d.ts +10 -0
  47. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +5 -3
  48. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -1
  49. package/lib/controls/DropdownList/DropdownList.component.d.ts +4 -3
  50. package/lib/controls/FileUplaod/FileUplaod.component.d.ts +4 -3
  51. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +4 -3
  52. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +5 -5
  53. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +3 -5
  54. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +7 -6
  55. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +4 -5
  56. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +3 -3
  57. package/lib/controls/Paging/Paging.component.d.ts +3 -2
  58. package/lib/controls/Phone/Phone.component.d.ts +3 -3
  59. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +4 -3
  60. package/lib/controls/RadioButton/RadioButton.component.d.ts +3 -1
  61. package/lib/controls/TagsInput/TagsInput.component.d.ts +5 -4
  62. package/lib/controls/TextArea/TextArea.component.d.ts +3 -3
  63. package/lib/controls/TextBox/TextBox.component.d.ts +3 -1
  64. package/lib/controls/Toggleslide/toggleslide.component.d.ts +3 -3
  65. package/package.json +2 -2
  66. package/public-api.d.ts +1 -0
  67. package/src/lib/assets/Style.css +15 -1
@@ -1,21 +1,21 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { Component, Input, Optional, Output, EventEmitter } from '@angular/core';
3
3
  import { FormControl, Validators, FormGroup, ControlContainer, FormGroupDirective } from '@angular/forms';
4
- import { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';
5
4
  import { InputType } from '../../Shared/Enums/InputType';
6
5
  import { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';
7
6
  import { ControlUtility } from '../../Shared/services/ControlUtility';
8
7
  import { LanguageMode } from '../../Shared/Enums/LanguageMode';
9
8
  import { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
9
+ import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
10
10
  export class MultiLingualTextBoxComponent {
11
- constructor(ErrorHandler, MultiLingualTextBoxFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService) {
12
- this.ErrorHandler = ErrorHandler;
11
+ constructor(MultiLingualTextBoxFormControlHost, controlContainer, controlUtility, UtilityService, translate, controlValidationService, globalSettings) {
13
12
  this.MultiLingualTextBoxFormControlHost = MultiLingualTextBoxFormControlHost;
14
13
  this.controlContainer = controlContainer;
15
14
  this.controlUtility = controlUtility;
16
15
  this.UtilityService = UtilityService;
17
16
  this.translate = translate;
18
17
  this.controlValidationService = controlValidationService;
18
+ this.globalSettings = globalSettings;
19
19
  this.OnChange = new EventEmitter();
20
20
  this.ArabicWordCount = 0;
21
21
  this.ArabicWordCountArray = 0;
@@ -79,6 +79,12 @@ export class MultiLingualTextBoxComponent {
79
79
  this.EnglishFormControl = this.MultiLanguagegroup.controls["EnglishValue"]; // new FormControl('',validationRules);
80
80
  this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguagegroup.controls));
81
81
  this.getCustomErrorsMassages();
82
+ if (!this.options.ViewType)
83
+ this.options.ViewType = this.globalSettings.ViewType;
84
+ if (!this.options.LanguageMode)
85
+ this.options.LanguageMode = this.globalSettings.LanguageMode;
86
+ if (!this.options.MultiControlPlacementType)
87
+ this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
82
88
  if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != "")
83
89
  this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);
84
90
  if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != "")
@@ -305,22 +311,22 @@ MultiLingualTextBoxComponent.controlContainerstatic = null;
305
311
  MultiLingualTextBoxComponent.decorators = [
306
312
  { type: Component, args: [{
307
313
  selector: 'BBSF-MultiLingualTextBox',
308
- template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'left':'right'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\"\r\n (focus)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"EnglishValue\"\r\n [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputEnglish>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} words</div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n \r\n\r\n <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\r\n </label>\r\n\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right':'left'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\" dir=\"rtl\"\r\n (focus)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"ArabicValue\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n \r\n \r\n\r\n <!-- <div *ngIf=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n \r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
314
+ template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-9':'col-md-3'\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n <div class=\"col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'left':'right'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\"\r\n (focus)=\"showEnglishWordCount(true)\" (focusout)=\"showEnglishWordCount(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"EnglishValue\"\r\n [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputEnglish>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} words</div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n \r\n\r\n <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\r\n\r\n <label class=\"b-label col-form-label col-sm-12\"\r\n [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\"\r\n class=\"text-danger Required-text\" aria-required=\"true\">*</span>\r\n\r\n </label>\r\n\r\n <div class=\" col-sm-12\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\">\r\n <div class=\"input-group align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right':'left'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control\" dir=\"rtl\"\r\n (focus)=\"showArabicWordCount(true)\" (focusout)=\"showArabicWordCount(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"ArabicValue\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n \r\n \r\n\r\n <!-- <div *ngIf=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n \r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
309
315
  styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
310
316
  },] }
311
317
  ];
312
318
  MultiLingualTextBoxComponent.ctorParameters = () => [
313
- { type: ErrorMassageValidation },
314
319
  { type: FormGroupDirective },
315
320
  { type: ControlContainer, decorators: [{ type: Optional }] },
316
321
  { type: ControlUtility },
317
322
  { type: UtilityService },
318
323
  { type: BBSFTranslateService },
319
- { type: ControlValidationService }
324
+ { type: ControlValidationService },
325
+ { type: GlobalSettings }
320
326
  ];
321
327
  MultiLingualTextBoxComponent.propDecorators = {
322
328
  group: [{ type: Input }],
323
329
  options: [{ type: Input }],
324
330
  OnChange: [{ type: Output }]
325
331
  };
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlMaW5ndWFsVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvTXVsdGlMaW5ndWFsVGV4dEJveC9NdWx0aUxpbmd1YWxUZXh0Qm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVcsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFxQyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTywwQkFBMEIsQ0FBQztBQU8zRyxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLFlBQW9CLFlBQW9DLEVBQVMsa0NBQXNELEVBQXNCLGdCQUFrQyxFQUFVLGNBQThCLEVBQVMsY0FBNkIsRUFBUyxTQUErQixFQUFTLHdCQUFpRDtRQUEzVSxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFBUyx1Q0FBa0MsR0FBbEMsa0NBQWtDLENBQW9CO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FB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QixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFFbkQsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7O0FBaldNLG1EQUFzQixHQUFHLElBQUksQ0FBQzs7WUFQdEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHdxUEFBbUQ7O2FBRXBEOzs7WUFiUSxzQkFBc0I7WUFEbUUsa0JBQWtCO1lBQXBDLGdCQUFnQix1QkFtQjRCLFFBQVE7WUFkM0gsY0FBYztZQUdrQyxjQUFjO1lBQTlELG9CQUFvQjtZQUFFLHdCQUF3Qjs7O29CQWlCcEQsS0FBSztzQkFDTCxLQUFLO3VCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIERvQ2hlY2ssIE9wdGlvbmFsLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvTXVsdGlsaW5ndWFsVGV4dEJveE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvSW5wdXRUeXBlJztcclxuaW1wb3J0IHsgRW5nbGlzaEFyYWJpY0RUTyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvRW5nbGlzaEFyYWJpY0RUTyc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL0xhbmd1YWdlTW9kZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIExhbmdDaGFuZ2VFdmVudCB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLU11bHRpTGluZ3VhbFRleHRCb3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9NdWx0aUxpbmd1YWxUZXh0Qm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9NdWx0aUxpbmd1YWxUZXh0Qm94LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpTGluZ3VhbFRleHRCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgRXJyb3JIYW5kbGVyOiBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLCBwdWJsaWMgTXVsdGlMaW5ndWFsVGV4dEJveEZvcm1Db250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LHByaXZhdGUgVXRpbGl0eVNlcnZpY2U6VXRpbGl0eVNlcnZpY2UscHJpdmF0ZSB0cmFuc2xhdGU6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOkNvbnRyb2xWYWxpZGF0aW9uU2VydmljZSBcclxuXHJcbiAgKSB7XHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgICB0aGlzLkN1cnJlbnRMYW5ndWFnZSA9IHRyYW5zbGF0ZS5jdXJyZW50TGFuZyAhPSB1bmRlZmluZWQgPyB0cmFuc2xhdGUuY3VycmVudExhbmcgOiB0cmFuc2xhdGUuZGVmYXVsdExhbmdcclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEFyYWJpY0Zvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgRW5nbGlzaEZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgTXVsdGlGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIE11bHRpTGFuZ3VhZ2Vncm91cDogRm9ybUdyb3VwO1xyXG4gIEFyYWJpY1dvcmRDb3VudDogbnVtYmVyID0gMDtcclxuICBBcmFiaWNXb3JkQ291bnRBcnJheTogbnVtYmVyID0gMDtcclxuICBFbmdsaXNoV29yZENvdW50OiBudW1iZXIgPSAwO1xyXG4gIEVuZ2xpc2hXb3JkQ291bnRBcnJheTogbnVtYmVyID0gMDtcclxuICBDdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyA9IFwiXCI7XHJcbiAgU2hvd0FyYWJpY1RleHRCb3g6IGJvb2xlYW5cclxuICBTaG93RW5nbGlzaFRleHRCb3g6IGJvb2xlYW5cclxuICBBcmFiaWNWYWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICBBcmFiaWNWYWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG4gIEVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICBFbmdsaXNoVmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuXHJcbiAgSXNTaG93QXJhYmljV29yZENvdW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgSXNTaG93RW5nbGlzaFdvcmRDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1hcmtBbGxBc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIEFyYWJpY0xldHRlck9ubHk6c3RyaW5nPVwiXCJcclxuICBFbmdsaXNoTGV0dGVyT25seTpzdHJpbmc9XCJcIlxyXG5cclxuIGdldEN1c3RvbUVycm9yc01hc3NhZ2VzKCkge1xyXG4gICAgdGhpcy5BcmFiaWNMZXR0ZXJPbmx5ID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXJhYmljTGV0dGVyT25seVwiKTtcclxuICAgIHRoaXMuRW5nbGlzaExldHRlck9ubHkgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoTGV0dGVyT25seVwiKTtcclxuXHJcblxyXG4gIH1cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuICAgIHRoaXMuQ3VycmVudExhbmd1YWdlID0gYXdhaXQgdGhpcy5VdGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcclxuXHJcbiAgICAvLyB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuQ3VycmVudExhbmd1YWdlID0gZXZlbnQubGFuZztcclxuICAgIC8vICAgdGhpcy5zaG93SW5wdXRVc2luZ0xhbmd1YWdlTW9kZSgpXHJcbiAgICAvLyB9KTtcclxuICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7O1xyXG4gICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuYWRkQ29udHJvbChcIkFyYWJpY1ZhbHVlXCIsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuYWRkQ29udHJvbChcIkVuZ2xpc2hWYWx1ZVwiLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuQXJhYmljRm9ybUNvbnRyb2wgPSB0aGlzLk11bHRpTGFuZ3VhZ2Vncm91cC5jb250cm9sc1tcIkFyYWJpY1ZhbHVlXCJdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbCA9IHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzW1wiRW5nbGlzaFZhbHVlXCJdOyAvLyAgbmV3IEZvcm1Db250cm9sKCcnLHZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLk5hbWUsIG5ldyBGb3JtR3JvdXAodGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHMpKTtcclxuICAgIHRoaXMuZ2V0Q3VzdG9tRXJyb3JzTWFzc2FnZXMoKVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5BcmFiaWNMYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5BcmFiaWNMYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQXJhYmljTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuQXJhYmljTGFiZWxLZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRW5nbGlzaExhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkVuZ2xpc2hMYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuRW5nbGlzaExhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkVuZ2xpc2hMYWJlbEtleSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5NaW5MZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5vcHRpb25zLk1pbkxlbmd0aCkpO1xyXG4gICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm9wdGlvbnMuTWluTGVuZ3RoKSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm9wdGlvbnMuTWF4TGVuZ3RoKSk7XHJcbiAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5vcHRpb25zLk1heExlbmd0aCkpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dJbnB1dFVzaW5nTGFuZ3VhZ2VNb2RlKCk7XHJcbiAgICBcclxuICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXR0ZXJuVmFsaWRhdG9yKC9bXFx1MDYyMS1cXHUwNjRBXSsvLCB7IEFyYWJpY0xldHRlck9ubHk6IHRoaXMuQXJhYmljTGV0dGVyT25seSB9KSxcclxuICAgICAgIFxyXG4gICAgXSkpO1xyXG4gICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXR0ZXJuVmFsaWRhdG9yKC9eW1xceDAwLVxceDdGXSokLywgeyBFbmdsaXNoTGV0dGVyT25seTogdGhpcy5FbmdsaXNoTGV0dGVyT25seSB9KSxcclxuICAgICAgIFxyXG4gICAgXSkpO1xyXG4gICAgXHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZS5BcmFiaWMpXHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUuRW5nbGlzaClcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbFRleHRCb3hGb3JtQ29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG9uVGV4dENoYW5nZSgpIHtcclxuICAgLy8gdGhpcy50cmltQ29udHJvbFZhbHVlKHR5cGUpXHJcbiAgICBsZXQgYXJhYmljVmFsdWUgPSBcIlwiO1xyXG4gICAgbGV0IGVuZ2xpc2hWYWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wudmFsdWUgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA9IDA7XHJcbiAgICAgIHRoaXMuRW5nbGlzaFdvcmRDb3VudCA9IDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlICE9IG51bGwgJiYgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wudmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoV29yZENvdW50QXJyYXkgPSB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS5zcGxpdChcIiBcIikubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA+IDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA+IHRoaXMub3B0aW9ucy5NYXhXb3JkQ291bnQpIHtcclxuICAgICAgICAgICAgdGhpcy5FbmdsaXNoV29yZENvdW50ID0gdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudDtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJFbmdsaXNoVmFsdWVcIl0uc2V0RXJyb3JzKHsgTWF4V29yZENvdW50VmFsaWRhdGlvbktleTogdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCB9KTtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJFbmdsaXNoVmFsdWVcIl0ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB0aGlzLk11bHRpTGFuZ3VhZ2Vncm91cC5jb250cm9sc1tcIkVuZ2xpc2hWYWx1ZVwiXS5pbnZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuRW5nbGlzaFdvcmRDb3VudCA9IHRoaXMuRW5nbGlzaFdvcmRDb3VudEFycmF5O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZW5nbGlzaFZhbHVlPXRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA9IDA7XHJcbiAgICAgIHRoaXMuQXJhYmljV29yZENvdW50ID0gMDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5BcmFiaWNGb3JtQ29udHJvbC52YWx1ZSAhPSBudWxsICYmIHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA9IHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUuc3BsaXQoXCIgXCIpLmxlbmd0aDtcclxuICAgICAgICBpZiAodGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA+IDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLkFyYWJpY1dvcmRDb3VudEFycmF5ID4gdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCkge1xyXG4gICAgICAgICAgICB0aGlzLkFyYWJpY1dvcmRDb3VudCA9IHRoaXMub3B0aW9ucy5NYXhXb3JkQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzW1wiQXJhYmljVmFsdWVcIl0uc2V0RXJyb3JzKHsgTWF4V29yZENvdW50VmFsaWRhdGlvbktleTogdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCB9KTtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJBcmFiaWNWYWx1ZVwiXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzW1wiQXJhYmljVmFsdWVcIl0uaW52YWxpZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLkFyYWJpY1dvcmRDb3VudCA9IHRoaXMuQXJhYmljV29yZENvdW50QXJyYXk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcmFiaWNWYWx1ZT10aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGxldCBtdWxpdExhbmdNb2RlbCA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICBtdWxpdExhbmdNb2RlbC5BcmFiaWMgPSBhcmFiaWNWYWx1ZTtcclxuICAgIG11bGl0TGFuZ01vZGVsLkVuZ2xpc2ggPSBlbmdsaXNoVmFsdWU7XHJcbiAgICAvLyB0aGlzLkFyYWJpY0Zvcm1Db250cm9sID0gYXJhYmljVmFsdWU7XHJcbiAgICAvLyB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbCA9IGVuZ2xpc2hWYWx1ZTtcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChtdWxpdExhbmdNb2RlbClcclxuICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5zZXRWYWx1ZShtdWxpdExhbmdNb2RlbCk7XHJcblxyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxUZXh0Qm94Rm9ybUNvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICByZXNldEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkFyYWJpY0Zvcm1Db250cm9sLCB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLCB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wsIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wsIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wsIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbCwgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5BcmFiaWNGb3JtQ29udHJvbCwgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLCB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLkFyYWJpY0Zvcm1Db250cm9sKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sKVxyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0SW5wdXRUeXBlKHR5cGU6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIElucHV0VHlwZVt0eXBlXVxyXG4gIH1cclxuXHJcbiAgdHJpbUNvbnRyb2xWYWx1ZSh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdoaXRlc3BhY2U6IHN0cmluZyA9JyAnO1xyXG4gICAgaWYgKHR5cGUgPT0gXCJFblwiKSB7XHJcbiAgICAgIGlmICh0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS5zdGFydHNXaXRoKHdoaXRlc3BhY2UpIHx8IHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlLmVuZHNXaXRoKHdoaXRlc3BhY2UpKSB7XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS50cmltKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSBcIkFyXCIpIHtcclxuICAgICAgaWYgKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUuc3RhcnRzV2l0aCh3aGl0ZXNwYWNlKSB8fCB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlLmVuZHNXaXRoKHdoaXRlc3BhY2UpKSB7XHJcbiAgICAgICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUudHJpbSgpKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Db3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudClcclxuICB9XHJcblxyXG4gIHNob3dJbnB1dFVzaW5nTGFuZ3VhZ2VNb2RlKCkge1xyXG4gICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMgPSB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyA9IHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcblxyXG4gICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnMuTGFuZ3VhZ2VNb2RlKSB7XHJcbiAgICAgIGNhc2UgTGFuZ3VhZ2VNb2RlLkJvdGhfTGFuZ3VhZ2VzX2FyZV92aXNpYmxlOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5BcmFiaWNfTGFuZ3VhZ2Vfb25seV9pc192aXNpYmxlOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5FbmdsaXNoX0xhbmd1YWdlX29ubHlfaXNfdmlzaWJsZTpcclxuICAgICAgICB0aGlzLlNob3dFbmdsaXNoVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTGFuZ3VhZ2VNb2RlLkJvdGhfTGFuZ3VhZ2VzX2FyZV92aXNpYmxlX2J1dF9vbmx5X2N1cnJlbnRfbGFuZ3VhZ2VfaXNfcmVxdWlyZWQ6XHJcbiAgICAgICAgdGhpcy5TaG93QXJhYmljVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5TaG93RW5nbGlzaFRleHRCb3ggPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5DdXJyZW50TGFuZ3VhZ2UgPT0gJ2FyJykge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnZW4nKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBMYW5ndWFnZU1vZGUuQm90aF9MYW5ndWFnZXNfYnV0X29ubHlfQXJhYmljX2lzX3JlcXVpcmVkOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5Cb3RoX0xhbmd1YWdlc19idXRfb25seV9FbmdsaXNoX2lzX3JlcXVpcmVkOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBMYW5ndWFnZU1vZGUuQ3VycmVudF9MYW5ndWFnZV9vbmx5X2lzX3Zpc2libGVfYW5kX3JlcXVpcmVkOlxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnYXInKSB7XHJcbiAgICAgICAgICB0aGlzLlNob3dBcmFiaWNUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnZW4nKSB7XHJcbiAgICAgICAgICB0aGlzLlNob3dBcmFiaWNUZXh0Qm94ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLlNob3dFbmdsaXNoVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuQXJhYmljRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgfVxyXG5cclxuICBzaG93QXJhYmljV29yZENvdW50KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLklzU2hvd0FyYWJpY1dvcmRDb3VudCA9IHZhbHVlXHJcbiAgfVxyXG5cclxuICBzaG93RW5nbGlzaFdvcmRDb3VudCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5Jc1Nob3dFbmdsaXNoV29yZENvdW50ID0gdmFsdWVcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuIl19
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlMaW5ndWFsVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvTXVsdGlMaW5ndWFsVGV4dEJveC9NdWx0aUxpbmd1YWxUZXh0Qm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFtQixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTywwQkFBMEIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFPOUUsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUFtQixrQ0FBc0QsRUFBc0IsZ0JBQWtDLEVBQ3ZILGNBQThCLEVBQVUsY0FBOEIsRUFBVSxTQUErQixFQUMvRyx3QkFBa0QsRUFBVSxjQUE4QjtRQUZqRix1Q0FBa0MsR0FBbEMsa0NBQWtDLENBQW9CO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDdkgsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENB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QUFPLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTt3QkFDbkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBRXZEO2lCQUNGO2dCQUNELE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFFbkQsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFBO0lBQ3JDLENBQUM7O0FBeldNLG1EQUFzQixHQUFHLElBQUksQ0FBQzs7WUFQdEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLDhzUEFBbUQ7O2FBRXBEOzs7WUFiK0Usa0JBQWtCO1lBQXBDLGdCQUFnQix1QkFrQkEsUUFBUTtZQWQ3RSxjQUFjO1lBRWtDLGNBQWM7WUFBOUQsb0JBQW9CO1lBQUUsd0JBQXdCO1lBQzlDLGNBQWM7OztvQkFpQnBCLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9NdWx0aWxpbmd1YWxUZXh0Qm94T3B0aW9ucyc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9JbnB1dFR5cGUnO1xyXG5pbXBvcnQgeyBFbmdsaXNoQXJhYmljRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9FbmdsaXNoQXJhYmljRFRPJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvTGFuZ3VhZ2VNb2RlJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL011bHRpTGluZ3VhbFRleHRCb3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL011bHRpTGluZ3VhbFRleHRCb3guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlMaW5ndWFsVGV4dEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIE11bHRpTGluZ3VhbFRleHRCb3hGb3JtQ29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIHByaXZhdGUgVXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBwcml2YXRlIGdsb2JhbFNldHRpbmdzOiBHbG9iYWxTZXR0aW5ncykge1xyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEJveENvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gICAgdGhpcy5DdXJyZW50TGFuZ3VhZ2UgPSB0cmFuc2xhdGUuY3VycmVudExhbmcgIT0gdW5kZWZpbmVkID8gdHJhbnNsYXRlLmN1cnJlbnRMYW5nIDogdHJhbnNsYXRlLmRlZmF1bHRMYW5nXHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgQE91dHB1dCgpIE9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBBcmFiaWNGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIEVuZ2xpc2hGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIE11bHRpRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBNdWx0aUxhbmd1YWdlZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBBcmFiaWNXb3JkQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgQXJhYmljV29yZENvdW50QXJyYXk6IG51bWJlciA9IDA7XHJcbiAgRW5nbGlzaFdvcmRDb3VudDogbnVtYmVyID0gMDtcclxuICBFbmdsaXNoV29yZENvdW50QXJyYXk6IG51bWJlciA9IDA7XHJcbiAgQ3VycmVudExhbmd1YWdlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIFNob3dBcmFiaWNUZXh0Qm94OiBib29sZWFuXHJcbiAgU2hvd0VuZ2xpc2hUZXh0Qm94OiBib29sZWFuXHJcbiAgQXJhYmljVmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgQXJhYmljVmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBFbmdsaXNoVmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgRW5nbGlzaFZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcblxyXG4gIElzU2hvd0FyYWJpY1dvcmRDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIElzU2hvd0VuZ2xpc2hXb3JkQ291bnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBBcmFiaWNMZXR0ZXJPbmx5OnN0cmluZz1cIlwiXHJcbiAgRW5nbGlzaExldHRlck9ubHk6c3RyaW5nPVwiXCJcclxuXHJcbiBnZXRDdXN0b21FcnJvcnNNYXNzYWdlcygpIHtcclxuICAgIHRoaXMuQXJhYmljTGV0dGVyT25seSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY0xldHRlck9ubHlcIik7XHJcbiAgICB0aGlzLkVuZ2xpc2hMZXR0ZXJPbmx5ID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW5nbGlzaExldHRlck9ubHlcIik7XHJcblxyXG5cclxuICB9XHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5pc0NyZWF0ZWRCZWZvciA9IGZhbHNlXHJcbiAgICB0aGlzLkN1cnJlbnRMYW5ndWFnZSA9IGF3YWl0IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCk7XHJcblxyXG4gICAgLy8gdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQ6IExhbmdDaGFuZ2VFdmVudCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLkN1cnJlbnRMYW5ndWFnZSA9IGV2ZW50Lmxhbmc7XHJcbiAgICAvLyAgIHRoaXMuc2hvd0lucHV0VXNpbmdMYW5ndWFnZU1vZGUoKVxyXG4gICAgLy8gfSk7XHJcbiAgICB0aGlzLk11bHRpTGFuZ3VhZ2Vncm91cCA9IG5ldyBGb3JtR3JvdXAoe30pOztcclxuICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmFkZENvbnRyb2woXCJBcmFiaWNWYWx1ZVwiLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmFkZENvbnRyb2woXCJFbmdsaXNoVmFsdWVcIiwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sID0gdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJBcmFiaWNWYWx1ZVwiXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wgPSB0aGlzLk11bHRpTGFuZ3VhZ2Vncm91cC5jb250cm9sc1tcIkVuZ2xpc2hWYWx1ZVwiXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUdyb3VwKHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzKSk7XHJcbiAgICB0aGlzLmdldEN1c3RvbUVycm9yc01hc3NhZ2VzKClcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5WaWV3VHlwZSlcclxuICAgICAgdGhpcy5vcHRpb25zLlZpZXdUeXBlID0gdGhpcy5nbG9iYWxTZXR0aW5ncy5WaWV3VHlwZTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLkxhbmd1YWdlTW9kZSlcclxuICAgICAgdGhpcy5vcHRpb25zLkxhbmd1YWdlTW9kZSA9IHRoaXMuZ2xvYmFsU2V0dGluZ3MuTGFuZ3VhZ2VNb2RlO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuTXVsdGlDb250cm9sUGxhY2VtZW50VHlwZSlcclxuICAgICAgdGhpcy5vcHRpb25zLk11bHRpQ29udHJvbFBsYWNlbWVudFR5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLk11bHRpQ29udHJvbFBsYWNlbWVudFR5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5BcmFiaWNMYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5BcmFiaWNMYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQXJhYmljTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuQXJhYmljTGFiZWxLZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRW5nbGlzaExhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkVuZ2xpc2hMYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuRW5nbGlzaExhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkVuZ2xpc2hMYWJlbEtleSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5NaW5MZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5vcHRpb25zLk1pbkxlbmd0aCkpO1xyXG4gICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm9wdGlvbnMuTWluTGVuZ3RoKSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm9wdGlvbnMuTWF4TGVuZ3RoKSk7XHJcbiAgICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5vcHRpb25zLk1heExlbmd0aCkpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dJbnB1dFVzaW5nTGFuZ3VhZ2VNb2RlKCk7XHJcbiAgICBcclxuICAgIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXR0ZXJuVmFsaWRhdG9yKC9bXFx1MDYyMS1cXHUwNjRBXSsvLCB7IEFyYWJpY0xldHRlck9ubHk6IHRoaXMuQXJhYmljTGV0dGVyT25seSB9KSxcclxuICAgICAgIFxyXG4gICAgXSkpO1xyXG4gICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXR0ZXJuVmFsaWRhdG9yKC9eW1xceDAwLVxceDdGXSokLywgeyBFbmdsaXNoTGV0dGVyT25seTogdGhpcy5FbmdsaXNoTGV0dGVyT25seSB9KSxcclxuICAgICAgIFxyXG4gICAgXSkpO1xyXG4gICAgXHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZS5BcmFiaWMpXHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUuRW5nbGlzaClcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbFRleHRCb3hGb3JtQ29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG9uVGV4dENoYW5nZSgpIHtcclxuICAgLy8gdGhpcy50cmltQ29udHJvbFZhbHVlKHR5cGUpXHJcbiAgICBsZXQgYXJhYmljVmFsdWUgPSBcIlwiO1xyXG4gICAgbGV0IGVuZ2xpc2hWYWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wudmFsdWUgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA9IDA7XHJcbiAgICAgIHRoaXMuRW5nbGlzaFdvcmRDb3VudCA9IDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlICE9IG51bGwgJiYgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wudmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoV29yZENvdW50QXJyYXkgPSB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS5zcGxpdChcIiBcIikubGVuZ3RoO1xyXG4gICAgICAgIGlmICh0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA+IDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLkVuZ2xpc2hXb3JkQ291bnRBcnJheSA+IHRoaXMub3B0aW9ucy5NYXhXb3JkQ291bnQpIHtcclxuICAgICAgICAgICAgdGhpcy5FbmdsaXNoV29yZENvdW50ID0gdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudDtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJFbmdsaXNoVmFsdWVcIl0uc2V0RXJyb3JzKHsgTWF4V29yZENvdW50VmFsaWRhdGlvbktleTogdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCB9KTtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJFbmdsaXNoVmFsdWVcIl0ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB0aGlzLk11bHRpTGFuZ3VhZ2Vncm91cC5jb250cm9sc1tcIkVuZ2xpc2hWYWx1ZVwiXS5pbnZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuRW5nbGlzaFdvcmRDb3VudCA9IHRoaXMuRW5nbGlzaFdvcmRDb3VudEFycmF5O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZW5nbGlzaFZhbHVlPXRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA9IDA7XHJcbiAgICAgIHRoaXMuQXJhYmljV29yZENvdW50ID0gMDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5BcmFiaWNGb3JtQ29udHJvbC52YWx1ZSAhPSBudWxsICYmIHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA9IHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUuc3BsaXQoXCIgXCIpLmxlbmd0aDtcclxuICAgICAgICBpZiAodGhpcy5BcmFiaWNXb3JkQ291bnRBcnJheSA+IDApIHtcclxuICAgICAgICAgIGlmICh0aGlzLkFyYWJpY1dvcmRDb3VudEFycmF5ID4gdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCkge1xyXG4gICAgICAgICAgICB0aGlzLkFyYWJpY1dvcmRDb3VudCA9IHRoaXMub3B0aW9ucy5NYXhXb3JkQ291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzW1wiQXJhYmljVmFsdWVcIl0uc2V0RXJyb3JzKHsgTWF4V29yZENvdW50VmFsaWRhdGlvbktleTogdGhpcy5vcHRpb25zLk1heFdvcmRDb3VudCB9KTtcclxuICAgICAgICAgICAgdGhpcy5NdWx0aUxhbmd1YWdlZ3JvdXAuY29udHJvbHNbXCJBcmFiaWNWYWx1ZVwiXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuTXVsdGlMYW5ndWFnZWdyb3VwLmNvbnRyb2xzW1wiQXJhYmljVmFsdWVcIl0uaW52YWxpZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLkFyYWJpY1dvcmRDb3VudCA9IHRoaXMuQXJhYmljV29yZENvdW50QXJyYXk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcmFiaWNWYWx1ZT10aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGxldCBtdWxpdExhbmdNb2RlbCA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICBtdWxpdExhbmdNb2RlbC5BcmFiaWMgPSBhcmFiaWNWYWx1ZTtcclxuICAgIG11bGl0TGFuZ01vZGVsLkVuZ2xpc2ggPSBlbmdsaXNoVmFsdWU7XHJcbiAgICAvLyB0aGlzLkFyYWJpY0Zvcm1Db250cm9sID0gYXJhYmljVmFsdWU7XHJcbiAgICAvLyB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbCA9IGVuZ2xpc2hWYWx1ZTtcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChtdWxpdExhbmdNb2RlbClcclxuICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5zZXRWYWx1ZShtdWxpdExhbmdNb2RlbCk7XHJcblxyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxUZXh0Qm94Rm9ybUNvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICByZXNldEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkFyYWJpY0Zvcm1Db250cm9sLCB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLCB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wsIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wsIHRoaXMuQXJhYmljVmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wsIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbCwgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5BcmFiaWNGb3JtQ29udHJvbCwgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLCB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLkFyYWJpY0Zvcm1Db250cm9sKVxyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuRW5nbGlzaEZvcm1Db250cm9sKVxyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0SW5wdXRUeXBlKHR5cGU6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIElucHV0VHlwZVt0eXBlXVxyXG4gIH1cclxuXHJcbiAgdHJpbUNvbnRyb2xWYWx1ZSh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdoaXRlc3BhY2U6IHN0cmluZyA9JyAnO1xyXG4gICAgaWYgKHR5cGUgPT0gXCJFblwiKSB7XHJcbiAgICAgIGlmICh0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS5zdGFydHNXaXRoKHdoaXRlc3BhY2UpIHx8IHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnZhbHVlLmVuZHNXaXRoKHdoaXRlc3BhY2UpKSB7XHJcbiAgICAgICAgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC52YWx1ZS50cmltKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSBcIkFyXCIpIHtcclxuICAgICAgaWYgKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUuc3RhcnRzV2l0aCh3aGl0ZXNwYWNlKSB8fCB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnZhbHVlLmVuZHNXaXRoKHdoaXRlc3BhY2UpKSB7XHJcbiAgICAgICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuQXJhYmljRm9ybUNvbnRyb2wudmFsdWUudHJpbSgpKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Db3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudClcclxuICB9XHJcblxyXG4gIHNob3dJbnB1dFVzaW5nTGFuZ3VhZ2VNb2RlKCkge1xyXG4gICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMgPSB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyA9IHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5FbmdsaXNoRm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcblxyXG4gICAgdGhpcy5BcmFiaWNGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnMuTGFuZ3VhZ2VNb2RlKSB7XHJcbiAgICAgIGNhc2UgTGFuZ3VhZ2VNb2RlLkJvdGhfTGFuZ3VhZ2VzX2FyZV92aXNpYmxlOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5BcmFiaWNfTGFuZ3VhZ2Vfb25seV9pc192aXNpYmxlOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5FbmdsaXNoX0xhbmd1YWdlX29ubHlfaXNfdmlzaWJsZTpcclxuICAgICAgICB0aGlzLlNob3dFbmdsaXNoVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTGFuZ3VhZ2VNb2RlLkJvdGhfTGFuZ3VhZ2VzX2FyZV92aXNpYmxlX2J1dF9vbmx5X2N1cnJlbnRfbGFuZ3VhZ2VfaXNfcmVxdWlyZWQ6XHJcbiAgICAgICAgdGhpcy5TaG93QXJhYmljVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5TaG93RW5nbGlzaFRleHRCb3ggPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5DdXJyZW50TGFuZ3VhZ2UgPT0gJ2FyJykge1xyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnZW4nKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBMYW5ndWFnZU1vZGUuQm90aF9MYW5ndWFnZXNfYnV0X29ubHlfQXJhYmljX2lzX3JlcXVpcmVkOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIExhbmd1YWdlTW9kZS5Cb3RoX0xhbmd1YWdlc19idXRfb25seV9FbmdsaXNoX2lzX3JlcXVpcmVkOlxyXG4gICAgICAgIHRoaXMuU2hvd0FyYWJpY1RleHRCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5FbmdsaXNoVmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBMYW5ndWFnZU1vZGUuQ3VycmVudF9MYW5ndWFnZV9vbmx5X2lzX3Zpc2libGVfYW5kX3JlcXVpcmVkOlxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnYXInKSB7XHJcbiAgICAgICAgICB0aGlzLlNob3dBcmFiaWNUZXh0Qm94ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuU2hvd0VuZ2xpc2hUZXh0Qm94ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5BcmFiaWNWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRMYW5ndWFnZSA9PSAnZW4nKSB7XHJcbiAgICAgICAgICB0aGlzLlNob3dBcmFiaWNUZXh0Qm94ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLlNob3dFbmdsaXNoVGV4dEJveCA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLkVuZ2xpc2hWYWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuQXJhYmljRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLkFyYWJpY1ZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkVuZ2xpc2hGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuRW5nbGlzaFZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLkFyYWJpY0Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuRW5nbGlzaEZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgfVxyXG5cclxuICBzaG93QXJhYmljV29yZENvdW50KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLklzU2hvd0FyYWJpY1dvcmRDb3VudCA9IHZhbHVlXHJcbiAgfVxyXG5cclxuICBzaG93RW5nbGlzaFdvcmRDb3VudCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5Jc1Nob3dFbmdsaXNoV29yZENvdW50ID0gdmFsdWVcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuIl19
@@ -4,10 +4,11 @@ import { HttpClient, HttpParams } from '@angular/common/http';
4
4
  import { PagingDTO } from '../../Shared/Models/PagingDTO';
5
5
  import { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';
6
6
  import { FilterType } from '../../Shared/Enums/FilterType';
7
- import { RequestHandlerService } from '@bnsights/bbsf-utilities';
7
+ import { RequestHandlerService, UtilityService } from '@bnsights/bbsf-utilities';
8
8
  // tslint:disable-next-line: no-conflicting-lifecycle
9
9
  export class PagingComponent {
10
- constructor(http, router, onChangeService, requestHandlerService) {
10
+ constructor(utilityService, http, router, onChangeService, requestHandlerService) {
11
+ this.utilityService = utilityService;
11
12
  this.http = http;
12
13
  this.router = router;
13
14
  this.onChangeService = onChangeService;
@@ -197,11 +198,12 @@ export class PagingComponent {
197
198
  PagingComponent.decorators = [
198
199
  { type: Component, args: [{
199
200
  selector: 'BBSF-Paging',
200
- template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> Items in <strong> {{Pages}}</strong> Pages\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-primary\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\"> Load More </button>\r\n </div>\r\n</div>\r\n",
201
+ template: "<div class=\"b-control b-paging\" *ngIf=\"(result.length > 0)\">\r\n <div class=\"d-flex justify-content-between align-items-center\" *ngIf=\"!options.IsLoadMoreControl\">\r\n <div class=\"b-pagination\">\r\n <jw-pagination [items]=\"items\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\"\r\n (changePage)=\"onChangePage($event)\" [pageSize]=\"options.PageSize\" [ShowFirstAndLast]=\"options.ShowFirstAndLast\"\r\n [initialPage]=\"1\" [maxPages]=\"10\"></jw-pagination>\r\n </div>\r\n <div class=\"b-pages d-flex\" *ngIf=\"!((Pages==1)&&options.HidePaginationWhenPageSizeEqualOne)\" >\r\n <select (change)=\"changePageSize($event)\" *ngIf=\"options.ShowPageSizeOption\">\r\n <option>10</option>\r\n <option>20</option>\r\n <option>50</option>\r\n <option>100</option>\r\n <option>200</option>\r\n </select>\r\n <div class=\"b-items ml-3\">\r\n <strong>{{totalRow}}</strong> {{utilityService.getResourceValue(\"ItemsIn\")}} <strong> {{Pages}}</strong> {{utilityService.getResourceValue(\"Pages\")}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" style=\"align-self:center; align-items: center; text-align: center;\" *ngIf=\"options.IsLoadMoreControl\">\r\n <div class=\"search-results\" infinite-scroll [infiniteScrollDistance]=\"ScrollDistance\"\r\n [infiniteScrollUpDistance]=\"ScrollUpDistance\" [infiniteScrollThrottle]=\"Throttle\" (scrolled)=\"options.IsInfiniteScroll==true?onScrollDown():null\"\r\n [scrollWindow]=\"options.ScrollWindow\" [infiniteScrollContainer]=\"options.InfiniteScrollContainer\">\r\n </div>\r\n <button class=\"btn btn-primary\" (click)=\"onScrollDown()\" *ngIf=\"!(result.length==totalRow)\"> Load More </button>\r\n </div>\r\n</div>\r\n",
201
202
  styles: [".ngx-pager-container{text-align:center;padding:25px 0 0}.ngx-pager-container li{display:inline-block;margin:0 4px}.ngx-pager-container li a{display:block;width:26px;height:26px;border:1px solid #707070;text-align:center;color:#3e4e59;font-size:14px;line-height:24px;border-radius:5px;text-decoration:none}.ngx-pager-container li a:hover{color:#fff;background:#0a0e03}.ngx-pager-container li.invisible{display:none}.ngx-pager-container li.active{background:#0a0e03;border-radius:5px}.ngx-pager-container li.active a{border:none;color:#fff}\n"]
202
203
  },] }
203
204
  ];
204
205
  PagingComponent.ctorParameters = () => [
206
+ { type: UtilityService },
205
207
  { type: HttpClient },
206
208
  { type: Router },
207
209
  { type: OnPagingFiltersChangeService },
@@ -212,4 +214,4 @@ PagingComponent.propDecorators = {
212
214
  options: [{ type: Input }],
213
215
  group: [{ type: Input }]
214
216
  };
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFPLDBCQUEwQixDQUFDO0FBRWxFLHFEQUFxRDtBQU1yRCxNQUFNLE9BQU8sZUFBZTtJQXlCMUIsWUFBb0IsSUFBZ0IsRUFBVSxNQUFjLEVBQVUsZUFBNkMsRUFBUyxxQkFBMkM7UUFBbkosU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFBUywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBeEJ2SyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQVEsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBUSxFQUFFLENBQUE7UUFDbEIsVUFBSyxHQUFRLENBQUMsQ0FBQTtRQUNkLGdCQUFXLEdBQVEsQ0FBQyxDQUFB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Q0FBQzs7O1lBak5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsb3ZEQUFzQzs7YUFFdkM7OztZQWZRLFVBQVU7WUFEVixNQUFNO1lBT04sNEJBQTRCO1lBRTVCLHFCQUFxQjs7O29CQTJCM0IsTUFBTTtzQkFDTixLQUFLO29CQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBQYWdpbmdEVE8gfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ0RUTyc7XHJcbmltcG9ydCB7IFBhZ2luZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ09wdGlvbnMnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0T3B0aW9ucywgUmVzcG9uc2VDb250ZW50VHlwZSwgSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRmlsdGVyVHlwZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25mbGljdGluZy1saWZlY3ljbGVcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLVBhZ2luZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL1BhZ2luZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vUGFnaW5nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXRlbXMgPSBbXTtcclxuICBwYWdlT2ZJdGVtczogQXJyYXk8YW55PjtcclxuICByZXN1bHQ6IGFueSA9IFtdO1xyXG4gIHBhZ2VyQ29uZmlnOiBhbnkgPSBudWxsO1xyXG4gIHRvdGFsUm93OiBhbnkgPSAwO1xyXG4gIHBhZ2VTaXplOiBhbnkgPSAxMFxyXG4gIFBhZ2VzOiBhbnkgPSAwXHJcbiAgQ3VycmVudFBhZ2U6IGFueSA9IDFcclxuICBTaG93UGFnZVNpemVPcHRpb24gPSB0cnVlO1xyXG4gIFNob3dGaXJzdEFuZExhc3QgPSB0cnVlO1xyXG4gIGhpZGVQYWdpbmF0aW9uV2hlblBhZ2VTaXplRXF1YWxPbmUgPSB0cnVlXHJcbiAgU3VtID0gMDtcclxuICBUaHJvdHRsZSA9IDMwMDtcclxuICBTY3JvbGxEaXN0YW5jZSA9IDE7XHJcbiAgU2Nyb2xsVXBEaXN0YW5jZSA9IDI7XHJcbiAgZGlyZWN0aW9uID0gJyc7XHJcbiAgSGVhZGVyczpIdHRwSGVhZGVycztcclxuICBJc0ZpcnN0Q2FsbDpib29sZWFuPXRydWU7XHJcbiAgQE91dHB1dCgpIEl0ZW1zID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBASW5wdXQoKSBvcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG5cclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSxwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTpSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICB0aGlzLlN1bSA9IHRoaXMub3B0aW9ucy5QYWdlU2l6ZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBEcm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5HZXRWYWx1ZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IEJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkdldFZhbHVlKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PSB2YWx1ZSlcclxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgKGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLmtleSA9PSBcIkVudGVyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXM7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWUgPSBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgKGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLmtleSA9PSBcIkVudGVyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb25Ecm9wRG93bkNoYW5nZShyZXN1bHQpIHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlUGFnZShQYWdlKSB7XHJcbiAgXHJcbiAgICBpZihQYWdlPT0wKVxyXG4gICAgICByZXR1cm47XHJcbiAgICAgXHJcbiAgICBpZiAoUGFnZT4wKSBcclxuICAgIHsgICAgICAgIFxyXG4gICAgaWYodGhpcy5Jc0ZpcnN0Q2FsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLklzRmlyc3RDYWxsPWZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gXHJcbiAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gUGFnZTtcclxuICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KFBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VQYWdlU2l6ZShlKSB7XHJcbiAgICAgXHJcbiAgICB0aGlzLm9wdGlvbnMuUGFnZVNpemUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbD10cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG9uU2Nyb2xsRG93bigpIHtcclxuICAgIHRoaXMuU3VtICs9IHRoaXMub3B0aW9ucy5QYWdlU2l6ZVxyXG4gICAgdGhpcy5DdXJyZW50UGFnZSA9IDFcclxuICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gJ2Rvd24nO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldEl0ZW1MaXN0KHBhZ2UsIElzRmlsdGVyVXBkYXRlZCA9IGZhbHNlKSB7XHJcbiAgICAgO1xyXG4gICAgbGV0IHBhZ2luZ0RUTyA9IG5ldyBQYWdpbmdEVE8oKTtcclxuICAgIGxldCBzaXplID0gTnVtYmVyLnBhcnNlSW50KHRoaXMub3B0aW9ucy5QYWdlU2l6ZS50b1N0cmluZygpKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHBhZ2luZ0RUTy5QYWdlQ291bnQgPSB0aGlzLlN1bTtcclxuICAgIGVsc2VcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHNpemU7XHJcbiAgICBwYWdpbmdEVE8uQ3VycmVudFBhZ2VOdW1iZXIgPSBwYWdlO1xyXG4gICAgcGFnaW5nRFRPLlRvdGFsQ291bnQgPSB0aGlzLnRvdGFsUm93O1xyXG4gICAgcGFnaW5nRFRPLklzRmlsdGVyVXBkYXRlZCA9IElzRmlsdGVyVXBkYXRlZDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gW10pIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5GaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICBjb25zdCBGb3JtQ29udHJvbE5hbWUgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgICAgICAgbGV0IENvbnRyb2xWYWx1ZSA9IHRoaXMuZ3JvdXAuY29udHJvbHNbRm9ybUNvbnRyb2xOYW1lXS52YWx1ZTtcclxuICAgICAgICAgIGlmIChDb250cm9sVmFsdWUgIT0gdW5kZWZpbmVkICYmIENvbnRyb2xWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkRhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShDb250cm9sVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50ID0gMDsgZWxlbWVudCA8IENvbnRyb2xWYWx1ZS5sZW5ndGg7IGVsZW1lbnQrKykge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IENvbnRyb2xWYWx1ZVtlbGVtZW50XTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZSwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWUsIENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkF1dG9jb21wbGV0ZVRleHRCb3gpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBKU09OLnN0cmluZ2lmeShDb250cm9sVmFsdWUpO1xyXG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWUsIENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBFbGVtZW50alF1ZXJ5U2VsZWN0b3IgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0ualF1ZXJ5U2VsZWN0b3I7XHJcbiAgICAgICAgICBsZXQgRWxlbWVudFZhbHVlID0gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoRWxlbWVudGpRdWVyeVNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgICAgICAgIGlmIChFbGVtZW50VmFsdWUgIT0gdW5kZWZpbmVkICYmIEVsZW1lbnRWYWx1ZSAhPSBudWxsKVxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lLCBFbGVtZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLnBvc3QodGhpcy5vcHRpb25zLkFjdGlvblBvc3RVUkwsIHBhZ2luZ0RUTyxwYXJhbXMgKVxyXG4gICAgLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlc3VsdCA9IHJlc3BvbnNlRGF0YS5pdGVtcztcclxuICAgICAgICB0aGlzLkl0ZW1zLmVtaXQodGhpcy5yZXN1bHQpO1xyXG4gICAgICAgIGlmIChJc0ZpbHRlclVwZGF0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMudG90YWxSb3cgPSByZXNwb25zZURhdGEudG90YWxDb3VudDtcclxuICAgICAgICAgIHRoaXMuUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMudG90YWxSb3cgLyB0aGlzLm9wdGlvbnMuUGFnZVNpemUpKTtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBBcnJheSh0aGlzLnRvdGFsUm93KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgUmVpbml0aWFsaXplUGFnaW5nPSgpPT57XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KDEsIHRydWUpO1xyXG4gIH1cclxuIFxyXG4gIFVwZGF0ZVBhZ2luZz0oKT0+e1xyXG4gICAgLy90aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UpO1xyXG4gIH1cclxuIFxyXG5cclxuXHJcbn1cclxuIl19
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTywwQkFBMEIsQ0FBQztBQUVsRixxREFBcUQ7QUFNckQsTUFBTSxPQUFPLGVBQWU7SUF5QjFCLFlBQW1CLGNBQThCLEVBQVMsSUFBZ0IsRUFBVSxNQUFjLEVBQVUsZUFBNkMsRUFBUyxxQkFBMkM7UUFBMUwsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFBUywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBeEI3TSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQVEsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBUSxFQUFFLENBQUE7UUFD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QyxRQUFRLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBak5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIscTBEQUFzQzs7YUFFdkM7OztZQVArQixjQUFjO1lBUnJDLFVBQVU7WUFEVixNQUFNO1lBT04sNEJBQTRCO1lBRTVCLHFCQUFxQjs7O29CQTJCM0IsTUFBTTtzQkFDTixLQUFLO29CQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBQYWdpbmdEVE8gfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ0RUTyc7XHJcbmltcG9ydCB7IFBhZ2luZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1BhZ2luZ09wdGlvbnMnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0T3B0aW9ucywgUmVzcG9uc2VDb250ZW50VHlwZSwgSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvRmlsdGVyVHlwZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnQkJTRi1QYWdpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9QYWdpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL1BhZ2luZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGl0ZW1zID0gW107XHJcbiAgcGFnZU9mSXRlbXM6IEFycmF5PGFueT47XHJcbiAgcmVzdWx0OiBhbnkgPSBbXTtcclxuICBwYWdlckNvbmZpZzogYW55ID0gbnVsbDtcclxuICB0b3RhbFJvdzogYW55ID0gMDtcclxuICBwYWdlU2l6ZTogYW55ID0gMTBcclxuICBQYWdlczogYW55ID0gMFxyXG4gIEN1cnJlbnRQYWdlOiBhbnkgPSAxXHJcbiAgU2hvd1BhZ2VTaXplT3B0aW9uID0gdHJ1ZTtcclxuICBTaG93Rmlyc3RBbmRMYXN0ID0gdHJ1ZTtcclxuICBoaWRlUGFnaW5hdGlvbldoZW5QYWdlU2l6ZUVxdWFsT25lID0gdHJ1ZVxyXG4gIFN1bSA9IDA7XHJcbiAgVGhyb3R0bGUgPSAzMDA7XHJcbiAgU2Nyb2xsRGlzdGFuY2UgPSAxO1xyXG4gIFNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIGRpcmVjdGlvbiA9ICcnO1xyXG4gIEhlYWRlcnM6SHR0cEhlYWRlcnM7XHJcbiAgSXNGaXJzdENhbGw6Ym9vbGVhbj10cnVlO1xyXG4gIEBPdXRwdXQoKSBJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuXHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIG9uQ2hhbmdlU2VydmljZTogT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSxwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTpSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICB0aGlzLlN1bSA9IHRoaXMub3B0aW9ucy5QYWdlU2l6ZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBEcm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMgPSB0aGlzLm9wdGlvbnMuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2VydmljZS5HZXRWYWx1ZSgpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5vcHRpb25zLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gPT0gdmFsdWUpXHJcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICAgIHRoaXMuZ2V0SXRlbUxpc3QodGhpcy5DdXJyZW50UGFnZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IEJvb3RzdHJhcERhdGVQaWNrZXJzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5Cb290c3RyYXBEYXRlUGlja2Vyc0ZpbHRlcnNDb250cm9sTmFtZXM7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VTZXJ2aWNlLkdldFZhbHVlKCkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm9wdGlvbnMuQm9vdHN0cmFwRGF0ZVBpY2tlcnNGaWx0ZXJzQ29udHJvbE5hbWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSA9PSB2YWx1ZSlcclxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25DbGlja0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UsIHRydWUpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gdGhpcy5vcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZSA9IE9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzW2luZGV4XTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChPbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgKGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLmtleSA9PSBcIkVudGVyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWVzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLlR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lcyA9IHRoaXMub3B0aW9ucy5UeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXM7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVHlwZWFoZWFkU2VhcmNoQ29udHJvbE5hbWUgPSBUeXBlYWhlYWRTZWFyY2hDb250cm9sTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFR5cGVhaGVhZFNlYXJjaENvbnRyb2xOYW1lKS5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIiwgKGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLmtleSA9PSBcIkVudGVyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBmYWxzZSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgb25Ecm9wRG93bkNoYW5nZShyZXN1bHQpIHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlUGFnZShQYWdlKSB7XHJcbiAgXHJcbiAgICBpZihQYWdlPT0wKVxyXG4gICAgICByZXR1cm47XHJcbiAgICAgXHJcbiAgICBpZiAoUGFnZT4wKSBcclxuICAgIHsgICAgICAgIFxyXG4gICAgaWYodGhpcy5Jc0ZpcnN0Q2FsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLklzRmlyc3RDYWxsPWZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gXHJcbiAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gUGFnZTtcclxuICAgICAgICB0aGlzLmdldEl0ZW1MaXN0KFBhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VQYWdlU2l6ZShlKSB7XHJcbiAgICAgXHJcbiAgICB0aGlzLm9wdGlvbnMuUGFnZVNpemUgPSBlLnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuQ3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5Jc0ZpcnN0Q2FsbD10cnVlO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG9uU2Nyb2xsRG93bigpIHtcclxuICAgIHRoaXMuU3VtICs9IHRoaXMub3B0aW9ucy5QYWdlU2l6ZVxyXG4gICAgdGhpcy5DdXJyZW50UGFnZSA9IDFcclxuICAgIHRoaXMuSXNGaXJzdENhbGw9dHJ1ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gJ2Rvd24nO1xyXG4gICAgdGhpcy5nZXRJdGVtTGlzdCh0aGlzLkN1cnJlbnRQYWdlLCB0cnVlKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldEl0ZW1MaXN0KHBhZ2UsIElzRmlsdGVyVXBkYXRlZCA9IGZhbHNlKSB7XHJcbiAgICAgO1xyXG4gICAgbGV0IHBhZ2luZ0RUTyA9IG5ldyBQYWdpbmdEVE8oKTtcclxuICAgIGxldCBzaXplID0gTnVtYmVyLnBhcnNlSW50KHRoaXMub3B0aW9ucy5QYWdlU2l6ZS50b1N0cmluZygpKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNMb2FkTW9yZUNvbnRyb2wpXHJcbiAgICAgIHBhZ2luZ0RUTy5QYWdlQ291bnQgPSB0aGlzLlN1bTtcclxuICAgIGVsc2VcclxuICAgICAgcGFnaW5nRFRPLlBhZ2VDb3VudCA9IHNpemU7XHJcbiAgICBwYWdpbmdEVE8uQ3VycmVudFBhZ2VOdW1iZXIgPSBwYWdlO1xyXG4gICAgcGFnaW5nRFRPLlRvdGFsQ291bnQgPSB0aGlzLnRvdGFsUm93O1xyXG4gICAgcGFnaW5nRFRPLklzRmlsdGVyVXBkYXRlZCA9IElzRmlsdGVyVXBkYXRlZDtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5GaWx0ZXJzICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnMgIT0gW10pIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5GaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkZvcm1Db250cm9sTmFtZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICBjb25zdCBGb3JtQ29udHJvbE5hbWUgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgICAgICAgbGV0IENvbnRyb2xWYWx1ZSA9IHRoaXMuZ3JvdXAuY29udHJvbHNbRm9ybUNvbnRyb2xOYW1lXS52YWx1ZTtcclxuICAgICAgICAgIGlmIChDb250cm9sVmFsdWUgIT0gdW5kZWZpbmVkICYmIENvbnRyb2xWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkRhdGVQaWNrZXIpIHtcclxuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShDb250cm9sVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50ID0gMDsgZWxlbWVudCA8IENvbnRyb2xWYWx1ZS5sZW5ndGg7IGVsZW1lbnQrKykge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IENvbnRyb2xWYWx1ZVtlbGVtZW50XTtcclxuICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uQWN0aW9uUGFyYW1ldGVyTmFtZSwgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWUsIENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0uRmlsdGVyVHlwZSA9PSBGaWx0ZXJUeXBlLkF1dG9jb21wbGV0ZVRleHRCb3gpXHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUgPSBKU09OLnN0cmluZ2lmeShDb250cm9sVmFsdWUpO1xyXG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQodGhpcy5vcHRpb25zLkZpbHRlcnNbaW5kZXhdLkFjdGlvblBhcmFtZXRlck5hbWUsIENvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBFbGVtZW50alF1ZXJ5U2VsZWN0b3IgPSB0aGlzLm9wdGlvbnMuRmlsdGVyc1tpbmRleF0ualF1ZXJ5U2VsZWN0b3I7XHJcbiAgICAgICAgICBsZXQgRWxlbWVudFZhbHVlID0gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoRWxlbWVudGpRdWVyeVNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgICAgICAgIGlmIChFbGVtZW50VmFsdWUgIT0gdW5kZWZpbmVkICYmIEVsZW1lbnRWYWx1ZSAhPSBudWxsKVxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHRoaXMub3B0aW9ucy5GaWx0ZXJzW2luZGV4XS5BY3Rpb25QYXJhbWV0ZXJOYW1lLCBFbGVtZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLnBvc3QodGhpcy5vcHRpb25zLkFjdGlvblBvc3RVUkwsIHBhZ2luZ0RUTyxwYXJhbXMgKVxyXG4gICAgLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJlc3VsdCA9IHJlc3BvbnNlRGF0YS5pdGVtcztcclxuICAgICAgICB0aGlzLkl0ZW1zLmVtaXQodGhpcy5yZXN1bHQpO1xyXG4gICAgICAgIGlmIChJc0ZpbHRlclVwZGF0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMudG90YWxSb3cgPSByZXNwb25zZURhdGEudG90YWxDb3VudDtcclxuICAgICAgICAgIHRoaXMuUGFnZXMgPSBNYXRoLmNlaWwoKHRoaXMudG90YWxSb3cgLyB0aGlzLm9wdGlvbnMuUGFnZVNpemUpKTtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSBBcnJheSh0aGlzLnRvdGFsUm93KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgUmVpbml0aWFsaXplUGFnaW5nPSgpPT57XHJcbiAgICB0aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KDEsIHRydWUpO1xyXG4gIH1cclxuIFxyXG4gIFVwZGF0ZVBhZ2luZz0oKT0+e1xyXG4gICAgLy90aGlzLklzRmlyc3RDYWxsPXRydWU7XHJcbiAgICB0aGlzLmdldEl0ZW1MaXN0KHRoaXMuQ3VycmVudFBhZ2UpO1xyXG4gIH1cclxuIFxyXG5cclxuXHJcbn1cclxuIl19
@@ -1,18 +1,18 @@
1
1
  import { Component, Input, Optional, Output, EventEmitter } from '@angular/core';
2
2
  import { FormControl, Validators, ControlContainer, FormGroupDirective } from '@angular/forms';
3
- import { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';
4
3
  import { ControlUtility } from '../../Shared/services/ControlUtility';
5
4
  import { SearchCountryField } from 'ngx-intl-tel-input';
6
5
  import { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';
6
+ import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
7
7
  export class PhoneComponent {
8
8
  // tslint:disable-next-line: max-line-length
9
- constructor(ErrorHandler, controlUtility, controlContainer, PhoneControlHost, UtilityService, controlValidationService) {
10
- this.ErrorHandler = ErrorHandler;
9
+ constructor(controlUtility, controlContainer, PhoneControlHost, UtilityService, controlValidationService, globalSettings) {
11
10
  this.controlUtility = controlUtility;
12
11
  this.controlContainer = controlContainer;
13
12
  this.PhoneControlHost = PhoneControlHost;
14
13
  this.UtilityService = UtilityService;
15
14
  this.controlValidationService = controlValidationService;
15
+ this.globalSettings = globalSettings;
16
16
  this.OnChange = new EventEmitter();
17
17
  this.SearchCountryField = SearchCountryField;
18
18
  // TooltipLabel = TooltipLabel;
@@ -49,6 +49,8 @@ export class PhoneComponent {
49
49
  this.controlValidationService.isCreatedBefor = false;
50
50
  this.group.addControl(this.options.Name, new FormControl(''));
51
51
  this.PhoneFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
52
+ if (!this.options.ViewType)
53
+ this.options.ViewType = this.globalSettings.ViewType;
52
54
  if (this.options.IsRequired) {
53
55
  this.validationRules.push(Validators.required);
54
56
  }
@@ -99,16 +101,16 @@ PhoneComponent.decorators = [
99
101
  },] }
100
102
  ];
101
103
  PhoneComponent.ctorParameters = () => [
102
- { type: ErrorMassageValidation },
103
104
  { type: ControlUtility },
104
105
  { type: ControlContainer, decorators: [{ type: Optional }] },
105
106
  { type: FormGroupDirective },
106
107
  { type: UtilityService },
107
- { type: ControlValidationService }
108
+ { type: ControlValidationService },
109
+ { type: GlobalSettings }
108
110
  ];
109
111
  PhoneComponent.propDecorators = {
110
112
  group: [{ type: Input }],
111
113
  options: [{ type: Input }],
112
114
  OnChange: [{ type: Output }]
113
115
  };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL1Bob25lL1Bob25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUosT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTywwQkFBMEIsQ0FBQztBQU9yRixNQUFNLE9BQU8sY0FBYztJQUl6Qiw0Q0FBNEM7SUFDNUMsWUFBb0IsWUFBb0MsRUFBVSxjQUE4QixFQUFzQixnQkFBa0MsRUFBUyxnQkFBb0MsRUFBUyxjQUE2QixFQUFTLHdCQUFpRDtRQUFqUixpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUFTLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFLM1IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFeEMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDeEMsK0JBQStCO1FBQy9CLHFCQUFn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QkFBeUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLE1BQU0sR0FBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLG1CQUE2QixDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBN0VNLHFDQUFzQixHQUFHLElBQUksQ0FBQzs7WUFSdEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixzMEVBQXFDOzthQUV0Qzs7O1lBVlEsc0JBQXNCO1lBQ3RCLGNBQWM7WUFGdUMsZ0JBQWdCLHVCQWlCdUIsUUFBUTtZQWpCN0Isa0JBQWtCO1lBSy9ELGNBQWM7WUFBeEMsd0JBQXdCOzs7b0JBZTlCLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRpb25FcnJvck1hc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgUGhvbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QaG9uZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTZWFyY2hDb3VudHJ5RmllbGQgfSBmcm9tICduZ3gtaW50bC10ZWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAgJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtUGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9QaG9uZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vUGhvbmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGhvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBFcnJvckhhbmRsZXI6IEVycm9yTWFzc2FnZVZhbGlkYXRpb24sIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsIHB1YmxpYyBQaG9uZUNvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUscHJpdmF0ZSBVdGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSxwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTpDb250cm9sVmFsaWRhdGlvblNlcnZpY2UpIHtcclxuICAgIFBob25lQ29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGhvbmVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBQaG9uZUZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgU2VhcmNoQ291bnRyeUZpZWxkID0gU2VhcmNoQ291bnRyeUZpZWxkO1xyXG4gIC8vIFRvb2x0aXBMYWJlbCA9IFRvb2x0aXBMYWJlbDtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2VcclxuICB2YWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICB2YWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG4gICAgc2VwYXJhdGVEaWFsQ29kZSA9IGZhbHNlO1xyXG4gIFxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLlBob25lRm9ybUNvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5OYW1lXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5QaG9uZUZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuTGFiZWxLZXkpO1xyXG5cclxuICAgIHRoaXMuUGhvbmVGb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuUGhvbmVGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5QaG9uZUZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLlBob25lQ29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2V0QXR0cmlidXRlRm9yQ29udHJvbCh0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuXHJcbiAgcmVzZXRFcnJvciA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLlJlbW92ZUdsb2JhbEVycm9yKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlZCgpIHtcclxuICAgIGxldCBOdW1iZXI9IHRoaXMuUGhvbmVGb3JtQ29udHJvbC52YWx1ZS5pbnRlcm5hdGlvbmFsTnVtYmVyIGFzIHN0cmluZztcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChOdW1iZXIudHJpbSgpKTtcclxuICB9XHJcblxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLlBob25lRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcblxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuUGhvbmVGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcblxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuUGhvbmVGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5QaG9uZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcblxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgSXNWYWxpZCA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuSXNWYWxpZCh0aGlzLlBob25lRm9ybUNvbnRyb2wpXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL1Bob25lL1Bob25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBOEIsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFPLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU85RSxNQUFNLE9BQU8sY0FBYztJQUl6Qiw0Q0FBNEM7SUFDNUMsWUFBb0IsY0FBOEIsRUFBc0IsZ0JBQWtDLEVBQ2pHLGdCQUFvQyxFQUFVLGNBQThCLEVBQzNFLHdCQUFrRCxFQUFVLGNBQThCO1FBRmhGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDM0UsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUsxRixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4Qyx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUN4QywrQkFBK0I7UUFDL0IscUJB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QUU7WUFDL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7U0FDOUI7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxNQUFNLEdBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxtQkFBNkIsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQWxGTSxxQ0FBc0IsR0FBRyxJQUFJLENBQUM7O1lBUnRDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsczBFQUFxQzs7YUFFdEM7OztZQVZRLGNBQWM7WUFEdUMsZ0JBQWdCLHVCQWlCdkIsUUFBUTtZQWpCaUIsa0JBQWtCO1lBSS9ELGNBQWM7WUFBeEMsd0JBQXdCO1lBQ3hCLGNBQWM7OztvQkFpQnBCLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgUGhvbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9QaG9uZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTZWFyY2hDb3VudHJ5RmllbGQgfSBmcm9tICduZ3gtaW50bC10ZWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAgJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0dsb2JhbFNldHRpbmdzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdCQlNGLVBob25lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vUGhvbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL1Bob25lLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBob25lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBwdWJsaWMgUGhvbmVDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIHByaXZhdGUgZ2xvYmFsU2V0dGluZ3M6IEdsb2JhbFNldHRpbmdzKSB7XHJcbiAgICBQaG9uZUNvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gIH1cclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFBob25lT3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgUGhvbmVGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIFNlYXJjaENvdW50cnlGaWVsZCA9IFNlYXJjaENvdW50cnlGaWVsZDtcclxuICAvLyBUb29sdGlwTGFiZWwgPSBUb29sdGlwTGFiZWw7XHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICAgIHNlcGFyYXRlRGlhbENvZGUgPSBmYWxzZTtcclxuICBcclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5pc0NyZWF0ZWRCZWZvciA9IGZhbHNlXHJcbiAgICB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLk5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgdGhpcy5QaG9uZUZvcm1Db250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5WaWV3VHlwZSlcclxuICAgICAgdGhpcy5vcHRpb25zLlZpZXdUeXBlID0gdGhpcy5nbG9iYWxTZXR0aW5ncy5WaWV3VHlwZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIHRoaXMuUGhvbmVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcbiAgICB0aGlzLlBob25lRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLlBob25lRm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuUGhvbmVGb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5QaG9uZUNvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNldEF0dHJpYnV0ZUZvckNvbnRyb2wodGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcblxyXG4gIHJlc2V0RXJyb3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5SZW1vdmVHbG9iYWxFcnJvcigpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICBsZXQgTnVtYmVyPSB0aGlzLlBob25lRm9ybUNvbnRyb2wudmFsdWUuaW50ZXJuYXRpb25hbE51bWJlciBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLk9uQ2hhbmdlLmVtaXQoTnVtYmVyLnRyaW0oKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuXHJcbiAgUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5QaG9uZUZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBBZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLlBob25lRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLlBob25lRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZEN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuUGhvbmVGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5QaG9uZUZvcm1Db250cm9sKVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==