@simpleangularcontrols/sac-common 13.0.0-rc.20 → 13.0.0-rc.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/common/basedatetimecontrol.d.ts +45 -18
  2. package/common/basedatetimecontrol.d.ts.map +1 -1
  3. package/common/baseinputcontrol.d.ts +10 -8
  4. package/common/baseinputcontrol.d.ts.map +1 -1
  5. package/common/baselistcontrol.d.ts +16 -16
  6. package/common/baselistcontrol.d.ts.map +1 -1
  7. package/common/basemodelcontrol.d.ts +60 -44
  8. package/common/basemodelcontrol.d.ts.map +1 -1
  9. package/common/baseselectcontrol.d.ts +6 -6
  10. package/common/baseselectcontrol.d.ts.map +1 -1
  11. package/common/baseuploadcontrol.d.ts +78 -58
  12. package/common/baseuploadcontrol.d.ts.map +1 -1
  13. package/components/browser/browser.d.ts +86 -89
  14. package/components/browser/browser.d.ts.map +1 -1
  15. package/components/browser/models/browserfile.d.ts +6 -6
  16. package/components/browser/models/browserfile.d.ts.map +1 -1
  17. package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
  18. package/components/browser/models/browserfiledeleterequest.d.ts.map +1 -1
  19. package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
  20. package/components/browser/models/browserfilerenamerequest.d.ts.map +1 -1
  21. package/components/browser/models/browserfileresponse.d.ts +2 -2
  22. package/components/browser/models/browserfileresponse.d.ts.map +1 -1
  23. package/components/browser/models/browserfilesaverequest.d.ts +7 -7
  24. package/components/browser/models/browserfilesaverequest.d.ts.map +1 -1
  25. package/components/browser/models/browsernode.d.ts +13 -13
  26. package/components/browser/models/browsernode.d.ts.map +1 -1
  27. package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
  28. package/components/browser/models/browsernodedeleterequest.d.ts.map +1 -1
  29. package/components/browser/models/browsernodenewrequest.d.ts +7 -7
  30. package/components/browser/models/browsernodenewrequest.d.ts.map +1 -1
  31. package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
  32. package/components/browser/models/browsernoderenamerequest.d.ts.map +1 -1
  33. package/components/browser/models/browsernoderequest.d.ts +7 -7
  34. package/components/browser/models/browsernoderequest.d.ts.map +1 -1
  35. package/components/browser/models/browsernoderesponse.d.ts +1 -1
  36. package/components/browser/models/browsernoderesponse.d.ts.map +1 -1
  37. package/controls/buttons/button.d.ts +25 -19
  38. package/controls/buttons/button.d.ts.map +1 -1
  39. package/controls/checkbox/checkbox.d.ts +3 -3
  40. package/controls/checkbox/checkbox.d.ts.map +1 -1
  41. package/controls/checkbox/radiobutton.d.ts +19 -13
  42. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  43. package/controls/checkbox/radiobuttons.d.ts +13 -10
  44. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  45. package/controls/confirm/confirm.button.d.ts +3 -3
  46. package/controls/confirm/confirm.button.d.ts.map +1 -1
  47. package/controls/confirm/confirm.d.ts +13 -12
  48. package/controls/confirm/confirm.d.ts.map +1 -1
  49. package/controls/confirm/confirm.service.d.ts +14 -14
  50. package/controls/confirm/confirm.service.d.ts.map +1 -1
  51. package/controls/contextmenu/contextmenu.d.ts +33 -27
  52. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  53. package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
  54. package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -1
  55. package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
  56. package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
  57. package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
  58. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  59. package/controls/datetime/date.d.ts +11 -11
  60. package/controls/datetime/date.d.ts.map +1 -1
  61. package/controls/datetime/dateselector.d.ts +47 -40
  62. package/controls/datetime/dateselector.d.ts.map +1 -1
  63. package/controls/datetime/datetime.d.ts +15 -14
  64. package/controls/datetime/datetime.d.ts.map +1 -1
  65. package/controls/datetime/time.d.ts +22 -12
  66. package/controls/datetime/time.d.ts.map +1 -1
  67. package/controls/dialog/dialog.d.ts +29 -23
  68. package/controls/dialog/dialog.d.ts.map +1 -1
  69. package/controls/form/form.d.ts +17 -12
  70. package/controls/form/form.d.ts.map +1 -1
  71. package/controls/grid/grid.d.ts +1 -0
  72. package/controls/grid/grid.d.ts.map +1 -1
  73. package/controls/grid/gridbutton.d.ts +1 -0
  74. package/controls/grid/gridbutton.d.ts.map +1 -1
  75. package/controls/grid/gridcolumn.d.ts +5 -1
  76. package/controls/grid/gridcolumn.d.ts.map +1 -1
  77. package/controls/grid/gridcolumnaction.d.ts +1 -1
  78. package/controls/grid/gridcolumnbase.d.ts +13 -4
  79. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  80. package/controls/grid/model.d.ts +5 -2
  81. package/controls/grid/model.d.ts.map +1 -1
  82. package/controls/grid/model.ngfactory.d.ts +3 -0
  83. package/controls/grid/model.ngfactory.d.ts.map +1 -1
  84. package/controls/grid/paging.d.ts +2 -3
  85. package/controls/grid/paging.d.ts.map +1 -1
  86. package/controls/input/input.d.ts +7 -7
  87. package/controls/input/inputarea.d.ts +8 -6
  88. package/controls/input/inputarea.d.ts.map +1 -1
  89. package/controls/input/inputcurrency.d.ts +4 -1
  90. package/controls/input/inputcurrency.d.ts.map +1 -1
  91. package/controls/input/inputdecimal.d.ts +14 -14
  92. package/controls/input/inputdecimal.d.ts.map +1 -1
  93. package/controls/input/inputemail.d.ts +4 -4
  94. package/controls/input/inputinteger.d.ts +14 -14
  95. package/controls/input/inputinteger.d.ts.map +1 -1
  96. package/controls/input/inputpassword.d.ts +3 -3
  97. package/controls/input/inputpassword.d.ts.map +1 -1
  98. package/controls/input/inputsearch.d.ts +8 -5
  99. package/controls/input/inputsearch.d.ts.map +1 -1
  100. package/controls/layout/formlayout.d.ts +9 -6
  101. package/controls/layout/formlayout.d.ts.map +1 -1
  102. package/controls/list/buildvaluestring.d.ts +2 -2
  103. package/controls/list/dropdown.d.ts +23 -22
  104. package/controls/list/dropdown.d.ts.map +1 -1
  105. package/controls/list/dropdownoptions.d.ts +10 -10
  106. package/controls/list/dropdownoptions.d.ts.map +1 -1
  107. package/controls/list/listbox.d.ts +25 -23
  108. package/controls/list/listbox.d.ts.map +1 -1
  109. package/controls/multilanguage/multilanguageinput.d.ts +25 -25
  110. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  111. package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
  112. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  113. package/controls/static/formcontainer.d.ts +8 -8
  114. package/controls/static/formcontainer.d.ts.map +1 -1
  115. package/controls/static/staticlabel.d.ts +5 -5
  116. package/controls/static/staticlabel.d.ts.map +1 -1
  117. package/controls/tabs/tab.d.ts +2 -2
  118. package/controls/tabs/tabitem.d.ts +7 -7
  119. package/controls/tabs/tabitem.d.ts.map +1 -1
  120. package/controls/tinymce/tinymce.d.ts +37 -37
  121. package/controls/tinymce/tinymce.d.ts.map +1 -1
  122. package/controls/tinymce/tinymcedialogsettings.d.ts +6 -6
  123. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
  124. package/controls/tinymce/tinymceinstance.d.ts +2 -2
  125. package/controls/tooltip/tooltip.d.ts +10 -5
  126. package/controls/tooltip/tooltip.d.ts.map +1 -1
  127. package/controls/treeview/treeview.d.ts +52 -7
  128. package/controls/treeview/treeview.d.ts.map +1 -1
  129. package/controls/upload/dropzonemultiple.d.ts +16 -16
  130. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  131. package/controls/upload/dropzonesingle.d.ts +11 -11
  132. package/controls/upload/uploadmultiple.d.ts +12 -12
  133. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  134. package/controls/upload/uploadsingle.d.ts +7 -7
  135. package/controls/upload/uploadsingle.d.ts.map +1 -1
  136. package/controls/validation/validationsummary.d.ts +12 -11
  137. package/controls/validation/validationsummary.d.ts.map +1 -1
  138. package/controls/wizard/wizard.d.ts +25 -18
  139. package/controls/wizard/wizard.d.ts.map +1 -1
  140. package/controls/wizard/wizarditem.d.ts +5 -5
  141. package/controls/wizard/wizarditem.d.ts.map +1 -1
  142. package/enums/ButtonRoleType.d.ts +26 -1
  143. package/enums/ButtonRoleType.d.ts.map +1 -1
  144. package/enums/ControlHeight.d.ts +1 -1
  145. package/enums/ControlHeight.d.ts.map +1 -1
  146. package/enums/IconType.d.ts +1 -1
  147. package/enums/IconType.d.ts.map +1 -1
  148. package/esm2020/common/basedatetimecontrol.mjs +58 -37
  149. package/esm2020/common/baseinputcontrol.mjs +15 -13
  150. package/esm2020/common/baselistcontrol.mjs +19 -17
  151. package/esm2020/common/basemodelcontrol.mjs +81 -70
  152. package/esm2020/common/baseselectcontrol.mjs +10 -9
  153. package/esm2020/common/baseuploadcontrol.mjs +72 -56
  154. package/esm2020/components/browser/browser.mjs +87 -89
  155. package/esm2020/components/browser/models/browserfile.mjs +3 -3
  156. package/esm2020/components/browser/models/browserfiledeleterequest.mjs +9 -7
  157. package/esm2020/components/browser/models/browserfilerenamerequest.mjs +9 -7
  158. package/esm2020/components/browser/models/browserfileresponse.mjs +3 -3
  159. package/esm2020/components/browser/models/browserfilesaverequest.mjs +8 -6
  160. package/esm2020/components/browser/models/browsernode.mjs +3 -3
  161. package/esm2020/components/browser/models/browsernodedeleterequest.mjs +9 -7
  162. package/esm2020/components/browser/models/browsernodenewrequest.mjs +9 -7
  163. package/esm2020/components/browser/models/browsernoderenamerequest.mjs +9 -7
  164. package/esm2020/components/browser/models/browsernoderequest.mjs +9 -7
  165. package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -3
  166. package/esm2020/controls/buttons/button.mjs +28 -24
  167. package/esm2020/controls/checkbox/checkbox.mjs +5 -5
  168. package/esm2020/controls/checkbox/radiobutton.mjs +22 -17
  169. package/esm2020/controls/checkbox/radiobuttons.mjs +16 -13
  170. package/esm2020/controls/confirm/confirm.button.mjs +6 -6
  171. package/esm2020/controls/confirm/confirm.mjs +16 -15
  172. package/esm2020/controls/confirm/confirm.service.mjs +23 -23
  173. package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -3
  174. package/esm2020/controls/contextmenu/contextmenu.mjs +31 -26
  175. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +6 -6
  176. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +6 -6
  177. package/esm2020/controls/contextmenu/contextmenuitem.mjs +1 -1
  178. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +12 -12
  179. package/esm2020/controls/datetime/date.mjs +15 -15
  180. package/esm2020/controls/datetime/dateselector.mjs +94 -93
  181. package/esm2020/controls/datetime/datetime.mjs +19 -18
  182. package/esm2020/controls/datetime/time.mjs +26 -16
  183. package/esm2020/controls/dialog/dialog.mjs +40 -36
  184. package/esm2020/controls/form/form.mjs +20 -16
  185. package/esm2020/controls/grid/grid.mjs +4 -3
  186. package/esm2020/controls/grid/gridbutton.mjs +4 -3
  187. package/esm2020/controls/grid/gridcolumn.mjs +8 -4
  188. package/esm2020/controls/grid/gridcolumnaction.mjs +4 -4
  189. package/esm2020/controls/grid/gridcolumnbase.mjs +24 -17
  190. package/esm2020/controls/grid/model.mjs +9 -7
  191. package/esm2020/controls/grid/model.ngfactory.mjs +5 -3
  192. package/esm2020/controls/grid/paging.mjs +8 -9
  193. package/esm2020/controls/input/input.mjs +10 -10
  194. package/esm2020/controls/input/inputarea.mjs +11 -9
  195. package/esm2020/controls/input/inputcurrency.mjs +8 -6
  196. package/esm2020/controls/input/inputdecimal.mjs +20 -20
  197. package/esm2020/controls/input/inputemail.mjs +7 -7
  198. package/esm2020/controls/input/inputinteger.mjs +19 -19
  199. package/esm2020/controls/input/inputpassword.mjs +6 -6
  200. package/esm2020/controls/input/inputsearch.mjs +11 -9
  201. package/esm2020/controls/layout/formlayout.mjs +11 -8
  202. package/esm2020/controls/list/buildvaluestring.mjs +8 -8
  203. package/esm2020/controls/list/dropdown.mjs +30 -29
  204. package/esm2020/controls/list/dropdownoptions.mjs +14 -14
  205. package/esm2020/controls/list/list.module.ngfactory.mjs +1 -1
  206. package/esm2020/controls/list/listbox.mjs +28 -26
  207. package/esm2020/controls/multilanguage/multilanguageinput.mjs +31 -31
  208. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +33 -33
  209. package/esm2020/controls/static/formcontainer.mjs +12 -12
  210. package/esm2020/controls/static/staticlabel.mjs +9 -9
  211. package/esm2020/controls/tabs/tab.mjs +4 -4
  212. package/esm2020/controls/tabs/tabitem.mjs +7 -7
  213. package/esm2020/controls/tinymce/tinymce.mjs +37 -37
  214. package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +6 -6
  215. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -3
  216. package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -3
  217. package/esm2020/controls/tooltip/tooltip.mjs +15 -10
  218. package/esm2020/controls/treeview/treeview.mjs +47 -11
  219. package/esm2020/controls/upload/dropzonemultiple.mjs +20 -20
  220. package/esm2020/controls/upload/dropzonesingle.mjs +14 -14
  221. package/esm2020/controls/upload/uploadmultiple.mjs +16 -16
  222. package/esm2020/controls/upload/uploadsingle.mjs +10 -10
  223. package/esm2020/controls/validation/validationsummary.mjs +16 -15
  224. package/esm2020/controls/wizard/wizard.mjs +25 -19
  225. package/esm2020/controls/wizard/wizarditem.mjs +6 -6
  226. package/esm2020/enums/ButtonRoleType.mjs +3 -3
  227. package/esm2020/enums/ControlHeight.mjs +4 -4
  228. package/esm2020/enums/IconType.mjs +4 -4
  229. package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
  230. package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -3
  231. package/esm2020/interfaces/ISacIconService.mjs +3 -3
  232. package/esm2020/interfaces/ISacLabelSizes.mjs +3 -3
  233. package/esm2020/interfaces/ISacLanguageService.mjs +3 -3
  234. package/esm2020/interfaces/ISacLocalisationService.mjs +3 -3
  235. package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -3
  236. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -3
  237. package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -3
  238. package/esm2020/interfaces/iconfirmcomponent.mjs +3 -3
  239. package/esm2020/interfaces/idatetimecontrol.mjs +3 -3
  240. package/esm2020/interfaces/iuploadcontrol.mjs +3 -3
  241. package/esm2020/interfaces/treeviewaction.interface.mjs +3 -3
  242. package/esm2020/models/languagemodel.mjs +8 -6
  243. package/esm2020/public_api.mjs +4 -4
  244. package/esm2020/services/index.mjs +3 -3
  245. package/esm2020/services/sac-configuration.service.mjs +11 -9
  246. package/esm2020/services/sac-filebrowser.service.mjs +65 -51
  247. package/esm2020/services/sac-icon.service.mjs +1 -1
  248. package/esm2020/services/sac-language.service.mjs +10 -6
  249. package/esm2020/services/sac-localisation.service.mjs +13 -9
  250. package/esm2020/services/sac-validationkey.service.mjs +108 -6
  251. package/esm2020/utilities/convertion.mjs +10 -8
  252. package/esm2020/utilities/datatypes.mjs +8 -6
  253. package/esm2020/utilities/enums.mjs +4 -10
  254. package/esm2020/utilities/guid.mjs +8 -8
  255. package/esm2020/utilities/interpolation.mjs +21 -14
  256. package/esm2020/utilities/popuphelper.mjs +52 -32
  257. package/esm2020/utilities/positioncalculator.mjs +61 -0
  258. package/esm2020/utilities/positioncalculator.ngfactory.mjs +3 -0
  259. package/esm2020/utilities/positioncalculator.ngsummary.mjs +3 -0
  260. package/esm2020/utilities/positionelements.mjs +32 -0
  261. package/esm2020/utilities/positionelements.ngfactory.mjs +3 -0
  262. package/esm2020/utilities/positionelements.ngsummary.mjs +3 -0
  263. package/esm2020/utilities/testingattribute.pipe.mjs +19 -6
  264. package/esm2020/utilities/utilities.module.ngfactory.mjs +1 -1
  265. package/esm2020/validation/email.validator.mjs +11 -3
  266. package/esm2020/validation/equals.validator.mjs +12 -3
  267. package/esm2020/validation/index.mjs +3 -3
  268. package/esm2020/validation/invaliddate.validator.mjs +11 -3
  269. package/esm2020/validation/isDateValid.mjs +12 -10
  270. package/esm2020/validation/maxdate.validator.mjs +13 -4
  271. package/esm2020/validation/maxtime.validator.mjs +13 -4
  272. package/esm2020/validation/maxvalue.validator.mjs +12 -3
  273. package/esm2020/validation/mindate.validator.mjs +13 -4
  274. package/esm2020/validation/minfiles.validator.mjs +13 -4
  275. package/esm2020/validation/mintextlength.validator.mjs +11 -4
  276. package/esm2020/validation/mintime.validator.mjs +13 -4
  277. package/esm2020/validation/minvalue.validator.mjs +12 -3
  278. package/esm2020/validation/multilanguagerequired.validator.mjs +12 -3
  279. package/esm2020/validation/multilanguagerequiredany.validator.mjs +12 -3
  280. package/esm2020/validation/notequals.validator.mjs +12 -3
  281. package/esm2020/validation/pattern.validator.mjs +12 -3
  282. package/esm2020/validation/required.validator.mjs +11 -3
  283. package/esm2020/validation/validation.mjs +86 -102
  284. package/esm2020/validation/validationerrorcreator.mjs +13 -3
  285. package/esm2020/validation/validationerroritem.mjs +14 -12
  286. package/fesm2015/simpleangularcontrols-sac-common.mjs +2662 -2150
  287. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  288. package/fesm2020/simpleangularcontrols-sac-common.mjs +2662 -2150
  289. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  290. package/interfaces/ISacConfigurationService.d.ts +9 -1
  291. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  292. package/interfaces/ISacFileBrowserService.d.ts +43 -43
  293. package/interfaces/ISacFileBrowserService.d.ts.map +1 -1
  294. package/interfaces/ISacIconService.d.ts +28 -28
  295. package/interfaces/ISacIconService.d.ts.map +1 -1
  296. package/interfaces/ISacLabelSizes.d.ts +9 -6
  297. package/interfaces/ISacLabelSizes.d.ts.map +1 -1
  298. package/interfaces/ISacLanguageService.d.ts +3 -3
  299. package/interfaces/ISacLanguageService.d.ts.map +1 -1
  300. package/interfaces/ISacLocalisationService.d.ts +2 -2
  301. package/interfaces/ISacLocalisationService.d.ts.map +1 -1
  302. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  303. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -1
  304. package/interfaces/iabstractcontrollabel.d.ts +4 -1
  305. package/interfaces/iabstractcontrollabel.d.ts.map +1 -1
  306. package/interfaces/iconfirmcomponent.d.ts +6 -6
  307. package/interfaces/iconfirmcomponent.d.ts.map +1 -1
  308. package/interfaces/idatetimecontrol.d.ts +10 -1
  309. package/interfaces/idatetimecontrol.d.ts.map +1 -1
  310. package/interfaces/iuploadcontrol.d.ts.map +1 -1
  311. package/interfaces/treeviewaction.interface.d.ts +9 -0
  312. package/interfaces/treeviewaction.interface.d.ts.map +1 -1
  313. package/models/languagemodel.d.ts +9 -9
  314. package/models/languagemodel.d.ts.map +1 -1
  315. package/package.json +1 -1
  316. package/public_api.d.ts +2 -1
  317. package/public_api.d.ts.map +1 -1
  318. package/services/index.d.ts +3 -3
  319. package/services/index.d.ts.map +1 -1
  320. package/services/sac-configuration.service.d.ts +8 -0
  321. package/services/sac-configuration.service.d.ts.map +1 -1
  322. package/services/sac-filebrowser.service.d.ts +97 -89
  323. package/services/sac-filebrowser.service.d.ts.map +1 -1
  324. package/services/sac-language.service.d.ts +2 -2
  325. package/services/sac-language.service.d.ts.map +1 -1
  326. package/services/sac-localisation.service.d.ts +11 -7
  327. package/services/sac-localisation.service.d.ts.map +1 -1
  328. package/services/sac-validationkey.service.d.ts +152 -5
  329. package/services/sac-validationkey.service.d.ts.map +1 -1
  330. package/simpleangularcontrols-sac-common-13.0.0-rc.22.tgz +0 -0
  331. package/utilities/convertion.d.ts +4 -4
  332. package/utilities/convertion.d.ts.map +1 -1
  333. package/utilities/datatypes.d.ts +3 -3
  334. package/utilities/datatypes.d.ts.map +1 -1
  335. package/utilities/enums.d.ts +8 -1
  336. package/utilities/enums.d.ts.map +1 -1
  337. package/utilities/guid.d.ts +1 -1
  338. package/utilities/guid.d.ts.map +1 -1
  339. package/utilities/interpolation.d.ts +9 -8
  340. package/utilities/interpolation.d.ts.map +1 -1
  341. package/utilities/popuphelper.d.ts +47 -10
  342. package/utilities/popuphelper.d.ts.map +1 -1
  343. package/utilities/positioncalculator.d.ts +83 -0
  344. package/utilities/positioncalculator.d.ts.map +1 -0
  345. package/utilities/positioncalculator.ngfactory.d.ts +2 -0
  346. package/utilities/positioncalculator.ngfactory.d.ts.map +1 -0
  347. package/utilities/positioncalculator.ngsummary.d.ts +2 -0
  348. package/utilities/positioncalculator.ngsummary.d.ts.map +1 -0
  349. package/utilities/positionelements.d.ts +31 -0
  350. package/utilities/positionelements.d.ts.map +1 -0
  351. package/utilities/positionelements.ngfactory.d.ts +2 -0
  352. package/utilities/positionelements.ngfactory.d.ts.map +1 -0
  353. package/utilities/positionelements.ngsummary.d.ts +2 -0
  354. package/utilities/positionelements.ngsummary.d.ts.map +1 -0
  355. package/utilities/testingattribute.pipe.d.ts +16 -1
  356. package/utilities/testingattribute.pipe.d.ts.map +1 -1
  357. package/validation/email.validator.d.ts +7 -0
  358. package/validation/email.validator.d.ts.map +1 -1
  359. package/validation/equals.validator.d.ts +8 -0
  360. package/validation/equals.validator.d.ts.map +1 -1
  361. package/validation/index.d.ts.map +1 -1
  362. package/validation/invaliddate.validator.d.ts +7 -0
  363. package/validation/invaliddate.validator.d.ts.map +1 -1
  364. package/validation/isDateValid.d.ts +5 -2
  365. package/validation/isDateValid.d.ts.map +1 -1
  366. package/validation/maxdate.validator.d.ts +8 -0
  367. package/validation/maxdate.validator.d.ts.map +1 -1
  368. package/validation/maxtime.validator.d.ts +8 -0
  369. package/validation/maxtime.validator.d.ts.map +1 -1
  370. package/validation/maxvalue.validator.d.ts +8 -0
  371. package/validation/maxvalue.validator.d.ts.map +1 -1
  372. package/validation/mindate.validator.d.ts +8 -0
  373. package/validation/mindate.validator.d.ts.map +1 -1
  374. package/validation/minfiles.validator.d.ts +8 -0
  375. package/validation/minfiles.validator.d.ts.map +1 -1
  376. package/validation/mintextlength.validator.d.ts +8 -0
  377. package/validation/mintextlength.validator.d.ts.map +1 -1
  378. package/validation/mintime.validator.d.ts +8 -0
  379. package/validation/mintime.validator.d.ts.map +1 -1
  380. package/validation/minvalue.validator.d.ts +8 -0
  381. package/validation/minvalue.validator.d.ts.map +1 -1
  382. package/validation/multilanguagerequired.validator.d.ts +9 -1
  383. package/validation/multilanguagerequired.validator.d.ts.map +1 -1
  384. package/validation/multilanguagerequiredany.validator.d.ts +9 -1
  385. package/validation/multilanguagerequiredany.validator.d.ts.map +1 -1
  386. package/validation/notequals.validator.d.ts +8 -0
  387. package/validation/notequals.validator.d.ts.map +1 -1
  388. package/validation/pattern.validator.d.ts +8 -0
  389. package/validation/pattern.validator.d.ts.map +1 -1
  390. package/validation/required.validator.d.ts +7 -0
  391. package/validation/required.validator.d.ts.map +1 -1
  392. package/validation/validation.d.ts +83 -99
  393. package/validation/validation.d.ts.map +1 -1
  394. package/validation/validationerrorcreator.d.ts +9 -0
  395. package/validation/validationerrorcreator.d.ts.map +1 -1
  396. package/validation/validationerroritem.d.ts +16 -16
  397. package/validation/validationerroritem.d.ts.map +1 -1
  398. package/esm2020/utilities/positioning.mjs +0 -58
  399. package/esm2020/utilities/positioning.ngfactory.mjs +0 -3
  400. package/esm2020/utilities/positioning.ngsummary.mjs +0 -3
  401. package/simpleangularcontrols-sac-common-13.0.0-rc.20.tgz +0 -0
  402. package/utilities/positioning.d.ts +0 -83
  403. package/utilities/positioning.d.ts.map +0 -1
  404. package/utilities/positioning.ngfactory.d.ts +0 -2
  405. package/utilities/positioning.ngfactory.d.ts.map +0 -1
  406. package/utilities/positioning.ngsummary.d.ts +0 -2
  407. package/utilities/positioning.ngsummary.d.ts.map +0 -1
