@simpleangularcontrols/sac-common 13.0.0-rc.20 → 13.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.
- package/common/basedatetimecontrol.d.ts +45 -18
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/baseinputcontrol.d.ts +10 -8
- package/common/baseinputcontrol.d.ts.map +1 -1
- package/common/baselistcontrol.d.ts +16 -16
- package/common/baselistcontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +60 -44
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseselectcontrol.d.ts +6 -6
- package/common/baseselectcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +78 -58
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/components/browser/browser.d.ts +86 -89
- package/components/browser/browser.d.ts.map +1 -1
- package/components/browser/models/browserfile.d.ts +6 -6
- package/components/browser/models/browserfile.d.ts.map +1 -1
- package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
- package/components/browser/models/browserfiledeleterequest.d.ts.map +1 -1
- package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
- package/components/browser/models/browserfilerenamerequest.d.ts.map +1 -1
- package/components/browser/models/browserfileresponse.d.ts +2 -2
- package/components/browser/models/browserfileresponse.d.ts.map +1 -1
- package/components/browser/models/browserfilesaverequest.d.ts +7 -7
- package/components/browser/models/browserfilesaverequest.d.ts.map +1 -1
- package/components/browser/models/browsernode.d.ts +13 -13
- package/components/browser/models/browsernode.d.ts.map +1 -1
- package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
- package/components/browser/models/browsernodedeleterequest.d.ts.map +1 -1
- package/components/browser/models/browsernodenewrequest.d.ts +7 -7
- package/components/browser/models/browsernodenewrequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
- package/components/browser/models/browsernoderenamerequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderequest.d.ts +7 -7
- package/components/browser/models/browsernoderequest.d.ts.map +1 -1
- package/components/browser/models/browsernoderesponse.d.ts +1 -1
- package/components/browser/models/browsernoderesponse.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +25 -19
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +3 -3
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +19 -13
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +13 -10
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts +3 -3
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.d.ts +13 -12
- package/controls/confirm/confirm.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +14 -14
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +33 -27
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
- package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
- package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
- package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +11 -11
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/dateselector.d.ts +47 -40
- package/controls/datetime/dateselector.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +15 -14
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +22 -12
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +29 -23
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/form/form.d.ts +17 -12
- package/controls/form/form.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +1 -0
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +1 -0
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +5 -1
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +1 -1
- package/controls/grid/gridcolumnbase.d.ts +13 -4
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/model.d.ts +5 -2
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/model.ngfactory.d.ts +3 -0
- package/controls/grid/model.ngfactory.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +2 -3
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/input.d.ts +7 -7
- package/controls/input/inputarea.d.ts +8 -6
- package/controls/input/inputarea.d.ts.map +1 -1
- package/controls/input/inputcurrency.d.ts +4 -1
- package/controls/input/inputcurrency.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +14 -14
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts +4 -4
- package/controls/input/inputinteger.d.ts +14 -14
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +3 -3
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +8 -5
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +9 -6
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/list/buildvaluestring.d.ts +2 -2
- package/controls/list/dropdown.d.ts +23 -22
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +10 -10
- package/controls/list/dropdownoptions.d.ts.map +1 -1
- package/controls/list/listbox.d.ts +25 -23
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +25 -25
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +8 -8
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/static/staticlabel.d.ts +5 -5
- package/controls/static/staticlabel.d.ts.map +1 -1
- package/controls/tabs/tab.d.ts +2 -2
- package/controls/tabs/tabitem.d.ts +7 -7
- package/controls/tabs/tabitem.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +37 -37
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettings.d.ts +6 -6
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
- package/controls/tinymce/tinymceinstance.d.ts +2 -2
- package/controls/tooltip/tooltip.d.ts +10 -5
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +52 -7
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +16 -16
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.d.ts +11 -11
- package/controls/upload/uploadmultiple.d.ts +12 -12
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadsingle.d.ts +7 -7
- package/controls/upload/uploadsingle.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +12 -11
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/controls/wizard/wizard.d.ts +25 -18
- package/controls/wizard/wizard.d.ts.map +1 -1
- package/controls/wizard/wizarditem.d.ts +5 -5
- package/controls/wizard/wizarditem.d.ts.map +1 -1
- package/enums/ButtonRoleType.d.ts +26 -1
- package/enums/ButtonRoleType.d.ts.map +1 -1
- package/enums/ControlHeight.d.ts +1 -1
- package/enums/ControlHeight.d.ts.map +1 -1
- package/enums/IconType.d.ts +1 -1
- package/enums/IconType.d.ts.map +1 -1
- package/esm2020/common/basedatetimecontrol.mjs +58 -37
- package/esm2020/common/baseinputcontrol.mjs +15 -13
- package/esm2020/common/baselistcontrol.mjs +19 -17
- package/esm2020/common/basemodelcontrol.mjs +81 -70
- package/esm2020/common/baseselectcontrol.mjs +10 -9
- package/esm2020/common/baseuploadcontrol.mjs +72 -56
- package/esm2020/components/browser/browser.mjs +87 -89
- package/esm2020/components/browser/models/browserfile.mjs +3 -3
- package/esm2020/components/browser/models/browserfiledeleterequest.mjs +9 -7
- package/esm2020/components/browser/models/browserfilerenamerequest.mjs +9 -7
- package/esm2020/components/browser/models/browserfileresponse.mjs +3 -3
- package/esm2020/components/browser/models/browserfilesaverequest.mjs +8 -6
- package/esm2020/components/browser/models/browsernode.mjs +3 -3
- package/esm2020/components/browser/models/browsernodedeleterequest.mjs +9 -7
- package/esm2020/components/browser/models/browsernodenewrequest.mjs +9 -7
- package/esm2020/components/browser/models/browsernoderenamerequest.mjs +9 -7
- package/esm2020/components/browser/models/browsernoderequest.mjs +9 -7
- package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -3
- package/esm2020/controls/buttons/button.mjs +28 -24
- package/esm2020/controls/checkbox/checkbox.mjs +5 -5
- package/esm2020/controls/checkbox/radiobutton.mjs +22 -17
- package/esm2020/controls/checkbox/radiobuttons.mjs +16 -13
- package/esm2020/controls/confirm/confirm.button.mjs +6 -6
- package/esm2020/controls/confirm/confirm.mjs +16 -15
- package/esm2020/controls/confirm/confirm.service.mjs +23 -23
- package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenu.mjs +31 -26
- package/esm2020/controls/contextmenu/contextmenuanchor.mjs +6 -6
- package/esm2020/controls/contextmenu/contextmenucontainer.mjs +6 -6
- package/esm2020/controls/contextmenu/contextmenuitem.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +12 -12
- package/esm2020/controls/datetime/date.mjs +15 -15
- package/esm2020/controls/datetime/dateselector.mjs +94 -93
- package/esm2020/controls/datetime/datetime.mjs +19 -18
- package/esm2020/controls/datetime/time.mjs +26 -16
- package/esm2020/controls/dialog/dialog.mjs +40 -36
- package/esm2020/controls/form/form.mjs +20 -16
- package/esm2020/controls/grid/grid.mjs +4 -3
- package/esm2020/controls/grid/gridbutton.mjs +4 -3
- package/esm2020/controls/grid/gridcolumn.mjs +8 -4
- package/esm2020/controls/grid/gridcolumnaction.mjs +4 -4
- package/esm2020/controls/grid/gridcolumnbase.mjs +24 -17
- package/esm2020/controls/grid/model.mjs +9 -7
- package/esm2020/controls/grid/model.ngfactory.mjs +5 -3
- package/esm2020/controls/grid/paging.mjs +8 -9
- package/esm2020/controls/input/input.mjs +10 -10
- package/esm2020/controls/input/inputarea.mjs +11 -9
- package/esm2020/controls/input/inputcurrency.mjs +8 -6
- package/esm2020/controls/input/inputdecimal.mjs +20 -20
- package/esm2020/controls/input/inputemail.mjs +7 -7
- package/esm2020/controls/input/inputinteger.mjs +19 -19
- package/esm2020/controls/input/inputpassword.mjs +6 -6
- package/esm2020/controls/input/inputsearch.mjs +11 -9
- package/esm2020/controls/layout/formlayout.mjs +11 -8
- package/esm2020/controls/list/buildvaluestring.mjs +8 -8
- package/esm2020/controls/list/dropdown.mjs +30 -29
- package/esm2020/controls/list/dropdownoptions.mjs +14 -14
- package/esm2020/controls/list/list.module.ngfactory.mjs +1 -1
- package/esm2020/controls/list/listbox.mjs +28 -26
- package/esm2020/controls/multilanguage/multilanguageinput.mjs +31 -31
- package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +33 -33
- package/esm2020/controls/static/formcontainer.mjs +12 -12
- package/esm2020/controls/static/staticlabel.mjs +9 -9
- package/esm2020/controls/tabs/tab.mjs +4 -4
- package/esm2020/controls/tabs/tabitem.mjs +7 -7
- package/esm2020/controls/tinymce/tinymce.mjs +37 -37
- package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +6 -6
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -3
- package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -3
- package/esm2020/controls/tooltip/tooltip.mjs +15 -10
- package/esm2020/controls/treeview/treeview.mjs +47 -11
- package/esm2020/controls/upload/dropzonemultiple.mjs +20 -20
- package/esm2020/controls/upload/dropzonesingle.mjs +14 -14
- package/esm2020/controls/upload/uploadmultiple.mjs +16 -16
- package/esm2020/controls/upload/uploadsingle.mjs +10 -10
- package/esm2020/controls/validation/validationsummary.mjs +16 -15
- package/esm2020/controls/wizard/wizard.mjs +25 -19
- package/esm2020/controls/wizard/wizarditem.mjs +6 -6
- package/esm2020/enums/ButtonRoleType.mjs +3 -3
- package/esm2020/enums/ControlHeight.mjs +4 -4
- package/esm2020/enums/IconType.mjs +4 -4
- package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.mjs +3 -3
- package/esm2020/interfaces/ISacLabelSizes.mjs +3 -3
- package/esm2020/interfaces/ISacLanguageService.mjs +3 -3
- package/esm2020/interfaces/ISacLocalisationService.mjs +3 -3
- package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -3
- package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
- package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -3
- package/esm2020/interfaces/iconfirmcomponent.mjs +3 -3
- package/esm2020/interfaces/idatetimecontrol.mjs +3 -3
- package/esm2020/interfaces/iuploadcontrol.mjs +3 -3
- package/esm2020/interfaces/treeviewaction.interface.mjs +3 -3
- package/esm2020/models/languagemodel.mjs +8 -6
- package/esm2020/public_api.mjs +4 -4
- package/esm2020/services/index.mjs +3 -3
- package/esm2020/services/sac-configuration.service.mjs +11 -9
- package/esm2020/services/sac-filebrowser.service.mjs +65 -51
- package/esm2020/services/sac-icon.service.mjs +1 -1
- package/esm2020/services/sac-language.service.mjs +10 -6
- package/esm2020/services/sac-localisation.service.mjs +13 -9
- package/esm2020/services/sac-validationkey.service.mjs +108 -6
- package/esm2020/utilities/convertion.mjs +10 -8
- package/esm2020/utilities/datatypes.mjs +8 -6
- package/esm2020/utilities/enums.mjs +4 -10
- package/esm2020/utilities/guid.mjs +8 -8
- package/esm2020/utilities/interpolation.mjs +21 -14
- package/esm2020/utilities/popuphelper.mjs +52 -32
- package/esm2020/utilities/positioncalculator.mjs +61 -0
- package/esm2020/utilities/positioncalculator.ngfactory.mjs +3 -0
- package/esm2020/utilities/positioncalculator.ngsummary.mjs +3 -0
- package/esm2020/utilities/positionelements.mjs +32 -0
- package/esm2020/utilities/positionelements.ngfactory.mjs +3 -0
- package/esm2020/utilities/positionelements.ngsummary.mjs +3 -0
- package/esm2020/utilities/testingattribute.pipe.mjs +19 -6
- package/esm2020/utilities/utilities.module.ngfactory.mjs +1 -1
- package/esm2020/validation/email.validator.mjs +11 -3
- package/esm2020/validation/equals.validator.mjs +12 -3
- package/esm2020/validation/index.mjs +3 -3
- package/esm2020/validation/invaliddate.validator.mjs +11 -3
- package/esm2020/validation/isDateValid.mjs +12 -10
- package/esm2020/validation/maxdate.validator.mjs +13 -4
- package/esm2020/validation/maxtime.validator.mjs +13 -4
- package/esm2020/validation/maxvalue.validator.mjs +12 -3
- package/esm2020/validation/mindate.validator.mjs +13 -4
- package/esm2020/validation/minfiles.validator.mjs +13 -4
- package/esm2020/validation/mintextlength.validator.mjs +11 -4
- package/esm2020/validation/mintime.validator.mjs +13 -4
- package/esm2020/validation/minvalue.validator.mjs +12 -3
- package/esm2020/validation/multilanguagerequired.validator.mjs +12 -3
- package/esm2020/validation/multilanguagerequiredany.validator.mjs +12 -3
- package/esm2020/validation/notequals.validator.mjs +12 -3
- package/esm2020/validation/pattern.validator.mjs +12 -3
- package/esm2020/validation/required.validator.mjs +11 -3
- package/esm2020/validation/validation.mjs +86 -102
- package/esm2020/validation/validationerrorcreator.mjs +13 -3
- package/esm2020/validation/validationerroritem.mjs +14 -12
- package/fesm2015/simpleangularcontrols-sac-common.mjs +2662 -2150
- package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-common.mjs +2662 -2150
- package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +9 -1
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacFileBrowserService.d.ts +43 -43
- package/interfaces/ISacFileBrowserService.d.ts.map +1 -1
- package/interfaces/ISacIconService.d.ts +28 -28
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/interfaces/ISacLabelSizes.d.ts +9 -6
- package/interfaces/ISacLabelSizes.d.ts.map +1 -1
- package/interfaces/ISacLanguageService.d.ts +3 -3
- package/interfaces/ISacLanguageService.d.ts.map +1 -1
- package/interfaces/ISacLocalisationService.d.ts +2 -2
- package/interfaces/ISacLocalisationService.d.ts.map +1 -1
- package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
- package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -1
- package/interfaces/iabstractcontrollabel.d.ts +4 -1
- package/interfaces/iabstractcontrollabel.d.ts.map +1 -1
- package/interfaces/iconfirmcomponent.d.ts +6 -6
- package/interfaces/iconfirmcomponent.d.ts.map +1 -1
- package/interfaces/idatetimecontrol.d.ts +10 -1
- package/interfaces/idatetimecontrol.d.ts.map +1 -1
- package/interfaces/iuploadcontrol.d.ts.map +1 -1
- package/interfaces/treeviewaction.interface.d.ts +9 -0
- package/interfaces/treeviewaction.interface.d.ts.map +1 -1
- package/models/languagemodel.d.ts +9 -9
- package/models/languagemodel.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -1
- package/public_api.d.ts.map +1 -1
- package/services/index.d.ts +3 -3
- package/services/index.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +8 -0
- package/services/sac-configuration.service.d.ts.map +1 -1
- package/services/sac-filebrowser.service.d.ts +97 -89
- package/services/sac-filebrowser.service.d.ts.map +1 -1
- package/services/sac-language.service.d.ts +2 -2
- package/services/sac-language.service.d.ts.map +1 -1
- package/services/sac-localisation.service.d.ts +11 -7
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.d.ts +152 -5
- package/services/sac-validationkey.service.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-13.0.0-rc.22.tgz +0 -0
- package/utilities/convertion.d.ts +4 -4
- package/utilities/convertion.d.ts.map +1 -1
- package/utilities/datatypes.d.ts +3 -3
- package/utilities/datatypes.d.ts.map +1 -1
- package/utilities/enums.d.ts +8 -1
- package/utilities/enums.d.ts.map +1 -1
- package/utilities/guid.d.ts +1 -1
- package/utilities/guid.d.ts.map +1 -1
- package/utilities/interpolation.d.ts +9 -8
- package/utilities/interpolation.d.ts.map +1 -1
- package/utilities/popuphelper.d.ts +47 -10
- package/utilities/popuphelper.d.ts.map +1 -1
- package/utilities/positioncalculator.d.ts +83 -0
- package/utilities/positioncalculator.d.ts.map +1 -0
- package/utilities/positioncalculator.ngfactory.d.ts +2 -0
- package/utilities/positioncalculator.ngfactory.d.ts.map +1 -0
- package/utilities/positioncalculator.ngsummary.d.ts +2 -0
- package/utilities/positioncalculator.ngsummary.d.ts.map +1 -0
- package/utilities/positionelements.d.ts +31 -0
- package/utilities/positionelements.d.ts.map +1 -0
- package/utilities/positionelements.ngfactory.d.ts +2 -0
- package/utilities/positionelements.ngfactory.d.ts.map +1 -0
- package/utilities/positionelements.ngsummary.d.ts +2 -0
- package/utilities/positionelements.ngsummary.d.ts.map +1 -0
- package/utilities/testingattribute.pipe.d.ts +16 -1
- package/utilities/testingattribute.pipe.d.ts.map +1 -1
- package/validation/email.validator.d.ts +7 -0
- package/validation/email.validator.d.ts.map +1 -1
- package/validation/equals.validator.d.ts +8 -0
- package/validation/equals.validator.d.ts.map +1 -1
- package/validation/index.d.ts.map +1 -1
- package/validation/invaliddate.validator.d.ts +7 -0
- package/validation/invaliddate.validator.d.ts.map +1 -1
- package/validation/isDateValid.d.ts +5 -2
- package/validation/isDateValid.d.ts.map +1 -1
- package/validation/maxdate.validator.d.ts +8 -0
- package/validation/maxdate.validator.d.ts.map +1 -1
- package/validation/maxtime.validator.d.ts +8 -0
- package/validation/maxtime.validator.d.ts.map +1 -1
- package/validation/maxvalue.validator.d.ts +8 -0
- package/validation/maxvalue.validator.d.ts.map +1 -1
- package/validation/mindate.validator.d.ts +8 -0
- package/validation/mindate.validator.d.ts.map +1 -1
- package/validation/minfiles.validator.d.ts +8 -0
- package/validation/minfiles.validator.d.ts.map +1 -1
- package/validation/mintextlength.validator.d.ts +8 -0
- package/validation/mintextlength.validator.d.ts.map +1 -1
- package/validation/mintime.validator.d.ts +8 -0
- package/validation/mintime.validator.d.ts.map +1 -1
- package/validation/minvalue.validator.d.ts +8 -0
- package/validation/minvalue.validator.d.ts.map +1 -1
- package/validation/multilanguagerequired.validator.d.ts +9 -1
- package/validation/multilanguagerequired.validator.d.ts.map +1 -1
- package/validation/multilanguagerequiredany.validator.d.ts +9 -1
- package/validation/multilanguagerequiredany.validator.d.ts.map +1 -1
- package/validation/notequals.validator.d.ts +8 -0
- package/validation/notequals.validator.d.ts.map +1 -1
- package/validation/pattern.validator.d.ts +8 -0
- package/validation/pattern.validator.d.ts.map +1 -1
- package/validation/required.validator.d.ts +7 -0
- package/validation/required.validator.d.ts.map +1 -1
- package/validation/validation.d.ts +83 -99
- package/validation/validation.d.ts.map +1 -1
- package/validation/validationerrorcreator.d.ts +9 -0
- package/validation/validationerrorcreator.d.ts.map +1 -1
- package/validation/validationerroritem.d.ts +16 -16
- package/validation/validationerroritem.d.ts.map +1 -1
- package/esm2020/utilities/positioning.mjs +0 -58
- package/esm2020/utilities/positioning.ngfactory.mjs +0 -3
- package/esm2020/utilities/positioning.ngsummary.mjs +0 -3
- package/simpleangularcontrols-sac-common-13.0.0-rc.20.tgz +0 -0
- package/utilities/positioning.d.ts +0 -83
- package/utilities/positioning.d.ts.map +0 -1
- package/utilities/positioning.ngfactory.d.ts +0 -2
- package/utilities/positioning.ngfactory.d.ts.map +0 -1
- package/utilities/positioning.ngsummary.d.ts +0 -2
- package/utilities/positioning.ngsummary.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function cov_11ofelmjl4(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basemodelcontrol.mjs";var hash="24cf47c5a73131b5f40094adda5d2f25643b85b1";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basemodelcontrol.mjs",statementMap:{"0":{start:{line:24,column:8},end:{line:24,column:33}},"1":{start:{line:29,column:8},end:{line:29,column:40}},"2":{start:{line:33,column:8},end:{line:33,column:25}},"3":{start:{line:37,column:8},end:{line:37,column:28}},"4":{start:{line:41,column:8},end:{line:41,column:35}},"5":{start:{line:45,column:8},end:{line:45,column:30}},"6":{start:{line:49,column:8},end:{line:49,column:27}},"7":{start:{line:53,column:8},end:{line:53,column:31}},"8":{start:{line:57,column:8},end:{line:57,column:43}},"9":{start:{line:61,column:8},end:{line:61,column:36}},"10":{start:{line:65,column:8},end:{line:65,column:30}},"11":{start:{line:69,column:8},end:{line:69,column:34}},"12":{start:{line:73,column:8},end:{line:73,column:34}},"13":{start:{line:77,column:8},end:{line:77,column:27}},"14":{start:{line:81,column:8},end:{line:81,column:32}},"15":{start:{line:85,column:8},end:{line:85,column:37}},"16":{start:{line:89,column:8},end:{line:89,column:32}},"17":{start:{line:93,column:8},end:{line:93,column:32}},"18":{start:{line:97,column:8},end:{line:97,column:32}},"19":{start:{line:101,column:8},end:{line:101,column:32}},"20":{start:{line:105,column:8},end:{line:105,column:32}},"21":{start:{line:109,column:8},end:{line:109,column:33}},"22":{start:{line:113,column:8},end:{line:113,column:33}},"23":{start:{line:117,column:8},end:{line:117,column:41}},"24":{start:{line:121,column:8},end:{line:121,column:40}},"25":{start:{line:125,column:8},end:{line:125,column:42}},"26":{start:{line:126,column:8},end:{line:126,column:37}},"27":{start:{line:127,column:8},end:{line:127,column:113}},"28":{start:{line:128,column:8},end:{line:128,column:134}},"29":{start:{line:129,column:8},end:{line:129,column:113}},"30":{start:{line:130,column:8},end:{line:130,column:86}},"31":{start:{line:138,column:8},end:{line:138,column:52}},"32":{start:{line:144,column:8},end:{line:146,column:9}},"33":{start:{line:145,column:12},end:{line:145,column:47}},"34":{start:{line:147,column:8},end:{line:147,column:27}},"35":{start:{line:153,column:8},end:{line:153,column:40}},"36":{start:{line:159,column:8},end:{line:164,column:9}},"37":{start:{line:160,column:12},end:{line:160,column:44}},"38":{start:{line:163,column:12},end:{line:163,column:63}},"39":{start:{line:170,column:8},end:{line:170,column:97}},"40":{start:{line:176,column:8},end:{line:176,column:51}},"41":{start:{line:182,column:8},end:{line:184,column:9}},"42":{start:{line:183,column:12},end:{line:183,column:44}},"43":{start:{line:185,column:8},end:{line:187,column:9}},"44":{start:{line:186,column:12},end:{line:186,column:57}},"45":{start:{line:188,column:8},end:{line:190,column:9}},"46":{start:{line:189,column:12},end:{line:189,column:64}},"47":{start:{line:191,column:8},end:{line:191,column:20}},"48":{start:{line:197,column:8},end:{line:197,column:27}},"49":{start:{line:203,column:8},end:{line:203,column:24}},"50":{start:{line:204,column:8},end:{line:204,column:36}},"51":{start:{line:210,column:8},end:{line:217,column:10}},"52":{start:{line:223,column:8},end:{line:225,column:9}},"53":{start:{line:224,column:12},end:{line:224,column:51}},"54":{start:{line:226,column:8},end:{line:226,column:29}},"55":{start:{line:232,column:8},end:{line:232,column:27}},"56":{start:{line:239,column:8},end:{line:241,column:9}},"57":{start:{line:240,column:12},end:{line:240,column:19}},"58":{start:{line:242,column:8},end:{line:242,column:48}},"59":{start:{line:243,column:8},end:{line:243,column:42}},"60":{start:{line:251,column:8},end:{line:256,column:9}},"61":{start:{line:252,column:12},end:{line:255,column:15}},"62":{start:{line:253,column:16},end:{line:253,column:34}},"63":{start:{line:254,column:16},end:{line:254,column:36}},"64":{start:{line:257,column:23},end:{line:257,column:44}},"65":{start:{line:258,column:8},end:{line:263,column:9}},"66":{start:{line:259,column:12},end:{line:262,column:15}},"67":{start:{line:260,column:16},end:{line:260,column:34}},"68":{start:{line:261,column:16},end:{line:261,column:36}},"69":{start:{line:264,column:21},end:{line:264,column:40}},"70":{start:{line:265,column:8},end:{line:270,column:9}},"71":{start:{line:266,column:12},end:{line:269,column:15}},"72":{start:{line:267,column:16},end:{line:267,column:34}},"73":{start:{line:268,column:16},end:{line:268,column:36}},"74":{start:{line:271,column:26},end:{line:271,column:41}},"75":{start:{line:273,column:27},end:{line:273,column:29}},"76":{start:{line:274,column:8},end:{line:278,column:9}},"77":{start:{line:275,column:12},end:{line:277,column:15}},"78":{start:{line:276,column:16},end:{line:276,column:34}},"79":{start:{line:279,column:8},end:{line:279,column:50}},"80":{start:{line:280,column:8},end:{line:280,column:88}},"81":{start:{line:287,column:28},end:{line:287,column:62}},"82":{start:{line:288,column:8},end:{line:296,column:9}},"83":{start:{line:289,column:25},end:{line:289,column:68}},"84":{start:{line:290,column:12},end:{line:290,column:58}},"85":{start:{line:293,column:12},end:{line:295,column:13}},"86":{start:{line:294,column:16},end:{line:294,column:53}},"87":{start:{line:297,column:8},end:{line:297,column:36}},"88":{start:{line:299,column:8},end:{line:299,column:29}},"89":{start:{line:301,column:8},end:{line:301,column:34}},"90":{start:{line:303,column:8},end:{line:303,column:34}},"91":{start:{line:305,column:8},end:{line:305,column:31}},"92":{start:{line:307,column:8},end:{line:307,column:33}},"93":{start:{line:308,column:8},end:{line:308,column:27}},"94":{start:{line:314,column:8},end:{line:314,column:29}},"95":{start:{line:315,column:8},end:{line:315,column:30}},"96":{start:{line:322,column:8},end:{line:322,column:48}},"97":{start:{line:322,column:40},end:{line:322,column:47}},"98":{start:{line:328,column:8},end:{line:328,column:47}},"99":{start:{line:328,column:39},end:{line:328,column:46}},"100":{start:{line:334,column:8},end:{line:334,column:28}},"101":{start:{line:340,column:8},end:{line:340,column:40}},"102":{start:{line:346,column:8},end:{line:346,column:23}},"103":{start:{line:352,column:22},end:{line:352,column:42}},"104":{start:{line:353,column:8},end:{line:353,column:21}},"105":{start:{line:359,column:8},end:{line:359,column:28}},"106":{start:{line:369,column:8},end:{line:369,column:21}},"107":{start:{line:375,column:8},end:{line:375,column:19}},"108":{start:{line:385,column:8},end:{line:387,column:9}},"109":{start:{line:386,column:12},end:{line:386,column:70}},"110":{start:{line:393,column:8},end:{line:395,column:9}},"111":{start:{line:394,column:12},end:{line:394,column:53}},"112":{start:{line:402,column:8},end:{line:409,column:9}},"113":{start:{line:403,column:12},end:{line:408,column:13}},"114":{start:{line:404,column:16},end:{line:404,column:71}},"115":{start:{line:407,column:16},end:{line:407,column:81}},"116":{start:{line:415,column:8},end:{line:422,column:9}},"117":{start:{line:416,column:12},end:{line:421,column:13}},"118":{start:{line:417,column:16},end:{line:417,column:65}},"119":{start:{line:420,column:16},end:{line:420,column:75}},"120":{start:{line:428,column:8},end:{line:435,column:9}},"121":{start:{line:429,column:12},end:{line:434,column:13}},"122":{start:{line:430,column:16},end:{line:430,column:71}},"123":{start:{line:433,column:16},end:{line:433,column:45}},"124":{start:{line:442,column:8},end:{line:449,column:9}},"125":{start:{line:443,column:12},end:{line:448,column:13}},"126":{start:{line:444,column:16},end:{line:444,column:63}},"127":{start:{line:447,column:16},end:{line:447,column:73}},"128":{start:{line:451,column:8},end:{line:458,column:9}},"129":{start:{line:452,column:12},end:{line:457,column:13}},"130":{start:{line:453,column:16},end:{line:453,column:63}},"131":{start:{line:456,column:16},end:{line:456,column:73}},"132":{start:{line:460,column:8},end:{line:467,column:9}},"133":{start:{line:461,column:12},end:{line:466,column:13}},"134":{start:{line:462,column:16},end:{line:462,column:63}},"135":{start:{line:465,column:16},end:{line:465,column:73}},"136":{start:{line:469,column:8},end:{line:476,column:9}},"137":{start:{line:470,column:12},end:{line:475,column:13}},"138":{start:{line:471,column:16},end:{line:471,column:63}},"139":{start:{line:474,column:16},end:{line:474,column:73}},"140":{start:{line:478,column:8},end:{line:485,column:9}},"141":{start:{line:479,column:12},end:{line:484,column:13}},"142":{start:{line:480,column:16},end:{line:480,column:63}},"143":{start:{line:483,column:16},end:{line:483,column:73}},"144":{start:{line:487,column:8},end:{line:494,column:9}},"145":{start:{line:488,column:12},end:{line:493,column:13}},"146":{start:{line:489,column:16},end:{line:489,column:65}},"147":{start:{line:492,column:16},end:{line:492,column:75}},"148":{start:{line:497,column:8},end:{line:504,column:9}},"149":{start:{line:498,column:12},end:{line:503,column:13}},"150":{start:{line:499,column:16},end:{line:499,column:83}},"151":{start:{line:502,column:16},end:{line:502,column:93}},"152":{start:{line:507,column:0},end:{line:507,column:252}},"153":{start:{line:508,column:0},end:{line:508,column:691}},"154":{start:{line:509,column:0},end:{line:551,column:20}},"155":{start:{line:511,column:42},end:{line:513,column:45}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:38},end:{line:131,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:117,column:31},end:{line:117,column:32}},loc:{start:{line:117,column:37},end:{line:117,column:40}},line:117},"2":{name:"(anonymous_2)",decl:{start:{line:121,column:30},end:{line:121,column:31}},loc:{start:{line:121,column:36},end:{line:121,column:39}},line:121},"3":{name:"(anonymous_3)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:30},end:{line:139,column:5}},line:137},"4":{name:"(anonymous_4)",decl:{start:{line:143,column:4},end:{line:143,column:5}},loc:{start:{line:143,column:16},end:{line:148,column:5}},line:143},"5":{name:"(anonymous_5)",decl:{start:{line:152,column:4},end:{line:152,column:5}},loc:{start:{line:152,column:29},end:{line:154,column:5}},line:152},"6":{name:"(anonymous_6)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:34},end:{line:165,column:5}},line:158},"7":{name:"(anonymous_7)",decl:{start:{line:169,column:4},end:{line:169,column:5}},loc:{start:{line:169,column:18},end:{line:171,column:5}},line:169},"8":{name:"(anonymous_8)",decl:{start:{line:175,column:4},end:{line:175,column:5}},loc:{start:{line:175,column:21},end:{line:177,column:5}},line:175},"9":{name:"(anonymous_9)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:31},end:{line:192,column:5}},line:181},"10":{name:"(anonymous_10)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:16},end:{line:198,column:5}},line:196},"11":{name:"(anonymous_11)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:17},end:{line:205,column:5}},line:202},"12":{name:"(anonymous_12)",decl:{start:{line:209,column:4},end:{line:209,column:5}},loc:{start:{line:209,column:21},end:{line:218,column:5}},line:209},"13":{name:"(anonymous_13)",decl:{start:{line:222,column:4},end:{line:222,column:5}},loc:{start:{line:222,column:18},end:{line:227,column:5}},line:222},"14":{name:"(anonymous_14)",decl:{start:{line:231,column:4},end:{line:231,column:5}},loc:{start:{line:231,column:16},end:{line:233,column:5}},line:231},"15":{name:"(anonymous_15)",decl:{start:{line:238,column:4},end:{line:238,column:5}},loc:{start:{line:238,column:17},end:{line:244,column:5}},line:238},"16":{name:"(anonymous_16)",decl:{start:{line:250,column:4},end:{line:250,column:5}},loc:{start:{line:250,column:22},end:{line:281,column:5}},line:250},"17":{name:"(anonymous_17)",decl:{start:{line:252,column:34},end:{line:252,column:35}},loc:{start:{line:252,column:48},end:{line:255,column:13}},line:252},"18":{name:"(anonymous_18)",decl:{start:{line:259,column:34},end:{line:259,column:35}},loc:{start:{line:259,column:48},end:{line:262,column:13}},line:259},"19":{name:"(anonymous_19)",decl:{start:{line:266,column:34},end:{line:266,column:35}},loc:{start:{line:266,column:48},end:{line:269,column:13}},line:266},"20":{name:"(anonymous_20)",decl:{start:{line:275,column:41},end:{line:275,column:42}},loc:{start:{line:275,column:51},end:{line:277,column:13}},line:275},"21":{name:"(anonymous_21)",decl:{start:{line:285,column:4},end:{line:285,column:5}},loc:{start:{line:285,column:15},end:{line:309,column:5}},line:285},"22":{name:"(anonymous_22)",decl:{start:{line:313,column:4},end:{line:313,column:5}},loc:{start:{line:313,column:14},end:{line:316,column:5}},line:313},"23":{name:"(anonymous_23)",decl:{start:{line:321,column:4},end:{line:321,column:5}},loc:{start:{line:321,column:25},end:{line:323,column:5}},line:321},"24":{name:"(anonymous_24)",decl:{start:{line:322,column:31},end:{line:322,column:32}},loc:{start:{line:322,column:40},end:{line:322,column:47}},line:322},"25":{name:"(anonymous_25)",decl:{start:{line:327,column:4},end:{line:327,column:5}},loc:{start:{line:327,column:26},end:{line:329,column:5}},line:327},"26":{name:"(anonymous_26)",decl:{start:{line:328,column:30},end:{line:328,column:31}},loc:{start:{line:328,column:39},end:{line:328,column:46}},line:328},"27":{name:"(anonymous_27)",decl:{start:{line:333,column:4},end:{line:333,column:5}},loc:{start:{line:333,column:34},end:{line:335,column:5}},line:333},"28":{name:"(anonymous_28)",decl:{start:{line:339,column:4},end:{line:339,column:5}},loc:{start:{line:339,column:33},end:{line:341,column:5}},line:339},"29":{name:"(anonymous_29)",decl:{start:{line:345,column:4},end:{line:345,column:5}},loc:{start:{line:345,column:16},end:{line:347,column:5}},line:345},"30":{name:"(anonymous_30)",decl:{start:{line:351,column:4},end:{line:351,column:5}},loc:{start:{line:351,column:16},end:{line:354,column:5}},line:351},"31":{name:"(anonymous_31)",decl:{start:{line:358,column:4},end:{line:358,column:5}},loc:{start:{line:358,column:22},end:{line:360,column:5}},line:358},"32":{name:"(anonymous_32)",decl:{start:{line:368,column:4},end:{line:368,column:5}},loc:{start:{line:368,column:29},end:{line:370,column:5}},line:368},"33":{name:"(anonymous_33)",decl:{start:{line:374,column:4},end:{line:374,column:5}},loc:{start:{line:374,column:23},end:{line:376,column:5}},line:374},"34":{name:"(anonymous_34)",decl:{start:{line:380,column:4},end:{line:380,column:5}},loc:{start:{line:380,column:18},end:{line:380,column:21}},line:380},"35":{name:"(anonymous_35)",decl:{start:{line:384,column:4},end:{line:384,column:5}},loc:{start:{line:384,column:29},end:{line:388,column:5}},line:384},"36":{name:"(anonymous_36)",decl:{start:{line:391,column:4},end:{line:391,column:5}},loc:{start:{line:391,column:27},end:{line:396,column:5}},line:391},"37":{name:"(anonymous_37)",decl:{start:{line:400,column:4},end:{line:400,column:5}},loc:{start:{line:400,column:25},end:{line:410,column:5}},line:400},"38":{name:"(anonymous_38)",decl:{start:{line:414,column:4},end:{line:414,column:5}},loc:{start:{line:414,column:22},end:{line:423,column:5}},line:414},"39":{name:"(anonymous_39)",decl:{start:{line:427,column:4},end:{line:427,column:5}},loc:{start:{line:427,column:25},end:{line:436,column:5}},line:427},"40":{name:"(anonymous_40)",decl:{start:{line:440,column:4},end:{line:440,column:5}},loc:{start:{line:440,column:20},end:{line:495,column:5}},line:440},"41":{name:"(anonymous_41)",decl:{start:{line:496,column:4},end:{line:496,column:5}},loc:{start:{line:496,column:24},end:{line:505,column:5}},line:496},"42":{name:"(anonymous_42)",decl:{start:{line:511,column:28},end:{line:511,column:29}},loc:{start:{line:511,column:40},end:{line:513,column:47}},line:511}},branchMap:{"0":{loc:{start:{line:144,column:8},end:{line:146,column:9}},type:"if",locations:[{start:{line:144,column:8},end:{line:146,column:9}},{start:{line:144,column:8},end:{line:146,column:9}}],line:144},"1":{loc:{start:{line:144,column:12},end:{line:144,column:67}},type:"binary-expr",locations:[{start:{line:144,column:12},end:{line:144,column:35}},{start:{line:144,column:39},end:{line:144,column:67}}],line:144},"2":{loc:{start:{line:159,column:8},end:{line:164,column:9}},type:"if",locations:[{start:{line:159,column:8},end:{line:164,column:9}},{start:{line:159,column:8},end:{line:164,column:9}}],line:159},"3":{loc:{start:{line:159,column:12},end:{line:159,column:49}},type:"binary-expr",locations:[{start:{line:159,column:12},end:{line:159,column:26}},{start:{line:159,column:30},end:{line:159,column:49}}],line:159},"4":{loc:{start:{line:170,column:15},end:{line:170,column:96}},type:"binary-expr",locations:[{start:{line:170,column:15},end:{line:170,column:43}},{start:{line:170,column:47},end:{line:170,column:70}},{start:{line:170,column:74},end:{line:170,column:96}}],line:170},"5":{loc:{start:{line:176,column:15},end:{line:176,column:50}},type:"binary-expr",locations:[{start:{line:176,column:15},end:{line:176,column:33}},{start:{line:176,column:37},end:{line:176,column:50}}],line:176},"6":{loc:{start:{line:182,column:8},end:{line:184,column:9}},type:"if",locations:[{start:{line:182,column:8},end:{line:184,column:9}},{start:{line:182,column:8},end:{line:184,column:9}}],line:182},"7":{loc:{start:{line:185,column:8},end:{line:187,column:9}},type:"if",locations:[{start:{line:185,column:8},end:{line:187,column:9}},{start:{line:185,column:8},end:{line:187,column:9}}],line:185},"8":{loc:{start:{line:185,column:12},end:{line:185,column:85}},type:"binary-expr",locations:[{start:{line:185,column:12},end:{line:185,column:36}},{start:{line:185,column:40},end:{line:185,column:85}}],line:185},"9":{loc:{start:{line:188,column:8},end:{line:190,column:9}},type:"if",locations:[{start:{line:188,column:8},end:{line:190,column:9}},{start:{line:188,column:8},end:{line:190,column:9}}],line:188},"10":{loc:{start:{line:223,column:8},end:{line:225,column:9}},type:"if",locations:[{start:{line:223,column:8},end:{line:225,column:9}},{start:{line:223,column:8},end:{line:225,column:9}}],line:223},"11":{loc:{start:{line:223,column:12},end:{line:223,column:67}},type:"binary-expr",locations:[{start:{line:223,column:12},end:{line:223,column:35}},{start:{line:223,column:39},end:{line:223,column:67}}],line:223},"12":{loc:{start:{line:239,column:8},end:{line:241,column:9}},type:"if",locations:[{start:{line:239,column:8},end:{line:241,column:9}},{start:{line:239,column:8},end:{line:241,column:9}}],line:239},"13":{loc:{start:{line:251,column:8},end:{line:256,column:9}},type:"if",locations:[{start:{line:251,column:8},end:{line:256,column:9}},{start:{line:251,column:8},end:{line:256,column:9}}],line:251},"14":{loc:{start:{line:251,column:12},end:{line:251,column:81}},type:"binary-expr",locations:[{start:{line:251,column:12},end:{line:251,column:47}},{start:{line:251,column:51},end:{line:251,column:81}}],line:251},"15":{loc:{start:{line:258,column:8},end:{line:263,column:9}},type:"if",locations:[{start:{line:258,column:8},end:{line:263,column:9}},{start:{line:258,column:8},end:{line:263,column:9}}],line:258},"16":{loc:{start:{line:265,column:8},end:{line:270,column:9}},type:"if",locations:[{start:{line:265,column:8},end:{line:270,column:9}},{start:{line:265,column:8},end:{line:270,column:9}}],line:265},"17":{loc:{start:{line:274,column:8},end:{line:278,column:9}},type:"if",locations:[{start:{line:274,column:8},end:{line:278,column:9}},{start:{line:274,column:8},end:{line:278,column:9}}],line:274},"18":{loc:{start:{line:274,column:12},end:{line:274,column:79}},type:"binary-expr",locations:[{start:{line:274,column:12},end:{line:274,column:41}},{start:{line:274,column:45},end:{line:274,column:79}}],line:274},"19":{loc:{start:{line:288,column:8},end:{line:296,column:9}},type:"if",locations:[{start:{line:288,column:8},end:{line:296,column:9}},{start:{line:288,column:8},end:{line:296,column:9}}],line:288},"20":{loc:{start:{line:293,column:12},end:{line:295,column:13}},type:"if",locations:[{start:{line:293,column:12},end:{line:295,column:13}},{start:{line:293,column:12},end:{line:295,column:13}}],line:293},"21":{loc:{start:{line:385,column:8},end:{line:387,column:9}},type:"if",locations:[{start:{line:385,column:8},end:{line:387,column:9}},{start:{line:385,column:8},end:{line:387,column:9}}],line:385},"22":{loc:{start:{line:393,column:8},end:{line:395,column:9}},type:"if",locations:[{start:{line:393,column:8},end:{line:395,column:9}},{start:{line:393,column:8},end:{line:395,column:9}}],line:393},"23":{loc:{start:{line:402,column:8},end:{line:409,column:9}},type:"if",locations:[{start:{line:402,column:8},end:{line:409,column:9}},{start:{line:402,column:8},end:{line:409,column:9}}],line:402},"24":{loc:{start:{line:403,column:12},end:{line:408,column:13}},type:"if",locations:[{start:{line:403,column:12},end:{line:408,column:13}},{start:{line:403,column:12},end:{line:408,column:13}}],line:403},"25":{loc:{start:{line:415,column:8},end:{line:422,column:9}},type:"if",locations:[{start:{line:415,column:8},end:{line:422,column:9}},{start:{line:415,column:8},end:{line:422,column:9}}],line:415},"26":{loc:{start:{line:416,column:12},end:{line:421,column:13}},type:"if",locations:[{start:{line:416,column:12},end:{line:421,column:13}},{start:{line:416,column:12},end:{line:421,column:13}}],line:416},"27":{loc:{start:{line:428,column:8},end:{line:435,column:9}},type:"if",locations:[{start:{line:428,column:8},end:{line:435,column:9}},{start:{line:428,column:8},end:{line:435,column:9}}],line:428},"28":{loc:{start:{line:429,column:12},end:{line:434,column:13}},type:"if",locations:[{start:{line:429,column:12},end:{line:434,column:13}},{start:{line:429,column:12},end:{line:434,column:13}}],line:429},"29":{loc:{start:{line:442,column:8},end:{line:449,column:9}},type:"if",locations:[{start:{line:442,column:8},end:{line:449,column:9}},{start:{line:442,column:8},end:{line:449,column:9}}],line:442},"30":{loc:{start:{line:443,column:12},end:{line:448,column:13}},type:"if",locations:[{start:{line:443,column:12},end:{line:448,column:13}},{start:{line:443,column:12},end:{line:448,column:13}}],line:443},"31":{loc:{start:{line:451,column:8},end:{line:458,column:9}},type:"if",locations:[{start:{line:451,column:8},end:{line:458,column:9}},{start:{line:451,column:8},end:{line:458,column:9}}],line:451},"32":{loc:{start:{line:452,column:12},end:{line:457,column:13}},type:"if",locations:[{start:{line:452,column:12},end:{line:457,column:13}},{start:{line:452,column:12},end:{line:457,column:13}}],line:452},"33":{loc:{start:{line:460,column:8},end:{line:467,column:9}},type:"if",locations:[{start:{line:460,column:8},end:{line:467,column:9}},{start:{line:460,column:8},end:{line:467,column:9}}],line:460},"34":{loc:{start:{line:461,column:12},end:{line:466,column:13}},type:"if",locations:[{start:{line:461,column:12},end:{line:466,column:13}},{start:{line:461,column:12},end:{line:466,column:13}}],line:461},"35":{loc:{start:{line:469,column:8},end:{line:476,column:9}},type:"if",locations:[{start:{line:469,column:8},end:{line:476,column:9}},{start:{line:469,column:8},end:{line:476,column:9}}],line:469},"36":{loc:{start:{line:470,column:12},end:{line:475,column:13}},type:"if",locations:[{start:{line:470,column:12},end:{line:475,column:13}},{start:{line:470,column:12},end:{line:475,column:13}}],line:470},"37":{loc:{start:{line:478,column:8},end:{line:485,column:9}},type:"if",locations:[{start:{line:478,column:8},end:{line:485,column:9}},{start:{line:478,column:8},end:{line:485,column:9}}],line:478},"38":{loc:{start:{line:479,column:12},end:{line:484,column:13}},type:"if",locations:[{start:{line:479,column:12},end:{line:484,column:13}},{start:{line:479,column:12},end:{line:484,column:13}}],line:479},"39":{loc:{start:{line:487,column:8},end:{line:494,column:9}},type:"if",locations:[{start:{line:487,column:8},end:{line:494,column:9}},{start:{line:487,column:8},end:{line:494,column:9}}],line:487},"40":{loc:{start:{line:488,column:12},end:{line:493,column:13}},type:"if",locations:[{start:{line:488,column:12},end:{line:493,column:13}},{start:{line:488,column:12},end:{line:493,column:13}}],line:488},"41":{loc:{start:{line:497,column:8},end:{line:504,column:9}},type:"if",locations:[{start:{line:497,column:8},end:{line:504,column:9}},{start:{line:497,column:8},end:{line:504,column:9}}],line:497},"42":{loc:{start:{line:498,column:12},end:{line:503,column:13}},type:"if",locations:[{start:{line:498,column:12},end:{line:503,column:13}},{start:{line:498,column:12},end:{line:503,column:13}}],line:498}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0]},inputSourceMap:{version:3,file:"basemodelcontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basemodelcontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { ControlHeight } from '../enums/ControlHeight';\nimport { ISacConfigurationService } from '../interfaces/ISacConfigurationService';\nimport { ISacIconService } from '../interfaces/ISacIconService';\nimport { ISacLabelSizes } from '../interfaces/ISacLabelSizes';\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\nimport { IAbstractControlLabelExtension } from '../interfaces/iabstractcontrollabel';\nimport {\n SACICON_SERVICE,\n SACVALIDATIONKEY_SERVICE,\n SacDefaultIconService,\n SacDefaultValidationKeyService,\n} from '../services';\nimport { SACCONFIGURATION_SERVICE, SacDefaultConfigurationService } from '../services/sac-configuration.service';\nimport { SACLOCALISATION_SERVICE, SacDefaultLocalisationService } from '../services/sac-localisation.service';\nimport { convertToBoolean } from '../utilities/convertion';\nimport { createGuid } from '../utilities/guid';\nimport { ValidationErrorItem } from '../validation';\nimport { Directive, Host, Injector, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlName,\n FormGroupDirective,\n NgControl,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/**\n * Abstract Klasse f\xFCr SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit\n */\n@Directive()\nexport abstract class SacBaseModelControl<VALUE> implements ControlValueAccessor, Validator, OnInit {\n // #region Properties\n\n /**\n * Inline Errors f\xFCr das Control\n */\n private _inlineerrorenabled: boolean | null = null;\n\n /**\n * Label Text\n */\n private _label: string = '';\n\n /**\n * Service for loading default settings for the controls\n */\n protected readonly configurationService: ISacConfigurationService;\n\n /**\n * Boolean Property dirty; default Wert - false\n */\n protected _dirty: boolean = false;\n\n /**\n * SacModel Form ist disabled\n */\n protected _disabledForm: boolean = false;\n\n /**\n * Validator\n */\n protected _onChange: () => void;\n\n /**\n * Boolean Property touched; default Wert - false\n */\n protected _touched: boolean = false;\n\n /**\n * Interne Variable, die den Wert des Controls h\xE4lt\n */\n protected _value: VALUE = null;\n\n /**\n * Form layout instance if exists\n */\n protected formlayout: SacFormLayoutCommon = null;\n\n /**\n * icon service\n */\n protected iconService: ISacIconService;\n\n /**\n * Service f\xFCr Error Localisation\n */\n protected lngResourceService: ISacLocalisationService;\n\n /**\n * ngControl\n */\n protected ngControl: FormControl;\n\n /**\n * ControlHeight enum for use in HTML markup\n */\n public ControlHeight: typeof ControlHeight = ControlHeight;\n\n /**\n * Defines the standard height of the components\n */\n @Input()\n public componentHeight: ControlHeight | null = null;\n\n /**\n * Deaktiviert das Input Control\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Deaktiviert das Label im Template\n */\n @Input() public disablelabel: boolean = false;\n\n /**\n * Identifier used for the E2E data attribute.\n */\n @Input()\n public e2eidentifier: string | null = null;\n\n /**\n * Text to support the user during input.\n */\n @Input() public helptext: string = '';\n\n /**\n * Mode for display helptext\n */\n @Input()\n public helptextmode: 'tooltip' | 'text' | null;\n\n /**\n * defines that error messages are displayed under the controls\n */\n @Input() public inlineError: boolean = true;\n\n /**\n * defines that the labels are displayed as adaptive labels\n */\n @Input() public isAdaptiveLabel: boolean = false;\n\n /**\n * default labe size for large devices\n */\n @Input()\n public labelSizeLg: number | null = null;\n\n /**\n * default label size for medium devices\n */\n @Input()\n public labelSizeMd: number | null = null;\n\n /**\n * default label size for small devices\n */\n @Input()\n public labelSizeSm: number | null = null;\n\n /**\n * default label size for extra large devices\n */\n @Input()\n public labelSizeXl: number | null = null;\n\n /**\n * default label column size\n */\n @Input()\n public labelSizeXs: number | null = null;\n\n /**\n * default label size for extra extra large devices\n */\n @Input()\n public labelSizeXxl: number | null = null;\n\n /**\n * Name des Controls\n */\n @Input() public name: string = createGuid();\n\n /**\n * Leere Implementation von \"propagateChange\". Muss gemacht werden, damit kein Fehler entsteht\n */\n public propagateChange: any = () => {};\n\n /**\n * Leere Implementation von \"propagateTouch\". Muss gemacht werden, damit kein Fehler entsteht\n */\n public propagateTouch: any = () => {};\n\n /**\n * Detach label text and tooltip from each other in Label so that label and tooltip can be aligned differently. This is in Bootstrap 3 not supported!\n */\n @Input()\n public splitlabelandhelptext: boolean | null = null;\n\n /**\n * Service to receive standard validation message keys and texts\n */\n public validationKeyService: ISacValidationKeyService;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n */\n constructor(@Host() formlayout: SacFormLayoutCommon, private readonly injector: Injector) {\n this.formlayout = formlayout;\n this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());\n this.lngResourceService = injector.get(\n SACLOCALISATION_SERVICE,\n new SacDefaultLocalisationService(this.validationKeyService)\n );\n\n this.configurationService = injector.get(SACCONFIGURATION_SERVICE, new SacDefaultConfigurationService());\n\n this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Get Icon for Helptext Tooltip\n */\n public get HelptextTooltipIcon(): string {\n return this.iconService.GenericHelptextIcon;\n }\n\n /**\n * Methode ergibt Boolean Wert f\xFCr dirty\n */\n public get dirty(): boolean {\n if (this.ngControl !== null && this.ngControl !== undefined) {\n this._dirty = this.ngControl.dirty;\n }\n\n return this._dirty;\n }\n\n /**\n * Show error messages inline\n */\n public get inlineerrorenabled(): boolean | null {\n return this._inlineerrorenabled;\n }\n\n /**\n * Aktiviert oder Deaktiviert die Inline Errors f\xFCr das Control\n */\n @Input()\n public set inlineerrorenabled(value: boolean | null) {\n if (value === null || value === undefined) {\n this._inlineerrorenabled = null;\n } else {\n this._inlineerrorenabled = convertToBoolean(value);\n }\n }\n\n /**\n * Methode ergibt boolean Wert wenn Form invalid oder nicht invalid ist\n */\n public get invalid(): boolean {\n return this.ngControl !== undefined && this.ngControl !== null && this.ngControl.invalid;\n }\n\n /**\n * Definiert ob das Control disabled ist\n */\n public get isdisabled(): boolean {\n return this._disabledForm || this.disabled;\n }\n\n /**\n * Returns whether the inline error messages are active for this control.\n */\n public get isinlineerrorenabled(): boolean {\n if (this._inlineerrorenabled !== null) {\n return this._inlineerrorenabled;\n }\n\n if (this.formlayout !== null && this.formlayout.IsInlineErrorEnabled !== null) {\n return this.formlayout?.IsInlineErrorEnabled;\n }\n\n if (this.configurationService.InlineErrorEnabled !== null) {\n return this.configurationService.InlineErrorEnabled;\n }\n\n return true;\n }\n\n /**\n * Definiert den Label Text\n */\n public get label(): string {\n return this._label;\n }\n\n /**\n * Definiert den Label Text\n */\n @Input() public set label(v: string) {\n this._label = v;\n this.UpdateLabelToControl();\n }\n\n /**\n * returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe\n */\n public get labelSizes(): ISacLabelSizes {\n return {\n labelSizeSm: this.labelSizeSm,\n labelSizeMd: this.labelSizeMd,\n labelSizeXs: this.labelSizeXs,\n labelSizeXl: this.labelSizeXl,\n labelSizeXxl: this.labelSizeXxl,\n labelSizeLg: this.labelSizeLg,\n };\n }\n\n /**\n * Methode ergibt Boolean Wert f\xFCr touched\n */\n public get touched(): boolean {\n if (this.ngControl !== null && this.ngControl !== undefined) {\n this._touched = this.ngControl.touched;\n }\n\n return this._touched;\n }\n\n /**\n * Get Methode f\xFCr NgModel Binding in Html Markup\n */\n public get value(): VALUE {\n return this._value;\n }\n\n /**\n * Set Methode f\xFCr NgModel Binding in Html Markup\n * Input wird ben\xF6tigt, damit der Wert auch \xFCber das Markup gesetzt werden kann.\n */\n @Input()\n public set value(v: VALUE) {\n if (this.disabled) {\n return;\n }\n\n this._value = this.ConvertInputValue(v);\n this.propagateChange(this._value);\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Methode ergibt Error anhand von gegebenen Kriterien\n */\n public GetErrorMessage(): Observable<string> {\n if (this.ngControl.errors === undefined || this.ngControl.errors === null) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const errors: ValidationErrors = this.ngControl.errors;\n\n if (errors.length === 0) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const keys: string[] = Object.keys(errors);\n\n if (keys.length <= 0) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const errorItem: ValidationErrorItem = errors[keys[0]];\n\n // Validation Parameters\n const parameters = {};\n if (errorItem.parameters !== null && errorItem.parameters !== undefined) {\n errorItem.parameters.forEach((v, k) => {\n parameters[k] = v;\n });\n }\n parameters['FIELD'] = errorItem.fieldName;\n\n return this.lngResourceService.GetString(errorItem.errorMessageKey, parameters);\n }\n\n /**\n * Init Event\n */\n public ngOnInit() {\n // receive form via formcontrolname or formcontrol instance\n const formControl = this.injector.get(NgControl, null);\n if (formControl instanceof FormControlName) {\n const form = this.injector.get(FormGroupDirective, null);\n this.ngControl = form.getControl(formControl);\n } else {\n if (formControl) {\n this.ngControl = formControl.control as FormControl;\n }\n }\n\n this.UpdateLabelToControl();\n\n // set label sizes from formlayout directive\n this.setLabelSizes();\n\n // set component heigth from fromlayout directive\n this.setComponentHeight();\n\n // set adaptive label property from formlayout directive\n this.setIsAdaptiveLabel();\n\n // set method to display helptext\n this.setHelpTextMode();\n\n // set SplitMode for Labels\n this.setLabelSplitMode();\n\n this.OnClassInit();\n }\n\n /**\n * Methode ergibt boolean touched = true\n */\n public onTouch(): void {\n this._touched = true;\n this.propagateTouch();\n }\n\n /**\n * Methode, damit andere Controls \xE4nderungen im Control mitbekommen k\xF6nnen\n * Zur \xC4nderungsinfo die Methode propagateChange aufrufen.\n */\n public registerOnChange(fn: any): void {\n this.propagateChange = (obj) => fn(obj);\n }\n\n /**\n * Methode, damit andere Controls \xE4nderungen mitbekommen, wenn das Control aktiviert (Focus) wird.\n */\n public registerOnTouched(fn: any): void {\n this.propagateTouch = (obj) => fn(obj);\n }\n\n /**\n * Methode registriert \xC4nderungen bei der Validierung\n */\n public registerOnValidatorChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n /**\n * Setzt das Control auf Disabled\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabledForm = isDisabled;\n }\n\n /**\n * Methode die den Wert des Inputs setzt\n */\n public setValue(v: VALUE): void {\n this.value = v;\n }\n\n /**\n * Validator Methode\n */\n public validate(c: AbstractControl): ValidationErrors | null {\n const error: ValidationErrors | null = this.validateData(c);\n return error;\n }\n\n /**\n * Abstrakte Validator Methode\n */\n public abstract validateData(c: AbstractControl): ValidationErrors | null;\n\n /**\n * Methode zum schreiben von Werten aus dem Model in das Control\n */\n public writeValue(value: VALUE) {\n this._value = value;\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n /**\n * Method can Overwriten in Parent Classes\n * @param value Wert welcher in den korrekten Typ konvertiert werden soll\n * @returns Wert im korrekten Typ\n */\n protected ConvertInputValue(value: VALUE): VALUE {\n return value;\n }\n\n /**\n * Methode ergibt Decimal Symbol\n */\n protected GetDecimalSymbol(): string {\n return '.';\n }\n\n /**\n * Method can be used to Set Properties at Class Init\n */\n protected OnClassInit(): void {}\n\n /**\n * Aktualisiert den NgModel Wert und die G\xFCltigkeit des Validators des Controls\n */\n protected UpdateValueAndValidity(): void {\n if (this.ngControl) {\n this.ngControl.updateValueAndValidity({ onlySelf: true });\n }\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n private UpdateLabelToControl(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IAbstractControlLabelExtension).controllabel = this.label;\n }\n }\n\n /**\n * Set component height from property or parent layout control\n */\n private setComponentHeight() {\n // set size extra small\n if (!this.componentHeight) {\n if (this.formlayout?.componentHeight) {\n this.componentHeight = this.formlayout.componentHeight;\n } else {\n this.componentHeight = this.configurationService.ComponentHeight;\n }\n }\n }\n\n /**\n * Set mode for helptext. Can be tooltip or text\n */\n private setHelpTextMode() {\n if (!this.helptextmode) {\n if (this.formlayout?.helptextmode) {\n this.helptextmode = this.formlayout.helptextmode;\n } else {\n this.helptextmode = this.configurationService.HelptextMode;\n }\n }\n }\n\n /**\n * Set adaptive label property from parent layout control\n */\n private setIsAdaptiveLabel() {\n if (!this.isAdaptiveLabel) {\n if (this.formlayout?.isAdaptiveLabel !== undefined) {\n this.isAdaptiveLabel = this.formlayout.isAdaptiveLabel;\n } else {\n this.isAdaptiveLabel = false;\n }\n }\n }\n\n /**\n * Set label sizes from property or parent layout control\n */\n private setLabelSizes() {\n // set size extra small\n if (!this.labelSizeXs) {\n if (this.formlayout?.labelSizeXs) {\n this.labelSizeXs = this.formlayout.labelSizeXs;\n } else {\n this.labelSizeXs = this.configurationService.LabelSizeXs;\n }\n }\n\n // set size small\n if (!this.labelSizeSm) {\n if (this.formlayout?.labelSizeSm) {\n this.labelSizeSm = this.formlayout.labelSizeSm;\n } else {\n this.labelSizeSm = this.configurationService.LabelSizeSm;\n }\n }\n\n // set size medium\n if (!this.labelSizeMd) {\n if (this.formlayout?.labelSizeMd) {\n this.labelSizeMd = this.formlayout.labelSizeMd;\n } else {\n this.labelSizeMd = this.configurationService.LabelSizeMd;\n }\n }\n\n // set size large\n if (!this.labelSizeLg) {\n if (this.formlayout?.labelSizeLg) {\n this.labelSizeLg = this.formlayout.labelSizeLg;\n } else {\n this.labelSizeLg = this.configurationService.LabelSizeLg;\n }\n }\n\n // set size extra large\n if (!this.labelSizeXl) {\n if (this.formlayout?.labelSizeXl) {\n this.labelSizeXl = this.formlayout.labelSizeXl;\n } else {\n this.labelSizeXl = this.configurationService.LabelSizeXl;\n }\n }\n\n // set size extra extra large\n if (!this.labelSizeXxl) {\n if (this.formlayout?.labelSizeXxl) {\n this.labelSizeXxl = this.formlayout.labelSizeXxl;\n } else {\n this.labelSizeXxl = this.configurationService.LabelSizeXxl;\n }\n }\n }\n\n private setLabelSplitMode() {\n if (!this.splitlabelandhelptext) {\n if (this.formlayout?.splitlabelandhelptext) {\n this.splitlabelandhelptext = this.formlayout.splitlabelandhelptext;\n } else {\n this.splitlabelandhelptext = this.configurationService.SplitLabelAndHelptext;\n }\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"24cf47c5a73131b5f40094adda5d2f25643b85b1"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
1
|
+
function cov_11ofelmjl4(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basemodelcontrol.mjs";var hash="f1fd0ac2f29939c6194eeb59705538d3bacaab92";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basemodelcontrol.mjs",statementMap:{"0":{start:{line:24,column:8},end:{line:24,column:33}},"1":{start:{line:29,column:8},end:{line:29,column:40}},"2":{start:{line:33,column:8},end:{line:33,column:25}},"3":{start:{line:37,column:8},end:{line:37,column:28}},"4":{start:{line:41,column:8},end:{line:41,column:35}},"5":{start:{line:45,column:8},end:{line:45,column:30}},"6":{start:{line:49,column:8},end:{line:49,column:27}},"7":{start:{line:53,column:8},end:{line:53,column:31}},"8":{start:{line:57,column:8},end:{line:57,column:43}},"9":{start:{line:61,column:8},end:{line:61,column:36}},"10":{start:{line:65,column:8},end:{line:65,column:30}},"11":{start:{line:69,column:8},end:{line:69,column:34}},"12":{start:{line:73,column:8},end:{line:73,column:34}},"13":{start:{line:77,column:8},end:{line:77,column:27}},"14":{start:{line:81,column:8},end:{line:81,column:32}},"15":{start:{line:85,column:8},end:{line:85,column:30}},"16":{start:{line:89,column:8},end:{line:89,column:32}},"17":{start:{line:93,column:8},end:{line:93,column:32}},"18":{start:{line:97,column:8},end:{line:97,column:32}},"19":{start:{line:101,column:8},end:{line:101,column:32}},"20":{start:{line:105,column:8},end:{line:105,column:32}},"21":{start:{line:109,column:8},end:{line:109,column:33}},"22":{start:{line:113,column:8},end:{line:113,column:33}},"23":{start:{line:117,column:8},end:{line:117,column:41}},"24":{start:{line:121,column:8},end:{line:121,column:40}},"25":{start:{line:125,column:8},end:{line:125,column:42}},"26":{start:{line:126,column:8},end:{line:126,column:37}},"27":{start:{line:127,column:8},end:{line:127,column:113}},"28":{start:{line:128,column:8},end:{line:128,column:134}},"29":{start:{line:129,column:8},end:{line:129,column:113}},"30":{start:{line:130,column:8},end:{line:130,column:86}},"31":{start:{line:138,column:8},end:{line:138,column:52}},"32":{start:{line:144,column:8},end:{line:146,column:9}},"33":{start:{line:145,column:12},end:{line:145,column:47}},"34":{start:{line:147,column:8},end:{line:147,column:27}},"35":{start:{line:153,column:8},end:{line:153,column:40}},"36":{start:{line:159,column:8},end:{line:164,column:9}},"37":{start:{line:160,column:12},end:{line:160,column:44}},"38":{start:{line:163,column:12},end:{line:163,column:63}},"39":{start:{line:170,column:8},end:{line:170,column:97}},"40":{start:{line:176,column:8},end:{line:176,column:51}},"41":{start:{line:182,column:8},end:{line:184,column:9}},"42":{start:{line:183,column:12},end:{line:183,column:44}},"43":{start:{line:185,column:8},end:{line:187,column:9}},"44":{start:{line:186,column:12},end:{line:186,column:57}},"45":{start:{line:188,column:8},end:{line:190,column:9}},"46":{start:{line:189,column:12},end:{line:189,column:64}},"47":{start:{line:191,column:8},end:{line:191,column:20}},"48":{start:{line:197,column:8},end:{line:197,column:27}},"49":{start:{line:203,column:8},end:{line:203,column:24}},"50":{start:{line:204,column:8},end:{line:204,column:36}},"51":{start:{line:210,column:8},end:{line:217,column:10}},"52":{start:{line:223,column:8},end:{line:225,column:9}},"53":{start:{line:224,column:12},end:{line:224,column:51}},"54":{start:{line:226,column:8},end:{line:226,column:29}},"55":{start:{line:232,column:8},end:{line:232,column:27}},"56":{start:{line:239,column:8},end:{line:241,column:9}},"57":{start:{line:240,column:12},end:{line:240,column:19}},"58":{start:{line:242,column:8},end:{line:242,column:48}},"59":{start:{line:243,column:8},end:{line:243,column:42}},"60":{start:{line:251,column:8},end:{line:256,column:9}},"61":{start:{line:252,column:12},end:{line:255,column:15}},"62":{start:{line:253,column:16},end:{line:253,column:34}},"63":{start:{line:254,column:16},end:{line:254,column:36}},"64":{start:{line:257,column:23},end:{line:257,column:44}},"65":{start:{line:258,column:8},end:{line:263,column:9}},"66":{start:{line:259,column:12},end:{line:262,column:15}},"67":{start:{line:260,column:16},end:{line:260,column:34}},"68":{start:{line:261,column:16},end:{line:261,column:36}},"69":{start:{line:264,column:21},end:{line:264,column:40}},"70":{start:{line:265,column:8},end:{line:270,column:9}},"71":{start:{line:266,column:12},end:{line:269,column:15}},"72":{start:{line:267,column:16},end:{line:267,column:34}},"73":{start:{line:268,column:16},end:{line:268,column:36}},"74":{start:{line:271,column:26},end:{line:271,column:41}},"75":{start:{line:273,column:27},end:{line:273,column:29}},"76":{start:{line:274,column:8},end:{line:278,column:9}},"77":{start:{line:275,column:12},end:{line:277,column:15}},"78":{start:{line:276,column:16},end:{line:276,column:34}},"79":{start:{line:279,column:8},end:{line:279,column:50}},"80":{start:{line:280,column:8},end:{line:280,column:88}},"81":{start:{line:287,column:28},end:{line:287,column:62}},"82":{start:{line:288,column:8},end:{line:296,column:9}},"83":{start:{line:289,column:25},end:{line:289,column:68}},"84":{start:{line:290,column:12},end:{line:290,column:58}},"85":{start:{line:293,column:12},end:{line:295,column:13}},"86":{start:{line:294,column:16},end:{line:294,column:53}},"87":{start:{line:297,column:8},end:{line:297,column:36}},"88":{start:{line:299,column:8},end:{line:299,column:29}},"89":{start:{line:301,column:8},end:{line:301,column:34}},"90":{start:{line:303,column:8},end:{line:303,column:31}},"91":{start:{line:305,column:8},end:{line:305,column:33}},"92":{start:{line:306,column:8},end:{line:306,column:27}},"93":{start:{line:312,column:8},end:{line:312,column:29}},"94":{start:{line:313,column:8},end:{line:313,column:30}},"95":{start:{line:321,column:8},end:{line:321,column:48}},"96":{start:{line:321,column:40},end:{line:321,column:47}},"97":{start:{line:328,column:8},end:{line:328,column:47}},"98":{start:{line:328,column:39},end:{line:328,column:46}},"99":{start:{line:335,column:8},end:{line:335,column:28}},"100":{start:{line:342,column:8},end:{line:342,column:40}},"101":{start:{line:349,column:8},end:{line:349,column:23}},"102":{start:{line:357,column:22},end:{line:357,column:42}},"103":{start:{line:358,column:8},end:{line:358,column:21}},"104":{start:{line:365,column:8},end:{line:365,column:28}},"105":{start:{line:375,column:8},end:{line:375,column:21}},"106":{start:{line:381,column:8},end:{line:381,column:19}},"107":{start:{line:391,column:8},end:{line:393,column:9}},"108":{start:{line:392,column:12},end:{line:392,column:70}},"109":{start:{line:399,column:8},end:{line:401,column:9}},"110":{start:{line:400,column:12},end:{line:400,column:53}},"111":{start:{line:408,column:8},end:{line:415,column:9}},"112":{start:{line:409,column:12},end:{line:414,column:13}},"113":{start:{line:410,column:16},end:{line:410,column:71}},"114":{start:{line:413,column:16},end:{line:413,column:81}},"115":{start:{line:421,column:8},end:{line:428,column:9}},"116":{start:{line:422,column:12},end:{line:427,column:13}},"117":{start:{line:423,column:16},end:{line:423,column:65}},"118":{start:{line:426,column:16},end:{line:426,column:75}},"119":{start:{line:434,column:8},end:{line:441,column:9}},"120":{start:{line:435,column:12},end:{line:440,column:13}},"121":{start:{line:436,column:16},end:{line:436,column:59}},"122":{start:{line:439,column:16},end:{line:439,column:69}},"123":{start:{line:443,column:8},end:{line:450,column:9}},"124":{start:{line:444,column:12},end:{line:444,column:35}},"125":{start:{line:445,column:12},end:{line:445,column:34}},"126":{start:{line:446,column:12},end:{line:446,column:34}},"127":{start:{line:447,column:12},end:{line:447,column:34}},"128":{start:{line:448,column:12},end:{line:448,column:34}},"129":{start:{line:449,column:12},end:{line:449,column:34}},"130":{start:{line:456,column:8},end:{line:456,column:28}},"131":{start:{line:458,column:8},end:{line:460,column:9}},"132":{start:{line:459,column:12},end:{line:459,column:19}},"133":{start:{line:462,column:8},end:{line:469,column:9}},"134":{start:{line:463,column:12},end:{line:468,column:13}},"135":{start:{line:464,column:16},end:{line:464,column:63}},"136":{start:{line:467,column:16},end:{line:467,column:73}},"137":{start:{line:471,column:8},end:{line:478,column:9}},"138":{start:{line:472,column:12},end:{line:477,column:13}},"139":{start:{line:473,column:16},end:{line:473,column:63}},"140":{start:{line:476,column:16},end:{line:476,column:73}},"141":{start:{line:480,column:8},end:{line:487,column:9}},"142":{start:{line:481,column:12},end:{line:486,column:13}},"143":{start:{line:482,column:16},end:{line:482,column:63}},"144":{start:{line:485,column:16},end:{line:485,column:73}},"145":{start:{line:489,column:8},end:{line:496,column:9}},"146":{start:{line:490,column:12},end:{line:495,column:13}},"147":{start:{line:491,column:16},end:{line:491,column:63}},"148":{start:{line:494,column:16},end:{line:494,column:73}},"149":{start:{line:498,column:8},end:{line:505,column:9}},"150":{start:{line:499,column:12},end:{line:504,column:13}},"151":{start:{line:500,column:16},end:{line:500,column:63}},"152":{start:{line:503,column:16},end:{line:503,column:73}},"153":{start:{line:507,column:8},end:{line:514,column:9}},"154":{start:{line:508,column:12},end:{line:513,column:13}},"155":{start:{line:509,column:16},end:{line:509,column:65}},"156":{start:{line:512,column:16},end:{line:512,column:75}},"157":{start:{line:520,column:8},end:{line:527,column:9}},"158":{start:{line:521,column:12},end:{line:526,column:13}},"159":{start:{line:522,column:16},end:{line:522,column:83}},"160":{start:{line:525,column:16},end:{line:525,column:93}},"161":{start:{line:530,column:0},end:{line:530,column:252}},"162":{start:{line:531,column:0},end:{line:531,column:679}},"163":{start:{line:532,column:0},end:{line:574,column:20}},"164":{start:{line:534,column:42},end:{line:536,column:45}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:38},end:{line:131,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:117,column:31},end:{line:117,column:32}},loc:{start:{line:117,column:37},end:{line:117,column:40}},line:117},"2":{name:"(anonymous_2)",decl:{start:{line:121,column:30},end:{line:121,column:31}},loc:{start:{line:121,column:36},end:{line:121,column:39}},line:121},"3":{name:"(anonymous_3)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:30},end:{line:139,column:5}},line:137},"4":{name:"(anonymous_4)",decl:{start:{line:143,column:4},end:{line:143,column:5}},loc:{start:{line:143,column:16},end:{line:148,column:5}},line:143},"5":{name:"(anonymous_5)",decl:{start:{line:152,column:4},end:{line:152,column:5}},loc:{start:{line:152,column:29},end:{line:154,column:5}},line:152},"6":{name:"(anonymous_6)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:34},end:{line:165,column:5}},line:158},"7":{name:"(anonymous_7)",decl:{start:{line:169,column:4},end:{line:169,column:5}},loc:{start:{line:169,column:18},end:{line:171,column:5}},line:169},"8":{name:"(anonymous_8)",decl:{start:{line:175,column:4},end:{line:175,column:5}},loc:{start:{line:175,column:21},end:{line:177,column:5}},line:175},"9":{name:"(anonymous_9)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:31},end:{line:192,column:5}},line:181},"10":{name:"(anonymous_10)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:16},end:{line:198,column:5}},line:196},"11":{name:"(anonymous_11)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:17},end:{line:205,column:5}},line:202},"12":{name:"(anonymous_12)",decl:{start:{line:209,column:4},end:{line:209,column:5}},loc:{start:{line:209,column:21},end:{line:218,column:5}},line:209},"13":{name:"(anonymous_13)",decl:{start:{line:222,column:4},end:{line:222,column:5}},loc:{start:{line:222,column:18},end:{line:227,column:5}},line:222},"14":{name:"(anonymous_14)",decl:{start:{line:231,column:4},end:{line:231,column:5}},loc:{start:{line:231,column:16},end:{line:233,column:5}},line:231},"15":{name:"(anonymous_15)",decl:{start:{line:238,column:4},end:{line:238,column:5}},loc:{start:{line:238,column:17},end:{line:244,column:5}},line:238},"16":{name:"(anonymous_16)",decl:{start:{line:250,column:4},end:{line:250,column:5}},loc:{start:{line:250,column:22},end:{line:281,column:5}},line:250},"17":{name:"(anonymous_17)",decl:{start:{line:252,column:34},end:{line:252,column:35}},loc:{start:{line:252,column:48},end:{line:255,column:13}},line:252},"18":{name:"(anonymous_18)",decl:{start:{line:259,column:34},end:{line:259,column:35}},loc:{start:{line:259,column:48},end:{line:262,column:13}},line:259},"19":{name:"(anonymous_19)",decl:{start:{line:266,column:34},end:{line:266,column:35}},loc:{start:{line:266,column:48},end:{line:269,column:13}},line:266},"20":{name:"(anonymous_20)",decl:{start:{line:275,column:41},end:{line:275,column:42}},loc:{start:{line:275,column:51},end:{line:277,column:13}},line:275},"21":{name:"(anonymous_21)",decl:{start:{line:285,column:4},end:{line:285,column:5}},loc:{start:{line:285,column:15},end:{line:307,column:5}},line:285},"22":{name:"(anonymous_22)",decl:{start:{line:311,column:4},end:{line:311,column:5}},loc:{start:{line:311,column:14},end:{line:314,column:5}},line:311},"23":{name:"(anonymous_23)",decl:{start:{line:320,column:4},end:{line:320,column:5}},loc:{start:{line:320,column:25},end:{line:322,column:5}},line:320},"24":{name:"(anonymous_24)",decl:{start:{line:321,column:31},end:{line:321,column:32}},loc:{start:{line:321,column:40},end:{line:321,column:47}},line:321},"25":{name:"(anonymous_25)",decl:{start:{line:327,column:4},end:{line:327,column:5}},loc:{start:{line:327,column:26},end:{line:329,column:5}},line:327},"26":{name:"(anonymous_26)",decl:{start:{line:328,column:30},end:{line:328,column:31}},loc:{start:{line:328,column:39},end:{line:328,column:46}},line:328},"27":{name:"(anonymous_27)",decl:{start:{line:334,column:4},end:{line:334,column:5}},loc:{start:{line:334,column:34},end:{line:336,column:5}},line:334},"28":{name:"(anonymous_28)",decl:{start:{line:341,column:4},end:{line:341,column:5}},loc:{start:{line:341,column:33},end:{line:343,column:5}},line:341},"29":{name:"(anonymous_29)",decl:{start:{line:348,column:4},end:{line:348,column:5}},loc:{start:{line:348,column:16},end:{line:350,column:5}},line:348},"30":{name:"(anonymous_30)",decl:{start:{line:356,column:4},end:{line:356,column:5}},loc:{start:{line:356,column:16},end:{line:359,column:5}},line:356},"31":{name:"(anonymous_31)",decl:{start:{line:364,column:4},end:{line:364,column:5}},loc:{start:{line:364,column:22},end:{line:366,column:5}},line:364},"32":{name:"(anonymous_32)",decl:{start:{line:374,column:4},end:{line:374,column:5}},loc:{start:{line:374,column:29},end:{line:376,column:5}},line:374},"33":{name:"(anonymous_33)",decl:{start:{line:380,column:4},end:{line:380,column:5}},loc:{start:{line:380,column:23},end:{line:382,column:5}},line:380},"34":{name:"(anonymous_34)",decl:{start:{line:386,column:4},end:{line:386,column:5}},loc:{start:{line:386,column:18},end:{line:386,column:21}},line:386},"35":{name:"(anonymous_35)",decl:{start:{line:390,column:4},end:{line:390,column:5}},loc:{start:{line:390,column:29},end:{line:394,column:5}},line:390},"36":{name:"(anonymous_36)",decl:{start:{line:397,column:4},end:{line:397,column:5}},loc:{start:{line:397,column:27},end:{line:402,column:5}},line:397},"37":{name:"(anonymous_37)",decl:{start:{line:406,column:4},end:{line:406,column:5}},loc:{start:{line:406,column:25},end:{line:416,column:5}},line:406},"38":{name:"(anonymous_38)",decl:{start:{line:420,column:4},end:{line:420,column:5}},loc:{start:{line:420,column:22},end:{line:429,column:5}},line:420},"39":{name:"(anonymous_39)",decl:{start:{line:433,column:4},end:{line:433,column:5}},loc:{start:{line:433,column:19},end:{line:451,column:5}},line:433},"40":{name:"(anonymous_40)",decl:{start:{line:455,column:4},end:{line:455,column:5}},loc:{start:{line:455,column:20},end:{line:515,column:5}},line:455},"41":{name:"(anonymous_41)",decl:{start:{line:519,column:4},end:{line:519,column:5}},loc:{start:{line:519,column:24},end:{line:528,column:5}},line:519},"42":{name:"(anonymous_42)",decl:{start:{line:534,column:28},end:{line:534,column:29}},loc:{start:{line:534,column:40},end:{line:536,column:47}},line:534}},branchMap:{"0":{loc:{start:{line:144,column:8},end:{line:146,column:9}},type:"if",locations:[{start:{line:144,column:8},end:{line:146,column:9}},{start:{line:144,column:8},end:{line:146,column:9}}],line:144},"1":{loc:{start:{line:144,column:12},end:{line:144,column:67}},type:"binary-expr",locations:[{start:{line:144,column:12},end:{line:144,column:35}},{start:{line:144,column:39},end:{line:144,column:67}}],line:144},"2":{loc:{start:{line:159,column:8},end:{line:164,column:9}},type:"if",locations:[{start:{line:159,column:8},end:{line:164,column:9}},{start:{line:159,column:8},end:{line:164,column:9}}],line:159},"3":{loc:{start:{line:159,column:12},end:{line:159,column:49}},type:"binary-expr",locations:[{start:{line:159,column:12},end:{line:159,column:26}},{start:{line:159,column:30},end:{line:159,column:49}}],line:159},"4":{loc:{start:{line:170,column:15},end:{line:170,column:96}},type:"binary-expr",locations:[{start:{line:170,column:15},end:{line:170,column:43}},{start:{line:170,column:47},end:{line:170,column:70}},{start:{line:170,column:74},end:{line:170,column:96}}],line:170},"5":{loc:{start:{line:176,column:15},end:{line:176,column:50}},type:"binary-expr",locations:[{start:{line:176,column:15},end:{line:176,column:33}},{start:{line:176,column:37},end:{line:176,column:50}}],line:176},"6":{loc:{start:{line:182,column:8},end:{line:184,column:9}},type:"if",locations:[{start:{line:182,column:8},end:{line:184,column:9}},{start:{line:182,column:8},end:{line:184,column:9}}],line:182},"7":{loc:{start:{line:185,column:8},end:{line:187,column:9}},type:"if",locations:[{start:{line:185,column:8},end:{line:187,column:9}},{start:{line:185,column:8},end:{line:187,column:9}}],line:185},"8":{loc:{start:{line:185,column:12},end:{line:185,column:85}},type:"binary-expr",locations:[{start:{line:185,column:12},end:{line:185,column:36}},{start:{line:185,column:40},end:{line:185,column:85}}],line:185},"9":{loc:{start:{line:188,column:8},end:{line:190,column:9}},type:"if",locations:[{start:{line:188,column:8},end:{line:190,column:9}},{start:{line:188,column:8},end:{line:190,column:9}}],line:188},"10":{loc:{start:{line:223,column:8},end:{line:225,column:9}},type:"if",locations:[{start:{line:223,column:8},end:{line:225,column:9}},{start:{line:223,column:8},end:{line:225,column:9}}],line:223},"11":{loc:{start:{line:223,column:12},end:{line:223,column:67}},type:"binary-expr",locations:[{start:{line:223,column:12},end:{line:223,column:35}},{start:{line:223,column:39},end:{line:223,column:67}}],line:223},"12":{loc:{start:{line:239,column:8},end:{line:241,column:9}},type:"if",locations:[{start:{line:239,column:8},end:{line:241,column:9}},{start:{line:239,column:8},end:{line:241,column:9}}],line:239},"13":{loc:{start:{line:251,column:8},end:{line:256,column:9}},type:"if",locations:[{start:{line:251,column:8},end:{line:256,column:9}},{start:{line:251,column:8},end:{line:256,column:9}}],line:251},"14":{loc:{start:{line:251,column:12},end:{line:251,column:81}},type:"binary-expr",locations:[{start:{line:251,column:12},end:{line:251,column:47}},{start:{line:251,column:51},end:{line:251,column:81}}],line:251},"15":{loc:{start:{line:258,column:8},end:{line:263,column:9}},type:"if",locations:[{start:{line:258,column:8},end:{line:263,column:9}},{start:{line:258,column:8},end:{line:263,column:9}}],line:258},"16":{loc:{start:{line:265,column:8},end:{line:270,column:9}},type:"if",locations:[{start:{line:265,column:8},end:{line:270,column:9}},{start:{line:265,column:8},end:{line:270,column:9}}],line:265},"17":{loc:{start:{line:274,column:8},end:{line:278,column:9}},type:"if",locations:[{start:{line:274,column:8},end:{line:278,column:9}},{start:{line:274,column:8},end:{line:278,column:9}}],line:274},"18":{loc:{start:{line:274,column:12},end:{line:274,column:79}},type:"binary-expr",locations:[{start:{line:274,column:12},end:{line:274,column:41}},{start:{line:274,column:45},end:{line:274,column:79}}],line:274},"19":{loc:{start:{line:288,column:8},end:{line:296,column:9}},type:"if",locations:[{start:{line:288,column:8},end:{line:296,column:9}},{start:{line:288,column:8},end:{line:296,column:9}}],line:288},"20":{loc:{start:{line:293,column:12},end:{line:295,column:13}},type:"if",locations:[{start:{line:293,column:12},end:{line:295,column:13}},{start:{line:293,column:12},end:{line:295,column:13}}],line:293},"21":{loc:{start:{line:391,column:8},end:{line:393,column:9}},type:"if",locations:[{start:{line:391,column:8},end:{line:393,column:9}},{start:{line:391,column:8},end:{line:393,column:9}}],line:391},"22":{loc:{start:{line:399,column:8},end:{line:401,column:9}},type:"if",locations:[{start:{line:399,column:8},end:{line:401,column:9}},{start:{line:399,column:8},end:{line:401,column:9}}],line:399},"23":{loc:{start:{line:408,column:8},end:{line:415,column:9}},type:"if",locations:[{start:{line:408,column:8},end:{line:415,column:9}},{start:{line:408,column:8},end:{line:415,column:9}}],line:408},"24":{loc:{start:{line:409,column:12},end:{line:414,column:13}},type:"if",locations:[{start:{line:409,column:12},end:{line:414,column:13}},{start:{line:409,column:12},end:{line:414,column:13}}],line:409},"25":{loc:{start:{line:421,column:8},end:{line:428,column:9}},type:"if",locations:[{start:{line:421,column:8},end:{line:428,column:9}},{start:{line:421,column:8},end:{line:428,column:9}}],line:421},"26":{loc:{start:{line:422,column:12},end:{line:427,column:13}},type:"if",locations:[{start:{line:422,column:12},end:{line:427,column:13}},{start:{line:422,column:12},end:{line:427,column:13}}],line:422},"27":{loc:{start:{line:434,column:8},end:{line:441,column:9}},type:"if",locations:[{start:{line:434,column:8},end:{line:441,column:9}},{start:{line:434,column:8},end:{line:441,column:9}}],line:434},"28":{loc:{start:{line:435,column:12},end:{line:440,column:13}},type:"if",locations:[{start:{line:435,column:12},end:{line:440,column:13}},{start:{line:435,column:12},end:{line:440,column:13}}],line:435},"29":{loc:{start:{line:443,column:8},end:{line:450,column:9}},type:"if",locations:[{start:{line:443,column:8},end:{line:450,column:9}},{start:{line:443,column:8},end:{line:450,column:9}}],line:443},"30":{loc:{start:{line:458,column:8},end:{line:460,column:9}},type:"if",locations:[{start:{line:458,column:8},end:{line:460,column:9}},{start:{line:458,column:8},end:{line:460,column:9}}],line:458},"31":{loc:{start:{line:462,column:8},end:{line:469,column:9}},type:"if",locations:[{start:{line:462,column:8},end:{line:469,column:9}},{start:{line:462,column:8},end:{line:469,column:9}}],line:462},"32":{loc:{start:{line:463,column:12},end:{line:468,column:13}},type:"if",locations:[{start:{line:463,column:12},end:{line:468,column:13}},{start:{line:463,column:12},end:{line:468,column:13}}],line:463},"33":{loc:{start:{line:471,column:8},end:{line:478,column:9}},type:"if",locations:[{start:{line:471,column:8},end:{line:478,column:9}},{start:{line:471,column:8},end:{line:478,column:9}}],line:471},"34":{loc:{start:{line:472,column:12},end:{line:477,column:13}},type:"if",locations:[{start:{line:472,column:12},end:{line:477,column:13}},{start:{line:472,column:12},end:{line:477,column:13}}],line:472},"35":{loc:{start:{line:480,column:8},end:{line:487,column:9}},type:"if",locations:[{start:{line:480,column:8},end:{line:487,column:9}},{start:{line:480,column:8},end:{line:487,column:9}}],line:480},"36":{loc:{start:{line:481,column:12},end:{line:486,column:13}},type:"if",locations:[{start:{line:481,column:12},end:{line:486,column:13}},{start:{line:481,column:12},end:{line:486,column:13}}],line:481},"37":{loc:{start:{line:489,column:8},end:{line:496,column:9}},type:"if",locations:[{start:{line:489,column:8},end:{line:496,column:9}},{start:{line:489,column:8},end:{line:496,column:9}}],line:489},"38":{loc:{start:{line:490,column:12},end:{line:495,column:13}},type:"if",locations:[{start:{line:490,column:12},end:{line:495,column:13}},{start:{line:490,column:12},end:{line:495,column:13}}],line:490},"39":{loc:{start:{line:498,column:8},end:{line:505,column:9}},type:"if",locations:[{start:{line:498,column:8},end:{line:505,column:9}},{start:{line:498,column:8},end:{line:505,column:9}}],line:498},"40":{loc:{start:{line:499,column:12},end:{line:504,column:13}},type:"if",locations:[{start:{line:499,column:12},end:{line:504,column:13}},{start:{line:499,column:12},end:{line:504,column:13}}],line:499},"41":{loc:{start:{line:507,column:8},end:{line:514,column:9}},type:"if",locations:[{start:{line:507,column:8},end:{line:514,column:9}},{start:{line:507,column:8},end:{line:514,column:9}}],line:507},"42":{loc:{start:{line:508,column:12},end:{line:513,column:13}},type:"if",locations:[{start:{line:508,column:12},end:{line:513,column:13}},{start:{line:508,column:12},end:{line:513,column:13}}],line:508},"43":{loc:{start:{line:520,column:8},end:{line:527,column:9}},type:"if",locations:[{start:{line:520,column:8},end:{line:527,column:9}},{start:{line:520,column:8},end:{line:527,column:9}}],line:520},"44":{loc:{start:{line:521,column:12},end:{line:526,column:13}},type:"if",locations:[{start:{line:521,column:12},end:{line:526,column:13}},{start:{line:521,column:12},end:{line:526,column:13}}],line:521}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0]},inputSourceMap:{version:3,file:"basemodelcontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basemodelcontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { ControlHeight } from '../enums/ControlHeight';\nimport { ISacConfigurationService } from '../interfaces/ISacConfigurationService';\nimport { ISacIconService } from '../interfaces/ISacIconService';\nimport { ISacLabelSizes } from '../interfaces/ISacLabelSizes';\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\nimport { IAbstractControlLabelExtension } from '../interfaces/iabstractcontrollabel';\nimport {\n SACICON_SERVICE,\n SACVALIDATIONKEY_SERVICE,\n SacDefaultIconService,\n SacDefaultValidationKeyService,\n} from '../services';\nimport { SACCONFIGURATION_SERVICE, SacDefaultConfigurationService } from '../services/sac-configuration.service';\nimport { SACLOCALISATION_SERVICE, SacDefaultLocalisationService } from '../services/sac-localisation.service';\nimport { convertToBoolean } from '../utilities/convertion';\nimport { createGuid } from '../utilities/guid';\nimport { ValidationErrorItem } from '../validation';\nimport { Directive, Host, Injector, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlName,\n FormGroupDirective,\n NgControl,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/**\n * Abstract class for SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit\n */\n@Directive()\nexport abstract class SacBaseModelControl<VALUE> implements ControlValueAccessor, Validator, OnInit {\n // #region Properties\n\n /**\n * Inline errors for the control\n */\n private _inlineerrorenabled: boolean | null = null;\n\n /**\n * Label Text\n */\n private _label = '';\n\n /**\n * Service for loading default settings for the controls\n */\n protected readonly configurationService: ISacConfigurationService;\n\n /**\n * Boolean property dirty; default value - false\n */\n protected _dirty = false;\n\n /**\n * SacModel form is disabled\n */\n protected _disabledForm = false;\n\n /**\n * Validator\n */\n protected _onChange: () => void;\n\n /**\n * Boolean property touched; default value - false\n */\n protected _touched = false;\n\n /**\n * Internal variable that holds the value of the control\n */\n protected _value: VALUE = null;\n\n /**\n * Form layout instance if exists\n */\n protected formlayout: SacFormLayoutCommon = null;\n\n /**\n * icon service\n */\n protected iconService: ISacIconService;\n\n /**\n * Service for error localisation\n */\n protected lngResourceService: ISacLocalisationService;\n\n /**\n * ngControl\n */\n protected ngControl: FormControl;\n\n /**\n * ControlHeight enum for use in HTML markup\n */\n public ControlHeight: typeof ControlHeight = ControlHeight;\n\n /**\n * Defines the standard height of the components\n */\n @Input()\n public componentHeight: ControlHeight | null = null;\n\n /**\n * Disables the input control\n */\n @Input() public disabled = false;\n\n /**\n * Disables the label in the template\n */\n @Input() public disablelabel = false;\n\n /**\n * Identifier used for the E2E data attribute.\n */\n @Input()\n public e2eidentifier: string | null = null;\n\n /**\n * Text to support the user during input.\n */\n @Input() public helptext = '';\n\n /**\n * Mode for display helptext\n */\n @Input()\n public helptextmode: 'tooltip' | 'text' | null;\n\n /**\n * defines that error messages are displayed under the controls\n */\n @Input() public inlineError = true;\n\n /**\n * Label Mode 'standard' | 'floating' or null (null = use global configuration)\n */\n @Input()\n public labelMode: 'standard' | 'floating' | null = null;\n\n /**\n * default labe size for large devices\n */\n @Input()\n public labelSizeLg: number | null = null;\n\n /**\n * default label size for medium devices\n */\n @Input()\n public labelSizeMd: number | null = null;\n\n /**\n * default label size for small devices\n */\n @Input()\n public labelSizeSm: number | null = null;\n\n /**\n * default label size for extra large devices\n */\n @Input()\n public labelSizeXl: number | null = null;\n\n /**\n * default label column size\n */\n @Input()\n public labelSizeXs: number | null = null;\n\n /**\n * default label size for extra extra large devices\n */\n @Input()\n public labelSizeXxl: number | null = null;\n\n /**\n * Name of the control\n */\n @Input() public name: string = createGuid();\n\n /**\n * Empty implementation of \"propagateChange\". Must be done to avoid errors\n */\n public propagateChange: any = () => {};\n\n /**\n * Empty implementation of \"propagateTouch\". Must be done to avoid errors\n */\n public propagateTouch: any = () => {};\n\n /**\n * Detach label text and tooltip from each other in Label so that label and tooltip can be aligned differently. This is in Bootstrap 3 not supported!\n */\n @Input()\n public splitlabelandhelptext: boolean | null = null;\n\n /**\n * Service to receive standard validation message keys and texts\n */\n public validationKeyService: ISacValidationKeyService;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n */\n constructor(\n @Host() formlayout: SacFormLayoutCommon,\n private readonly injector: Injector\n ) {\n this.formlayout = formlayout;\n this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());\n this.lngResourceService = injector.get(\n SACLOCALISATION_SERVICE,\n new SacDefaultLocalisationService(this.validationKeyService)\n );\n\n this.configurationService = injector.get(SACCONFIGURATION_SERVICE, new SacDefaultConfigurationService());\n\n this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Get Icon for Helptext Tooltip\n */\n public get HelptextTooltipIcon(): string {\n return this.iconService.GenericHelptextIcon;\n }\n\n /**\n * Method returns boolean value for dirty\n */\n public get dirty(): boolean {\n if (this.ngControl !== null && this.ngControl !== undefined) {\n this._dirty = this.ngControl.dirty;\n }\n\n return this._dirty;\n }\n\n /**\n * Show error messages inline\n */\n public get inlineerrorenabled(): boolean | null {\n return this._inlineerrorenabled;\n }\n\n /**\n * Enables or disables the inline errors for the control\n */\n @Input()\n public set inlineerrorenabled(value: boolean | null) {\n if (value === null || value === undefined) {\n this._inlineerrorenabled = null;\n } else {\n this._inlineerrorenabled = convertToBoolean(value);\n }\n }\n\n /**\n * Method returns a boolean value indicating whether the form is invalid\n */\n public get invalid(): boolean {\n return this.ngControl !== undefined && this.ngControl !== null && this.ngControl.invalid;\n }\n\n /**\n * Defines whether the control is disabled\n */\n public get isdisabled(): boolean {\n return this._disabledForm || this.disabled;\n }\n\n /**\n * Returns whether the inline error messages are active for this control.\n */\n public get isinlineerrorenabled(): boolean {\n if (this._inlineerrorenabled !== null) {\n return this._inlineerrorenabled;\n }\n\n if (this.formlayout !== null && this.formlayout.IsInlineErrorEnabled !== null) {\n return this.formlayout?.IsInlineErrorEnabled;\n }\n\n if (this.configurationService.InlineErrorEnabled !== null) {\n return this.configurationService.InlineErrorEnabled;\n }\n\n return true;\n }\n\n /**\n * Defines the label text\n */\n public get label(): string {\n return this._label;\n }\n\n /**\n * Sets the label text\n */\n @Input() public set label(v: string) {\n this._label = v;\n this.UpdateLabelToControl();\n }\n\n /**\n * Returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe\n */\n public get labelSizes(): ISacLabelSizes {\n return {\n labelSizeSm: this.labelSizeSm,\n labelSizeMd: this.labelSizeMd,\n labelSizeXs: this.labelSizeXs,\n labelSizeXl: this.labelSizeXl,\n labelSizeXxl: this.labelSizeXxl,\n labelSizeLg: this.labelSizeLg,\n };\n }\n\n /**\n * Method returns boolean value for touched\n */\n public get touched(): boolean {\n if (this.ngControl !== null && this.ngControl !== undefined) {\n this._touched = this.ngControl.touched;\n }\n\n return this._touched;\n }\n\n /**\n * Get method for NgModel binding in HTML markup\n */\n public get value(): VALUE {\n return this._value;\n }\n\n /**\n * Set method for NgModel binding in HTML markup\n * Input is required so that the value can also be set via the markup.\n */\n @Input()\n public set value(v: VALUE) {\n if (this.disabled) {\n return;\n }\n\n this._value = this.ConvertInputValue(v);\n this.propagateChange(this._value);\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Method returns error based on given criteria\n */\n public GetErrorMessage(): Observable<string> {\n if (this.ngControl.errors === undefined || this.ngControl.errors === null) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const errors: ValidationErrors = this.ngControl.errors;\n\n if (errors.length === 0) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const keys: string[] = Object.keys(errors);\n\n if (keys.length <= 0) {\n return new Observable<string>((observer) => {\n observer.next('');\n observer.complete();\n });\n }\n\n const errorItem: ValidationErrorItem = errors[keys[0]];\n\n // Validation Parameters\n const parameters = {};\n if (errorItem.parameters !== null && errorItem.parameters !== undefined) {\n errorItem.parameters.forEach((v, k) => {\n parameters[k] = v;\n });\n }\n parameters['FIELD'] = errorItem.fieldName;\n\n return this.lngResourceService.GetString(errorItem.errorMessageKey, parameters);\n }\n\n /**\n * Init Event\n */\n public ngOnInit() {\n // receive form via formcontrolname or formcontrol instance\n const formControl = this.injector.get(NgControl, null);\n if (formControl instanceof FormControlName) {\n const form = this.injector.get(FormGroupDirective, null);\n this.ngControl = form.getControl(formControl);\n } else {\n if (formControl) {\n this.ngControl = formControl.control as FormControl;\n }\n }\n\n this.UpdateLabelToControl();\n\n // set label sizes from formlayout directive\n this.setLabelSizes();\n\n // set component heigth from fromlayout directive\n this.setComponentHeight();\n\n // set method to display helptext\n this.setHelpTextMode();\n\n // set SplitMode for Labels\n this.setLabelSplitMode();\n\n this.OnClassInit();\n }\n\n /**\n * Method sets touched = true\n */\n public onTouch(): void {\n this._touched = true;\n this.propagateTouch();\n }\n\n /**\n * Method so that other controls can be notified of changes in the control\n * For change notification, call the propagateChange method.\n * @param fn Callback function for change notification\n */\n public registerOnChange(fn: any): void {\n this.propagateChange = (obj) => fn(obj);\n }\n\n /**\n * Method so that other controls can be notified of changes when the control is activated (focus).\n * @param fn Callback function for touch notification\n */\n public registerOnTouched(fn: any): void {\n this.propagateTouch = (obj) => fn(obj);\n }\n\n /**\n * Method registers changes in validation\n * @param fn Callback function for validator change notification\n */\n public registerOnValidatorChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n /**\n * Sets the control to disabled\n * @param isDisabled True to disable the control, false to enable it\n */\n public setDisabledState(isDisabled: boolean): void {\n this._disabledForm = isDisabled;\n }\n\n /**\n * Method that sets the value of the input\n * @param v The value to set\n */\n public setValue(v: VALUE): void {\n this.value = v;\n }\n\n /**\n * Validator method\n * @param c Form control to validate\n * @returns Validation errors or null if valid\n */\n public validate(c: AbstractControl): ValidationErrors | null {\n const error: ValidationErrors | null = this.validateData(c);\n return error;\n }\n\n /**\n * Abstract validator method for form control value.\n *\n * Derived classes should check control value and return validation errors or null.\n *\n * @param c Form control being validated\n * @returns ValidationErrors if invalid, otherwise null\n */\n public abstract validateData(c: AbstractControl): ValidationErrors | null;\n\n /**\n * Method for writing values from the model into the control\n * @param value The value to write to the control\n */\n public writeValue(value: VALUE) {\n this._value = value;\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n /**\n * Method can be overridden in parent classes\n * @param value Value that should be converted to the correct type\n * @returns Value in the correct type\n */\n protected ConvertInputValue(value: VALUE): VALUE {\n return value;\n }\n\n /**\n * Method returns the decimal symbol\n */\n protected GetDecimalSymbol(): string {\n return '.';\n }\n\n /**\n * Method can be used to Set Properties at Class Init\n */\n protected OnClassInit(): void {}\n\n /**\n * Updates the NgModel value and the validity of the control's validator\n */\n protected UpdateValueAndValidity(): void {\n if (this.ngControl) {\n this.ngControl.updateValueAndValidity({ onlySelf: true });\n }\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n private UpdateLabelToControl(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IAbstractControlLabelExtension).controllabel = this.label;\n }\n }\n\n /**\n * Set component height from property or parent layout control\n */\n private setComponentHeight() {\n // set size extra small\n if (!this.componentHeight) {\n if (this.formlayout?.componentHeight) {\n this.componentHeight = this.formlayout.componentHeight;\n } else {\n this.componentHeight = this.configurationService.ComponentHeight;\n }\n }\n }\n\n /**\n * Set mode for helptext. Can be tooltip or text\n */\n private setHelpTextMode() {\n if (!this.helptextmode) {\n if (this.formlayout?.helptextmode) {\n this.helptextmode = this.formlayout.helptextmode;\n } else {\n this.helptextmode = this.configurationService.HelptextMode;\n }\n }\n }\n\n /**\n * Sets the label display mode from property or parent layout control\n */\n private setLabelMode(): void {\n if (!this.labelMode) {\n if (this.formlayout?.labelMode) {\n this.labelMode = this.formlayout.labelMode;\n } else {\n this.labelMode = this.configurationService.LabelMode;\n }\n }\n\n // floating labels need always full width\n if (this.labelMode === 'floating') {\n this.labelSizeXxl = 12;\n this.labelSizeXl = 12;\n this.labelSizeLg = 12;\n this.labelSizeMd = 12;\n this.labelSizeSm = 12;\n this.labelSizeXs = 12;\n }\n }\n\n /**\n * Set label sizes from property or parent layout control\n */\n private setLabelSizes() {\n this.setLabelMode();\n\n // floating labels need always full width\n if (this.labelMode === 'floating') {\n return;\n }\n\n // set size extra small\n if (!this.labelSizeXs) {\n if (this.formlayout?.labelSizeXs) {\n this.labelSizeXs = this.formlayout.labelSizeXs;\n } else {\n this.labelSizeXs = this.configurationService.LabelSizeXs;\n }\n }\n\n // set size small\n if (!this.labelSizeSm) {\n if (this.formlayout?.labelSizeSm) {\n this.labelSizeSm = this.formlayout.labelSizeSm;\n } else {\n this.labelSizeSm = this.configurationService.LabelSizeSm;\n }\n }\n\n // set size medium\n if (!this.labelSizeMd) {\n if (this.formlayout?.labelSizeMd) {\n this.labelSizeMd = this.formlayout.labelSizeMd;\n } else {\n this.labelSizeMd = this.configurationService.LabelSizeMd;\n }\n }\n\n // set size large\n if (!this.labelSizeLg) {\n if (this.formlayout?.labelSizeLg) {\n this.labelSizeLg = this.formlayout.labelSizeLg;\n } else {\n this.labelSizeLg = this.configurationService.LabelSizeLg;\n }\n }\n\n // set size extra large\n if (!this.labelSizeXl) {\n if (this.formlayout?.labelSizeXl) {\n this.labelSizeXl = this.formlayout.labelSizeXl;\n } else {\n this.labelSizeXl = this.configurationService.LabelSizeXl;\n }\n }\n\n // set size extra extra large\n if (!this.labelSizeXxl) {\n if (this.formlayout?.labelSizeXxl) {\n this.labelSizeXxl = this.formlayout.labelSizeXxl;\n } else {\n this.labelSizeXxl = this.configurationService.LabelSizeXxl;\n }\n }\n }\n\n /**\n * Sets the label split mode from property or parent layout control\\n\n **/\n private setLabelSplitMode() {\n if (!this.splitlabelandhelptext) {\n if (this.formlayout?.splitlabelandhelptext) {\n this.splitlabelandhelptext = this.formlayout.splitlabelandhelptext;\n } else {\n this.splitlabelandhelptext = this.configurationService.SplitLabelAndHelptext;\n }\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"f1fd0ac2f29939c6194eeb59705538d3bacaab92"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
2
|
cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11ofelmjl4();import{ControlHeight}from'../enums/ControlHeight';import{SACICON_SERVICE,SACVALIDATIONKEY_SERVICE,SacDefaultIconService,SacDefaultValidationKeyService}from'../services';import{SACCONFIGURATION_SERVICE,SacDefaultConfigurationService}from'../services/sac-configuration.service';import{SACLOCALISATION_SERVICE,SacDefaultLocalisationService}from'../services/sac-localisation.service';import{convertToBoolean}from'../utilities/convertion';import{createGuid}from'../utilities/guid';import{Directive,Host,Input}from'@angular/core';import{FormControlName,FormGroupDirective,NgControl}from'@angular/forms';import{Observable}from'rxjs';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
|
|
3
|
-
* Abstract
|
|
3
|
+
* Abstract class for SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit
|
|
4
4
|
*/export class SacBaseModelControl{// #endregion Properties
|
|
5
5
|
// #region Constructors
|
|
6
6
|
/**
|
|
@@ -9,17 +9,17 @@ cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11
|
|
|
9
9
|
* @param injector Injector for injecting services
|
|
10
10
|
*/constructor(formlayout,injector){cov_11ofelmjl4().f[0]++;cov_11ofelmjl4().s[0]++;this.injector=injector;// #region Properties
|
|
11
11
|
/**
|
|
12
|
-
* Inline
|
|
12
|
+
* Inline errors for the control
|
|
13
13
|
*/cov_11ofelmjl4().s[1]++;this._inlineerrorenabled=null;/**
|
|
14
14
|
* Label Text
|
|
15
15
|
*/cov_11ofelmjl4().s[2]++;this._label='';/**
|
|
16
|
-
* Boolean
|
|
16
|
+
* Boolean property dirty; default value - false
|
|
17
17
|
*/cov_11ofelmjl4().s[3]++;this._dirty=false;/**
|
|
18
|
-
* SacModel
|
|
18
|
+
* SacModel form is disabled
|
|
19
19
|
*/cov_11ofelmjl4().s[4]++;this._disabledForm=false;/**
|
|
20
|
-
* Boolean
|
|
20
|
+
* Boolean property touched; default value - false
|
|
21
21
|
*/cov_11ofelmjl4().s[5]++;this._touched=false;/**
|
|
22
|
-
*
|
|
22
|
+
* Internal variable that holds the value of the control
|
|
23
23
|
*/cov_11ofelmjl4().s[6]++;this._value=null;/**
|
|
24
24
|
* Form layout instance if exists
|
|
25
25
|
*/cov_11ofelmjl4().s[7]++;this.formlayout=null;/**
|
|
@@ -27,9 +27,9 @@ cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11
|
|
|
27
27
|
*/cov_11ofelmjl4().s[8]++;this.ControlHeight=ControlHeight;/**
|
|
28
28
|
* Defines the standard height of the components
|
|
29
29
|
*/cov_11ofelmjl4().s[9]++;this.componentHeight=null;/**
|
|
30
|
-
*
|
|
30
|
+
* Disables the input control
|
|
31
31
|
*/cov_11ofelmjl4().s[10]++;this.disabled=false;/**
|
|
32
|
-
*
|
|
32
|
+
* Disables the label in the template
|
|
33
33
|
*/cov_11ofelmjl4().s[11]++;this.disablelabel=false;/**
|
|
34
34
|
* Identifier used for the E2E data attribute.
|
|
35
35
|
*/cov_11ofelmjl4().s[12]++;this.e2eidentifier=null;/**
|
|
@@ -37,8 +37,8 @@ cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11
|
|
|
37
37
|
*/cov_11ofelmjl4().s[13]++;this.helptext='';/**
|
|
38
38
|
* defines that error messages are displayed under the controls
|
|
39
39
|
*/cov_11ofelmjl4().s[14]++;this.inlineError=true;/**
|
|
40
|
-
*
|
|
41
|
-
*/cov_11ofelmjl4().s[15]++;this.
|
|
40
|
+
* Label Mode 'standard' | 'floating' or null (null = use global configuration)
|
|
41
|
+
*/cov_11ofelmjl4().s[15]++;this.labelMode=null;/**
|
|
42
42
|
* default labe size for large devices
|
|
43
43
|
*/cov_11ofelmjl4().s[16]++;this.labelSizeLg=null;/**
|
|
44
44
|
* default label size for medium devices
|
|
@@ -51,11 +51,11 @@ cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11
|
|
|
51
51
|
*/cov_11ofelmjl4().s[20]++;this.labelSizeXs=null;/**
|
|
52
52
|
* default label size for extra extra large devices
|
|
53
53
|
*/cov_11ofelmjl4().s[21]++;this.labelSizeXxl=null;/**
|
|
54
|
-
* Name
|
|
54
|
+
* Name of the control
|
|
55
55
|
*/cov_11ofelmjl4().s[22]++;this.name=createGuid();/**
|
|
56
|
-
*
|
|
56
|
+
* Empty implementation of "propagateChange". Must be done to avoid errors
|
|
57
57
|
*/cov_11ofelmjl4().s[23]++;this.propagateChange=()=>{cov_11ofelmjl4().f[1]++;};/**
|
|
58
|
-
*
|
|
58
|
+
* Empty implementation of "propagateTouch". Must be done to avoid errors
|
|
59
59
|
*/cov_11ofelmjl4().s[24]++;this.propagateTouch=()=>{cov_11ofelmjl4().f[2]++;};/**
|
|
60
60
|
* Detach label text and tooltip from each other in Label so that label and tooltip can be aligned differently. This is in Bootstrap 3 not supported!
|
|
61
61
|
*/cov_11ofelmjl4().s[25]++;this.splitlabelandhelptext=null;cov_11ofelmjl4().s[26]++;this.formlayout=formlayout;cov_11ofelmjl4().s[27]++;this.validationKeyService=injector.get(SACVALIDATIONKEY_SERVICE,new SacDefaultValidationKeyService());cov_11ofelmjl4().s[28]++;this.lngResourceService=injector.get(SACLOCALISATION_SERVICE,new SacDefaultLocalisationService(this.validationKeyService));cov_11ofelmjl4().s[29]++;this.configurationService=injector.get(SACCONFIGURATION_SERVICE,new SacDefaultConfigurationService());cov_11ofelmjl4().s[30]++;this.iconService=injector.get(SACICON_SERVICE,new SacDefaultIconService());}// #endregion Constructors
|
|
@@ -63,89 +63,100 @@ cov_11ofelmjl4=function(){return actualCoverage;};}return actualCoverage;}cov_11
|
|
|
63
63
|
/**
|
|
64
64
|
* Get Icon for Helptext Tooltip
|
|
65
65
|
*/get HelptextTooltipIcon(){cov_11ofelmjl4().f[3]++;cov_11ofelmjl4().s[31]++;return this.iconService.GenericHelptextIcon;}/**
|
|
66
|
-
*
|
|
66
|
+
* Method returns boolean value for dirty
|
|
67
67
|
*/get dirty(){cov_11ofelmjl4().f[4]++;cov_11ofelmjl4().s[32]++;if((cov_11ofelmjl4().b[1][0]++,this.ngControl!==null)&&(cov_11ofelmjl4().b[1][1]++,this.ngControl!==undefined)){cov_11ofelmjl4().b[0][0]++;cov_11ofelmjl4().s[33]++;this._dirty=this.ngControl.dirty;}else{cov_11ofelmjl4().b[0][1]++;}cov_11ofelmjl4().s[34]++;return this._dirty;}/**
|
|
68
68
|
* Show error messages inline
|
|
69
69
|
*/get inlineerrorenabled(){cov_11ofelmjl4().f[5]++;cov_11ofelmjl4().s[35]++;return this._inlineerrorenabled;}/**
|
|
70
|
-
*
|
|
70
|
+
* Enables or disables the inline errors for the control
|
|
71
71
|
*/set inlineerrorenabled(value){cov_11ofelmjl4().f[6]++;cov_11ofelmjl4().s[36]++;if((cov_11ofelmjl4().b[3][0]++,value===null)||(cov_11ofelmjl4().b[3][1]++,value===undefined)){cov_11ofelmjl4().b[2][0]++;cov_11ofelmjl4().s[37]++;this._inlineerrorenabled=null;}else{cov_11ofelmjl4().b[2][1]++;cov_11ofelmjl4().s[38]++;this._inlineerrorenabled=convertToBoolean(value);}}/**
|
|
72
|
-
*
|
|
72
|
+
* Method returns a boolean value indicating whether the form is invalid
|
|
73
73
|
*/get invalid(){cov_11ofelmjl4().f[7]++;cov_11ofelmjl4().s[39]++;return(cov_11ofelmjl4().b[4][0]++,this.ngControl!==undefined)&&(cov_11ofelmjl4().b[4][1]++,this.ngControl!==null)&&(cov_11ofelmjl4().b[4][2]++,this.ngControl.invalid);}/**
|
|
74
|
-
*
|
|
74
|
+
* Defines whether the control is disabled
|
|
75
75
|
*/get isdisabled(){cov_11ofelmjl4().f[8]++;cov_11ofelmjl4().s[40]++;return(cov_11ofelmjl4().b[5][0]++,this._disabledForm)||(cov_11ofelmjl4().b[5][1]++,this.disabled);}/**
|
|
76
76
|
* Returns whether the inline error messages are active for this control.
|
|
77
77
|
*/get isinlineerrorenabled(){cov_11ofelmjl4().f[9]++;cov_11ofelmjl4().s[41]++;if(this._inlineerrorenabled!==null){cov_11ofelmjl4().b[6][0]++;cov_11ofelmjl4().s[42]++;return this._inlineerrorenabled;}else{cov_11ofelmjl4().b[6][1]++;}cov_11ofelmjl4().s[43]++;if((cov_11ofelmjl4().b[8][0]++,this.formlayout!==null)&&(cov_11ofelmjl4().b[8][1]++,this.formlayout.IsInlineErrorEnabled!==null)){cov_11ofelmjl4().b[7][0]++;cov_11ofelmjl4().s[44]++;return this.formlayout?.IsInlineErrorEnabled;}else{cov_11ofelmjl4().b[7][1]++;}cov_11ofelmjl4().s[45]++;if(this.configurationService.InlineErrorEnabled!==null){cov_11ofelmjl4().b[9][0]++;cov_11ofelmjl4().s[46]++;return this.configurationService.InlineErrorEnabled;}else{cov_11ofelmjl4().b[9][1]++;}cov_11ofelmjl4().s[47]++;return true;}/**
|
|
78
|
-
*
|
|
78
|
+
* Defines the label text
|
|
79
79
|
*/get label(){cov_11ofelmjl4().f[10]++;cov_11ofelmjl4().s[48]++;return this._label;}/**
|
|
80
|
-
*
|
|
80
|
+
* Sets the label text
|
|
81
81
|
*/set label(v){cov_11ofelmjl4().f[11]++;cov_11ofelmjl4().s[49]++;this._label=v;cov_11ofelmjl4().s[50]++;this.UpdateLabelToControl();}/**
|
|
82
|
-
*
|
|
82
|
+
* Returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe
|
|
83
83
|
*/get labelSizes(){cov_11ofelmjl4().f[12]++;cov_11ofelmjl4().s[51]++;return{labelSizeSm:this.labelSizeSm,labelSizeMd:this.labelSizeMd,labelSizeXs:this.labelSizeXs,labelSizeXl:this.labelSizeXl,labelSizeXxl:this.labelSizeXxl,labelSizeLg:this.labelSizeLg};}/**
|
|
84
|
-
*
|
|
84
|
+
* Method returns boolean value for touched
|
|
85
85
|
*/get touched(){cov_11ofelmjl4().f[13]++;cov_11ofelmjl4().s[52]++;if((cov_11ofelmjl4().b[11][0]++,this.ngControl!==null)&&(cov_11ofelmjl4().b[11][1]++,this.ngControl!==undefined)){cov_11ofelmjl4().b[10][0]++;cov_11ofelmjl4().s[53]++;this._touched=this.ngControl.touched;}else{cov_11ofelmjl4().b[10][1]++;}cov_11ofelmjl4().s[54]++;return this._touched;}/**
|
|
86
|
-
* Get
|
|
86
|
+
* Get method for NgModel binding in HTML markup
|
|
87
87
|
*/get value(){cov_11ofelmjl4().f[14]++;cov_11ofelmjl4().s[55]++;return this._value;}/**
|
|
88
|
-
* Set
|
|
89
|
-
* Input
|
|
88
|
+
* Set method for NgModel binding in HTML markup
|
|
89
|
+
* Input is required so that the value can also be set via the markup.
|
|
90
90
|
*/set value(v){cov_11ofelmjl4().f[15]++;cov_11ofelmjl4().s[56]++;if(this.disabled){cov_11ofelmjl4().b[12][0]++;cov_11ofelmjl4().s[57]++;return;}else{cov_11ofelmjl4().b[12][1]++;}cov_11ofelmjl4().s[58]++;this._value=this.ConvertInputValue(v);cov_11ofelmjl4().s[59]++;this.propagateChange(this._value);}// #endregion Public Getters And Setters
|
|
91
91
|
// #region Public Methods
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
93
|
+
* Method returns error based on given criteria
|
|
94
94
|
*/GetErrorMessage(){cov_11ofelmjl4().f[16]++;cov_11ofelmjl4().s[60]++;if((cov_11ofelmjl4().b[14][0]++,this.ngControl.errors===undefined)||(cov_11ofelmjl4().b[14][1]++,this.ngControl.errors===null)){cov_11ofelmjl4().b[13][0]++;cov_11ofelmjl4().s[61]++;return new Observable(observer=>{cov_11ofelmjl4().f[17]++;cov_11ofelmjl4().s[62]++;observer.next('');cov_11ofelmjl4().s[63]++;observer.complete();});}else{cov_11ofelmjl4().b[13][1]++;}const errors=(cov_11ofelmjl4().s[64]++,this.ngControl.errors);cov_11ofelmjl4().s[65]++;if(errors.length===0){cov_11ofelmjl4().b[15][0]++;cov_11ofelmjl4().s[66]++;return new Observable(observer=>{cov_11ofelmjl4().f[18]++;cov_11ofelmjl4().s[67]++;observer.next('');cov_11ofelmjl4().s[68]++;observer.complete();});}else{cov_11ofelmjl4().b[15][1]++;}const keys=(cov_11ofelmjl4().s[69]++,Object.keys(errors));cov_11ofelmjl4().s[70]++;if(keys.length<=0){cov_11ofelmjl4().b[16][0]++;cov_11ofelmjl4().s[71]++;return new Observable(observer=>{cov_11ofelmjl4().f[19]++;cov_11ofelmjl4().s[72]++;observer.next('');cov_11ofelmjl4().s[73]++;observer.complete();});}else{cov_11ofelmjl4().b[16][1]++;}const errorItem=(cov_11ofelmjl4().s[74]++,errors[keys[0]]);// Validation Parameters
|
|
95
95
|
const parameters=(cov_11ofelmjl4().s[75]++,{});cov_11ofelmjl4().s[76]++;if((cov_11ofelmjl4().b[18][0]++,errorItem.parameters!==null)&&(cov_11ofelmjl4().b[18][1]++,errorItem.parameters!==undefined)){cov_11ofelmjl4().b[17][0]++;cov_11ofelmjl4().s[77]++;errorItem.parameters.forEach((v,k)=>{cov_11ofelmjl4().f[20]++;cov_11ofelmjl4().s[78]++;parameters[k]=v;});}else{cov_11ofelmjl4().b[17][1]++;}cov_11ofelmjl4().s[79]++;parameters['FIELD']=errorItem.fieldName;cov_11ofelmjl4().s[80]++;return this.lngResourceService.GetString(errorItem.errorMessageKey,parameters);}/**
|
|
96
96
|
* Init Event
|
|
97
97
|
*/ngOnInit(){cov_11ofelmjl4().f[21]++;// receive form via formcontrolname or formcontrol instance
|
|
98
98
|
const formControl=(cov_11ofelmjl4().s[81]++,this.injector.get(NgControl,null));cov_11ofelmjl4().s[82]++;if(formControl instanceof FormControlName){cov_11ofelmjl4().b[19][0]++;const form=(cov_11ofelmjl4().s[83]++,this.injector.get(FormGroupDirective,null));cov_11ofelmjl4().s[84]++;this.ngControl=form.getControl(formControl);}else{cov_11ofelmjl4().b[19][1]++;cov_11ofelmjl4().s[85]++;if(formControl){cov_11ofelmjl4().b[20][0]++;cov_11ofelmjl4().s[86]++;this.ngControl=formControl.control;}else{cov_11ofelmjl4().b[20][1]++;}}cov_11ofelmjl4().s[87]++;this.UpdateLabelToControl();// set label sizes from formlayout directive
|
|
99
99
|
cov_11ofelmjl4().s[88]++;this.setLabelSizes();// set component heigth from fromlayout directive
|
|
100
|
-
cov_11ofelmjl4().s[89]++;this.setComponentHeight();// set
|
|
101
|
-
cov_11ofelmjl4().s[90]++;this.
|
|
102
|
-
cov_11ofelmjl4().s[91]++;this.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*/registerOnChange(fn){cov_11ofelmjl4().f[23]++;cov_11ofelmjl4().s[
|
|
109
|
-
*
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
*
|
|
114
|
-
*/
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
*
|
|
120
|
-
*/
|
|
100
|
+
cov_11ofelmjl4().s[89]++;this.setComponentHeight();// set method to display helptext
|
|
101
|
+
cov_11ofelmjl4().s[90]++;this.setHelpTextMode();// set SplitMode for Labels
|
|
102
|
+
cov_11ofelmjl4().s[91]++;this.setLabelSplitMode();cov_11ofelmjl4().s[92]++;this.OnClassInit();}/**
|
|
103
|
+
* Method sets touched = true
|
|
104
|
+
*/onTouch(){cov_11ofelmjl4().f[22]++;cov_11ofelmjl4().s[93]++;this._touched=true;cov_11ofelmjl4().s[94]++;this.propagateTouch();}/**
|
|
105
|
+
* Method so that other controls can be notified of changes in the control
|
|
106
|
+
* For change notification, call the propagateChange method.
|
|
107
|
+
* @param fn Callback function for change notification
|
|
108
|
+
*/registerOnChange(fn){cov_11ofelmjl4().f[23]++;cov_11ofelmjl4().s[95]++;this.propagateChange=obj=>{cov_11ofelmjl4().f[24]++;cov_11ofelmjl4().s[96]++;return fn(obj);};}/**
|
|
109
|
+
* Method so that other controls can be notified of changes when the control is activated (focus).
|
|
110
|
+
* @param fn Callback function for touch notification
|
|
111
|
+
*/registerOnTouched(fn){cov_11ofelmjl4().f[25]++;cov_11ofelmjl4().s[97]++;this.propagateTouch=obj=>{cov_11ofelmjl4().f[26]++;cov_11ofelmjl4().s[98]++;return fn(obj);};}/**
|
|
112
|
+
* Method registers changes in validation
|
|
113
|
+
* @param fn Callback function for validator change notification
|
|
114
|
+
*/registerOnValidatorChange(fn){cov_11ofelmjl4().f[27]++;cov_11ofelmjl4().s[99]++;this._onChange=fn;}/**
|
|
115
|
+
* Sets the control to disabled
|
|
116
|
+
* @param isDisabled True to disable the control, false to enable it
|
|
117
|
+
*/setDisabledState(isDisabled){cov_11ofelmjl4().f[28]++;cov_11ofelmjl4().s[100]++;this._disabledForm=isDisabled;}/**
|
|
118
|
+
* Method that sets the value of the input
|
|
119
|
+
* @param v The value to set
|
|
120
|
+
*/setValue(v){cov_11ofelmjl4().f[29]++;cov_11ofelmjl4().s[101]++;this.value=v;}/**
|
|
121
|
+
* Validator method
|
|
122
|
+
* @param c Form control to validate
|
|
123
|
+
* @returns Validation errors or null if valid
|
|
124
|
+
*/validate(c){cov_11ofelmjl4().f[30]++;const error=(cov_11ofelmjl4().s[102]++,this.validateData(c));cov_11ofelmjl4().s[103]++;return error;}/**
|
|
125
|
+
* Method for writing values from the model into the control
|
|
126
|
+
* @param value The value to write to the control
|
|
127
|
+
*/writeValue(value){cov_11ofelmjl4().f[31]++;cov_11ofelmjl4().s[104]++;this._value=value;}// #endregion Public Methods
|
|
121
128
|
// #region Protected Methods
|
|
122
129
|
/**
|
|
123
|
-
* Method can
|
|
124
|
-
* @param value
|
|
125
|
-
* @returns
|
|
126
|
-
*/ConvertInputValue(value){cov_11ofelmjl4().f[32]++;cov_11ofelmjl4().s[
|
|
127
|
-
*
|
|
128
|
-
*/GetDecimalSymbol(){cov_11ofelmjl4().f[33]++;cov_11ofelmjl4().s[
|
|
130
|
+
* Method can be overridden in parent classes
|
|
131
|
+
* @param value Value that should be converted to the correct type
|
|
132
|
+
* @returns Value in the correct type
|
|
133
|
+
*/ConvertInputValue(value){cov_11ofelmjl4().f[32]++;cov_11ofelmjl4().s[105]++;return value;}/**
|
|
134
|
+
* Method returns the decimal symbol
|
|
135
|
+
*/GetDecimalSymbol(){cov_11ofelmjl4().f[33]++;cov_11ofelmjl4().s[106]++;return'.';}/**
|
|
129
136
|
* Method can be used to Set Properties at Class Init
|
|
130
137
|
*/OnClassInit(){cov_11ofelmjl4().f[34]++;}/**
|
|
131
|
-
*
|
|
132
|
-
*/UpdateValueAndValidity(){cov_11ofelmjl4().f[35]++;cov_11ofelmjl4().s[
|
|
138
|
+
* Updates the NgModel value and the validity of the control's validator
|
|
139
|
+
*/UpdateValueAndValidity(){cov_11ofelmjl4().f[35]++;cov_11ofelmjl4().s[107]++;if(this.ngControl){cov_11ofelmjl4().b[21][0]++;cov_11ofelmjl4().s[108]++;this.ngControl.updateValueAndValidity({onlySelf:true});}else{cov_11ofelmjl4().b[21][1]++;}}// #endregion Protected Methods
|
|
133
140
|
// #region Private Methods
|
|
134
|
-
UpdateLabelToControl(){cov_11ofelmjl4().f[36]++;cov_11ofelmjl4().s[
|
|
135
|
-
if(this.ngControl){cov_11ofelmjl4().b[22][0]++;cov_11ofelmjl4().s[
|
|
141
|
+
UpdateLabelToControl(){cov_11ofelmjl4().f[36]++;cov_11ofelmjl4().s[109]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
142
|
+
if(this.ngControl){cov_11ofelmjl4().b[22][0]++;cov_11ofelmjl4().s[110]++;this.ngControl.controllabel=this.label;}else{cov_11ofelmjl4().b[22][1]++;}}/**
|
|
136
143
|
* Set component height from property or parent layout control
|
|
137
|
-
*/setComponentHeight(){cov_11ofelmjl4().f[37]++;cov_11ofelmjl4().s[
|
|
138
|
-
if(!this.componentHeight){cov_11ofelmjl4().b[23][0]++;cov_11ofelmjl4().s[
|
|
144
|
+
*/setComponentHeight(){cov_11ofelmjl4().f[37]++;cov_11ofelmjl4().s[111]++;// set size extra small
|
|
145
|
+
if(!this.componentHeight){cov_11ofelmjl4().b[23][0]++;cov_11ofelmjl4().s[112]++;if(this.formlayout?.componentHeight){cov_11ofelmjl4().b[24][0]++;cov_11ofelmjl4().s[113]++;this.componentHeight=this.formlayout.componentHeight;}else{cov_11ofelmjl4().b[24][1]++;cov_11ofelmjl4().s[114]++;this.componentHeight=this.configurationService.ComponentHeight;}}else{cov_11ofelmjl4().b[23][1]++;}}/**
|
|
139
146
|
* Set mode for helptext. Can be tooltip or text
|
|
140
|
-
*/setHelpTextMode(){cov_11ofelmjl4().f[38]++;cov_11ofelmjl4().s[
|
|
141
|
-
*
|
|
142
|
-
*/
|
|
147
|
+
*/setHelpTextMode(){cov_11ofelmjl4().f[38]++;cov_11ofelmjl4().s[115]++;if(!this.helptextmode){cov_11ofelmjl4().b[25][0]++;cov_11ofelmjl4().s[116]++;if(this.formlayout?.helptextmode){cov_11ofelmjl4().b[26][0]++;cov_11ofelmjl4().s[117]++;this.helptextmode=this.formlayout.helptextmode;}else{cov_11ofelmjl4().b[26][1]++;cov_11ofelmjl4().s[118]++;this.helptextmode=this.configurationService.HelptextMode;}}else{cov_11ofelmjl4().b[25][1]++;}}/**
|
|
148
|
+
* Sets the label display mode from property or parent layout control
|
|
149
|
+
*/setLabelMode(){cov_11ofelmjl4().f[39]++;cov_11ofelmjl4().s[119]++;if(!this.labelMode){cov_11ofelmjl4().b[27][0]++;cov_11ofelmjl4().s[120]++;if(this.formlayout?.labelMode){cov_11ofelmjl4().b[28][0]++;cov_11ofelmjl4().s[121]++;this.labelMode=this.formlayout.labelMode;}else{cov_11ofelmjl4().b[28][1]++;cov_11ofelmjl4().s[122]++;this.labelMode=this.configurationService.LabelMode;}}else{cov_11ofelmjl4().b[27][1]++;}// floating labels need always full width
|
|
150
|
+
cov_11ofelmjl4().s[123]++;if(this.labelMode==='floating'){cov_11ofelmjl4().b[29][0]++;cov_11ofelmjl4().s[124]++;this.labelSizeXxl=12;cov_11ofelmjl4().s[125]++;this.labelSizeXl=12;cov_11ofelmjl4().s[126]++;this.labelSizeLg=12;cov_11ofelmjl4().s[127]++;this.labelSizeMd=12;cov_11ofelmjl4().s[128]++;this.labelSizeSm=12;cov_11ofelmjl4().s[129]++;this.labelSizeXs=12;}else{cov_11ofelmjl4().b[29][1]++;}}/**
|
|
143
151
|
* Set label sizes from property or parent layout control
|
|
144
|
-
*/setLabelSizes(){cov_11ofelmjl4().f[40]++;cov_11ofelmjl4().s[
|
|
145
|
-
|
|
146
|
-
cov_11ofelmjl4().s[
|
|
147
|
-
cov_11ofelmjl4().s[
|
|
148
|
-
cov_11ofelmjl4().s[
|
|
149
|
-
cov_11ofelmjl4().s[
|
|
150
|
-
cov_11ofelmjl4().s[144]++;if(!this.labelSizeXxl){cov_11ofelmjl4().b[39][0]++;cov_11ofelmjl4().s[145]++;if(this.formlayout?.labelSizeXxl){cov_11ofelmjl4().b[40][0]++;cov_11ofelmjl4().s[146]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_11ofelmjl4().b[40][1]++;cov_11ofelmjl4().s[147]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_11ofelmjl4().b[39][1]++;}}setLabelSplitMode(){cov_11ofelmjl4().f[41]++;cov_11ofelmjl4().s[148]++;if(!this.splitlabelandhelptext){cov_11ofelmjl4().b[41][0]++;cov_11ofelmjl4().s[149]++;if(this.formlayout?.splitlabelandhelptext){cov_11ofelmjl4().b[42][0]++;cov_11ofelmjl4().s[150]++;this.splitlabelandhelptext=this.formlayout.splitlabelandhelptext;}else{cov_11ofelmjl4().b[42][1]++;cov_11ofelmjl4().s[151]++;this.splitlabelandhelptext=this.configurationService.SplitLabelAndHelptext;}}else{cov_11ofelmjl4().b[41][1]++;}}}cov_11ofelmjl4().s[152]++;SacBaseModelControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_11ofelmjl4().s[153]++;SacBaseModelControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",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});cov_11ofelmjl4().s[154]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_11ofelmjl4().f[42]++;cov_11ofelmjl4().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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBWSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUlILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUE2S3JDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQW9CLFVBQStCLEVBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyTHhGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLHdCQUFtQixHQUFtQixJQUFJLENBQUM7UUFFbkQ7O1dBRUc7UUFDSyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBTzVCOztXQUVHO1FBQ08sV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVsQzs7V0FFRztRQUNPLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBT3pDOztXQUVHO1FBQ08sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVwQzs7V0FFRztRQUNPLFdBQU0sR0FBVSxJQUFJLENBQUM7UUFFL0I7O1dBRUc7UUFDTyxlQUFVLEdBQXdCLElBQUksQ0FBQztRQWlCakQ7O1dBRUc7UUFDSSxrQkFBYSxHQUF5QixhQUFhLENBQUM7UUFFM0Q7O1dBRUc7UUFFSSxvQkFBZSxHQUF5QixJQUFJLENBQUM7UUFFcEQ7O1dBRUc7UUFDYSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFDOztXQUVHO1FBQ2EsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUM7O1dBRUc7UUFFSSxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFM0M7O1dBRUc7UUFDYSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBUXRDOztXQUVHO1FBQ2EsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqRDs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUUxQzs7V0FFRztRQUNhLFNBQUksR0FBVyxVQUFVLEVBQUUsQ0FBQztRQUU1Qzs7V0FFRztRQUNJLG9CQUFlLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXZDOztXQUVHO1FBQ0ksbUJBQWMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFdEM7O1dBRUc7UUFFSSwwQkFBcUIsR0FBbUIsSUFBSSxDQUFDO1FBaUJoRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FDbEMsdUJBQXVCLEVBQ3ZCLElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFLENBQUMsQ0FBQztRQUV6RyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwwQkFBMEI7SUFFMUIscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUN0QztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGtCQUFrQixDQUFDLEtBQXFCO1FBQy9DLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7YUFBTTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsb0JBQW9CO1FBQzNCLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLEVBQUU7WUFDM0UsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDO1NBQ2hEO1FBRUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQW9CLEtBQUssQ0FBQyxDQUFTO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPO1lBQ0gsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztTQUMxQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csS0FBSyxDQUFDLENBQVE7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHdDQUF3QztJQUV4Qyx5QkFBeUI7SUFFekI7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN2RSxPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxNQUFNLEdBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRXZELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsQixPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxTQUFTLEdBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCx3QkFBd0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDckUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDWCwyREFBMkQ7UUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksV0FBVyxZQUFZLGVBQWUsRUFBRTtZQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakQ7YUFBTTtZQUNILElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQXNCLENBQUM7YUFDdkQ7U0FDSjtRQUVELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUJBQXlCLENBQUMsRUFBYztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsQ0FBUTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsQ0FBa0I7UUFDOUIsTUFBTSxLQUFLLEdBQTRCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQU9EOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELDRCQUE0QjtJQUU1Qiw0QkFBNEI7SUFFNUI7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLEtBQVk7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVyxLQUFVLENBQUM7SUFFaEM7O09BRUc7SUFDTyxzQkFBc0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsMEJBQTBCO0lBRWxCLG9CQUFvQjtRQUN4QixtSUFBbUk7UUFDbkksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQXVELENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDO2FBQ3BFO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDO2FBQzlEO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsS0FBSyxTQUFTLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7YUFDaEM7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWE7UUFDakIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNsRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7YUFDNUQ7U0FDSjtRQUVELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQzthQUM1RDtTQUNKO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNsRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7YUFDNUQ7U0FDSjtRQUVELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQzthQUM5RDtTQUNKO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQzthQUNoRjtTQUNKO0lBQ0wsQ0FBQzs7Z0hBcG5CaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs7MEJBdUxPLElBQUk7bUVBOUdWLGVBQWU7c0JBRHJCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFLVSxZQUFZO3NCQUEzQixLQUFLO2dCQU1DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFNQyxZQUFZO3NCQURsQixLQUFLO2dCQU1VLFdBQVc7c0JBQTFCLEtBQUs7Z0JBS1UsZUFBZTtzQkFBOUIsS0FBSztnQkFNQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsS0FBSztnQkFNVSxJQUFJO3NCQUFuQixLQUFLO2dCQWdCQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBK0RLLGtCQUFrQjtzQkFENUIsS0FBSztnQkFvRGMsS0FBSztzQkFBeEIsS0FBSztnQkEwQ0ssS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcbmltcG9ydCB7IENvbnRyb2xIZWlnaHQgfSBmcm9tICcuLi9lbnVtcy9Db250cm9sSGVpZ2h0JztcbmltcG9ydCB7IElTYWNDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNJY29uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ljb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNMYWJlbFNpemVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTGFiZWxTaXplcyc7XG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xuaW1wb3J0IHsgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pYWJzdHJhY3Rjb250cm9sbGFiZWwnO1xuaW1wb3J0IHtcbiAgICBTQUNJQ09OX1NFUlZJQ0UsXG4gICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxuICAgIFNhY0RlZmF1bHRJY29uU2VydmljZSxcbiAgICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXG59IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSwgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTQUNMT0NBTElTQVRJT05fU0VSVklDRSwgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JJdGVtIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5nQ29udHJvbCxcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEFic3RyYWN0IEtsYXNzZSBmw7xyIFNhY0Jhc2VNb2RlbENvbnRyb2wuIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZWVycm9yZW5hYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGxvYWRpbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNhY01vZGVsIEZvcm0gaXN0IGRpc2FibGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZEZvcm06IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5lIFZhcmlhYmxlLCBkaWUgZGVuIFdlcnQgZGVzIENvbnRyb2xzIGjDpGx0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogVkFMVUUgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBsYXlvdXQgaW5zdGFuY2UgaWYgZXhpc3RzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBuZ0NvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIENvbnRyb2xIZWlnaHQ6IHR5cGVvZiBDb250cm9sSGVpZ2h0ID0gQ29udHJvbEhlaWdodDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YW5kYXJkIGhlaWdodCBvZiB0aGUgY29tcG9uZW50c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbXBvbmVudEhlaWdodDogQ29udHJvbEhlaWdodCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBMYWJlbCBpbSBUZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGhlbHB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3I6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogZGVmaW5lcyB0aGF0IHRoZSBsYWJlbHMgYXJlIGRpc3BsYXllZCBhcyBhZGFwdGl2ZSBsYWJlbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlVG91Y2hcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLCBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmZvcm1sYXlvdXQgPSBmb3JtbGF5b3V0O1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcbiAgICAgICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xuXG4gICAgICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDSUNPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5HZW5lcmljSGVscHRleHRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvciBtZXNzYWdlcyBpbmxpbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWt0aXZpZXJ0IG9kZXIgRGVha3RpdmllcnQgZGllIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpbmxpbmVlcnJvcmVuYWJsZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIFdlcnQgd2VubiBGb3JtIGludmFsaWQgb2RlciBuaWNodCBpbnZhbGlkIGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBpbmxpbmUgZXJyb3IgbWVzc2FnZXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBjb250cm9sLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYW4gb2JqZWN0IHdpdGggYWxsIGxhYmVsIHNpemVzLiBUaGVzZSB2YWx1ZXMgY2FuIHRoZW4gYmUgdHJhbnNmZXJyZWQgdG8gY29ycmVzcG9uZGluZyBDU1MgY2xhc3NlcyB1c2luZyBhIHBpcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGxhYmVsU2l6ZXMoKTogSVNhY0xhYmVsU2l6ZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXG4gICAgICAgICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhzOiB0aGlzLmxhYmVsU2l6ZVhzLFxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXG4gICAgICAgICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxuICAgICAgICAgICAgbGFiZWxTaXplTGc6IHRoaXMubGFiZWxTaXplTGcsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgdG91Y2hlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdWNoZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBNZXRob2RlIGbDvHIgTmdNb2RlbCBCaW5kaW5nIGluIEh0bWwgTWFya3VwXG4gICAgICogSW5wdXQgd2lyZCBiZW7DtnRpZ3QsIGRhbWl0IGRlciBXZXJ0IGF1Y2ggw7xiZXIgZGFzIE1hcmt1cCBnZXNldHp0IHdlcmRlbiBrYW5uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRXJyb3IgYW5oYW5kIHZvbiBnZWdlYmVuZW4gS3JpdGVyaWVuXG4gICAgICovXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB0aGlzLm5nQ29udHJvbC5lcnJvcnM7XG5cbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoZXJyb3JzKTtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xuXG4gICAgICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvckl0ZW0ucGFyYW1ldGVycy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1trXSA9IHY7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIHJlY2VpdmUgZm9ybSB2aWEgZm9ybWNvbnRyb2xuYW1lIG9yIGZvcm1jb250cm9sIGluc3RhbmNlXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuVXBkYXRlTGFiZWxUb0NvbnRyb2woKTtcblxuICAgICAgICAvLyBzZXQgbGFiZWwgc2l6ZXMgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldExhYmVsU2l6ZXMoKTtcblxuICAgICAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gc2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRJc0FkYXB0aXZlTGFiZWwoKTtcblxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcbiAgICAgICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcblxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNwbGl0TW9kZSgpO1xuXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIHRvdWNoZWQgPSB0cnVlXG4gICAgICovXG4gICAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RvdWNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIGltIENvbnRyb2wgbWl0YmVrb21tZW4ga8O2bm5lblxuICAgICAqIFp1ciDDhG5kZXJ1bmdzaW5mbyBkaWUgTWV0aG9kZSBwcm9wYWdhdGVDaGFuZ2UgYXVmcnVmZW4uXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIG1pdGJla29tbWVuLCB3ZW5uIGRhcyBDb250cm9sIGFrdGl2aWVydCAoRm9jdXMpIHdpcmQuXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSByZWdpc3RyaWVydCDDhG5kZXJ1bmdlbiBiZWkgZGVyIFZhbGlkaWVydW5nXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR6dCBkYXMgQ29udHJvbCBhdWYgRGlzYWJsZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkRm9ybSA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBkaWUgZGVuIFdlcnQgZGVzIElucHV0cyBzZXR6dFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYWx1ZSh2OiBWQUxVRSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgTWV0aG9kZVxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMudmFsaWRhdGVEYXRhKGMpO1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWJzdHJha3RlIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgenVtIHNjaHJlaWJlbiB2b24gV2VydGVuIGF1cyBkZW0gTW9kZWwgaW4gZGFzIENvbnRyb2xcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVkFMVUUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcbiAgICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGluIGRlbiBrb3JyZWt0ZW4gVHlwIGtvbnZlcnRpZXJ0IHdlcmRlbiBzb2xsXG4gICAgICogQHJldHVybnMgV2VydCBpbSBrb3JyZWt0ZW4gVHlwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIENvbnZlcnRJbnB1dFZhbHVlKHZhbHVlOiBWQUxVRSk6IFZBTFVFIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIEdldERlY2ltYWxTeW1ib2woKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gU2V0IFByb3BlcnRpZXMgYXQgQ2xhc3MgSW5pdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XG5cbiAgICAvKipcbiAgICAgKiBBa3R1YWxpc2llcnQgZGVuIE5nTW9kZWwgV2VydCB1bmQgZGllIEfDvGx0aWdrZWl0IGRlcyBWYWxpZGF0b3JzIGRlcyBDb250cm9sc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb21wb25lbnQgaGVpZ2h0IGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRIZWlnaHQoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBtb2RlIGZvciBoZWxwdGV4dC4gQ2FuIGJlIHRvb2x0aXAgb3IgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldElzQWRhcHRpdmVMYWJlbCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWRhcHRpdmVMYWJlbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaXNBZGFwdGl2ZUxhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IHRoaXMuZm9ybWxheW91dC5pc0FkYXB0aXZlTGFiZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldExhYmVsU2l6ZXMoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplU20pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVTbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIG1lZGl1bVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZU1kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZUxnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVMZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTGc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBleHRyYSBsYXJnZVxuICAgICAgICBpZiAoIXRoaXMubGFiZWxTaXplWHhsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYeGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYeGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExhYmVsU3BsaXRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuZm9ybWxheW91dC5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5TcGxpdExhYmVsQW5kSGVscHRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTFvZmVsbWpsNCIsImFjdHVhbENvdmVyYWdlIiwiQ29udHJvbEhlaWdodCIsIlNBQ0lDT05fU0VSVklDRSIsIlNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSIsIlNhY0RlZmF1bHRJY29uU2VydmljZSIsIlNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSIsIlNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJjb252ZXJ0VG9Cb29sZWFuIiwiY3JlYXRlR3VpZCIsIkRpcmVjdGl2ZSIsIkhvc3QiLCJJbnB1dCIsIkZvcm1Db250cm9sTmFtZSIsIkZvcm1Hcm91cERpcmVjdGl2ZSIsIk5nQ29udHJvbCIsIk9ic2VydmFibGUiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImUyZWlkZW50aWZpZXIiLCJoZWxwdGV4dCIsImlubGluZUVycm9yIiwiaXNBZGFwdGl2ZUxhYmVsIiwibGFiZWxTaXplTGciLCJsYWJlbFNpemVNZCIsImxhYmVsU2l6ZVNtIiwibGFiZWxTaXplWGwiLCJsYWJlbFNpemVYcyIsImxhYmVsU2l6ZVh4bCIsIm5hbWUiLCJwcm9wYWdhdGVDaGFuZ2UiLCJwcm9wYWdhdGVUb3VjaCIsInNwbGl0bGFiZWxhbmRoZWxwdGV4dCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiZ2V0IiwibG5nUmVzb3VyY2VTZXJ2aWNlIiwiY29uZmlndXJhdGlvblNlcnZpY2UiLCJpY29uU2VydmljZSIsIkhlbHB0ZXh0VG9vbHRpcEljb24iLCJHZW5lcmljSGVscHRleHRJY29uIiwiZGlydHkiLCJiIiwibmdDb250cm9sIiwidW5kZWZpbmVkIiwiaW5saW5lZXJyb3JlbmFibGVkIiwidmFsdWUiLCJpbnZhbGlkIiwiaXNkaXNhYmxlZCIsImlzaW5saW5lZXJyb3JlbmFibGVkIiwiSXNJbmxpbmVFcnJvckVuYWJsZWQiLCJJbmxpbmVFcnJvckVuYWJsZWQiLCJsYWJlbCIsInYiLCJVcGRhdGVMYWJlbFRvQ29udHJvbCIsImxhYmVsU2l6ZXMiLCJ0b3VjaGVkIiwiQ29udmVydElucHV0VmFsdWUiLCJHZXRFcnJvck1lc3NhZ2UiLCJlcnJvcnMiLCJvYnNlcnZlciIsIm5leHQiLCJjb21wbGV0ZSIsImxlbmd0aCIsImtleXMiLCJPYmplY3QiLCJlcnJvckl0ZW0iLCJwYXJhbWV0ZXJzIiwiZm9yRWFjaCIsImsiLCJmaWVsZE5hbWUiLCJHZXRTdHJpbmciLCJlcnJvck1lc3NhZ2VLZXkiLCJuZ09uSW5pdCIsImZvcm1Db250cm9sIiwiZm9ybSIsImdldENvbnRyb2wiLCJjb250cm9sIiwic2V0TGFiZWxTaXplcyIsInNldENvbXBvbmVudEhlaWdodCIsInNldElzQWRhcHRpdmVMYWJlbCIsInNldEhlbHBUZXh0TW9kZSIsInNldExhYmVsU3BsaXRNb2RlIiwiT25DbGFzc0luaXQiLCJvblRvdWNoIiwicmVnaXN0ZXJPbkNoYW5nZSIsImZuIiwib2JqIiwicmVnaXN0ZXJPblRvdWNoZWQiLCJyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlIiwiX29uQ2hhbmdlIiwic2V0RGlzYWJsZWRTdGF0ZSIsImlzRGlzYWJsZWQiLCJzZXRWYWx1ZSIsInZhbGlkYXRlIiwiYyIsImVycm9yIiwidmFsaWRhdGVEYXRhIiwid3JpdGVWYWx1ZSIsIkdldERlY2ltYWxTeW1ib2wiLCJVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5IiwidXBkYXRlVmFsdWVBbmRWYWxpZGl0eSIsIm9ubHlTZWxmIiwiY29udHJvbGxhYmVsIiwiQ29tcG9uZW50SGVpZ2h0IiwiaGVscHRleHRtb2RlIiwiSGVscHRleHRNb2RlIiwiTGFiZWxTaXplWHMiLCJMYWJlbFNpemVTbSIsIkxhYmVsU2l6ZU1kIiwiTGFiZWxTaXplTGciLCJMYWJlbFNpemVYbCIsIkxhYmVsU2l6ZVh4bCIsIlNwbGl0TGFiZWxBbmRIZWxwdGV4dCIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImhvc3QiLCJpMCIsIkluamVjdG9yIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZW1vZGVsY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGlydHk7IGRlZmF1bHQgV2VydCAtIGZhbHNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vbkNoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgdG91Y2hlZDsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIG5nQ29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbEhlaWdodCBlbnVtIGZvciB1c2UgaW4gSFRNTCBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgQ29udHJvbEhlaWdodDogdHlwZW9mIENvbnRyb2xIZWlnaHQgPSBDb250cm9sSGVpZ2h0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgc3RhbmRhcmQgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnRzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29tcG9uZW50SGVpZ2h0OiBDb250cm9sSGVpZ2h0IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEZWFrdGl2aWVydCBkYXMgSW5wdXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVha3RpdmllcnQgZGFzIExhYmVsIGltIFRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVsYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTW9kZSBmb3IgZGlzcGxheSBoZWxwdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhlbHB0ZXh0bW9kZTogJ3Rvb2x0aXAnIHwgJ3RleHQnIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgdGhhdCBlcnJvciBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIHVuZGVyIHRoZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmVFcnJvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0FkYXB0aXZlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZSBzaXplIGZvciBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTGc6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBtZWRpdW0gZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZU1kOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgY29sdW1uIHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBkZXMgQ29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLyoqXG4gICAgICogTGVlcmUgSW1wbGVtZW50YXRpb24gdm9uIFwicHJvcGFnYXRlQ2hhbmdlXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVUb3VjaFwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wYWdhdGVUb3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBEZXRhY2ggbGFiZWwgdGV4dCBhbmQgdG9vbHRpcCBmcm9tIGVhY2ggb3RoZXIgaW4gTGFiZWwgc28gdGhhdCBsYWJlbCBhbmQgdG9vbHRpcCBjYW4gYmUgYWxpZ25lZCBkaWZmZXJlbnRseS4gVGhpcyBpcyBpbiBCb290c3RyYXAgMyBub3Qgc3VwcG9ydGVkIVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNwbGl0bGFiZWxhbmRoZWxwdGV4dDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuZm9ybWxheW91dCA9IGZvcm1sYXlvdXQ7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKCkpO1xuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICAgICAgICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UoKSk7XG5cbiAgICAgICAgdGhpcy5pY29uU2VydmljZSA9IGluamVjdG9yLmdldChTQUNJQ09OX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0SWNvblNlcnZpY2UoKSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEdldCBJY29uIGZvciBIZWxwdGV4dCBUb29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldCBIZWxwdGV4dFRvb2x0aXBJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkdlbmVyaWNIZWxwdGV4dEljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgQm9vbGVhbiBXZXJ0IGbDvHIgZGlydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0aGlzLm5nQ29udHJvbC5kaXJ0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IGVycm9yIG1lc3NhZ2VzIGlubGluZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBa3RpdmllcnQgb2RlciBEZWFrdGl2aWVydCBkaWUgSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gV2VydCB3ZW5uIEZvcm0gaW52YWxpZCBvZGVyIG5pY2h0IGludmFsaWQgaXN0XG4gICAgICovXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkYXMgQ29udHJvbCBkaXNhYmxlZCBpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2lubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQgIT09IG51bGwgJiYgdGhpcy5mb3JtbGF5b3V0LklzSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtbGF5b3V0Py5Jc0lubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRlbiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNldCBsYWJlbCh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2O1xuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhbGwgbGFiZWwgc2l6ZXMuIFRoZXNlIHZhbHVlcyBjYW4gdGhlbiBiZSB0cmFuc2ZlcnJlZCB0byBjb3JyZXNwb25kaW5nIENTUyBjbGFzc2VzIHVzaW5nIGEgcGlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWxTaXplcygpOiBJU2FjTGFiZWxTaXplcyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbFNpemVTbTogdGhpcy5sYWJlbFNpemVTbSxcbiAgICAgICAgICAgIGxhYmVsU2l6ZU1kOiB0aGlzLmxhYmVsU2l6ZU1kLFxuICAgICAgICAgICAgbGFiZWxTaXplWHM6IHRoaXMubGFiZWxTaXplWHMsXG4gICAgICAgICAgICBsYWJlbFNpemVYbDogdGhpcy5sYWJlbFNpemVYbCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVh4bDogdGhpcy5sYWJlbFNpemVYeGwsXG4gICAgICAgICAgICBsYWJlbFNpemVMZzogdGhpcy5sYWJlbFNpemVMZyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXG4gICAgICovXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcbiAgICAgKiBJbnB1dCB3aXJkIGJlbsO2dGlndCwgZGFtaXQgZGVyIFdlcnQgYXVjaCDDvGJlciBkYXMgTWFya3VwIGdlc2V0enQgd2VyZGVuIGthbm4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHY6IFZBTFVFKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBlcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgYWRhcHRpdmUgbGFiZWwgcHJvcGVydHkgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xuXG4gICAgICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xuXG4gICAgICAgIC8vIHNldCBTcGxpdE1vZGUgZm9yIExhYmVsc1xuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XG5cbiAgICAgICAgdGhpcy5PbkNsYXNzSW5pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub3VjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gaW0gQ29udHJvbCBtaXRiZWtvbW1lbiBrw7ZubmVuXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlLCBkYW1pdCBhbmRlcmUgQ29udHJvbHMgw6RuZGVydW5nZW4gbWl0YmVrb21tZW4sIHdlbm4gZGFzIENvbnRyb2wgYWt0aXZpZXJ0IChGb2N1cykgd2lyZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIHJlZ2lzdHJpZXJ0IMOEbmRlcnVuZ2VuIGJlaSBkZXIgVmFsaWRpZXJ1bmdcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGRpZSBkZW4gV2VydCBkZXMgSW5wdXRzIHNldHp0XG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBNZXRob2RlXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBYnN0cmFrdGUgVmFsaWRhdG9yIE1ldGhvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBWQUxVRSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gT3ZlcndyaXRlbiBpbiBQYXJlbnQgQ2xhc3Nlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcmV0dXJucyBXZXJ0IGltIGtvcnJla3RlbiBUeXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGVjaW1hbCBTeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIHByaXZhdGUgVXBkYXRlTGFiZWxUb0NvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmZvcm1sYXlvdXQuY29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRIZWxwVGV4dE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmhlbHB0ZXh0bW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5mb3JtbGF5b3V0LmhlbHB0ZXh0bW9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkhlbHB0ZXh0TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBZGFwdGl2ZUxhYmVsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FkYXB0aXZlTGFiZWwgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBsYWJlbCBzaXplcyBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TGFiZWxTaXplcygpIHtcbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLlNwbGl0TGFiZWxBbmRIZWxwdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI4NHVEQWlOSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0FoTkosT0FBU0UsYUFBYSxLQUFRLHdCQUF3QixDQU90RCxPQUNJQyxlQUFlLENBQ2ZDLHdCQUF3QixDQUN4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
|
|
152
|
+
*/setLabelSizes(){cov_11ofelmjl4().f[40]++;cov_11ofelmjl4().s[130]++;this.setLabelMode();// floating labels need always full width
|
|
153
|
+
cov_11ofelmjl4().s[131]++;if(this.labelMode==='floating'){cov_11ofelmjl4().b[30][0]++;cov_11ofelmjl4().s[132]++;return;}else{cov_11ofelmjl4().b[30][1]++;}// set size extra small
|
|
154
|
+
cov_11ofelmjl4().s[133]++;if(!this.labelSizeXs){cov_11ofelmjl4().b[31][0]++;cov_11ofelmjl4().s[134]++;if(this.formlayout?.labelSizeXs){cov_11ofelmjl4().b[32][0]++;cov_11ofelmjl4().s[135]++;this.labelSizeXs=this.formlayout.labelSizeXs;}else{cov_11ofelmjl4().b[32][1]++;cov_11ofelmjl4().s[136]++;this.labelSizeXs=this.configurationService.LabelSizeXs;}}else{cov_11ofelmjl4().b[31][1]++;}// set size small
|
|
155
|
+
cov_11ofelmjl4().s[137]++;if(!this.labelSizeSm){cov_11ofelmjl4().b[33][0]++;cov_11ofelmjl4().s[138]++;if(this.formlayout?.labelSizeSm){cov_11ofelmjl4().b[34][0]++;cov_11ofelmjl4().s[139]++;this.labelSizeSm=this.formlayout.labelSizeSm;}else{cov_11ofelmjl4().b[34][1]++;cov_11ofelmjl4().s[140]++;this.labelSizeSm=this.configurationService.LabelSizeSm;}}else{cov_11ofelmjl4().b[33][1]++;}// set size medium
|
|
156
|
+
cov_11ofelmjl4().s[141]++;if(!this.labelSizeMd){cov_11ofelmjl4().b[35][0]++;cov_11ofelmjl4().s[142]++;if(this.formlayout?.labelSizeMd){cov_11ofelmjl4().b[36][0]++;cov_11ofelmjl4().s[143]++;this.labelSizeMd=this.formlayout.labelSizeMd;}else{cov_11ofelmjl4().b[36][1]++;cov_11ofelmjl4().s[144]++;this.labelSizeMd=this.configurationService.LabelSizeMd;}}else{cov_11ofelmjl4().b[35][1]++;}// set size large
|
|
157
|
+
cov_11ofelmjl4().s[145]++;if(!this.labelSizeLg){cov_11ofelmjl4().b[37][0]++;cov_11ofelmjl4().s[146]++;if(this.formlayout?.labelSizeLg){cov_11ofelmjl4().b[38][0]++;cov_11ofelmjl4().s[147]++;this.labelSizeLg=this.formlayout.labelSizeLg;}else{cov_11ofelmjl4().b[38][1]++;cov_11ofelmjl4().s[148]++;this.labelSizeLg=this.configurationService.LabelSizeLg;}}else{cov_11ofelmjl4().b[37][1]++;}// set size extra large
|
|
158
|
+
cov_11ofelmjl4().s[149]++;if(!this.labelSizeXl){cov_11ofelmjl4().b[39][0]++;cov_11ofelmjl4().s[150]++;if(this.formlayout?.labelSizeXl){cov_11ofelmjl4().b[40][0]++;cov_11ofelmjl4().s[151]++;this.labelSizeXl=this.formlayout.labelSizeXl;}else{cov_11ofelmjl4().b[40][1]++;cov_11ofelmjl4().s[152]++;this.labelSizeXl=this.configurationService.LabelSizeXl;}}else{cov_11ofelmjl4().b[39][1]++;}// set size extra extra large
|
|
159
|
+
cov_11ofelmjl4().s[153]++;if(!this.labelSizeXxl){cov_11ofelmjl4().b[41][0]++;cov_11ofelmjl4().s[154]++;if(this.formlayout?.labelSizeXxl){cov_11ofelmjl4().b[42][0]++;cov_11ofelmjl4().s[155]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_11ofelmjl4().b[42][1]++;cov_11ofelmjl4().s[156]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_11ofelmjl4().b[41][1]++;}}/**
|
|
160
|
+
* Sets the label split mode from property or parent layout control\n
|
|
161
|
+
**/setLabelSplitMode(){cov_11ofelmjl4().f[41]++;cov_11ofelmjl4().s[157]++;if(!this.splitlabelandhelptext){cov_11ofelmjl4().b[43][0]++;cov_11ofelmjl4().s[158]++;if(this.formlayout?.splitlabelandhelptext){cov_11ofelmjl4().b[44][0]++;cov_11ofelmjl4().s[159]++;this.splitlabelandhelptext=this.formlayout.splitlabelandhelptext;}else{cov_11ofelmjl4().b[44][1]++;cov_11ofelmjl4().s[160]++;this.splitlabelandhelptext=this.configurationService.SplitLabelAndHelptext;}}else{cov_11ofelmjl4().b[43][1]++;}}}cov_11ofelmjl4().s[161]++;SacBaseModelControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,deps:[{token:i1.SacFormLayoutCommon,host:true},{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});cov_11ofelmjl4().s[162]++;SacBaseModelControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseModelControl,inputs:{componentHeight:"componentHeight",disabled:"disabled",disablelabel:"disablelabel",e2eidentifier:"e2eidentifier",helptext:"helptext",helptextmode:"helptextmode",inlineError:"inlineError",labelMode:"labelMode",labelSizeLg:"labelSizeLg",labelSizeMd:"labelSizeMd",labelSizeSm:"labelSizeSm",labelSizeXl:"labelSizeXl",labelSizeXs:"labelSizeXs",labelSizeXxl:"labelSizeXxl",name:"name",splitlabelandhelptext:"splitlabelandhelptext",inlineerrorenabled:"inlineerrorenabled",label:"label",value:"value"},ngImport:i0});cov_11ofelmjl4().s[163]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_11ofelmjl4().f[42]++;cov_11ofelmjl4().s[164]++;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}],labelMode:[{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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBWSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUlILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUE4S3JDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQ1ksVUFBK0IsRUFDdEIsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXhMdkMscUJBQXFCO1FBRXJCOztXQUVHO1FBQ0ssd0JBQW1CLEdBQW1CLElBQUksQ0FBQztRQUVuRDs7V0FFRztRQUNLLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFPcEI7O1dBRUc7UUFDTyxXQUFNLEdBQUcs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SjtJQUNMLENBQUM7SUFFRDs7UUFFSTtJQUNJLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQzthQUNoRjtTQUNKO0lBQ0wsQ0FBQzs7Z0hBdHBCaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs7MEJBeUxELElBQUk7bUVBaEhGLGVBQWU7c0JBRHJCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFLVSxZQUFZO3NCQUEzQixLQUFLO2dCQU1DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFNQyxZQUFZO3NCQURsQixLQUFLO2dCQU1VLFdBQVc7c0JBQTFCLEtBQUs7Z0JBTUMsU0FBUztzQkFEZixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU1VLElBQUk7c0JBQW5CLEtBQUs7Z0JBZ0JDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFrRUssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQW9EYyxLQUFLO3NCQUF4QixLQUFLO2dCQTBDSyxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIFNhY0Jhc2VNb2RlbENvbnRyb2wuIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIElubGluZSBlcnJvcnMgZm9yIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGxvYWRpbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIHByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IHZhbHVlIC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2RpcnR5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTYWNNb2RlbCBmb3JtIGlzIGRpc2FibGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZEZvcm0gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIHByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgdmFsdWUgLSBmYWxzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGVycm9yIGxvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogbmdDb250cm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG5nQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sSGVpZ2h0IGVudW0gZm9yIHVzZSBpbiBIVE1MIG1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBDb250cm9sSGVpZ2h0OiB0eXBlb2YgQ29udHJvbEhlaWdodCA9IENvbnRyb2xIZWlnaHQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb21wb25lbnRIZWlnaHQ6IENvbnRyb2xIZWlnaHQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBpbnB1dCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgbGFiZWwgaW4gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVsYWJlbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3IgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgTW9kZSAnc3RhbmRhcmQnIHwgJ2Zsb2F0aW5nJyBvciBudWxsIChudWxsID0gdXNlIGdsb2JhbCBjb25maWd1cmF0aW9uKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsTW9kZTogJ3N0YW5kYXJkJyB8ICdmbG9hdGluZycgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZSBzaXplIGZvciBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTGc6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBtZWRpdW0gZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZU1kOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgY29sdW1uIHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXN0IGJlIGRvbmUgdG8gYXZvaWQgZXJyb3JzXG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBcInByb3BhZ2F0ZVRvdWNoXCIuIE11c3QgYmUgZG9uZSB0byBhdm9pZCBlcnJvcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtbGF5b3V0ID0gZm9ybWxheW91dDtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKSk7XG4gICAgICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXG4gICAgICAgICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSgpKTtcblxuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0IEljb24gZm9yIEhlbHB0ZXh0IFRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEhlbHB0ZXh0VG9vbHRpcEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuR2VuZXJpY0hlbHB0ZXh0SWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyBib29sZWFuIHZhbHVlIGZvciBkaXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXJ0eSA9IHRoaXMubmdDb250cm9sLmRpcnR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgZXJyb3IgbWVzc2FnZXMgaW5saW5lXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGlubGluZSBlcnJvcnMgZm9yIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZvcm0gaXMgaW52YWxpZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2lubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQgIT09IG51bGwgJiYgdGhpcy5mb3JtbGF5b3V0LklzSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtbGF5b3V0Py5Jc0lubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgbGFiZWwgdGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxhYmVsIHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGxhYmVsKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYWJlbCA9IHY7XG4gICAgICAgIHRoaXMuVXBkYXRlTGFiZWxUb0NvbnRyb2woKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbFNpemVzKCk6IElTYWNMYWJlbFNpemVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsU2l6ZVNtOiB0aGlzLmxhYmVsU2l6ZVNtLFxuICAgICAgICAgICAgbGFiZWxTaXplTWQ6IHRoaXMubGFiZWxTaXplTWQsXG4gICAgICAgICAgICBsYWJlbFNpemVYczogdGhpcy5sYWJlbFNpemVYcyxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhsOiB0aGlzLmxhYmVsU2l6ZVhsLFxuICAgICAgICAgICAgbGFiZWxTaXplWHhsOiB0aGlzLmxhYmVsU2l6ZVh4bCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZUxnOiB0aGlzLmxhYmVsU2l6ZUxnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIGJvb2xlYW4gdmFsdWUgZm9yIHRvdWNoZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBtZXRob2QgZm9yIE5nTW9kZWwgYmluZGluZyBpbiBIVE1MIG1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1ldGhvZCBmb3IgTmdNb2RlbCBiaW5kaW5nIGluIEhUTUwgbWFya3VwXG4gICAgICogSW5wdXQgaXMgcmVxdWlyZWQgc28gdGhhdCB0aGUgdmFsdWUgY2FuIGFsc28gYmUgc2V0IHZpYSB0aGUgbWFya3VwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHJldHVybnMgZXJyb3IgYmFzZWQgb24gZ2l2ZW4gY3JpdGVyaWFcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBlcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcbiAgICAgICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcblxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNwbGl0TW9kZSgpO1xuXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2Qgc2V0cyB0b3VjaGVkID0gdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvdWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBzbyB0aGF0IG90aGVyIGNvbnRyb2xzIGNhbiBiZSBub3RpZmllZCBvZiBjaGFuZ2VzIGluIHRoZSBjb250cm9sXG4gICAgICogRm9yIGNoYW5nZSBub3RpZmljYXRpb24sIGNhbGwgdGhlIHByb3BhZ2F0ZUNoYW5nZSBtZXRob2QuXG4gICAgICogQHBhcmFtIGZuIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBjaGFuZ2Ugbm90aWZpY2F0aW9uXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHNvIHRoYXQgb3RoZXIgY29udHJvbHMgY2FuIGJlIG5vdGlmaWVkIG9mIGNoYW5nZXMgd2hlbiB0aGUgY29udHJvbCBpcyBhY3RpdmF0ZWQgKGZvY3VzKS5cbiAgICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRvdWNoIG5vdGlmaWNhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZWdpc3RlcnMgY2hhbmdlcyBpbiB2YWxpZGF0aW9uXG4gICAgICogQHBhcmFtIGZuIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB2YWxpZGF0b3IgY2hhbmdlIG5vdGlmaWNhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29udHJvbCB0byBkaXNhYmxlZFxuICAgICAqIEBwYXJhbSBpc0Rpc2FibGVkIFRydWUgdG8gZGlzYWJsZSB0aGUgY29udHJvbCwgZmFsc2UgdG8gZW5hYmxlIGl0XG4gICAgICovXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZEZvcm0gPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIHRoZSBpbnB1dFxuICAgICAqIEBwYXJhbSB2IFRoZSB2YWx1ZSB0byBzZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIG1ldGhvZFxuICAgICAqIEBwYXJhbSBjIEZvcm0gY29udHJvbCB0byB2YWxpZGF0ZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRpb24gZXJyb3JzIG9yIG51bGwgaWYgdmFsaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLnZhbGlkYXRlRGF0YShjKTtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFic3RyYWN0IHZhbGlkYXRvciBtZXRob2QgZm9yIGZvcm0gY29udHJvbCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIERlcml2ZWQgY2xhc3NlcyBzaG91bGQgY2hlY2sgY29udHJvbCB2YWx1ZSBhbmQgcmV0dXJuIHZhbGlkYXRpb24gZXJyb3JzIG9yIG51bGwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYyBGb3JtIGNvbnRyb2wgYmVpbmcgdmFsaWRhdGVkXG4gICAgICogQHJldHVybnMgVmFsaWRhdGlvbkVycm9ycyBpZiBpbnZhbGlkLCBvdGhlcndpc2UgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgZm9yIHdyaXRpbmcgdmFsdWVzIGZyb20gdGhlIG1vZGVsIGludG8gdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyaXRlIHRvIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGluIHBhcmVudCBjbGFzc2VzXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB0aGUgY29ycmVjdCB0eXBlXG4gICAgICogQHJldHVybnMgVmFsdWUgaW4gdGhlIGNvcnJlY3QgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBDb252ZXJ0SW5wdXRWYWx1ZSh2YWx1ZTogVkFMVUUpOiBWQUxVRSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyB0aGUgZGVjaW1hbCBzeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIE5nTW9kZWwgdmFsdWUgYW5kIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29udHJvbCdzIHZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb21wb25lbnQgaGVpZ2h0IGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRIZWlnaHQoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBtb2RlIGZvciBoZWxwdGV4dC4gQ2FuIGJlIHRvb2x0aXAgb3IgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBsYWJlbCBkaXNwbGF5IG1vZGUgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldExhYmVsTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsTW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbE1vZGUgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxNb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsTW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmxvYXRpbmcgbGFiZWxzIG5lZWQgYWx3YXlzIGZ1bGwgd2lkdGhcbiAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnZmxvYXRpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IDEyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGxhYmVsIHNpemVzIGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xuICAgICAgICB0aGlzLnNldExhYmVsTW9kZSgpO1xuXG4gICAgICAgIC8vIGZsb2F0aW5nIGxhYmVscyBuZWVkIGFsd2F5cyBmdWxsIHdpZHRoXG4gICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ2Zsb2F0aW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxhYmVsIHNwbGl0IG1vZGUgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcXG5cbiAgICAgKiovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNwbGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmZvcm1sYXlvdXQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuU3BsaXRMYWJlbEFuZEhlbHB0ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdfQ==
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTFvZmVsbWpsNCIsImFjdHVhbENvdmVyYWdlIiwiQ29udHJvbEhlaWdodCIsIlNBQ0lDT05fU0VSVklDRSIsIlNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSIsIlNhY0RlZmF1bHRJY29uU2VydmljZSIsIlNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSIsIlNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJjb252ZXJ0VG9Cb29sZWFuIiwiY3JlYXRlR3VpZCIsIkRpcmVjdGl2ZSIsIkhvc3QiLCJJbnB1dCIsIkZvcm1Db250cm9sTmFtZSIsIkZvcm1Hcm91cERpcmVjdGl2ZSIsIk5nQ29udHJvbCIsIk9ic2VydmFibGUiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImUyZWlkZW50aWZpZXIiLCJoZWxwdGV4dCIsImlubGluZUVycm9yIiwibGFiZWxNb2RlIiwibGFiZWxTaXplTGciLCJsYWJlbFNpemVNZCIsImxhYmVsU2l6ZVNtIiwibGFiZWxTaXplWGwiLCJsYWJlbFNpemVYcyIsImxhYmVsU2l6ZVh4bCIsIm5hbWUiLCJwcm9wYWdhdGVDaGFuZ2UiLCJwcm9wYWdhdGVUb3VjaCIsInNwbGl0bGFiZWxhbmRoZWxwdGV4dCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiZ2V0IiwibG5nUmVzb3VyY2VTZXJ2aWNlIiwiY29uZmlndXJhdGlvblNlcnZpY2UiLCJpY29uU2VydmljZSIsIkhlbHB0ZXh0VG9vbHRpcEljb24iLCJHZW5lcmljSGVscHRleHRJY29uIiwiZGlydHkiLCJiIiwibmdDb250cm9sIiwidW5kZWZpbmVkIiwiaW5saW5lZXJyb3JlbmFibGVkIiwidmFsdWUiLCJpbnZhbGlkIiwiaXNkaXNhYmxlZCIsImlzaW5saW5lZXJyb3JlbmFibGVkIiwiSXNJbmxpbmVFcnJvckVuYWJsZWQiLCJJbmxpbmVFcnJvckVuYWJsZWQiLCJsYWJlbCIsInYiLCJVcGRhdGVMYWJlbFRvQ29udHJvbCIsImxhYmVsU2l6ZXMiLCJ0b3VjaGVkIiwiQ29udmVydElucHV0VmFsdWUiLCJHZXRFcnJvck1lc3NhZ2UiLCJlcnJvcnMiLCJvYnNlcnZlciIsIm5leHQiLCJjb21wbGV0ZSIsImxlbmd0aCIsImtleXMiLCJPYmplY3QiLCJlcnJvckl0ZW0iLCJwYXJhbWV0ZXJzIiwiZm9yRWFjaCIsImsiLCJmaWVsZE5hbWUiLCJHZXRTdHJpbmciLCJlcnJvck1lc3NhZ2VLZXkiLCJuZ09uSW5pdCIsImZvcm1Db250cm9sIiwiZm9ybSIsImdldENvbnRyb2wiLCJjb250cm9sIiwic2V0TGFiZWxTaXplcyIsInNldENvbXBvbmVudEhlaWdodCIsInNldEhlbHBUZXh0TW9kZSIsInNldExhYmVsU3BsaXRNb2RlIiwiT25DbGFzc0luaXQiLCJvblRvdWNoIiwicmVnaXN0ZXJPbkNoYW5nZSIsImZuIiwib2JqIiwicmVnaXN0ZXJPblRvdWNoZWQiLCJyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlIiwiX29uQ2hhbmdlIiwic2V0RGlzYWJsZWRTdGF0ZSIsImlzRGlzYWJsZWQiLCJzZXRWYWx1ZSIsInZhbGlkYXRlIiwiYyIsImVycm9yIiwidmFsaWRhdGVEYXRhIiwid3JpdGVWYWx1ZSIsIkdldERlY2ltYWxTeW1ib2wiLCJVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5IiwidXBkYXRlVmFsdWVBbmRWYWxpZGl0eSIsIm9ubHlTZWxmIiwiY29udHJvbGxhYmVsIiwiQ29tcG9uZW50SGVpZ2h0IiwiaGVscHRleHRtb2RlIiwiSGVscHRleHRNb2RlIiwic2V0TGFiZWxNb2RlIiwiTGFiZWxNb2RlIiwiTGFiZWxTaXplWHMiLCJMYWJlbFNpemVTbSIsIkxhYmVsU2l6ZU1kIiwiTGFiZWxTaXplTGciLCJMYWJlbFNpemVYbCIsIkxhYmVsU2l6ZVh4bCIsIlNwbGl0TGFiZWxBbmRIZWxwdGV4dCIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImhvc3QiLCJpMCIsIkluamVjdG9yIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZW1vZGVsY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ29udHJvbEhlaWdodCB9IGZyb20gJy4uL2VudW1zL0NvbnRyb2xIZWlnaHQnO1xuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY0xhYmVsU2l6ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMYWJlbFNpemVzJztcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQge1xuICAgIFNBQ0lDT05fU0VSVklDRSxcbiAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxuICAgIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvckl0ZW0gfSBmcm9tICcuLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgTmdDb250cm9sLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIFNhY0Jhc2VNb2RlbENvbnRyb2wuIEltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VNb2RlbENvbnRyb2w8VkFMVUU+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIElubGluZSBlcnJvcnMgZm9yIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5saW5lZXJyb3JlbmFibGVkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBUZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGxvYWRpbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGNvbnRyb2xzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIHByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IHZhbHVlIC0gZmFsc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2RpcnR5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTYWNNb2RlbCBmb3JtIGlzIGRpc2FibGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZEZvcm0gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCb29sZWFuIHByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgdmFsdWUgLSBmYWxzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbiA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBpY29uIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIGVycm9yIGxvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogbmdDb250cm9sXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG5nQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sSGVpZ2h0IGVudW0gZm9yIHVzZSBpbiBIVE1MIG1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBDb250cm9sSGVpZ2h0OiB0eXBlb2YgQ29udHJvbEhlaWdodCA9IENvbnRyb2xIZWlnaHQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb21wb25lbnRIZWlnaHQ6IENvbnRyb2xIZWlnaHQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBpbnB1dCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgbGFiZWwgaW4gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVsYWJlbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIHRoYXQgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCB1bmRlciB0aGUgY29udHJvbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5saW5lRXJyb3IgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgTW9kZSAnc3RhbmRhcmQnIHwgJ2Zsb2F0aW5nJyBvciBudWxsIChudWxsID0gdXNlIGdsb2JhbCBjb25maWd1cmF0aW9uKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsTW9kZTogJ3N0YW5kYXJkJyB8ICdmbG9hdGluZycgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZSBzaXplIGZvciBsYXJnZSBkZXZpY2VzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxTaXplTGc6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBtZWRpdW0gZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZU1kOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgZXh0cmEgbGFyZ2UgZGV2aWNlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsU2l6ZVhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGRlZmF1bHQgbGFiZWwgY29sdW1uIHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXN0IGJlIGRvbmUgdG8gYXZvaWQgZXJyb3JzXG4gICAgICovXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICAvKipcbiAgICAgKiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBcInByb3BhZ2F0ZVRvdWNoXCIuIE11c3QgYmUgZG9uZSB0byBhdm9pZCBlcnJvcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBIb3N0KCkgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtbGF5b3V0ID0gZm9ybWxheW91dDtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKSk7XG4gICAgICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXG4gICAgICAgICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSgpKTtcblxuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0IEljb24gZm9yIEhlbHB0ZXh0IFRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEhlbHB0ZXh0VG9vbHRpcEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuR2VuZXJpY0hlbHB0ZXh0SWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyBib29sZWFuIHZhbHVlIGZvciBkaXJ0eVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXJ0eSA9IHRoaXMubmdDb250cm9sLmRpcnR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgZXJyb3IgbWVzc2FnZXMgaW5saW5lXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGlubGluZSBlcnJvcnMgZm9yIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZvcm0gaXMgaW52YWxpZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc2lubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQgIT09IG51bGwgJiYgdGhpcy5mb3JtbGF5b3V0LklzSW5saW5lRXJyb3JFbmFibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtbGF5b3V0Py5Jc0lubGluZUVycm9yRW5hYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgbGFiZWwgdGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxhYmVsIHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGxhYmVsKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYWJlbCA9IHY7XG4gICAgICAgIHRoaXMuVXBkYXRlTGFiZWxUb0NvbnRyb2woKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXG4gICAgICovXG4gICAgcHVibGljIGdldCBsYWJlbFNpemVzKCk6IElTYWNMYWJlbFNpemVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsU2l6ZVNtOiB0aGlzLmxhYmVsU2l6ZVNtLFxuICAgICAgICAgICAgbGFiZWxTaXplTWQ6IHRoaXMubGFiZWxTaXplTWQsXG4gICAgICAgICAgICBsYWJlbFNpemVYczogdGhpcy5sYWJlbFNpemVYcyxcbiAgICAgICAgICAgIGxhYmVsU2l6ZVhsOiB0aGlzLmxhYmVsU2l6ZVhsLFxuICAgICAgICAgICAgbGFiZWxTaXplWHhsOiB0aGlzLmxhYmVsU2l6ZVh4bCxcbiAgICAgICAgICAgIGxhYmVsU2l6ZUxnOiB0aGlzLmxhYmVsU2l6ZUxnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIGJvb2xlYW4gdmFsdWUgZm9yIHRvdWNoZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBtZXRob2QgZm9yIE5nTW9kZWwgYmluZGluZyBpbiBIVE1MIG1hcmt1cFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVkFMVUUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG1ldGhvZCBmb3IgTmdNb2RlbCBiaW5kaW5nIGluIEhUTUwgbWFya3VwXG4gICAgICogSW5wdXQgaXMgcmVxdWlyZWQgc28gdGhhdCB0aGUgdmFsdWUgY2FuIGFsc28gYmUgc2V0IHZpYSB0aGUgbWFya3VwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBWQUxVRSkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLkNvbnZlcnRJbnB1dFZhbHVlKHYpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHJldHVybnMgZXJyb3IgYmFzZWQgb24gZ2l2ZW4gY3JpdGVyaWFcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhlcnJvcnMpO1xuXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlcnJvckl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBlcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xuXG4gICAgICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xuXG4gICAgICAgIC8vIHNldCBjb21wb25lbnQgaGVpZ3RoIGZyb20gZnJvbWxheW91dCBkaXJlY3RpdmVcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcbiAgICAgICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcblxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcbiAgICAgICAgdGhpcy5zZXRMYWJlbFNwbGl0TW9kZSgpO1xuXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2Qgc2V0cyB0b3VjaGVkID0gdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvdWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBzbyB0aGF0IG90aGVyIGNvbnRyb2xzIGNhbiBiZSBub3RpZmllZCBvZiBjaGFuZ2VzIGluIHRoZSBjb250cm9sXG4gICAgICogRm9yIGNoYW5nZSBub3RpZmljYXRpb24sIGNhbGwgdGhlIHByb3BhZ2F0ZUNoYW5nZSBtZXRob2QuXG4gICAgICogQHBhcmFtIGZuIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBjaGFuZ2Ugbm90aWZpY2F0aW9uXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IChvYmopID0+IGZuKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHNvIHRoYXQgb3RoZXIgY29udHJvbHMgY2FuIGJlIG5vdGlmaWVkIG9mIGNoYW5nZXMgd2hlbiB0aGUgY29udHJvbCBpcyBhY3RpdmF0ZWQgKGZvY3VzKS5cbiAgICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRvdWNoIG5vdGlmaWNhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZWdpc3RlcnMgY2hhbmdlcyBpbiB2YWxpZGF0aW9uXG4gICAgICogQHBhcmFtIGZuIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB2YWxpZGF0b3IgY2hhbmdlIG5vdGlmaWNhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29udHJvbCB0byBkaXNhYmxlZFxuICAgICAqIEBwYXJhbSBpc0Rpc2FibGVkIFRydWUgdG8gZGlzYWJsZSB0aGUgY29udHJvbCwgZmFsc2UgdG8gZW5hYmxlIGl0XG4gICAgICovXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZEZvcm0gPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIHRoZSBpbnB1dFxuICAgICAqIEBwYXJhbSB2IFRoZSB2YWx1ZSB0byBzZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIG1ldGhvZFxuICAgICAqIEBwYXJhbSBjIEZvcm0gY29udHJvbCB0byB2YWxpZGF0ZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRpb24gZXJyb3JzIG9yIG51bGwgaWYgdmFsaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBjb25zdCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSB0aGlzLnZhbGlkYXRlRGF0YShjKTtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFic3RyYWN0IHZhbGlkYXRvciBtZXRob2QgZm9yIGZvcm0gY29udHJvbCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIERlcml2ZWQgY2xhc3NlcyBzaG91bGQgY2hlY2sgY29udHJvbCB2YWx1ZSBhbmQgcmV0dXJuIHZhbGlkYXRpb24gZXJyb3JzIG9yIG51bGwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYyBGb3JtIGNvbnRyb2wgYmVpbmcgdmFsaWRhdGVkXG4gICAgICogQHJldHVybnMgVmFsaWRhdGlvbkVycm9ycyBpZiBpbnZhbGlkLCBvdGhlcndpc2UgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgZm9yIHdyaXRpbmcgdmFsdWVzIGZyb20gdGhlIG1vZGVsIGludG8gdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyaXRlIHRvIHRoZSBjb250cm9sXG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGluIHBhcmVudCBjbGFzc2VzXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB0aGUgY29ycmVjdCB0eXBlXG4gICAgICogQHJldHVybnMgVmFsdWUgaW4gdGhlIGNvcnJlY3QgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBDb252ZXJ0SW5wdXRWYWx1ZSh2YWx1ZTogVkFMVUUpOiBWQUxVRSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyB0aGUgZGVjaW1hbCBzeW1ib2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0RGVjaW1hbFN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIE9uQ2xhc3NJbml0KCk6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIE5nTW9kZWwgdmFsdWUgYW5kIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29udHJvbCdzIHZhbGlkYXRvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb21wb25lbnQgaGVpZ2h0IGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRIZWlnaHQoKSB7XG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRIZWlnaHQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkNvbXBvbmVudEhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBtb2RlIGZvciBoZWxwdGV4dC4gQ2FuIGJlIHRvb2x0aXAgb3IgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaGVscHRleHRtb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5oZWxwdGV4dG1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBsYWJlbCBkaXNwbGF5IG1vZGUgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldExhYmVsTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsTW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbE1vZGUgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxNb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsTW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxNb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmxvYXRpbmcgbGFiZWxzIG5lZWQgYWx3YXlzIGZ1bGwgd2lkdGhcbiAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnZmxvYXRpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IDEyO1xuICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IDEyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGxhYmVsIHNpemVzIGZyb20gcHJvcGVydHkgb3IgcGFyZW50IGxheW91dCBjb250cm9sXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xuICAgICAgICB0aGlzLnNldExhYmVsTW9kZSgpO1xuXG4gICAgICAgIC8vIGZsb2F0aW5nIGxhYmVscyBuZWVkIGFsd2F5cyBmdWxsIHdpZHRoXG4gICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ2Zsb2F0aW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgZXh0cmEgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplWHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHMgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgc21hbGxcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVTbSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplU207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2V0IHNpemUgbWVkaXVtXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVNZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTGcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZUxnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZUxnID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVMZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYeGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVh4bDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGxhYmVsIHNwbGl0IG1vZGUgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcXG5cbiAgICAgKiovXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNwbGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uc3BsaXRsYWJlbGFuZGhlbHB0ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdGxhYmVsYW5kaGVscHRleHQgPSB0aGlzLmZvcm1sYXlvdXQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuU3BsaXRMYWJlbEFuZEhlbHB0ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNc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
|