@simpleangularcontrols/sac-common 13.0.0-rc.10 → 13.0.0-rc.12
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 +99 -13
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +33 -25
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +73 -52
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +63 -28
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +27 -20
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
- package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts +2 -0
- package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts.map +1 -0
- package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts +2 -0
- package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts.map +1 -0
- package/controls/contextmenu/contextmenuitem.d.ts +6 -1
- package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +22 -21
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +28 -27
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +27 -27
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +26 -26
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +32 -44
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +5 -1
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/list/buildvaluestring.d.ts +7 -0
- package/controls/list/buildvaluestring.d.ts.map +1 -0
- package/controls/list/buildvaluestring.ngfactory.d.ts +2 -0
- package/controls/list/buildvaluestring.ngfactory.d.ts.map +1 -0
- package/controls/list/buildvaluestring.ngsummary.d.ts +2 -0
- package/controls/list/buildvaluestring.ngsummary.d.ts.map +1 -0
- package/controls/list/dropdown.d.ts +9 -53
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdown.ngfactory.d.ts +0 -1
- package/controls/list/dropdown.ngfactory.d.ts.map +1 -1
- package/controls/list/dropdown.ngsummary.d.ts +0 -1
- package/controls/list/dropdown.ngsummary.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +42 -0
- package/controls/list/dropdownoptions.d.ts.map +1 -0
- package/controls/list/dropdownoptions.ngfactory.d.ts +4 -0
- package/controls/list/dropdownoptions.ngfactory.d.ts.map +1 -0
- package/controls/list/dropdownoptions.ngsummary.d.ts +2 -0
- package/controls/list/dropdownoptions.ngsummary.d.ts.map +1 -0
- package/controls/static/formcontainer.d.ts +12 -4
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +33 -51
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +109 -109
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/treeview/treeview.ngfactory.d.ts +1 -1
- package/controls/treeview/treeview.ngsummary.d.ts +1 -1
- package/esm2020/common/basedatetimecontrol.mjs +65 -27
- package/esm2020/common/basemodelcontrol.mjs +73 -68
- package/esm2020/common/baseuploadcontrol.mjs +66 -57
- package/esm2020/controls/checkbox/radiobutton.mjs +43 -26
- package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -0
- package/esm2020/controls/contextmenu/contextmenu.interface.ngfactory.mjs +3 -0
- package/esm2020/controls/contextmenu/contextmenu.interface.ngsummary.mjs +3 -0
- package/esm2020/controls/contextmenu/contextmenu.mjs +14 -14
- package/esm2020/controls/contextmenu/contextmenuitem.mjs +7 -4
- package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +23 -15
- package/esm2020/controls/datetime/date.mjs +29 -30
- package/esm2020/controls/datetime/datetime.mjs +28 -30
- package/esm2020/controls/datetime/time.mjs +28 -30
- package/esm2020/controls/dialog/dialog.mjs +28 -41
- package/esm2020/controls/layout/formlayout.mjs +7 -8
- package/esm2020/controls/list/buildvaluestring.mjs +10 -0
- package/esm2020/controls/list/buildvaluestring.ngfactory.mjs +3 -0
- package/esm2020/controls/list/buildvaluestring.ngsummary.mjs +3 -0
- package/esm2020/controls/list/dropdown.mjs +22 -67
- package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -3
- package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
- package/esm2020/controls/list/dropdownoptions.mjs +22 -0
- package/esm2020/controls/list/dropdownoptions.ngfactory.mjs +3 -0
- package/esm2020/controls/list/dropdownoptions.ngsummary.mjs +3 -0
- package/esm2020/controls/static/formcontainer.mjs +12 -8
- package/esm2020/controls/tooltip/tooltip.mjs +43 -71
- package/esm2020/controls/treeview/treeview.mjs +102 -96
- package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -3
- package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -3
- package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.mjs +3 -3
- package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -0
- package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -0
- package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -0
- package/esm2020/interfaces/treeviewaction.interface.mjs +3 -0
- package/esm2020/interfaces/treeviewaction.interface.ngfactory.mjs +3 -0
- package/esm2020/interfaces/treeviewaction.interface.ngsummary.mjs +3 -0
- package/esm2020/public_api.mjs +6 -6
- package/esm2020/services/sac-configuration.service.mjs +8 -10
- package/esm2020/services/sac-icon.service.mjs +16 -8
- package/esm2020/utilities/enums.mjs +5 -3
- package/esm2020/utilities/popuphelper.mjs +80 -0
- package/esm2020/utilities/popuphelper.ngfactory.mjs +3 -0
- package/esm2020/utilities/popuphelper.ngsummary.mjs +3 -0
- package/esm2020/validation/equals.validator.mjs +3 -0
- package/esm2020/validation/equals.validator.ngfactory.mjs +3 -0
- package/esm2020/validation/equals.validator.ngsummary.mjs +3 -0
- package/esm2020/validation/notequals.validator.mjs +3 -0
- package/esm2020/validation/notequals.validator.ngfactory.mjs +3 -0
- package/esm2020/validation/notequals.validator.ngsummary.mjs +3 -0
- package/esm2020/validation/validation.mjs +40 -26
- package/fesm2015/simpleangularcontrols-sac-common.mjs +1358 -1253
- package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-common.mjs +1358 -1253
- package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +11 -7
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacIconService.d.ts +18 -2
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
- package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -0
- package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +2 -0
- package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts.map +1 -0
- package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +2 -0
- package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts.map +1 -0
- package/interfaces/treeviewaction.interface.d.ts +5 -0
- package/interfaces/treeviewaction.interface.d.ts.map +1 -0
- package/interfaces/treeviewaction.interface.ngfactory.d.ts +2 -0
- package/interfaces/treeviewaction.interface.ngfactory.d.ts.map +1 -0
- package/interfaces/treeviewaction.interface.ngsummary.d.ts +2 -0
- package/interfaces/treeviewaction.interface.ngsummary.d.ts.map +1 -0
- package/package.json +1 -1
- package/public_api.d.ts +6 -5
- package/public_api.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-icon.service.d.ts +33 -1
- package/services/sac-icon.service.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-13.0.0-rc.12.tgz +0 -0
- package/utilities/enums.d.ts +3 -1
- package/utilities/enums.d.ts.map +1 -1
- package/utilities/popuphelper.d.ts +84 -0
- package/utilities/popuphelper.d.ts.map +1 -0
- package/utilities/popuphelper.ngfactory.d.ts +2 -0
- package/utilities/popuphelper.ngfactory.d.ts.map +1 -0
- package/utilities/popuphelper.ngsummary.d.ts +2 -0
- package/utilities/popuphelper.ngsummary.d.ts.map +1 -0
- package/validation/equals.validator.d.ts +3 -0
- package/validation/equals.validator.d.ts.map +1 -0
- package/validation/equals.validator.ngfactory.d.ts +2 -0
- package/validation/equals.validator.ngfactory.d.ts.map +1 -0
- package/validation/equals.validator.ngsummary.d.ts +2 -0
- package/validation/equals.validator.ngsummary.d.ts.map +1 -0
- package/validation/notequals.validator.d.ts +3 -0
- package/validation/notequals.validator.d.ts.map +1 -0
- package/validation/notequals.validator.ngfactory.d.ts +2 -0
- package/validation/notequals.validator.ngfactory.d.ts.map +1 -0
- package/validation/notequals.validator.ngsummary.d.ts +2 -0
- package/validation/notequals.validator.ngsummary.d.ts.map +1 -0
- package/validation/validation.d.ts +24 -6
- package/validation/validation.d.ts.map +1 -1
- package/controls/treeview/ngtreeitemaction.d.ts +0 -44
- package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
- package/controls/treeview/ngtreeitemaction.ngfactory.d.ts +0 -4
- package/controls/treeview/ngtreeitemaction.ngfactory.d.ts.map +0 -1
- package/controls/treeview/ngtreeitemaction.ngsummary.d.ts +0 -2
- package/controls/treeview/ngtreeitemaction.ngsummary.d.ts.map +0 -1
- package/controls/treeview/treeviewchild.d.ts +0 -16
- package/controls/treeview/treeviewchild.d.ts.map +0 -1
- package/controls/treeview/treeviewchild.ngfactory.d.ts +0 -4
- package/controls/treeview/treeviewchild.ngfactory.d.ts.map +0 -1
- package/controls/treeview/treeviewchild.ngsummary.d.ts +0 -2
- package/controls/treeview/treeviewchild.ngsummary.d.ts.map +0 -1
- package/esm2020/controls/treeview/ngtreeitemaction.mjs +0 -16
- package/esm2020/controls/treeview/ngtreeitemaction.ngfactory.mjs +0 -3
- package/esm2020/controls/treeview/ngtreeitemaction.ngsummary.mjs +0 -3
- package/esm2020/controls/treeview/treeviewchild.mjs +0 -8
- package/esm2020/controls/treeview/treeviewchild.ngfactory.mjs +0 -3
- package/esm2020/controls/treeview/treeviewchild.ngsummary.mjs +0 -3
- package/simpleangularcontrols-sac-common-13.0.0-rc.10.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function cov_1p13oaoc7g(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\common\\basemodelcontrol.mjs";var hash="8f0ee406d6b22746c456819321caa0d412ce4045";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\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:30,column:8},end:{line:30,column:25}},"3":{start:{line:34,column:8},end:{line:34,column:28}},"4":{start:{line:38,column:8},end:{line:38,column:35}},"5":{start:{line:42,column:8},end:{line:42,column:30}},"6":{start:{line:46,column:8},end:{line:46,column:27}},"7":{start:{line:50,column:8},end:{line:50,column:31}},"8":{start:{line:54,column:8},end:{line:54,column:36}},"9":{start:{line:58,column:8},end:{line:58,column:30}},"10":{start:{line:62,column:8},end:{line:62,column:34}},"11":{start:{line:66,column:8},end:{line:66,column:27}},"12":{start:{line:70,column:8},end:{line:70,column:32}},"13":{start:{line:74,column:8},end:{line:74,column:37}},"14":{start:{line:78,column:8},end:{line:78,column:32}},"15":{start:{line:82,column:8},end:{line:82,column:32}},"16":{start:{line:86,column:8},end:{line:86,column:32}},"17":{start:{line:90,column:8},end:{line:90,column:32}},"18":{start:{line:94,column:8},end:{line:94,column:32}},"19":{start:{line:98,column:8},end:{line:98,column:33}},"20":{start:{line:102,column:8},end:{line:102,column:33}},"21":{start:{line:106,column:8},end:{line:106,column:43}},"22":{start:{line:110,column:8},end:{line:110,column:41}},"23":{start:{line:114,column:8},end:{line:114,column:40}},"24":{start:{line:115,column:8},end:{line:115,column:37}},"25":{start:{line:116,column:8},end:{line:116,column:113}},"26":{start:{line:117,column:8},end:{line:117,column:134}},"27":{start:{line:118,column:8},end:{line:118,column:113}},"28":{start:{line:119,column:8},end:{line:119,column:86}},"29":{start:{line:127,column:8},end:{line:132,column:9}},"30":{start:{line:128,column:12},end:{line:128,column:44}},"31":{start:{line:131,column:12},end:{line:131,column:63}},"32":{start:{line:138,column:8},end:{line:138,column:24}},"33":{start:{line:139,column:8},end:{line:139,column:36}},"34":{start:{line:146,column:8},end:{line:148,column:9}},"35":{start:{line:147,column:12},end:{line:147,column:19}},"36":{start:{line:149,column:8},end:{line:149,column:48}},"37":{start:{line:150,column:8},end:{line:150,column:42}},"38":{start:{line:156,column:8},end:{line:156,column:52}},"39":{start:{line:162,column:8},end:{line:164,column:9}},"40":{start:{line:163,column:12},end:{line:163,column:47}},"41":{start:{line:165,column:8},end:{line:165,column:27}},"42":{start:{line:171,column:8},end:{line:171,column:40}},"43":{start:{line:177,column:8},end:{line:179,column:36}},"44":{start:{line:185,column:8},end:{line:185,column:51}},"45":{start:{line:191,column:8},end:{line:193,column:9}},"46":{start:{line:192,column:12},end:{line:192,column:44}},"47":{start:{line:194,column:8},end:{line:197,column:9}},"48":{start:{line:196,column:12},end:{line:196,column:57}},"49":{start:{line:198,column:8},end:{line:200,column:9}},"50":{start:{line:199,column:12},end:{line:199,column:64}},"51":{start:{line:201,column:8},end:{line:201,column:20}},"52":{start:{line:207,column:8},end:{line:207,column:27}},"53":{start:{line:213,column:8},end:{line:220,column:10}},"54":{start:{line:226,column:8},end:{line:228,column:9}},"55":{start:{line:227,column:12},end:{line:227,column:51}},"56":{start:{line:229,column:8},end:{line:229,column:29}},"57":{start:{line:235,column:8},end:{line:235,column:27}},"58":{start:{line:243,column:8},end:{line:248,column:9}},"59":{start:{line:244,column:12},end:{line:247,column:15}},"60":{start:{line:245,column:16},end:{line:245,column:34}},"61":{start:{line:246,column:16},end:{line:246,column:36}},"62":{start:{line:249,column:23},end:{line:249,column:44}},"63":{start:{line:250,column:8},end:{line:255,column:9}},"64":{start:{line:251,column:12},end:{line:254,column:15}},"65":{start:{line:252,column:16},end:{line:252,column:34}},"66":{start:{line:253,column:16},end:{line:253,column:36}},"67":{start:{line:256,column:21},end:{line:256,column:40}},"68":{start:{line:257,column:8},end:{line:262,column:9}},"69":{start:{line:258,column:12},end:{line:261,column:15}},"70":{start:{line:259,column:16},end:{line:259,column:34}},"71":{start:{line:260,column:16},end:{line:260,column:36}},"72":{start:{line:263,column:26},end:{line:263,column:41}},"73":{start:{line:265,column:27},end:{line:265,column:29}},"74":{start:{line:266,column:8},end:{line:270,column:9}},"75":{start:{line:267,column:12},end:{line:269,column:15}},"76":{start:{line:268,column:16},end:{line:268,column:34}},"77":{start:{line:271,column:8},end:{line:271,column:50}},"78":{start:{line:272,column:8},end:{line:272,column:88}},"79":{start:{line:279,column:28},end:{line:279,column:62}},"80":{start:{line:280,column:8},end:{line:288,column:9}},"81":{start:{line:281,column:25},end:{line:281,column:68}},"82":{start:{line:282,column:12},end:{line:282,column:58}},"83":{start:{line:285,column:12},end:{line:287,column:13}},"84":{start:{line:286,column:16},end:{line:286,column:53}},"85":{start:{line:289,column:8},end:{line:289,column:36}},"86":{start:{line:291,column:8},end:{line:291,column:29}},"87":{start:{line:293,column:8},end:{line:293,column:34}},"88":{start:{line:295,column:8},end:{line:295,column:34}},"89":{start:{line:297,column:8},end:{line:297,column:31}},"90":{start:{line:298,column:8},end:{line:298,column:27}},"91":{start:{line:304,column:8},end:{line:304,column:29}},"92":{start:{line:305,column:8},end:{line:305,column:30}},"93":{start:{line:312,column:8},end:{line:312,column:48}},"94":{start:{line:312,column:40},end:{line:312,column:47}},"95":{start:{line:318,column:8},end:{line:318,column:47}},"96":{start:{line:318,column:39},end:{line:318,column:46}},"97":{start:{line:324,column:8},end:{line:324,column:28}},"98":{start:{line:330,column:8},end:{line:330,column:40}},"99":{start:{line:336,column:8},end:{line:336,column:23}},"100":{start:{line:342,column:22},end:{line:342,column:42}},"101":{start:{line:343,column:8},end:{line:343,column:21}},"102":{start:{line:349,column:8},end:{line:349,column:28}},"103":{start:{line:359,column:8},end:{line:359,column:21}},"104":{start:{line:365,column:8},end:{line:365,column:19}},"105":{start:{line:375,column:8},end:{line:377,column:9}},"106":{start:{line:376,column:12},end:{line:376,column:70}},"107":{start:{line:383,column:8},end:{line:385,column:9}},"108":{start:{line:384,column:12},end:{line:384,column:53}},"109":{start:{line:392,column:8},end:{line:399,column:9}},"110":{start:{line:393,column:12},end:{line:398,column:13}},"111":{start:{line:394,column:16},end:{line:394,column:71}},"112":{start:{line:397,column:16},end:{line:397,column:81}},"113":{start:{line:405,column:8},end:{line:412,column:9}},"114":{start:{line:406,column:12},end:{line:411,column:13}},"115":{start:{line:407,column:16},end:{line:407,column:65}},"116":{start:{line:410,column:16},end:{line:410,column:75}},"117":{start:{line:418,column:8},end:{line:425,column:9}},"118":{start:{line:419,column:12},end:{line:424,column:13}},"119":{start:{line:420,column:16},end:{line:420,column:71}},"120":{start:{line:423,column:16},end:{line:423,column:45}},"121":{start:{line:432,column:8},end:{line:439,column:9}},"122":{start:{line:433,column:12},end:{line:438,column:13}},"123":{start:{line:434,column:16},end:{line:434,column:63}},"124":{start:{line:437,column:16},end:{line:437,column:73}},"125":{start:{line:441,column:8},end:{line:448,column:9}},"126":{start:{line:442,column:12},end:{line:447,column:13}},"127":{start:{line:443,column:16},end:{line:443,column:63}},"128":{start:{line:446,column:16},end:{line:446,column:73}},"129":{start:{line:450,column:8},end:{line:457,column:9}},"130":{start:{line:451,column:12},end:{line:456,column:13}},"131":{start:{line:452,column:16},end:{line:452,column:63}},"132":{start:{line:455,column:16},end:{line:455,column:73}},"133":{start:{line:459,column:8},end:{line:466,column:9}},"134":{start:{line:460,column:12},end:{line:465,column:13}},"135":{start:{line:461,column:16},end:{line:461,column:63}},"136":{start:{line:464,column:16},end:{line:464,column:73}},"137":{start:{line:468,column:8},end:{line:475,column:9}},"138":{start:{line:469,column:12},end:{line:474,column:13}},"139":{start:{line:470,column:16},end:{line:470,column:63}},"140":{start:{line:473,column:16},end:{line:473,column:73}},"141":{start:{line:477,column:8},end:{line:484,column:9}},"142":{start:{line:478,column:12},end:{line:483,column:13}},"143":{start:{line:479,column:16},end:{line:479,column:65}},"144":{start:{line:482,column:16},end:{line:482,column:75}},"145":{start:{line:487,column:0},end:{line:487,column:252}},"146":{start:{line:488,column:0},end:{line:488,column:611}},"147":{start:{line:489,column:0},end:{line:527,column:20}},"148":{start:{line:491,column:42},end:{line:493,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:120,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:110,column:31},end:{line:110,column:32}},loc:{start:{line:110,column:37},end:{line:110,column:40}},line:110},"2":{name:"(anonymous_2)",decl:{start:{line:114,column:30},end:{line:114,column:31}},loc:{start:{line:114,column:36},end:{line:114,column:39}},line:114},"3":{name:"(anonymous_3)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:34},end:{line:133,column:5}},line:126},"4":{name:"(anonymous_4)",decl:{start:{line:137,column:4},end:{line:137,column:5}},loc:{start:{line:137,column:17},end:{line:140,column:5}},line:137},"5":{name:"(anonymous_5)",decl:{start:{line:145,column:4},end:{line:145,column:5}},loc:{start:{line:145,column:17},end:{line:151,column:5}},line:145},"6":{name:"(anonymous_6)",decl:{start:{line:155,column:4},end:{line:155,column:5}},loc:{start:{line:155,column:30},end:{line:157,column:5}},line:155},"7":{name:"(anonymous_7)",decl:{start:{line:161,column:4},end:{line:161,column:5}},loc:{start:{line:161,column:16},end:{line:166,column:5}},line:161},"8":{name:"(anonymous_8)",decl:{start:{line:170,column:4},end:{line:170,column:5}},loc:{start:{line:170,column:29},end:{line:172,column:5}},line:170},"9":{name:"(anonymous_9)",decl:{start:{line:176,column:4},end:{line:176,column:5}},loc:{start:{line:176,column:18},end:{line:180,column:5}},line:176},"10":{name:"(anonymous_10)",decl:{start:{line:184,column:4},end:{line:184,column:5}},loc:{start:{line:184,column:21},end:{line:186,column:5}},line:184},"11":{name:"(anonymous_11)",decl:{start:{line:190,column:4},end:{line:190,column:5}},loc:{start:{line:190,column:31},end:{line:202,column:5}},line:190},"12":{name:"(anonymous_12)",decl:{start:{line:206,column:4},end:{line:206,column:5}},loc:{start:{line:206,column:16},end:{line:208,column:5}},line:206},"13":{name:"(anonymous_13)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:21},end:{line:221,column:5}},line:212},"14":{name:"(anonymous_14)",decl:{start:{line:225,column:4},end:{line:225,column:5}},loc:{start:{line:225,column:18},end:{line:230,column:5}},line:225},"15":{name:"(anonymous_15)",decl:{start:{line:234,column:4},end:{line:234,column:5}},loc:{start:{line:234,column:16},end:{line:236,column:5}},line:234},"16":{name:"(anonymous_16)",decl:{start:{line:242,column:4},end:{line:242,column:5}},loc:{start:{line:242,column:22},end:{line:273,column:5}},line:242},"17":{name:"(anonymous_17)",decl:{start:{line:244,column:34},end:{line:244,column:35}},loc:{start:{line:244,column:48},end:{line:247,column:13}},line:244},"18":{name:"(anonymous_18)",decl:{start:{line:251,column:34},end:{line:251,column:35}},loc:{start:{line:251,column:48},end:{line:254,column:13}},line:251},"19":{name:"(anonymous_19)",decl:{start:{line:258,column:34},end:{line:258,column:35}},loc:{start:{line:258,column:48},end:{line:261,column:13}},line:258},"20":{name:"(anonymous_20)",decl:{start:{line:267,column:41},end:{line:267,column:42}},loc:{start:{line:267,column:51},end:{line:269,column:13}},line:267},"21":{name:"(anonymous_21)",decl:{start:{line:277,column:4},end:{line:277,column:5}},loc:{start:{line:277,column:15},end:{line:299,column:5}},line:277},"22":{name:"(anonymous_22)",decl:{start:{line:303,column:4},end:{line:303,column:5}},loc:{start:{line:303,column:14},end:{line:306,column:5}},line:303},"23":{name:"(anonymous_23)",decl:{start:{line:311,column:4},end:{line:311,column:5}},loc:{start:{line:311,column:25},end:{line:313,column:5}},line:311},"24":{name:"(anonymous_24)",decl:{start:{line:312,column:31},end:{line:312,column:32}},loc:{start:{line:312,column:40},end:{line:312,column:47}},line:312},"25":{name:"(anonymous_25)",decl:{start:{line:317,column:4},end:{line:317,column:5}},loc:{start:{line:317,column:26},end:{line:319,column:5}},line:317},"26":{name:"(anonymous_26)",decl:{start:{line:318,column:30},end:{line:318,column:31}},loc:{start:{line:318,column:39},end:{line:318,column:46}},line:318},"27":{name:"(anonymous_27)",decl:{start:{line:323,column:4},end:{line:323,column:5}},loc:{start:{line:323,column:34},end:{line:325,column:5}},line:323},"28":{name:"(anonymous_28)",decl:{start:{line:329,column:4},end:{line:329,column:5}},loc:{start:{line:329,column:33},end:{line:331,column:5}},line:329},"29":{name:"(anonymous_29)",decl:{start:{line:335,column:4},end:{line:335,column:5}},loc:{start:{line:335,column:16},end:{line:337,column:5}},line:335},"30":{name:"(anonymous_30)",decl:{start:{line:341,column:4},end:{line:341,column:5}},loc:{start:{line:341,column:16},end:{line:344,column:5}},line:341},"31":{name:"(anonymous_31)",decl:{start:{line:348,column:4},end:{line:348,column:5}},loc:{start:{line:348,column:22},end:{line:350,column:5}},line:348},"32":{name:"(anonymous_32)",decl:{start:{line:358,column:4},end:{line:358,column:5}},loc:{start:{line:358,column:29},end:{line:360,column:5}},line:358},"33":{name:"(anonymous_33)",decl:{start:{line:364,column:4},end:{line:364,column:5}},loc:{start:{line:364,column:23},end:{line:366,column:5}},line:364},"34":{name:"(anonymous_34)",decl:{start:{line:370,column:4},end:{line:370,column:5}},loc:{start:{line:370,column:18},end:{line:370,column:21}},line:370},"35":{name:"(anonymous_35)",decl:{start:{line:374,column:4},end:{line:374,column:5}},loc:{start:{line:374,column:29},end:{line:378,column:5}},line:374},"36":{name:"(anonymous_36)",decl:{start:{line:381,column:4},end:{line:381,column:5}},loc:{start:{line:381,column:27},end:{line:386,column:5}},line:381},"37":{name:"(anonymous_37)",decl:{start:{line:390,column:4},end:{line:390,column:5}},loc:{start:{line:390,column:25},end:{line:400,column:5}},line:390},"38":{name:"(anonymous_38)",decl:{start:{line:404,column:4},end:{line:404,column:5}},loc:{start:{line:404,column:22},end:{line:413,column:5}},line:404},"39":{name:"(anonymous_39)",decl:{start:{line:417,column:4},end:{line:417,column:5}},loc:{start:{line:417,column:25},end:{line:426,column:5}},line:417},"40":{name:"(anonymous_40)",decl:{start:{line:430,column:4},end:{line:430,column:5}},loc:{start:{line:430,column:20},end:{line:485,column:5}},line:430},"41":{name:"(anonymous_41)",decl:{start:{line:491,column:28},end:{line:491,column:29}},loc:{start:{line:491,column:40},end:{line:493,column:47}},line:491}},branchMap:{"0":{loc:{start:{line:127,column:8},end:{line:132,column:9}},type:"if",locations:[{start:{line:127,column:8},end:{line:132,column:9}},{start:{line:127,column:8},end:{line:132,column:9}}],line:127},"1":{loc:{start:{line:127,column:12},end:{line:127,column:49}},type:"binary-expr",locations:[{start:{line:127,column:12},end:{line:127,column:26}},{start:{line:127,column:30},end:{line:127,column:49}}],line:127},"2":{loc:{start:{line:146,column:8},end:{line:148,column:9}},type:"if",locations:[{start:{line:146,column:8},end:{line:148,column:9}},{start:{line:146,column:8},end:{line:148,column:9}}],line:146},"3":{loc:{start:{line:162,column:8},end:{line:164,column:9}},type:"if",locations:[{start:{line:162,column:8},end:{line:164,column:9}},{start:{line:162,column:8},end:{line:164,column:9}}],line:162},"4":{loc:{start:{line:177,column:16},end:{line:179,column:34}},type:"binary-expr",locations:[{start:{line:177,column:16},end:{line:177,column:44}},{start:{line:178,column:12},end:{line:178,column:35}},{start:{line:179,column:12},end:{line:179,column:34}}],line:177},"5":{loc:{start:{line:185,column:15},end:{line:185,column:50}},type:"binary-expr",locations:[{start:{line:185,column:15},end:{line:185,column:33}},{start:{line:185,column:37},end:{line:185,column:50}}],line:185},"6":{loc:{start:{line:191,column:8},end:{line:193,column:9}},type:"if",locations:[{start:{line:191,column:8},end:{line:193,column:9}},{start:{line:191,column:8},end:{line:193,column:9}}],line:191},"7":{loc:{start:{line:194,column:8},end:{line:197,column:9}},type:"if",locations:[{start:{line:194,column:8},end:{line:197,column:9}},{start:{line:194,column:8},end:{line:197,column:9}}],line:194},"8":{loc:{start:{line:194,column:12},end:{line:195,column:57}},type:"binary-expr",locations:[{start:{line:194,column:12},end:{line:194,column:36}},{start:{line:195,column:12},end:{line:195,column:57}}],line:194},"9":{loc:{start:{line:198,column:8},end:{line:200,column:9}},type:"if",locations:[{start:{line:198,column:8},end:{line:200,column:9}},{start:{line:198,column:8},end:{line:200,column:9}}],line:198},"10":{loc:{start:{line:226,column:8},end:{line:228,column:9}},type:"if",locations:[{start:{line:226,column:8},end:{line:228,column:9}},{start:{line:226,column:8},end:{line:228,column:9}}],line:226},"11":{loc:{start:{line:243,column:8},end:{line:248,column:9}},type:"if",locations:[{start:{line:243,column:8},end:{line:248,column:9}},{start:{line:243,column:8},end:{line:248,column:9}}],line:243},"12":{loc:{start:{line:243,column:12},end:{line:243,column:81}},type:"binary-expr",locations:[{start:{line:243,column:12},end:{line:243,column:47}},{start:{line:243,column:51},end:{line:243,column:81}}],line:243},"13":{loc:{start:{line:250,column:8},end:{line:255,column:9}},type:"if",locations:[{start:{line:250,column:8},end:{line:255,column:9}},{start:{line:250,column:8},end:{line:255,column:9}}],line:250},"14":{loc:{start:{line:257,column:8},end:{line:262,column:9}},type:"if",locations:[{start:{line:257,column:8},end:{line:262,column:9}},{start:{line:257,column:8},end:{line:262,column:9}}],line:257},"15":{loc:{start:{line:266,column:8},end:{line:270,column:9}},type:"if",locations:[{start:{line:266,column:8},end:{line:270,column:9}},{start:{line:266,column:8},end:{line:270,column:9}}],line:266},"16":{loc:{start:{line:266,column:12},end:{line:266,column:79}},type:"binary-expr",locations:[{start:{line:266,column:12},end:{line:266,column:41}},{start:{line:266,column:45},end:{line:266,column:79}}],line:266},"17":{loc:{start:{line:280,column:8},end:{line:288,column:9}},type:"if",locations:[{start:{line:280,column:8},end:{line:288,column:9}},{start:{line:280,column:8},end:{line:288,column:9}}],line:280},"18":{loc:{start:{line:285,column:12},end:{line:287,column:13}},type:"if",locations:[{start:{line:285,column:12},end:{line:287,column:13}},{start:{line:285,column:12},end:{line:287,column:13}}],line:285},"19":{loc:{start:{line:375,column:8},end:{line:377,column:9}},type:"if",locations:[{start:{line:375,column:8},end:{line:377,column:9}},{start:{line:375,column:8},end:{line:377,column:9}}],line:375},"20":{loc:{start:{line:383,column:8},end:{line:385,column:9}},type:"if",locations:[{start:{line:383,column:8},end:{line:385,column:9}},{start:{line:383,column:8},end:{line:385,column:9}}],line:383},"21":{loc:{start:{line:392,column:8},end:{line:399,column:9}},type:"if",locations:[{start:{line:392,column:8},end:{line:399,column:9}},{start:{line:392,column:8},end:{line:399,column:9}}],line:392},"22":{loc:{start:{line:393,column:12},end:{line:398,column:13}},type:"if",locations:[{start:{line:393,column:12},end:{line:398,column:13}},{start:{line:393,column:12},end:{line:398,column:13}}],line:393},"23":{loc:{start:{line:405,column:8},end:{line:412,column:9}},type:"if",locations:[{start:{line:405,column:8},end:{line:412,column:9}},{start:{line:405,column:8},end:{line:412,column:9}}],line:405},"24":{loc:{start:{line:406,column:12},end:{line:411,column:13}},type:"if",locations:[{start:{line:406,column:12},end:{line:411,column:13}},{start:{line:406,column:12},end:{line:411,column:13}}],line:406},"25":{loc:{start:{line:418,column:8},end:{line:425,column:9}},type:"if",locations:[{start:{line:418,column:8},end:{line:425,column:9}},{start:{line:418,column:8},end:{line:425,column:9}}],line:418},"26":{loc:{start:{line:419,column:12},end:{line:424,column:13}},type:"if",locations:[{start:{line:419,column:12},end:{line:424,column:13}},{start:{line:419,column:12},end:{line:424,column:13}}],line:419},"27":{loc:{start:{line:432,column:8},end:{line:439,column:9}},type:"if",locations:[{start:{line:432,column:8},end:{line:439,column:9}},{start:{line:432,column:8},end:{line:439,column:9}}],line:432},"28":{loc:{start:{line:433,column:12},end:{line:438,column:13}},type:"if",locations:[{start:{line:433,column:12},end:{line:438,column:13}},{start:{line:433,column:12},end:{line:438,column:13}}],line:433},"29":{loc:{start:{line:441,column:8},end:{line:448,column:9}},type:"if",locations:[{start:{line:441,column:8},end:{line:448,column:9}},{start:{line:441,column:8},end:{line:448,column:9}}],line:441},"30":{loc:{start:{line:442,column:12},end:{line:447,column:13}},type:"if",locations:[{start:{line:442,column:12},end:{line:447,column:13}},{start:{line:442,column:12},end:{line:447,column:13}}],line:442},"31":{loc:{start:{line:450,column:8},end:{line:457,column:9}},type:"if",locations:[{start:{line:450,column:8},end:{line:457,column:9}},{start:{line:450,column:8},end:{line:457,column:9}}],line:450},"32":{loc:{start:{line:451,column:12},end:{line:456,column:13}},type:"if",locations:[{start:{line:451,column:12},end:{line:456,column:13}},{start:{line:451,column:12},end:{line:456,column:13}}],line:451},"33":{loc:{start:{line:459,column:8},end:{line:466,column:9}},type:"if",locations:[{start:{line:459,column:8},end:{line:466,column:9}},{start:{line:459,column:8},end:{line:466,column:9}}],line:459},"34":{loc:{start:{line:460,column:12},end:{line:465,column:13}},type:"if",locations:[{start:{line:460,column:12},end:{line:465,column:13}},{start:{line:460,column:12},end:{line:465,column:13}}],line:460},"35":{loc:{start:{line:468,column:8},end:{line:475,column:9}},type:"if",locations:[{start:{line:468,column:8},end:{line:475,column:9}},{start:{line:468,column:8},end:{line:475,column:9}}],line:468},"36":{loc:{start:{line:469,column:12},end:{line:474,column:13}},type:"if",locations:[{start:{line:469,column:12},end:{line:474,column:13}},{start:{line:469,column:12},end:{line:474,column:13}}],line:469},"37":{loc:{start:{line:477,column:8},end:{line:484,column:9}},type:"if",locations:[{start:{line:477,column:8},end:{line:484,column:9}},{start:{line:477,column:8},end:{line:484,column:9}}],line:477},"38":{loc:{start:{line:478,column:12},end:{line:483,column:13}},type:"if",locations:[{start:{line:478,column:12},end:{line:483,column:13}},{start:{line:478,column:12},end:{line:483,column:13}}],line:478}},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},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},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]},inputSourceMap:{version:3,file:"basemodelcontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basemodelcontrol.ts"],names:[],mappings:"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",sourcesContent:["import { Directive, Host, Injector, Input, OnInit } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormControlName,\r\n FormGroupDirective,\r\n NgControl,\r\n ValidationErrors,\r\n Validator,\r\n} from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { ControlHeight } from '../enums/ControlHeight';\r\nimport { ISacConfigurationService } from '../interfaces/ISacConfigurationService';\r\nimport { ISacIconService } from '../interfaces/ISacIconService';\r\nimport { ISacLabelSizes } from '../interfaces/ISacLabelSizes';\r\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\r\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\r\nimport { IAbstractControlLabelExtension } from '../interfaces/iabstractcontrollabel';\r\nimport {\r\n SACICON_SERVICE,\r\n SACVALIDATIONKEY_SERVICE,\r\n SacDefaultIconService,\r\n SacDefaultValidationKeyService,\r\n} from '../services';\r\nimport {\r\n SACCONFIGURATION_SERVICE,\r\n SacDefaultConfigurationService,\r\n} from '../services/sac-configuration.service';\r\nimport {\r\n SACLOCALISATION_SERVICE,\r\n SacDefaultLocalisationService,\r\n} from '../services/sac-localisation.service';\r\nimport { convertToBoolean } from '../utilities/convertion';\r\nimport { createGuid } from '../utilities/guid';\r\nimport { ValidationErrorItem } from '../validation';\r\n/**\r\n * Abstract Klasse f\xFCr SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit\r\n */\r\n@Directive()\r\nexport abstract class SacBaseModelControl<VALUE>\r\n implements ControlValueAccessor, Validator, OnInit\r\n{\r\n // #region Properties\r\n\r\n /**\r\n * Inline Errors f\xFCr das Control\r\n */\r\n private _inlineerrorenabled: boolean | null = null;\r\n private _label: string = '';\r\n\r\n /**\r\n * Service for loading default settings for the controls\r\n */\r\n protected readonly configurationService: ISacConfigurationService;\r\n\r\n /**\r\n * Boolean Property dirty; default Wert - false\r\n */\r\n protected _dirty: boolean = false;\r\n /**\r\n * SacModel Form ist disabled\r\n */\r\n protected _disabledForm: boolean = false;\r\n /**\r\n * Validator\r\n */\r\n protected _onChange: () => void;\r\n /**\r\n * Boolean Property touched; default Wert - false\r\n */\r\n protected _touched: boolean = false;\r\n /**\r\n * Interne Variable, die den Wert des Controls h\xE4lt\r\n */\r\n protected _value: VALUE = null;\r\n /**\r\n * Form layout instance if exists\r\n */\r\n protected formlayout: SacFormLayoutCommon = null;\r\n /**\r\n * icon service\r\n */\r\n protected iconService: ISacIconService;\r\n /**\r\n * Service f\xFCr Error Localisation\r\n */\r\n protected lngResourceService: ISacLocalisationService;\r\n /**\r\n * ngControl\r\n */\r\n protected ngControl: FormControl;\r\n\r\n /**\r\n * Defines the standard height of the components\r\n */\r\n @Input()\r\n public componentHeight: ControlHeight | null = null;\r\n /**\r\n * Deaktiviert das Input Control\r\n */\r\n @Input() public disabled: boolean = false;\r\n /**\r\n * Deaktiviert das Label im Template\r\n */\r\n @Input() public disablelabel: boolean = false;\r\n /**\r\n * Text to support the user during input.\r\n */\r\n @Input() public helptext: string = '';\r\n /**\r\n * Mode for display helptext\r\n */\r\n @Input()\r\n public helptextmode: 'tooltip' | 'text' | null;\r\n /**\r\n * defines that error messages are displayed under the controls\r\n */\r\n @Input() public inlineError: boolean = true;\r\n /**\r\n * defines that the labels are displayed as adaptive labels\r\n */\r\n @Input() public isAdaptiveLabel: boolean = false;\r\n /**\r\n * default labe size for large devices\r\n */\r\n @Input()\r\n public labelSizeLg: number | null = null;\r\n /**\r\n * default label size for medium devices\r\n */\r\n @Input()\r\n public labelSizeMd: number | null = null;\r\n /**\r\n * default label size for small devices\r\n */\r\n @Input()\r\n public labelSizeSm: number | null = null;\r\n /**\r\n * default label size for extra large devices\r\n */\r\n @Input()\r\n public labelSizeXl: number | null = null;\r\n /**\r\n * default label column size\r\n */\r\n @Input()\r\n public labelSizeXs: number | null = null;\r\n /**\r\n * default label size for extra extra large devices\r\n */\r\n @Input()\r\n public labelSizeXxl: number | null = null;\r\n /**\r\n * Name des Controls\r\n */\r\n @Input() public name: string = createGuid();\r\n\r\n /**\r\n * ControlHeight enum for use in HTML markup\r\n */\r\n public ControlHeight: typeof ControlHeight = ControlHeight;\r\n /**\r\n * Leere Implementation von \"propagateChange\". Muss gemacht werden, damit kein Fehler entsteht\r\n */\r\n public propagateChange: any = () => {};\r\n /**\r\n * Leere Implementation von \"propagateTouch\". Muss gemacht werden, damit kein Fehler entsteht\r\n */\r\n public propagateTouch: any = () => {};\r\n /**\r\n * Service to receive standard validation message keys and texts\r\n */\r\n public validationKeyService: ISacValidationKeyService;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n */\r\n constructor(\r\n @Host() formlayout: SacFormLayoutCommon,\r\n private readonly injector: Injector\r\n ) {\r\n this.formlayout = formlayout;\r\n this.validationKeyService = injector.get(\r\n SACVALIDATIONKEY_SERVICE,\r\n new SacDefaultValidationKeyService()\r\n );\r\n this.lngResourceService = injector.get(\r\n SACLOCALISATION_SERVICE,\r\n new SacDefaultLocalisationService(this.validationKeyService)\r\n );\r\n\r\n this.configurationService = injector.get(\r\n SACCONFIGURATION_SERVICE,\r\n new SacDefaultConfigurationService()\r\n );\r\n\r\n this.iconService = injector.get(\r\n SACICON_SERVICE,\r\n new SacDefaultIconService()\r\n );\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Aktiviert oder Deaktiviert die Inline Errors f\xFCr das Control\r\n */\r\n @Input()\r\n public set inlineerrorenabled(value: boolean | null) {\r\n if (value === null || value === undefined) {\r\n this._inlineerrorenabled = null;\r\n } else {\r\n this._inlineerrorenabled = convertToBoolean(value);\r\n }\r\n }\r\n\r\n /**\r\n * Definiert den Label Text\r\n */\r\n @Input() public set label(v: string) {\r\n this._label = v;\r\n this.UpdateLabelToControl();\r\n }\r\n\r\n /**\r\n * Set Methode f\xFCr NgModel Binding in Html Markup\r\n * Input wird ben\xF6tigt, damit der Wert auch \xFCber das Markup gesetzt werden kann.\r\n */\r\n @Input()\r\n public set value(v: VALUE) {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this._value = this.ConvertInputValue(v);\r\n this.propagateChange(this._value);\r\n }\r\n\r\n /**\r\n * Get Icon for Helptext Tooltip\r\n */\r\n public get HelptextTooltipIcon(): string {\r\n return this.iconService.GenericHelptextIcon;\r\n }\r\n\r\n /**\r\n * Methode ergibt Boolean Wert f\xFCr dirty\r\n */\r\n public get dirty(): boolean {\r\n if (this.ngControl !== null) {\r\n this._dirty = this.ngControl.dirty;\r\n }\r\n\r\n return this._dirty;\r\n }\r\n\r\n /**\r\n * Show error messages inline\r\n */\r\n public get inlineerrorenabled(): boolean | null {\r\n return this._inlineerrorenabled;\r\n }\r\n\r\n /**\r\n * Methode ergibt boolean Wert wenn Form invalid oder nicht invalid ist\r\n */\r\n public get invalid(): boolean {\r\n return (\r\n this.ngControl !== undefined &&\r\n this.ngControl !== null &&\r\n this.ngControl.invalid\r\n );\r\n }\r\n\r\n /**\r\n * Definiert ob das Control disabled ist\r\n */\r\n public get isdisabled(): boolean {\r\n return this._disabledForm || this.disabled;\r\n }\r\n\r\n /**\r\n * Returns whether the inline error messages are active for this control.\r\n */\r\n public get isinlineerrorenabled(): boolean {\r\n if (this._inlineerrorenabled !== null) {\r\n return this._inlineerrorenabled;\r\n }\r\n\r\n if (\r\n this.formlayout !== null &&\r\n this.formlayout.IsInlineErrorEnabled !== null\r\n ) {\r\n return this.formlayout?.IsInlineErrorEnabled;\r\n }\r\n\r\n if (this.configurationService.InlineErrorEnabled !== null) {\r\n return this.configurationService.InlineErrorEnabled;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Definiert den Label Text\r\n */\r\n public get label(): string {\r\n return this._label;\r\n }\r\n\r\n /**\r\n * returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe\r\n */\r\n public get labelSizes(): ISacLabelSizes {\r\n return {\r\n labelSizeSm: this.labelSizeSm,\r\n labelSizeMd: this.labelSizeMd,\r\n labelSizeXs: this.labelSizeXs,\r\n labelSizeXl: this.labelSizeXl,\r\n labelSizeXxl: this.labelSizeXxl,\r\n labelSizeLg: this.labelSizeLg,\r\n };\r\n }\r\n\r\n /**\r\n * Methode ergibt Boolean Wert f\xFCr touched\r\n */\r\n public get touched(): boolean {\r\n if (this.ngControl !== null) {\r\n this._touched = this.ngControl.touched;\r\n }\r\n\r\n return this._touched;\r\n }\r\n\r\n /**\r\n * Get Methode f\xFCr NgModel Binding in Html Markup\r\n */\r\n public get value(): VALUE {\r\n return this._value;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Methode ergibt Error anhand von gegebenen Kriterien\r\n */\r\n public GetErrorMessage(): Observable<string> {\r\n if (this.ngControl.errors === undefined || this.ngControl.errors === null) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const errors: ValidationErrors = this.ngControl.errors;\r\n\r\n if (errors.length === 0) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const keys: string[] = Object.keys(errors);\r\n\r\n if (keys.length <= 0) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const errorItem: ValidationErrorItem = errors[keys[0]];\r\n\r\n // Validation Parameters\r\n const parameters = {};\r\n if (errorItem.parameters !== null && errorItem.parameters !== undefined) {\r\n errorItem.parameters.forEach((v, k) => {\r\n parameters[k] = v;\r\n });\r\n }\r\n parameters['FIELD'] = errorItem.fieldName;\r\n\r\n return this.lngResourceService.GetString(\r\n errorItem.errorMessageKey,\r\n parameters\r\n );\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit() {\r\n // receive form via formcontrolname or formcontrol instance\r\n const formControl = this.injector.get(NgControl, null);\r\n if (formControl instanceof FormControlName) {\r\n const form = this.injector.get(FormGroupDirective, null);\r\n this.ngControl = form.getControl(formControl);\r\n } else {\r\n if (formControl) {\r\n this.ngControl = formControl.control as FormControl;\r\n }\r\n }\r\n\r\n this.UpdateLabelToControl();\r\n\r\n // set label sizes from formlayout directive\r\n this.setLabelSizes();\r\n\r\n // set component heigth from fromlayout directive\r\n this.setComponentHeight();\r\n\r\n // set adaptive label property from formlayout directive\r\n this.setIsAdaptiveLabel();\r\n\r\n // set method to display helptext\r\n this.setHelpTextMode();\r\n\r\n this.OnClassInit();\r\n }\r\n\r\n /**\r\n * Methode ergibt boolean touched = true\r\n */\r\n public onTouch(): void {\r\n this._touched = true;\r\n this.propagateTouch();\r\n }\r\n\r\n /**\r\n * Methode, damit andere Controls \xE4nderungen im Control mitbekommen k\xF6nnen\r\n * Zur \xC4nderungsinfo die Methode propagateChange aufrufen.\r\n */\r\n public registerOnChange(fn: any): void {\r\n this.propagateChange = (obj) => fn(obj);\r\n }\r\n\r\n /**\r\n * Methode, damit andere Controls \xE4nderungen mitbekommen, wenn das Control aktiviert (Focus) wird.\r\n */\r\n public registerOnTouched(fn: any): void {\r\n this.propagateTouch = (obj) => fn(obj);\r\n }\r\n\r\n /**\r\n * Methode registriert \xC4nderungen bei der Validierung\r\n */\r\n public registerOnValidatorChange(fn: () => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Setzt das Control auf Disabled\r\n */\r\n public setDisabledState(isDisabled: boolean): void {\r\n this._disabledForm = isDisabled;\r\n }\r\n\r\n /**\r\n * Methode die den Wert des Inputs setzt\r\n */\r\n public setValue(v: VALUE): void {\r\n this.value = v;\r\n }\r\n\r\n /**\r\n * Validator Methode\r\n */\r\n public validate(c: AbstractControl): ValidationErrors | null {\r\n const error: ValidationErrors | null = this.validateData(c);\r\n return error;\r\n }\r\n\r\n /**\r\n * Methode zum schreiben von Werten aus dem Model in das Control\r\n */\r\n public writeValue(value: VALUE) {\r\n this._value = value;\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Public Abstract Methods\r\n\r\n /**\r\n * Abstrakte Validator Methode\r\n */\r\n public abstract validateData(c: AbstractControl): ValidationErrors | null;\r\n\r\n // #endregion Public Abstract Methods\r\n\r\n // #region Protected Methods\r\n\r\n /**\r\n * Method can Overwriten in Parent Classes\r\n * @param value Wert welcher in den korrekten Typ konvertiert werden soll\r\n * @returns Wert im korrekten Typ\r\n */\r\n protected ConvertInputValue(value: VALUE): VALUE {\r\n return value;\r\n }\r\n\r\n /**\r\n * Methode ergibt Decimal Symbol\r\n */\r\n protected GetDecimalSymbol(): string {\r\n return '.';\r\n }\r\n\r\n /**\r\n * Method can be used to Set Properties at Class Init\r\n */\r\n protected OnClassInit(): void {}\r\n\r\n /**\r\n * Aktualisiert den NgModel Wert und die G\xFCltigkeit des Validators des Controls\r\n */\r\n protected UpdateValueAndValidity(): void {\r\n if (this.ngControl) {\r\n this.ngControl.updateValueAndValidity({ onlySelf: true });\r\n }\r\n }\r\n\r\n // #endregion Protected Methods\r\n\r\n // #region Private Methods\r\n\r\n private UpdateLabelToControl(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (\r\n this.ngControl as unknown as IAbstractControlLabelExtension\r\n ).controllabel = this.label;\r\n }\r\n }\r\n\r\n /**\r\n * Set component height from property or parent layout control\r\n */\r\n private setComponentHeight() {\r\n // set size extra small\r\n if (!this.componentHeight) {\r\n if (this.formlayout?.componentHeight) {\r\n this.componentHeight = this.formlayout.componentHeight;\r\n } else {\r\n this.componentHeight = this.configurationService.ComponentHeight;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set mode for helptext. Can be tooltip or text\r\n */\r\n private setHelpTextMode() {\r\n if (!this.helptextmode) {\r\n if (this.formlayout?.helptextmode) {\r\n this.helptextmode = this.formlayout.helptextmode;\r\n } else {\r\n this.helptextmode = this.configurationService.HelptextMode;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set adaptive label property from parent layout control\r\n */\r\n private setIsAdaptiveLabel() {\r\n if (!this.isAdaptiveLabel) {\r\n if (this.formlayout?.isAdaptiveLabel !== undefined) {\r\n this.isAdaptiveLabel = this.formlayout.isAdaptiveLabel;\r\n } else {\r\n this.isAdaptiveLabel = false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set label sizes from property or parent layout control\r\n */\r\n private setLabelSizes() {\r\n // set size extra small\r\n if (!this.labelSizeXs) {\r\n if (this.formlayout?.labelSizeXs) {\r\n this.labelSizeXs = this.formlayout.labelSizeXs;\r\n } else {\r\n this.labelSizeXs = this.configurationService.LabelSizeXs;\r\n }\r\n }\r\n\r\n // set size small\r\n if (!this.labelSizeSm) {\r\n if (this.formlayout?.labelSizeSm) {\r\n this.labelSizeSm = this.formlayout.labelSizeSm;\r\n } else {\r\n this.labelSizeSm = this.configurationService.LabelSizeSm;\r\n }\r\n }\r\n\r\n // set size medium\r\n if (!this.labelSizeMd) {\r\n if (this.formlayout?.labelSizeMd) {\r\n this.labelSizeMd = this.formlayout.labelSizeMd;\r\n } else {\r\n this.labelSizeMd = this.configurationService.LabelSizeMd;\r\n }\r\n }\r\n\r\n // set size large\r\n if (!this.labelSizeLg) {\r\n if (this.formlayout?.labelSizeLg) {\r\n this.labelSizeLg = this.formlayout.labelSizeLg;\r\n } else {\r\n this.labelSizeLg = this.configurationService.LabelSizeLg;\r\n }\r\n }\r\n\r\n // set size extra large\r\n if (!this.labelSizeXl) {\r\n if (this.formlayout?.labelSizeXl) {\r\n this.labelSizeXl = this.formlayout.labelSizeXl;\r\n } else {\r\n this.labelSizeXl = this.configurationService.LabelSizeXl;\r\n }\r\n }\r\n\r\n // set size extra extra large\r\n if (!this.labelSizeXxl) {\r\n if (this.formlayout?.labelSizeXxl) {\r\n this.labelSizeXxl = this.formlayout.labelSizeXxl;\r\n } else {\r\n this.labelSizeXxl = this.configurationService.LabelSizeXxl;\r\n }\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"8f0ee406d6b22746c456819321caa0d412ce4045"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
cov_1p13oaoc7g=function(){return actualCoverage;};}return actualCoverage;}cov_1p13oaoc7g();import{
|
|
1
|
+
function cov_1p13oaoc7g(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\common\\basemodelcontrol.mjs";var hash="ba635d5d4e47f34c1160e7c163d648d28f407e80";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\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:27}},"13":{start:{line:77,column:8},end:{line:77,column:32}},"14":{start:{line:81,column:8},end:{line:81,column:37}},"15":{start:{line:85,column:8},end:{line:85,column:32}},"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:33}},"21":{start:{line:109,column:8},end:{line:109,column:33}},"22":{start:{line:113,column:8},end:{line:113,column:41}},"23":{start:{line:117,column:8},end:{line:117,column:40}},"24":{start:{line:121,column:8},end:{line:121,column:42}},"25":{start:{line:122,column:8},end:{line:122,column:37}},"26":{start:{line:123,column:8},end:{line:123,column:113}},"27":{start:{line:124,column:8},end:{line:124,column:134}},"28":{start:{line:125,column:8},end:{line:125,column:113}},"29":{start:{line:126,column:8},end:{line:126,column:86}},"30":{start:{line:134,column:8},end:{line:134,column:52}},"31":{start:{line:140,column:8},end:{line:142,column:9}},"32":{start:{line:141,column:12},end:{line:141,column:47}},"33":{start:{line:143,column:8},end:{line:143,column:27}},"34":{start:{line:149,column:8},end:{line:149,column:40}},"35":{start:{line:155,column:8},end:{line:160,column:9}},"36":{start:{line:156,column:12},end:{line:156,column:44}},"37":{start:{line:159,column:12},end:{line:159,column:63}},"38":{start:{line:166,column:8},end:{line:166,column:97}},"39":{start:{line:172,column:8},end:{line:172,column:51}},"40":{start:{line:178,column:8},end:{line:180,column:9}},"41":{start:{line:179,column:12},end:{line:179,column:44}},"42":{start:{line:181,column:8},end:{line:183,column:9}},"43":{start:{line:182,column:12},end:{line:182,column:57}},"44":{start:{line:184,column:8},end:{line:186,column:9}},"45":{start:{line:185,column:12},end:{line:185,column:64}},"46":{start:{line:187,column:8},end:{line:187,column:20}},"47":{start:{line:193,column:8},end:{line:193,column:27}},"48":{start:{line:199,column:8},end:{line:199,column:24}},"49":{start:{line:200,column:8},end:{line:200,column:36}},"50":{start:{line:206,column:8},end:{line:213,column:10}},"51":{start:{line:219,column:8},end:{line:221,column:9}},"52":{start:{line:220,column:12},end:{line:220,column:51}},"53":{start:{line:222,column:8},end:{line:222,column:29}},"54":{start:{line:228,column:8},end:{line:228,column:27}},"55":{start:{line:235,column:8},end:{line:237,column:9}},"56":{start:{line:236,column:12},end:{line:236,column:19}},"57":{start:{line:238,column:8},end:{line:238,column:48}},"58":{start:{line:239,column:8},end:{line:239,column:42}},"59":{start:{line:247,column:8},end:{line:252,column:9}},"60":{start:{line:248,column:12},end:{line:251,column:15}},"61":{start:{line:249,column:16},end:{line:249,column:34}},"62":{start:{line:250,column:16},end:{line:250,column:36}},"63":{start:{line:253,column:23},end:{line:253,column:44}},"64":{start:{line:254,column:8},end:{line:259,column:9}},"65":{start:{line:255,column:12},end:{line:258,column:15}},"66":{start:{line:256,column:16},end:{line:256,column:34}},"67":{start:{line:257,column:16},end:{line:257,column:36}},"68":{start:{line:260,column:21},end:{line:260,column:40}},"69":{start:{line:261,column:8},end:{line:266,column:9}},"70":{start:{line:262,column:12},end:{line:265,column:15}},"71":{start:{line:263,column:16},end:{line:263,column:34}},"72":{start:{line:264,column:16},end:{line:264,column:36}},"73":{start:{line:267,column:26},end:{line:267,column:41}},"74":{start:{line:269,column:27},end:{line:269,column:29}},"75":{start:{line:270,column:8},end:{line:274,column:9}},"76":{start:{line:271,column:12},end:{line:273,column:15}},"77":{start:{line:272,column:16},end:{line:272,column:34}},"78":{start:{line:275,column:8},end:{line:275,column:50}},"79":{start:{line:276,column:8},end:{line:276,column:88}},"80":{start:{line:283,column:28},end:{line:283,column:62}},"81":{start:{line:284,column:8},end:{line:292,column:9}},"82":{start:{line:285,column:25},end:{line:285,column:68}},"83":{start:{line:286,column:12},end:{line:286,column:58}},"84":{start:{line:289,column:12},end:{line:291,column:13}},"85":{start:{line:290,column:16},end:{line:290,column:53}},"86":{start:{line:293,column:8},end:{line:293,column:36}},"87":{start:{line:295,column:8},end:{line:295,column:29}},"88":{start:{line:297,column:8},end:{line:297,column:34}},"89":{start:{line:299,column:8},end:{line:299,column:34}},"90":{start:{line:301,column:8},end:{line:301,column:31}},"91":{start:{line:303,column:8},end:{line:303,column:33}},"92":{start:{line:304,column:8},end:{line:304,column:27}},"93":{start:{line:310,column:8},end:{line:310,column:29}},"94":{start:{line:311,column:8},end:{line:311,column:30}},"95":{start:{line:318,column:8},end:{line:318,column:48}},"96":{start:{line:318,column:40},end:{line:318,column:47}},"97":{start:{line:324,column:8},end:{line:324,column:47}},"98":{start:{line:324,column:39},end:{line:324,column:46}},"99":{start:{line:330,column:8},end:{line:330,column:28}},"100":{start:{line:336,column:8},end:{line:336,column:40}},"101":{start:{line:342,column:8},end:{line:342,column:23}},"102":{start:{line:348,column:22},end:{line:348,column:42}},"103":{start:{line:349,column:8},end:{line:349,column:21}},"104":{start:{line:355,column:8},end:{line:355,column:28}},"105":{start:{line:365,column:8},end:{line:365,column:21}},"106":{start:{line:371,column:8},end:{line:371,column:19}},"107":{start:{line:381,column:8},end:{line:383,column:9}},"108":{start:{line:382,column:12},end:{line:382,column:70}},"109":{start:{line:389,column:8},end:{line:391,column:9}},"110":{start:{line:390,column:12},end:{line:390,column:53}},"111":{start:{line:398,column:8},end:{line:405,column:9}},"112":{start:{line:399,column:12},end:{line:404,column:13}},"113":{start:{line:400,column:16},end:{line:400,column:71}},"114":{start:{line:403,column:16},end:{line:403,column:81}},"115":{start:{line:411,column:8},end:{line:418,column:9}},"116":{start:{line:412,column:12},end:{line:417,column:13}},"117":{start:{line:413,column:16},end:{line:413,column:65}},"118":{start:{line:416,column:16},end:{line:416,column:75}},"119":{start:{line:424,column:8},end:{line:431,column:9}},"120":{start:{line:425,column:12},end:{line:430,column:13}},"121":{start:{line:426,column:16},end:{line:426,column:71}},"122":{start:{line:429,column:16},end:{line:429,column:45}},"123":{start:{line:438,column:8},end:{line:445,column:9}},"124":{start:{line:439,column:12},end:{line:444,column:13}},"125":{start:{line:440,column:16},end:{line:440,column:63}},"126":{start:{line:443,column:16},end:{line:443,column:73}},"127":{start:{line:447,column:8},end:{line:454,column:9}},"128":{start:{line:448,column:12},end:{line:453,column:13}},"129":{start:{line:449,column:16},end:{line:449,column:63}},"130":{start:{line:452,column:16},end:{line:452,column:73}},"131":{start:{line:456,column:8},end:{line:463,column:9}},"132":{start:{line:457,column:12},end:{line:462,column:13}},"133":{start:{line:458,column:16},end:{line:458,column:63}},"134":{start:{line:461,column:16},end:{line:461,column:73}},"135":{start:{line:465,column:8},end:{line:472,column:9}},"136":{start:{line:466,column:12},end:{line:471,column:13}},"137":{start:{line:467,column:16},end:{line:467,column:63}},"138":{start:{line:470,column:16},end:{line:470,column:73}},"139":{start:{line:474,column:8},end:{line:481,column:9}},"140":{start:{line:475,column:12},end:{line:480,column:13}},"141":{start:{line:476,column:16},end:{line:476,column:63}},"142":{start:{line:479,column:16},end:{line:479,column:73}},"143":{start:{line:483,column:8},end:{line:490,column:9}},"144":{start:{line:484,column:12},end:{line:489,column:13}},"145":{start:{line:485,column:16},end:{line:485,column:65}},"146":{start:{line:488,column:16},end:{line:488,column:75}},"147":{start:{line:493,column:8},end:{line:500,column:9}},"148":{start:{line:494,column:12},end:{line:499,column:13}},"149":{start:{line:495,column:16},end:{line:495,column:83}},"150":{start:{line:498,column:16},end:{line:498,column:93}},"151":{start:{line:503,column:0},end:{line:503,column:252}},"152":{start:{line:504,column:0},end:{line:504,column:659}},"153":{start:{line:505,column:0},end:{line:545,column:20}},"154":{start:{line:507,column:42},end:{line:509,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:127,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:113,column:31},end:{line:113,column:32}},loc:{start:{line:113,column:37},end:{line:113,column:40}},line:113},"2":{name:"(anonymous_2)",decl:{start:{line:117,column:30},end:{line:117,column:31}},loc:{start:{line:117,column:36},end:{line:117,column:39}},line:117},"3":{name:"(anonymous_3)",decl:{start:{line:133,column:4},end:{line:133,column:5}},loc:{start:{line:133,column:30},end:{line:135,column:5}},line:133},"4":{name:"(anonymous_4)",decl:{start:{line:139,column:4},end:{line:139,column:5}},loc:{start:{line:139,column:16},end:{line:144,column:5}},line:139},"5":{name:"(anonymous_5)",decl:{start:{line:148,column:4},end:{line:148,column:5}},loc:{start:{line:148,column:29},end:{line:150,column:5}},line:148},"6":{name:"(anonymous_6)",decl:{start:{line:154,column:4},end:{line:154,column:5}},loc:{start:{line:154,column:34},end:{line:161,column:5}},line:154},"7":{name:"(anonymous_7)",decl:{start:{line:165,column:4},end:{line:165,column:5}},loc:{start:{line:165,column:18},end:{line:167,column:5}},line:165},"8":{name:"(anonymous_8)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:21},end:{line:173,column:5}},line:171},"9":{name:"(anonymous_9)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:31},end:{line:188,column:5}},line:177},"10":{name:"(anonymous_10)",decl:{start:{line:192,column:4},end:{line:192,column:5}},loc:{start:{line:192,column:16},end:{line:194,column:5}},line:192},"11":{name:"(anonymous_11)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:17},end:{line:201,column:5}},line:198},"12":{name:"(anonymous_12)",decl:{start:{line:205,column:4},end:{line:205,column:5}},loc:{start:{line:205,column:21},end:{line:214,column:5}},line:205},"13":{name:"(anonymous_13)",decl:{start:{line:218,column:4},end:{line:218,column:5}},loc:{start:{line:218,column:18},end:{line:223,column:5}},line:218},"14":{name:"(anonymous_14)",decl:{start:{line:227,column:4},end:{line:227,column:5}},loc:{start:{line:227,column:16},end:{line:229,column:5}},line:227},"15":{name:"(anonymous_15)",decl:{start:{line:234,column:4},end:{line:234,column:5}},loc:{start:{line:234,column:17},end:{line:240,column:5}},line:234},"16":{name:"(anonymous_16)",decl:{start:{line:246,column:4},end:{line:246,column:5}},loc:{start:{line:246,column:22},end:{line:277,column:5}},line:246},"17":{name:"(anonymous_17)",decl:{start:{line:248,column:34},end:{line:248,column:35}},loc:{start:{line:248,column:48},end:{line:251,column:13}},line:248},"18":{name:"(anonymous_18)",decl:{start:{line:255,column:34},end:{line:255,column:35}},loc:{start:{line:255,column:48},end:{line:258,column:13}},line:255},"19":{name:"(anonymous_19)",decl:{start:{line:262,column:34},end:{line:262,column:35}},loc:{start:{line:262,column:48},end:{line:265,column:13}},line:262},"20":{name:"(anonymous_20)",decl:{start:{line:271,column:41},end:{line:271,column:42}},loc:{start:{line:271,column:51},end:{line:273,column:13}},line:271},"21":{name:"(anonymous_21)",decl:{start:{line:281,column:4},end:{line:281,column:5}},loc:{start:{line:281,column:15},end:{line:305,column:5}},line:281},"22":{name:"(anonymous_22)",decl:{start:{line:309,column:4},end:{line:309,column:5}},loc:{start:{line:309,column:14},end:{line:312,column:5}},line:309},"23":{name:"(anonymous_23)",decl:{start:{line:317,column:4},end:{line:317,column:5}},loc:{start:{line:317,column:25},end:{line:319,column:5}},line:317},"24":{name:"(anonymous_24)",decl:{start:{line:318,column:31},end:{line:318,column:32}},loc:{start:{line:318,column:40},end:{line:318,column:47}},line:318},"25":{name:"(anonymous_25)",decl:{start:{line:323,column:4},end:{line:323,column:5}},loc:{start:{line:323,column:26},end:{line:325,column:5}},line:323},"26":{name:"(anonymous_26)",decl:{start:{line:324,column:30},end:{line:324,column:31}},loc:{start:{line:324,column:39},end:{line:324,column:46}},line:324},"27":{name:"(anonymous_27)",decl:{start:{line:329,column:4},end:{line:329,column:5}},loc:{start:{line:329,column:34},end:{line:331,column:5}},line:329},"28":{name:"(anonymous_28)",decl:{start:{line:335,column:4},end:{line:335,column:5}},loc:{start:{line:335,column:33},end:{line:337,column:5}},line:335},"29":{name:"(anonymous_29)",decl:{start:{line:341,column:4},end:{line:341,column:5}},loc:{start:{line:341,column:16},end:{line:343,column:5}},line:341},"30":{name:"(anonymous_30)",decl:{start:{line:347,column:4},end:{line:347,column:5}},loc:{start:{line:347,column:16},end:{line:350,column:5}},line:347},"31":{name:"(anonymous_31)",decl:{start:{line:354,column:4},end:{line:354,column:5}},loc:{start:{line:354,column:22},end:{line:356,column:5}},line:354},"32":{name:"(anonymous_32)",decl:{start:{line:364,column:4},end:{line:364,column:5}},loc:{start:{line:364,column:29},end:{line:366,column:5}},line:364},"33":{name:"(anonymous_33)",decl:{start:{line:370,column:4},end:{line:370,column:5}},loc:{start:{line:370,column:23},end:{line:372,column:5}},line:370},"34":{name:"(anonymous_34)",decl:{start:{line:376,column:4},end:{line:376,column:5}},loc:{start:{line:376,column:18},end:{line:376,column:21}},line:376},"35":{name:"(anonymous_35)",decl:{start:{line:380,column:4},end:{line:380,column:5}},loc:{start:{line:380,column:29},end:{line:384,column:5}},line:380},"36":{name:"(anonymous_36)",decl:{start:{line:387,column:4},end:{line:387,column:5}},loc:{start:{line:387,column:27},end:{line:392,column:5}},line:387},"37":{name:"(anonymous_37)",decl:{start:{line:396,column:4},end:{line:396,column:5}},loc:{start:{line:396,column:25},end:{line:406,column:5}},line:396},"38":{name:"(anonymous_38)",decl:{start:{line:410,column:4},end:{line:410,column:5}},loc:{start:{line:410,column:22},end:{line:419,column:5}},line:410},"39":{name:"(anonymous_39)",decl:{start:{line:423,column:4},end:{line:423,column:5}},loc:{start:{line:423,column:25},end:{line:432,column:5}},line:423},"40":{name:"(anonymous_40)",decl:{start:{line:436,column:4},end:{line:436,column:5}},loc:{start:{line:436,column:20},end:{line:491,column:5}},line:436},"41":{name:"(anonymous_41)",decl:{start:{line:492,column:4},end:{line:492,column:5}},loc:{start:{line:492,column:24},end:{line:501,column:5}},line:492},"42":{name:"(anonymous_42)",decl:{start:{line:507,column:28},end:{line:507,column:29}},loc:{start:{line:507,column:40},end:{line:509,column:47}},line:507}},branchMap:{"0":{loc:{start:{line:140,column:8},end:{line:142,column:9}},type:"if",locations:[{start:{line:140,column:8},end:{line:142,column:9}},{start:{line:140,column:8},end:{line:142,column:9}}],line:140},"1":{loc:{start:{line:140,column:12},end:{line:140,column:67}},type:"binary-expr",locations:[{start:{line:140,column:12},end:{line:140,column:35}},{start:{line:140,column:39},end:{line:140,column:67}}],line:140},"2":{loc:{start:{line:155,column:8},end:{line:160,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:160,column:9}},{start:{line:155,column:8},end:{line:160,column:9}}],line:155},"3":{loc:{start:{line:155,column:12},end:{line:155,column:49}},type:"binary-expr",locations:[{start:{line:155,column:12},end:{line:155,column:26}},{start:{line:155,column:30},end:{line:155,column:49}}],line:155},"4":{loc:{start:{line:166,column:15},end:{line:166,column:96}},type:"binary-expr",locations:[{start:{line:166,column:15},end:{line:166,column:43}},{start:{line:166,column:47},end:{line:166,column:70}},{start:{line:166,column:74},end:{line:166,column:96}}],line:166},"5":{loc:{start:{line:172,column:15},end:{line:172,column:50}},type:"binary-expr",locations:[{start:{line:172,column:15},end:{line:172,column:33}},{start:{line:172,column:37},end:{line:172,column:50}}],line:172},"6":{loc:{start:{line:178,column:8},end:{line:180,column:9}},type:"if",locations:[{start:{line:178,column:8},end:{line:180,column:9}},{start:{line:178,column:8},end:{line:180,column:9}}],line:178},"7":{loc:{start:{line:181,column:8},end:{line:183,column:9}},type:"if",locations:[{start:{line:181,column:8},end:{line:183,column:9}},{start:{line:181,column:8},end:{line:183,column:9}}],line:181},"8":{loc:{start:{line:181,column:12},end:{line:181,column:85}},type:"binary-expr",locations:[{start:{line:181,column:12},end:{line:181,column:36}},{start:{line:181,column:40},end:{line:181,column:85}}],line:181},"9":{loc:{start:{line:184,column:8},end:{line:186,column:9}},type:"if",locations:[{start:{line:184,column:8},end:{line:186,column:9}},{start:{line:184,column:8},end:{line:186,column:9}}],line:184},"10":{loc:{start:{line:219,column:8},end:{line:221,column:9}},type:"if",locations:[{start:{line:219,column:8},end:{line:221,column:9}},{start:{line:219,column:8},end:{line:221,column:9}}],line:219},"11":{loc:{start:{line:219,column:12},end:{line:219,column:67}},type:"binary-expr",locations:[{start:{line:219,column:12},end:{line:219,column:35}},{start:{line:219,column:39},end:{line:219,column:67}}],line:219},"12":{loc:{start:{line:235,column:8},end:{line:237,column:9}},type:"if",locations:[{start:{line:235,column:8},end:{line:237,column:9}},{start:{line:235,column:8},end:{line:237,column:9}}],line:235},"13":{loc:{start:{line:247,column:8},end:{line:252,column:9}},type:"if",locations:[{start:{line:247,column:8},end:{line:252,column:9}},{start:{line:247,column:8},end:{line:252,column:9}}],line:247},"14":{loc:{start:{line:247,column:12},end:{line:247,column:81}},type:"binary-expr",locations:[{start:{line:247,column:12},end:{line:247,column:47}},{start:{line:247,column:51},end:{line:247,column:81}}],line:247},"15":{loc:{start:{line:254,column:8},end:{line:259,column:9}},type:"if",locations:[{start:{line:254,column:8},end:{line:259,column:9}},{start:{line:254,column:8},end:{line:259,column:9}}],line:254},"16":{loc:{start:{line:261,column:8},end:{line:266,column:9}},type:"if",locations:[{start:{line:261,column:8},end:{line:266,column:9}},{start:{line:261,column:8},end:{line:266,column:9}}],line:261},"17":{loc:{start:{line:270,column:8},end:{line:274,column:9}},type:"if",locations:[{start:{line:270,column:8},end:{line:274,column:9}},{start:{line:270,column:8},end:{line:274,column:9}}],line:270},"18":{loc:{start:{line:270,column:12},end:{line:270,column:79}},type:"binary-expr",locations:[{start:{line:270,column:12},end:{line:270,column:41}},{start:{line:270,column:45},end:{line:270,column:79}}],line:270},"19":{loc:{start:{line:284,column:8},end:{line:292,column:9}},type:"if",locations:[{start:{line:284,column:8},end:{line:292,column:9}},{start:{line:284,column:8},end:{line:292,column:9}}],line:284},"20":{loc:{start:{line:289,column:12},end:{line:291,column:13}},type:"if",locations:[{start:{line:289,column:12},end:{line:291,column:13}},{start:{line:289,column:12},end:{line:291,column:13}}],line:289},"21":{loc:{start:{line:381,column:8},end:{line:383,column:9}},type:"if",locations:[{start:{line:381,column:8},end:{line:383,column:9}},{start:{line:381,column:8},end:{line:383,column:9}}],line:381},"22":{loc:{start:{line:389,column:8},end:{line:391,column:9}},type:"if",locations:[{start:{line:389,column:8},end:{line:391,column:9}},{start:{line:389,column:8},end:{line:391,column:9}}],line:389},"23":{loc:{start:{line:398,column:8},end:{line:405,column:9}},type:"if",locations:[{start:{line:398,column:8},end:{line:405,column:9}},{start:{line:398,column:8},end:{line:405,column:9}}],line:398},"24":{loc:{start:{line:399,column:12},end:{line:404,column:13}},type:"if",locations:[{start:{line:399,column:12},end:{line:404,column:13}},{start:{line:399,column:12},end:{line:404,column:13}}],line:399},"25":{loc:{start:{line:411,column:8},end:{line:418,column:9}},type:"if",locations:[{start:{line:411,column:8},end:{line:418,column:9}},{start:{line:411,column:8},end:{line:418,column:9}}],line:411},"26":{loc:{start:{line:412,column:12},end:{line:417,column:13}},type:"if",locations:[{start:{line:412,column:12},end:{line:417,column:13}},{start:{line:412,column:12},end:{line:417,column:13}}],line:412},"27":{loc:{start:{line:424,column:8},end:{line:431,column:9}},type:"if",locations:[{start:{line:424,column:8},end:{line:431,column:9}},{start:{line:424,column:8},end:{line:431,column:9}}],line:424},"28":{loc:{start:{line:425,column:12},end:{line:430,column:13}},type:"if",locations:[{start:{line:425,column:12},end:{line:430,column:13}},{start:{line:425,column:12},end:{line:430,column:13}}],line:425},"29":{loc:{start:{line:438,column:8},end:{line:445,column:9}},type:"if",locations:[{start:{line:438,column:8},end:{line:445,column:9}},{start:{line:438,column:8},end:{line:445,column:9}}],line:438},"30":{loc:{start:{line:439,column:12},end:{line:444,column:13}},type:"if",locations:[{start:{line:439,column:12},end:{line:444,column:13}},{start:{line:439,column:12},end:{line:444,column:13}}],line:439},"31":{loc:{start:{line:447,column:8},end:{line:454,column:9}},type:"if",locations:[{start:{line:447,column:8},end:{line:454,column:9}},{start:{line:447,column:8},end:{line:454,column:9}}],line:447},"32":{loc:{start:{line:448,column:12},end:{line:453,column:13}},type:"if",locations:[{start:{line:448,column:12},end:{line:453,column:13}},{start:{line:448,column:12},end:{line:453,column:13}}],line:448},"33":{loc:{start:{line:456,column:8},end:{line:463,column:9}},type:"if",locations:[{start:{line:456,column:8},end:{line:463,column:9}},{start:{line:456,column:8},end:{line:463,column:9}}],line:456},"34":{loc:{start:{line:457,column:12},end:{line:462,column:13}},type:"if",locations:[{start:{line:457,column:12},end:{line:462,column:13}},{start:{line:457,column:12},end:{line:462,column:13}}],line:457},"35":{loc:{start:{line:465,column:8},end:{line:472,column:9}},type:"if",locations:[{start:{line:465,column:8},end:{line:472,column:9}},{start:{line:465,column:8},end:{line:472,column:9}}],line:465},"36":{loc:{start:{line:466,column:12},end:{line:471,column:13}},type:"if",locations:[{start:{line:466,column:12},end:{line:471,column:13}},{start:{line:466,column:12},end:{line:471,column:13}}],line:466},"37":{loc:{start:{line:474,column:8},end:{line:481,column:9}},type:"if",locations:[{start:{line:474,column:8},end:{line:481,column:9}},{start:{line:474,column:8},end:{line:481,column:9}}],line:474},"38":{loc:{start:{line:475,column:12},end:{line:480,column:13}},type:"if",locations:[{start:{line:475,column:12},end:{line:480,column:13}},{start:{line:475,column:12},end:{line:480,column:13}}],line:475},"39":{loc:{start:{line:483,column:8},end:{line:490,column:9}},type:"if",locations:[{start:{line:483,column:8},end:{line:490,column:9}},{start:{line:483,column:8},end:{line:490,column:9}}],line:483},"40":{loc:{start:{line:484,column:12},end:{line:489,column:13}},type:"if",locations:[{start:{line:484,column:12},end:{line:489,column:13}},{start:{line:484,column:12},end:{line:489,column:13}}],line:484},"41":{loc:{start:{line:493,column:8},end:{line:500,column:9}},type:"if",locations:[{start:{line:493,column:8},end:{line:500,column:9}},{start:{line:493,column:8},end:{line:500,column:9}}],line:493},"42":{loc:{start:{line:494,column:12},end:{line:499,column:13}},type:"if",locations:[{start:{line:494,column:12},end:{line:499,column:13}},{start:{line:494,column:12},end:{line:499,column:13}}],line:494}},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},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';\r\nimport { ControlHeight } from '../enums/ControlHeight';\r\nimport { ISacConfigurationService } from '../interfaces/ISacConfigurationService';\r\nimport { ISacIconService } from '../interfaces/ISacIconService';\r\nimport { ISacLabelSizes } from '../interfaces/ISacLabelSizes';\r\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\r\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\r\nimport { IAbstractControlLabelExtension } from '../interfaces/iabstractcontrollabel';\r\nimport {\r\n SACICON_SERVICE,\r\n SACVALIDATIONKEY_SERVICE,\r\n SacDefaultIconService,\r\n SacDefaultValidationKeyService,\r\n} from '../services';\r\nimport { SACCONFIGURATION_SERVICE, SacDefaultConfigurationService } from '../services/sac-configuration.service';\r\nimport { SACLOCALISATION_SERVICE, SacDefaultLocalisationService } from '../services/sac-localisation.service';\r\nimport { convertToBoolean } from '../utilities/convertion';\r\nimport { createGuid } from '../utilities/guid';\r\nimport { ValidationErrorItem } from '../validation';\r\nimport { Directive, Host, Injector, Input, OnInit } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormControlName,\r\n FormGroupDirective,\r\n NgControl,\r\n ValidationErrors,\r\n Validator,\r\n} from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Abstract Klasse f\xFCr SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit\r\n */\r\n@Directive()\r\nexport abstract class SacBaseModelControl<VALUE> implements ControlValueAccessor, Validator, OnInit {\r\n // #region Properties\r\n\r\n /**\r\n * Inline Errors f\xFCr das Control\r\n */\r\n private _inlineerrorenabled: boolean | null = null;\r\n\r\n /**\r\n * Label Text\r\n */\r\n private _label: string = '';\r\n\r\n /**\r\n * Service for loading default settings for the controls\r\n */\r\n protected readonly configurationService: ISacConfigurationService;\r\n\r\n /**\r\n * Boolean Property dirty; default Wert - false\r\n */\r\n protected _dirty: boolean = false;\r\n\r\n /**\r\n * SacModel Form ist disabled\r\n */\r\n protected _disabledForm: boolean = false;\r\n\r\n /**\r\n * Validator\r\n */\r\n protected _onChange: () => void;\r\n\r\n /**\r\n * Boolean Property touched; default Wert - false\r\n */\r\n protected _touched: boolean = false;\r\n\r\n /**\r\n * Interne Variable, die den Wert des Controls h\xE4lt\r\n */\r\n protected _value: VALUE = null;\r\n\r\n /**\r\n * Form layout instance if exists\r\n */\r\n protected formlayout: SacFormLayoutCommon = null;\r\n\r\n /**\r\n * icon service\r\n */\r\n protected iconService: ISacIconService;\r\n\r\n /**\r\n * Service f\xFCr Error Localisation\r\n */\r\n protected lngResourceService: ISacLocalisationService;\r\n\r\n /**\r\n * ngControl\r\n */\r\n protected ngControl: FormControl;\r\n\r\n /**\r\n * ControlHeight enum for use in HTML markup\r\n */\r\n public ControlHeight: typeof ControlHeight = ControlHeight;\r\n\r\n /**\r\n * Defines the standard height of the components\r\n */\r\n @Input()\r\n public componentHeight: ControlHeight | null = null;\r\n\r\n /**\r\n * Deaktiviert das Input Control\r\n */\r\n @Input() public disabled: boolean = false;\r\n\r\n /**\r\n * Deaktiviert das Label im Template\r\n */\r\n @Input() public disablelabel: boolean = false;\r\n\r\n /**\r\n * Text to support the user during input.\r\n */\r\n @Input() public helptext: string = '';\r\n\r\n /**\r\n * Mode for display helptext\r\n */\r\n @Input()\r\n public helptextmode: 'tooltip' | 'text' | null;\r\n\r\n /**\r\n * defines that error messages are displayed under the controls\r\n */\r\n @Input() public inlineError: boolean = true;\r\n\r\n /**\r\n * defines that the labels are displayed as adaptive labels\r\n */\r\n @Input() public isAdaptiveLabel: boolean = false;\r\n\r\n /**\r\n * default labe size for large devices\r\n */\r\n @Input()\r\n public labelSizeLg: number | null = null;\r\n\r\n /**\r\n * default label size for medium devices\r\n */\r\n @Input()\r\n public labelSizeMd: number | null = null;\r\n\r\n /**\r\n * default label size for small devices\r\n */\r\n @Input()\r\n public labelSizeSm: number | null = null;\r\n\r\n /**\r\n * default label size for extra large devices\r\n */\r\n @Input()\r\n public labelSizeXl: number | null = null;\r\n\r\n /**\r\n * default label column size\r\n */\r\n @Input()\r\n public labelSizeXs: number | null = null;\r\n\r\n /**\r\n * default label size for extra extra large devices\r\n */\r\n @Input()\r\n public labelSizeXxl: number | null = null;\r\n\r\n /**\r\n * Name des Controls\r\n */\r\n @Input() public name: string = createGuid();\r\n\r\n /**\r\n * Leere Implementation von \"propagateChange\". Muss gemacht werden, damit kein Fehler entsteht\r\n */\r\n public propagateChange: any = () => {};\r\n\r\n /**\r\n * Leere Implementation von \"propagateTouch\". Muss gemacht werden, damit kein Fehler entsteht\r\n */\r\n public propagateTouch: any = () => {};\r\n\r\n /**\r\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!\r\n */\r\n @Input()\r\n public splitlabelandhelptext: boolean | null = null;\r\n\r\n /**\r\n * Service to receive standard validation message keys and texts\r\n */\r\n public validationKeyService: ISacValidationKeyService;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n */\r\n constructor(@Host() formlayout: SacFormLayoutCommon, private readonly injector: Injector) {\r\n this.formlayout = formlayout;\r\n this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());\r\n this.lngResourceService = injector.get(\r\n SACLOCALISATION_SERVICE,\r\n new SacDefaultLocalisationService(this.validationKeyService)\r\n );\r\n\r\n this.configurationService = injector.get(SACCONFIGURATION_SERVICE, new SacDefaultConfigurationService());\r\n\r\n this.iconService = injector.get(SACICON_SERVICE, new SacDefaultIconService());\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Get Icon for Helptext Tooltip\r\n */\r\n public get HelptextTooltipIcon(): string {\r\n return this.iconService.GenericHelptextIcon;\r\n }\r\n\r\n /**\r\n * Methode ergibt Boolean Wert f\xFCr dirty\r\n */\r\n public get dirty(): boolean {\r\n if (this.ngControl !== null && this.ngControl !== undefined) {\r\n this._dirty = this.ngControl.dirty;\r\n }\r\n\r\n return this._dirty;\r\n }\r\n\r\n /**\r\n * Show error messages inline\r\n */\r\n public get inlineerrorenabled(): boolean | null {\r\n return this._inlineerrorenabled;\r\n }\r\n\r\n /**\r\n * Aktiviert oder Deaktiviert die Inline Errors f\xFCr das Control\r\n */\r\n @Input()\r\n public set inlineerrorenabled(value: boolean | null) {\r\n if (value === null || value === undefined) {\r\n this._inlineerrorenabled = null;\r\n } else {\r\n this._inlineerrorenabled = convertToBoolean(value);\r\n }\r\n }\r\n\r\n /**\r\n * Methode ergibt boolean Wert wenn Form invalid oder nicht invalid ist\r\n */\r\n public get invalid(): boolean {\r\n return this.ngControl !== undefined && this.ngControl !== null && this.ngControl.invalid;\r\n }\r\n\r\n /**\r\n * Definiert ob das Control disabled ist\r\n */\r\n public get isdisabled(): boolean {\r\n return this._disabledForm || this.disabled;\r\n }\r\n\r\n /**\r\n * Returns whether the inline error messages are active for this control.\r\n */\r\n public get isinlineerrorenabled(): boolean {\r\n if (this._inlineerrorenabled !== null) {\r\n return this._inlineerrorenabled;\r\n }\r\n\r\n if (this.formlayout !== null && this.formlayout.IsInlineErrorEnabled !== null) {\r\n return this.formlayout?.IsInlineErrorEnabled;\r\n }\r\n\r\n if (this.configurationService.InlineErrorEnabled !== null) {\r\n return this.configurationService.InlineErrorEnabled;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Definiert den Label Text\r\n */\r\n public get label(): string {\r\n return this._label;\r\n }\r\n\r\n /**\r\n * Definiert den Label Text\r\n */\r\n @Input() public set label(v: string) {\r\n this._label = v;\r\n this.UpdateLabelToControl();\r\n }\r\n\r\n /**\r\n * returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe\r\n */\r\n public get labelSizes(): ISacLabelSizes {\r\n return {\r\n labelSizeSm: this.labelSizeSm,\r\n labelSizeMd: this.labelSizeMd,\r\n labelSizeXs: this.labelSizeXs,\r\n labelSizeXl: this.labelSizeXl,\r\n labelSizeXxl: this.labelSizeXxl,\r\n labelSizeLg: this.labelSizeLg,\r\n };\r\n }\r\n\r\n /**\r\n * Methode ergibt Boolean Wert f\xFCr touched\r\n */\r\n public get touched(): boolean {\r\n if (this.ngControl !== null && this.ngControl !== undefined) {\r\n this._touched = this.ngControl.touched;\r\n }\r\n\r\n return this._touched;\r\n }\r\n\r\n /**\r\n * Get Methode f\xFCr NgModel Binding in Html Markup\r\n */\r\n public get value(): VALUE {\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Set Methode f\xFCr NgModel Binding in Html Markup\r\n * Input wird ben\xF6tigt, damit der Wert auch \xFCber das Markup gesetzt werden kann.\r\n */\r\n @Input()\r\n public set value(v: VALUE) {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this._value = this.ConvertInputValue(v);\r\n this.propagateChange(this._value);\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Methode ergibt Error anhand von gegebenen Kriterien\r\n */\r\n public GetErrorMessage(): Observable<string> {\r\n if (this.ngControl.errors === undefined || this.ngControl.errors === null) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const errors: ValidationErrors = this.ngControl.errors;\r\n\r\n if (errors.length === 0) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const keys: string[] = Object.keys(errors);\r\n\r\n if (keys.length <= 0) {\r\n return new Observable<string>((observer) => {\r\n observer.next('');\r\n observer.complete();\r\n });\r\n }\r\n\r\n const errorItem: ValidationErrorItem = errors[keys[0]];\r\n\r\n // Validation Parameters\r\n const parameters = {};\r\n if (errorItem.parameters !== null && errorItem.parameters !== undefined) {\r\n errorItem.parameters.forEach((v, k) => {\r\n parameters[k] = v;\r\n });\r\n }\r\n parameters['FIELD'] = errorItem.fieldName;\r\n\r\n return this.lngResourceService.GetString(errorItem.errorMessageKey, parameters);\r\n }\r\n\r\n /**\r\n * Init Event\r\n */\r\n public ngOnInit() {\r\n // receive form via formcontrolname or formcontrol instance\r\n const formControl = this.injector.get(NgControl, null);\r\n if (formControl instanceof FormControlName) {\r\n const form = this.injector.get(FormGroupDirective, null);\r\n this.ngControl = form.getControl(formControl);\r\n } else {\r\n if (formControl) {\r\n this.ngControl = formControl.control as FormControl;\r\n }\r\n }\r\n\r\n this.UpdateLabelToControl();\r\n\r\n // set label sizes from formlayout directive\r\n this.setLabelSizes();\r\n\r\n // set component heigth from fromlayout directive\r\n this.setComponentHeight();\r\n\r\n // set adaptive label property from formlayout directive\r\n this.setIsAdaptiveLabel();\r\n\r\n // set method to display helptext\r\n this.setHelpTextMode();\r\n\r\n // set SplitMode for Labels\r\n this.setLabelSplitMode();\r\n\r\n this.OnClassInit();\r\n }\r\n\r\n /**\r\n * Methode ergibt boolean touched = true\r\n */\r\n public onTouch(): void {\r\n this._touched = true;\r\n this.propagateTouch();\r\n }\r\n\r\n /**\r\n * Methode, damit andere Controls \xE4nderungen im Control mitbekommen k\xF6nnen\r\n * Zur \xC4nderungsinfo die Methode propagateChange aufrufen.\r\n */\r\n public registerOnChange(fn: any): void {\r\n this.propagateChange = (obj) => fn(obj);\r\n }\r\n\r\n /**\r\n * Methode, damit andere Controls \xE4nderungen mitbekommen, wenn das Control aktiviert (Focus) wird.\r\n */\r\n public registerOnTouched(fn: any): void {\r\n this.propagateTouch = (obj) => fn(obj);\r\n }\r\n\r\n /**\r\n * Methode registriert \xC4nderungen bei der Validierung\r\n */\r\n public registerOnValidatorChange(fn: () => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Setzt das Control auf Disabled\r\n */\r\n public setDisabledState(isDisabled: boolean): void {\r\n this._disabledForm = isDisabled;\r\n }\r\n\r\n /**\r\n * Methode die den Wert des Inputs setzt\r\n */\r\n public setValue(v: VALUE): void {\r\n this.value = v;\r\n }\r\n\r\n /**\r\n * Validator Methode\r\n */\r\n public validate(c: AbstractControl): ValidationErrors | null {\r\n const error: ValidationErrors | null = this.validateData(c);\r\n return error;\r\n }\r\n\r\n /**\r\n * Abstrakte Validator Methode\r\n */\r\n public abstract validateData(c: AbstractControl): ValidationErrors | null;\r\n\r\n /**\r\n * Methode zum schreiben von Werten aus dem Model in das Control\r\n */\r\n public writeValue(value: VALUE) {\r\n this._value = value;\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Protected Methods\r\n\r\n /**\r\n * Method can Overwriten in Parent Classes\r\n * @param value Wert welcher in den korrekten Typ konvertiert werden soll\r\n * @returns Wert im korrekten Typ\r\n */\r\n protected ConvertInputValue(value: VALUE): VALUE {\r\n return value;\r\n }\r\n\r\n /**\r\n * Methode ergibt Decimal Symbol\r\n */\r\n protected GetDecimalSymbol(): string {\r\n return '.';\r\n }\r\n\r\n /**\r\n * Method can be used to Set Properties at Class Init\r\n */\r\n protected OnClassInit(): void {}\r\n\r\n /**\r\n * Aktualisiert den NgModel Wert und die G\xFCltigkeit des Validators des Controls\r\n */\r\n protected UpdateValueAndValidity(): void {\r\n if (this.ngControl) {\r\n this.ngControl.updateValueAndValidity({ onlySelf: true });\r\n }\r\n }\r\n\r\n // #endregion Protected Methods\r\n\r\n // #region Private Methods\r\n\r\n private UpdateLabelToControl(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IAbstractControlLabelExtension).controllabel = this.label;\r\n }\r\n }\r\n\r\n /**\r\n * Set component height from property or parent layout control\r\n */\r\n private setComponentHeight() {\r\n // set size extra small\r\n if (!this.componentHeight) {\r\n if (this.formlayout?.componentHeight) {\r\n this.componentHeight = this.formlayout.componentHeight;\r\n } else {\r\n this.componentHeight = this.configurationService.ComponentHeight;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set mode for helptext. Can be tooltip or text\r\n */\r\n private setHelpTextMode() {\r\n if (!this.helptextmode) {\r\n if (this.formlayout?.helptextmode) {\r\n this.helptextmode = this.formlayout.helptextmode;\r\n } else {\r\n this.helptextmode = this.configurationService.HelptextMode;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set adaptive label property from parent layout control\r\n */\r\n private setIsAdaptiveLabel() {\r\n if (!this.isAdaptiveLabel) {\r\n if (this.formlayout?.isAdaptiveLabel !== undefined) {\r\n this.isAdaptiveLabel = this.formlayout.isAdaptiveLabel;\r\n } else {\r\n this.isAdaptiveLabel = false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set label sizes from property or parent layout control\r\n */\r\n private setLabelSizes() {\r\n // set size extra small\r\n if (!this.labelSizeXs) {\r\n if (this.formlayout?.labelSizeXs) {\r\n this.labelSizeXs = this.formlayout.labelSizeXs;\r\n } else {\r\n this.labelSizeXs = this.configurationService.LabelSizeXs;\r\n }\r\n }\r\n\r\n // set size small\r\n if (!this.labelSizeSm) {\r\n if (this.formlayout?.labelSizeSm) {\r\n this.labelSizeSm = this.formlayout.labelSizeSm;\r\n } else {\r\n this.labelSizeSm = this.configurationService.LabelSizeSm;\r\n }\r\n }\r\n\r\n // set size medium\r\n if (!this.labelSizeMd) {\r\n if (this.formlayout?.labelSizeMd) {\r\n this.labelSizeMd = this.formlayout.labelSizeMd;\r\n } else {\r\n this.labelSizeMd = this.configurationService.LabelSizeMd;\r\n }\r\n }\r\n\r\n // set size large\r\n if (!this.labelSizeLg) {\r\n if (this.formlayout?.labelSizeLg) {\r\n this.labelSizeLg = this.formlayout.labelSizeLg;\r\n } else {\r\n this.labelSizeLg = this.configurationService.LabelSizeLg;\r\n }\r\n }\r\n\r\n // set size extra large\r\n if (!this.labelSizeXl) {\r\n if (this.formlayout?.labelSizeXl) {\r\n this.labelSizeXl = this.formlayout.labelSizeXl;\r\n } else {\r\n this.labelSizeXl = this.configurationService.LabelSizeXl;\r\n }\r\n }\r\n\r\n // set size extra extra large\r\n if (!this.labelSizeXxl) {\r\n if (this.formlayout?.labelSizeXxl) {\r\n this.labelSizeXxl = this.formlayout.labelSizeXxl;\r\n } else {\r\n this.labelSizeXxl = this.configurationService.LabelSizeXxl;\r\n }\r\n }\r\n }\r\n\r\n private setLabelSplitMode() {\r\n if (!this.splitlabelandhelptext) {\r\n if (this.formlayout?.splitlabelandhelptext) {\r\n this.splitlabelandhelptext = this.formlayout.splitlabelandhelptext;\r\n } else {\r\n this.splitlabelandhelptext = this.configurationService.SplitLabelAndHelptext;\r\n }\r\n }\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"ba635d5d4e47f34c1160e7c163d648d28f407e80"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_1p13oaoc7g=function(){return actualCoverage;};}return actualCoverage;}cov_1p13oaoc7g();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
3
|
* Abstract Klasse für SacBaseModelControl. Implements ControlValueAccessor, Validator, OnInit
|
|
4
4
|
*/export class SacBaseModelControl{// #endregion Properties
|
|
5
5
|
// #region Constructors
|
|
@@ -10,7 +10,9 @@ cov_1p13oaoc7g=function(){return actualCoverage;};}return actualCoverage;}cov_1p
|
|
|
10
10
|
*/constructor(formlayout,injector){cov_1p13oaoc7g().f[0]++;cov_1p13oaoc7g().s[0]++;this.injector=injector;// #region Properties
|
|
11
11
|
/**
|
|
12
12
|
* Inline Errors für das Control
|
|
13
|
-
*/cov_1p13oaoc7g().s[1]++;this._inlineerrorenabled=null
|
|
13
|
+
*/cov_1p13oaoc7g().s[1]++;this._inlineerrorenabled=null;/**
|
|
14
|
+
* Label Text
|
|
15
|
+
*/cov_1p13oaoc7g().s[2]++;this._label='';/**
|
|
14
16
|
* Boolean Property dirty; default Wert - false
|
|
15
17
|
*/cov_1p13oaoc7g().s[3]++;this._dirty=false;/**
|
|
16
18
|
* SacModel Form ist disabled
|
|
@@ -21,124 +23,127 @@ cov_1p13oaoc7g=function(){return actualCoverage;};}return actualCoverage;}cov_1p
|
|
|
21
23
|
*/cov_1p13oaoc7g().s[6]++;this._value=null;/**
|
|
22
24
|
* Form layout instance if exists
|
|
23
25
|
*/cov_1p13oaoc7g().s[7]++;this.formlayout=null;/**
|
|
26
|
+
* ControlHeight enum for use in HTML markup
|
|
27
|
+
*/cov_1p13oaoc7g().s[8]++;this.ControlHeight=ControlHeight;/**
|
|
24
28
|
* Defines the standard height of the components
|
|
25
|
-
*/cov_1p13oaoc7g().s[
|
|
29
|
+
*/cov_1p13oaoc7g().s[9]++;this.componentHeight=null;/**
|
|
26
30
|
* Deaktiviert das Input Control
|
|
27
|
-
*/cov_1p13oaoc7g().s[
|
|
31
|
+
*/cov_1p13oaoc7g().s[10]++;this.disabled=false;/**
|
|
28
32
|
* Deaktiviert das Label im Template
|
|
29
|
-
*/cov_1p13oaoc7g().s[
|
|
33
|
+
*/cov_1p13oaoc7g().s[11]++;this.disablelabel=false;/**
|
|
30
34
|
* Text to support the user during input.
|
|
31
|
-
*/cov_1p13oaoc7g().s[
|
|
35
|
+
*/cov_1p13oaoc7g().s[12]++;this.helptext='';/**
|
|
32
36
|
* defines that error messages are displayed under the controls
|
|
33
|
-
*/cov_1p13oaoc7g().s[
|
|
37
|
+
*/cov_1p13oaoc7g().s[13]++;this.inlineError=true;/**
|
|
34
38
|
* defines that the labels are displayed as adaptive labels
|
|
35
|
-
*/cov_1p13oaoc7g().s[
|
|
39
|
+
*/cov_1p13oaoc7g().s[14]++;this.isAdaptiveLabel=false;/**
|
|
36
40
|
* default labe size for large devices
|
|
37
|
-
*/cov_1p13oaoc7g().s[
|
|
41
|
+
*/cov_1p13oaoc7g().s[15]++;this.labelSizeLg=null;/**
|
|
38
42
|
* default label size for medium devices
|
|
39
|
-
*/cov_1p13oaoc7g().s[
|
|
43
|
+
*/cov_1p13oaoc7g().s[16]++;this.labelSizeMd=null;/**
|
|
40
44
|
* default label size for small devices
|
|
41
|
-
*/cov_1p13oaoc7g().s[
|
|
45
|
+
*/cov_1p13oaoc7g().s[17]++;this.labelSizeSm=null;/**
|
|
42
46
|
* default label size for extra large devices
|
|
43
|
-
*/cov_1p13oaoc7g().s[
|
|
47
|
+
*/cov_1p13oaoc7g().s[18]++;this.labelSizeXl=null;/**
|
|
44
48
|
* default label column size
|
|
45
|
-
*/cov_1p13oaoc7g().s[
|
|
49
|
+
*/cov_1p13oaoc7g().s[19]++;this.labelSizeXs=null;/**
|
|
46
50
|
* default label size for extra extra large devices
|
|
47
|
-
*/cov_1p13oaoc7g().s[
|
|
51
|
+
*/cov_1p13oaoc7g().s[20]++;this.labelSizeXxl=null;/**
|
|
48
52
|
* Name des Controls
|
|
49
|
-
*/cov_1p13oaoc7g().s[
|
|
50
|
-
* ControlHeight enum for use in HTML markup
|
|
51
|
-
*/cov_1p13oaoc7g().s[21]++;this.ControlHeight=ControlHeight;/**
|
|
53
|
+
*/cov_1p13oaoc7g().s[21]++;this.name=createGuid();/**
|
|
52
54
|
* Leere Implementation von "propagateChange". Muss gemacht werden, damit kein Fehler entsteht
|
|
53
55
|
*/cov_1p13oaoc7g().s[22]++;this.propagateChange=()=>{cov_1p13oaoc7g().f[1]++;};/**
|
|
54
56
|
* Leere Implementation von "propagateTouch". Muss gemacht werden, damit kein Fehler entsteht
|
|
55
|
-
*/cov_1p13oaoc7g().s[23]++;this.propagateTouch=()=>{cov_1p13oaoc7g().f[2]++;}
|
|
57
|
+
*/cov_1p13oaoc7g().s[23]++;this.propagateTouch=()=>{cov_1p13oaoc7g().f[2]++;};/**
|
|
58
|
+
* 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!
|
|
59
|
+
*/cov_1p13oaoc7g().s[24]++;this.splitlabelandhelptext=null;cov_1p13oaoc7g().s[25]++;this.formlayout=formlayout;cov_1p13oaoc7g().s[26]++;this.validationKeyService=injector.get(SACVALIDATIONKEY_SERVICE,new SacDefaultValidationKeyService());cov_1p13oaoc7g().s[27]++;this.lngResourceService=injector.get(SACLOCALISATION_SERVICE,new SacDefaultLocalisationService(this.validationKeyService));cov_1p13oaoc7g().s[28]++;this.configurationService=injector.get(SACCONFIGURATION_SERVICE,new SacDefaultConfigurationService());cov_1p13oaoc7g().s[29]++;this.iconService=injector.get(SACICON_SERVICE,new SacDefaultIconService());}// #endregion Constructors
|
|
56
60
|
// #region Public Getters And Setters
|
|
57
61
|
/**
|
|
58
|
-
* Aktiviert oder Deaktiviert die Inline Errors für das Control
|
|
59
|
-
*/set inlineerrorenabled(value){cov_1p13oaoc7g().f[3]++;cov_1p13oaoc7g().s[29]++;if((cov_1p13oaoc7g().b[1][0]++,value===null)||(cov_1p13oaoc7g().b[1][1]++,value===undefined)){cov_1p13oaoc7g().b[0][0]++;cov_1p13oaoc7g().s[30]++;this._inlineerrorenabled=null;}else{cov_1p13oaoc7g().b[0][1]++;cov_1p13oaoc7g().s[31]++;this._inlineerrorenabled=convertToBoolean(value);}}/**
|
|
60
|
-
* Definiert den Label Text
|
|
61
|
-
*/set label(v){cov_1p13oaoc7g().f[4]++;cov_1p13oaoc7g().s[32]++;this._label=v;cov_1p13oaoc7g().s[33]++;this.UpdateLabelToControl();}/**
|
|
62
|
-
* Set Methode für NgModel Binding in Html Markup
|
|
63
|
-
* Input wird benötigt, damit der Wert auch über das Markup gesetzt werden kann.
|
|
64
|
-
*/set value(v){cov_1p13oaoc7g().f[5]++;cov_1p13oaoc7g().s[34]++;if(this.disabled){cov_1p13oaoc7g().b[2][0]++;cov_1p13oaoc7g().s[35]++;return;}else{cov_1p13oaoc7g().b[2][1]++;}cov_1p13oaoc7g().s[36]++;this._value=this.ConvertInputValue(v);cov_1p13oaoc7g().s[37]++;this.propagateChange(this._value);}/**
|
|
65
62
|
* Get Icon for Helptext Tooltip
|
|
66
|
-
*/get HelptextTooltipIcon(){cov_1p13oaoc7g().f[
|
|
63
|
+
*/get HelptextTooltipIcon(){cov_1p13oaoc7g().f[3]++;cov_1p13oaoc7g().s[30]++;return this.iconService.GenericHelptextIcon;}/**
|
|
67
64
|
* Methode ergibt Boolean Wert für dirty
|
|
68
|
-
*/get dirty(){cov_1p13oaoc7g().f[
|
|
65
|
+
*/get dirty(){cov_1p13oaoc7g().f[4]++;cov_1p13oaoc7g().s[31]++;if((cov_1p13oaoc7g().b[1][0]++,this.ngControl!==null)&&(cov_1p13oaoc7g().b[1][1]++,this.ngControl!==undefined)){cov_1p13oaoc7g().b[0][0]++;cov_1p13oaoc7g().s[32]++;this._dirty=this.ngControl.dirty;}else{cov_1p13oaoc7g().b[0][1]++;}cov_1p13oaoc7g().s[33]++;return this._dirty;}/**
|
|
69
66
|
* Show error messages inline
|
|
70
|
-
*/get inlineerrorenabled(){cov_1p13oaoc7g().f[
|
|
67
|
+
*/get inlineerrorenabled(){cov_1p13oaoc7g().f[5]++;cov_1p13oaoc7g().s[34]++;return this._inlineerrorenabled;}/**
|
|
68
|
+
* Aktiviert oder Deaktiviert die Inline Errors für das Control
|
|
69
|
+
*/set inlineerrorenabled(value){cov_1p13oaoc7g().f[6]++;cov_1p13oaoc7g().s[35]++;if((cov_1p13oaoc7g().b[3][0]++,value===null)||(cov_1p13oaoc7g().b[3][1]++,value===undefined)){cov_1p13oaoc7g().b[2][0]++;cov_1p13oaoc7g().s[36]++;this._inlineerrorenabled=null;}else{cov_1p13oaoc7g().b[2][1]++;cov_1p13oaoc7g().s[37]++;this._inlineerrorenabled=convertToBoolean(value);}}/**
|
|
71
70
|
* Methode ergibt boolean Wert wenn Form invalid oder nicht invalid ist
|
|
72
|
-
*/get invalid(){cov_1p13oaoc7g().f[
|
|
71
|
+
*/get invalid(){cov_1p13oaoc7g().f[7]++;cov_1p13oaoc7g().s[38]++;return(cov_1p13oaoc7g().b[4][0]++,this.ngControl!==undefined)&&(cov_1p13oaoc7g().b[4][1]++,this.ngControl!==null)&&(cov_1p13oaoc7g().b[4][2]++,this.ngControl.invalid);}/**
|
|
73
72
|
* Definiert ob das Control disabled ist
|
|
74
|
-
*/get isdisabled(){cov_1p13oaoc7g().f[
|
|
73
|
+
*/get isdisabled(){cov_1p13oaoc7g().f[8]++;cov_1p13oaoc7g().s[39]++;return(cov_1p13oaoc7g().b[5][0]++,this._disabledForm)||(cov_1p13oaoc7g().b[5][1]++,this.disabled);}/**
|
|
75
74
|
* Returns whether the inline error messages are active for this control.
|
|
76
|
-
*/get isinlineerrorenabled(){cov_1p13oaoc7g().f[
|
|
75
|
+
*/get isinlineerrorenabled(){cov_1p13oaoc7g().f[9]++;cov_1p13oaoc7g().s[40]++;if(this._inlineerrorenabled!==null){cov_1p13oaoc7g().b[6][0]++;cov_1p13oaoc7g().s[41]++;return this._inlineerrorenabled;}else{cov_1p13oaoc7g().b[6][1]++;}cov_1p13oaoc7g().s[42]++;if((cov_1p13oaoc7g().b[8][0]++,this.formlayout!==null)&&(cov_1p13oaoc7g().b[8][1]++,this.formlayout.IsInlineErrorEnabled!==null)){cov_1p13oaoc7g().b[7][0]++;cov_1p13oaoc7g().s[43]++;return this.formlayout?.IsInlineErrorEnabled;}else{cov_1p13oaoc7g().b[7][1]++;}cov_1p13oaoc7g().s[44]++;if(this.configurationService.InlineErrorEnabled!==null){cov_1p13oaoc7g().b[9][0]++;cov_1p13oaoc7g().s[45]++;return this.configurationService.InlineErrorEnabled;}else{cov_1p13oaoc7g().b[9][1]++;}cov_1p13oaoc7g().s[46]++;return true;}/**
|
|
76
|
+
* Definiert den Label Text
|
|
77
|
+
*/get label(){cov_1p13oaoc7g().f[10]++;cov_1p13oaoc7g().s[47]++;return this._label;}/**
|
|
77
78
|
* Definiert den Label Text
|
|
78
|
-
*/
|
|
79
|
+
*/set label(v){cov_1p13oaoc7g().f[11]++;cov_1p13oaoc7g().s[48]++;this._label=v;cov_1p13oaoc7g().s[49]++;this.UpdateLabelToControl();}/**
|
|
79
80
|
* returns an object with all label sizes. These values can then be transferred to corresponding CSS classes using a pipe
|
|
80
|
-
*/get labelSizes(){cov_1p13oaoc7g().f[
|
|
81
|
+
*/get labelSizes(){cov_1p13oaoc7g().f[12]++;cov_1p13oaoc7g().s[50]++;return{labelSizeSm:this.labelSizeSm,labelSizeMd:this.labelSizeMd,labelSizeXs:this.labelSizeXs,labelSizeXl:this.labelSizeXl,labelSizeXxl:this.labelSizeXxl,labelSizeLg:this.labelSizeLg};}/**
|
|
81
82
|
* Methode ergibt Boolean Wert für touched
|
|
82
|
-
*/get touched(){cov_1p13oaoc7g().f[
|
|
83
|
+
*/get touched(){cov_1p13oaoc7g().f[13]++;cov_1p13oaoc7g().s[51]++;if((cov_1p13oaoc7g().b[11][0]++,this.ngControl!==null)&&(cov_1p13oaoc7g().b[11][1]++,this.ngControl!==undefined)){cov_1p13oaoc7g().b[10][0]++;cov_1p13oaoc7g().s[52]++;this._touched=this.ngControl.touched;}else{cov_1p13oaoc7g().b[10][1]++;}cov_1p13oaoc7g().s[53]++;return this._touched;}/**
|
|
83
84
|
* Get Methode für NgModel Binding in Html Markup
|
|
84
|
-
*/get value(){cov_1p13oaoc7g().f[
|
|
85
|
+
*/get value(){cov_1p13oaoc7g().f[14]++;cov_1p13oaoc7g().s[54]++;return this._value;}/**
|
|
86
|
+
* Set Methode für NgModel Binding in Html Markup
|
|
87
|
+
* Input wird benötigt, damit der Wert auch über das Markup gesetzt werden kann.
|
|
88
|
+
*/set value(v){cov_1p13oaoc7g().f[15]++;cov_1p13oaoc7g().s[55]++;if(this.disabled){cov_1p13oaoc7g().b[12][0]++;cov_1p13oaoc7g().s[56]++;return;}else{cov_1p13oaoc7g().b[12][1]++;}cov_1p13oaoc7g().s[57]++;this._value=this.ConvertInputValue(v);cov_1p13oaoc7g().s[58]++;this.propagateChange(this._value);}// #endregion Public Getters And Setters
|
|
85
89
|
// #region Public Methods
|
|
86
90
|
/**
|
|
87
91
|
* Methode ergibt Error anhand von gegebenen Kriterien
|
|
88
|
-
*/GetErrorMessage(){cov_1p13oaoc7g().f[16]++;cov_1p13oaoc7g().s[
|
|
89
|
-
const parameters=(cov_1p13oaoc7g().s[
|
|
92
|
+
*/GetErrorMessage(){cov_1p13oaoc7g().f[16]++;cov_1p13oaoc7g().s[59]++;if((cov_1p13oaoc7g().b[14][0]++,this.ngControl.errors===undefined)||(cov_1p13oaoc7g().b[14][1]++,this.ngControl.errors===null)){cov_1p13oaoc7g().b[13][0]++;cov_1p13oaoc7g().s[60]++;return new Observable(observer=>{cov_1p13oaoc7g().f[17]++;cov_1p13oaoc7g().s[61]++;observer.next('');cov_1p13oaoc7g().s[62]++;observer.complete();});}else{cov_1p13oaoc7g().b[13][1]++;}const errors=(cov_1p13oaoc7g().s[63]++,this.ngControl.errors);cov_1p13oaoc7g().s[64]++;if(errors.length===0){cov_1p13oaoc7g().b[15][0]++;cov_1p13oaoc7g().s[65]++;return new Observable(observer=>{cov_1p13oaoc7g().f[18]++;cov_1p13oaoc7g().s[66]++;observer.next('');cov_1p13oaoc7g().s[67]++;observer.complete();});}else{cov_1p13oaoc7g().b[15][1]++;}const keys=(cov_1p13oaoc7g().s[68]++,Object.keys(errors));cov_1p13oaoc7g().s[69]++;if(keys.length<=0){cov_1p13oaoc7g().b[16][0]++;cov_1p13oaoc7g().s[70]++;return new Observable(observer=>{cov_1p13oaoc7g().f[19]++;cov_1p13oaoc7g().s[71]++;observer.next('');cov_1p13oaoc7g().s[72]++;observer.complete();});}else{cov_1p13oaoc7g().b[16][1]++;}const errorItem=(cov_1p13oaoc7g().s[73]++,errors[keys[0]]);// Validation Parameters
|
|
93
|
+
const parameters=(cov_1p13oaoc7g().s[74]++,{});cov_1p13oaoc7g().s[75]++;if((cov_1p13oaoc7g().b[18][0]++,errorItem.parameters!==null)&&(cov_1p13oaoc7g().b[18][1]++,errorItem.parameters!==undefined)){cov_1p13oaoc7g().b[17][0]++;cov_1p13oaoc7g().s[76]++;errorItem.parameters.forEach((v,k)=>{cov_1p13oaoc7g().f[20]++;cov_1p13oaoc7g().s[77]++;parameters[k]=v;});}else{cov_1p13oaoc7g().b[17][1]++;}cov_1p13oaoc7g().s[78]++;parameters['FIELD']=errorItem.fieldName;cov_1p13oaoc7g().s[79]++;return this.lngResourceService.GetString(errorItem.errorMessageKey,parameters);}/**
|
|
90
94
|
* Init Event
|
|
91
95
|
*/ngOnInit(){cov_1p13oaoc7g().f[21]++;// receive form via formcontrolname or formcontrol instance
|
|
92
|
-
const formControl=(cov_1p13oaoc7g().s[
|
|
93
|
-
cov_1p13oaoc7g().s[
|
|
94
|
-
cov_1p13oaoc7g().s[
|
|
95
|
-
cov_1p13oaoc7g().s[
|
|
96
|
-
cov_1p13oaoc7g().s[
|
|
96
|
+
const formControl=(cov_1p13oaoc7g().s[80]++,this.injector.get(NgControl,null));cov_1p13oaoc7g().s[81]++;if(formControl instanceof FormControlName){cov_1p13oaoc7g().b[19][0]++;const form=(cov_1p13oaoc7g().s[82]++,this.injector.get(FormGroupDirective,null));cov_1p13oaoc7g().s[83]++;this.ngControl=form.getControl(formControl);}else{cov_1p13oaoc7g().b[19][1]++;cov_1p13oaoc7g().s[84]++;if(formControl){cov_1p13oaoc7g().b[20][0]++;cov_1p13oaoc7g().s[85]++;this.ngControl=formControl.control;}else{cov_1p13oaoc7g().b[20][1]++;}}cov_1p13oaoc7g().s[86]++;this.UpdateLabelToControl();// set label sizes from formlayout directive
|
|
97
|
+
cov_1p13oaoc7g().s[87]++;this.setLabelSizes();// set component heigth from fromlayout directive
|
|
98
|
+
cov_1p13oaoc7g().s[88]++;this.setComponentHeight();// set adaptive label property from formlayout directive
|
|
99
|
+
cov_1p13oaoc7g().s[89]++;this.setIsAdaptiveLabel();// set method to display helptext
|
|
100
|
+
cov_1p13oaoc7g().s[90]++;this.setHelpTextMode();// set SplitMode for Labels
|
|
101
|
+
cov_1p13oaoc7g().s[91]++;this.setLabelSplitMode();cov_1p13oaoc7g().s[92]++;this.OnClassInit();}/**
|
|
97
102
|
* Methode ergibt boolean touched = true
|
|
98
|
-
*/onTouch(){cov_1p13oaoc7g().f[22]++;cov_1p13oaoc7g().s[
|
|
103
|
+
*/onTouch(){cov_1p13oaoc7g().f[22]++;cov_1p13oaoc7g().s[93]++;this._touched=true;cov_1p13oaoc7g().s[94]++;this.propagateTouch();}/**
|
|
99
104
|
* Methode, damit andere Controls änderungen im Control mitbekommen können
|
|
100
105
|
* Zur Änderungsinfo die Methode propagateChange aufrufen.
|
|
101
|
-
*/registerOnChange(fn){cov_1p13oaoc7g().f[23]++;cov_1p13oaoc7g().s[
|
|
106
|
+
*/registerOnChange(fn){cov_1p13oaoc7g().f[23]++;cov_1p13oaoc7g().s[95]++;this.propagateChange=obj=>{cov_1p13oaoc7g().f[24]++;cov_1p13oaoc7g().s[96]++;return fn(obj);};}/**
|
|
102
107
|
* Methode, damit andere Controls änderungen mitbekommen, wenn das Control aktiviert (Focus) wird.
|
|
103
|
-
*/registerOnTouched(fn){cov_1p13oaoc7g().f[25]++;cov_1p13oaoc7g().s[
|
|
108
|
+
*/registerOnTouched(fn){cov_1p13oaoc7g().f[25]++;cov_1p13oaoc7g().s[97]++;this.propagateTouch=obj=>{cov_1p13oaoc7g().f[26]++;cov_1p13oaoc7g().s[98]++;return fn(obj);};}/**
|
|
104
109
|
* Methode registriert Änderungen bei der Validierung
|
|
105
|
-
*/registerOnValidatorChange(fn){cov_1p13oaoc7g().f[27]++;cov_1p13oaoc7g().s[
|
|
110
|
+
*/registerOnValidatorChange(fn){cov_1p13oaoc7g().f[27]++;cov_1p13oaoc7g().s[99]++;this._onChange=fn;}/**
|
|
106
111
|
* Setzt das Control auf Disabled
|
|
107
|
-
*/setDisabledState(isDisabled){cov_1p13oaoc7g().f[28]++;cov_1p13oaoc7g().s[
|
|
112
|
+
*/setDisabledState(isDisabled){cov_1p13oaoc7g().f[28]++;cov_1p13oaoc7g().s[100]++;this._disabledForm=isDisabled;}/**
|
|
108
113
|
* Methode die den Wert des Inputs setzt
|
|
109
|
-
*/setValue(v){cov_1p13oaoc7g().f[29]++;cov_1p13oaoc7g().s[
|
|
114
|
+
*/setValue(v){cov_1p13oaoc7g().f[29]++;cov_1p13oaoc7g().s[101]++;this.value=v;}/**
|
|
110
115
|
* Validator Methode
|
|
111
|
-
*/validate(c){cov_1p13oaoc7g().f[30]++;const error=(cov_1p13oaoc7g().s[
|
|
116
|
+
*/validate(c){cov_1p13oaoc7g().f[30]++;const error=(cov_1p13oaoc7g().s[102]++,this.validateData(c));cov_1p13oaoc7g().s[103]++;return error;}/**
|
|
112
117
|
* Methode zum schreiben von Werten aus dem Model in das Control
|
|
113
|
-
*/writeValue(value){cov_1p13oaoc7g().f[31]++;cov_1p13oaoc7g().s[
|
|
118
|
+
*/writeValue(value){cov_1p13oaoc7g().f[31]++;cov_1p13oaoc7g().s[104]++;this._value=value;}// #endregion Public Methods
|
|
114
119
|
// #region Protected Methods
|
|
115
120
|
/**
|
|
116
121
|
* Method can Overwriten in Parent Classes
|
|
117
122
|
* @param value Wert welcher in den korrekten Typ konvertiert werden soll
|
|
118
123
|
* @returns Wert im korrekten Typ
|
|
119
|
-
*/ConvertInputValue(value){cov_1p13oaoc7g().f[32]++;cov_1p13oaoc7g().s[
|
|
124
|
+
*/ConvertInputValue(value){cov_1p13oaoc7g().f[32]++;cov_1p13oaoc7g().s[105]++;return value;}/**
|
|
120
125
|
* Methode ergibt Decimal Symbol
|
|
121
|
-
*/GetDecimalSymbol(){cov_1p13oaoc7g().f[33]++;cov_1p13oaoc7g().s[
|
|
126
|
+
*/GetDecimalSymbol(){cov_1p13oaoc7g().f[33]++;cov_1p13oaoc7g().s[106]++;return'.';}/**
|
|
122
127
|
* Method can be used to Set Properties at Class Init
|
|
123
128
|
*/OnClassInit(){cov_1p13oaoc7g().f[34]++;}/**
|
|
124
129
|
* Aktualisiert den NgModel Wert und die Gültigkeit des Validators des Controls
|
|
125
|
-
*/UpdateValueAndValidity(){cov_1p13oaoc7g().f[35]++;cov_1p13oaoc7g().s[
|
|
130
|
+
*/UpdateValueAndValidity(){cov_1p13oaoc7g().f[35]++;cov_1p13oaoc7g().s[107]++;if(this.ngControl){cov_1p13oaoc7g().b[21][0]++;cov_1p13oaoc7g().s[108]++;this.ngControl.updateValueAndValidity({onlySelf:true});}else{cov_1p13oaoc7g().b[21][1]++;}}// #endregion Protected Methods
|
|
126
131
|
// #region Private Methods
|
|
127
|
-
UpdateLabelToControl(){cov_1p13oaoc7g().f[36]++;cov_1p13oaoc7g().s[
|
|
128
|
-
if(this.ngControl){cov_1p13oaoc7g().b[
|
|
132
|
+
UpdateLabelToControl(){cov_1p13oaoc7g().f[36]++;cov_1p13oaoc7g().s[109]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
133
|
+
if(this.ngControl){cov_1p13oaoc7g().b[22][0]++;cov_1p13oaoc7g().s[110]++;this.ngControl.controllabel=this.label;}else{cov_1p13oaoc7g().b[22][1]++;}}/**
|
|
129
134
|
* Set component height from property or parent layout control
|
|
130
|
-
*/setComponentHeight(){cov_1p13oaoc7g().f[37]++;cov_1p13oaoc7g().s[
|
|
131
|
-
if(!this.componentHeight){cov_1p13oaoc7g().b[
|
|
135
|
+
*/setComponentHeight(){cov_1p13oaoc7g().f[37]++;cov_1p13oaoc7g().s[111]++;// set size extra small
|
|
136
|
+
if(!this.componentHeight){cov_1p13oaoc7g().b[23][0]++;cov_1p13oaoc7g().s[112]++;if(this.formlayout?.componentHeight){cov_1p13oaoc7g().b[24][0]++;cov_1p13oaoc7g().s[113]++;this.componentHeight=this.formlayout.componentHeight;}else{cov_1p13oaoc7g().b[24][1]++;cov_1p13oaoc7g().s[114]++;this.componentHeight=this.configurationService.ComponentHeight;}}else{cov_1p13oaoc7g().b[23][1]++;}}/**
|
|
132
137
|
* Set mode for helptext. Can be tooltip or text
|
|
133
|
-
*/setHelpTextMode(){cov_1p13oaoc7g().f[38]++;cov_1p13oaoc7g().s[
|
|
138
|
+
*/setHelpTextMode(){cov_1p13oaoc7g().f[38]++;cov_1p13oaoc7g().s[115]++;if(!this.helptextmode){cov_1p13oaoc7g().b[25][0]++;cov_1p13oaoc7g().s[116]++;if(this.formlayout?.helptextmode){cov_1p13oaoc7g().b[26][0]++;cov_1p13oaoc7g().s[117]++;this.helptextmode=this.formlayout.helptextmode;}else{cov_1p13oaoc7g().b[26][1]++;cov_1p13oaoc7g().s[118]++;this.helptextmode=this.configurationService.HelptextMode;}}else{cov_1p13oaoc7g().b[25][1]++;}}/**
|
|
134
139
|
* Set adaptive label property from parent layout control
|
|
135
|
-
*/setIsAdaptiveLabel(){cov_1p13oaoc7g().f[39]++;cov_1p13oaoc7g().s[
|
|
140
|
+
*/setIsAdaptiveLabel(){cov_1p13oaoc7g().f[39]++;cov_1p13oaoc7g().s[119]++;if(!this.isAdaptiveLabel){cov_1p13oaoc7g().b[27][0]++;cov_1p13oaoc7g().s[120]++;if(this.formlayout?.isAdaptiveLabel!==undefined){cov_1p13oaoc7g().b[28][0]++;cov_1p13oaoc7g().s[121]++;this.isAdaptiveLabel=this.formlayout.isAdaptiveLabel;}else{cov_1p13oaoc7g().b[28][1]++;cov_1p13oaoc7g().s[122]++;this.isAdaptiveLabel=false;}}else{cov_1p13oaoc7g().b[27][1]++;}}/**
|
|
136
141
|
* Set label sizes from property or parent layout control
|
|
137
|
-
*/setLabelSizes(){cov_1p13oaoc7g().f[40]++;cov_1p13oaoc7g().s[
|
|
138
|
-
if(!this.labelSizeXs){cov_1p13oaoc7g().b[
|
|
139
|
-
cov_1p13oaoc7g().s[
|
|
140
|
-
cov_1p13oaoc7g().s[
|
|
141
|
-
cov_1p13oaoc7g().s[
|
|
142
|
-
cov_1p13oaoc7g().s[
|
|
143
|
-
cov_1p13oaoc7g().s[141]++;if(!this.labelSizeXxl){cov_1p13oaoc7g().b[37][0]++;cov_1p13oaoc7g().s[142]++;if(this.formlayout?.labelSizeXxl){cov_1p13oaoc7g().b[38][0]++;cov_1p13oaoc7g().s[143]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_1p13oaoc7g().b[38][1]++;cov_1p13oaoc7g().s[144]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_1p13oaoc7g().b[37][1]++;}}}cov_1p13oaoc7g().s[145]++;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_1p13oaoc7g().s[146]++;SacBaseModelControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseModelControl,inputs:{componentHeight:"componentHeight",disabled:"disabled",disablelabel:"disablelabel",helptext:"helptext",helptextmode:"helptextmode",inlineError:"inlineError",isAdaptiveLabel:"isAdaptiveLabel",labelSizeLg:"labelSizeLg",labelSizeMd:"labelSizeMd",labelSizeSm:"labelSizeSm",labelSizeXl:"labelSizeXl",labelSizeXs:"labelSizeXs",labelSizeXxl:"labelSizeXxl",name:"name",inlineerrorenabled:"inlineerrorenabled",label:"label",value:"value"},ngImport:i0});cov_1p13oaoc7g().s[147]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_1p13oaoc7g().f[41]++;cov_1p13oaoc7g().s[148]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{componentHeight:[{type:Input}],disabled:[{type:Input}],disablelabel:[{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}],inlineerrorenabled:[{type:Input}],label:[{type:Input}],value:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBSUwsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixTQUFTLEdBR1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQy9CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEdBQy9CLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qiw2QkFBNkIsR0FDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUUvQzs7R0FFRztBQUVILE1BQU0sT0FBZ0IsbUJBQW1CO0lBdUl2Qyx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUNVLFVBQStCLEVBQ3RCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEvSXJDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLHdCQUFtQixHQUFtQixJQUFJLENBQUM7UUFDM0MsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQU81Qjs7V0FFRztRQUNPLFdBQU0sR0FBWSxLQUFLLENB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IEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgTmdDb250cm9sLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBDb250cm9sSGVpZ2h0IH0gZnJvbSAnLi4vZW51bXMvQ29udHJvbEhlaWdodCc7XHJcbmltcG9ydCB7IElTYWNDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjTGFiZWxTaXplcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xhYmVsU2l6ZXMnO1xyXG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XHJcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcclxuaW1wb3J0IHtcclxuICBTQUNJQ09OX1NFUlZJQ0UsXHJcbiAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRJY29uU2VydmljZSxcclxuICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG4vKipcclxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT5cclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2lubGluZWVycm9yZW5hYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm9vbGVhbiBQcm9wZXJ0eSBkaXJ0eTsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX2RpcnR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQm9vbGVhbiBQcm9wZXJ0eSB0b3VjaGVkOyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogRm9ybSBsYXlvdXQgaW5zdGFuY2UgaWYgZXhpc3RzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIGljb24gc2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuICAvKipcclxuICAgKiBuZ0NvbnRyb2xcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgc3RhbmRhcmQgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnRzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29tcG9uZW50SGVpZ2h0OiBDb250cm9sSGVpZ2h0IHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBEZWFrdGl2aWVydCBkYXMgTGFiZWwgaW0gVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWxhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogZGVmaW5lcyB0aGF0IGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgdW5kZXIgdGhlIGNvbnRyb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlubGluZUVycm9yOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0FkYXB0aXZlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIG1lZGl1bSBkZXZpY2VzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWxTaXplTWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogZGVmYXVsdCBsYWJlbCBjb2x1bW4gc2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZVhzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIE5hbWUgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbEhlaWdodCBlbnVtIGZvciB1c2UgaW4gSFRNTCBtYXJrdXBcclxuICAgKi9cclxuICBwdWJsaWMgQ29udHJvbEhlaWdodDogdHlwZW9mIENvbnRyb2xIZWlnaHQgPSBDb250cm9sSGVpZ2h0O1xyXG4gIC8qKlxyXG4gICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG4gIC8qKlxyXG4gICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZVRvdWNoXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XHJcbiAgICovXHJcbiAgcHVibGljIHByb3BhZ2F0ZVRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIHRvIHJlY2VpdmUgc3RhbmRhcmQgdmFsaWRhdGlvbiBtZXNzYWdlIGtleXMgYW5kIHRleHRzXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHRoaXMuZm9ybWxheW91dCA9IGZvcm1sYXlvdXQ7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSgpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0lDT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBBa3RpdmllcnQgb2RlciBEZWFrdGl2aWVydCBkaWUgSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sYWJlbCA9IHY7XHJcbiAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxyXG4gICAqIElucHV0IHdpcmQgYmVuw7Z0aWd0LCBkYW1pdCBkZXIgV2VydCBhdWNoIMO8YmVyIGRhcyBNYXJrdXAgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogVkFMVUUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuR2VuZXJpY0hlbHB0ZXh0SWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9kaXJ0eSA9IHRoaXMubmdDb250cm9sLmRpcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgZXJyb3IgbWVzc2FnZXMgaW5saW5lXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gV2VydCB3ZW5uIEZvcm0gaW52YWxpZCBvZGVyIG5pY2h0IGludmFsaWQgaXN0XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLm5nQ29udHJvbC5pbnZhbGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IG9iIGRhcyBDb250cm9sIGRpc2FibGVkIGlzdFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgaW5saW5lIGVycm9yIG1lc3NhZ2VzIGFyZSBhY3RpdmUgZm9yIHRoaXMgY29udHJvbC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGlzaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1sYXlvdXQ/LklzSW5saW5lRXJyb3JFbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBsYWJlbFNpemVzKCk6IElTYWNMYWJlbFNpemVzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxhYmVsU2l6ZVNtOiB0aGlzLmxhYmVsU2l6ZVNtLFxyXG4gICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcclxuICAgICAgbGFiZWxTaXplWHM6IHRoaXMubGFiZWxTaXplWHMsXHJcbiAgICAgIGxhYmVsU2l6ZVhsOiB0aGlzLmxhYmVsU2l6ZVhsLFxyXG4gICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxyXG4gICAgICBsYWJlbFNpemVMZzogdGhpcy5sYWJlbFNpemVMZyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cclxuICAgKi9cclxuICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xyXG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcclxuXHJcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcclxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XHJcblxyXG4gICAgaWYgKGtleXMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XHJcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xyXG5cclxuICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xyXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xyXG4gICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZXJyb3JJdGVtLnBhcmFtZXRlcnMuZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoXHJcbiAgICAgIGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksXHJcbiAgICAgIHBhcmFtZXRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0IEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChmb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xyXG5cclxuICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldExhYmVsU2l6ZXMoKTtcclxuXHJcbiAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldENvbXBvbmVudEhlaWdodCgpO1xyXG5cclxuICAgIC8vIHNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xyXG5cclxuICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxyXG4gICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcclxuXHJcbiAgICB0aGlzLk9uQ2xhc3NJbml0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIHRvdWNoZWQgPSB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XHJcbiAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcclxuICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBpbSBDb250cm9sIG1pdGJla29tbWVuIGvDtm5uZW5cclxuICAgKiBadXIgw4RuZGVydW5nc2luZm8gZGllIE1ldGhvZGUgcHJvcGFnYXRlQ2hhbmdlIGF1ZnJ1ZmVuLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgcmVnaXN0cmllcnQgw4RuZGVydW5nZW4gYmVpIGRlciBWYWxpZGllcnVuZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGFzIENvbnRyb2wgYXVmIERpc2FibGVkXHJcbiAgICovXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIE1ldGhvZGVcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHp1bSBzY2hyZWliZW4gdm9uIFdlcnRlbiBhdXMgZGVtIE1vZGVsIGluIGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcclxuICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGluIGRlbiBrb3JyZWt0ZW4gVHlwIGtvbnZlcnRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHJldHVybnMgV2VydCBpbSBrb3JyZWt0ZW4gVHlwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIENvbnZlcnRJbnB1dFZhbHVlKHZhbHVlOiBWQUxVRSk6IFZBTFVFIHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIEdldERlY2ltYWxTeW1ib2woKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnLic7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gU2V0IFByb3BlcnRpZXMgYXQgQ2xhc3MgSW5pdFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xyXG4gICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAoXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb25cclxuICAgICAgKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcclxuICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXHJcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50SGVpZ2h0KSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgbW9kZSBmb3IgaGVscHRleHQuIENhbiBiZSB0b29sdGlwIG9yIHRleHRcclxuICAgKi9cclxuICBwcml2YXRlIHNldEhlbHBUZXh0TW9kZSgpIHtcclxuICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XHJcbiAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmZvcm1sYXlvdXQuaGVscHRleHRtb2RlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQWRhcHRpdmVMYWJlbCkge1xyXG4gICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHNldExhYmVsU2l6ZXMoKSB7XHJcbiAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxyXG4gICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldCBzaXplIHNtYWxsXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplU20pIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplU20pIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IHNpemUgbWVkaXVtXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplTWQpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IHNpemUgbGFyZ2VcclxuICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xyXG4gICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTGc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTGc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxyXG4gICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhsKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhsKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplWHhsKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
|
|
144
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXAxM29hb2M3ZyIsImFjdHVhbENvdmVyYWdlIiwiRGlyZWN0aXZlIiwiSG9zdCIsIklucHV0IiwiRm9ybUNvbnRyb2xOYW1lIiwiRm9ybUdyb3VwRGlyZWN0aXZlIiwiTmdDb250cm9sIiwiT2JzZXJ2YWJsZSIsIkNvbnRyb2xIZWlnaHQiLCJTQUNJQ09OX1NFUlZJQ0UiLCJTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UiLCJTYWNEZWZhdWx0SWNvblNlcnZpY2UiLCJTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UiLCJTQUNDT05GSUdVUkFUSU9OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UiLCJTQUNMT0NBTElTQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIiwiY29udmVydFRvQm9vbGVhbiIsImNyZWF0ZUd1aWQiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImhlbHB0ZXh0IiwiaW5saW5lRXJyb3IiLCJpc0FkYXB0aXZlTGFiZWwiLCJsYWJlbFNpemVMZyIsImxhYmVsU2l6ZU1kIiwibGFiZWxTaXplU20iLCJsYWJlbFNpemVYbCIsImxhYmVsU2l6ZVhzIiwibGFiZWxTaXplWHhsIiwibmFtZSIsInByb3BhZ2F0ZUNoYW5nZSIsInByb3BhZ2F0ZVRvdWNoIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJjb25maWd1cmF0aW9uU2VydmljZSIsImljb25TZXJ2aWNlIiwiaW5saW5lZXJyb3JlbmFibGVkIiwidmFsdWUiLCJiIiwidW5kZWZpbmVkIiwibGFiZWwiLCJ2IiwiVXBkYXRlTGFiZWxUb0NvbnRyb2wiLCJDb252ZXJ0SW5wdXRWYWx1ZSIsIkhlbHB0ZXh0VG9vbHRpcEljb24iLCJHZW5lcmljSGVscHRleHRJY29uIiwiZGlydHkiLCJuZ0NvbnRyb2wiLCJpbnZhbGlkIiwiaXNkaXNhYmxlZCIsImlzaW5saW5lZXJyb3JlbmFibGVkIiwiSXNJbmxpbmVFcnJvckVuYWJsZWQiLCJJbmxpbmVFcnJvckVuYWJsZWQiLCJsYWJlbFNpemVzIiwidG91Y2hlZCIsIkdldEVycm9yTWVzc2FnZSIsImVycm9ycyIsIm9ic2VydmVyIiwibmV4dCIsImNvbXBsZXRlIiwibGVuZ3RoIiwia2V5cyIsIk9iamVjdCIsImVycm9ySXRlbSIsInBhcmFtZXRlcnMiLCJmb3JFYWNoIiwiayIsImZpZWxkTmFtZSIsIkdldFN0cmluZyIsImVycm9yTWVzc2FnZUtleSIsIm5nT25Jbml0IiwiZm9ybUNvbnRyb2wiLCJmb3JtIiwiZ2V0Q29udHJvbCIsImNvbnRyb2wiLCJzZXRMYWJlbFNpemVzIiwic2V0Q29tcG9uZW50SGVpZ2h0Iiwic2V0SXNBZGFwdGl2ZUxhYmVsIiwic2V0SGVscFRleHRNb2RlIiwiT25DbGFzc0luaXQiLCJvblRvdWNoIiwicmVnaXN0ZXJPbkNoYW5nZSIsImZuIiwib2JqIiwicmVnaXN0ZXJPblRvdWNoZWQiLCJyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlIiwiX29uQ2hhbmdlIiwic2V0RGlzYWJsZWRTdGF0ZSIsImlzRGlzYWJsZWQiLCJzZXRWYWx1ZSIsInZhbGlkYXRlIiwiYyIsImVycm9yIiwidmFsaWRhdGVEYXRhIiwid3JpdGVWYWx1ZSIsIkdldERlY2ltYWxTeW1ib2wiLCJVcGRhdGVWYWx1ZUFuZFZhbGlkaXR5IiwidXBkYXRlVmFsdWVBbmRWYWxpZGl0eSIsIm9ubHlTZWxmIiwiY29udHJvbGxhYmVsIiwiQ29tcG9uZW50SGVpZ2h0IiwiaGVscHRleHRtb2RlIiwiSGVscHRleHRNb2RlIiwiTGFiZWxTaXplWHMiLCJMYWJlbFNpemVTbSIsIkxhYmVsU2l6ZU1kIiwiTGFiZWxTaXplTGciLCJMYWJlbFNpemVYbCIsIkxhYmVsU2l6ZVh4bCIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImhvc3QiLCJpMCIsIkluamVjdG9yIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZW1vZGVsY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgTmdDb250cm9sLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBDb250cm9sSGVpZ2h0IH0gZnJvbSAnLi4vZW51bXMvQ29udHJvbEhlaWdodCc7XHJcbmltcG9ydCB7IElTYWNDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjTGFiZWxTaXplcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xhYmVsU2l6ZXMnO1xyXG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XHJcbmltcG9ydCB7IElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWFic3RyYWN0Y29udHJvbGxhYmVsJztcclxuaW1wb3J0IHtcclxuICBTQUNJQ09OX1NFUlZJQ0UsXHJcbiAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRJY29uU2VydmljZSxcclxuICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG4vKipcclxuICogQWJzdHJhY3QgS2xhc3NlIGbDvHIgU2FjQmFzZU1vZGVsQ29udHJvbC4gSW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXRcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT5cclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2lubGluZWVycm9yZW5hYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlndXJhdGlvblNlcnZpY2U6IElTYWNDb25maWd1cmF0aW9uU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm9vbGVhbiBQcm9wZXJ0eSBkaXJ0eTsgZGVmYXVsdCBXZXJ0IC0gZmFsc2VcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX2RpcnR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogU2FjTW9kZWwgRm9ybSBpc3QgZGlzYWJsZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQm9vbGVhbiBQcm9wZXJ0eSB0b3VjaGVkOyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEludGVybmUgVmFyaWFibGUsIGRpZSBkZW4gV2VydCBkZXMgQ29udHJvbHMgaMOkbHRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogRm9ybSBsYXlvdXQgaW5zdGFuY2UgaWYgZXhpc3RzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIGljb24gc2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuICAvKipcclxuICAgKiBuZ0NvbnRyb2xcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgc3RhbmRhcmQgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnRzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY29tcG9uZW50SGVpZ2h0OiBDb250cm9sSGVpZ2h0IHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogRGVha3RpdmllcnQgZGFzIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBEZWFrdGl2aWVydCBkYXMgTGFiZWwgaW0gVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWxhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVGV4dCB0byBzdXBwb3J0IHRoZSB1c2VyIGR1cmluZyBpbnB1dC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaGVscHRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIE1vZGUgZm9yIGRpc3BsYXkgaGVscHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoZWxwdGV4dG1vZGU6ICd0b29sdGlwJyB8ICd0ZXh0JyB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogZGVmaW5lcyB0aGF0IGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgdW5kZXIgdGhlIGNvbnRyb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlubGluZUVycm9yOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0FkYXB0aXZlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIG1lZGl1bSBkZXZpY2VzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWxTaXplTWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3Igc21hbGwgZGV2aWNlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZVNtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogZGVmYXVsdCBsYWJlbCBjb2x1bW4gc2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsU2l6ZVhzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKipcclxuICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbFNpemVYeGw6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIE5hbWUgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbEhlaWdodCBlbnVtIGZvciB1c2UgaW4gSFRNTCBtYXJrdXBcclxuICAgKi9cclxuICBwdWJsaWMgQ29udHJvbEhlaWdodDogdHlwZW9mIENvbnRyb2xIZWlnaHQgPSBDb250cm9sSGVpZ2h0O1xyXG4gIC8qKlxyXG4gICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZUNoYW5nZVwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG4gIC8qKlxyXG4gICAqIExlZXJlIEltcGxlbWVudGF0aW9uIHZvbiBcInByb3BhZ2F0ZVRvdWNoXCIuIE11c3MgZ2VtYWNodCB3ZXJkZW4sIGRhbWl0IGtlaW4gRmVobGVyIGVudHN0ZWh0XHJcbiAgICovXHJcbiAgcHVibGljIHByb3BhZ2F0ZVRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIHRvIHJlY2VpdmUgc3RhbmRhcmQgdmFsaWRhdGlvbiBtZXNzYWdlIGtleXMgYW5kIHRleHRzXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHRoaXMuZm9ybWxheW91dCA9IGZvcm1sYXlvdXQ7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSgpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0lDT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBBa3RpdmllcnQgb2RlciBEZWFrdGl2aWVydCBkaWUgSW5saW5lIEVycm9ycyBmw7xyIGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGlubGluZWVycm9yZW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9pbmxpbmVlcnJvcmVuYWJsZWQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbGFiZWwodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sYWJlbCA9IHY7XHJcbiAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgTWV0aG9kZSBmw7xyIE5nTW9kZWwgQmluZGluZyBpbiBIdG1sIE1hcmt1cFxyXG4gICAqIElucHV0IHdpcmQgYmVuw7Z0aWd0LCBkYW1pdCBkZXIgV2VydCBhdWNoIMO8YmVyIGRhcyBNYXJrdXAgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogVkFMVUUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgSWNvbiBmb3IgSGVscHRleHQgVG9vbHRpcFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuR2VuZXJpY0hlbHB0ZXh0SWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IEJvb2xlYW4gV2VydCBmw7xyIGRpcnR5XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9kaXJ0eSA9IHRoaXMubmdDb250cm9sLmRpcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgZXJyb3IgbWVzc2FnZXMgaW5saW5lXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gV2VydCB3ZW5uIEZvcm0gaW52YWxpZCBvZGVyIG5pY2h0IGludmFsaWQgaXN0XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLm5nQ29udHJvbC5pbnZhbGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IG9iIGRhcyBDb250cm9sIGRpc2FibGVkIGlzdFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZvcm0gfHwgdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgaW5saW5lIGVycm9yIG1lc3NhZ2VzIGFyZSBhY3RpdmUgZm9yIHRoaXMgY29udHJvbC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGlzaW5saW5lZXJyb3JlbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mb3JtbGF5b3V0ICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuZm9ybWxheW91dC5Jc0lubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1sYXlvdXQ/LklzSW5saW5lRXJyb3JFbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLklubGluZUVycm9yRW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBsYWJlbFNpemVzKCk6IElTYWNMYWJlbFNpemVzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxhYmVsU2l6ZVNtOiB0aGlzLmxhYmVsU2l6ZVNtLFxyXG4gICAgICBsYWJlbFNpemVNZDogdGhpcy5sYWJlbFNpemVNZCxcclxuICAgICAgbGFiZWxTaXplWHM6IHRoaXMubGFiZWxTaXplWHMsXHJcbiAgICAgIGxhYmVsU2l6ZVhsOiB0aGlzLmxhYmVsU2l6ZVhsLFxyXG4gICAgICBsYWJlbFNpemVYeGw6IHRoaXMubGFiZWxTaXplWHhsLFxyXG4gICAgICBsYWJlbFNpemVMZzogdGhpcy5sYWJlbFNpemVMZyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0b3VjaGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZBTFVFIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cclxuICAgKi9cclxuICBwdWJsaWMgR2V0RXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSB1bmRlZmluZWQgfHwgdGhpcy5uZ0NvbnRyb2wuZXJyb3JzID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xyXG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMubmdDb250cm9sLmVycm9ycztcclxuXHJcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcclxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XHJcblxyXG4gICAgaWYgKGtleXMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XHJcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gZXJyb3JzW2tleXNbMF1dO1xyXG5cclxuICAgIC8vIFZhbGlkYXRpb24gUGFyYW1ldGVyc1xyXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xyXG4gICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZXJyb3JJdGVtLnBhcmFtZXRlcnMuZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSBlcnJvckl0ZW0uZmllbGROYW1lO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoXHJcbiAgICAgIGVycm9ySXRlbS5lcnJvck1lc3NhZ2VLZXksXHJcbiAgICAgIHBhcmFtZXRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0IEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgLy8gcmVjZWl2ZSBmb3JtIHZpYSBmb3JtY29udHJvbG5hbWUgb3IgZm9ybWNvbnRyb2wgaW5zdGFuY2VcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChmb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKTtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtLmdldENvbnRyb2woZm9ybUNvbnRyb2wpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xyXG5cclxuICAgIC8vIHNldCBsYWJlbCBzaXplcyBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldExhYmVsU2l6ZXMoKTtcclxuXHJcbiAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldENvbXBvbmVudEhlaWdodCgpO1xyXG5cclxuICAgIC8vIHNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIGZvcm1sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xyXG5cclxuICAgIC8vIHNldCBtZXRob2QgdG8gZGlzcGxheSBoZWxwdGV4dFxyXG4gICAgdGhpcy5zZXRIZWxwVGV4dE1vZGUoKTtcclxuXHJcbiAgICB0aGlzLk9uQ2xhc3NJbml0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGVyZ2lidCBib29sZWFuIHRvdWNoZWQgPSB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XHJcbiAgICB0aGlzLl90b3VjaGVkID0gdHJ1ZTtcclxuICAgIHRoaXMucHJvcGFnYXRlVG91Y2goKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBpbSBDb250cm9sIG1pdGJla29tbWVuIGvDtm5uZW5cclxuICAgKiBadXIgw4RuZGVydW5nc2luZm8gZGllIE1ldGhvZGUgcHJvcGFnYXRlQ2hhbmdlIGF1ZnJ1ZmVuLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgcmVnaXN0cmllcnQgw4RuZGVydW5nZW4gYmVpIGRlciBWYWxpZGllcnVuZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGFzIENvbnRyb2wgYXVmIERpc2FibGVkXHJcbiAgICovXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VmFsdWUodjogVkFMVUUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIE1ldGhvZGVcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy52YWxpZGF0ZURhdGEoYyk7XHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHp1bSBzY2hyZWliZW4gdm9uIFdlcnRlbiBhdXMgZGVtIE1vZGVsIGluIGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZBTFVFKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcclxuICAgKiBAcGFyYW0gdmFsdWUgV2VydCB3ZWxjaGVyIGluIGRlbiBrb3JyZWt0ZW4gVHlwIGtvbnZlcnRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHJldHVybnMgV2VydCBpbSBrb3JyZWt0ZW4gVHlwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIENvbnZlcnRJbnB1dFZhbHVlKHZhbHVlOiBWQUxVRSk6IFZBTFVFIHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIEdldERlY2ltYWxTeW1ib2woKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnLic7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgY2FuIGJlIHVzZWQgdG8gU2V0IFByb3BlcnRpZXMgYXQgQ2xhc3MgSW5pdFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdHVhbGlzaWVydCBkZW4gTmdNb2RlbCBXZXJ0IHVuZCBkaWUgR8O8bHRpZ2tlaXQgZGVzIFZhbGlkYXRvcnMgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xyXG4gICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAoXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb25cclxuICAgICAgKS5jb250cm9sbGFiZWwgPSB0aGlzLmxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGNvbXBvbmVudCBoZWlnaHQgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcclxuICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXHJcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50SGVpZ2h0KSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmNvbXBvbmVudEhlaWdodCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50SGVpZ2h0ID0gdGhpcy5mb3JtbGF5b3V0LmNvbXBvbmVudEhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgbW9kZSBmb3IgaGVscHRleHQuIENhbiBiZSB0b29sdGlwIG9yIHRleHRcclxuICAgKi9cclxuICBwcml2YXRlIHNldEhlbHBUZXh0TW9kZSgpIHtcclxuICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XHJcbiAgICAgICAgdGhpcy5oZWxwdGV4dG1vZGUgPSB0aGlzLmZvcm1sYXlvdXQuaGVscHRleHRtb2RlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaGVscHRleHRtb2RlID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5IZWxwdGV4dE1vZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhZGFwdGl2ZSBsYWJlbCBwcm9wZXJ0eSBmcm9tIHBhcmVudCBsYXlvdXQgY29udHJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQWRhcHRpdmVMYWJlbCkge1xyXG4gICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5pc0FkYXB0aXZlTGFiZWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzQWRhcHRpdmVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIHNldExhYmVsU2l6ZXMoKSB7XHJcbiAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxyXG4gICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldCBzaXplIHNtYWxsXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplU20pIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplU20pIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplU20gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVNtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IHNpemUgbWVkaXVtXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplTWQpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplTWQpIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZU1kID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZU1kO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IHNpemUgbGFyZ2VcclxuICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xyXG4gICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmZvcm1sYXlvdXQubGFiZWxTaXplTGc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplTGc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxyXG4gICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhsKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhsKSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVhsID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5MYWJlbFNpemVYbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldCBzaXplIGV4dHJhIGV4dHJhIGxhcmdlXHJcbiAgICBpZiAoIXRoaXMubGFiZWxTaXplWHhsKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVh4bCkge1xyXG4gICAgICAgIHRoaXMubGFiZWxTaXplWHhsID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVh4bDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6InM2b0RBZ0xFO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQWhMRixPQUFTRSxTQUFTLENBQUVDLElBQUksQ0FBWUMsS0FBSyxLQUFnQixlQUFlLENBQ3hFLE9BSUVDLGVBQWUsQ0FDZkMsa0JBQWtCLENBQ2xCQyxTQUFTLEtBR0osZ0JBQWdCLENBQ3ZCLE9BQVNDLFVBQVUsS0FBUSxNQUFNLENBRWpDLE9BQVNDLGFBQWEsS0FBUSx3QkFBd0IsQ0FPdEQsT0FDRUMsZUFBZSxDQUNmQyx3QkFBd0IsQ0FDeEJDLHFCQUFxQixDQUNyQkMsOEJBQThCLEtBQ3pCLGFBQWEsQ0FDcEIsT0FDRUMsd0JBQXdCLENBQ3hCQyw4QkFBOEIsS0FDekIsdUNBQXVDLENBQzlDLE9BQ0VD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
|
|
142
|
+
*/setLabelSizes(){cov_1p13oaoc7g().f[40]++;cov_1p13oaoc7g().s[123]++;// set size extra small
|
|
143
|
+
if(!this.labelSizeXs){cov_1p13oaoc7g().b[29][0]++;cov_1p13oaoc7g().s[124]++;if(this.formlayout?.labelSizeXs){cov_1p13oaoc7g().b[30][0]++;cov_1p13oaoc7g().s[125]++;this.labelSizeXs=this.formlayout.labelSizeXs;}else{cov_1p13oaoc7g().b[30][1]++;cov_1p13oaoc7g().s[126]++;this.labelSizeXs=this.configurationService.LabelSizeXs;}}else{cov_1p13oaoc7g().b[29][1]++;}// set size small
|
|
144
|
+
cov_1p13oaoc7g().s[127]++;if(!this.labelSizeSm){cov_1p13oaoc7g().b[31][0]++;cov_1p13oaoc7g().s[128]++;if(this.formlayout?.labelSizeSm){cov_1p13oaoc7g().b[32][0]++;cov_1p13oaoc7g().s[129]++;this.labelSizeSm=this.formlayout.labelSizeSm;}else{cov_1p13oaoc7g().b[32][1]++;cov_1p13oaoc7g().s[130]++;this.labelSizeSm=this.configurationService.LabelSizeSm;}}else{cov_1p13oaoc7g().b[31][1]++;}// set size medium
|
|
145
|
+
cov_1p13oaoc7g().s[131]++;if(!this.labelSizeMd){cov_1p13oaoc7g().b[33][0]++;cov_1p13oaoc7g().s[132]++;if(this.formlayout?.labelSizeMd){cov_1p13oaoc7g().b[34][0]++;cov_1p13oaoc7g().s[133]++;this.labelSizeMd=this.formlayout.labelSizeMd;}else{cov_1p13oaoc7g().b[34][1]++;cov_1p13oaoc7g().s[134]++;this.labelSizeMd=this.configurationService.LabelSizeMd;}}else{cov_1p13oaoc7g().b[33][1]++;}// set size large
|
|
146
|
+
cov_1p13oaoc7g().s[135]++;if(!this.labelSizeLg){cov_1p13oaoc7g().b[35][0]++;cov_1p13oaoc7g().s[136]++;if(this.formlayout?.labelSizeLg){cov_1p13oaoc7g().b[36][0]++;cov_1p13oaoc7g().s[137]++;this.labelSizeLg=this.formlayout.labelSizeLg;}else{cov_1p13oaoc7g().b[36][1]++;cov_1p13oaoc7g().s[138]++;this.labelSizeLg=this.configurationService.LabelSizeLg;}}else{cov_1p13oaoc7g().b[35][1]++;}// set size extra large
|
|
147
|
+
cov_1p13oaoc7g().s[139]++;if(!this.labelSizeXl){cov_1p13oaoc7g().b[37][0]++;cov_1p13oaoc7g().s[140]++;if(this.formlayout?.labelSizeXl){cov_1p13oaoc7g().b[38][0]++;cov_1p13oaoc7g().s[141]++;this.labelSizeXl=this.formlayout.labelSizeXl;}else{cov_1p13oaoc7g().b[38][1]++;cov_1p13oaoc7g().s[142]++;this.labelSizeXl=this.configurationService.LabelSizeXl;}}else{cov_1p13oaoc7g().b[37][1]++;}// set size extra extra large
|
|
148
|
+
cov_1p13oaoc7g().s[143]++;if(!this.labelSizeXxl){cov_1p13oaoc7g().b[39][0]++;cov_1p13oaoc7g().s[144]++;if(this.formlayout?.labelSizeXxl){cov_1p13oaoc7g().b[40][0]++;cov_1p13oaoc7g().s[145]++;this.labelSizeXxl=this.formlayout.labelSizeXxl;}else{cov_1p13oaoc7g().b[40][1]++;cov_1p13oaoc7g().s[146]++;this.labelSizeXxl=this.configurationService.LabelSizeXxl;}}else{cov_1p13oaoc7g().b[39][1]++;}}setLabelSplitMode(){cov_1p13oaoc7g().f[41]++;cov_1p13oaoc7g().s[147]++;if(!this.splitlabelandhelptext){cov_1p13oaoc7g().b[41][0]++;cov_1p13oaoc7g().s[148]++;if(this.formlayout?.splitlabelandhelptext){cov_1p13oaoc7g().b[42][0]++;cov_1p13oaoc7g().s[149]++;this.splitlabelandhelptext=this.formlayout.splitlabelandhelptext;}else{cov_1p13oaoc7g().b[42][1]++;cov_1p13oaoc7g().s[150]++;this.splitlabelandhelptext=this.configurationService.SplitLabelAndHelptext;}}else{cov_1p13oaoc7g().b[41][1]++;}}}cov_1p13oaoc7g().s[151]++;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_1p13oaoc7g().s[152]++;SacBaseModelControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseModelControl,inputs:{componentHeight:"componentHeight",disabled:"disabled",disablelabel:"disablelabel",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_1p13oaoc7g().s[153]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseModelControl,decorators:[{type:Directive}],ctorParameters:function(){cov_1p13oaoc7g().f[42]++;cov_1p13oaoc7g().s[154]++;return[{type:i1.SacFormLayoutCommon,decorators:[{type:Host}]},{type:i0.Injector}];},propDecorators:{componentHeight:[{type:Input}],disabled:[{type:Input}],disablelabel:[{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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZW1vZGVsY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU92RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsOEJBQThCLEdBQ2pDLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBWSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUlILGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsU0FBUyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUF1S3JDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQW9CLFVBQStCLEVBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEvS3hGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNLLHdCQUFtQixHQUFtQixJQUFJLENBQUM7UUFFbkQ7O1dBRUc7UUFDSyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBTzVCOztXQUVHO1FBQ08sV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVsQzs7V0FFRztRQUNPLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBT3pDOztXQUVHO1FBQ08sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVwQzs7V0FFRztRQUNPLFdBQU0sR0FBVSxJQUFJLENBQUM7UUFFL0I7O1dBRUc7UUFDTyxlQUFVLEdBQXdCLElBQUksQ0FBQztRQWlCakQ7O1dBRUc7UUFDSSxrQkFBYSxHQUF5QixhQUFhLENBQUM7UUFFM0Q7O1dBRUc7UUFFSSxvQkFBZSxHQUF5QixJQUFJLENBQUM7UUFFcEQ7O1dBRUc7UUFDYSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFDOztXQUVHO1FBQ2EsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUM7O1dBRUc7UUFDYSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBUXRDOztXQUVHO1FBQ2EsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUM7O1dBRUc7UUFDYSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqRDs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qzs7V0FFRztRQUVJLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUUxQzs7V0FFRztRQUNhLFNBQUksR0FBVyxVQUFVLEVBQUUsQ0FBQztRQUU1Qzs7V0FFRztRQUNJLG9CQUFlLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXZDOztXQUVHO1FBQ0ksbUJBQWMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFdEM7O1dBRUc7UUFFSSwwQkFBcUIsR0FBbUIsSUFBSSxDQUFDO1FBaUJoRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FDbEMsdUJBQXVCLEVBQ3ZCLElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLDhCQUE4QixFQUFFLENBQUMsQ0FBQztRQUV6RyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwwQkFBMEI7SUFFMUIscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUN0QztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGtCQUFrQixDQUFDLEtBQXFCO1FBQy9DLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7YUFBTTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsb0JBQW9CO1FBQzNCLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLEVBQUU7WUFDM0UsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDO1NBQ2hEO1FBRUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQW9CLEtBQUssQ0FBQyxDQUFTO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPO1lBQ0gsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztTQUMxQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csS0FBSyxDQUFDLENBQVE7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHdDQUF3QztJQUV4Qyx5QkFBeUI7SUFFekI7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN2RSxPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxNQUFNLEdBQXFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRXZELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsQixPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxTQUFTLEdBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCx3QkFBd0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDckUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDWCwyREFBMkQ7UUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksV0FBVyxZQUFZLGVBQWUsRUFBRTtZQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakQ7YUFBTTtZQUNILElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLE9BQXNCLENBQUM7YUFDdkQ7U0FDSjtRQUVELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUJBQXlCLENBQUMsRUFBYztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsQ0FBUTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsQ0FBa0I7UUFDOUIsTUFBTSxLQUFLLEdBQTRCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQU9EOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELDRCQUE0QjtJQUU1Qiw0QkFBNEI7SUFFNUI7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLEtBQVk7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3RCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVyxLQUFVLENBQUM7SUFFaEM7O09BRUc7SUFDTyxzQkFBc0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsMEJBQTBCO0lBRWxCLG9CQUFvQjtRQUN4QixtSUFBbUk7UUFDbkksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQXVELENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDO2FBQ3BFO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDO2FBQzlEO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsS0FBSyxTQUFTLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7YUFDaEM7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWE7UUFDakIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNsRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7YUFDNUQ7U0FDSjtRQUVELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQzthQUM1RDtTQUNKO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO2FBQzVEO1NBQ0o7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNsRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7YUFDNUQ7U0FDSjtRQUVELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQzthQUM5RDtTQUNKO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQzthQUNoRjtTQUNKO0lBQ0wsQ0FBQzs7Z0hBOW1CaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs7MEJBaUxPLElBQUk7bUVBeEdWLGVBQWU7c0JBRHJCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFLVSxZQUFZO3NCQUEzQixLQUFLO2dCQUtVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBTUMsWUFBWTtzQkFEbEIsS0FBSztnQkFNVSxXQUFXO3NCQUExQixLQUFLO2dCQUtVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBTVUsSUFBSTtzQkFBbkIsS0FBSztnQkFnQkMscUJBQXFCO3NCQUQzQixLQUFLO2dCQStESyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBb0RjLEtBQUs7c0JBQXhCLEtBQUs7Z0JBMENLLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IENvbnRyb2xIZWlnaHQgfSBmcm9tICcuLi9lbnVtcy9Db250cm9sSGVpZ2h0JztcclxuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNMYWJlbFNpemVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTGFiZWxTaXplcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHsgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pYWJzdHJhY3Rjb250cm9sbGFiZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgU0FDSUNPTl9TRVJWSUNFLFxyXG4gICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxyXG4gICAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICAgIEZvcm1Db250cm9sLFxyXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgTmdDb250cm9sLFxyXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcclxuICAgIFZhbGlkYXRvcixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBLbGFzc2UgZsO8ciBTYWNCYXNlTW9kZWxDb250cm9sLiBJbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdFxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlTW9kZWxDb250cm9sPFZBTFVFPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pbmxpbmVlcnJvcmVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExhYmVsIFRleHRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2RpcnR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYWNNb2RlbCBGb3JtIGlzdCBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgV2VydCAtIGZhbHNlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuZSBWYXJpYWJsZSwgZGllIGRlbiBXZXJ0IGRlcyBDb250cm9scyBow6RsdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogaWNvbiBzZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIG5nQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBDb250cm9sSGVpZ2h0OiB0eXBlb2YgQ29udHJvbEhlaWdodCA9IENvbnRyb2xIZWlnaHQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudHNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb21wb25lbnRIZWlnaHQ6IENvbnRyb2xIZWlnaHQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBJbnB1dCBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVha3RpdmllcnQgZGFzIExhYmVsIGltIFRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2RlIGZvciBkaXNwbGF5IGhlbHB0ZXh0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGVscHRleHRtb2RlOiAndG9vbHRpcCcgfCAndGV4dCcgfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGVmaW5lcyB0aGF0IGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgdW5kZXIgdGhlIGNvbnRyb2xzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmVFcnJvcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVDaGFuZ2VcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVUb3VjaFwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtbGF5b3V0ID0gZm9ybWxheW91dDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcclxuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xyXG5cclxuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBJY29uIGZvciBIZWxwdGV4dCBUb29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkdlbmVyaWNIZWxwdGV4dEljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciBkaXJ0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGVycm9yIG1lc3NhZ2VzIGlubGluZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFrdGl2aWVydCBvZGVyIERlYWt0aXZpZXJ0IGRpZSBJbmxpbmUgRXJyb3JzIGbDvHIgZGFzIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgaW5saW5lZXJyb3JlbmFibGVkKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSBlcmdpYnQgYm9vbGVhbiBXZXJ0IHdlbm4gRm9ybSBpbnZhbGlkIG9kZXIgbmljaHQgaW52YWxpZCBpc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sLmludmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dCAhPT0gbnVsbCAmJiB0aGlzLmZvcm1sYXlvdXQuSXNJbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGxhYmVsKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcclxuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgbGFiZWxTaXplcygpOiBJU2FjTGFiZWxTaXplcyB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZU1kOiB0aGlzLmxhYmVsU2l6ZU1kLFxyXG4gICAgICAgICAgICBsYWJlbFNpemVYczogdGhpcy5sYWJlbFNpemVYcyxcclxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZVh4bDogdGhpcy5sYWJlbFNpemVYeGwsXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZUxnOiB0aGlzLmxhYmVsU2l6ZUxnLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl90b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBWQUxVRSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgICAqIElucHV0IHdpcmQgYmVuw7Z0aWd0LCBkYW1pdCBkZXIgV2VydCBhdWNoIMO8YmVyIGRhcyBNYXJrdXAgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogVkFMVUUpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gdGhpcy5uZ0NvbnRyb2wuZXJyb3JzO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XHJcblxyXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGVycm9ySXRlbTogVmFsaWRhdGlvbkVycm9ySXRlbSA9IGVycm9yc1trZXlzWzBdXTtcclxuXHJcbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xyXG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IGVycm9ySXRlbS5maWVsZE5hbWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IEV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvLyByZWNlaXZlIGZvcm0gdmlhIGZvcm1jb250cm9sbmFtZSBvciBmb3JtY29udHJvbCBpbnN0YW5jZVxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgbGFiZWwgc2l6ZXMgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxyXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xyXG5cclxuICAgICAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcclxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcclxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcclxuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIGltIENvbnRyb2wgbWl0YmVrb21tZW4ga8O2bm5lblxyXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSByZWdpc3RyaWVydCDDhG5kZXJ1bmdlbiBiZWkgZGVyIFZhbGlkaWVydW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMudmFsaWRhdGVEYXRhKGMpO1xyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVkFMVUUpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcclxuICAgICAqIEByZXR1cm5zIFdlcnQgaW0ga29ycmVrdGVuIFR5cFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBHZXREZWNpbWFsU3ltYm9sKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcuJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBa3R1YWxpc2llcnQgZGVuIE5nTW9kZWwgV2VydCB1bmQgZGllIEfDvGx0aWdrZWl0IGRlcyBWYWxpZGF0b3JzIGRlcyBDb250cm9sc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgY29tcG9uZW50IGhlaWdodCBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxyXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuZm9ybWxheW91dC5jb21wb25lbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSGVscHRleHRNb2RlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gcGFyZW50IGxheW91dCBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0FkYXB0aXZlTGFiZWwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaXNBZGFwdGl2ZUxhYmVsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xyXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhzO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBzaXplIHNtYWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVNtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplU207XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBzaXplIG1lZGl1bVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVNZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVNZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVMZztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZUxnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBleHRyYSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHhsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYeGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5TcGxpdExhYmVsQW5kSGVscHRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXAxM29hb2M3ZyIsImFjdHVhbENvdmVyYWdlIiwiQ29udHJvbEhlaWdodCIsIlNBQ0lDT05fU0VSVklDRSIsIlNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSIsIlNhY0RlZmF1bHRJY29uU2VydmljZSIsIlNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSIsIlNBQ0NPTkZJR1VSQVRJT05fU0VSVklDRSIsIlNhY0RlZmF1bHRDb25maWd1cmF0aW9uU2VydmljZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJjb252ZXJ0VG9Cb29sZWFuIiwiY3JlYXRlR3VpZCIsIkRpcmVjdGl2ZSIsIkhvc3QiLCJJbnB1dCIsIkZvcm1Db250cm9sTmFtZSIsIkZvcm1Hcm91cERpcmVjdGl2ZSIsIk5nQ29udHJvbCIsIk9ic2VydmFibGUiLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiY29uc3RydWN0b3IiLCJmb3JtbGF5b3V0IiwiaW5qZWN0b3IiLCJmIiwicyIsIl9pbmxpbmVlcnJvcmVuYWJsZWQiLCJfbGFiZWwiLCJfZGlydHkiLCJfZGlzYWJsZWRGb3JtIiwiX3RvdWNoZWQiLCJfdmFsdWUiLCJjb21wb25lbnRIZWlnaHQiLCJkaXNhYmxlZCIsImRpc2FibGVsYWJlbCIsImhlbHB0ZXh0IiwiaW5saW5lRXJyb3IiLCJpc0FkYXB0aXZlTGFiZWwiLCJsYWJlbFNpemVMZyIsImxhYmVsU2l6ZU1kIiwibGFiZWxTaXplU20iLCJsYWJlbFNpemVYbCIsImxhYmVsU2l6ZVhzIiwibGFiZWxTaXplWHhsIiwibmFtZSIsInByb3BhZ2F0ZUNoYW5nZSIsInByb3BhZ2F0ZVRvdWNoIiwic3BsaXRsYWJlbGFuZGhlbHB0ZXh0IiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJjb25maWd1cmF0aW9uU2VydmljZSIsImljb25TZXJ2aWNlIiwiSGVscHRleHRUb29sdGlwSWNvbiIsIkdlbmVyaWNIZWxwdGV4dEljb24iLCJkaXJ0eSIsImIiLCJuZ0NvbnRyb2wiLCJ1bmRlZmluZWQiLCJpbmxpbmVlcnJvcmVuYWJsZWQiLCJ2YWx1ZSIsImludmFsaWQiLCJpc2Rpc2FibGVkIiwiaXNpbmxpbmVlcnJvcmVuYWJsZWQiLCJJc0lubGluZUVycm9yRW5hYmxlZCIsIklubGluZUVycm9yRW5hYmxlZCIsImxhYmVsIiwidiIsIlVwZGF0ZUxhYmVsVG9Db250cm9sIiwibGFiZWxTaXplcyIsInRvdWNoZWQiLCJDb252ZXJ0SW5wdXRWYWx1ZSIsIkdldEVycm9yTWVzc2FnZSIsImVycm9ycyIsIm9ic2VydmVyIiwibmV4dCIsImNvbXBsZXRlIiwibGVuZ3RoIiwia2V5cyIsIk9iamVjdCIsImVycm9ySXRlbSIsInBhcmFtZXRlcnMiLCJmb3JFYWNoIiwiayIsImZpZWxkTmFtZSIsIkdldFN0cmluZyIsImVycm9yTWVzc2FnZUtleSIsIm5nT25Jbml0IiwiZm9ybUNvbnRyb2wiLCJmb3JtIiwiZ2V0Q29udHJvbCIsImNvbnRyb2wiLCJzZXRMYWJlbFNpemVzIiwic2V0Q29tcG9uZW50SGVpZ2h0Iiwic2V0SXNBZGFwdGl2ZUxhYmVsIiwic2V0SGVscFRleHRNb2RlIiwic2V0TGFiZWxTcGxpdE1vZGUiLCJPbkNsYXNzSW5pdCIsIm9uVG91Y2giLCJyZWdpc3Rlck9uQ2hhbmdlIiwiZm4iLCJvYmoiLCJyZWdpc3Rlck9uVG91Y2hlZCIsInJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UiLCJfb25DaGFuZ2UiLCJzZXREaXNhYmxlZFN0YXRlIiwiaXNEaXNhYmxlZCIsInNldFZhbHVlIiwidmFsaWRhdGUiLCJjIiwiZXJyb3IiLCJ2YWxpZGF0ZURhdGEiLCJ3cml0ZVZhbHVlIiwiR2V0RGVjaW1hbFN5bWJvbCIsIlVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkiLCJ1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5Iiwib25seVNlbGYiLCJjb250cm9sbGFiZWwiLCJDb21wb25lbnRIZWlnaHQiLCJoZWxwdGV4dG1vZGUiLCJIZWxwdGV4dE1vZGUiLCJMYWJlbFNpemVYcyIsIkxhYmVsU2l6ZVNtIiwiTGFiZWxTaXplTWQiLCJMYWJlbFNpemVMZyIsIkxhYmVsU2l6ZVhsIiwiTGFiZWxTaXplWHhsIiwiU3BsaXRMYWJlbEFuZEhlbHB0ZXh0IiwiZGVwcyIsInRva2VuIiwiaTEiLCJTYWNGb3JtTGF5b3V0Q29tbW9uIiwiaG9zdCIsImkwIiwiSW5qZWN0b3IiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XHJcbmltcG9ydCB7IENvbnRyb2xIZWlnaHQgfSBmcm9tICcuLi9lbnVtcy9Db250cm9sSGVpZ2h0JztcclxuaW1wb3J0IHsgSVNhY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjQ29uZmlndXJhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNMYWJlbFNpemVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTGFiZWxTaXplcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHsgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pYWJzdHJhY3Rjb250cm9sbGFiZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgU0FDSUNPTl9TRVJWSUNFLFxyXG4gICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gICAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxyXG4gICAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBTYWNEZWZhdWx0Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgY3JlYXRlR3VpZCB9IGZyb20gJy4uL3V0aWxpdGllcy9ndWlkJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICAgIEZvcm1Db250cm9sLFxyXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgTmdDb250cm9sLFxyXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcclxuICAgIFZhbGlkYXRvcixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBLbGFzc2UgZsO8ciBTYWNCYXNlTW9kZWxDb250cm9sLiBJbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdFxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNCYXNlTW9kZWxDb250cm9sPFZBTFVFPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCB7XHJcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgICAvKipcclxuICAgICAqIElubGluZSBFcnJvcnMgZsO8ciBkYXMgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pbmxpbmVlcnJvcmVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExhYmVsIFRleHRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VydmljZSBmb3IgbG9hZGluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY29udHJvbHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBJU2FjQ29uZmlndXJhdGlvblNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IGRpcnR5OyBkZWZhdWx0IFdlcnQgLSBmYWxzZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2RpcnR5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYWNNb2RlbCBGb3JtIGlzdCBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb25DaGFuZ2U6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCb29sZWFuIFByb3BlcnR5IHRvdWNoZWQ7IGRlZmF1bHQgV2VydCAtIGZhbHNlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuZSBWYXJpYWJsZSwgZGllIGRlbiBXZXJ0IGRlcyBDb250cm9scyBow6RsdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBWQUxVRSA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtIGxheW91dCBpbnN0YW5jZSBpZiBleGlzdHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24gPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogaWNvbiBzZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBpY29uU2VydmljZTogSVNhY0ljb25TZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIG5nQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbmdDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRyb2xIZWlnaHQgZW51bSBmb3IgdXNlIGluIEhUTUwgbWFya3VwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBDb250cm9sSGVpZ2h0OiB0eXBlb2YgQ29udHJvbEhlaWdodCA9IENvbnRyb2xIZWlnaHQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudHNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb21wb25lbnRIZWlnaHQ6IENvbnRyb2xIZWlnaHQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlYWt0aXZpZXJ0IGRhcyBJbnB1dCBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVha3RpdmllcnQgZGFzIExhYmVsIGltIFRlbXBsYXRlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlbGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgdG8gc3VwcG9ydCB0aGUgdXNlciBkdXJpbmcgaW5wdXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2RlIGZvciBkaXNwbGF5IGhlbHB0ZXh0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGVscHRleHRtb2RlOiAndG9vbHRpcCcgfCAndGV4dCcgfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGVmaW5lcyB0aGF0IGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQgdW5kZXIgdGhlIGNvbnRyb2xzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmVFcnJvcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZpbmVzIHRoYXQgdGhlIGxhYmVscyBhcmUgZGlzcGxheWVkIGFzIGFkYXB0aXZlIGxhYmVsc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNBZGFwdGl2ZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmUgc2l6ZSBmb3IgbGFyZ2UgZGV2aWNlc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxhYmVsU2l6ZUxnOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRlZmF1bHQgbGFiZWwgc2l6ZSBmb3IgbWVkaXVtIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVNZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIHNtYWxsIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVTbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIHNpemUgZm9yIGV4dHJhIGxhcmdlIGRldmljZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbFNpemVYbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZWZhdWx0IGxhYmVsIGNvbHVtbiBzaXplXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGFiZWxTaXplWHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZGVmYXVsdCBsYWJlbCBzaXplIGZvciBleHRyYSBleHRyYSBsYXJnZSBkZXZpY2VzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGFiZWxTaXplWHhsOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgZGVzIENvbnRyb2xzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVDaGFuZ2VcIi4gTXVzcyBnZW1hY2h0IHdlcmRlbiwgZGFtaXQga2VpbiBGZWhsZXIgZW50c3RlaHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMZWVyZSBJbXBsZW1lbnRhdGlvbiB2b24gXCJwcm9wYWdhdGVUb3VjaFwiLiBNdXNzIGdlbWFjaHQgd2VyZGVuLCBkYW1pdCBrZWluIEZlaGxlciBlbnRzdGVodFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJvcGFnYXRlVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV0YWNoIGxhYmVsIHRleHQgYW5kIHRvb2x0aXAgZnJvbSBlYWNoIG90aGVyIGluIExhYmVsIHNvIHRoYXQgbGFiZWwgYW5kIHRvb2x0aXAgY2FuIGJlIGFsaWduZWQgZGlmZmVyZW50bHkuIFRoaXMgaXMgaW4gQm9vdHN0cmFwIDMgbm90IHN1cHBvcnRlZCFcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzcGxpdGxhYmVsYW5kaGVscHRleHQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtbGF5b3V0ID0gZm9ybWxheW91dDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpKTtcclxuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDQ09ORklHVVJBVElPTl9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdENvbmZpZ3VyYXRpb25TZXJ2aWNlKCkpO1xyXG5cclxuICAgICAgICB0aGlzLmljb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFNBQ0lDT05fU0VSVklDRSwgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBJY29uIGZvciBIZWxwdGV4dCBUb29sdGlwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgSGVscHRleHRUb29sdGlwSWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLkdlbmVyaWNIZWxwdGV4dEljb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciBkaXJ0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdGhpcy5uZ0NvbnRyb2wuZGlydHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlydHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGVycm9yIG1lc3NhZ2VzIGlubGluZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGlubGluZWVycm9yZW5hYmxlZCgpOiBib29sZWFuIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFrdGl2aWVydCBvZGVyIERlYWt0aXZpZXJ0IGRpZSBJbmxpbmUgRXJyb3JzIGbDvHIgZGFzIENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgaW5saW5lZXJyb3JlbmFibGVkKHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faW5saW5lZXJyb3JlbmFibGVkID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSBlcmdpYnQgYm9vbGVhbiBXZXJ0IHdlbm4gRm9ybSBpbnZhbGlkIG9kZXIgbmljaHQgaW52YWxpZCBpc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmdDb250cm9sICE9PSBudWxsICYmIHRoaXMubmdDb250cm9sLmludmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgb2IgZGFzIENvbnRyb2wgZGlzYWJsZWQgaXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRGb3JtIHx8IHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGlubGluZSBlcnJvciBtZXNzYWdlcyBhcmUgYWN0aXZlIGZvciB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNpbmxpbmVlcnJvcmVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lubGluZWVycm9yZW5hYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lZXJyb3JlbmFibGVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dCAhPT0gbnVsbCAmJiB0aGlzLmZvcm1sYXlvdXQuSXNJbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWxheW91dD8uSXNJbmxpbmVFcnJvckVuYWJsZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5JbmxpbmVFcnJvckVuYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSW5saW5lRXJyb3JFbmFibGVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmllcnQgZGVuIExhYmVsIFRleHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluaWVydCBkZW4gTGFiZWwgVGV4dFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGxhYmVsKHY6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2xhYmVsID0gdjtcclxuICAgICAgICB0aGlzLlVwZGF0ZUxhYmVsVG9Db250cm9sKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGFsbCBsYWJlbCBzaXplcy4gVGhlc2UgdmFsdWVzIGNhbiB0aGVuIGJlIHRyYW5zZmVycmVkIHRvIGNvcnJlc3BvbmRpbmcgQ1NTIGNsYXNzZXMgdXNpbmcgYSBwaXBlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgbGFiZWxTaXplcygpOiBJU2FjTGFiZWxTaXplcyB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbGFiZWxTaXplU206IHRoaXMubGFiZWxTaXplU20sXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZU1kOiB0aGlzLmxhYmVsU2l6ZU1kLFxyXG4gICAgICAgICAgICBsYWJlbFNpemVYczogdGhpcy5sYWJlbFNpemVYcyxcclxuICAgICAgICAgICAgbGFiZWxTaXplWGw6IHRoaXMubGFiZWxTaXplWGwsXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZVh4bDogdGhpcy5sYWJlbFNpemVYeGwsXHJcbiAgICAgICAgICAgIGxhYmVsU2l6ZUxnOiB0aGlzLmxhYmVsU2l6ZUxnLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBCb29sZWFuIFdlcnQgZsO8ciB0b3VjaGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwgJiYgdGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl90b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBWQUxVRSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IE1ldGhvZGUgZsO8ciBOZ01vZGVsIEJpbmRpbmcgaW4gSHRtbCBNYXJrdXBcclxuICAgICAqIElucHV0IHdpcmQgYmVuw7Z0aWd0LCBkYW1pdCBkZXIgV2VydCBhdWNoIMO8YmVyIGRhcyBNYXJrdXAgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogVkFMVUUpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuQ29udmVydElucHV0VmFsdWUodik7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBFcnJvciBhbmhhbmQgdm9uIGdlZ2ViZW5lbiBLcml0ZXJpZW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIEdldEVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm5nQ29udHJvbC5lcnJvcnMgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCcnKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gdGhpcy5uZ0NvbnRyb2wuZXJyb3JzO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoJycpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGVycm9ycyk7XHJcblxyXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgnJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGVycm9ySXRlbTogVmFsaWRhdGlvbkVycm9ySXRlbSA9IGVycm9yc1trZXlzWzBdXTtcclxuXHJcbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHt9O1xyXG4gICAgICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNba10gPSB2O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IGVycm9ySXRlbS5maWVsZE5hbWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZUtleSwgcGFyYW1ldGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IEV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvLyByZWNlaXZlIGZvcm0gdmlhIGZvcm1jb250cm9sbmFtZSBvciBmb3JtY29udHJvbCBpbnN0YW5jZVxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybS5nZXRDb250cm9sKGZvcm1Db250cm9sKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5VcGRhdGVMYWJlbFRvQ29udHJvbCgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgbGFiZWwgc2l6ZXMgZnJvbSBmb3JtbGF5b3V0IGRpcmVjdGl2ZVxyXG4gICAgICAgIHRoaXMuc2V0TGFiZWxTaXplcygpO1xyXG5cclxuICAgICAgICAvLyBzZXQgY29tcG9uZW50IGhlaWd0aCBmcm9tIGZyb21sYXlvdXQgZGlyZWN0aXZlXHJcbiAgICAgICAgdGhpcy5zZXRDb21wb25lbnRIZWlnaHQoKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gZm9ybWxheW91dCBkaXJlY3RpdmVcclxuICAgICAgICB0aGlzLnNldElzQWRhcHRpdmVMYWJlbCgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgbWV0aG9kIHRvIGRpc3BsYXkgaGVscHRleHRcclxuICAgICAgICB0aGlzLnNldEhlbHBUZXh0TW9kZSgpO1xyXG5cclxuICAgICAgICAvLyBzZXQgU3BsaXRNb2RlIGZvciBMYWJlbHNcclxuICAgICAgICB0aGlzLnNldExhYmVsU3BsaXRNb2RlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuT25DbGFzc0luaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IGJvb2xlYW4gdG91Y2hlZCA9IHRydWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uVG91Y2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdG91Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSwgZGFtaXQgYW5kZXJlIENvbnRyb2xzIMOkbmRlcnVuZ2VuIGltIENvbnRyb2wgbWl0YmVrb21tZW4ga8O2bm5lblxyXG4gICAgICogWnVyIMOEbmRlcnVuZ3NpbmZvIGRpZSBNZXRob2RlIHByb3BhZ2F0ZUNoYW5nZSBhdWZydWZlbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gKG9iaikgPT4gZm4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUsIGRhbWl0IGFuZGVyZSBDb250cm9scyDDpG5kZXJ1bmdlbiBtaXRiZWtvbW1lbiwgd2VubiBkYXMgQ29udHJvbCBha3RpdmllcnQgKEZvY3VzKSB3aXJkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSAob2JqKSA9PiBmbihvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSByZWdpc3RyaWVydCDDhG5kZXJ1bmdlbiBiZWkgZGVyIFZhbGlkaWVydW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHp0IGRhcyBDb250cm9sIGF1ZiBEaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRGb3JtID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZGllIGRlbiBXZXJ0IGRlcyBJbnB1dHMgc2V0enRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbHVlKHY6IFZBTFVFKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMudmFsaWRhdGVEYXRhKGMpO1xyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFic3RyYWt0ZSBWYWxpZGF0b3IgTWV0aG9kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kZSB6dW0gc2NocmVpYmVuIHZvbiBXZXJ0ZW4gYXVzIGRlbSBNb2RlbCBpbiBkYXMgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVkFMVUUpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgY2FuIE92ZXJ3cml0ZW4gaW4gUGFyZW50IENsYXNzZXNcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBXZXJ0IHdlbGNoZXIgaW4gZGVuIGtvcnJla3RlbiBUeXAga29udmVydGllcnQgd2VyZGVuIHNvbGxcclxuICAgICAqIEByZXR1cm5zIFdlcnQgaW0ga29ycmVrdGVuIFR5cFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgQ29udmVydElucHV0VmFsdWUodmFsdWU6IFZBTFVFKTogVkFMVUUge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERlY2ltYWwgU3ltYm9sXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBHZXREZWNpbWFsU3ltYm9sKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcuJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBjYW4gYmUgdXNlZCB0byBTZXQgUHJvcGVydGllcyBhdCBDbGFzcyBJbml0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBPbkNsYXNzSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBa3R1YWxpc2llcnQgZGVuIE5nTW9kZWwgV2VydCB1bmQgZGllIEfDvGx0aWdrZWl0IGRlcyBWYWxpZGF0b3JzIGRlcyBDb250cm9sc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgVXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgICBwcml2YXRlIFVwZGF0ZUxhYmVsVG9Db250cm9sKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElBYnN0cmFjdENvbnRyb2xMYWJlbEV4dGVuc2lvbikuY29udHJvbGxhYmVsID0gdGhpcy5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgY29tcG9uZW50IGhlaWdodCBmcm9tIHByb3BlcnR5IG9yIHBhcmVudCBsYXlvdXQgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldENvbXBvbmVudEhlaWdodCgpIHtcclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBzbWFsbFxyXG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRIZWlnaHQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uY29tcG9uZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuZm9ybWxheW91dC5jb21wb25lbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEhlaWdodCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuQ29tcG9uZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IG1vZGUgZm9yIGhlbHB0ZXh0LiBDYW4gYmUgdG9vbHRpcCBvciB0ZXh0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0SGVscFRleHRNb2RlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oZWxwdGV4dG1vZGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaGVscHRleHRtb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuZm9ybWxheW91dC5oZWxwdGV4dG1vZGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHB0ZXh0bW9kZSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuSGVscHRleHRNb2RlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGFkYXB0aXZlIGxhYmVsIHByb3BlcnR5IGZyb20gcGFyZW50IGxheW91dCBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0SXNBZGFwdGl2ZUxhYmVsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0FkYXB0aXZlTGFiZWwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8uaXNBZGFwdGl2ZUxhYmVsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gdGhpcy5mb3JtbGF5b3V0LmlzQWRhcHRpdmVMYWJlbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNBZGFwdGl2ZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgbGFiZWwgc2l6ZXMgZnJvbSBwcm9wZXJ0eSBvciBwYXJlbnQgbGF5b3V0IGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRMYWJlbFNpemVzKCkge1xyXG4gICAgICAgIC8vIHNldCBzaXplIGV4dHJhIHNtYWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVhzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVhzID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVhzO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYcyA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBzaXplIHNtYWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsU2l6ZVNtKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1sYXlvdXQ/LmxhYmVsU2l6ZVNtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVNtID0gdGhpcy5mb3JtbGF5b3V0LmxhYmVsU2l6ZVNtO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVTbSA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplU207XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBzaXplIG1lZGl1bVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVNZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVNZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVNZCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVNZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTWQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZU1kO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVMZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVMZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVMZyA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVMZztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplTGcgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZUxnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5sYWJlbFNpemVYbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbFNpemVYbCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiZWxTaXplWGwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLkxhYmVsU2l6ZVhsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgc2l6ZSBleHRyYSBleHRyYSBsYXJnZVxyXG4gICAgICAgIGlmICghdGhpcy5sYWJlbFNpemVYeGwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWxheW91dD8ubGFiZWxTaXplWHhsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuZm9ybWxheW91dC5sYWJlbFNpemVYeGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsU2l6ZVh4bCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuTGFiZWxTaXplWHhsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0TGFiZWxTcGxpdE1vZGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0bGFiZWxhbmRoZWxwdGV4dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtbGF5b3V0Py5zcGxpdGxhYmVsYW5kaGVscHRleHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5mb3JtbGF5b3V0LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0ID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5TcGxpdExhYmVsQW5kSGVscHRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXSwibWFwcGluZ3MiOiJvNXdEQTJNSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0ExTUosT0FBU0UsYUFBYSxLQUFRLHdCQUF3QixDQU90RCxPQUNJQyxlQUFlLENBQ2ZDLHdCQUF3QixDQUN4QkMscUJBQXFCLENBQ3JCQyw4QkFBOEIsS0FDM0IsYUFBYSxDQUNwQixPQUFTQyx3QkFBd0IsQ0FBRUMsOEJBQThCLEtBQVEsdUNBQXVDLENBQ2hILE9BQVNDLHVCQUF1QixDQUFFQyw2QkFBNkIsS0FBUSxzQ0FBc0MsQ0FDN0csT0FBU0MsZ0JBQWdCLEtBQVEseUJBQXlCLENBQzFELE9BQVNDLFVBQVUsS0FBUSxtQkFBbUIsQ0FFOUMsT0FBU0MsU0FBUyxDQUFFQyxJQUFJLENBQVlDLEtBQUssS0FBZ0IsZUFBZSxDQUN4RSxPQUlJQyxlQUFlLENBQ2ZDLGtCQUFrQixDQUNsQkMsU0FBUyxLQUdOLGdCQUFnQixDQUN2QixPQUFTQyxVQUFVLEtBQVEsTUFBTSxDLGtGQUVqQzs7R0FJQSxNQUFNLE1BQWdCLENBQUFDLG1CQUFtQixDQXVLckM7QUFFQTtBQUVBOzs7O09BS0FDLFlBQW9CQyxVQUErQixDQUFtQkMsUUFBa0IsRUFBQXZCLGNBQUEsR0FBQXdCLENBQUEsTUFBQXhCLGNBQUEsR0FBQXlCLENBQUEsTUFBbEIsS0FBQUYsUUFBUSxDQUFSQSxRQUFRLENBL0s5RTtBQUVBOztXQUFBdkIsY0FBQSxHQUFBeUIsQ0FBQSxNQUdRLEtBQUFDLG1CQUFtQixDQUFtQixJQUFJLENBRWxEOztXQUFBMUIsY0FBQSxHQUFBeUIsQ0FBQSxNQUdRLEtBQUFFLE1BQU0sQ0FBVyxFQUFFLENBTzNCOztXQUFBM0IsY0FBQSxHQUFB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
|