@simpleangularcontrols/sac-common 16.0.0-rc.21 → 16.0.0-rc.22

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 (115) hide show
  1. package/controls/grid/gridcolumnbase.d.ts +5 -1
  2. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  3. package/controls/treeview/treeview.d.ts +2 -2
  4. package/controls/treeview/treeview.d.ts.map +1 -1
  5. package/esm2022/common/basedatetimecontrol.mjs +1 -1
  6. package/esm2022/common/baseinputcontrol.mjs +1 -1
  7. package/esm2022/common/baselistcontrol.mjs +1 -1
  8. package/esm2022/common/basemodelcontrol.mjs +1 -1
  9. package/esm2022/common/baseselectcontrol.mjs +1 -1
  10. package/esm2022/common/baseuploadcontrol.mjs +1 -1
  11. package/esm2022/components/browser/browser.mjs +1 -1
  12. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +1 -1
  13. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +1 -1
  14. package/esm2022/components/browser/models/browserfilesaverequest.mjs +1 -1
  15. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +1 -1
  16. package/esm2022/components/browser/models/browsernodenewrequest.mjs +1 -1
  17. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +1 -1
  18. package/esm2022/components/browser/models/browsernoderequest.mjs +1 -1
  19. package/esm2022/controls/buttons/button.mjs +1 -1
  20. package/esm2022/controls/checkbox/checkbox.mjs +1 -1
  21. package/esm2022/controls/checkbox/radiobutton.mjs +1 -1
  22. package/esm2022/controls/checkbox/radiobuttons.mjs +1 -1
  23. package/esm2022/controls/confirm/confirm.button.mjs +1 -1
  24. package/esm2022/controls/confirm/confirm.mjs +1 -1
  25. package/esm2022/controls/confirm/confirm.service.mjs +1 -1
  26. package/esm2022/controls/contextmenu/contextmenu.mjs +1 -1
  27. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +1 -1
  28. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +1 -1
  29. package/esm2022/controls/contextmenu/contextmenuitem.mjs +1 -1
  30. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +1 -1
  31. package/esm2022/controls/datetime/date.mjs +1 -1
  32. package/esm2022/controls/datetime/dateselector.mjs +1 -1
  33. package/esm2022/controls/datetime/datetime.mjs +1 -1
  34. package/esm2022/controls/datetime/time.mjs +1 -1
  35. package/esm2022/controls/dialog/dialog.mjs +1 -1
  36. package/esm2022/controls/form/form.mjs +1 -1
  37. package/esm2022/controls/grid/grid.mjs +1 -1
  38. package/esm2022/controls/grid/gridbutton.mjs +1 -1
  39. package/esm2022/controls/grid/gridcolumn.mjs +1 -1
  40. package/esm2022/controls/grid/gridcolumnaction.mjs +1 -1
  41. package/esm2022/controls/grid/gridcolumnbase.mjs +16 -14
  42. package/esm2022/controls/grid/model.mjs +1 -1
  43. package/esm2022/controls/grid/paging.mjs +1 -1
  44. package/esm2022/controls/input/input.mjs +1 -1
  45. package/esm2022/controls/input/inputarea.mjs +1 -1
  46. package/esm2022/controls/input/inputcurrency.mjs +1 -1
  47. package/esm2022/controls/input/inputdecimal.mjs +1 -1
  48. package/esm2022/controls/input/inputemail.mjs +1 -1
  49. package/esm2022/controls/input/inputinteger.mjs +1 -1
  50. package/esm2022/controls/input/inputpassword.mjs +1 -1
  51. package/esm2022/controls/input/inputsearch.mjs +1 -1
  52. package/esm2022/controls/layout/formlayout.mjs +1 -1
  53. package/esm2022/controls/list/buildvaluestring.mjs +1 -1
  54. package/esm2022/controls/list/dropdown.mjs +1 -1
  55. package/esm2022/controls/list/dropdownoptions.mjs +1 -1
  56. package/esm2022/controls/list/listbox.mjs +1 -1
  57. package/esm2022/controls/multilanguage/multilanguageinput.mjs +1 -1
  58. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +1 -1
  59. package/esm2022/controls/static/formcontainer.mjs +1 -1
  60. package/esm2022/controls/static/staticlabel.mjs +1 -1
  61. package/esm2022/controls/tabs/tab.mjs +1 -1
  62. package/esm2022/controls/tabs/tabitem.mjs +1 -1
  63. package/esm2022/controls/tinymce/tinymce.mjs +1 -1
  64. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +1 -1
  65. package/esm2022/controls/tooltip/tooltip.mjs +1 -1
  66. package/esm2022/controls/treeview/treeview.mjs +6 -6
  67. package/esm2022/controls/upload/dropzonemultiple.mjs +1 -1
  68. package/esm2022/controls/upload/dropzonesingle.mjs +1 -1
  69. package/esm2022/controls/upload/uploadmultiple.mjs +1 -1
  70. package/esm2022/controls/upload/uploadsingle.mjs +1 -1
  71. package/esm2022/controls/validation/validationsummary.mjs +1 -1
  72. package/esm2022/controls/wizard/wizard.mjs +1 -1
  73. package/esm2022/controls/wizard/wizarditem.mjs +1 -1
  74. package/esm2022/enums/ControlHeight.mjs +1 -1
  75. package/esm2022/enums/IconType.mjs +1 -1
  76. package/esm2022/models/languagemodel.mjs +1 -1
  77. package/esm2022/services/sac-configuration.service.mjs +1 -1
  78. package/esm2022/services/sac-filebrowser.service.mjs +1 -1
  79. package/esm2022/services/sac-icon.service.mjs +1 -1
  80. package/esm2022/services/sac-language.service.mjs +1 -1
  81. package/esm2022/services/sac-localisation.service.mjs +1 -1
  82. package/esm2022/services/sac-validationkey.service.mjs +1 -1
  83. package/esm2022/utilities/convertion.mjs +1 -1
  84. package/esm2022/utilities/datatypes.mjs +1 -1
  85. package/esm2022/utilities/enums.mjs +1 -1
  86. package/esm2022/utilities/guid.mjs +1 -1
  87. package/esm2022/utilities/interpolation.mjs +1 -1
  88. package/esm2022/utilities/popuphelper.mjs +1 -1
  89. package/esm2022/utilities/positioning.mjs +1 -1
  90. package/esm2022/utilities/testingattribute.pipe.mjs +1 -1
  91. package/esm2022/validation/email.validator.mjs +1 -1
  92. package/esm2022/validation/equals.validator.mjs +1 -1
  93. package/esm2022/validation/invaliddate.validator.mjs +1 -1
  94. package/esm2022/validation/isDateValid.mjs +1 -1
  95. package/esm2022/validation/maxdate.validator.mjs +1 -1
  96. package/esm2022/validation/maxtime.validator.mjs +1 -1
  97. package/esm2022/validation/maxvalue.validator.mjs +1 -1
  98. package/esm2022/validation/mindate.validator.mjs +1 -1
  99. package/esm2022/validation/minfiles.validator.mjs +1 -1
  100. package/esm2022/validation/mintextlength.validator.mjs +1 -1
  101. package/esm2022/validation/mintime.validator.mjs +1 -1
  102. package/esm2022/validation/minvalue.validator.mjs +1 -1
  103. package/esm2022/validation/multilanguagerequired.validator.mjs +1 -1
  104. package/esm2022/validation/multilanguagerequiredany.validator.mjs +1 -1
  105. package/esm2022/validation/notequals.validator.mjs +1 -1
  106. package/esm2022/validation/pattern.validator.mjs +1 -1
  107. package/esm2022/validation/required.validator.mjs +1 -1
  108. package/esm2022/validation/validation.mjs +1 -1
  109. package/esm2022/validation/validationerrorcreator.mjs +1 -1
  110. package/esm2022/validation/validationerroritem.mjs +1 -1
  111. package/fesm2022/simpleangularcontrols-sac-common.mjs +668 -666
  112. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  113. package/package.json +1 -1
  114. package/simpleangularcontrols-sac-common-16.0.0-rc.22.tgz +0 -0
  115. package/simpleangularcontrols-sac-common-16.0.0-rc.21.tgz +0 -0