@@ -1,53 +1,67 @@
1
- function cov_ujyserows(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/services/sac-filebrowser.service.mjs";var hash="33d6941a02aa3a4277264b91ee5e16d21a65bdbd";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/services/sac-filebrowser.service.mjs",statementMap:{"0":{start:{line:14,column:38},end:{line:14,column:78}},"1":{start:{line:20,column:0},end:{line:20,column:204}},"2":{start:{line:21,column:0},end:{line:21,column:179}},"3":{start:{line:22,column:0},end:{line:27,column:14}},"4":{start:{line:37,column:8},end:{line:37,column:16}},"5":{start:{line:38,column:8},end:{line:38,column:37}},"6":{start:{line:47,column:20},end:{line:47,column:40}},"7":{start:{line:48,column:8},end:{line:50,column:9}},"8":{start:{line:49,column:12},end:{line:49,column:22}},"9":{start:{line:51,column:24},end:{line:54,column:10}},"10":{start:{line:55,column:8},end:{line:57,column:11}},"11":{start:{line:66,column:20},end:{line:66,column:39}},"12":{start:{line:67,column:8},end:{line:69,column:9}},"13":{start:{line:68,column:12},end:{line:68,column:22}},"14":{start:{line:70,column:24},end:{line:73,column:10}},"15":{start:{line:74,column:8},end:{line:76,column:11}},"16":{start:{line:85,column:20},end:{line:85,column:42}},"17":{start:{line:86,column:8},end:{line:88,column:9}},"18":{start:{line:87,column:12},end:{line:87,column:22}},"19":{start:{line:89,column:24},end:{line:92,column:10}},"20":{start:{line:93,column:8},end:{line:95,column:11}},"21":{start:{line:103,column:20},end:{line:103,column:42}},"22":{start:{line:104,column:8},end:{line:106,column:9}},"23":{start:{line:105,column:12},end:{line:105,column:22}},"24":{start:{line:107,column:24},end:{line:109,column:10}},"25":{start:{line:110,column:8},end:{line:112,column:11}},"26":{start:{line:121,column:20},end:{line:121,column:40}},"27":{start:{line:122,column:8},end:{line:124,column:9}},"28":{start:{line:123,column:12},end:{line:123,column:22}},"29":{start:{line:125,column:24},end:{line:128,column:10}},"30":{start:{line:129,column:8},end:{line:131,column:11}},"31":{start:{line:141,column:20},end:{line:141,column:42}},"32":{start:{line:142,column:8},end:{line:144,column:9}},"33":{start:{line:143,column:12},end:{line:143,column:22}},"34":{start:{line:145,column:24},end:{line:149,column:10}},"35":{start:{line:150,column:8},end:{line:152,column:11}},"36":{start:{line:161,column:20},end:{line:161,column:42}},"37":{start:{line:162,column:8},end:{line:164,column:9}},"38":{start:{line:163,column:12},end:{line:163,column:22}},"39":{start:{line:165,column:24},end:{line:168,column:10}},"40":{start:{line:169,column:8},end:{line:171,column:11}},"41":{start:{line:181,column:20},end:{line:181,column:42}},"42":{start:{line:182,column:8},end:{line:184,column:9}},"43":{start:{line:183,column:12},end:{line:183,column:22}},"44":{start:{line:185,column:24},end:{line:189,column:10}},"45":{start:{line:190,column:8},end:{line:192,column:11}},"46":{start:{line:195,column:0},end:{line:195,column:226}},"47":{start:{line:196,column:0},end:{line:196,column:177}},"48":{start:{line:197,column:0},end:{line:202,column:81}},"49":{start:{line:202,column:42},end:{line:202,column:75}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:36,column:4},end:{line:36,column:5}},loc:{start:{line:36,column:28},end:{line:39,column:5}},line:36},"1":{name:"(anonymous_1)",decl:{start:{line:46,column:4},end:{line:46,column:5}},loc:{start:{line:46,column:45},end:{line:58,column:5}},line:46},"2":{name:"(anonymous_2)",decl:{start:{line:65,column:4},end:{line:65,column:5}},loc:{start:{line:65,column:42},end:{line:77,column:5}},line:65},"3":{name:"(anonymous_3)",decl:{start:{line:84,column:4},end:{line:84,column:5}},loc:{start:{line:84,column:44},end:{line:96,column:5}},line:84},"4":{name:"(anonymous_4)",decl:{start:{line:102,column:4},end:{line:102,column:5}},loc:{start:{line:102,column:29},end:{line:113,column:5}},line:102},"5":{name:"(anonymous_5)",decl:{start:{line:120,column:4},end:{line:120,column:5}},loc:{start:{line:120,column:46},end:{line:132,column:5}},line:120},"6":{name:"(anonymous_6)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:50},end:{line:153,column:5}},line:140},"7":{name:"(anonymous_7)",decl:{start:{line:160,column:4},end:{line:160,column:5}},loc:{start:{line:160,column:48},end:{line:172,column:5}},line:160},"8":{name:"(anonymous_8)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:61},end:{line:193,column:5}},line:180},"9":{name:"(anonymous_9)",decl:{start:{line:202,column:28},end:{line:202,column:29}},loc:{start:{line:202,column:40},end:{line:202,column:77}},line:202}},branchMap:{"0":{loc:{start:{line:48,column:8},end:{line:50,column:9}},type:"if",locations:[{start:{line:48,column:8},end:{line:50,column:9}},{start:{line:48,column:8},end:{line:50,column:9}}],line:48},"1":{loc:{start:{line:67,column:8},end:{line:69,column:9}},type:"if",locations:[{start:{line:67,column:8},end:{line:69,column:9}},{start:{line:67,column:8},end:{line:69,column:9}}],line:67},"2":{loc:{start:{line:86,column:8},end:{line:88,column:9}},type:"if",locations:[{start:{line:86,column:8},end:{line:88,column:9}},{start:{line:86,column:8},end:{line:88,column:9}}],line:86},"3":{loc:{start:{line:104,column:8},end:{line:106,column:9}},type:"if",locations:[{start:{line:104,column:8},end:{line:106,column:9}},{start:{line:104,column:8},end:{line:106,column:9}}],line:104},"4":{loc:{start:{line:122,column:8},end:{line:124,column:9}},type:"if",locations:[{start:{line:122,column:8},end:{line:124,column:9}},{start:{line:122,column:8},end:{line:124,column:9}}],line:122},"5":{loc:{start:{line:142,column:8},end:{line:144,column:9}},type:"if",locations:[{start:{line:142,column:8},end:{line:144,column:9}},{start:{line:142,column:8},end:{line:144,column:9}}],line:142},"6":{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},"7":{loc:{start:{line:182,column:8},end:{line:184,column:9}},type:"if",locations:[{start:{line:182,column:8},end:{line:184,column:9}},{start:{line:182,column:8},end:{line:184,column:9}}],line:182}},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},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},inputSourceMap:{version:3,file:"sac-filebrowser.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-filebrowser.service.ts"],names:[],mappings:"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",sourcesContent:["import { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';\nimport { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';\nimport { IBrowserFileResponse } from '../components/browser/models/browserfileresponse';\nimport { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';\nimport { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';\nimport { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';\nimport { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';\nimport { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';\nimport { IBrowserNodeResponse } from '../components/browser/models/browsernoderesponse';\nimport { ISacFileBrowserService } from '../interfaces/ISacFileBrowserService';\n\n/**\n * Injection Token f\xFCr Language Service\n */\nexport const SACFILEBROWSER_SERVICE =\n new InjectionToken<ISacFileBrowserService>('FileBrowserService');\n\n/**\n * Abstrakte Implementierung des File Service f\xFCr die Browser Component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SacAbstractFileBrowserService\n implements ISacFileBrowserService\n{\n /**\n * Gibt einen Node zur\xFCck\n * @param apiurl URL zu API Service\n * @param path Pfad des Node welcher angefordert wird\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\n */\n abstract GetNode(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Speichert einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem der Node gespeichert werden soll\n * @param newFoldername Name des neuen Nodes\n */\n abstract SaveNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Rename eines Nodes\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher umbenannt werden soll\n * @param newFoldername Neuer Name des Nodes\n */\n abstract RenameNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * L\xF6scht einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\n */\n abstract DeleteNode(\n apiurl: string,\n path: string\n ): Observable<IBrowserNodeResponse>;\n\n /**\n * Methode welche die Dateien eines Nodes ausliest\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\n * @param allowedextensions Erlaubte File Extensions\n */\n abstract GetFiles(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Speichert eine Hochgeladene Datei in der Struktur\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem das neue File gespeichert werden soll\n * @param id ID des Uploads\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\n */\n abstract SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Methode welche eine Datei umbenannt\n * @param apiurl URL zu API Service\n * @param path Pfad zum File welches umbenannt werden soll\n * @param newFilename Neuer Dateiname\n * @param allowedextensions Erlaubte Extension f\xFCr Files\n */\n abstract RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * L\xF6scht eine Datei\n * @param apiurl URL zu API Service\n * @param path Pfad des Files welches gel\xF6scht werden soll\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\n */\n abstract DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n}\n\n/**\n * Standardimplementierung des Backend Service f\xFCr die File Browser Component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {\n /**\n * Konstruktor\n * @param httpclient HTTP Client Service\n */\n constructor(private httpclient: HttpClient) {\n super();\n }\n\n /**\n * Gibt einen Node zur\xFCck\n * @param apiurl URL zu API Service\n * @param path Pfad des Node welcher angefordert wird\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\n */\n public GetNode(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/getnodes`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Speichert einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem der Node gespeichert werden soll\n * @param newFoldername Name des neuen Nodes\n */\n public SaveNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/newnode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeNewRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Rename eines Nodes\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher umbenannt werden soll\n * @param newFoldername Neuer Name des Nodes\n */\n public RenameNode(\n apiurl: string,\n path: string,\n newFoldername: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/renamenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRenameRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.put<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * L\xF6scht einen Node\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\n */\n public DeleteNode(\n apiurl: string,\n path: string\n ): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/deletenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeDeleteRequest({\n Path: path,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Methode welche die Dateien eines Nodes ausliest\n * @param apiurl URL zu API Service\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\n * @param allowedextensions Erlaubte File Extensions\n */\n public GetFiles(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/getfiles`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Speichert eine Hochgeladene Datei in der Struktur\n * @param apiurl URL zu API Service\n * @param path Pfad in welchem das neue File gespeichert werden soll\n * @param id ID des Uploads\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\n */\n public SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/uploadfile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileSaveRequest({\n Path: path,\n UploadId: id,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * L\xF6scht eine Datei\n * @param apiurl URL zu API Service\n * @param path Pfad des Files welches gel\xF6scht werden soll\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\n */\n public DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/deletefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileDeleteRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Methode welche eine Datei umbenannt\n * @param apiurl URL zu API Service\n * @param path Pfad zum File welches umbenannt werden soll\n * @param newFilename Neuer Dateiname\n * @param allowedextensions Erlaubte Extension f\xFCr Files\n */\n public RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/renamefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileRenameRequest({\n Path: path,\n NewFilename: newFilename,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.put<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"33d6941a02aa3a4277264b91ee5e16d21a65bdbd"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_ujyserows=function(){return actualCoverage;};}return actualCoverage;}cov_ujyserows();import{Injectable,InjectionToken}from'@angular/core';import{BrowserFileDeleteRequest}from'../components/browser/models/browserfiledeleterequest';import{BrowserFileRenameRequest}from'../components/browser/models/browserfilerenamerequest';import{BrowserFileSaveRequest}from'../components/browser/models/browserfilesaverequest';import{BrowserNodeDeleteRequest}from'../components/browser/models/browsernodedeleterequest';import{BrowserNodeNewRequest}from'../components/browser/models/browsernodenewrequest';import{BrowserNodeRenameRequest}from'../components/browser/models/browsernoderenamerequest';import{BrowserNodeRequest}from'../components/browser/models/browsernoderequest';import*as i0 from"@angular/core";import*as i1 from"@angular/common/http";/**
3
- * Injection Token für Language Service
4
- */export const SACFILEBROWSER_SERVICE=(cov_ujyserows().s[0]++,new InjectionToken('FileBrowserService'));/**
5
- * Abstrakte Implementierung des File Service für die Browser Component
1
+ function cov_ujyserows(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/services/sac-filebrowser.service.mjs";var hash="f942b6f777ec77de4af23cbf060699ef4eef15f5";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/services/sac-filebrowser.service.mjs",statementMap:{"0":{start:{line:15,column:38},end:{line:15,column:78}},"1":{start:{line:23,column:0},end:{line:23,column:204}},"2":{start:{line:24,column:0},end:{line:24,column:179}},"3":{start:{line:25,column:0},end:{line:30,column:14}},"4":{start:{line:41,column:8},end:{line:41,column:16}},"5":{start:{line:42,column:8},end:{line:42,column:37}},"6":{start:{line:54,column:20},end:{line:54,column:42}},"7":{start:{line:55,column:8},end:{line:57,column:9}},"8":{start:{line:56,column:12},end:{line:56,column:22}},"9":{start:{line:58,column:24},end:{line:61,column:10}},"10":{start:{line:62,column:8},end:{line:64,column:11}},"11":{start:{line:73,column:20},end:{line:73,column:42}},"12":{start:{line:74,column:8},end:{line:76,column:9}},"13":{start:{line:75,column:12},end:{line:75,column:22}},"14":{start:{line:77,column:24},end:{line:79,column:10}},"15":{start:{line:80,column:8},end:{line:82,column:11}},"16":{start:{line:92,column:20},end:{line:92,column:40}},"17":{start:{line:93,column:8},end:{line:95,column:9}},"18":{start:{line:94,column:12},end:{line:94,column:22}},"19":{start:{line:96,column:24},end:{line:99,column:10}},"20":{start:{line:100,column:8},end:{line:102,column:11}},"21":{start:{line:112,column:20},end:{line:112,column:40}},"22":{start:{line:113,column:8},end:{line:115,column:9}},"23":{start:{line:114,column:12},end:{line:114,column:22}},"24":{start:{line:116,column:24},end:{line:119,column:10}},"25":{start:{line:120,column:8},end:{line:122,column:11}},"26":{start:{line:133,column:20},end:{line:133,column:42}},"27":{start:{line:134,column:8},end:{line:136,column:9}},"28":{start:{line:135,column:12},end:{line:135,column:22}},"29":{start:{line:137,column:24},end:{line:141,column:10}},"30":{start:{line:142,column:8},end:{line:144,column:11}},"31":{start:{line:154,column:20},end:{line:154,column:42}},"32":{start:{line:155,column:8},end:{line:157,column:9}},"33":{start:{line:156,column:12},end:{line:156,column:22}},"34":{start:{line:158,column:24},end:{line:161,column:10}},"35":{start:{line:162,column:8},end:{line:164,column:11}},"36":{start:{line:175,column:20},end:{line:175,column:42}},"37":{start:{line:176,column:8},end:{line:178,column:9}},"38":{start:{line:177,column:12},end:{line:177,column:22}},"39":{start:{line:179,column:24},end:{line:183,column:10}},"40":{start:{line:184,column:8},end:{line:186,column:11}},"41":{start:{line:196,column:20},end:{line:196,column:39}},"42":{start:{line:197,column:8},end:{line:199,column:9}},"43":{start:{line:198,column:12},end:{line:198,column:22}},"44":{start:{line:200,column:24},end:{line:203,column:10}},"45":{start:{line:204,column:8},end:{line:206,column:11}},"46":{start:{line:209,column:0},end:{line:209,column:226}},"47":{start:{line:210,column:0},end:{line:210,column:177}},"48":{start:{line:211,column:0},end:{line:216,column:81}},"49":{start:{line:216,column:42},end:{line:216,column:75}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:40,column:4},end:{line:40,column:5}},loc:{start:{line:40,column:28},end:{line:43,column:5}},line:40},"1":{name:"(anonymous_1)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:48},end:{line:65,column:5}},line:53},"2":{name:"(anonymous_2)",decl:{start:{line:72,column:4},end:{line:72,column:5}},loc:{start:{line:72,column:29},end:{line:83,column:5}},line:72},"3":{name:"(anonymous_3)",decl:{start:{line:91,column:4},end:{line:91,column:5}},loc:{start:{line:91,column:46},end:{line:103,column:5}},line:91},"4":{name:"(anonymous_4)",decl:{start:{line:111,column:4},end:{line:111,column:5}},loc:{start:{line:111,column:45},end:{line:123,column:5}},line:111},"5":{name:"(anonymous_5)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:61},end:{line:145,column:5}},line:132},"6":{name:"(anonymous_6)",decl:{start:{line:153,column:4},end:{line:153,column:5}},loc:{start:{line:153,column:44},end:{line:165,column:5}},line:153},"7":{name:"(anonymous_7)",decl:{start:{line:174,column:4},end:{line:174,column:5}},loc:{start:{line:174,column:50},end:{line:187,column:5}},line:174},"8":{name:"(anonymous_8)",decl:{start:{line:195,column:4},end:{line:195,column:5}},loc:{start:{line:195,column:42},end:{line:207,column:5}},line:195},"9":{name:"(anonymous_9)",decl:{start:{line:216,column:28},end:{line:216,column:29}},loc:{start:{line:216,column:40},end:{line:216,column:77}},line:216}},branchMap:{"0":{loc:{start:{line:55,column:8},end:{line:57,column:9}},type:"if",locations:[{start:{line:55,column:8},end:{line:57,column:9}},{start:{line:55,column:8},end:{line:57,column:9}}],line:55},"1":{loc:{start:{line:74,column:8},end:{line:76,column:9}},type:"if",locations:[{start:{line:74,column:8},end:{line:76,column:9}},{start:{line:74,column:8},end:{line:76,column:9}}],line:74},"2":{loc:{start:{line:93,column:8},end:{line:95,column:9}},type:"if",locations:[{start:{line:93,column:8},end:{line:95,column:9}},{start:{line:93,column:8},end:{line:95,column:9}}],line:93},"3":{loc:{start:{line:113,column:8},end:{line:115,column:9}},type:"if",locations:[{start:{line:113,column:8},end:{line:115,column:9}},{start:{line:113,column:8},end:{line:115,column:9}}],line:113},"4":{loc:{start:{line:134,column:8},end:{line:136,column:9}},type:"if",locations:[{start:{line:134,column:8},end:{line:136,column:9}},{start:{line:134,column:8},end:{line:136,column:9}}],line:134},"5":{loc:{start:{line:155,column:8},end:{line:157,column:9}},type:"if",locations:[{start:{line:155,column:8},end:{line:157,column:9}},{start:{line:155,column:8},end:{line:157,column:9}}],line:155},"6":{loc:{start:{line:176,column:8},end:{line:178,column:9}},type:"if",locations:[{start:{line:176,column:8},end:{line:178,column:9}},{start:{line:176,column:8},end:{line:178,column:9}}],line:176},"7":{loc:{start:{line:197,column:8},end:{line:199,column:9}},type:"if",locations:[{start:{line:197,column:8},end:{line:199,column:9}},{start:{line:197,column:8},end:{line:199,column:9}}],line:197}},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},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},inputSourceMap:{version:3,file:"sac-filebrowser.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-filebrowser.service.ts"],names:[],mappings:"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",sourcesContent:["import { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';\nimport { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';\nimport { IBrowserFileResponse } from '../components/browser/models/browserfileresponse';\nimport { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';\nimport { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';\nimport { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';\nimport { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';\nimport { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';\nimport { IBrowserNodeResponse } from '../components/browser/models/browsernoderesponse';\nimport { ISacFileBrowserService } from '../interfaces/ISacFileBrowserService';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// #region Variables\n\n/**\n * Injection Token for Language Service\n */\nexport const SACFILEBROWSER_SERVICE = new InjectionToken<ISacFileBrowserService>('FileBrowserService');\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * Abstract implementation of the file service for the browser component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class SacAbstractFileBrowserService implements ISacFileBrowserService {\n // #region Public Methods\n\n /**\n * Deletes a file\n * @param apiurl URL to API Service\n * @param path Path of the file to be deleted\n * @param allowedextensions Allowed extensions for files\n */\n public abstract DeleteFile(\n apiurl: string,\n path: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Deletes a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be deleted\n */\n public abstract DeleteNode(apiurl: string, path: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Method that reads the files of a node\n * @param apiurl URL to API Service\n * @param path Path of the node from which the files should be read\n * @param allowedextensions Allowed file extensions\n */\n public abstract GetFiles(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse>;\n\n /**\n * Returns a node\n * @param apiurl URL to API Service\n * @param path Path of the node being requested\n * @param allowedextensions Allowed extensions that may be displayed\n */\n public abstract GetNode(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Method that renames a file\n * @param apiurl URL to API Service\n * @param path Path to the file to be renamed\n * @param newFilename New filename\n * @param allowedextensions Allowed extension for files\n */\n public abstract RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Rename a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be renamed\n * @param newFoldername New name of the node\n */\n public abstract RenameNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse>;\n\n /**\n * Saves an uploaded file in the structure\n * @param apiurl URL to API Service\n * @param path Path where the new file should be saved\n * @param id ID of the upload\n * @param allowedextensions Allowed extensions for the upload\n */\n public abstract SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse>;\n\n /**\n * Saves a node\n * @param apiurl URL to API Service\n * @param path Path where the node should be saved\n * @param newFoldername Name of the new node\n */\n public abstract SaveNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse>;\n\n // #endregion Public Methods\n}\n\n/**\n * Standard implementation of the backend service for the file browser component\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {\n // #region Constructors\n\n /**\n * Constructor\n * @param httpclient HTTP Client Service\n */\n constructor(private httpclient: HttpClient) {\n super();\n }\n\n // #endregion Constructors\n\n // #region Public Methods\n\n /**\n * Deletes a file\n * @param apiurl URL to API Service\n * @param path Path of the file to be deleted\n * @param allowedextensions Allowed extensions for files\n * @returns Observable containing the file response after deletion\n */\n public DeleteFile(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/deletefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileDeleteRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Deletes a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be deleted\n * @returns Observable containing the node response after deletion\n */\n public DeleteNode(apiurl: string, path: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/deletenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeDeleteRequest({\n Path: path,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Method that reads the files of a node\n * @param apiurl URL to API Service\n * @param path Path of the node from which the files should be read\n * @param allowedextensions Allowed file extensions\n * @returns Observable containing the file response\n */\n public GetFiles(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/getfiles`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Returns a node\n * @param apiurl URL to API Service\n * @param path Path of the node being requested\n * @param allowedextensions Allowed extensions that may be displayed\n * @returns Observable containing the node response\n */\n public GetNode(apiurl: string, path: string, allowedextensions: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/getnodes`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRequest({\n Path: path,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Method that renames a file\n * @param apiurl URL to API Service\n * @param path Path to the file to be renamed\n * @param newFilename New filename\n * @param allowedextensions Allowed extension for files\n * @returns Observable containing the file response after rename\n */\n public RenameFile(\n apiurl: string,\n path: string,\n newFilename: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/renamefile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileRenameRequest({\n Path: path,\n NewFilename: newFilename,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.put<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Rename a node\n * @param apiurl URL to API Service\n * @param path Path of the node to be renamed\n * @param newFoldername New name of the node\n * @returns Observable containing the node response after rename\n */\n public RenameNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/renamenode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeRenameRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.put<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Saves an uploaded file in the structure\n * @param apiurl URL to API Service\n * @param path Path where the new file should be saved\n * @param id ID of the upload\n * @param allowedextensions Allowed extensions for the upload\n * @returns Observable containing the file response after save\n */\n public SaveFile(\n apiurl: string,\n path: string,\n id: string,\n allowedextensions: string\n ): Observable<IBrowserFileResponse> {\n const url = `${apiurl}/uploadfile`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserFileSaveRequest({\n Path: path,\n UploadId: id,\n AllowedTypes: allowedextensions,\n });\n\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n /**\n * Saves a node\n * @param apiurl URL to API Service\n * @param path Path where the node should be saved\n * @param newFoldername Name of the new node\n * @returns Observable containing the node response after save\n */\n public SaveNode(apiurl: string, path: string, newFoldername: string): Observable<IBrowserNodeResponse> {\n const url = `${apiurl}/newnode`;\n\n if (!path) {\n path = '';\n }\n\n const request = new BrowserNodeNewRequest({\n Path: path,\n NewFoldername: newFoldername,\n });\n\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\n withCredentials: true,\n });\n }\n\n // #endregion Public Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"f942b6f777ec77de4af23cbf060699ef4eef15f5"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_ujyserows=function(){return actualCoverage;};}return actualCoverage;}cov_ujyserows();import{BrowserFileDeleteRequest}from'../components/browser/models/browserfiledeleterequest';import{BrowserFileRenameRequest}from'../components/browser/models/browserfilerenamerequest';import{BrowserFileSaveRequest}from'../components/browser/models/browserfilesaverequest';import{BrowserNodeDeleteRequest}from'../components/browser/models/browsernodedeleterequest';import{BrowserNodeNewRequest}from'../components/browser/models/browsernodenewrequest';import{BrowserNodeRenameRequest}from'../components/browser/models/browsernoderenamerequest';import{BrowserNodeRequest}from'../components/browser/models/browsernoderequest';import{Injectable,InjectionToken}from'@angular/core';import*as i0 from"@angular/core";import*as i1 from"@angular/common/http";// #region Variables
3
+ /**
4
+ * Injection Token for Language Service
5
+ */export const SACFILEBROWSER_SERVICE=(cov_ujyserows().s[0]++,new InjectionToken('FileBrowserService'));// #endregion Variables
6
+ // #region Exported Classes
7
+ /**
8
+ * Abstract implementation of the file service for the browser component
6
9
  */export class SacAbstractFileBrowserService{}cov_ujyserows().s[1]++;SacAbstractFileBrowserService.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacAbstractFileBrowserService,deps:[],target:i0.ɵɵFactoryTarget.Injectable});cov_ujyserows().s[2]++;SacAbstractFileBrowserService.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacAbstractFileBrowserService,providedIn:'root'});cov_ujyserows().s[3]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacAbstractFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});/**
7
- * Standardimplementierung des Backend Service für die File Browser Component
8
- */export class SacDefaultFileBrowserService extends SacAbstractFileBrowserService{/**
9
- * Konstruktor
10
+ * Standard implementation of the backend service for the file browser component
11
+ */export class SacDefaultFileBrowserService extends SacAbstractFileBrowserService{// #region Constructors
12
+ /**
13
+ * Constructor
10
14
  * @param httpclient HTTP Client Service
11
- */constructor(httpclient){cov_ujyserows().f[0]++;cov_ujyserows().s[4]++;super();cov_ujyserows().s[5]++;this.httpclient=httpclient;}/**
12
- * Gibt einen Node zurück
13
- * @param apiurl URL zu API Service
14
- * @param path Pfad des Node welcher angefordert wird
15
- * @param allowedextensions Erlaubte Extensions die angezeigt werden dürfen
16
- */GetNode(apiurl,path,allowedextensions){cov_ujyserows().f[1]++;const url=(cov_ujyserows().s[6]++,`${apiurl}/getnodes`);cov_ujyserows().s[7]++;if(!path){cov_ujyserows().b[0][0]++;cov_ujyserows().s[8]++;path='';}else{cov_ujyserows().b[0][1]++;}const request=(cov_ujyserows().s[9]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[10]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
17
- * Speichert einen Node
18
- * @param apiurl URL zu API Service
19
- * @param path Pfad in welchem der Node gespeichert werden soll
20
- * @param newFoldername Name des neuen Nodes
21
- */SaveNode(apiurl,path,newFoldername){cov_ujyserows().f[2]++;const url=(cov_ujyserows().s[11]++,`${apiurl}/newnode`);cov_ujyserows().s[12]++;if(!path){cov_ujyserows().b[1][0]++;cov_ujyserows().s[13]++;path='';}else{cov_ujyserows().b[1][1]++;}const request=(cov_ujyserows().s[14]++,new BrowserNodeNewRequest({Path:path,NewFoldername:newFoldername}));cov_ujyserows().s[15]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
22
- * Rename eines Nodes
23
- * @param apiurl URL zu API Service
24
- * @param path Pfad des Nodes welcher umbenannt werden soll
25
- * @param newFoldername Neuer Name des Nodes
26
- */RenameNode(apiurl,path,newFoldername){cov_ujyserows().f[3]++;const url=(cov_ujyserows().s[16]++,`${apiurl}/renamenode`);cov_ujyserows().s[17]++;if(!path){cov_ujyserows().b[2][0]++;cov_ujyserows().s[18]++;path='';}else{cov_ujyserows().b[2][1]++;}const request=(cov_ujyserows().s[19]++,new BrowserNodeRenameRequest({Path:path,NewFoldername:newFoldername}));cov_ujyserows().s[20]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
27
- * Löscht einen Node
28
- * @param apiurl URL zu API Service
29
- * @param path Pfad des Nodes welcher gelöscht werden soll
30
- */DeleteNode(apiurl,path){cov_ujyserows().f[4]++;const url=(cov_ujyserows().s[21]++,`${apiurl}/deletenode`);cov_ujyserows().s[22]++;if(!path){cov_ujyserows().b[3][0]++;cov_ujyserows().s[23]++;path='';}else{cov_ujyserows().b[3][1]++;}const request=(cov_ujyserows().s[24]++,new BrowserNodeDeleteRequest({Path:path}));cov_ujyserows().s[25]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
31
- * Methode welche die Dateien eines Nodes ausliest
32
- * @param apiurl URL zu API Service
33
- * @param path Pfad des Nodes in welchem die Files gelesen werden sollen
34
- * @param allowedextensions Erlaubte File Extensions
35
- */GetFiles(apiurl,path,allowedextensions){cov_ujyserows().f[5]++;const url=(cov_ujyserows().s[26]++,`${apiurl}/getfiles`);cov_ujyserows().s[27]++;if(!path){cov_ujyserows().b[4][0]++;cov_ujyserows().s[28]++;path='';}else{cov_ujyserows().b[4][1]++;}const request=(cov_ujyserows().s[29]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[30]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
36
- * Speichert eine Hochgeladene Datei in der Struktur
37
- * @param apiurl URL zu API Service
38
- * @param path Pfad in welchem das neue File gespeichert werden soll
39
- * @param id ID des Uploads
40
- * @param allowedextensions Erlaubte Extensions für den Upload
41
- */SaveFile(apiurl,path,id,allowedextensions){cov_ujyserows().f[6]++;const url=(cov_ujyserows().s[31]++,`${apiurl}/uploadfile`);cov_ujyserows().s[32]++;if(!path){cov_ujyserows().b[5][0]++;cov_ujyserows().s[33]++;path='';}else{cov_ujyserows().b[5][1]++;}const request=(cov_ujyserows().s[34]++,new BrowserFileSaveRequest({Path:path,UploadId:id,AllowedTypes:allowedextensions}));cov_ujyserows().s[35]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
42
- * Löscht eine Datei
43
- * @param apiurl URL zu API Service
44
- * @param path Pfad des Files welches gelöscht werden soll
45
- * @param allowedextensions Erlaubte Extensions für Files
46
- */DeleteFile(apiurl,path,allowedextensions){cov_ujyserows().f[7]++;const url=(cov_ujyserows().s[36]++,`${apiurl}/deletefile`);cov_ujyserows().s[37]++;if(!path){cov_ujyserows().b[6][0]++;cov_ujyserows().s[38]++;path='';}else{cov_ujyserows().b[6][1]++;}const request=(cov_ujyserows().s[39]++,new BrowserFileDeleteRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[40]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
47
- * Methode welche eine Datei umbenannt
48
- * @param apiurl URL zu API Service
49
- * @param path Pfad zum File welches umbenannt werden soll
50
- * @param newFilename Neuer Dateiname
51
- * @param allowedextensions Erlaubte Extension für Files
52
- */RenameFile(apiurl,path,newFilename,allowedextensions){cov_ujyserows().f[8]++;const url=(cov_ujyserows().s[41]++,`${apiurl}/renamefile`);cov_ujyserows().s[42]++;if(!path){cov_ujyserows().b[7][0]++;cov_ujyserows().s[43]++;path='';}else{cov_ujyserows().b[7][1]++;}const request=(cov_ujyserows().s[44]++,new BrowserFileRenameRequest({Path:path,NewFilename:newFilename,AllowedTypes:allowedextensions}));cov_ujyserows().s[45]++;return this.httpclient.put(url,request,{withCredentials:true});}}cov_ujyserows().s[46]++;SacDefaultFileBrowserService.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable});cov_ujyserows().s[47]++;SacDefaultFileBrowserService.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,providedIn:'root'});cov_ujyserows().s[48]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_ujyserows().f[9]++;cov_ujyserows().s[49]++;return[{type:i1.HttpClient}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBSXJGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRW5FOztHQUVHO0FBSUgsTUFBTSxPQUFnQiw2QkFBNkI7OzBIQUE3Qiw2QkFBNkI7OEhBQTdCLDZCQUE2QixjQUZyQyxNQUFNOzJGQUVFLDZCQUE2QjtrQkFIbEQsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBdUdEOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUE2QixTQUFRLDZCQUE2QjtJQUM3RTs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVEOzs7OztPQUtH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Q1YsV0FBVyxFQUFFLFdBQVc7WUFDeEIsWUFBWSxFQUFFLGlCQUFpQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7O3lIQWxPVSw0QkFBNEI7NkhBQTVCLDRCQUE0QixjQUYzQixNQUFNOzJGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXJlc3BvbnNlJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlc2F2ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZW5ld3JlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlbmFtZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xuaW1wb3J0IHsgSUJyb3dzZXJOb2RlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlcmVzcG9uc2UnO1xuaW1wb3J0IHsgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ZpbGVCcm93c2VyU2VydmljZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIFRva2VuIGbDvHIgTGFuZ3VhZ2UgU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgU0FDRklMRUJST1dTRVJfU0VSVklDRSA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlPignRmlsZUJyb3dzZXJTZXJ2aWNlJyk7XG5cbi8qKlxuICogQWJzdHJha3RlIEltcGxlbWVudGllcnVuZyBkZXMgRmlsZSBTZXJ2aWNlIGbDvHIgZGllIEJyb3dzZXIgQ29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZVxuICBpbXBsZW1lbnRzIElTYWNGaWxlQnJvd3NlclNlcnZpY2VcbntcbiAgLyoqXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGUgd2VsY2hlciBhbmdlZm9yZGVydCB3aXJkXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cbiAgICovXG4gIGFic3RyYWN0IEdldE5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkZXIgTm9kZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOYW1lIGRlcyBuZXVlbiBOb2Rlc1xuICAgKi9cbiAgYWJzdHJhY3QgU2F2ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogUmVuYW1lIGVpbmVzIE5vZGVzXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldWVyIE5hbWUgZGVzIE5vZGVzXG4gICAqL1xuICBhYnN0cmFjdCBSZW5hbWVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKi9cbiAgYWJzdHJhY3QgRGVsZXRlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIE1ldGhvZGUgd2VsY2hlIGRpZSBEYXRlaWVuIGVpbmVzIE5vZGVzIGF1c2xpZXN0XG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIGluIHdlbGNoZW0gZGllIEZpbGVzIGdlbGVzZW4gd2VyZGVuIHNvbGxlblxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRmlsZSBFeHRlbnNpb25zXG4gICAqL1xuICBhYnN0cmFjdCBHZXRGaWxlcyhcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGFzIG5ldWUgRmlsZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBkZW4gVXBsb2FkXG4gICAqL1xuICBhYnN0cmFjdCBTYXZlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBlaW5lIERhdGVpIHVtYmVuYW5udFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIHp1bSBGaWxlIHdlbGNoZXMgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXVlciBEYXRlaW5hbWVcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbiBmw7xyIEZpbGVzXG4gICAqL1xuICBhYnN0cmFjdCBSZW5hbWVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZSBEYXRlaVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIEZpbGVzXG4gICAqL1xuICBhYnN0cmFjdCBEZWxldGVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xufVxuXG4vKipcbiAqIFN0YW5kYXJkaW1wbGVtZW50aWVydW5nIGRlcyBCYWNrZW5kIFNlcnZpY2UgZsO8ciBkaWUgRmlsZSBCcm93c2VyIENvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEtvbnN0cnVrdG9yXG4gICAqIEBwYXJhbSBodHRwY2xpZW50IEhUVFAgQ2xpZW50IFNlcnZpY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2lidCBlaW5lbiBOb2RlIHp1csO8Y2tcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZSB3ZWxjaGVyIGFuZ2Vmb3JkZXJ0IHdpcmRcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZGllIGFuZ2V6ZWlndCB3ZXJkZW4gZMO8cmZlblxuICAgKi9cbiAgcHVibGljIEdldE5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkZXIgTm9kZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOYW1lIGRlcyBuZXVlbiBOb2Rlc1xuICAgKi9cbiAgcHVibGljIFNhdmVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vbmV3bm9kZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgTmV3Rm9sZGVybmFtZTogbmV3Rm9sZGVybmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuYW1lIGVpbmVzIE5vZGVzXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldWVyIE5hbWUgZGVzIE5vZGVzXG4gICAqL1xuICBwdWJsaWMgUmVuYW1lTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnB1dDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTMO2c2NodCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXG4gICAqL1xuICBwdWJsaWMgRGVsZXRlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlbm9kZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgRGF0ZWllbiBlaW5lcyBOb2RlcyBhdXNsaWVzdFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xuICAgKi9cbiAgcHVibGljIEdldEZpbGVzKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZSBIb2NoZ2VsYWRlbmUgRGF0ZWkgaW4gZGVyIFN0cnVrdHVyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkYXMgbmV1ZSBGaWxlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBpZCBJRCBkZXMgVXBsb2Fkc1xuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBTYXZlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3VwbG9hZGZpbGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBVcGxvYWRJZDogaWQsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmUgRGF0ZWlcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgRmlsZXMgd2VsY2hlcyBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBGaWxlc1xuICAgKi9cbiAgcHVibGljIERlbGV0ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCB6dW0gRmlsZSB3ZWxjaGVzIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xuICAgKi9cbiAgcHVibGljIFJlbmFtZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZpbGVuYW1lOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVmaWxlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBOZXdGaWxlbmFtZTogbmV3RmlsZW5hbWUsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmplY3RhYmxlIiwiSW5qZWN0aW9uVG9rZW4iLCJCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QiLCJCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QiLCJCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZXF1ZXN0IiwiU0FDRklMRUJST1dTRVJfU0VSVklDRSIsImNvdl91anlzZXJvd3MiLCJzIiwiU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2UiLCJkZXBzIiwidGFyZ2V0IiwiaTAiLCLJtcm1RmFjdG9yeVRhcmdldCIsInByb3ZpZGVkSW4iLCJkZWNvcmF0b3JzIiwiU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSIsImNvbnN0cnVjdG9yIiwiaHR0cGNsaWVudCIsImYiLCJHZXROb2RlIiwiYXBpdXJsIiwicGF0aCIsImFsbG93ZWRleHRlbnNpb25zIiwidXJsIiwiYiIsInJlcXVlc3QiLCJQYXRoIiwiQWxsb3dlZFR5cGVzIiwicG9zdCIsIndpdGhDcmVkZW50aWFscyIsIlNhdmVOb2RlIiwibmV3Rm9sZGVybmFtZSIsIk5ld0ZvbGRlcm5hbWUiLCJSZW5hbWVOb2RlIiwicHV0IiwiRGVsZXRlTm9kZSIsIkdldEZpbGVzIiwiU2F2ZUZpbGUiLCJpZCIsIlVwbG9hZElkIiwiRGVsZXRlRmlsZSIsIlJlbmFtZUZpbGUiLCJuZXdGaWxlbmFtZSIsIk5ld0ZpbGVuYW1lIiwidG9rZW4iLCJpMSIsIkh0dHBDbGllbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXJlc3BvbnNlJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlc2F2ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZW5ld3JlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlbmFtZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xuaW1wb3J0IHsgSUJyb3dzZXJOb2RlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlcmVzcG9uc2UnO1xuaW1wb3J0IHsgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ZpbGVCcm93c2VyU2VydmljZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIFRva2VuIGbDvHIgTGFuZ3VhZ2UgU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgU0FDRklMRUJST1dTRVJfU0VSVklDRSA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlPignRmlsZUJyb3dzZXJTZXJ2aWNlJyk7XG5cbi8qKlxuICogQWJzdHJha3RlIEltcGxlbWVudGllcnVuZyBkZXMgRmlsZSBTZXJ2aWNlIGbDvHIgZGllIEJyb3dzZXIgQ29tcG9uZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZVxuICBpbXBsZW1lbnRzIElTYWNGaWxlQnJvd3NlclNlcnZpY2VcbntcbiAgLyoqXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGUgd2VsY2hlciBhbmdlZm9yZGVydCB3aXJkXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cbiAgICovXG4gIGFic3RyYWN0IEdldE5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkZXIgTm9kZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOYW1lIGRlcyBuZXVlbiBOb2Rlc1xuICAgKi9cbiAgYWJzdHJhY3QgU2F2ZU5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogUmVuYW1lIGVpbmVzIE5vZGVzXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldWVyIE5hbWUgZGVzIE5vZGVzXG4gICAqL1xuICBhYnN0cmFjdCBSZW5hbWVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyB3ZWxjaGVyIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKi9cbiAgYWJzdHJhY3QgRGVsZXRlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIE1ldGhvZGUgd2VsY2hlIGRpZSBEYXRlaWVuIGVpbmVzIE5vZGVzIGF1c2xpZXN0XG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIGluIHdlbGNoZW0gZGllIEZpbGVzIGdlbGVzZW4gd2VyZGVuIHNvbGxlblxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRmlsZSBFeHRlbnNpb25zXG4gICAqL1xuICBhYnN0cmFjdCBHZXRGaWxlcyhcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcblxuICAvKipcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGluIHdlbGNoZW0gZGFzIG5ldWUgRmlsZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBkZW4gVXBsb2FkXG4gICAqL1xuICBhYnN0cmFjdCBTYXZlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBlaW5lIERhdGVpIHVtYmVuYW5udFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIHp1bSBGaWxlIHdlbGNoZXMgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXVlciBEYXRlaW5hbWVcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbiBmw7xyIEZpbGVzXG4gICAqL1xuICBhYnN0cmFjdCBSZW5hbWVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgLyoqXG4gICAqIEzDtnNjaHQgZWluZSBEYXRlaVxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIEZpbGVzXG4gICAqL1xuICBhYnN0cmFjdCBEZWxldGVGaWxlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xufVxuXG4vKipcbiAqIFN0YW5kYXJkaW1wbGVtZW50aWVydW5nIGRlcyBCYWNrZW5kIFNlcnZpY2UgZsO8ciBkaWUgRmlsZSBCcm93c2VyIENvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEtvbnN0cnVrdG9yXG4gICAqIEBwYXJhbSBodHRwY2xpZW50IEhUVFAgQ2xpZW50IFNlcnZpY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2lidCBlaW5lbiBOb2RlIHp1csO8Y2tcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZSB3ZWxjaGVyIGFuZ2Vmb3JkZXJ0IHdpcmRcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZGllIGFuZ2V6ZWlndCB3ZXJkZW4gZMO8cmZlblxuICAgKi9cbiAgcHVibGljIEdldE5vZGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWljaGVydCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkZXIgTm9kZSBnZXNwZWljaGVydCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOYW1lIGRlcyBuZXVlbiBOb2Rlc1xuICAgKi9cbiAgcHVibGljIFNhdmVOb2RlKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vbmV3bm9kZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgTmV3Rm9sZGVybmFtZTogbmV3Rm9sZGVybmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuYW1lIGVpbmVzIE5vZGVzXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgdW1iZW5hbm50IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5ldWVyIE5hbWUgZGVzIE5vZGVzXG4gICAqL1xuICBwdWJsaWMgUmVuYW1lTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgUGF0aDogcGF0aCxcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnB1dDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTMO2c2NodCBlaW5lbiBOb2RlXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXG4gICAqL1xuICBwdWJsaWMgRGVsZXRlTm9kZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlbm9kZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgRGF0ZWllbiBlaW5lcyBOb2RlcyBhdXNsaWVzdFxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xuICAgKi9cbiAgcHVibGljIEdldEZpbGVzKFxuICAgIGFwaXVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVpY2hlcnQgZWluZSBIb2NoZ2VsYWRlbmUgRGF0ZWkgaW4gZGVyIFN0cnVrdHVyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgaW4gd2VsY2hlbSBkYXMgbmV1ZSBGaWxlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXG4gICAqIEBwYXJhbSBpZCBJRCBkZXMgVXBsb2Fkc1xuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBTYXZlRmlsZShcbiAgICBhcGl1cmw6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3VwbG9hZGZpbGVgO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICBwYXRoID0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBVcGxvYWRJZDogaWQsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMw7ZzY2h0IGVpbmUgRGF0ZWlcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgRmlsZXMgd2VsY2hlcyBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbnMgZsO8ciBGaWxlc1xuICAgKi9cbiAgcHVibGljIERlbGV0ZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGggPSAnJztcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XG4gICAgICBQYXRoOiBwYXRoLFxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcbiAgICogQHBhcmFtIHBhdGggUGZhZCB6dW0gRmlsZSB3ZWxjaGVzIHVtYmVuYW5udCB3ZXJkZW4gc29sbFxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xuICAgKi9cbiAgcHVibGljIFJlbmFtZUZpbGUoXG4gICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG5ld0ZpbGVuYW1lOiBzdHJpbmcsXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9yZW5hbWVmaWxlYDtcblxuICAgIGlmICghcGF0aCkge1xuICAgICAgcGF0aCA9ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVSZW5hbWVSZXF1ZXN0KHtcbiAgICAgIFBhdGg6IHBhdGgsXG4gICAgICBOZXdGaWxlbmFtZTogbmV3RmlsZW5hbWUsXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7eUZBQ0EsT0FBU0EsVUFBVSxDQUFFQyxjQUFjLEtBQVEsZUFBZSxDQUUxRCxPQUFTQyx3QkFBd0IsS0FBUSx1REFBdUQsQ0FDaEcsT0FBU0Msd0JBQXdCLEtBQVEsdURBQXVELENBRWhHLE9BQVNDLHNCQUFzQixLQUFRLHFEQUFxRCxDQUM1RixPQUFTQyx3QkFBd0IsS0FBUSx1REFBdUQsQ0FDaEcsT0FBU0MscUJBQXFCLEtBQVEsb0RBQW9ELENBQzFGLE9BQVNDLHdCQUF3QixLQUFRLHVEQUF1RCxDQUNoRyxPQUFTQyxrQkFBa0IsS0FBUSxpREFBaUQsQyx5RUFJcEY7O0dBR0EsTUFBTyxNQUFNLENBQUFDLHNCQUFzQixFQUFBQyxhQUFBLEdBQUFDLENBQUEsTUFDakMsR0FBSSxDQUFBVixjQUFjLENBQXlCLG9CQUFvQixDQUFDLEVBRWxFOztHQU1BLE1BQU0sTUFBZ0IsQ0FBQVcsNkJBQTZCLEUsdUlBQTdCQSw2QkFBNkIsQ0FBQUMsSUFBQSxJQUFBQyxNQUFBLENBQUFDLEVBQUEsQ0FBQUMsZUFBQSxDQUFBaEIsVUFBQSxHQUFBVSxhQUFBLEdBQUFDLENBQUEsTSxvSEFBN0JDLDZCQUE2QixDQUFBSyxVQUFBLENBRnJDLE1BQU0sR0FBQVAsYUFBQSxHQUFBQyxDQUFBLE0sbUZBRUVDLDZCQUE2QixDQUFBTSxVQUFBLEcsS0FIbERsQixVQUFVLEMsTUFBQyxDQUNWaUIsVUFBVSxDQUFFLE0sQ0FDYixDLEtBdUdEOztHQU1BLE1BQU0sTUFBTyxDQUFBRSw0QkFBNkIsUUFBUSxDQUFBUCw2QkFBNkIsQ0FDN0U7OztPQUlBUSxZQUFvQkMsVUFBc0IsRUFBQVgsYUFBQSxHQUFBWSxDQUFBLE1BQUFaLGFBQUEsR0FBQUMsQ0FBQSxNQUN4QyxLQUFLLEVBQUUsQ0FBQ0QsYUFBQSxHQUFBQyxDQUFBLE1BRFUsS0FBQVUsVUFBVSxDQUFWQSxVQUFVLENBRTlCLENBRUE7Ozs7O09BTU9FLE9BQU9BLENBQ1pDLE1BQWMsQ0FDZEMsSUFBWSxDQUNaQyxpQkFBeUIsRUFBQWhCLGFBQUEsR0FBQVksQ0FBQSxNQUV6QixLQUFNLENBQUFLLEdBQUcsRUFBQWpCLGFBQUEsR0FBQUMsQ0FBQSxNQUFHLEdBQUdhLE1BQU0sV0FBVyxFQUFDZCxhQUFBLEdBQUFDLENBQUEsTUFFakMsR0FBSSxDQUFDYyxJQUFJLENBQUUsQ0FBQWYsYUFBQSxHQUFBa0IsQ0FBQSxTQUFBbEIsYUFBQSxHQUFBQyxDQUFBLE1BQ1RjLElBQUksQ0FBRyxFQUFFLEMsQ0FDVixLQUFBZixhQUFBLEdBQUFrQixDQUFBLFVBRUQsS0FBTSxDQUFBQyxPQUFPLEVBQUFuQixhQUFBLEdBQUFDLENBQUEsTUFBRyxHQUFJLENBQUFILGtCQUFrQixDQUFDLENBQ3JDc0IsSUFBSSxDQUFFTCxJQUFJLENBQ1ZNLFlBQVksQ0FBRUwsaUIsQ0FDZixDQUFDLEVBQUNoQixhQUFBLEdBQUFDLENBQUEsT0FFSCxNQUFPLEtBQUksQ0FBQ1UsVUFBVSxDQUFDVyxJQUFJLENBQXVCTCxHQUFHLENBQUVFLE9BQU8sQ0FBRSxDQUM5REksZUFBZSxDQUFFLEksQ0FDbEIsQ0FBQyxDQUNKLENBRUE7Ozs7O09BTU9DLFFBQVFBLENBQ2JWLE1BQWMsQ0FDZEMsSUFBWSxDQUNaVSxhQUFxQixFQUFBekIsYUFBQSxHQUFBWSxDQUFBLE1BRXJCLEtBQU0sQ0FBQUssR0FBRyxFQUFBakIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBR2EsTUFBTSxVQUFVLEVBQUNkLGFBQUEsR0FBQUMsQ0FBQSxPQUVoQyxHQUFJLENBQUNjLElBQUksQ0FBRSxDQUFBZixhQUFBLEdBQUFrQixDQUFBLFNBQUFsQixhQUFBLEdBQUFDLENBQUEsT0FDVGMsSUFBSSxDQUFHLEVBQUUsQyxDQUNWLEtBQUFmLGFBQUEsR0FBQWtCLENBQUEsVUFFRCxLQUFNLENBQUFDLE9BQU8sRUFBQW5CLGFBQUEsR0FBQUMsQ0FBQSxPQUFHLEdBQUksQ0FBQUwscUJBQXFCLENBQUMsQ0FDeEN3QixJQUFJLENBQUVMLElBQUksQ0FDVlcsYUFBYSxDQUFFRCxhLENBQ2hCLENBQUMsRUFBQ3pCLGFBQUEsR0FBQUMsQ0FBQSxPQUVILE1BQU8sS0FBSSxDQUFDVSxVQUFVLENBQUNXLElBQUksQ0FBdUJMLEdBQUcsQ0FBRUUsT0FBTyxDQUFFLENBQzlESSxlQUFlLENBQUUsSSxDQUNsQixDQUFDLENBQ0osQ0FFQTs7Ozs7T0FNT0ksVUFBVUEsQ0FDZmIsTUFBYyxDQUNkQyxJQUFZLENBQ1pVLGFBQXFCLEVBQUF6QixhQUFBLEdBQUFZLENBQUEsTUFFckIsS0FBTSxDQUFBSyxHQUFHLEVBQUFqQixhQUFBLEdBQUFDLENBQUEsT0FBRyxHQUFHYSxNQUFNLGFBQWEsRUFBQ2QsYUFBQSxHQUFBQyxDQUFBLE9BRW5DLEdBQUksQ0FBQ2MsSUFBSSxDQUFFLENBQUFmLGFBQUEsR0FBQWtCLENBQUEsU0FBQWxCLGFBQUEsR0FBQUMsQ0FBQSxPQUNUYyxJQUFJLENBQUcsRUFBRSxDLENBQ1YsS0FBQWYsYUFBQSxHQUFBa0IsQ0FBQSxVQUVELEtBQU0sQ0FBQUMsT0FBTyxFQUFBbkIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBSSxDQUFBSix3QkFBd0IsQ0FBQyxDQUMzQ3VCLElBQUksQ0FBRUwsSUFBSSxDQUNWVyxhQUFhLENBQUVELGEsQ0FDaEIsQ0FBQyxFQUFDekIsYUFBQSxHQUFBQyxDQUFBLE9BRUgsTUFBTyxLQUFJLENBQUNVLFVBQVUsQ0FBQ2lCLEdBQUcsQ0FBdUJYLEdBQUcsQ0FBRUUsT0FBTyxDQUFFLENBQzdESSxlQUFlLENBQUUsSSxDQUNsQixDQUFDLENBQ0osQ0FFQTs7OztPQUtPTSxVQUFVQSxDQUNmZixNQUFjLENBQ2RDLElBQVksRUFBQWYsYUFBQSxHQUFBWSxDQUFBLE1BRVosS0FBTSxDQUFBSyxHQUFHLEVBQUFqQixhQUFBLEdBQUFDLENBQUEsT0FBRyxHQUFHYSxNQUFNLGFBQWEsRUFBQ2QsYUFBQSxHQUFBQyxDQUFBLE9BRW5DLEdBQUksQ0FBQ2MsSUFBSSxDQUFFLENBQUFmLGFBQUEsR0FBQWtCLENBQUEsU0FBQWxCLGFBQUEsR0FBQUMsQ0FBQSxPQUNUYyxJQUFJLENBQUcsRUFBRSxDLENBQ1YsS0FBQWYsYUFBQSxHQUFBa0IsQ0FBQSxVQUVELEtBQU0sQ0FBQUMsT0FBTyxFQUFBbkIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBSSxDQUFBTix3QkFBd0IsQ0FBQyxDQUMzQ3lCLElBQUksQ0FBRUwsSSxDQUNQLENBQUMsRUFBQ2YsYUFBQSxHQUFBQyxDQUFBLE9BRUgsTUFBTyxLQUFJLENBQUNVLFVBQVUsQ0FBQ1csSUFBSSxDQUF1QkwsR0FBRyxDQUFFRSxPQUFPLENBQUUsQ0FDOURJLGVBQWUsQ0FBRSxJLENBQ2xCLENBQUMsQ0FDSixDQUVBOzs7OztPQU1PTyxRQUFRQSxDQUNiaEIsTUFBYyxDQUNkQyxJQUFZLENBQ1pDLGlCQUF5QixFQUFBaEIsYUFBQSxHQUFBWSxDQUFBLE1BRXpCLEtBQU0sQ0FBQUssR0FBRyxFQUFBakIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBR2EsTUFBTSxXQUFXLEVBQUNkLGFBQUEsR0FBQUMsQ0FBQSxPQUVqQyxHQUFJLENBQUNjLElBQUksQ0FBRSxDQUFBZixhQUFBLEdBQUFrQixDQUFBLFNBQUFsQixhQUFBLEdBQUFDLENBQUEsT0FDVGMsSUFBSSxDQUFHLEVBQUUsQyxDQUNWLEtBQUFmLGFBQUEsR0FBQWtCLENBQUEsVUFFRCxLQUFNLENBQUFDLE9BQU8sRUFBQW5CLGFBQUEsR0FBQUMsQ0FBQSxPQUFHLEdBQUksQ0FBQUgsa0JBQWtCLENBQUMsQ0FDckNzQixJQUFJLENBQUVMLElBQUksQ0FDVk0sWUFBWSxDQUFFTCxpQixDQUNmLENBQUMsRUFBQ2hCLGFBQUEsR0FBQUMsQ0FBQSxPQUVILE1BQU8sS0FBSSxDQUFDVSxVQUFVLENBQUNXLElBQUksQ0FBdUJMLEdBQUcsQ0FBRUUsT0FBTyxDQUFFLENBQzlESSxlQUFlLENBQUUsSSxDQUNsQixDQUFDLENBQ0osQ0FFQTs7Ozs7O09BT09RLFFBQVFBLENBQ2JqQixNQUFjLENBQ2RDLElBQVksQ0FDWmlCLEVBQVUsQ0FDVmhCLGlCQUF5QixFQUFBaEIsYUFBQSxHQUFBWSxDQUFBLE1BRXpCLEtBQU0sQ0FBQUssR0FBRyxFQUFBakIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBR2EsTUFBTSxhQUFhLEVBQUNkLGFBQUEsR0FBQUMsQ0FBQSxPQUVuQyxHQUFJLENBQUNjLElBQUksQ0FBRSxDQUFBZixhQUFBLEdBQUFrQixDQUFBLFNBQUFsQixhQUFBLEdBQUFDLENBQUEsT0FDVGMsSUFBSSxDQUFHLEVBQUUsQyxDQUNWLEtBQUFmLGFBQUEsR0FBQWtCLENBQUEsVUFFRCxLQUFNLENBQUFDLE9BQU8sRUFBQW5CLGFBQUEsR0FBQUMsQ0FBQSxPQUFHLEdBQUksQ0FBQVAsc0JBQXNCLENBQUMsQ0FDekMwQixJQUFJLENBQUVMLElBQUksQ0FDVmtCLFFBQVEsQ0FBRUQsRUFBRSxDQUNaWCxZQUFZLENBQUVMLGlCLENBQ2YsQ0FBQyxFQUFDaEIsYUFBQSxHQUFBQyxDQUFBLE9BRUgsTUFBTyxLQUFJLENBQUNVLFVBQVUsQ0FBQ1csSUFBSSxDQUF1QkwsR0FBRyxDQUFFRSxPQUFPLENBQUUsQ0FDOURJLGVBQWUsQ0FBRSxJLENBQ2xCLENBQUMsQ0FDSixDQUVBOzs7OztPQU1PVyxVQUFVQSxDQUNmcEIsTUFBYyxDQUNkQyxJQUFZLENBQ1pDLGlCQUF5QixFQUFBaEIsYUFBQSxHQUFBWSxDQUFBLE1BRXpCLEtBQU0sQ0FBQUssR0FBRyxFQUFBakIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBR2EsTUFBTSxhQUFhLEVBQUNkLGFBQUEsR0FBQUMsQ0FBQSxPQUVuQyxHQUFJLENBQUNjLElBQUksQ0FBRSxDQUFBZixhQUFBLEdBQUFrQixDQUFBLFNBQUFsQixhQUFBLEdBQUFDLENBQUEsT0FDVGMsSUFBSSxDQUFHLEVBQUUsQyxDQUNWLEtBQUFmLGFBQUEsR0FBQWtCLENBQUEsVUFFRCxLQUFNLENBQUFDLE9BQU8sRUFBQW5CLGFBQUEsR0FBQUMsQ0FBQSxPQUFHLEdBQUksQ0FBQVQsd0JBQXdCLENBQUMsQ0FDM0M0QixJQUFJLENBQUVMLElBQUksQ0FDVk0sWUFBWSxDQUFFTCxpQixDQUNmLENBQUMsRUFBQ2hCLGFBQUEsR0FBQUMsQ0FBQSxPQUVILE1BQU8sS0FBSSxDQUFDVSxVQUFVLENBQUNXLElBQUksQ0FBdUJMLEdBQUcsQ0FBRUUsT0FBTyxDQUFFLENBQzlESSxlQUFlLENBQUUsSSxDQUNsQixDQUFDLENBQ0osQ0FFQTs7Ozs7O09BT09ZLFVBQVVBLENBQ2ZyQixNQUFjLENBQ2RDLElBQVksQ0FDWnFCLFdBQW1CLENBQ25CcEIsaUJBQXlCLEVBQUFoQixhQUFBLEdBQUFZLENBQUEsTUFFekIsS0FBTSxDQUFBSyxHQUFHLEVBQUFqQixhQUFBLEdBQUFDLENBQUEsT0FBRyxHQUFHYSxNQUFNLGFBQWEsRUFBQ2QsYUFBQSxHQUFBQyxDQUFBLE9BRW5DLEdBQUksQ0FBQ2MsSUFBSSxDQUFFLENBQUFmLGFBQUEsR0FBQWtCLENBQUEsU0FBQWxCLGFBQUEsR0FBQUMsQ0FBQSxPQUNUYyxJQUFJLENBQUcsRUFBRSxDLENBQ1YsS0FBQWYsYUFBQSxHQUFBa0IsQ0FBQSxVQUVELEtBQU0sQ0FBQUMsT0FBTyxFQUFBbkIsYUFBQSxHQUFBQyxDQUFBLE9BQUcsR0FBSSxDQUFBUix3QkFBd0IsQ0FBQyxDQUMzQzJCLElBQUksQ0FBRUwsSUFBSSxDQUNWc0IsV0FBVyxDQUFFRCxXQUFXLENBQ3hCZixZQUFZLENBQUVMLGlCLENBQ2YsQ0FBQyxFQUFDaEIsYUFBQSxHQUFBQyxDQUFBLE9BRUgsTUFBTyxLQUFJLENBQUNVLFVBQVUsQ0FBQ2lCLEdBQUcsQ0FBdUJYLEdBQUcsQ0FBRUUsT0FBTyxDQUFFLENBQzdESSxlQUFlLENBQUUsSSxDQUNsQixDQUFDLENBQ0osQyx3SUFsT1dkLDRCQUE0QixDQUFBTixJQUFBLEdBQUFtQyxLQUFBLENBQUFDLEVBQUEsQ0FBQUMsVUFBQSxHQUFBcEMsTUFBQSxDQUFBQyxFQUFBLENBQUFDLGVBQUEsQ0FBQWhCLFVBQUEsR0FBQVUsYUFBQSxHQUFBQyxDQUFBLE8sbUhBQTVCUSw0QkFBNEIsQ0FBQUYsVUFBQSxDQUYzQixNQUFNLEdBQUFQLGFBQUEsR0FBQUMsQ0FBQSxPLG1GQUVQUSw0QkFBNEIsQ0FBQUQsVUFBQSxHLEtBSHhDbEIsVUFBVSxDLE1BQUMsQ0FDVmlCLFVBQVUsQ0FBRSxNLENBQ2IsQyIsImlnbm9yZUxpc3QiOltdfQ==
15
+ */constructor(httpclient){cov_ujyserows().f[0]++;cov_ujyserows().s[4]++;super();cov_ujyserows().s[5]++;this.httpclient=httpclient;}// #endregion Constructors
16
+ // #region Public Methods
17
+ /**
18
+ * Deletes a file
19
+ * @param apiurl URL to API Service
20
+ * @param path Path of the file to be deleted
21
+ * @param allowedextensions Allowed extensions for files
22
+ * @returns Observable containing the file response after deletion
23
+ */DeleteFile(apiurl,path,allowedextensions){cov_ujyserows().f[1]++;const url=(cov_ujyserows().s[6]++,`${apiurl}/deletefile`);cov_ujyserows().s[7]++;if(!path){cov_ujyserows().b[0][0]++;cov_ujyserows().s[8]++;path='';}else{cov_ujyserows().b[0][1]++;}const request=(cov_ujyserows().s[9]++,new BrowserFileDeleteRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[10]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
24
+ * Deletes a node
25
+ * @param apiurl URL to API Service
26
+ * @param path Path of the node to be deleted
27
+ * @returns Observable containing the node response after deletion
28
+ */DeleteNode(apiurl,path){cov_ujyserows().f[2]++;const url=(cov_ujyserows().s[11]++,`${apiurl}/deletenode`);cov_ujyserows().s[12]++;if(!path){cov_ujyserows().b[1][0]++;cov_ujyserows().s[13]++;path='';}else{cov_ujyserows().b[1][1]++;}const request=(cov_ujyserows().s[14]++,new BrowserNodeDeleteRequest({Path:path}));cov_ujyserows().s[15]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
29
+ * Method that reads the files of a node
30
+ * @param apiurl URL to API Service
31
+ * @param path Path of the node from which the files should be read
32
+ * @param allowedextensions Allowed file extensions
33
+ * @returns Observable containing the file response
34
+ */GetFiles(apiurl,path,allowedextensions){cov_ujyserows().f[3]++;const url=(cov_ujyserows().s[16]++,`${apiurl}/getfiles`);cov_ujyserows().s[17]++;if(!path){cov_ujyserows().b[2][0]++;cov_ujyserows().s[18]++;path='';}else{cov_ujyserows().b[2][1]++;}const request=(cov_ujyserows().s[19]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[20]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
35
+ * Returns a node
36
+ * @param apiurl URL to API Service
37
+ * @param path Path of the node being requested
38
+ * @param allowedextensions Allowed extensions that may be displayed
39
+ * @returns Observable containing the node response
40
+ */GetNode(apiurl,path,allowedextensions){cov_ujyserows().f[4]++;const url=(cov_ujyserows().s[21]++,`${apiurl}/getnodes`);cov_ujyserows().s[22]++;if(!path){cov_ujyserows().b[3][0]++;cov_ujyserows().s[23]++;path='';}else{cov_ujyserows().b[3][1]++;}const request=(cov_ujyserows().s[24]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_ujyserows().s[25]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
41
+ * Method that renames a file
42
+ * @param apiurl URL to API Service
43
+ * @param path Path to the file to be renamed
44
+ * @param newFilename New filename
45
+ * @param allowedextensions Allowed extension for files
46
+ * @returns Observable containing the file response after rename
47
+ */RenameFile(apiurl,path,newFilename,allowedextensions){cov_ujyserows().f[5]++;const url=(cov_ujyserows().s[26]++,`${apiurl}/renamefile`);cov_ujyserows().s[27]++;if(!path){cov_ujyserows().b[4][0]++;cov_ujyserows().s[28]++;path='';}else{cov_ujyserows().b[4][1]++;}const request=(cov_ujyserows().s[29]++,new BrowserFileRenameRequest({Path:path,NewFilename:newFilename,AllowedTypes:allowedextensions}));cov_ujyserows().s[30]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
48
+ * Rename a node
49
+ * @param apiurl URL to API Service
50
+ * @param path Path of the node to be renamed
51
+ * @param newFoldername New name of the node
52
+ * @returns Observable containing the node response after rename
53
+ */RenameNode(apiurl,path,newFoldername){cov_ujyserows().f[6]++;const url=(cov_ujyserows().s[31]++,`${apiurl}/renamenode`);cov_ujyserows().s[32]++;if(!path){cov_ujyserows().b[5][0]++;cov_ujyserows().s[33]++;path='';}else{cov_ujyserows().b[5][1]++;}const request=(cov_ujyserows().s[34]++,new BrowserNodeRenameRequest({Path:path,NewFoldername:newFoldername}));cov_ujyserows().s[35]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
54
+ * Saves an uploaded file in the structure
55
+ * @param apiurl URL to API Service
56
+ * @param path Path where the new file should be saved
57
+ * @param id ID of the upload
58
+ * @param allowedextensions Allowed extensions for the upload
59
+ * @returns Observable containing the file response after save
60
+ */SaveFile(apiurl,path,id,allowedextensions){cov_ujyserows().f[7]++;const url=(cov_ujyserows().s[36]++,`${apiurl}/uploadfile`);cov_ujyserows().s[37]++;if(!path){cov_ujyserows().b[6][0]++;cov_ujyserows().s[38]++;path='';}else{cov_ujyserows().b[6][1]++;}const request=(cov_ujyserows().s[39]++,new BrowserFileSaveRequest({Path:path,UploadId:id,AllowedTypes:allowedextensions}));cov_ujyserows().s[40]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
61
+ * Saves a node
62
+ * @param apiurl URL to API Service
63
+ * @param path Path where the node should be saved
64
+ * @param newFoldername Name of the new node
65
+ * @returns Observable containing the node response after save
66
+ */SaveNode(apiurl,path,newFoldername){cov_ujyserows().f[8]++;const url=(cov_ujyserows().s[41]++,`${apiurl}/newnode`);cov_ujyserows().s[42]++;if(!path){cov_ujyserows().b[7][0]++;cov_ujyserows().s[43]++;path='';}else{cov_ujyserows().b[7][1]++;}const request=(cov_ujyserows().s[44]++,new BrowserNodeNewRequest({Path:path,NewFoldername:newFoldername}));cov_ujyserows().s[45]++;return this.httpclient.post(url,request,{withCredentials:true});}}cov_ujyserows().s[46]++;SacDefaultFileBrowserService.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable});cov_ujyserows().s[47]++;SacDefaultFileBrowserService.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,providedIn:'root'});cov_ujyserows().s[48]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_ujyserows().f[9]++;cov_ujyserows().s[49]++;return[{type:i1.HttpClient}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlyRixPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNELG9CQUFvQjtBQUVwQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRXZHLHVCQUF1QjtBQUV2QiwyQkFBMkI7QUFFM0I7O0dBRUc7QUFJSCxNQUFNLE9BQWdCLDZCQUE2Qjs7MEhBQTdCLDZCQUE2Qjs4SEFBN0IsNkJBQTZCLGNBRm5DLE1BQU07MkZBRUEsNkJBQTZCO2tCQUhsRCxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUFzRkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsNkJBQTZCO0lBQzNFLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN0QyxLQUFLLEVBQUUsQ0FB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QUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztZQUN0QyxJQUFJLEVBQUUsSUFBSTtZQUNWLGFBQWEsRUFBRSxhQUFhO1NBQy9CLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDNUQsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7eUhBek5RLDRCQUE0Qjs2SEFBNUIsNEJBQTRCLGNBRnpCLE1BQU07MkZBRVQsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXJlc3BvbnNlJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlc2F2ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZW5ld3JlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlbmFtZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xuaW1wb3J0IHsgSUJyb3dzZXJOb2RlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlcmVzcG9uc2UnO1xuaW1wb3J0IHsgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ZpbGVCcm93c2VyU2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBJbmplY3Rpb24gVG9rZW4gZm9yIExhbmd1YWdlIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBBYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmlsZSBzZXJ2aWNlIGZvciB0aGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2UgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkZWxldGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgRGVsZXRlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHJlYWRzIHRoZSBmaWxlcyBvZiBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgZnJvbSB3aGljaCB0aGUgZmlsZXMgc2hvdWxkIGJlIHJlYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RmlsZXMoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgYmVpbmcgcmVxdWVzdGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyB0aGF0IG1heSBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0Tm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZW5hbWVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgZmlsZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldyBmaWxlbmFtZVxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbiBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lTm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBuZXdGb2xkZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGFuIHVwbG9hZGVkIGZpbGUgaW4gdGhlIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB3aGVyZSB0aGUgbmV3IGZpbGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB1cGxvYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciB0aGUgdXBsb2FkXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFNhdmVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggd2hlcmUgdGhlIG5vZGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBvZiB0aGUgbmV3IG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogU3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGJhY2tlbmQgc2VydmljZSBmb3IgdGhlIGZpbGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gaHR0cGNsaWVudCBIVFRQIENsaWVudCBTZXJ2aWNlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwY2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBmaWxlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRlbGV0ZWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciBmaWxlc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmlsZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVGaWxlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbm9kZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlbm9kZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZWFkcyB0aGUgZmlsZXMgb2YgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGZyb20gd2hpY2ggdGhlIGZpbGVzIHNob3VsZCBiZSByZWFkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZmlsZSBleHRlbnNpb25zXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldEZpbGVzKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0ZmlsZXNgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGJlaW5nIHJlcXVlc3RlZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgdGhhdCBtYXkgYmUgZGlzcGxheWVkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldE5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9nZXRub2Rlc2A7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcmVuYW1lcyBhIGZpbGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIGZpbGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXcgZmlsZW5hbWVcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb24gZm9yIGZpbGVzXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlIGFmdGVyIHJlbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBSZW5hbWVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZWZpbGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIG5vZGUgcmVzcG9uc2UgYWZ0ZXIgcmVuYW1lXG4gICAgICovXG4gICAgcHVibGljIFJlbmFtZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYW4gdXBsb2FkZWQgZmlsZSBpbiB0aGUgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBuZXcgZmlsZSBzaG91bGQgYmUgc2F2ZWRcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHVwbG9hZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgZm9yIHRoZSB1cGxvYWRcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZpbGUgcmVzcG9uc2UgYWZ0ZXIgc2F2ZVxuICAgICAqL1xuICAgIHB1YmxpYyBTYXZlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgVXBsb2FkSWQ6IGlkLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBub2RlIHNob3VsZCBiZSBzYXZlZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5hbWUgb2YgdGhlIG5ldyBub2RlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlIGFmdGVyIHNhdmVcbiAgICAgKi9cbiAgICBwdWJsaWMgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L25ld25vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZU5ld1JlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXX0=
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfdWp5c2Vyb3dzIiwiYWN0dWFsQ292ZXJhZ2UiLCJCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QiLCJCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QiLCJCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZXF1ZXN0IiwiSW5qZWN0YWJsZSIsIkluamVjdGlvblRva2VuIiwiU0FDRklMRUJST1dTRVJfU0VSVklDRSIsInMiLCJTYWNBYnN0cmFjdEZpbGVCcm93c2VyU2VydmljZSIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwicHJvdmlkZWRJbiIsImRlY29yYXRvcnMiLCJTYWNEZWZhdWx0RmlsZUJyb3dzZXJTZXJ2aWNlIiwiY29uc3RydWN0b3IiLCJodHRwY2xpZW50IiwiZiIsIkRlbGV0ZUZpbGUiLCJhcGl1cmwiLCJwYXRoIiwiYWxsb3dlZGV4dGVuc2lvbnMiLCJ1cmwiLCJiIiwicmVxdWVzdCIsIlBhdGgiLCJBbGxvd2VkVHlwZXMiLCJwb3N0Iiwid2l0aENyZWRlbnRpYWxzIiwiRGVsZXRlTm9kZSIsIkdldEZpbGVzIiwiR2V0Tm9kZSIsIlJlbmFtZUZpbGUiLCJuZXdGaWxlbmFtZSIsIk5ld0ZpbGVuYW1lIiwicHV0IiwiUmVuYW1lTm9kZSIsIm5ld0ZvbGRlcm5hbWUiLCJOZXdGb2xkZXJuYW1lIiwiU2F2ZUZpbGUiLCJpZCIsIlVwbG9hZElkIiwiU2F2ZU5vZGUiLCJ0b2tlbiIsImkxIiwiSHR0cENsaWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1maWxlYnJvd3Nlci5zZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVkZWxldGVyZXF1ZXN0JztcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcbmltcG9ydCB7IElCcm93c2VyRmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXJlc3BvbnNlJztcbmltcG9ydCB7IEJyb3dzZXJGaWxlU2F2ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlc2F2ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZW5ld3JlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlbmFtZXJlcXVlc3QnO1xuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xuaW1wb3J0IHsgSUJyb3dzZXJOb2RlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlcmVzcG9uc2UnO1xuaW1wb3J0IHsgSVNhY0ZpbGVCcm93c2VyU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0ZpbGVCcm93c2VyU2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBJbmplY3Rpb24gVG9rZW4gZm9yIExhbmd1YWdlIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0ZJTEVCUk9XU0VSX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBBYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmlsZSBzZXJ2aWNlIGZvciB0aGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2UgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkZWxldGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgRGVsZXRlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IHJlYWRzIHRoZSBmaWxlcyBvZiBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgZnJvbSB3aGljaCB0aGUgZmlsZXMgc2hvdWxkIGJlIHJlYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0RmlsZXMoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgYmVpbmcgcmVxdWVzdGVkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZXh0ZW5zaW9ucyB0aGF0IG1heSBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0Tm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZW5hbWVzIGEgZmlsZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgZmlsZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldyBmaWxlbmFtZVxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbiBmb3IgZmlsZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+O1xuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgUmVuYW1lTm9kZShhcGl1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBuZXdGb2xkZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPjtcblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGFuIHVwbG9hZGVkIGZpbGUgaW4gdGhlIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCB3aGVyZSB0aGUgbmV3IGZpbGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB1cGxvYWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciB0aGUgdXBsb2FkXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IFNhdmVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XG5cbiAgICAvKipcbiAgICAgKiBTYXZlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggd2hlcmUgdGhlIG5vZGUgc2hvdWxkIGJlIHNhdmVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBvZiB0aGUgbmV3IG5vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogU3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGJhY2tlbmQgc2VydmljZSBmb3IgdGhlIGZpbGUgYnJvd3NlciBjb21wb25lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdEZpbGVCcm93c2VyU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gaHR0cGNsaWVudCBIVFRQIENsaWVudCBTZXJ2aWNlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwY2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBmaWxlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRlbGV0ZWRcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb25zIGZvciBmaWxlc1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZmlsZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVGaWxlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIG5vZGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggb2YgdGhlIG5vZGUgdG8gYmUgZGVsZXRlZFxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgY29udGFpbmluZyB0aGUgbm9kZSByZXNwb25zZSBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBEZWxldGVOb2RlKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlbm9kZWA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlRGVsZXRlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCByZWFkcyB0aGUgZmlsZXMgb2YgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGZyb20gd2hpY2ggdGhlIGZpbGVzIHNob3VsZCBiZSByZWFkXG4gICAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEFsbG93ZWQgZmlsZSBleHRlbnNpb25zXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldEZpbGVzKGFwaXVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0ZmlsZXNgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBub2RlIGJlaW5nIHJlcXVlc3RlZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgdGhhdCBtYXkgYmUgZGlzcGxheWVkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIEdldE5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZyk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9nZXRub2Rlc2A7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgcmVuYW1lcyBhIGZpbGVcbiAgICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB0byBBUEkgU2VydmljZVxuICAgICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIGZpbGUgdG8gYmUgcmVuYW1lZFxuICAgICAqIEBwYXJhbSBuZXdGaWxlbmFtZSBOZXcgZmlsZW5hbWVcbiAgICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgQWxsb3dlZCBleHRlbnNpb24gZm9yIGZpbGVzXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBmaWxlIHJlc3BvbnNlIGFmdGVyIHJlbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBSZW5hbWVGaWxlKFxuICAgICAgICBhcGl1cmw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogc3RyaW5nLFxuICAgICAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXG4gICAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZWZpbGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcbiAgICAgICAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lIGEgbm9kZVxuICAgICAqIEBwYXJhbSBhcGl1cmwgVVJMIHRvIEFQSSBTZXJ2aWNlXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgbm9kZSB0byBiZSByZW5hbWVkXG4gICAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmV3IG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIG5vZGUgcmVzcG9uc2UgYWZ0ZXIgcmVuYW1lXG4gICAgICovXG4gICAgcHVibGljIFJlbmFtZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYW4gdXBsb2FkZWQgZmlsZSBpbiB0aGUgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBuZXcgZmlsZSBzaG91bGQgYmUgc2F2ZWRcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHVwbG9hZFxuICAgICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBBbGxvd2VkIGV4dGVuc2lvbnMgZm9yIHRoZSB1cGxvYWRcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGZpbGUgcmVzcG9uc2UgYWZ0ZXIgc2F2ZVxuICAgICAqL1xuICAgIHB1YmxpYyBTYXZlRmlsZShcbiAgICAgICAgYXBpdXJsOiBzdHJpbmcsXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcblxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XG4gICAgICAgICAgICBQYXRoOiBwYXRoLFxuICAgICAgICAgICAgVXBsb2FkSWQ6IGlkLFxuICAgICAgICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYSBub2RlXG4gICAgICogQHBhcmFtIGFwaXVybCBVUkwgdG8gQVBJIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIHdoZXJlIHRoZSBub2RlIHNob3VsZCBiZSBzYXZlZFxuICAgICAqIEBwYXJhbSBuZXdGb2xkZXJuYW1lIE5hbWUgb2YgdGhlIG5ldyBub2RlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBub2RlIHJlc3BvbnNlIGFmdGVyIHNhdmVcbiAgICAgKi9cbiAgICBwdWJsaWMgU2F2ZU5vZGUoYXBpdXJsOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgbmV3Rm9sZGVybmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L25ld25vZGVgO1xuXG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZU5ld1JlcXVlc3Qoe1xuICAgICAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXSwibWFwcGluZ3MiOiJzeXJCQXFCQTtBQUFBQSxhQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGFBQUEsR0FyQkEsT0FBU0Usd0JBQXdCLEtBQVEsdURBQXVELENBQ2hHLE9BQVNDLHdCQUF3QixLQUFRLHVEQUF1RCxDQUVoRyxPQUFTQyxzQkFBc0IsS0FBUSxxREFBcUQsQ0FDNUYsT0FBU0Msd0JBQXdCLEtBQVEsdURBQXVELENBQ2hHLE9BQVNDLHFCQUFxQixLQUFRLG9EQUFvRCxDQUMxRixPQUFTQyx3QkFBd0IsS0FBUSx1REFBdUQsQ0FDaEcsT0FBU0Msa0JBQWtCLEtBQVEsaURBQWlELENBSXBGLE9BQVNDLFVBQVUsQ0FBRUMsY0FBYyxLQUFRLGVBQWUsQyx5RUFHMUQ7QUFFQTs7R0FHQSxNQUFPLE1BQU0sQ0FBQUMsc0JBQXNCLEVBQUFYLGFBQUEsR0FBQVksQ0FBQSxNQUFHLEdBQUksQ0FBQUYsY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxFQUV0RztBQUVBO0FBRUE7O0dBTUEsTUFBTSxNQUFnQixDQUFBRyw2QkFBNkIsRSx1SUFBN0JBLDZCQUE2QixDQUFBQyxJQUFBLElBQUFDLE1BQUEsQ0FBQUMsRUFBQSxDQUFBQyxlQUFBLENBQUFSLFVBQUEsR0FBQVQsYUFBQSxHQUFBWSxD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
@@ -78,4 +78,4 @@ cov_nue9x92t=function(){return actualCoverage;};}return actualCoverage;}cov_nue9
78
78
  */get UploadComponentPauseIcon(){cov_nue9x92t().f[32]++;cov_nue9x92t().s[36]++;return'fa fa-pause';}/**
79
79
  * @inheritdoc
80
80
  */get UploadComponentUploadIcon(){cov_nue9x92t().f[33]++;cov_nue9x92t().s[37]++;return'fa fa-upload';}}cov_nue9x92t().s[38]++;SacDefaultIconService.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultIconService,deps:null,target:i0.ɵɵFactoryTarget.Injectable});cov_nue9x92t().s[39]++;SacDefaultIconService.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultIconService,providedIn:'root'});cov_nue9x92t().s[40]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacDefaultIconService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWljb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNELG9CQUFvQjtBQUVwQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsZ0JBQWdCLENBQUMsQ0FBQztBQUVyRix1QkFBdUI7QUFFdkIsMkJBQTJCO0FBRTNCOztHQUVHO0FBRUgsTUFBTSxPQUFnQixzQkFBc0I7O21IQUF0QixzQkFBc0I7dUhBQXRCLHNCQUFzQixjQURsQixNQUFNOzJGQUNWLHNCQUFzQjtrQkFEM0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBaUxsQzs7S0FFSztBQUVMLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUFDN0QscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyx3QkFBd0I7UUFDL0IsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQ0FBZ0M7UUFDdkMsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLCtCQUErQjtRQUN0QyxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLDZCQUE2QjtRQUNwQyxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLDhCQUE4QjtRQUNyQyxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElB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bnQiOlsiaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBpbmplY3Rpb24gdG9rZW4gZm9yIGNvbXBvbmVudCBpY29uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0lDT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjSWNvblNlcnZpY2U+KCdTYWNJY29uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgaWNvbiBwcm92aWRpbmcgaW4gY29tcG9uZW50c1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2UgaW1wbGVtZW50cyBJU2FjSWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEVkaXRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlck5ld0ljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb25maXJtRGVmYXVsdEltYWdlKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb250ZXh0TWVudU9wZW5JY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlVGltZUNvbXBvbmVudFNlbGVjdG9ySWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aFByZXZJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHZW5lcmljSGVscHRleHRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZENvbXBvbmVudFNvcnREb3duKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgSW5wdXRQYXNzd29yZEV5ZVZpc2libGVJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFNlYXJjaEJ1dHRvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRpbWVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUFjdGlvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUNsb3NlZEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50UGF1c2VJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBVcGxvYWRDb21wb25lbnRVcGxvYWRJY29uKCk6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLyoqXG4gKiBkZWZhdWx0IGljb25zIHNlcnZpY2UgZm9yIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRJY29uU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS10cmFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRFZGl0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1wZW4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJOZXdJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFyIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1vcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFzIGZhLXN5bmMtYWx0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQ29uZmlybURlZmF1bHRJbWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy9hc3NldHMvaWNvbnMvZGlhbG9nL3F1ZXN0aW9uLnBuZyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IENvbnRleHRNZW51T3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYXMgZmEtZWxsaXBzaXMtdic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1jYWxlbmRhcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FsZW5kYXInO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhOZXh0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tbGVmdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdlbmVyaWNIZWxwdGV4dEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1pbmZvLWNpcmNsZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhLXRyYXNoJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHREZWxldGVJY29uU2V0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQnV0dG9uRGVmYXVsdEVkaXRJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyBkaXNhYmxlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRDb21wb25lbnRTb3J0RG93bigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNhcmV0LWRvd24nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FyZXQtdXAnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZS1zbGFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0UGFzc3dvcmRFeWVWaXNpYmxlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0U2VhcmNoQnV0dG9uSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1zZWFyY2gnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2xvY2snO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUcmVldmlld05vZGVBY3Rpb25JY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlRW1wdHlJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtZm9sZGVyJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLXBsYXknO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnREZWxldGVJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtdGltZXMnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnRQYXVzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1wYXVzZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudFVwbG9hZEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS11cGxvYWQnO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXX0=
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmplY3RhYmxlIiwiSW5qZWN0aW9uVG9rZW4iLCJTQUNJQ09OX1NFUlZJQ0UiLCJjb3ZfbnVlOXg5MnQiLCJzIiwiU2FjQWJzdHJhY3RJY29uU2VydmljZSIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwicHJvdmlkZWRJbiIsImRlY29yYXRvcnMiLCJTYWNEZWZhdWx0SWNvblNlcnZpY2UiLCJCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbiIsImYiLCJCcm93c2VyQ29tcG9uZW50RWRpdEljb24iLCJCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbiIsIkJyb3dzZXJDb21wb25lbnRGb2xkZXJFbXB0eUljb24iLCJCcm93c2VyQ29tcG9uZW50Rm9sZGVyTmV3SWNvbiIsIkJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbiIsIkJyb3dzZXJDb21wb25lbnRSZWZyZXNoSWNvbiIsIkNvbmZpcm1EZWZhdWx0SW1hZ2UiLCJDb250ZXh0TWVudU9wZW5JY29uIiwiRGF0ZUNvbXBvbmVudFNlbGVjdG9ySWNvbiIsIkRhdGVUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uIiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24iLCJEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbiIsIkdlbmVyaWNIZWxwdGV4dEljb24iLCJHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb24iLCJHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb25TZXQiLCJHcmlkQnV0dG9uRGVmYXVsdEVkaXRJY29uIiwiR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCIsIkdyaWRCdXR0b25EaXNhYmxlZEljb25TdWZmaXgiLCJHcmlkQ29tcG9uZW50U29ydERvd24iLCJHcmlkQ29tcG9uZW50U29ydFVwIiwiSW5wdXRQYXNzd29yZEV5ZUhpZGRlbkljb24iLCJJbnB1dFBhc3N3b3JkRXllVmlzaWJsZUljb24iLCJJbnB1dFNlYXJjaEJ1dHRvbkljb24iLCJUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uIiwiVHJlZXZpZXdOb2RlQWN0aW9uSWNvbiIsIlRyZWV2aWV3Tm9kZUNsb3NlZEljb24iLCJUcmVldmlld05vZGVFbXB0eUljb24iLCJUcmVldmlld05vZGVPcGVuSWNvbiIsIlVwbG9hZENvbXBvbmVudEJyb3dzZUljb24iLCJVcGxvYWRDb21wb25lbnRDb250aW51ZUljb24iLCJVcGxvYWRDb21wb25lbnREZWxldGVJY29uIiwiVXBsb2FkQ29tcG9uZW50UGF1c2VJY29uIiwiVXBsb2FkQ29tcG9uZW50VXBsb2FkSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1pY29uLnNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBpbmplY3Rpb24gdG9rZW4gZm9yIGNvbXBvbmVudCBpY29uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0lDT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjSWNvblNlcnZpY2U+KCdTYWNJY29uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgaWNvbiBwcm92aWRpbmcgaW4gY29tcG9uZW50c1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2UgaW1wbGVtZW50cyBJU2FjSWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEVkaXRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlck5ld0ljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb25maXJtRGVmYXVsdEltYWdlKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb250ZXh0TWVudU9wZW5JY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlVGltZUNvbXBvbmVudFNlbGVjdG9ySWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aFByZXZJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHZW5lcmljSGVscHRleHRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZENvbXBvbmVudFNvcnREb3duKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgSW5wdXRQYXNzd29yZEV5ZVZpc2libGVJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFNlYXJjaEJ1dHRvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRpbWVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUFjdGlvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUNsb3NlZEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50UGF1c2VJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBVcGxvYWRDb21wb25lbnRVcGxvYWRJY29uKCk6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLyoqXG4gKiBkZWZhdWx0IGljb25zIHNlcnZpY2UgZm9yIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRJY29uU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS10cmFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRFZGl0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1wZW4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJOZXdJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFyIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1vcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFzIGZhLXN5bmMtYWx0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQ29uZmlybURlZmF1bHRJbWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy9hc3NldHMvaWNvbnMvZGlhbG9nL3F1ZXN0aW9uLnBuZyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IENvbnRleHRNZW51T3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYXMgZmEtZWxsaXBzaXMtdic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1jYWxlbmRhcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FsZW5kYXInO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhOZXh0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tbGVmdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdlbmVyaWNIZWxwdGV4dEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1pbmZvLWNpcmNsZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhLXRyYXNoJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHREZWxldGVJY29uU2V0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQnV0dG9uRGVmYXVsdEVkaXRJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyBkaXNhYmxlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRDb21wb25lbnRTb3J0RG93bigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNhcmV0LWRvd24nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FyZXQtdXAnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZS1zbGFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0UGFzc3dvcmRFeWVWaXNpYmxlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0U2VhcmNoQnV0dG9uSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1zZWFyY2gnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2xvY2snO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUcmVldmlld05vZGVBY3Rpb25JY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlRW1wdHlJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtZm9sZGVyJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLXBsYXknO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnREZWxldGVJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtdGltZXMnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnRQYXVzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1wYXVzZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudFVwbG9hZEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS11cGxvYWQnO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXSwibWFwcGluZ3MiOiI7dUZBQ0EsT0FBU0EsVUFBVSxDQUFFQyxjQUFjLEtBQVEsZUFBZSxDLGlDQUUxRDtBQUVBOztHQUdBLE1BQU8sTUFBTSxDQUFBQyxlQUFlLEVBQUFDLFlBQUEsR0FBQUMsQ0FBQSxNQUFHLEdBQUksQ0FBQUgsY0FBYyxDQUFrQixnQkFBZ0IsQ0FBQyxFQUVwRjtBQUVBO0FBRUE7O0dBSUEsTUFBTSxNQUFnQixDQUFBSSxzQkFBc0IsRSwrSEFBdEJBLHNCQUFzQixDQUFBQyxJQUFBLElBQUFDLE1BQUEsQ0FBQUMsRUFBQSxDQUFBQyxlQUFBLENBQUFULFVBQUEsR0FBQUcsWUFBQSxHQUFBQyxDQUFBLE0sNkdBQXRCQyxzQkFBc0IsQ0FBQUssVUFBQSxDQURsQixNQUFNLEdBQUFQLFlBQUEsR0FBQUMsQ0FBQSxNLG1GQUNWQyxzQkFBc0IsQ0FBQU0sVUFBQSxHLEtBRDNDWCxVQUFVLEMsTUFBQyxDQUFFVSxVQUFVLENBQUUsTUFBTSxDQUFFLEMsS0FpTGxDOztLQUlBLE1BQU0sTUFBTyxDQUFBRSxxQkFBc0IsUUFBUSxDQUFBUCxzQkFBc0IsQ0FDN0Q7QUFFQTs7T0FHQSxHQUFXLENBQUFRLDBCQUEwQkEs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
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmplY3RhYmxlIiwiSW5qZWN0aW9uVG9rZW4iLCJTQUNJQ09OX1NFUlZJQ0UiLCJjb3ZfbnVlOXg5MnQiLCJzIiwiU2FjQWJzdHJhY3RJY29uU2VydmljZSIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwicHJvdmlkZWRJbiIsImRlY29yYXRvcnMiLCJTYWNEZWZhdWx0SWNvblNlcnZpY2UiLCJCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbiIsImYiLCJCcm93c2VyQ29tcG9uZW50RWRpdEljb24iLCJCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbiIsIkJyb3dzZXJDb21wb25lbnRGb2xkZXJFbXB0eUljb24iLCJCcm93c2VyQ29tcG9uZW50Rm9sZGVyTmV3SWNvbiIsIkJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbiIsIkJyb3dzZXJDb21wb25lbnRSZWZyZXNoSWNvbiIsIkNvbmZpcm1EZWZhdWx0SW1hZ2UiLCJDb250ZXh0TWVudU9wZW5JY29uIiwiRGF0ZUNvbXBvbmVudFNlbGVjdG9ySWNvbiIsIkRhdGVUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uIiwiRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24iLCJEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbiIsIkdlbmVyaWNIZWxwdGV4dEljb24iLCJHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb24iLCJHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb25TZXQiLCJHcmlkQnV0dG9uRGVmYXVsdEVkaXRJY29uIiwiR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCIsIkdyaWRCdXR0b25EaXNhYmxlZEljb25TdWZmaXgiLCJHcmlkQ29tcG9uZW50U29ydERvd24iLCJHcmlkQ29tcG9uZW50U29ydFVwIiwiSW5wdXRQYXNzd29yZEV5ZUhpZGRlbkljb24iLCJJbnB1dFBhc3N3b3JkRXllVmlzaWJsZUljb24iLCJJbnB1dFNlYXJjaEJ1dHRvbkljb24iLCJUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uIiwiVHJlZXZpZXdOb2RlQWN0aW9uSWNvbiIsIlRyZWV2aWV3Tm9kZUNsb3NlZEljb24iLCJUcmVldmlld05vZGVFbXB0eUljb24iLCJUcmVldmlld05vZGVPcGVuSWNvbiIsIlVwbG9hZENvbXBvbmVudEJyb3dzZUljb24iLCJVcGxvYWRDb21wb25lbnRDb250aW51ZUljb24iLCJVcGxvYWRDb21wb25lbnREZWxldGVJY29uIiwiVXBsb2FkQ29tcG9uZW50UGF1c2VJY29uIiwiVXBsb2FkQ29tcG9uZW50VXBsb2FkSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1pY29uLnNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcblxuLyoqXG4gKiBpbmplY3Rpb24gdG9rZW4gZm9yIGNvbXBvbmVudCBpY29uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0lDT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjSWNvblNlcnZpY2U+KCdTYWNJY29uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgaWNvbiBwcm92aWRpbmcgaW4gY29tcG9uZW50c1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2UgaW1wbGVtZW50cyBJU2FjSWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEVkaXRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlck5ld0ljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb25maXJtRGVmYXVsdEltYWdlKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBDb250ZXh0TWVudU9wZW5JY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBEYXRlVGltZUNvbXBvbmVudFNlbGVjdG9ySWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudE1vbnRoTmV4dEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnRNb250aFByZXZJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHZW5lcmljSGVscHRleHRJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQnV0dG9uRGVmYXVsdERlbGV0ZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgR3JpZENvbXBvbmVudFNvcnREb3duKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgSW5wdXRQYXNzd29yZEV5ZVZpc2libGVJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBJbnB1dFNlYXJjaEJ1dHRvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRpbWVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUFjdGlvbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUNsb3NlZEljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFRyZWV2aWV3Tm9kZUVtcHR5SWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgVXBsb2FkQ29tcG9uZW50UGF1c2VJY29uKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBVcGxvYWRDb21wb25lbnRVcGxvYWRJY29uKCk6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLyoqXG4gKiBkZWZhdWx0IGljb25zIHNlcnZpY2UgZm9yIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRJY29uU2VydmljZSBleHRlbmRzIFNhY0Fic3RyYWN0SWNvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS10cmFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRFZGl0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1wZW4nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBCcm93c2VyQ29tcG9uZW50Rm9sZGVyQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudEZvbGRlckVtcHR5SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJOZXdJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFyIGZhLWZvbGRlcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEJyb3dzZXJDb21wb25lbnRGb2xkZXJPcGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1vcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQnJvd3NlckNvbXBvbmVudFJlZnJlc2hJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmFzIGZhLXN5bmMtYWx0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgQ29uZmlybURlZmF1bHRJbWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy9hc3NldHMvaWNvbnMvZGlhbG9nL3F1ZXN0aW9uLnBuZyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IENvbnRleHRNZW51T3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYXMgZmEtZWxsaXBzaXMtdic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVDb21wb25lbnRTZWxlY3Rvckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1jYWxlbmRhcic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IERhdGVUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FsZW5kYXInO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhOZXh0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50TW9udGhQcmV2SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNoZXZyb24tbGVmdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdlbmVyaWNIZWxwdGV4dEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1pbmZvLWNpcmNsZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRCdXR0b25EZWZhdWx0RGVsZXRlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhLXRyYXNoJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHREZWxldGVJY29uU2V0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQnV0dG9uRGVmYXVsdEVkaXRJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRlZmF1bHRFZGl0SWNvblNldCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgR3JpZEJ1dHRvbkRpc2FibGVkSWNvblN1ZmZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyBkaXNhYmxlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEdyaWRDb21wb25lbnRTb3J0RG93bigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWNhcmV0LWRvd24nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBHcmlkQ29tcG9uZW50U29ydFVwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2FyZXQtdXAnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBJbnB1dFBhc3N3b3JkRXllSGlkZGVuSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZS1zbGFzaCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0UGFzc3dvcmRFeWVWaXNpYmxlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWV5ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IElucHV0U2VhcmNoQnV0dG9uSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhcyBmYS1zZWFyY2gnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUaW1lQ29tcG9uZW50U2VsZWN0b3JJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2xvY2snO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBUcmVldmlld05vZGVBY3Rpb25JY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtcGVuJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlQ2xvc2VkSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWZvbGRlci1wbHVzJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlRW1wdHlJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtZm9sZGVyJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgVHJlZXZpZXdOb2RlT3Blbkljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudEJyb3dzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1mb2xkZXItb3Blbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLXBsYXknO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnREZWxldGVJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtdGltZXMnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldCBVcGxvYWRDb21wb25lbnRQYXVzZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1wYXVzZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IFVwbG9hZENvbXBvbmVudFVwbG9hZEljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS11cGxvYWQnO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXSwibWFwcGluZ3MiOiI7dUZBQ0EsT0FBU0EsVUFBVSxDQUFFQyxjQUFjLEtBQVEsZUFBZSxDLGlDQUUxRDtBQUVBOztHQUdBLE1BQU8sTUFBTSxDQUFBQyxlQUFlLEVBQUFDLFlBQUEsR0FBQUMsQ0FBQSxNQUFHLEdBQUksQ0FBQUgsY0FBYyxDQUFrQixnQkFBZ0IsQ0FBQyxFQUVwRjtBQUVBO0FBRUE7O0dBSUEsTUFBTSxNQUFnQixDQUFBSSxzQkFBc0IsRSwrSEFBdEJBLHNCQUFzQixDQUFBQyxJQUFBLElBQUFDLE1BQUEsQ0FBQUMsRUFBQSxDQUFBQyxlQUFBLENBQUFULFVBQUEsR0FBQUcsWUFBQSxHQUFBQyxDQUFBLE0sNkdBQXRCQyxzQkFBc0IsQ0FBQUssVUFBQSxDQURsQixNQUFNLEdBQUFQLFlBQUEsR0FBQUMsQ0FBQSxNLG1GQUNWQyxzQkFBc0IsQ0FBQU0sVUFBQSxHLEtBRDNDWCxVQUFVLEMsTUFBQyxDQUFFVSxVQUFVLENBQUUsTUFBTSxDQUFFLEMsS0FpTGxDOztLQUlBLE1BQU0sTUFBTyxDQUFBRSxxQkFBc0IsUUFBUSxDQUFBUCxzQkFBc0IsQ0FDN0Q7QUFFQTs7T0FHQSxHQUFXLENBQUFRLDBCQUEwQkEs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