@@ -148,4 +148,4 @@ cov_p6zbxhrdd().s[132]++;if(!this.labelSizeMd){cov_p6zbxhrdd().b[33][0]++;cov_p6
148
148
  cov_p6zbxhrdd().s[136]++;if(!this.labelSizeLg){cov_p6zbxhrdd().b[35][0]++;cov_p6zbxhrdd().s[137]++;if(this.formlayout?.labelSizeLg){cov_p6zbxhrdd().b[36][0]++;cov_p6zbxhrdd().s[138]++;this.labelSizeLg=this.formlayout.labelSizeLg;}else{cov_p6zbxhrdd().b[36][1]++;cov_p6zbxhrdd().s[139]++;this.labelSizeLg=this.configurationService.LabelSizeLg;}}else{cov_p6zbxhrdd().b[35][1]++;}// set size extra large
149
149
  cov_p6zbxhrdd().s[140]++;if(!this.labelSizeXl){cov_p6zbxhrdd().b[37][0]++;cov_p6zbxhrdd().s[141]++;if(this.formlayout?.labelSizeXl){cov_p6zbxhrdd().b[38][0]++;cov_p6zbxhrdd().s[142]++;this.labelSizeXl=this.formlayout.labelSizeXl;}else{cov_p6zbxhrdd().b[38][1]++;cov_p6zbxhrdd().s[143]++;this.labelSizeXl=this.configurationService.LabelSizeXl;}}else{cov_p6zbxhrdd().b[37][1]++;}// set size extra extra large
150
150
  cov_p6zbxhrdd().s[144]++;if(!this.labelSizeXxl){cov_p6zbxhrdd().b[39][0]++;cov_p6zbxhrdd().s[145]++;if(this.formlayout?.labelSizeXxl){cov_p6zbxhrdd().b[40][0]++;cov_p6zbxhrdd().s[146]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_p6zbxhrdd().b[40][1]++;cov_p6zbxhrdd().s[147]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_p6zbxhrdd().b[39][1]++;}}setLabelSplitMode(){cov_p6zbxhrdd().f[41]++;cov_p6zbxhrdd().s[148]++;if(!this.splitlabelandhelptext){cov_p6zbxhrdd().b[41][0]++;cov_p6zbxhrdd().s[149]++;if(this.formlayout?.splitlabelandhelptext){cov_p6zbxhrdd().b[42][0]++;cov_p6zbxhrdd().s[150]++;this.splitlabelandhelptext=this.formlayout.splitlabelandhelptext;}else{cov_p6zbxhrdd().b[42][1]++;cov_p6zbxhrdd().s[151]++;this.splitlabelandhelptext=this.configurationService.SplitLabelAndHelptext;}}else{cov_p6zbxhrdd().b[41][1]++;}}static{cov_p6zbxhrdd().s[152]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseModelControl,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_p6zbxhrdd().s[153]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseModelControl,inputs:{componentHeight:"componentHeight",disabled:"disabled",disablelabel:"disablelabel",e2eidentifier:"e2eidentifier",helptext:"helptext",helptextmode:"helptextmode",inlineError:"inlineError",isAdaptiveLabel:"isAdaptiveLabel",labelSizeLg:"labelSizeLg",labelSizeMd:"labelSizeMd",labelSizeSm:"labelSizeSm",labelSizeXl:"labelSizeXl",labelSizeXs:"labelSizeXs",labelSizeXxl:"labelSizeXxl",name:"name",splitlabelandhelptext:"splitlabelandhelptext",inlineerrorenabled:"inlineerrorenabled",label:"label",value:"value"},ngImport:i0});}}export{SacBaseModelControl};cov_p6zbxhrdd().s[154]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_p6zbxhrdd().f[42]++;cov_p6zbxhrdd().s[155]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{componentHeight:[{type:Input}],disabled:[{type:Input}],disablelabel:[{type:Input}],e2eidentifier:[{type:Input}],helptext:[{type:Input}],helptextmode:[{type:Input}],inlineError:[{type:Input}],isAdaptiveLabel:[{type:Input}],labelSizeLg:[{type:Input}],labelSizeMd:[{type:Input}],labelSizeSm:[{type:Input}],labelSizeXl:[{type:Input}],labelSizeXs:[{type:Input}],labelSizeXxl:[{type:Input}],name:[{type:Input}],splitlabelandhelptext:[{type:Input}],inlineerrorenabled:[{type:Input}],label:[{type:Input}],value:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBWSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUdILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxHQUlaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDOztHQUVHO0FBQ0gsTUFDc0IsbUJBQW1CO0lBNktyQyx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFvQixVQUErQixFQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBckx4RixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSyx3QkFBbUIsR0FBbUIsSUFBSSxDQUFDO1FBRW5EOztXQUVHO1FBQ0ssV0FBTSxHQUFXLEVBQUUsQ0FBQztRQU81Qjs7V0FFRztRQUNPLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDTyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQU96Qzs7V0FFRztRQUNPLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFcEM7O1dBRUc7UUFDTyxXQUFNLEdBQVUsSUFBSSxDQUFDO1FBRS9COztXQUVHO1FBQ08sZUFBVSxHQUF3QixJQUFJLENBQUM7UUFpQmpEOztXQUVHO1FBQ0ksa0JBQWEsR0FBeUIsYUFBYSxDQUFDO1FBRTNEOztXQUVHO1FBRUksb0JBQWUsR0FBeUIsSUFBSSxDQUFDO1FBRXBEOztXQUVHO1FBQ2EsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQzs7V0FFRztRQUNhLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlDOztXQUVHO1FBRUksa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTNDOztXQUVHO1FBQ2EsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQVF0Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVDOztXQUVHO1FBQ2Esb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakQ7O1dBRUc7UUFFSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFFSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFFSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFFSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFFSSxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekM7O1dBRUc7UUFFSSxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFFMUM7O1dBRUc7UUFDYSxTQUFJLEdBQVcsVUFBVSxFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDSSxvQkFBZSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV2Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXRDOztXQUVHO1FBRUksMEJBQXFCLEdBQW1CLElBQUksQ0FBQztRQWlCaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQ2xDLHVCQUF1QixFQUN2QixJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUMvRCxDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7UUFFekcsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHFDQUFxQztJQUVyQzs7T0FFRztJQUNILElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ3pELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDdEM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxrQkFBa0IsQ0FBQyxLQUFxQjtRQUMvQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ25DO2FBQU07WUFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLG9CQUFvQjtRQUMzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDbkM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEtBQUssSUFBSSxFQUFFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQztTQUNoRDtRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixLQUFLLElBQUksRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQztTQUN2RDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFvQixLQUFLLENBQUMsQ0FBUztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ2hDLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDMUM7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLEtBQUssQ0FBQyxDQUFRO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEMseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDdkUsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE1BQU0sTUFBTSxHQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUV2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxVQUFVLENBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDdkMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEIsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE1BQU0sU0FBUyxHQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkQsd0JBQXdCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLFNBQVMsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ3JFLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNsQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUUxQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsMkRBQTJEO1FBQzNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLFdBQVcsWUFBWSxlQUFlLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDSCxJQUFJLFdBQVcsRUFBRTtnQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUE2QixDQUFDO2FBQzlEO1NBQ0o7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1Qiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLEVBQU87UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEVBQU87UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLHlCQUF5QixDQUFDLEVBQWM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsVUFBbUI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLENBQVE7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLENBQWtCO1FBQzlCLE1BQU0sS0FBSyxHQUE0QixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFPRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFZO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCw0QkFBNEI7SUFFNUIsNEJBQTRCO0lBRTVCOzs7O09BSUc7SUFDTyxpQkFBaUIsQ0FBQyxLQUFZO1FBQ3BDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN0QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNPLFdBQVcsS0FBVSxDQUFDO0lBRWhDOztPQUVHO0lBQ08sc0JBQXNCO1FBQzVCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLDBCQUEwQjtJQUVsQixvQkFBb0I7UUFDeEIsbUlBQW1JO1FBQ25JLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUF1RCxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzNGO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3RCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDO2FBQzFEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQzthQUNwRTtTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQzthQUM5RDtTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEtBQUssU0FBUyxFQUFFO2dCQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDO2FBQzFEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2FBQ2hDO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ2pCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQzthQUM1RDtTQUNKO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNsRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7YUFDNUQ7U0FDSjtRQUVELGlCQUFpQjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQzthQUM1RDtTQUNKO1FBRUQsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQzthQUNwRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7YUFDOUQ7U0FDSjtJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDO2FBQ3RFO2lCQUFNO2dCQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUM7YUFDaEY7U0FDSjtJQUNMLENBQUM7K0dBcG5CaUIsbUJBQW1CO21HQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzswQkF1TE8sSUFBSTttRUE5R1YsZUFBZTtzQkFEckIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQUtVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBTUMsYUFBYTtzQkFEbkIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBTVUsV0FBVztzQkFBMUIsS0FBSztnQkFLVSxlQUFlO3NCQUE5QixLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU1VLElBQUk7c0JBQW5CLEtBQUs7Z0JBZ0JDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkErREssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQW9EYyxLQUFLO3NCQUF4QixLQUFLO2dCQTBDSyxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VNb2RlbENvbnRyb2wuIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZWVycm9yZW5hYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGxvYWRpbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNhY01vZGVsIEZvcm0gaXN0IGRpc2FibGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZEZvcm06IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5lIFZhcmlhYmxlLCBkaWUgZGVuIFdlcnQgZGVzIENvbnRyb2xzIGjDpGx0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogVkFMVUUgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBsYXlvdXQgaW5zdGFuY2UgaWYgZXhpc3RzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBuZ0NvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sSGVpZ2h0IGVudW0gZm9yIHVzZSBpbiBIVE1MIG1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBDb250cm9sSGVpZ2h0OiB0eXBlb2YgQ29udHJvbEhlaWdodCA9IENvbnRyb2xIZWlnaHQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb21wb25lbnRIZWlnaHQ6IENvbnRyb2xIZWlnaHQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBJbnB1dCBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEZWFrdGl2aWVydCBkYXMgTGFiZWwgaW0gVGVtcGxhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IHRvIHN1cHBvcnQgdGhlIHVzZXIgZHVyaW5nIGlucHV0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwdGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNb2RlIGZvciBkaXNwbGF5IGhlbHB0ZXh0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVscHRleHRtb2RlOiAndG9vbHRpcCcgfCAndGV4dCcgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGF0IGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgdW5kZXIgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGlubGluZUVycm9yOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhhdCB0aGUgbGFiZWxzIGFyZSBkaXNwbGF5ZWQgYXMgYWRhcHRpdmUgbGFiZWxzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGlzQWRhcHRpdmVMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlIHNpemUgZm9yIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVMZzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIG1lZGl1bSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBzbWFsbCBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplU206IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBjb2x1bW4gc2l6ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVh4bDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIGRlcyBDb250cm9sc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVDaGFuZ2VcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIC8qKlxuICAgICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZVRvdWNoXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZVRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIC8qKlxuICAgICAqIERldGFjaCBsYWJlbCB0ZXh0IGFuZCB0b29sdGlwIGZyb20gZWFjaCBvdGhlciBpbiBMYWJlbCBzbyB0aGF0IGxhYmVsIGFuZCB0b29sdGlwIGNhbiBiZSBhbGlnbmVkIGRpZmZlcmVudGx5LiBUaGlzIGlzIGluIEJvb3RzdHJhcCAzIG5vdCBzdXBwb3J0ZWQhXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3BsaXRsYWJlbGFuZGhlbHB0ZXh0OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBTZXJ2aWNlIHRvIHJlY2VpdmUgc3RhbmRhcmQgdmFsaWRhdGlvbiBtZXNzYWdlIGtleXMgYW5kIHRleHRzXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiwgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5mb3JtbGF5b3V0ID0gZm9ybWxheW91dDtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKSk7XG4gICAgICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXG4gICAgICAgICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSgpKTtcblxuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0IEljb24gZm9yIEhlbHB0ZXh0IFRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEhlbHB0ZXh0VG9vbHRpcEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuR2VuZXJpY0hlbHB0ZXh0SWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciBkaXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXJ0eSA9IHRoaXMubmdDb250cm9sLmRpcnR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgZXJyb3IgbWVzc2FnZXMgaW5saW5lXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFrdGl2aWVydCBvZGVyIERlYWt0aXZpZXJ0IGRpZSBJbmxpbmUgRXJyb3JzIGbDvHIgZGFzIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lZXJyb3JlbmFibGVkKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgYm9vbGVhbiBXZXJ0IHdlbm4gRm9ybSBpbnZhbGlkIG9kZXIgbmljaHQgaW52YWxpZCBpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sLmludmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IG9iIGRhcyBDb250cm9sIGRpc2FibGVkIGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRm9ybSB8fCB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgaW5saW5lIGVycm9yIG1lc3NhZ2VzIGFyZSBhY3RpdmUgZm9yIHRoaXMgY29udHJvbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5faW5saW5lZXJyb3JlbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dCAhPT0gbnVsbCAmJiB0aGlzLmZvcm1sYXlvdXQuSXNJbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1sYXlvdXQ/LklzSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGxhYmVsKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYWJlbCA9IHY7XG4gICAgICAgIHRoaXMuVXBkYXRlTGFiZWxUb0NvbnRyb2woKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbFNpemVzKCk6IElTYWNMYWJlbFNpemVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsU2l6ZVNtOiB0aGlzLmxhYmVsU2l6ZVNtLFxuICAgICAgICAgICAgbGFiZWxTaXplTWQ6IHRoaXMubGFiZWxTaXplTWQsXG4gICAgICAgICAgICBsYWJlbFNpemVYczogdGhpcy5sYWJlbFNpemVYcyxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhsOiB0aGlzLmxhYmVsU2l6ZVhsLFxuICAgICAgICAgICAgbGFiZWxTaXplWHhsOiB0aGlzLmxhYmVsU2l6ZVh4bCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZUxnOiB0aGlzLmxhYmVsU2l6ZUxnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIHRvdWNoZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBNZXRob2RlIGbDvHIgTmdNb2RlbCBCaW5kaW5nIGluIEh0bWwgTWFya3VwXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBWQUxVRSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxuICAgICAqIElucHV0IHdpcmQgYmVuw7Z0aWd0LCBkYW1pdCBkZXIgV2VydCBhdWNoIMO8YmVyIGRhcyBNYXJrdXAgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogVkFMVUUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5Db252ZXJ0SW5wdXRWYWx1ZSh2KTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEVycm9yIGFuaGFuZCB2b24gZ2VnZWJlbmVuIEtyaXRlcmllblxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRFcnJvck1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sLmVycm9ycyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMubmdDb250cm9sLmVycm9ycyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gdGhpcy5uZ0NvbnRyb2wuZXJyb3JzO1xuXG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XG5cbiAgICAgICAgaWYgKGtleXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9ySXRlbTogVmFsaWRhdGlvbkVycm9ySXRlbSA9IGVycm9yc1trZXlzWzBdXTtcblxuICAgICAgICAvLyBWYWxpZGF0aW9uIFBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBpZiAoZXJyb3JJdGVtLnBhcmFtZXRlcnMgIT09IG51bGwgJiYgZXJyb3JJdGVtLnBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZXJyb3JJdGVtLnBhcmFtZXRlcnMuZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IGVycm9ySXRlbS5maWVsZE5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhlcnJvckl0ZW0uZXJyb3JNZXNzYWdlS2V5LCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0IEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICAvLyByZWNlaXZlIGZvcm0gdmlhIGZvcm1jb250cm9sbmFtZSBvciBmb3JtY29udHJvbCBpbnN0YW5jZVxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XG4gICAgICAgIGlmIChmb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSwgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCA9IGZvcm0uZ2V0Q29udHJvbChmb3JtQ29udHJvbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbCA9IGZvcm1Db250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xuXG4gICAgICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xuXG4gICAgICAgIC8vIHNldCBTcGxpdE1vZGUgZm9yIExhYmVsc1xuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XG5cbiAgICAgICAgdGhpcy5PbkNsYXNzSW5pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub3VjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gaW0gQ29udHJvbCBtaXRiZWtvbW1lbiBrw7ZubmVuXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gbWl0YmVrb21tZW4sIHdlbm4gZGFzIENvbnRyb2wgYWt0aXZpZXJ0IChGb2N1cykgd2lyZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHJlZ2lzdHJpZXJ0IMOEbmRlcnVuZ2VuIGJlaSBkZXIgVmFsaWRpZXJ1bmdcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGRpZSBkZW4gV2VydCBkZXMgSW5wdXRzIHNldHp0XG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFrdGUgVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBWQUxVRSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gT3ZlcndyaXRlbiBpbiBQYXJlbnQgQ2xhc3Nlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcmV0dXJucyBXZXJ0IGltIGtvcnJla3RlbiBUeXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGVjaW1hbCBTeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIHByaXZhdGUgVXBkYXRlTGFiZWxUb0NvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmZvcm1sYXlvdXQuY29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRIZWxwVGV4dE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5mb3JtbGF5b3V0LmhlbHB0ZXh0bW9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkhlbHB0ZXh0TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBZGFwdGl2ZUxhYmVsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBsYWJlbCBzaXplcyBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TGFiZWxTaXplcygpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLlNwbGl0TGFiZWxBbmRIZWxwdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfcDZ6YnhocmRkIiwiYWN0dWFsQ292ZXJhZ2UiLCJDb250cm9sSGVpZ2h0IiwiU0FDSUNPTl9TRVJWSUNFIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiU2FjRGVmYXVsdEljb25TZXJ2aWNlIiwiU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlIiwiU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsImNvbnZlcnRUb0Jvb2xlYW4iLCJjcmVhdGVHdWlkIiwiRGlyZWN0aXZlIiwiSG9zdCIsIklucHV0IiwiRm9ybUNvbnRyb2xOYW1lIiwiRm9ybUdyb3VwRGlyZWN0aXZlIiwiTmdDb250cm9sIiwiT2JzZXJ2YWJsZSIsIlNhY0Jhc2VNb2RlbENvbnRyb2wiLCJjb25zdHJ1Y3RvciIsImZvcm1sYXlvdXQiLCJpbmplY3RvciIsImYiLCJzIiwiX2lubGluZWVycm9yZW5hYmxlZCIsIl9sYWJlbCIsIl9kaXJ0eSIsIl9kaXNhYmxlZEZvcm0iLCJfdG91Y2hlZCIsIl92YWx1ZSIsImNvbXBvbmVudEhlaWdodCIsImRpc2FibGVkIiwiZGlzYWJsZWxhYmVsIiwiZTJlaWRlbnRpZmllciIsImhlbHB0ZXh0IiwiaW5saW5lRXJyb3IiLCJpc0FkYXB0aXZlTGFiZWwiLCJsYWJlbFNpemVMZyIsImxhYmVsU2l6ZU1kIiwibGFiZWxTaXplU20iLCJsYWJlbFNpemVYbCIsImxhYmVsU2l6ZVhzIiwibGFiZWxTaXplWHhsIiwibmFtZSIsInByb3BhZ2F0ZUNoYW5nZSIsInByb3BhZ2F0ZVRvdWNoIiwic3BsaXRsYWJlbGFuZGhlbHB0ZXh0IiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJjb25maWd1cmF0aW9uU2VydmljZSIsImljb25TZXJ2aWNlIiwiSGVscHRleHRUb29sdGlwSWNvbiIsIkdlbmVyaWNIZWxwdGV4dEljb24iLCJkaXJ0eSIsImIiLCJuZ0NvbnRyb2wiLCJ1bmRlZmluZWQiLCJpbmxpbmVlcnJvcmVuYWJsZWQiLCJ2YWx1ZSIsImludmFsaWQiLCJpc2Rpc2FibGVkIiwiaXNpbmxpbmVlcnJvcmVuYWJsZWQiLCJJc0lubGluZUVycm9yRW5hYmxlZCIsIklubGluZUVycm9yRW5hYmxlZCIsImxhYmVsIiwidiIsIlVwZGF0ZUxhYmVsVG9Db250cm9sIiwibGFiZWxTaXplcyIsInRvdWNoZWQiLCJDb252ZXJ0SW5wdXRWYWx1ZSIsIkdldEVycm9yTWVzc2FnZSIsImVycm9ycyIsIm9ic2VydmVyIiwibmV4dCIsImNvbXBsZXRlIiwibGVuZ3RoIiwia2V5cyIsIk9iamVjdCIsImVycm9ySXRlbSIsInBhcmFtZXRlcnMiLCJmb3JFYWNoIiwiayIsImZpZWxkTmFtZSIsIkdldFN0cmluZyIsImVycm9yTWVzc2FnZUtleSIsIm5nT25Jbml0IiwiZm9ybUNvbnRyb2wiLCJmb3JtIiwiZ2V0Q29udHJvbCIsImNvbnRyb2wiLCJzZXRMYWJlbFNpemVzIiwic2V0Q29tcG9uZW50SGVpZ2h0Iiwic2V0SXNBZGFwdGl2ZUxhYmVsIiwic2V0SGVscFRleHRNb2RlIiwic2V0TGFiZWxTcGxpdE1vZGUiLCJPbkNsYXNzSW5pdCIsIm9uVG91Y2giLCJyZWdpc3Rlck9uQ2hhbmdlIiwiZm4iLCJvYmoiLCJyZWdpc3Rlck9uVG91Y2hlZCIsInJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UiLCJfb25DaGFuZ2UiLCJzZXREaXNhYmxlZFN0YXRlIiwiaXNEaXNhYmxlZCIsInNldFZhbHVlIiwidmFsaWRhdGUiLCJjIiwiZXJyb3IiLCJ2YWxpZGF0ZURhdGEiLCJ3cml0ZVZhbHVlIiwiR2V0RGVjaW1hbFN5bWJvbCIsIlVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkiLCJ1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5Iiwib25seVNlbGYiLCJjb250cm9sbGFiZWwiLCJDb21wb25lbnRIZWlnaHQiLCJoZWxwdGV4dG1vZGUiLCJIZWxwdGV4dE1vZGUiLCJMYWJlbFNpemVYcyIsIkxhYmVsU2l6ZVNtIiwiTGFiZWxTaXplTWQiLCJMYWJlbFNpemVMZyIsIkxhYmVsU2l6ZVhsIiwiTGFiZWxTaXplWHhsIiwiU3BsaXRMYWJlbEFuZEhlbHB0ZXh0IiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaG9zdCIsImkwIiwiSW5qZWN0b3IiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBDb250cm9sSGVpZ2h0IH0gZnJvbSAnLi4vZW51bXMvQ29udHJvbEhlaWdodCc7XG5pbXBvcnQgeyBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNDb25maWd1cmF0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjTGFiZWxTaXplcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xhYmVsU2l6ZXMnO1xuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcbmltcG9ydCB7XG4gICAgU0FDSUNPTl9TRVJWSUNFLFxuICAgIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcbiAgICBTYWNEZWZhdWx0SWNvblNlcnZpY2UsXG4gICAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxufSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi91dGlsaXRpZXMvY29udmVydGlvbic7XG5pbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBOZ0NvbnRyb2wsXG4gICAgVW50eXBlZEZvcm1Db250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGlydHk7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgdG91Y2hlZDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIG5nQ29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIENvbnRyb2xIZWlnaHQ6IHR5cGVvZiBDb250cm9sSGVpZ2h0ID0gQ29udHJvbEhlaWdodDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YW5kYXJkIGhlaWdodCBvZiB0aGUgY29tcG9uZW50c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbXBvbmVudEhlaWdodDogQ29udHJvbEhlaWdodCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBMYWJlbCBpbSBUZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhlbHB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3I6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGF0IHRoZSBsYWJlbHMgYXJlIGRpc3BsYXllZCBhcyBhZGFwdGl2ZSBsYWJlbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlVG91Y2hcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmZvcm1sYXlvdXQgPSBmb3JtbGF5b3V0O1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcbiAgICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xuXG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDSUNPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5HZW5lcmljSGVscHRleHRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvciBtZXNzYWdlcyBpbmxpbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWt0aXZpZXJ0IG9kZXIgRGVha3RpdmllcnQgZGllIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpbmxpbmVlcnJvcmVuYWJsZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIFdlcnQgd2VubiBGb3JtIGludmFsaWQgb2RlciBuaWNodCBpbnZhbGlkIGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBpbmxpbmUgZXJyb3IgbWVzc2FnZXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBjb250cm9sLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYWxsIGxhYmVsIHNpemVzLiBUaGVzZSB2YWx1ZXMgY2FuIHRoZW4gYmUgdHJhbnNmZXJyZWQgdG8gY29ycmVzcG9uZGluZyBDU1MgY2xhc3NlcyB1c2luZyBhIHBpcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsU2l6ZXMoKTogSVNhY0xhYmVsU2l6ZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXG4gICAgICAgICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhzOiB0aGlzLmxhYmVsU2l6ZVhzLFxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXG4gICAgICAgICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxuICAgICAgICAgICAgbGFiZWxTaXplTGc6IHRoaXMubGFiZWxTaXplTGcsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgdG91Y2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdWNoZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBNZXRob2RlIGbDvHIgTmdNb2RlbCBCaW5kaW5nIGluIEh0bWwgTWFya3VwXG4gICAgICogSW5wdXQgd2lyZCBiZW7DtnRpZ3QsIGRhbWl0IGRlciBXZXJ0IGF1Y2ggw7xiZXIgZGFzIE1hcmt1cCBnZXNldHp0IHdlcmRlbiBrYW5uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRXJyb3IgYW5oYW5kIHZvbiBnZWdlYmVuZW4gS3JpdGVyaWVuXG4gICAgICovXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLm5nQ29udHJvbC5lcnJvcnM7XG5cbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoZXJyb3JzKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xuXG4gICAgICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvckl0ZW0ucGFyYW1ldGVycy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1trXSA9IHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIHJlY2VpdmUgZm9ybSB2aWEgZm9ybWNvbnRyb2xuYW1lIG9yIGZvcm1jb250cm9sIGluc3RhbmNlXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XG5cbiAgICAgICAgLy8gc2V0IGxhYmVsIHNpemVzIGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNpemVzKCk7XG5cbiAgICAgICAgLy8gc2V0IGNvbXBvbmVudCBoZWlndGggZnJvbSBmcm9tbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldENvbXBvbmVudEhlaWdodCgpO1xuXG4gICAgICAgIC8vIHNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0SXNBZGFwdGl2ZUxhYmVsKCk7XG5cbiAgICAgICAgLy8gc2V0IG1ldGhvZCB0byBkaXNwbGF5IGhlbHB0ZXh0XG4gICAgICAgIHRoaXMuc2V0SGVscFRleHRNb2RlKCk7XG5cbiAgICAgICAgLy8gc2V0IFNwbGl0TW9kZSBmb3IgTGFiZWxzXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTcGxpdE1vZGUoKTtcblxuICAgICAgICB0aGlzLk9uQ2xhc3NJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgYm9vbGVhbiB0b3VjaGVkID0gdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvdWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBpbSBDb250cm9sIG1pdGJla29tbWVuIGvDtm5uZW5cbiAgICAgKiBadXIgw4RuZGVydW5nc2luZm8gZGllIE1ldGhvZGUgcHJvcGFnYXRlQ2hhbmdlIGF1ZnJ1ZmVuLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgcmVnaXN0cmllcnQgw4RuZGVydW5nZW4gYmVpIGRlciBWYWxpZGllcnVuZ1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0enQgZGFzIENvbnRyb2wgYXVmIERpc2FibGVkXG4gICAgICovXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZEZvcm0gPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLnZhbGlkYXRlRGF0YShjKTtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHp1bSBzY2hyZWliZW4gdm9uIFdlcnRlbiBhdXMgZGVtIE1vZGVsIGluIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBPdmVyd3JpdGVuIGluIFBhcmVudCBDbGFzc2VzXG4gICAgICogQHBhcmFtIHZhbHVlIFdlcnQgd2VsY2hlciBpbiBkZW4ga29ycmVrdGVuIFR5cCBrb252ZXJ0aWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEByZXR1cm5zIFdlcnQgaW0ga29ycmVrdGVuIFR5cFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBDb252ZXJ0SW5wdXRWYWx1ZSh2YWx1ZTogVkFMVUUpOiBWQUxVRSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBEZWNpbWFsIFN5bWJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBHZXREZWNpbWFsU3ltYm9sKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnLic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBiZSB1c2VkIHRvIFNldCBQcm9wZXJ0aWVzIGF0IENsYXNzIEluaXRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgT25DbGFzc0luaXQoKTogdm9pZCB7fVxuXG4gICAgLyoqXG4gICAgICogQWt0dWFsaXNpZXJ0IGRlbiBOZ01vZGVsIFdlcnQgdW5kIGRpZSBHw7xsdGlna2VpdCBkZXMgVmFsaWRhdG9ycyBkZXMgQ29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgcHJpdmF0ZSBVcGRhdGVMYWJlbFRvQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24pLmNvbnRyb2xsYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29tcG9uZW50IGhlaWdodCBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50SGVpZ2h0KCkge1xuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuZm9ybWxheW91dC5jb21wb25lbnRIZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5Db21wb25lbnRIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbW9kZSBmb3IgaGVscHRleHQuIENhbiBiZSB0b29sdGlwIG9yIHRleHRcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEhlbHBUZXh0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmZvcm1sYXlvdXQuaGVscHRleHRtb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSGVscHRleHRNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRJc0FkYXB0aXZlTGFiZWwoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0FkYXB0aXZlTGFiZWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmlzQWRhcHRpdmVMYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSB0aGlzLmZvcm1sYXlvdXQuaXNBZGFwdGl2ZUxhYmVsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGxhYmVsIHNpemVzIGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWHMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplU20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVTbTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplU207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBtZWRpdW1cbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZU1kKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZUxnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTGc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgZXh0cmEgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHhsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNwbGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmZvcm1sYXlvdXQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuU3BsaXRMYWJlbEFuZEhlbHB0ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6IjQ2dURBaU5JO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQWhOSixPQUFTRSxhQUFhLEtBQVEsd0JBQXdCLENBT3RELE9BQ0lDLGVB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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfcDZ6YnhocmRkIiwiYWN0dWFsQ292ZXJhZ2UiLCJDb250cm9sSGVpZ2h0IiwiU0FDSUNPTl9TRVJWSUNFIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiU2FjRGVmYXVsdEljb25TZXJ2aWNlIiwiU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlIiwiU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsImNvbnZlcnRUb0Jvb2xlYW4iLCJjcmVhdGVHdWlkIiwiRGlyZWN0aXZlIiwiSG9zdCIsIklucHV0IiwiRm9ybUNvbnRyb2xOYW1lIiwiRm9ybUdyb3VwRGlyZWN0aXZlIiwiTmdDb250cm9sIiwiT2JzZXJ2YWJsZSIsIlNhY0Jhc2VNb2RlbENvbnRyb2wiLCJjb25zdHJ1Y3RvciIsImZvcm1sYXlvdXQiLCJpbmplY3RvciIsImYiLCJzIiwiX2lubGluZWVycm9yZW5hYmxlZCIsIl9sYWJlbCIsIl9kaXJ0eSIsIl9kaXNhYmxlZEZvcm0iLCJfdG91Y2hlZCIsIl92YWx1ZSIsImNvbXBvbmVudEhlaWdodCIsImRpc2FibGVkIiwiZGlzYWJsZWxhYmVsIiwiZTJlaWRlbnRpZmllciIsImhlbHB0ZXh0IiwiaW5saW5lRXJyb3IiLCJpc0FkYXB0aXZlTGFiZWwiLCJsYWJlbFNpemVMZyIsImxhYmVsU2l6ZU1kIiwibGFiZWxTaXplU20iLCJsYWJlbFNpemVYbCIsImxhYmVsU2l6ZVhzIiwibGFiZWxTaXplWHhsIiwibmFtZSIsInByb3BhZ2F0ZUNoYW5nZSIsInByb3BhZ2F0ZVRvdWNoIiwic3BsaXRsYWJlbGFuZGhlbHB0ZXh0IiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJjb25maWd1cmF0aW9uU2VydmljZSIsImljb25TZXJ2aWNlIiwiSGVscHRleHRUb29sdGlwSWNvbiIsIkdlbmVyaWNIZWxwdGV4dEljb24iLCJkaXJ0eSIsImIiLCJuZ0NvbnRyb2wiLCJ1bmRlZmluZWQiLCJpbmxpbmVlcnJvcmVuYWJsZWQiLCJ2YWx1ZSIsImludmFsaWQiLCJpc2Rpc2FibGVkIiwiaXNpbmxpbmVlcnJvcmVuYWJsZWQiLCJJc0lubGluZUVycm9yRW5hYmxlZCIsIklubGluZUVycm9yRW5hYmxlZCIsImxhYmVsIiwidiIsIlVwZGF0ZUxhYmVsVG9Db250cm9sIiwibGFiZWxTaXplcyIsInRvdWNoZWQiLCJDb252ZXJ0SW5wdXRWYWx1ZSIsIkdldEVycm9yTWVzc2FnZSIsImVycm9ycyIsIm9ic2VydmVyIiwibmV4dCIsImNvbXBsZXRlIiwibGVuZ3RoIiwia2V5cyIsIk9iamVjdCIsImVycm9ySXRlbSIsInBhcmFtZXRlcnMiLCJmb3JFYWNoIiwiayIsImZpZWxkTmFtZSIsIkdldFN0cmluZyIsImVycm9yTWVzc2FnZUtleSIsIm5nT25Jbml0IiwiZm9ybUNvbnRyb2wiLCJmb3JtIiwiZ2V0Q29udHJvbCIsImNvbnRyb2wiLCJzZXRMYWJlbFNpemVzIiwic2V0Q29tcG9uZW50SGVpZ2h0Iiwic2V0SXNBZGFwdGl2ZUxhYmVsIiwic2V0SGVscFRleHRNb2RlIiwic2V0TGFiZWxTcGxpdE1vZGUiLCJPbkNsYXNzSW5pdCIsIm9uVG91Y2giLCJyZWdpc3Rlck9uQ2hhbmdlIiwiZm4iLCJvYmoiLCJyZWdpc3Rlck9uVG91Y2hlZCIsInJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UiLCJfb25DaGFuZ2UiLCJzZXREaXNhYmxlZFN0YXRlIiwiaXNEaXNhYmxlZCIsInNldFZhbHVlIiwidmFsaWRhdGUiLCJjIiwiZXJyb3IiLCJ2YWxpZGF0ZURhdGEiLCJ3cml0ZVZhbHVlIiwiR2V0RGVjaW1hbFN5bWJvbCIsIlVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkiLCJ1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5Iiwib25seVNlbGYiLCJjb250cm9sbGFiZWwiLCJDb21wb25lbnRIZWlnaHQiLCJoZWxwdGV4dG1vZGUiLCJIZWxwdGV4dE1vZGUiLCJMYWJlbFNpemVYcyIsIkxhYmVsU2l6ZVNtIiwiTGFiZWxTaXplTWQiLCJMYWJlbFNpemVMZyIsIkxhYmVsU2l6ZVhsIiwiTGFiZWxTaXplWHhsIiwiU3BsaXRMYWJlbEFuZEhlbHB0ZXh0IiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaG9zdCIsImkwIiwiSW5qZWN0b3IiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBDb250cm9sSGVpZ2h0IH0gZnJvbSAnLi4vZW51bXMvQ29udHJvbEhlaWdodCc7XG5pbXBvcnQgeyBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNDb25maWd1cmF0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjTGFiZWxTaXplcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xhYmVsU2l6ZXMnO1xuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcbmltcG9ydCB7XG4gICAgU0FDSUNPTl9TRVJWSUNFLFxuICAgIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcbiAgICBTYWNEZWZhdWx0SWNvblNlcnZpY2UsXG4gICAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxufSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi91dGlsaXRpZXMvY29udmVydGlvbic7XG5pbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBOZ0NvbnRyb2wsXG4gICAgVW50eXBlZEZvcm1Db250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGlydHk7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgdG91Y2hlZDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIG5nQ29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIENvbnRyb2xIZWlnaHQ6IHR5cGVvZiBDb250cm9sSGVpZ2h0ID0gQ29udHJvbEhlaWdodDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YW5kYXJkIGhlaWdodCBvZiB0aGUgY29tcG9uZW50c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbXBvbmVudEhlaWdodDogQ29udHJvbEhlaWdodCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBMYWJlbCBpbSBUZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhlbHB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3I6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGF0IHRoZSBsYWJlbHMgYXJlIGRpc3BsYXllZCBhcyBhZGFwdGl2ZSBsYWJlbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlVG91Y2hcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmZvcm1sYXlvdXQgPSBmb3JtbGF5b3V0O1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcbiAgICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xuXG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDSUNPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5HZW5lcmljSGVscHRleHRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvciBtZXNzYWdlcyBpbmxpbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWt0aXZpZXJ0IG9kZXIgRGVha3RpdmllcnQgZGllIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpbmxpbmVlcnJvcmVuYWJsZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIFdlcnQgd2VubiBGb3JtIGludmFsaWQgb2RlciBuaWNodCBpbnZhbGlkIGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBpbmxpbmUgZXJyb3IgbWVzc2FnZXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBjb250cm9sLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYWxsIGxhYmVsIHNpemVzLiBUaGVzZSB2YWx1ZXMgY2FuIHRoZW4gYmUgdHJhbnNmZXJyZWQgdG8gY29ycmVzcG9uZGluZyBDU1MgY2xhc3NlcyB1c2luZyBhIHBpcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsU2l6ZXMoKTogSVNhY0xhYmVsU2l6ZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXG4gICAgICAgICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhzOiB0aGlzLmxhYmVsU2l6ZVhzLFxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXG4gICAgICAgICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxuICAgICAgICAgICAgbGFiZWxTaXplTGc6IHRoaXMubGFiZWxTaXplTGcsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgdG91Y2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdWNoZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBNZXRob2RlIGbDvHIgTmdNb2RlbCBCaW5kaW5nIGluIEh0bWwgTWFya3VwXG4gICAgICogSW5wdXQgd2lyZCBiZW7DtnRpZ3QsIGRhbWl0IGRlciBXZXJ0IGF1Y2ggw7xiZXIgZGFzIE1hcmt1cCBnZXNldHp0IHdlcmRlbiBrYW5uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRXJyb3IgYW5oYW5kIHZvbiBnZWdlYmVuZW4gS3JpdGVyaWVuXG4gICAgICovXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLm5nQ29udHJvbC5lcnJvcnM7XG5cbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoZXJyb3JzKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xuXG4gICAgICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvckl0ZW0ucGFyYW1ldGVycy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1trXSA9IHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIHJlY2VpdmUgZm9ybSB2aWEgZm9ybWNvbnRyb2xuYW1lIG9yIGZvcm1jb250cm9sIGluc3RhbmNlXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XG5cbiAgICAgICAgLy8gc2V0IGxhYmVsIHNpemVzIGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNpemVzKCk7XG5cbiAgICAgICAgLy8gc2V0IGNvbXBvbmVudCBoZWlndGggZnJvbSBmcm9tbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldENvbXBvbmVudEhlaWdodCgpO1xuXG4gICAgICAgIC8vIHNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0SXNBZGFwdGl2ZUxhYmVsKCk7XG5cbiAgICAgICAgLy8gc2V0IG1ldGhvZCB0byBkaXNwbGF5IGhlbHB0ZXh0XG4gICAgICAgIHRoaXMuc2V0SGVscFRleHRNb2RlKCk7XG5cbiAgICAgICAgLy8gc2V0IFNwbGl0TW9kZSBmb3IgTGFiZWxzXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTcGxpdE1vZGUoKTtcblxuICAgICAgICB0aGlzLk9uQ2xhc3NJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgYm9vbGVhbiB0b3VjaGVkID0gdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvdWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBpbSBDb250cm9sIG1pdGJla29tbWVuIGvDtm5uZW5cbiAgICAgKiBadXIgw4RuZGVydW5nc2luZm8gZGllIE1ldGhvZGUgcHJvcGFnYXRlQ2hhbmdlIGF1ZnJ1ZmVuLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgcmVnaXN0cmllcnQgw4RuZGVydW5nZW4gYmVpIGRlciBWYWxpZGllcnVuZ1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0enQgZGFzIENvbnRyb2wgYXVmIERpc2FibGVkXG4gICAgICovXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZEZvcm0gPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLnZhbGlkYXRlRGF0YShjKTtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHp1bSBzY2hyZWliZW4gdm9uIFdlcnRlbiBhdXMgZGVtIE1vZGVsIGluIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBPdmVyd3JpdGVuIGluIFBhcmVudCBDbGFzc2VzXG4gICAgICogQHBhcmFtIHZhbHVlIFdlcnQgd2VsY2hlciBpbiBkZW4ga29ycmVrdGVuIFR5cCBrb252ZXJ0aWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEByZXR1cm5zIFdlcnQgaW0ga29ycmVrdGVuIFR5cFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBDb252ZXJ0SW5wdXRWYWx1ZSh2YWx1ZTogVkFMVUUpOiBWQUxVRSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBEZWNpbWFsIFN5bWJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBHZXREZWNpbWFsU3ltYm9sKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnLic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBiZSB1c2VkIHRvIFNldCBQcm9wZXJ0aWVzIGF0IENsYXNzIEluaXRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgT25DbGFzc0luaXQoKTogdm9pZCB7fVxuXG4gICAgLyoqXG4gICAgICogQWt0dWFsaXNpZXJ0IGRlbiBOZ01vZGVsIFdlcnQgdW5kIGRpZSBHw7xsdGlna2VpdCBkZXMgVmFsaWRhdG9ycyBkZXMgQ29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgcHJpdmF0ZSBVcGRhdGVMYWJlbFRvQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24pLmNvbnRyb2xsYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29tcG9uZW50IGhlaWdodCBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50SGVpZ2h0KCkge1xuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuZm9ybWxheW91dC5jb21wb25lbnRIZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5Db21wb25lbnRIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbW9kZSBmb3IgaGVscHRleHQuIENhbiBiZSB0b29sdGlwIG9yIHRleHRcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEhlbHBUZXh0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmZvcm1sYXlvdXQuaGVscHRleHRtb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSGVscHRleHRNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRJc0FkYXB0aXZlTGFiZWwoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0FkYXB0aXZlTGFiZWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmlzQWRhcHRpdmVMYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSB0aGlzLmZvcm1sYXlvdXQuaXNBZGFwdGl2ZUxhYmVsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGxhYmVsIHNpemVzIGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWHMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBzbWFsbFxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplU20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVTbTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplU207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBtZWRpdW1cbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZU1kKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZUxnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTGc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgZXh0cmEgbGFyZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHhsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNwbGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmZvcm1sYXlvdXQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuU3BsaXRMYWJlbEFuZEhlbHB0ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6IjQ2dURBaU5JO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQWhOSixPQUFTRSxhQUFhLEtBQVEsd0JBQXdCLENBT3RELE9BQ0lDLGVB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
@@ -6,4 +6,4 @@ cov_19xmips4h7=function(){return actualCoverage;};}return actualCoverage;}cov_19
6
6
  */cov_19xmips4h7().s[1]++;this.grouplabel='label';/**
7
7
  * Definiert die Collection der Items im Group Element
8
8
  */cov_19xmips4h7().s[2]++;this.groupitems='';}static{cov_19xmips4h7().s[3]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseSelectControl,deps:null,target:i0.ɵɵFactoryTarget.Directive});}static{cov_19xmips4h7().s[4]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseSelectControl,inputs:{grouplabel:"grouplabel",groupitems:"groupitems"},usesInheritance:true,ngImport:i0});}}export{SacBaseSelectControl};cov_19xmips4h7().s[5]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseSelectControl,decorators:[{type:Directive}],propDecorators:{grouplabel:[{type:Input}],groupitems:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXNlbGVjdGNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXNlbGVjdGNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXZEOztHQUVHO0FBQ0gsTUFDc0Isb0JBQTRCLFNBQVEsa0JBQXlCO0lBRG5GOztRQUdFOztXQUVHO1FBQ00sZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUV0Qzs7V0FFRztRQUNNLGVBQVUsR0FBVyxFQUFFLENBQUM7S0FFbEM7K0dBWnFCLG9CQUFvQjttR0FBcEIsb0JBQW9COztTQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFEekMsU0FBUzs4QkFNQyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWNCYXNlTGlzdENvbnRyb2wgfSBmcm9tICcuL2Jhc2VsaXN0Y29udHJvbCc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZVNlbGVjdENvbnRyb2wuIEV4dGVuZGVzIFNhY0Jhc2VMaXN0Q29udHJvbFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlU2VsZWN0Q29udHJvbDxWQUxVRT4gZXh0ZW5kcyBTYWNCYXNlTGlzdENvbnRyb2w8VkFMVUU+IHtcblxuICAvKipcbiAgICogRGVmaW5pZXJ0IGRhcyBMYWJlbCBmw7xyIGRhcyBHcm91cCBFbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBncm91cGxhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xuXG4gIC8qKlxuICAgKiBEZWZpbmllcnQgZGllIENvbGxlY3Rpb24gZGVyIEl0ZW1zIGltIEdyb3VwIEVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwaXRlbXM6IHN0cmluZyA9ICcnO1xuXG59XG4iXX0=
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTl4bWlwczRoNyIsImFjdHVhbENvdmVyYWdlIiwiSW5wdXQiLCJEaXJlY3RpdmUiLCJTYWNCYXNlTGlzdENvbnRyb2wiLCJTYWNCYXNlU2VsZWN0Q29udHJvbCIsImNvbnN0cnVjdG9yIiwiZiIsInMiLCJncm91cGxhYmVsIiwiZ3JvdXBpdGVtcyIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwidXNlc0luaGVyaXRhbmNlIiwibmdJbXBvcnQiLCJkZWNvcmF0b3JzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY0Jhc2VMaXN0Q29udHJvbCB9IGZyb20gJy4vYmFzZWxpc3Rjb250cm9sJztcblxuLyoqXG4gKiBBYnN0cmFjdCBLbGFzc2UgZsO8ciBTYWNCYXNlU2VsZWN0Q29udHJvbC4gRXh0ZW5kZXMgU2FjQmFzZUxpc3RDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VTZWxlY3RDb250cm9sPFZBTFVFPiBleHRlbmRzIFNhY0Jhc2VMaXN0Q29udHJvbDxWQUxVRT4ge1xuXG4gIC8qKlxuICAgKiBEZWZpbmllcnQgZGFzIExhYmVsIGbDvHIgZGFzIEdyb3VwIEVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwbGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG5cbiAgLyoqXG4gICAqIERlZmluaWVydCBkaWUgQ29sbGVjdGlvbiBkZXIgSXRlbXMgaW0gR3JvdXAgRWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBpdGVtczogc3RyaW5nID0gJyc7XG5cbn1cbiJdLCJtYXBwaW5ncyI6IjJ4RUFnQks7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBaEJMLE9BQVNFLEtBQUssQ0FBRUMsU0FBUyxLQUFRLGVBQWUsQ0FDaEQsT0FBU0Msa0JBQWtCLEtBQVEsbUJBQW1CLEMsaUNBRXREOztHQUdBLEtBQ3NCLENBQUFDLG9CQUE0QixRQUFRLENBQUFELGtCQUF5QixDQURuRkUsWUFBQSxFQUFBTixjQUFBLEdBQUFPLENBQUEsTUFBQVAsY0FBQSxHQUFBUSxDQUFBLE0sb0JBR0U7O1dBQUFSLGNBQUEsR0FBQVEsQ0FBQSxNQUdTLEtBQUFDLFVBQVUsQ0FBVyxPQUFPLENBRXJDOztXQUFBVCxjQUFBLEdBQUFRLENBQUEsTUFHUyxLQUFBRSxVQUFVLENBQVcsRUFBRSxDLHdIQVZaTCxvQkFBb0IsQ0FBQU0sSUFBQSxNQUFBQyxNQUFBLENBQUFDLEVBQUEsQ0FBQUMsZUFBQSxDQUFBWCxTQUFBLEksNkdBQXBCRSxvQkFBb0IsQ0FBQVUsTUFBQSxFQUFBTixVQUFBLGNBQUFDLFVBQUEsZUFBQU0sZUFBQSxNQUFBQyxRQUFBLENBQUFKLEVBQUEsSSxRQUFwQlIsb0JBQW9CLEVBQUFMLGNBQUEsR0FBQVEsQ0FBQSxNLG9GQUFwQkgsb0JBQW9CLENBQUFhLFVBQUEsRyxLQUR6Q2YsUyxtQkFNVU0sVUFBVSxHLEtBQWxCUCxLLEdBS1FRLFVBQVUsRyxLQUFsQlIsSyIsImlnbm9yZUxpc3QiOltdfQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTl4bWlwczRoNyIsImFjdHVhbENvdmVyYWdlIiwiSW5wdXQiLCJEaXJlY3RpdmUiLCJTYWNCYXNlTGlzdENvbnRyb2wiLCJTYWNCYXNlU2VsZWN0Q29udHJvbCIsImNvbnN0cnVjdG9yIiwiZiIsInMiLCJncm91cGxhYmVsIiwiZ3JvdXBpdGVtcyIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwidXNlc0luaGVyaXRhbmNlIiwibmdJbXBvcnQiLCJkZWNvcmF0b3JzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29tbW9uL2Jhc2VzZWxlY3Rjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY0Jhc2VMaXN0Q29udHJvbCB9IGZyb20gJy4vYmFzZWxpc3Rjb250cm9sJztcblxuLyoqXG4gKiBBYnN0cmFjdCBLbGFzc2UgZsO8ciBTYWNCYXNlU2VsZWN0Q29udHJvbC4gRXh0ZW5kZXMgU2FjQmFzZUxpc3RDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VTZWxlY3RDb250cm9sPFZBTFVFPiBleHRlbmRzIFNhY0Jhc2VMaXN0Q29udHJvbDxWQUxVRT4ge1xuXG4gIC8qKlxuICAgKiBEZWZpbmllcnQgZGFzIExhYmVsIGbDvHIgZGFzIEdyb3VwIEVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwbGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG5cbiAgLyoqXG4gICAqIERlZmluaWVydCBkaWUgQ29sbGVjdGlvbiBkZXIgSXRlbXMgaW0gR3JvdXAgRWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBpdGVtczogc3RyaW5nID0gJyc7XG5cbn1cbiJdLCJtYXBwaW5ncyI6IjJ4RUFnQks7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBaEJMLE9BQVNFLEtBQUssQ0FBRUMsU0FBUyxLQUFRLGVBQWUsQ0FDaEQsT0FBU0Msa0JBQWtCLEtBQVEsbUJBQW1CLEMsaUNBRXREOztHQUdBLEtBQ3NCLENBQUFDLG9CQUE0QixRQUFRLENBQUFELGtCQUF5QixDQURuRkUsWUFBQSxFQUFBTixjQUFBLEdBQUFPLENBQUEsS0FBQVAsQ0FBQSxpQkFBQVEsQ0FBQSxNLG9CQUdFOztXQUFBUixjQUFBLEdBQUFRLENBQUEsTUFHUyxLQUFBQyxVQUFVLENBQVcsT0FBTyxDQUVyQzs7V0FBQVQsY0FBQSxHQUFBUSxDQUFBLE1BR1MsS0FBQUUsVUFBVSxDQUFXLEVBQUUsQyx3SEFWWkwsb0JBQW9CLENBQUFNLElBQUEsTUFBQUMsTUFBQSxDQUFBQyxFQUFBLENBQUFDLGVBQUEsQ0FBQVgsU0FBQSxJLDZHQUFwQkUsb0JBQW9CLENBQUFVLE1BQUEsRUFBQU4sVUFBQSxjQUFBQyxVQUFBLGVBQUFNLGVBQUEsTUFBQUMsUUFBQSxDQUFBSixFQUFBLEksUUFBcEJSLG9CQUFvQixFQUFBTCxjQUFBLEdBQUFRLENBQUEsTSxvRkFBcEJILG9CQUFvQixDQUFBYSxVQUFBLEcsS0FEekNmLFMsbUJBTVVNLFVBQVUsRyxLQUFsQlAsSyxHQUtRUSxVQUFVLEcsS0FBbEJSLEsiLCJpZ25vcmVMaXN0IjpbXX0=