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

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 (388) 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 +4 -4
  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 +24 -23
  48. package/controls/confirm/confirm.d.ts.map +1 -1
  49. package/controls/confirm/confirm.service.d.ts +20 -20
  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/contextmenuanchor.d.ts.map +1 -1
  57. package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
  58. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  59. package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
  60. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  61. package/controls/datetime/date.d.ts +11 -11
  62. package/controls/datetime/date.d.ts.map +1 -1
  63. package/controls/datetime/dateselector.d.ts +47 -40
  64. package/controls/datetime/dateselector.d.ts.map +1 -1
  65. package/controls/datetime/datetime.d.ts +15 -14
  66. package/controls/datetime/datetime.d.ts.map +1 -1
  67. package/controls/datetime/time.d.ts +22 -12
  68. package/controls/datetime/time.d.ts.map +1 -1
  69. package/controls/dialog/dialog.d.ts +29 -23
  70. package/controls/dialog/dialog.d.ts.map +1 -1
  71. package/controls/form/form.d.ts +22 -17
  72. package/controls/form/form.d.ts.map +1 -1
  73. package/controls/grid/grid.d.ts +1 -0
  74. package/controls/grid/grid.d.ts.map +1 -1
  75. package/controls/grid/gridbutton.d.ts +1 -0
  76. package/controls/grid/gridbutton.d.ts.map +1 -1
  77. package/controls/grid/gridcolumn.d.ts +10 -6
  78. package/controls/grid/gridcolumn.d.ts.map +1 -1
  79. package/controls/grid/gridcolumnaction.d.ts +2 -2
  80. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  81. package/controls/grid/gridcolumnbase.d.ts +13 -4
  82. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  83. package/controls/grid/model.d.ts +22 -19
  84. package/controls/grid/model.d.ts.map +1 -1
  85. package/controls/grid/paging.d.ts +2 -3
  86. package/controls/grid/paging.d.ts.map +1 -1
  87. package/controls/input/input.d.ts +7 -7
  88. package/controls/input/inputarea.d.ts +8 -6
  89. package/controls/input/inputarea.d.ts.map +1 -1
  90. package/controls/input/inputcurrency.d.ts +4 -1
  91. package/controls/input/inputcurrency.d.ts.map +1 -1
  92. package/controls/input/inputdecimal.d.ts +15 -15
  93. package/controls/input/inputdecimal.d.ts.map +1 -1
  94. package/controls/input/inputemail.d.ts +5 -5
  95. package/controls/input/inputemail.d.ts.map +1 -1
  96. package/controls/input/inputinteger.d.ts +15 -15
  97. package/controls/input/inputinteger.d.ts.map +1 -1
  98. package/controls/input/inputpassword.d.ts +3 -3
  99. package/controls/input/inputpassword.d.ts.map +1 -1
  100. package/controls/input/inputsearch.d.ts +11 -8
  101. package/controls/input/inputsearch.d.ts.map +1 -1
  102. package/controls/layout/formlayout.d.ts +9 -6
  103. package/controls/layout/formlayout.d.ts.map +1 -1
  104. package/controls/list/buildvaluestring.d.ts +2 -2
  105. package/controls/list/buildvaluestring.d.ts.map +1 -1
  106. package/controls/list/dropdown.d.ts +23 -22
  107. package/controls/list/dropdown.d.ts.map +1 -1
  108. package/controls/list/dropdownoptions.d.ts +11 -11
  109. package/controls/list/dropdownoptions.d.ts.map +1 -1
  110. package/controls/list/listbox.d.ts +25 -23
  111. package/controls/list/listbox.d.ts.map +1 -1
  112. package/controls/multilanguage/multilanguageinput.d.ts +27 -27
  113. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  114. package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
  115. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  116. package/controls/static/formcontainer.d.ts +8 -8
  117. package/controls/static/formcontainer.d.ts.map +1 -1
  118. package/controls/static/staticlabel.d.ts +6 -6
  119. package/controls/static/staticlabel.d.ts.map +1 -1
  120. package/controls/tabs/tab.d.ts +2 -2
  121. package/controls/tabs/tabitem.d.ts +9 -9
  122. package/controls/tabs/tabitem.d.ts.map +1 -1
  123. package/controls/tinymce/tinymce.d.ts +37 -37
  124. package/controls/tinymce/tinymce.d.ts.map +1 -1
  125. package/controls/tinymce/tinymcedialogsettings.d.ts +11 -11
  126. package/controls/tinymce/tinymcedialogsettings.d.ts.map +1 -1
  127. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
  128. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts.map +1 -1
  129. package/controls/tinymce/tinymceinstance.d.ts +2 -2
  130. package/controls/tinymce/tinymceinstance.d.ts.map +1 -1
  131. package/controls/tooltip/tooltip.d.ts +10 -5
  132. package/controls/tooltip/tooltip.d.ts.map +1 -1
  133. package/controls/treeview/treeview.d.ts +52 -7
  134. package/controls/treeview/treeview.d.ts.map +1 -1
  135. package/controls/upload/dropzonemultiple.d.ts +16 -16
  136. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  137. package/controls/upload/dropzonesingle.d.ts +11 -11
  138. package/controls/upload/uploadmultiple.d.ts +12 -12
  139. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  140. package/controls/upload/uploadsingle.d.ts +7 -7
  141. package/controls/upload/uploadsingle.d.ts.map +1 -1
  142. package/controls/validation/validationsummary.d.ts +12 -11
  143. package/controls/validation/validationsummary.d.ts.map +1 -1
  144. package/controls/wizard/wizard.d.ts +43 -36
  145. package/controls/wizard/wizard.d.ts.map +1 -1
  146. package/controls/wizard/wizarditem.d.ts +9 -9
  147. package/controls/wizard/wizarditem.d.ts.map +1 -1
  148. package/enums/ButtonRoleType.d.ts +26 -1
  149. package/enums/ButtonRoleType.d.ts.map +1 -1
  150. package/enums/ControlHeight.d.ts +1 -1
  151. package/enums/ControlHeight.d.ts.map +1 -1
  152. package/enums/IconType.d.ts +1 -1
  153. package/enums/IconType.d.ts.map +1 -1
  154. package/esm2022/common/basedatetimecontrol.mjs +59 -38
  155. package/esm2022/common/baseinputcontrol.mjs +16 -14
  156. package/esm2022/common/baselistcontrol.mjs +20 -18
  157. package/esm2022/common/basemodelcontrol.mjs +82 -71
  158. package/esm2022/common/baseselectcontrol.mjs +10 -9
  159. package/esm2022/common/baseuploadcontrol.mjs +74 -58
  160. package/esm2022/components/browser/browser.mjs +88 -90
  161. package/esm2022/components/browser/models/browserfile.mjs +3 -3
  162. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +9 -7
  163. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +9 -7
  164. package/esm2022/components/browser/models/browserfileresponse.mjs +3 -3
  165. package/esm2022/components/browser/models/browserfilesaverequest.mjs +8 -6
  166. package/esm2022/components/browser/models/browsernode.mjs +3 -3
  167. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +9 -7
  168. package/esm2022/components/browser/models/browsernodenewrequest.mjs +9 -7
  169. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +9 -7
  170. package/esm2022/components/browser/models/browsernoderequest.mjs +9 -7
  171. package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -3
  172. package/esm2022/controls/buttons/button.mjs +29 -25
  173. package/esm2022/controls/checkbox/checkbox.mjs +7 -7
  174. package/esm2022/controls/checkbox/radiobutton.mjs +23 -18
  175. package/esm2022/controls/checkbox/radiobuttons.mjs +17 -14
  176. package/esm2022/controls/confirm/confirm.button.mjs +6 -6
  177. package/esm2022/controls/confirm/confirm.mjs +27 -28
  178. package/esm2022/controls/confirm/confirm.service.mjs +24 -24
  179. package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -3
  180. package/esm2022/controls/contextmenu/contextmenu.mjs +32 -27
  181. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -7
  182. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -7
  183. package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -4
  184. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +13 -13
  185. package/esm2022/controls/datetime/date.mjs +16 -16
  186. package/esm2022/controls/datetime/dateselector.mjs +95 -94
  187. package/esm2022/controls/datetime/datetime.mjs +20 -19
  188. package/esm2022/controls/datetime/time.mjs +27 -17
  189. package/esm2022/controls/dialog/dialog.mjs +41 -37
  190. package/esm2022/controls/form/form.mjs +22 -19
  191. package/esm2022/controls/grid/grid.mjs +5 -4
  192. package/esm2022/controls/grid/gridbutton.mjs +5 -4
  193. package/esm2022/controls/grid/gridcolumn.mjs +13 -9
  194. package/esm2022/controls/grid/gridcolumnaction.mjs +6 -6
  195. package/esm2022/controls/grid/gridcolumnbase.mjs +25 -18
  196. package/esm2022/controls/grid/gridimage.mjs +3 -3
  197. package/esm2022/controls/grid/model.mjs +23 -21
  198. package/esm2022/controls/grid/paging.mjs +9 -10
  199. package/esm2022/controls/input/input.mjs +11 -11
  200. package/esm2022/controls/input/inputarea.mjs +12 -10
  201. package/esm2022/controls/input/inputcurrency.mjs +9 -7
  202. package/esm2022/controls/input/inputdecimal.mjs +22 -22
  203. package/esm2022/controls/input/inputemail.mjs +9 -9
  204. package/esm2022/controls/input/inputinteger.mjs +21 -21
  205. package/esm2022/controls/input/inputpassword.mjs +7 -7
  206. package/esm2022/controls/input/inputsearch.mjs +15 -13
  207. package/esm2022/controls/layout/formlayout.mjs +16 -10
  208. package/esm2022/controls/list/buildvaluestring.mjs +10 -8
  209. package/esm2022/controls/list/dropdown.mjs +31 -30
  210. package/esm2022/controls/list/dropdownoptions.mjs +26 -19
  211. package/esm2022/controls/list/listbox.mjs +32 -30
  212. package/esm2022/controls/multilanguage/multilanguageinput.mjs +33 -33
  213. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +34 -34
  214. package/esm2022/controls/static/formcontainer.mjs +13 -13
  215. package/esm2022/controls/static/staticlabel.mjs +15 -12
  216. package/esm2022/controls/tabs/tab.mjs +5 -5
  217. package/esm2022/controls/tabs/tabitem.mjs +9 -8
  218. package/esm2022/controls/tinymce/tinymce.mjs +38 -38
  219. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +9 -7
  220. package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -5
  221. package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -3
  222. package/esm2022/controls/tooltip/tooltip.mjs +16 -11
  223. package/esm2022/controls/treeview/treeview.mjs +48 -12
  224. package/esm2022/controls/upload/dropzonemultiple.mjs +21 -21
  225. package/esm2022/controls/upload/dropzonesingle.mjs +15 -15
  226. package/esm2022/controls/upload/uploadmultiple.mjs +17 -17
  227. package/esm2022/controls/upload/uploadsingle.mjs +11 -11
  228. package/esm2022/controls/validation/validationsummary.mjs +17 -16
  229. package/esm2022/controls/wizard/wizard.mjs +43 -33
  230. package/esm2022/controls/wizard/wizarditem.mjs +8 -8
  231. package/esm2022/enums/ButtonRoleType.mjs +3 -3
  232. package/esm2022/enums/ControlHeight.mjs +4 -4
  233. package/esm2022/enums/IconType.mjs +4 -4
  234. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
  235. package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -3
  236. package/esm2022/interfaces/ISacLabelSizes.mjs +3 -3
  237. package/esm2022/interfaces/ISacLanguageService.mjs +3 -3
  238. package/esm2022/interfaces/ISacLocalisationService.mjs +3 -3
  239. package/esm2022/interfaces/ISacUploadEventCompleteState.mjs +3 -3
  240. package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -3
  241. package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -3
  242. package/esm2022/interfaces/iconfirmcomponent.mjs +3 -3
  243. package/esm2022/interfaces/idatetimecontrol.mjs +3 -3
  244. package/esm2022/interfaces/iuploadcontrol.mjs +3 -3
  245. package/esm2022/interfaces/treeviewaction.interface.mjs +3 -3
  246. package/esm2022/models/languagemodel.mjs +8 -6
  247. package/esm2022/public_api.mjs +4 -4
  248. package/esm2022/services/index.mjs +3 -3
  249. package/esm2022/services/sac-configuration.service.mjs +13 -11
  250. package/esm2022/services/sac-filebrowser.service.mjs +66 -52
  251. package/esm2022/services/sac-icon.service.mjs +5 -5
  252. package/esm2022/services/sac-language.service.mjs +11 -7
  253. package/esm2022/services/sac-localisation.service.mjs +15 -11
  254. package/esm2022/services/sac-validationkey.service.mjs +108 -6
  255. package/esm2022/utilities/convertion.mjs +10 -8
  256. package/esm2022/utilities/datatypes.mjs +8 -6
  257. package/esm2022/utilities/enums.mjs +4 -10
  258. package/esm2022/utilities/guid.mjs +8 -8
  259. package/esm2022/utilities/interpolation.mjs +21 -14
  260. package/esm2022/utilities/popuphelper.mjs +52 -32
  261. package/esm2022/utilities/positioncalculator.mjs +61 -0
  262. package/esm2022/utilities/positionelements.mjs +32 -0
  263. package/esm2022/utilities/testingattribute.pipe.mjs +19 -6
  264. package/esm2022/validation/email.validator.mjs +11 -3
  265. package/esm2022/validation/equals.validator.mjs +12 -3
  266. package/esm2022/validation/index.mjs +3 -3
  267. package/esm2022/validation/invaliddate.validator.mjs +11 -3
  268. package/esm2022/validation/isDateValid.mjs +12 -10
  269. package/esm2022/validation/maxdate.validator.mjs +13 -4
  270. package/esm2022/validation/maxtime.validator.mjs +13 -4
  271. package/esm2022/validation/maxvalue.validator.mjs +12 -3
  272. package/esm2022/validation/mindate.validator.mjs +13 -4
  273. package/esm2022/validation/minfiles.validator.mjs +13 -4
  274. package/esm2022/validation/mintextlength.validator.mjs +11 -4
  275. package/esm2022/validation/mintime.validator.mjs +13 -4
  276. package/esm2022/validation/minvalue.validator.mjs +12 -3
  277. package/esm2022/validation/multilanguagerequired.validator.mjs +12 -3
  278. package/esm2022/validation/multilanguagerequiredany.validator.mjs +12 -3
  279. package/esm2022/validation/notequals.validator.mjs +12 -3
  280. package/esm2022/validation/pattern.validator.mjs +12 -3
  281. package/esm2022/validation/required.validator.mjs +11 -3
  282. package/esm2022/validation/validation.mjs +86 -102
  283. package/esm2022/validation/validationerrorcreator.mjs +13 -3
  284. package/esm2022/validation/validationerroritem.mjs +14 -12
  285. package/fesm2022/simpleangularcontrols-sac-common.mjs +2694 -2163
  286. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  287. package/interfaces/ISacConfigurationService.d.ts +9 -1
  288. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  289. package/interfaces/ISacFileBrowserService.d.ts +43 -43
  290. package/interfaces/ISacFileBrowserService.d.ts.map +1 -1
  291. package/interfaces/ISacLabelSizes.d.ts +9 -6
  292. package/interfaces/ISacLabelSizes.d.ts.map +1 -1
  293. package/interfaces/ISacLanguageService.d.ts +3 -3
  294. package/interfaces/ISacLanguageService.d.ts.map +1 -1
  295. package/interfaces/ISacLocalisationService.d.ts +2 -2
  296. package/interfaces/ISacLocalisationService.d.ts.map +1 -1
  297. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  298. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -1
  299. package/interfaces/iabstractcontrollabel.d.ts +4 -1
  300. package/interfaces/iabstractcontrollabel.d.ts.map +1 -1
  301. package/interfaces/iconfirmcomponent.d.ts +6 -6
  302. package/interfaces/iconfirmcomponent.d.ts.map +1 -1
  303. package/interfaces/idatetimecontrol.d.ts +10 -1
  304. package/interfaces/idatetimecontrol.d.ts.map +1 -1
  305. package/interfaces/iuploadcontrol.d.ts.map +1 -1
  306. package/interfaces/treeviewaction.interface.d.ts +9 -0
  307. package/interfaces/treeviewaction.interface.d.ts.map +1 -1
  308. package/models/languagemodel.d.ts +9 -9
  309. package/models/languagemodel.d.ts.map +1 -1
  310. package/package.json +1 -1
  311. package/public_api.d.ts +2 -1
  312. package/public_api.d.ts.map +1 -1
  313. package/services/index.d.ts +3 -3
  314. package/services/index.d.ts.map +1 -1
  315. package/services/sac-configuration.service.d.ts +8 -0
  316. package/services/sac-configuration.service.d.ts.map +1 -1
  317. package/services/sac-filebrowser.service.d.ts +97 -89
  318. package/services/sac-filebrowser.service.d.ts.map +1 -1
  319. package/services/sac-language.service.d.ts +2 -2
  320. package/services/sac-language.service.d.ts.map +1 -1
  321. package/services/sac-localisation.service.d.ts +11 -7
  322. package/services/sac-localisation.service.d.ts.map +1 -1
  323. package/services/sac-validationkey.service.d.ts +152 -5
  324. package/services/sac-validationkey.service.d.ts.map +1 -1
  325. package/simpleangularcontrols-sac-common-16.0.0-rc.23.tgz +0 -0
  326. package/utilities/convertion.d.ts +4 -4
  327. package/utilities/convertion.d.ts.map +1 -1
  328. package/utilities/datatypes.d.ts +3 -3
  329. package/utilities/datatypes.d.ts.map +1 -1
  330. package/utilities/enums.d.ts +8 -1
  331. package/utilities/enums.d.ts.map +1 -1
  332. package/utilities/guid.d.ts +1 -1
  333. package/utilities/guid.d.ts.map +1 -1
  334. package/utilities/interpolation.d.ts +9 -8
  335. package/utilities/interpolation.d.ts.map +1 -1
  336. package/utilities/popuphelper.d.ts +47 -10
  337. package/utilities/popuphelper.d.ts.map +1 -1
  338. package/utilities/positioncalculator.d.ts +83 -0
  339. package/utilities/positioncalculator.d.ts.map +1 -0
  340. package/utilities/positionelements.d.ts +31 -0
  341. package/utilities/positionelements.d.ts.map +1 -0
  342. package/utilities/testingattribute.pipe.d.ts +16 -1
  343. package/utilities/testingattribute.pipe.d.ts.map +1 -1
  344. package/validation/email.validator.d.ts +7 -0
  345. package/validation/email.validator.d.ts.map +1 -1
  346. package/validation/equals.validator.d.ts +8 -0
  347. package/validation/equals.validator.d.ts.map +1 -1
  348. package/validation/index.d.ts.map +1 -1
  349. package/validation/invaliddate.validator.d.ts +7 -0
  350. package/validation/invaliddate.validator.d.ts.map +1 -1
  351. package/validation/isDateValid.d.ts +5 -2
  352. package/validation/isDateValid.d.ts.map +1 -1
  353. package/validation/maxdate.validator.d.ts +8 -0
  354. package/validation/maxdate.validator.d.ts.map +1 -1
  355. package/validation/maxtime.validator.d.ts +8 -0
  356. package/validation/maxtime.validator.d.ts.map +1 -1
  357. package/validation/maxvalue.validator.d.ts +8 -0
  358. package/validation/maxvalue.validator.d.ts.map +1 -1
  359. package/validation/mindate.validator.d.ts +8 -0
  360. package/validation/mindate.validator.d.ts.map +1 -1
  361. package/validation/minfiles.validator.d.ts +8 -0
  362. package/validation/minfiles.validator.d.ts.map +1 -1
  363. package/validation/mintextlength.validator.d.ts +8 -0
  364. package/validation/mintextlength.validator.d.ts.map +1 -1
  365. package/validation/mintime.validator.d.ts +8 -0
  366. package/validation/mintime.validator.d.ts.map +1 -1
  367. package/validation/minvalue.validator.d.ts +8 -0
  368. package/validation/minvalue.validator.d.ts.map +1 -1
  369. package/validation/multilanguagerequired.validator.d.ts +9 -1
  370. package/validation/multilanguagerequired.validator.d.ts.map +1 -1
  371. package/validation/multilanguagerequiredany.validator.d.ts +9 -1
  372. package/validation/multilanguagerequiredany.validator.d.ts.map +1 -1
  373. package/validation/notequals.validator.d.ts +8 -0
  374. package/validation/notequals.validator.d.ts.map +1 -1
  375. package/validation/pattern.validator.d.ts +8 -0
  376. package/validation/pattern.validator.d.ts.map +1 -1
  377. package/validation/required.validator.d.ts +7 -0
  378. package/validation/required.validator.d.ts.map +1 -1
  379. package/validation/validation.d.ts +83 -99
  380. package/validation/validation.d.ts.map +1 -1
  381. package/validation/validationerrorcreator.d.ts +9 -0
  382. package/validation/validationerrorcreator.d.ts.map +1 -1
  383. package/validation/validationerroritem.d.ts +16 -16
  384. package/validation/validationerroritem.d.ts.map +1 -1
  385. package/esm2022/utilities/positioning.mjs +0 -58
  386. package/simpleangularcontrols-sac-common-16.0.0-rc.21.tgz +0 -0
  387. package/utilities/positioning.d.ts +0 -83
  388. package/utilities/positioning.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- function cov_1wdc6hy9p(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-localisation.service.mjs";var hash="d17e1df774bd78bc30e964dada9b51f43f5bca0e";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-localisation.service.mjs",statementMap:{"0":{start:{line:10,column:39},end:{line:10,column:83}},"1":{start:{line:17,column:13},end:{line:17,column:194}},"2":{start:{line:18,column:13},end:{line:18,column:169}},"3":{start:{line:21,column:0},end:{line:24,column:14}},"4":{start:{line:35,column:8},end:{line:35,column:16}},"5":{start:{line:36,column:8},end:{line:36,column:57}},"6":{start:{line:41,column:8},end:{line:41,column:30}},"7":{start:{line:43,column:8},end:{line:43,column:39}},"8":{start:{line:45,column:8},end:{line:45,column:120}},"9":{start:{line:46,column:8},end:{line:48,column:120}},"10":{start:{line:49,column:8},end:{line:49,column:120}},"11":{start:{line:50,column:8},end:{line:52,column:120}},"12":{start:{line:53,column:8},end:{line:53,column:118}},"13":{start:{line:54,column:8},end:{line:56,column:118}},"14":{start:{line:57,column:8},end:{line:57,column:120}},"15":{start:{line:58,column:8},end:{line:60,column:120}},"16":{start:{line:61,column:8},end:{line:61,column:114}},"17":{start:{line:62,column:8},end:{line:64,column:114}},"18":{start:{line:65,column:8},end:{line:67,column:115}},"19":{start:{line:68,column:8},end:{line:70,column:130}},"20":{start:{line:71,column:8},end:{line:71,column:118}},"21":{start:{line:72,column:8},end:{line:74,column:118}},"22":{start:{line:75,column:8},end:{line:75,column:118}},"23":{start:{line:76,column:8},end:{line:78,column:118}},"24":{start:{line:79,column:8},end:{line:79,column:118}},"25":{start:{line:80,column:8},end:{line:82,column:118}},"26":{start:{line:83,column:8},end:{line:83,column:118}},"27":{start:{line:84,column:8},end:{line:86,column:118}},"28":{start:{line:87,column:8},end:{line:89,column:117}},"29":{start:{line:90,column:8},end:{line:92,column:132}},"30":{start:{line:93,column:8},end:{line:93,column:120}},"31":{start:{line:94,column:8},end:{line:96,column:120}},"32":{start:{line:97,column:8},end:{line:99,column:137}},"33":{start:{line:100,column:8},end:{line:102,column:152}},"34":{start:{line:103,column:8},end:{line:105,column:131}},"35":{start:{line:106,column:8},end:{line:108,column:146}},"36":{start:{line:110,column:8},end:{line:110,column:101}},"37":{start:{line:111,column:8},end:{line:111,column:107}},"38":{start:{line:113,column:8},end:{line:113,column:116}},"39":{start:{line:114,column:8},end:{line:114,column:110}},"40":{start:{line:115,column:8},end:{line:115,column:110}},"41":{start:{line:117,column:8},end:{line:117,column:112}},"42":{start:{line:118,column:8},end:{line:118,column:120}},"43":{start:{line:119,column:8},end:{line:121,column:115}},"44":{start:{line:123,column:8},end:{line:123,column:113}},"45":{start:{line:124,column:8},end:{line:124,column:111}},"46":{start:{line:126,column:8},end:{line:126,column:114}},"47":{start:{line:127,column:8},end:{line:127,column:116}},"48":{start:{line:128,column:8},end:{line:128,column:112}},"49":{start:{line:129,column:8},end:{line:129,column:113}},"50":{start:{line:130,column:8},end:{line:130,column:119}},"51":{start:{line:131,column:8},end:{line:131,column:115}},"52":{start:{line:132,column:8},end:{line:132,column:113}},"53":{start:{line:133,column:8},end:{line:135,column:128}},"54":{start:{line:136,column:8},end:{line:138,column:124}},"55":{start:{line:145,column:8},end:{line:145,column:41}},"56":{start:{line:148,column:8},end:{line:148,column:39}},"57":{start:{line:151,column:8},end:{line:151,column:68}},"58":{start:{line:154,column:8},end:{line:154,column:69}},"59":{start:{line:157,column:8},end:{line:157,column:44}},"60":{start:{line:160,column:8},end:{line:160,column:46}},"61":{start:{line:163,column:8},end:{line:163,column:43}},"62":{start:{line:166,column:8},end:{line:166,column:49}},"63":{start:{line:169,column:8},end:{line:169,column:60}},"64":{start:{line:172,column:8},end:{line:172,column:50}},"65":{start:{line:175,column:8},end:{line:175,column:81}},"66":{start:{line:178,column:8},end:{line:178,column:55}},"67":{start:{line:181,column:8},end:{line:181,column:77}},"68":{start:{line:184,column:8},end:{line:184,column:46}},"69":{start:{line:187,column:8},end:{line:187,column:52}},"70":{start:{line:190,column:8},end:{line:190,column:39}},"71":{start:{line:193,column:8},end:{line:193,column:46}},"72":{start:{line:196,column:8},end:{line:196,column:43}},"73":{start:{line:199,column:8},end:{line:199,column:59}},"74":{start:{line:202,column:8},end:{line:202,column:66}},"75":{start:{line:205,column:8},end:{line:205,column:66}},"76":{start:{line:208,column:8},end:{line:208,column:90}},"77":{start:{line:211,column:8},end:{line:211,column:82}},"78":{start:{line:214,column:8},end:{line:214,column:82}},"79":{start:{line:217,column:8},end:{line:217,column:95}},"80":{start:{line:220,column:8},end:{line:220,column:82}},"81":{start:{line:223,column:8},end:{line:223,column:83}},"82":{start:{line:226,column:8},end:{line:226,column:82}},"83":{start:{line:229,column:8},end:{line:229,column:83}},"84":{start:{line:232,column:8},end:{line:232,column:74}},"85":{start:{line:235,column:8},end:{line:235,column:73}},"86":{start:{line:238,column:8},end:{line:238,column:78}},"87":{start:{line:241,column:8},end:{line:241,column:59}},"88":{start:{line:244,column:8},end:{line:244,column:78}},"89":{start:{line:247,column:8},end:{line:247,column:78}},"90":{start:{line:250,column:8},end:{line:250,column:103}},"91":{start:{line:253,column:8},end:{line:253,column:94}},"92":{start:{line:256,column:8},end:{line:256,column:94}},"93":{start:{line:259,column:8},end:{line:259,column:83}},"94":{start:{line:262,column:8},end:{line:262,column:94}},"95":{start:{line:265,column:8},end:{line:265,column:95}},"96":{start:{line:268,column:8},end:{line:268,column:94}},"97":{start:{line:271,column:8},end:{line:271,column:95}},"98":{start:{line:274,column:8},end:{line:274,column:87}},"99":{start:{line:277,column:8},end:{line:277,column:88}},"100":{start:{line:280,column:8},end:{line:280,column:90}},"101":{start:{line:283,column:8},end:{line:283,column:71}},"102":{start:{line:291,column:8},end:{line:321,column:11}},"103":{start:{line:292,column:27},end:{line:292,column:45}},"104":{start:{line:293,column:12},end:{line:301,column:13}},"105":{start:{line:294,column:16},end:{line:294,column:54}},"106":{start:{line:296,column:16},end:{line:300,column:17}},"107":{start:{line:297,column:20},end:{line:297,column:39}},"108":{start:{line:298,column:20},end:{line:298,column:40}},"109":{start:{line:299,column:20},end:{line:299,column:27}},"110":{start:{line:302,column:12},end:{line:320,column:13}},"111":{start:{line:303,column:33},end:{line:303,column:65}},"112":{start:{line:304,column:16},end:{line:314,column:17}},"113":{start:{line:305,column:38},end:{line:305,column:57}},"114":{start:{line:306,column:20},end:{line:306,column:81}},"115":{start:{line:307,column:20},end:{line:307,column:40}},"116":{start:{line:308,column:20},end:{line:308,column:27}},"117":{start:{line:311,column:20},end:{line:311,column:44}},"118":{start:{line:312,column:20},end:{line:312,column:40}},"119":{start:{line:313,column:20},end:{line:313,column:27}},"120":{start:{line:317,column:16},end:{line:317,column:35}},"121":{start:{line:318,column:16},end:{line:318,column:36}},"122":{start:{line:319,column:16},end:{line:319,column:23}},"123":{start:{line:329,column:8},end:{line:329,column:20}},"124":{start:{line:335,column:25},end:{line:335,column:43}},"125":{start:{line:336,column:8},end:{line:341,column:9}},"126":{start:{line:337,column:12},end:{line:337,column:42}},"127":{start:{line:340,column:12},end:{line:340,column:28}},"128":{start:{line:343,column:13},end:{line:343,column:228}},"129":{start:{line:344,column:13},end:{line:344,column:168}},"130":{start:{line:347,column:0},end:{line:353,column:28}},"131":{start:{line:350,column:42},end:{line:353,column:22}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:34,column:4},end:{line:34,column:5}},loc:{start:{line:34,column:38},end:{line:141,column:5}},line:34},"1":{name:"(anonymous_1)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:28},end:{line:146,column:5}},line:144},"2":{name:"(anonymous_2)",decl:{start:{line:147,column:4},end:{line:147,column:5}},loc:{start:{line:147,column:29},end:{line:149,column:5}},line:147},"3":{name:"(anonymous_3)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:41},end:{line:152,column:5}},line:150},"4":{name:"(anonymous_4)",decl:{start:{line:153,column:4},end:{line:153,column:5}},loc:{start:{line:153,column:43},end:{line:155,column:5}},line:153},"5":{name:"(anonymous_5)",decl:{start:{line:156,column:4},end:{line:156,column:5}},loc:{start:{line:156,column:29},end:{line:158,column:5}},line:156},"6":{name:"(anonymous_6)",decl:{start:{line:159,column:4},end:{line:159,column:5}},loc:{start:{line:159,column:32},end:{line:161,column:5}},line:159},"7":{name:"(anonymous_7)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:32},end:{line:164,column:5}},line:162},"8":{name:"(anonymous_8)",decl:{start:{line:165,column:4},end:{line:165,column:5}},loc:{start:{line:165,column:32},end:{line:167,column:5}},line:165},"9":{name:"(anonymous_9)",decl:{start:{line:168,column:4},end:{line:168,column:5}},loc:{start:{line:168,column:31},end:{line:170,column:5}},line:168},"10":{name:"(anonymous_10)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:30},end:{line:173,column:5}},line:171},"11":{name:"(anonymous_11)",decl:{start:{line:174,column:4},end:{line:174,column:5}},loc:{start:{line:174,column:29},end:{line:176,column:5}},line:174},"12":{name:"(anonymous_12)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:33},end:{line:179,column:5}},line:177},"13":{name:"(anonymous_13)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:28},end:{line:182,column:5}},line:180},"14":{name:"(anonymous_14)",decl:{start:{line:183,column:4},end:{line:183,column:5}},loc:{start:{line:183,column:36},end:{line:185,column:5}},line:183},"15":{name:"(anonymous_15)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:41},end:{line:188,column:5}},line:186},"16":{name:"(anonymous_16)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:32},end:{line:191,column:5}},line:189},"17":{name:"(anonymous_17)",decl:{start:{line:192,column:4},end:{line:192,column:5}},loc:{start:{line:192,column:31},end:{line:194,column:5}},line:192},"18":{name:"(anonymous_18)",decl:{start:{line:195,column:4},end:{line:195,column:5}},loc:{start:{line:195,column:31},end:{line:197,column:5}},line:195},"19":{name:"(anonymous_19)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:34},end:{line:200,column:5}},line:198},"20":{name:"(anonymous_20)",decl:{start:{line:201,column:4},end:{line:201,column:5}},loc:{start:{line:201,column:42},end:{line:203,column:5}},line:201},"21":{name:"(anonymous_21)",decl:{start:{line:204,column:4},end:{line:204,column:5}},loc:{start:{line:204,column:33},end:{line:206,column:5}},line:204},"22":{name:"(anonymous_22)",decl:{start:{line:207,column:4},end:{line:207,column:5}},loc:{start:{line:207,column:36},end:{line:209,column:5}},line:207},"23":{name:"(anonymous_23)",decl:{start:{line:210,column:4},end:{line:210,column:5}},loc:{start:{line:210,column:35},end:{line:212,column:5}},line:210},"24":{name:"(anonymous_24)",decl:{start:{line:213,column:4},end:{line:213,column:5}},loc:{start:{line:213,column:35},end:{line:215,column:5}},line:213},"25":{name:"(anonymous_25)",decl:{start:{line:216,column:4},end:{line:216,column:5}},loc:{start:{line:216,column:36},end:{line:218,column:5}},line:216},"26":{name:"(anonymous_26)",decl:{start:{line:219,column:4},end:{line:219,column:5}},loc:{start:{line:219,column:35},end:{line:221,column:5}},line:219},"27":{name:"(anonymous_27)",decl:{start:{line:222,column:4},end:{line:222,column:5}},loc:{start:{line:222,column:41},end:{line:224,column:5}},line:222},"28":{name:"(anonymous_28)",decl:{start:{line:225,column:4},end:{line:225,column:5}},loc:{start:{line:225,column:35},end:{line:227,column:5}},line:225},"29":{name:"(anonymous_29)",decl:{start:{line:228,column:4},end:{line:228,column:5}},loc:{start:{line:228,column:36},end:{line:230,column:5}},line:228},"30":{name:"(anonymous_30)",decl:{start:{line:231,column:4},end:{line:231,column:5}},loc:{start:{line:231,column:49},end:{line:233,column:5}},line:231},"31":{name:"(anonymous_31)",decl:{start:{line:234,column:4},end:{line:234,column:5}},loc:{start:{line:234,column:52},end:{line:236,column:5}},line:234},"32":{name:"(anonymous_32)",decl:{start:{line:237,column:4},end:{line:237,column:5}},loc:{start:{line:237,column:35},end:{line:239,column:5}},line:237},"33":{name:"(anonymous_33)",decl:{start:{line:240,column:4},end:{line:240,column:5}},loc:{start:{line:240,column:36},end:{line:242,column:5}},line:240},"34":{name:"(anonymous_34)",decl:{start:{line:243,column:4},end:{line:243,column:5}},loc:{start:{line:243,column:50},end:{line:245,column:5}},line:243},"35":{name:"(anonymous_35)",decl:{start:{line:246,column:4},end:{line:246,column:5}},loc:{start:{line:246,column:41},end:{line:248,column:5}},line:246},"36":{name:"(anonymous_36)",decl:{start:{line:249,column:4},end:{line:249,column:5}},loc:{start:{line:249,column:44},end:{line:251,column:5}},line:249},"37":{name:"(anonymous_37)",decl:{start:{line:252,column:4},end:{line:252,column:5}},loc:{start:{line:252,column:43},end:{line:254,column:5}},line:252},"38":{name:"(anonymous_38)",decl:{start:{line:255,column:4},end:{line:255,column:5}},loc:{start:{line:255,column:43},end:{line:257,column:5}},line:255},"39":{name:"(anonymous_39)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:44},end:{line:260,column:5}},line:258},"40":{name:"(anonymous_40)",decl:{start:{line:261,column:4},end:{line:261,column:5}},loc:{start:{line:261,column:43},end:{line:263,column:5}},line:261},"41":{name:"(anonymous_41)",decl:{start:{line:264,column:4},end:{line:264,column:5}},loc:{start:{line:264,column:49},end:{line:266,column:5}},line:264},"42":{name:"(anonymous_42)",decl:{start:{line:267,column:4},end:{line:267,column:5}},loc:{start:{line:267,column:43},end:{line:269,column:5}},line:267},"43":{name:"(anonymous_43)",decl:{start:{line:270,column:4},end:{line:270,column:5}},loc:{start:{line:270,column:44},end:{line:272,column:5}},line:270},"44":{name:"(anonymous_44)",decl:{start:{line:273,column:4},end:{line:273,column:5}},loc:{start:{line:273,column:57},end:{line:275,column:5}},line:273},"45":{name:"(anonymous_45)",decl:{start:{line:276,column:4},end:{line:276,column:5}},loc:{start:{line:276,column:60},end:{line:278,column:5}},line:276},"46":{name:"(anonymous_46)",decl:{start:{line:279,column:4},end:{line:279,column:5}},loc:{start:{line:279,column:43},end:{line:281,column:5}},line:279},"47":{name:"(anonymous_47)",decl:{start:{line:282,column:4},end:{line:282,column:5}},loc:{start:{line:282,column:44},end:{line:284,column:5}},line:282},"48":{name:"(anonymous_48)",decl:{start:{line:290,column:4},end:{line:290,column:5}},loc:{start:{line:290,column:27},end:{line:322,column:5}},line:290},"49":{name:"(anonymous_49)",decl:{start:{line:291,column:30},end:{line:291,column:31}},loc:{start:{line:291,column:44},end:{line:321,column:9}},line:291},"50":{name:"(anonymous_50)",decl:{start:{line:328,column:4},end:{line:328,column:5}},loc:{start:{line:328,column:26},end:{line:330,column:5}},line:328},"51":{name:"(anonymous_51)",decl:{start:{line:334,column:4},end:{line:334,column:5}},loc:{start:{line:334,column:18},end:{line:342,column:5}},line:334},"52":{name:"(anonymous_52)",decl:{start:{line:350,column:28},end:{line:350,column:29}},loc:{start:{line:350,column:40},end:{line:353,column:24}},line:350}},branchMap:{"0":{loc:{start:{line:293,column:12},end:{line:301,column:13}},type:"if",locations:[{start:{line:293,column:12},end:{line:301,column:13}},{start:{line:293,column:12},end:{line:301,column:13}}],line:293},"1":{loc:{start:{line:296,column:16},end:{line:300,column:17}},type:"if",locations:[{start:{line:296,column:16},end:{line:300,column:17}},{start:{line:296,column:16},end:{line:300,column:17}}],line:296},"2":{loc:{start:{line:302,column:12},end:{line:320,column:13}},type:"if",locations:[{start:{line:302,column:12},end:{line:320,column:13}},{start:{line:302,column:12},end:{line:320,column:13}}],line:302},"3":{loc:{start:{line:304,column:16},end:{line:314,column:17}},type:"if",locations:[{start:{line:304,column:16},end:{line:314,column:17}},{start:{line:304,column:16},end:{line:314,column:17}}],line:304},"4":{loc:{start:{line:304,column:20},end:{line:304,column:59}},type:"binary-expr",locations:[{start:{line:304,column:20},end:{line:304,column:40}},{start:{line:304,column:44},end:{line:304,column:59}}],line:304},"5":{loc:{start:{line:336,column:8},end:{line:341,column:9}},type:"if",locations:[{start:{line:336,column:8},end:{line:341,column:9}},{start:{line:336,column:8},end:{line:341,column:9}}],line:336}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},inputSourceMap:{version:3,file:"sac-localisation.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-localisation.service.ts"],names:[],mappings:"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",sourcesContent:["import { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\nimport { Interpolation } from '../utilities/interpolation';\nimport { SACVALIDATIONKEY_SERVICE } from './sac-validationkey.service';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// #region Variables\n\n/**\n * injection token for localisation service\n */\nexport const SACLOCALISATION_SERVICE = new InjectionToken<SacAbstractLocalisationService>('SacLocalisationService');\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * abstract class for localisation in components\n * */\n@Injectable({ providedIn: 'root' })\nexport abstract class SacAbstractLocalisationService implements ISacLocalisationService {\n // #region Protected Getters And Setters\n\n protected abstract get CONFIRM_BUTTON_NO(): Map<string, string>;\n\n protected abstract get CONFIRM_BUTTON_YES(): Map<string, string>;\n\n protected abstract get FILEBROWSER_CONFIRM_DELETEFILE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_CONFIRM_DELETEFOLDER(): Map<string, string>;\n\n protected abstract get FILEBROWSER_DELETE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_GRID_FILE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_GRID_SIZE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_NEWFOLDER(): Map<string, string>;\n\n protected abstract get FILEBROWSER_NO_FILES(): Map<string, string>;\n\n protected abstract get FILEBROWSER_REFRESH(): Map<string, string>;\n\n protected abstract get FILEBROWSER_UPLOAD(): Map<string, string>;\n\n protected abstract get PAGING_PAGEENTRIESTEXT(): Map<string, string>;\n\n protected abstract get PAGING_PAGEOFTEXT(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_CANCEL(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_DIALOGTITLE(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_OK(): Map<string, string>;\n\n protected abstract get UPLOAD_BUTTON_BROWSE(): Map<string, string>;\n\n protected abstract get UPLOAD_BUTTON_UPLOAD(): Map<string, string>;\n\n protected abstract get UPLOAD_NO_FILE_SELECTED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_DATETIMEFORMAT(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_EMAIL(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_FILESMIN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINTEXTLENGTH(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MULTILANGUAGEREQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_PATTERN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_REQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_EMAIL(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_FILESMIN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_PATTERN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_REQUIRED(): Map<string, string>;\n\n // #endregion Protected Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die Methode \xFCbersetzt den eingegebenen Wort/Begriff. Verlangt key und optionell params\n */\n public abstract GetString(key: string, params?: any): Observable<string>;\n\n // #endregion Public Methods\n}\n\n/**\n * default localisation service\n * */\n@Injectable({ providedIn: 'root' })\nexport class SacDefaultLocalisationService extends SacAbstractLocalisationService {\n // #region Properties\n\n /**\n * Language Resources f\xFCr Controls Library\n */\n public data: Map<string, Map<string, string>> = new Map<string, Map<string, string>>();\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Konstruktor\n * */\n constructor(\n @Inject(SACVALIDATIONKEY_SERVICE)\n private validationKeyService: ISacValidationKeyService\n ) {\n super();\n\n // Set Languages\n this.data.set('de', new Map<string, string>());\n\n // Validation\n this.data.get('de').set(validationKeyService.ValidationErrorRequired, this.VALIDATION_ERROR_REQUIRED.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryRequired, this.VALIDATION_ERROR_SUMMARY_REQUIRED.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMinValue, this.VALIDATION_ERROR_MINVALUE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinValue, this.VALIDATION_ERROR_SUMMARY_MINVALUE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorPattern, this.VALIDATION_ERROR_PATTERN.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryPattern, this.VALIDATION_ERROR_SUMMARY_PATTERN.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxValue, this.VALIDATION_ERROR_MAXVALUE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxValue, this.VALIDATION_ERROR_SUMMARY_MAXVALUE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorEmail, this.VALIDATION_ERROR_EMAIL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryEmail, this.VALIDATION_ERROR_SUMMARY_EMAIL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorMinTextLength, this.VALIDATION_ERROR_MINTEXTLENGTH.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMinTextLength,\n this.VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH.get('de')\n );\n this.data.get('de').set(validationKeyService.ValidationErrorMinDate, this.VALIDATION_ERROR_MINDATE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinDate, this.VALIDATION_ERROR_SUMMARY_MINDATE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxDate, this.VALIDATION_ERROR_MAXDATE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxDate, this.VALIDATION_ERROR_SUMMARY_MAXDATE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMinTime, this.VALIDATION_ERROR_MINTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinTime, this.VALIDATION_ERROR_SUMMARY_MINTIME.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxTime, this.VALIDATION_ERROR_MAXTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxTime, this.VALIDATION_ERROR_SUMMARY_MAXTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorDatetimeFormat, this.VALIDATION_ERROR_DATETIMEFORMAT.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryDatetimeFormat,\n this.VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT.get('de')\n );\n this.data.get('de').set(validationKeyService.ValidationErrorFilesMin, this.VALIDATION_ERROR_FILESMIN.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryFilesMin, this.VALIDATION_ERROR_SUMMARY_FILESMIN.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorMultilanguageRequiredAny,\n this.VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny,\n this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorMultilanguageRequired,\n this.VALIDATION_ERROR_MULTILANGUAGEREQUIRED.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMultilanguageRequired,\n this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED.get('de')\n );\n\n // Grid Component\n this.data.get('de').set(validationKeyService.PagingPageOf, this.PAGING_PAGEOFTEXT.get('de'));\n this.data.get('de').set(validationKeyService.PagingEntries, this.PAGING_PAGEENTRIESTEXT.get('de'));\n\n // Upload Component\n this.data.get('de').set(validationKeyService.UploadNoFilesSelected, this.UPLOAD_NO_FILE_SELECTED.get('de'));\n this.data.get('de').set(validationKeyService.UploadButtonUpload, this.UPLOAD_BUTTON_UPLOAD.get('de'));\n this.data.get('de').set(validationKeyService.UploadButtonBrowse, this.UPLOAD_BUTTON_BROWSE.get('de'));\n\n // TinyMCE Component\n this.data.get('de').set(validationKeyService.TinyMceFileselectOk, this.TINYMCE_FILESELECT_OK.get('de'));\n this.data.get('de').set(validationKeyService.TinyMceFileselectCancel, this.TINYMCE_FILESELECT_CANCEL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.TinyMceFileselectDialogtitle, this.TINYMCE_FILESELECT_DIALOGTITLE.get('de'));\n\n // Confirm Dialog Component\n this.data.get('de').set(validationKeyService.ConfirmDefaultButtonYes, this.CONFIRM_BUTTON_YES.get('de'));\n this.data.get('de').set(validationKeyService.ConfirmDefaultButtonNo, this.CONFIRM_BUTTON_NO.get('de'));\n\n // Browser Component\n this.data.get('de').set(validationKeyService.FilebrowserGridNoFiles, this.FILEBROWSER_NO_FILES.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserGridFilename, this.FILEBROWSER_GRID_FILE.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserGridSize, this.FILEBROWSER_GRID_SIZE.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonUpload, this.FILEBROWSER_UPLOAD.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonNewFolder, this.FILEBROWSER_NEWFOLDER.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonRefresh, this.FILEBROWSER_REFRESH.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonDelete, this.FILEBROWSER_DELETE.get('de'));\n this.data\n .get('de')\n .set(\n this.validationKeyService.FilebrowserConfirmTextDeleteFolder,\n this.FILEBROWSER_CONFIRM_DELETEFOLDER.get('de')\n );\n this.data\n .get('de')\n .set(\n this.validationKeyService.FilebrowserConfirmTextDeleteFile,\n this.FILEBROWSER_CONFIRM_DELETEFILE.get('de')\n );\n\n // EN\n // this.data.set('en', new Map<string, string>());\n }\n\n // #endregion Constructors\n\n // #region Protected Getters And Setters\n\n protected get CONFIRM_BUTTON_NO(): Map<string, string> {\n return new Map<string, string>([['de', 'Nein']]);\n }\n\n protected get CONFIRM_BUTTON_YES(): Map<string, string> {\n return new Map<string, string>([['de', 'Ja']]);\n }\n\n protected get FILEBROWSER_CONFIRM_DELETEFILE(): Map<string, string> {\n return new Map<string, string>([['de', 'Soll die Datei gel\xF6scht werden?']]);\n }\n\n protected get FILEBROWSER_CONFIRM_DELETEFOLDER(): Map<string, string> {\n return new Map<string, string>([['de', 'Soll der Ordner gel\xF6scht werden?']]);\n }\n\n protected get FILEBROWSER_DELETE(): Map<string, string> {\n return new Map<string, string>([['de', 'L\xF6schen']]);\n }\n\n protected get FILEBROWSER_GRID_FILE(): Map<string, string> {\n return new Map<string, string>([['de', 'Dateiname']]);\n }\n\n protected get FILEBROWSER_GRID_SIZE(): Map<string, string> {\n return new Map<string, string>([['de', 'Gr\xF6sse']]);\n }\n\n protected get FILEBROWSER_NEWFOLDER(): Map<string, string> {\n return new Map<string, string>([['de', 'Neuer Ordner']]);\n }\n\n protected get FILEBROWSER_NO_FILES(): Map<string, string> {\n return new Map<string, string>([['de', 'Keine Dateien vorhanden']]);\n }\n\n protected get FILEBROWSER_REFRESH(): Map<string, string> {\n return new Map<string, string>([['de', 'Aktualisieren']]);\n }\n\n protected get FILEBROWSER_UPLOAD(): Map<string, string> {\n return new Map<string, string>([['de', 'Legen Sie Dateien hier ab um Sie hochzuladen']]);\n }\n\n protected get PAGING_PAGEENTRIESTEXT(): Map<string, string> {\n return new Map<string, string>([['de', 'Eintr\xE4ge pro Seite']]);\n }\n\n protected get PAGING_PAGEOFTEXT(): Map<string, string> {\n return new Map<string, string>([['de', 'Seite {{CURRENTPAGE}} von {{TOTALPAGES}}']]);\n }\n\n protected get TINYMCE_FILESELECT_CANCEL(): Map<string, string> {\n return new Map<string, string>([['de', 'Abbrechen']]);\n }\n\n protected get TINYMCE_FILESELECT_DIALOGTITLE(): Map<string, string> {\n return new Map<string, string>([['de', 'Datei ausw\xE4hlen']]);\n }\n\n protected get TINYMCE_FILESELECT_OK(): Map<string, string> {\n return new Map<string, string>([['de', 'OK']]);\n }\n\n protected get UPLOAD_BUTTON_BROWSE(): Map<string, string> {\n return new Map<string, string>([['de', 'Browse...']]);\n }\n\n protected get UPLOAD_BUTTON_UPLOAD(): Map<string, string> {\n return new Map<string, string>([['de', 'Upload']]);\n }\n\n protected get UPLOAD_NO_FILE_SELECTED(): Map<string, string> {\n return new Map<string, string>([['de', 'Keine Datei ausgew\xE4hlt']]);\n }\n\n protected get VALIDATION_ERROR_DATETIMEFORMAT(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist kein g\xFCltiges Datum.']]);\n }\n\n protected get VALIDATION_ERROR_EMAIL(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist keine E-Mail Adresse']]);\n }\n\n protected get VALIDATION_ERROR_FILESMIN(): Map<string, string> {\n return new Map<string, string>([['de', 'Es m\xFCssen min. {{MINFILES}} Dateien hochgeladen sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss \xE4lter oder gleich {{MAXDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss \xE4lter oder gleich {{MAXTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" darf nicht gr\xF6sser als {{MAXVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss neuer oder gleich {{MINDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINTEXTLENGTH(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);\n }\n\n protected get VALIDATION_ERROR_MINTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss neuer oder gleich {{MINTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert darf nicht kleiner als {{MINVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MULTILANGUAGEREQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Es m\xFCssen alle Sprachen erfasst sein.']]);\n }\n\n protected get VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY(): Map<string, string> {\n return new Map<string, string>([['de', 'Es muss min. 1 Sprache erfasst sein.']]);\n }\n\n protected get VALIDATION_ERROR_PATTERN(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert entspricht nicht der Format Vorlage.']]);\n }\n\n protected get VALIDATION_ERROR_REQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist erforderlich.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist kein g\xFCltiges Datum.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_EMAIL(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist keine E-Mail Adresse']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_FILESMIN(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss min. {{MINFILES}} Dateien hochgeladen haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss \xE4lter oder gleich {{MAXDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss \xE4lter oder gleich {{MAXTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert darf nicht gr\xF6sser als {{MAXVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss neuer oder gleich {{MINDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss neuer oder gleich {{MINTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" darf nicht kleiner als {{MINVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss alle Sprachen erfasst haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss min. 1 Sprache erfasst haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_PATTERN(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" entspricht nicht der Format Vorlage.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_REQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist erforderlich.']]);\n }\n\n // #endregion Protected Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die Methode ergibt die selecte Sprache (string) anhand von Key und Params\n */\n public GetString(key: string, params?: any): Observable<string> {\n return new Observable<string>((observer) => {\n let language: string = this.GetLanguage();\n\n if (!this.data.has(language)) {\n language = this.GetFallbackLanguage();\n\n // Return Key if no Language exists\n if (!this.data.has(language)) {\n observer.next(key);\n observer.complete();\n return;\n }\n }\n\n if (this.data.get(language).has(key)) {\n const resource = this.data.get(language).get(key);\n if (params !== undefined && params !== null) {\n const formatter: Interpolation = new Interpolation();\n observer.next(formatter.interpolateString(resource, params));\n observer.complete();\n return;\n } else {\n observer.next(resource);\n observer.complete();\n return;\n }\n } else {\n observer.next(key);\n observer.complete();\n return;\n }\n });\n }\n\n // #endregion Public Methods\n\n // #region Private Methods\n\n /**\n * Die Funktion setzt die default Sprache auf DE, falls die Sprach-Setzung nicht m\xF6glich ist.\n */\n private GetFallbackLanguage(): string {\n return 'de';\n }\n\n /**\n * Die Funktion ergibt die ausgew\xE4hlte Sprache.\n */\n private GetLanguage(): string {\n const language: string = navigator.language;\n\n if (language.indexOf('-') >= 0) {\n return language.split('-')[0];\n } else {\n return language;\n }\n }\n\n // #endregion Private Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d17e1df774bd78bc30e964dada9b51f43f5bca0e"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
1
+ function cov_1wdc6hy9p(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-localisation.service.mjs";var hash="e4a0d93dc1aacd176f1d98fa8880eda372dd3fe5";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/services/sac-localisation.service.mjs",statementMap:{"0":{start:{line:10,column:39},end:{line:10,column:83}},"1":{start:{line:17,column:13},end:{line:17,column:194}},"2":{start:{line:18,column:13},end:{line:18,column:169}},"3":{start:{line:20,column:0},end:{line:23,column:14}},"4":{start:{line:35,column:8},end:{line:35,column:16}},"5":{start:{line:36,column:8},end:{line:36,column:57}},"6":{start:{line:41,column:8},end:{line:41,column:30}},"7":{start:{line:43,column:8},end:{line:43,column:39}},"8":{start:{line:45,column:8},end:{line:45,column:120}},"9":{start:{line:46,column:8},end:{line:48,column:120}},"10":{start:{line:49,column:8},end:{line:49,column:120}},"11":{start:{line:50,column:8},end:{line:52,column:120}},"12":{start:{line:53,column:8},end:{line:53,column:118}},"13":{start:{line:54,column:8},end:{line:56,column:118}},"14":{start:{line:57,column:8},end:{line:57,column:120}},"15":{start:{line:58,column:8},end:{line:60,column:120}},"16":{start:{line:61,column:8},end:{line:61,column:114}},"17":{start:{line:62,column:8},end:{line:64,column:114}},"18":{start:{line:65,column:8},end:{line:67,column:115}},"19":{start:{line:68,column:8},end:{line:70,column:130}},"20":{start:{line:71,column:8},end:{line:71,column:118}},"21":{start:{line:72,column:8},end:{line:74,column:118}},"22":{start:{line:75,column:8},end:{line:75,column:118}},"23":{start:{line:76,column:8},end:{line:78,column:118}},"24":{start:{line:79,column:8},end:{line:79,column:118}},"25":{start:{line:80,column:8},end:{line:82,column:118}},"26":{start:{line:83,column:8},end:{line:83,column:118}},"27":{start:{line:84,column:8},end:{line:86,column:118}},"28":{start:{line:87,column:8},end:{line:89,column:117}},"29":{start:{line:90,column:8},end:{line:92,column:132}},"30":{start:{line:93,column:8},end:{line:93,column:120}},"31":{start:{line:94,column:8},end:{line:96,column:120}},"32":{start:{line:97,column:8},end:{line:99,column:137}},"33":{start:{line:100,column:8},end:{line:102,column:152}},"34":{start:{line:103,column:8},end:{line:105,column:131}},"35":{start:{line:106,column:8},end:{line:108,column:146}},"36":{start:{line:110,column:8},end:{line:110,column:101}},"37":{start:{line:111,column:8},end:{line:111,column:107}},"38":{start:{line:113,column:8},end:{line:113,column:116}},"39":{start:{line:114,column:8},end:{line:114,column:110}},"40":{start:{line:115,column:8},end:{line:115,column:110}},"41":{start:{line:117,column:8},end:{line:117,column:112}},"42":{start:{line:118,column:8},end:{line:118,column:120}},"43":{start:{line:119,column:8},end:{line:121,column:115}},"44":{start:{line:123,column:8},end:{line:123,column:113}},"45":{start:{line:124,column:8},end:{line:124,column:111}},"46":{start:{line:126,column:8},end:{line:126,column:114}},"47":{start:{line:127,column:8},end:{line:127,column:116}},"48":{start:{line:128,column:8},end:{line:128,column:112}},"49":{start:{line:129,column:8},end:{line:129,column:113}},"50":{start:{line:130,column:8},end:{line:130,column:119}},"51":{start:{line:131,column:8},end:{line:131,column:115}},"52":{start:{line:132,column:8},end:{line:132,column:113}},"53":{start:{line:133,column:8},end:{line:135,column:128}},"54":{start:{line:136,column:8},end:{line:138,column:124}},"55":{start:{line:145,column:8},end:{line:145,column:41}},"56":{start:{line:148,column:8},end:{line:148,column:39}},"57":{start:{line:151,column:8},end:{line:151,column:68}},"58":{start:{line:154,column:8},end:{line:154,column:69}},"59":{start:{line:157,column:8},end:{line:157,column:44}},"60":{start:{line:160,column:8},end:{line:160,column:46}},"61":{start:{line:163,column:8},end:{line:163,column:43}},"62":{start:{line:166,column:8},end:{line:166,column:49}},"63":{start:{line:169,column:8},end:{line:169,column:60}},"64":{start:{line:172,column:8},end:{line:172,column:50}},"65":{start:{line:175,column:8},end:{line:175,column:81}},"66":{start:{line:178,column:8},end:{line:178,column:55}},"67":{start:{line:181,column:8},end:{line:181,column:77}},"68":{start:{line:184,column:8},end:{line:184,column:46}},"69":{start:{line:187,column:8},end:{line:187,column:52}},"70":{start:{line:190,column:8},end:{line:190,column:39}},"71":{start:{line:193,column:8},end:{line:193,column:46}},"72":{start:{line:196,column:8},end:{line:196,column:43}},"73":{start:{line:199,column:8},end:{line:199,column:59}},"74":{start:{line:202,column:8},end:{line:202,column:66}},"75":{start:{line:205,column:8},end:{line:205,column:66}},"76":{start:{line:208,column:8},end:{line:208,column:90}},"77":{start:{line:211,column:8},end:{line:211,column:82}},"78":{start:{line:214,column:8},end:{line:214,column:82}},"79":{start:{line:217,column:8},end:{line:217,column:95}},"80":{start:{line:220,column:8},end:{line:220,column:82}},"81":{start:{line:223,column:8},end:{line:223,column:83}},"82":{start:{line:226,column:8},end:{line:226,column:82}},"83":{start:{line:229,column:8},end:{line:229,column:83}},"84":{start:{line:232,column:8},end:{line:232,column:74}},"85":{start:{line:235,column:8},end:{line:235,column:73}},"86":{start:{line:238,column:8},end:{line:238,column:78}},"87":{start:{line:241,column:8},end:{line:241,column:59}},"88":{start:{line:244,column:8},end:{line:244,column:78}},"89":{start:{line:247,column:8},end:{line:247,column:78}},"90":{start:{line:250,column:8},end:{line:250,column:103}},"91":{start:{line:253,column:8},end:{line:253,column:94}},"92":{start:{line:256,column:8},end:{line:256,column:94}},"93":{start:{line:259,column:8},end:{line:259,column:83}},"94":{start:{line:262,column:8},end:{line:262,column:94}},"95":{start:{line:265,column:8},end:{line:265,column:95}},"96":{start:{line:268,column:8},end:{line:268,column:94}},"97":{start:{line:271,column:8},end:{line:271,column:95}},"98":{start:{line:274,column:8},end:{line:274,column:87}},"99":{start:{line:277,column:8},end:{line:277,column:88}},"100":{start:{line:280,column:8},end:{line:280,column:90}},"101":{start:{line:283,column:8},end:{line:283,column:71}},"102":{start:{line:294,column:8},end:{line:324,column:11}},"103":{start:{line:295,column:27},end:{line:295,column:45}},"104":{start:{line:296,column:12},end:{line:304,column:13}},"105":{start:{line:297,column:16},end:{line:297,column:54}},"106":{start:{line:299,column:16},end:{line:303,column:17}},"107":{start:{line:300,column:20},end:{line:300,column:39}},"108":{start:{line:301,column:20},end:{line:301,column:40}},"109":{start:{line:302,column:20},end:{line:302,column:27}},"110":{start:{line:305,column:12},end:{line:323,column:13}},"111":{start:{line:306,column:33},end:{line:306,column:65}},"112":{start:{line:307,column:16},end:{line:317,column:17}},"113":{start:{line:308,column:38},end:{line:308,column:57}},"114":{start:{line:309,column:20},end:{line:309,column:81}},"115":{start:{line:310,column:20},end:{line:310,column:40}},"116":{start:{line:311,column:20},end:{line:311,column:27}},"117":{start:{line:314,column:20},end:{line:314,column:44}},"118":{start:{line:315,column:20},end:{line:315,column:40}},"119":{start:{line:316,column:20},end:{line:316,column:27}},"120":{start:{line:320,column:16},end:{line:320,column:35}},"121":{start:{line:321,column:16},end:{line:321,column:36}},"122":{start:{line:322,column:16},end:{line:322,column:23}},"123":{start:{line:332,column:8},end:{line:332,column:20}},"124":{start:{line:338,column:25},end:{line:338,column:43}},"125":{start:{line:339,column:8},end:{line:344,column:9}},"126":{start:{line:340,column:12},end:{line:340,column:42}},"127":{start:{line:343,column:12},end:{line:343,column:28}},"128":{start:{line:346,column:13},end:{line:346,column:228}},"129":{start:{line:347,column:13},end:{line:347,column:168}},"130":{start:{line:349,column:0},end:{line:355,column:28}},"131":{start:{line:352,column:42},end:{line:355,column:22}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:34,column:4},end:{line:34,column:5}},loc:{start:{line:34,column:38},end:{line:141,column:5}},line:34},"1":{name:"(anonymous_1)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:28},end:{line:146,column:5}},line:144},"2":{name:"(anonymous_2)",decl:{start:{line:147,column:4},end:{line:147,column:5}},loc:{start:{line:147,column:29},end:{line:149,column:5}},line:147},"3":{name:"(anonymous_3)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:41},end:{line:152,column:5}},line:150},"4":{name:"(anonymous_4)",decl:{start:{line:153,column:4},end:{line:153,column:5}},loc:{start:{line:153,column:43},end:{line:155,column:5}},line:153},"5":{name:"(anonymous_5)",decl:{start:{line:156,column:4},end:{line:156,column:5}},loc:{start:{line:156,column:29},end:{line:158,column:5}},line:156},"6":{name:"(anonymous_6)",decl:{start:{line:159,column:4},end:{line:159,column:5}},loc:{start:{line:159,column:32},end:{line:161,column:5}},line:159},"7":{name:"(anonymous_7)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:32},end:{line:164,column:5}},line:162},"8":{name:"(anonymous_8)",decl:{start:{line:165,column:4},end:{line:165,column:5}},loc:{start:{line:165,column:32},end:{line:167,column:5}},line:165},"9":{name:"(anonymous_9)",decl:{start:{line:168,column:4},end:{line:168,column:5}},loc:{start:{line:168,column:31},end:{line:170,column:5}},line:168},"10":{name:"(anonymous_10)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:30},end:{line:173,column:5}},line:171},"11":{name:"(anonymous_11)",decl:{start:{line:174,column:4},end:{line:174,column:5}},loc:{start:{line:174,column:29},end:{line:176,column:5}},line:174},"12":{name:"(anonymous_12)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:33},end:{line:179,column:5}},line:177},"13":{name:"(anonymous_13)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:28},end:{line:182,column:5}},line:180},"14":{name:"(anonymous_14)",decl:{start:{line:183,column:4},end:{line:183,column:5}},loc:{start:{line:183,column:36},end:{line:185,column:5}},line:183},"15":{name:"(anonymous_15)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:41},end:{line:188,column:5}},line:186},"16":{name:"(anonymous_16)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:32},end:{line:191,column:5}},line:189},"17":{name:"(anonymous_17)",decl:{start:{line:192,column:4},end:{line:192,column:5}},loc:{start:{line:192,column:31},end:{line:194,column:5}},line:192},"18":{name:"(anonymous_18)",decl:{start:{line:195,column:4},end:{line:195,column:5}},loc:{start:{line:195,column:31},end:{line:197,column:5}},line:195},"19":{name:"(anonymous_19)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:34},end:{line:200,column:5}},line:198},"20":{name:"(anonymous_20)",decl:{start:{line:201,column:4},end:{line:201,column:5}},loc:{start:{line:201,column:42},end:{line:203,column:5}},line:201},"21":{name:"(anonymous_21)",decl:{start:{line:204,column:4},end:{line:204,column:5}},loc:{start:{line:204,column:33},end:{line:206,column:5}},line:204},"22":{name:"(anonymous_22)",decl:{start:{line:207,column:4},end:{line:207,column:5}},loc:{start:{line:207,column:36},end:{line:209,column:5}},line:207},"23":{name:"(anonymous_23)",decl:{start:{line:210,column:4},end:{line:210,column:5}},loc:{start:{line:210,column:35},end:{line:212,column:5}},line:210},"24":{name:"(anonymous_24)",decl:{start:{line:213,column:4},end:{line:213,column:5}},loc:{start:{line:213,column:35},end:{line:215,column:5}},line:213},"25":{name:"(anonymous_25)",decl:{start:{line:216,column:4},end:{line:216,column:5}},loc:{start:{line:216,column:36},end:{line:218,column:5}},line:216},"26":{name:"(anonymous_26)",decl:{start:{line:219,column:4},end:{line:219,column:5}},loc:{start:{line:219,column:35},end:{line:221,column:5}},line:219},"27":{name:"(anonymous_27)",decl:{start:{line:222,column:4},end:{line:222,column:5}},loc:{start:{line:222,column:41},end:{line:224,column:5}},line:222},"28":{name:"(anonymous_28)",decl:{start:{line:225,column:4},end:{line:225,column:5}},loc:{start:{line:225,column:35},end:{line:227,column:5}},line:225},"29":{name:"(anonymous_29)",decl:{start:{line:228,column:4},end:{line:228,column:5}},loc:{start:{line:228,column:36},end:{line:230,column:5}},line:228},"30":{name:"(anonymous_30)",decl:{start:{line:231,column:4},end:{line:231,column:5}},loc:{start:{line:231,column:49},end:{line:233,column:5}},line:231},"31":{name:"(anonymous_31)",decl:{start:{line:234,column:4},end:{line:234,column:5}},loc:{start:{line:234,column:52},end:{line:236,column:5}},line:234},"32":{name:"(anonymous_32)",decl:{start:{line:237,column:4},end:{line:237,column:5}},loc:{start:{line:237,column:35},end:{line:239,column:5}},line:237},"33":{name:"(anonymous_33)",decl:{start:{line:240,column:4},end:{line:240,column:5}},loc:{start:{line:240,column:36},end:{line:242,column:5}},line:240},"34":{name:"(anonymous_34)",decl:{start:{line:243,column:4},end:{line:243,column:5}},loc:{start:{line:243,column:50},end:{line:245,column:5}},line:243},"35":{name:"(anonymous_35)",decl:{start:{line:246,column:4},end:{line:246,column:5}},loc:{start:{line:246,column:41},end:{line:248,column:5}},line:246},"36":{name:"(anonymous_36)",decl:{start:{line:249,column:4},end:{line:249,column:5}},loc:{start:{line:249,column:44},end:{line:251,column:5}},line:249},"37":{name:"(anonymous_37)",decl:{start:{line:252,column:4},end:{line:252,column:5}},loc:{start:{line:252,column:43},end:{line:254,column:5}},line:252},"38":{name:"(anonymous_38)",decl:{start:{line:255,column:4},end:{line:255,column:5}},loc:{start:{line:255,column:43},end:{line:257,column:5}},line:255},"39":{name:"(anonymous_39)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:44},end:{line:260,column:5}},line:258},"40":{name:"(anonymous_40)",decl:{start:{line:261,column:4},end:{line:261,column:5}},loc:{start:{line:261,column:43},end:{line:263,column:5}},line:261},"41":{name:"(anonymous_41)",decl:{start:{line:264,column:4},end:{line:264,column:5}},loc:{start:{line:264,column:49},end:{line:266,column:5}},line:264},"42":{name:"(anonymous_42)",decl:{start:{line:267,column:4},end:{line:267,column:5}},loc:{start:{line:267,column:43},end:{line:269,column:5}},line:267},"43":{name:"(anonymous_43)",decl:{start:{line:270,column:4},end:{line:270,column:5}},loc:{start:{line:270,column:44},end:{line:272,column:5}},line:270},"44":{name:"(anonymous_44)",decl:{start:{line:273,column:4},end:{line:273,column:5}},loc:{start:{line:273,column:57},end:{line:275,column:5}},line:273},"45":{name:"(anonymous_45)",decl:{start:{line:276,column:4},end:{line:276,column:5}},loc:{start:{line:276,column:60},end:{line:278,column:5}},line:276},"46":{name:"(anonymous_46)",decl:{start:{line:279,column:4},end:{line:279,column:5}},loc:{start:{line:279,column:43},end:{line:281,column:5}},line:279},"47":{name:"(anonymous_47)",decl:{start:{line:282,column:4},end:{line:282,column:5}},loc:{start:{line:282,column:44},end:{line:284,column:5}},line:282},"48":{name:"(anonymous_48)",decl:{start:{line:293,column:4},end:{line:293,column:5}},loc:{start:{line:293,column:27},end:{line:325,column:5}},line:293},"49":{name:"(anonymous_49)",decl:{start:{line:294,column:30},end:{line:294,column:31}},loc:{start:{line:294,column:44},end:{line:324,column:9}},line:294},"50":{name:"(anonymous_50)",decl:{start:{line:331,column:4},end:{line:331,column:5}},loc:{start:{line:331,column:26},end:{line:333,column:5}},line:331},"51":{name:"(anonymous_51)",decl:{start:{line:337,column:4},end:{line:337,column:5}},loc:{start:{line:337,column:18},end:{line:345,column:5}},line:337},"52":{name:"(anonymous_52)",decl:{start:{line:352,column:28},end:{line:352,column:29}},loc:{start:{line:352,column:40},end:{line:355,column:24}},line:352}},branchMap:{"0":{loc:{start:{line:296,column:12},end:{line:304,column:13}},type:"if",locations:[{start:{line:296,column:12},end:{line:304,column:13}},{start:{line:296,column:12},end:{line:304,column:13}}],line:296},"1":{loc:{start:{line:299,column:16},end:{line:303,column:17}},type:"if",locations:[{start:{line:299,column:16},end:{line:303,column:17}},{start:{line:299,column:16},end:{line:303,column:17}}],line:299},"2":{loc:{start:{line:305,column:12},end:{line:323,column:13}},type:"if",locations:[{start:{line:305,column:12},end:{line:323,column:13}},{start:{line:305,column:12},end:{line:323,column:13}}],line:305},"3":{loc:{start:{line:307,column:16},end:{line:317,column:17}},type:"if",locations:[{start:{line:307,column:16},end:{line:317,column:17}},{start:{line:307,column:16},end:{line:317,column:17}}],line:307},"4":{loc:{start:{line:307,column:20},end:{line:307,column:59}},type:"binary-expr",locations:[{start:{line:307,column:20},end:{line:307,column:40}},{start:{line:307,column:44},end:{line:307,column:59}}],line:307},"5":{loc:{start:{line:339,column:8},end:{line:344,column:9}},type:"if",locations:[{start:{line:339,column:8},end:{line:344,column:9}},{start:{line:339,column:8},end:{line:344,column:9}}],line:339}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},inputSourceMap:{version:3,file:"sac-localisation.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-localisation.service.ts"],names:[],mappings:"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",sourcesContent:["import { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\nimport { ISacValidationKeyService } from '../interfaces/ISacValidationKeyService';\nimport { Interpolation } from '../utilities/interpolation';\nimport { SACVALIDATIONKEY_SERVICE } from './sac-validationkey.service';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// #region Variables\n\n/**\n * injection token for localisation service\n */\nexport const SACLOCALISATION_SERVICE = new InjectionToken<SacAbstractLocalisationService>('SacLocalisationService');\n\n// #endregion Variables\n\n// #region Exported Classes\n\n/**\n * abstract class for localisation in components\n * */\n@Injectable({ providedIn: 'root' })\nexport abstract class SacAbstractLocalisationService implements ISacLocalisationService {\n // #region Protected Getters And Setters\n\n protected abstract get CONFIRM_BUTTON_NO(): Map<string, string>;\n\n protected abstract get CONFIRM_BUTTON_YES(): Map<string, string>;\n\n protected abstract get FILEBROWSER_CONFIRM_DELETEFILE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_CONFIRM_DELETEFOLDER(): Map<string, string>;\n\n protected abstract get FILEBROWSER_DELETE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_GRID_FILE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_GRID_SIZE(): Map<string, string>;\n\n protected abstract get FILEBROWSER_NEWFOLDER(): Map<string, string>;\n\n protected abstract get FILEBROWSER_NO_FILES(): Map<string, string>;\n\n protected abstract get FILEBROWSER_REFRESH(): Map<string, string>;\n\n protected abstract get FILEBROWSER_UPLOAD(): Map<string, string>;\n\n protected abstract get PAGING_PAGEENTRIESTEXT(): Map<string, string>;\n\n protected abstract get PAGING_PAGEOFTEXT(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_CANCEL(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_DIALOGTITLE(): Map<string, string>;\n\n protected abstract get TINYMCE_FILESELECT_OK(): Map<string, string>;\n\n protected abstract get UPLOAD_BUTTON_BROWSE(): Map<string, string>;\n\n protected abstract get UPLOAD_BUTTON_UPLOAD(): Map<string, string>;\n\n protected abstract get UPLOAD_NO_FILE_SELECTED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_DATETIMEFORMAT(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_EMAIL(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_FILESMIN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MAXVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINTEXTLENGTH(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MINVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MULTILANGUAGEREQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_PATTERN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_REQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_EMAIL(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_FILESMIN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MAXVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINDATE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINTIME(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MINVALUE(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_PATTERN(): Map<string, string>;\n\n protected abstract get VALIDATION_ERROR_SUMMARY_REQUIRED(): Map<string, string>;\n\n // #endregion Protected Getters And Setters\n\n // #region Public Methods\n\n /**\n * The method translates the provided word/term. Requires a key and optional params\n */\n public abstract GetString(key: string, params?: any): Observable<string>;\n\n // #endregion Public Methods\n}\n\n/**\n * default localisation service\n * */\n@Injectable({ providedIn: 'root' })\nexport class SacDefaultLocalisationService extends SacAbstractLocalisationService {\n // #region Properties\n\n /**\n * Language resources for the controls library\n */\n public data: Map<string, Map<string, string>> = new Map<string, Map<string, string>>();\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param validationKeyService Service for validation key localization\n */\n constructor(\n @Inject(SACVALIDATIONKEY_SERVICE)\n private validationKeyService: ISacValidationKeyService\n ) {\n super();\n\n // Set Languages\n this.data.set('de', new Map<string, string>());\n\n // Validation\n this.data.get('de').set(validationKeyService.ValidationErrorRequired, this.VALIDATION_ERROR_REQUIRED.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryRequired, this.VALIDATION_ERROR_SUMMARY_REQUIRED.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMinValue, this.VALIDATION_ERROR_MINVALUE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinValue, this.VALIDATION_ERROR_SUMMARY_MINVALUE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorPattern, this.VALIDATION_ERROR_PATTERN.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryPattern, this.VALIDATION_ERROR_SUMMARY_PATTERN.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxValue, this.VALIDATION_ERROR_MAXVALUE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxValue, this.VALIDATION_ERROR_SUMMARY_MAXVALUE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorEmail, this.VALIDATION_ERROR_EMAIL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryEmail, this.VALIDATION_ERROR_SUMMARY_EMAIL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorMinTextLength, this.VALIDATION_ERROR_MINTEXTLENGTH.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMinTextLength,\n this.VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH.get('de')\n );\n this.data.get('de').set(validationKeyService.ValidationErrorMinDate, this.VALIDATION_ERROR_MINDATE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinDate, this.VALIDATION_ERROR_SUMMARY_MINDATE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxDate, this.VALIDATION_ERROR_MAXDATE.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxDate, this.VALIDATION_ERROR_SUMMARY_MAXDATE.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMinTime, this.VALIDATION_ERROR_MINTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMinTime, this.VALIDATION_ERROR_SUMMARY_MINTIME.get('de'));\n this.data.get('de').set(validationKeyService.ValidationErrorMaxTime, this.VALIDATION_ERROR_MAXTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryMaxTime, this.VALIDATION_ERROR_SUMMARY_MAXTIME.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorDatetimeFormat, this.VALIDATION_ERROR_DATETIMEFORMAT.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryDatetimeFormat,\n this.VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT.get('de')\n );\n this.data.get('de').set(validationKeyService.ValidationErrorFilesMin, this.VALIDATION_ERROR_FILESMIN.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.ValidationErrorSummaryFilesMin, this.VALIDATION_ERROR_SUMMARY_FILESMIN.get('de'));\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorMultilanguageRequiredAny,\n this.VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny,\n this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorMultilanguageRequired,\n this.VALIDATION_ERROR_MULTILANGUAGEREQUIRED.get('de')\n );\n this.data\n .get('de')\n .set(\n validationKeyService.ValidationErrorSummaryMultilanguageRequired,\n this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED.get('de')\n );\n\n // Grid Component\n this.data.get('de').set(validationKeyService.PagingPageOf, this.PAGING_PAGEOFTEXT.get('de'));\n this.data.get('de').set(validationKeyService.PagingEntries, this.PAGING_PAGEENTRIESTEXT.get('de'));\n\n // Upload Component\n this.data.get('de').set(validationKeyService.UploadNoFilesSelected, this.UPLOAD_NO_FILE_SELECTED.get('de'));\n this.data.get('de').set(validationKeyService.UploadButtonUpload, this.UPLOAD_BUTTON_UPLOAD.get('de'));\n this.data.get('de').set(validationKeyService.UploadButtonBrowse, this.UPLOAD_BUTTON_BROWSE.get('de'));\n\n // TinyMCE Component\n this.data.get('de').set(validationKeyService.TinyMceFileselectOk, this.TINYMCE_FILESELECT_OK.get('de'));\n this.data.get('de').set(validationKeyService.TinyMceFileselectCancel, this.TINYMCE_FILESELECT_CANCEL.get('de'));\n this.data\n .get('de')\n .set(validationKeyService.TinyMceFileselectDialogtitle, this.TINYMCE_FILESELECT_DIALOGTITLE.get('de'));\n\n // Confirm Dialog Component\n this.data.get('de').set(validationKeyService.ConfirmDefaultButtonYes, this.CONFIRM_BUTTON_YES.get('de'));\n this.data.get('de').set(validationKeyService.ConfirmDefaultButtonNo, this.CONFIRM_BUTTON_NO.get('de'));\n\n // Browser Component\n this.data.get('de').set(validationKeyService.FilebrowserGridNoFiles, this.FILEBROWSER_NO_FILES.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserGridFilename, this.FILEBROWSER_GRID_FILE.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserGridSize, this.FILEBROWSER_GRID_SIZE.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonUpload, this.FILEBROWSER_UPLOAD.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonNewFolder, this.FILEBROWSER_NEWFOLDER.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonRefresh, this.FILEBROWSER_REFRESH.get('de'));\n this.data.get('de').set(validationKeyService.FilebrowserButtonDelete, this.FILEBROWSER_DELETE.get('de'));\n this.data\n .get('de')\n .set(\n this.validationKeyService.FilebrowserConfirmTextDeleteFolder,\n this.FILEBROWSER_CONFIRM_DELETEFOLDER.get('de')\n );\n this.data\n .get('de')\n .set(\n this.validationKeyService.FilebrowserConfirmTextDeleteFile,\n this.FILEBROWSER_CONFIRM_DELETEFILE.get('de')\n );\n\n // EN\n // this.data.set('en', new Map<string, string>());\n }\n\n // #endregion Constructors\n\n // #region Protected Getters And Setters\n\n protected get CONFIRM_BUTTON_NO(): Map<string, string> {\n return new Map<string, string>([['de', 'Nein']]);\n }\n\n protected get CONFIRM_BUTTON_YES(): Map<string, string> {\n return new Map<string, string>([['de', 'Ja']]);\n }\n\n protected get FILEBROWSER_CONFIRM_DELETEFILE(): Map<string, string> {\n return new Map<string, string>([['de', 'Soll die Datei gel\xF6scht werden?']]);\n }\n\n protected get FILEBROWSER_CONFIRM_DELETEFOLDER(): Map<string, string> {\n return new Map<string, string>([['de', 'Soll der Ordner gel\xF6scht werden?']]);\n }\n\n protected get FILEBROWSER_DELETE(): Map<string, string> {\n return new Map<string, string>([['de', 'L\xF6schen']]);\n }\n\n protected get FILEBROWSER_GRID_FILE(): Map<string, string> {\n return new Map<string, string>([['de', 'Dateiname']]);\n }\n\n protected get FILEBROWSER_GRID_SIZE(): Map<string, string> {\n return new Map<string, string>([['de', 'Gr\xF6sse']]);\n }\n\n protected get FILEBROWSER_NEWFOLDER(): Map<string, string> {\n return new Map<string, string>([['de', 'Neuer Ordner']]);\n }\n\n protected get FILEBROWSER_NO_FILES(): Map<string, string> {\n return new Map<string, string>([['de', 'Keine Dateien vorhanden']]);\n }\n\n protected get FILEBROWSER_REFRESH(): Map<string, string> {\n return new Map<string, string>([['de', 'Aktualisieren']]);\n }\n\n protected get FILEBROWSER_UPLOAD(): Map<string, string> {\n return new Map<string, string>([['de', 'Legen Sie Dateien hier ab um Sie hochzuladen']]);\n }\n\n protected get PAGING_PAGEENTRIESTEXT(): Map<string, string> {\n return new Map<string, string>([['de', 'Eintr\xE4ge pro Seite']]);\n }\n\n protected get PAGING_PAGEOFTEXT(): Map<string, string> {\n return new Map<string, string>([['de', 'Seite {{CURRENTPAGE}} von {{TOTALPAGES}}']]);\n }\n\n protected get TINYMCE_FILESELECT_CANCEL(): Map<string, string> {\n return new Map<string, string>([['de', 'Abbrechen']]);\n }\n\n protected get TINYMCE_FILESELECT_DIALOGTITLE(): Map<string, string> {\n return new Map<string, string>([['de', 'Datei ausw\xE4hlen']]);\n }\n\n protected get TINYMCE_FILESELECT_OK(): Map<string, string> {\n return new Map<string, string>([['de', 'OK']]);\n }\n\n protected get UPLOAD_BUTTON_BROWSE(): Map<string, string> {\n return new Map<string, string>([['de', 'Browse...']]);\n }\n\n protected get UPLOAD_BUTTON_UPLOAD(): Map<string, string> {\n return new Map<string, string>([['de', 'Upload']]);\n }\n\n protected get UPLOAD_NO_FILE_SELECTED(): Map<string, string> {\n return new Map<string, string>([['de', 'Keine Datei ausgew\xE4hlt']]);\n }\n\n protected get VALIDATION_ERROR_DATETIMEFORMAT(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist kein g\xFCltiges Datum.']]);\n }\n\n protected get VALIDATION_ERROR_EMAIL(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist keine E-Mail Adresse']]);\n }\n\n protected get VALIDATION_ERROR_FILESMIN(): Map<string, string> {\n return new Map<string, string>([['de', 'Es m\xFCssen min. {{MINFILES}} Dateien hochgeladen sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss \xE4lter oder gleich {{MAXDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss \xE4lter oder gleich {{MAXTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MAXVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" darf nicht gr\xF6sser als {{MAXVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss neuer oder gleich {{MINDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINTEXTLENGTH(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);\n }\n\n protected get VALIDATION_ERROR_MINTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld muss neuer oder gleich {{MINTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MINVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert darf nicht kleiner als {{MINVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_MULTILANGUAGEREQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Es m\xFCssen alle Sprachen erfasst sein.']]);\n }\n\n protected get VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY(): Map<string, string> {\n return new Map<string, string>([['de', 'Es muss min. 1 Sprache erfasst sein.']]);\n }\n\n protected get VALIDATION_ERROR_PATTERN(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert entspricht nicht der Format Vorlage.']]);\n }\n\n protected get VALIDATION_ERROR_REQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld ist erforderlich.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist kein g\xFCltiges Datum.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_EMAIL(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist keine E-Mail Adresse']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_FILESMIN(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss min. {{MINFILES}} Dateien hochgeladen haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss \xE4lter oder gleich {{MAXDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss \xE4lter oder gleich {{MAXTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MAXVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Wert darf nicht gr\xF6sser als {{MAXVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINDATE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss neuer oder gleich {{MINDATE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINTIME(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss neuer oder gleich {{MINTIME}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MINVALUE(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" darf nicht kleiner als {{MINVALUE}} sein.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss alle Sprachen erfasst haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" muss min. 1 Sprache erfasst haben.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_PATTERN(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" entspricht nicht der Format Vorlage.']]);\n }\n\n protected get VALIDATION_ERROR_SUMMARY_REQUIRED(): Map<string, string> {\n return new Map<string, string>([['de', 'Feld \"{{FIELD}}\" ist erforderlich.']]);\n }\n\n // #endregion Protected Getters And Setters\n\n // #region Public Methods\n\n /**\n * The method returns the selected language (string) based on key and params\n * @param key The resource key to retrieve\n * @param params Optional parameters for string interpolation\n * @returns Observable string with the localized resource\n */\n public GetString(key: string, params?: any): Observable<string> {\n return new Observable<string>((observer) => {\n let language: string = this.GetLanguage();\n\n if (!this.data.has(language)) {\n language = this.GetFallbackLanguage();\n\n // Return Key if no Language exists\n if (!this.data.has(language)) {\n observer.next(key);\n observer.complete();\n return;\n }\n }\n\n if (this.data.get(language).has(key)) {\n const resource = this.data.get(language).get(key);\n if (params !== undefined && params !== null) {\n const formatter: Interpolation = new Interpolation();\n observer.next(formatter.interpolateString(resource, params));\n observer.complete();\n return;\n } else {\n observer.next(resource);\n observer.complete();\n return;\n }\n } else {\n observer.next(key);\n observer.complete();\n return;\n }\n });\n }\n\n // #endregion Public Methods\n\n // #region Private Methods\n\n /**\n * The function sets the default language to DE if language setting is not possible.\n */\n private GetFallbackLanguage(): string {\n return 'de';\n }\n\n /**\n * The function returns the selected language.\n */\n private GetLanguage(): string {\n const language: string = navigator.language;\n\n if (language.indexOf('-') >= 0) {\n return language.split('-')[0];\n } else {\n return language;\n }\n }\n\n // #endregion Private Methods\n}\n\n// #endregion Exported Classes\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e4a0d93dc1aacd176f1d98fa8880eda372dd3fe5"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
2
  cov_1wdc6hy9p=function(){return actualCoverage;};}return actualCoverage;}cov_1wdc6hy9p();import{Interpolation}from'../utilities/interpolation';import{SACVALIDATIONKEY_SERVICE}from'./sac-validationkey.service';import{Inject,Injectable,InjectionToken}from'@angular/core';import{Observable}from'rxjs';import*as i0 from"@angular/core";// #region Variables
3
3
  /**
4
4
  * injection token for localisation service
@@ -6,15 +6,16 @@ cov_1wdc6hy9p=function(){return actualCoverage;};}return actualCoverage;}cov_1wd
6
6
  // #region Exported Classes
7
7
  /**
8
8
  * abstract class for localisation in components
9
- * */class SacAbstractLocalisationService{static{cov_1wdc6hy9p().s[1]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,deps:[],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1wdc6hy9p().s[2]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,providedIn:'root'});}}export{SacAbstractLocalisationService};cov_1wdc6hy9p().s[3]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});/**
9
+ * */export class SacAbstractLocalisationService{static{cov_1wdc6hy9p().s[1]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,deps:[],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1wdc6hy9p().s[2]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,providedIn:'root'});}}cov_1wdc6hy9p().s[3]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractLocalisationService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});/**
10
10
  * default localisation service
11
- * */class SacDefaultLocalisationService extends SacAbstractLocalisationService{// #endregion Properties
11
+ * */export class SacDefaultLocalisationService extends SacAbstractLocalisationService{// #endregion Properties
12
12
  // #region Constructors
13
13
  /**
14
- * Konstruktor
15
- * */constructor(validationKeyService){cov_1wdc6hy9p().f[0]++;cov_1wdc6hy9p().s[4]++;super();cov_1wdc6hy9p().s[5]++;this.validationKeyService=validationKeyService;// #region Properties
14
+ * Constructor
15
+ * @param validationKeyService Service for validation key localization
16
+ */constructor(validationKeyService){cov_1wdc6hy9p().f[0]++;cov_1wdc6hy9p().s[4]++;super();cov_1wdc6hy9p().s[5]++;this.validationKeyService=validationKeyService;// #region Properties
16
17
  /**
17
- * Language Resources für Controls Library
18
+ * Language resources for the controls library
18
19
  */cov_1wdc6hy9p().s[6]++;this.data=new Map();// Set Languages
19
20
  cov_1wdc6hy9p().s[7]++;this.data.set('de',new Map());// Validation
20
21
  cov_1wdc6hy9p().s[8]++;this.data.get('de').set(validationKeyService.ValidationErrorRequired,this.VALIDATION_ERROR_REQUIRED.get('de'));cov_1wdc6hy9p().s[9]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryRequired,this.VALIDATION_ERROR_SUMMARY_REQUIRED.get('de'));cov_1wdc6hy9p().s[10]++;this.data.get('de').set(validationKeyService.ValidationErrorMinValue,this.VALIDATION_ERROR_MINVALUE.get('de'));cov_1wdc6hy9p().s[11]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMinValue,this.VALIDATION_ERROR_SUMMARY_MINVALUE.get('de'));cov_1wdc6hy9p().s[12]++;this.data.get('de').set(validationKeyService.ValidationErrorPattern,this.VALIDATION_ERROR_PATTERN.get('de'));cov_1wdc6hy9p().s[13]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryPattern,this.VALIDATION_ERROR_SUMMARY_PATTERN.get('de'));cov_1wdc6hy9p().s[14]++;this.data.get('de').set(validationKeyService.ValidationErrorMaxValue,this.VALIDATION_ERROR_MAXVALUE.get('de'));cov_1wdc6hy9p().s[15]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMaxValue,this.VALIDATION_ERROR_SUMMARY_MAXVALUE.get('de'));cov_1wdc6hy9p().s[16]++;this.data.get('de').set(validationKeyService.ValidationErrorEmail,this.VALIDATION_ERROR_EMAIL.get('de'));cov_1wdc6hy9p().s[17]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryEmail,this.VALIDATION_ERROR_SUMMARY_EMAIL.get('de'));cov_1wdc6hy9p().s[18]++;this.data.get('de').set(validationKeyService.ValidationErrorMinTextLength,this.VALIDATION_ERROR_MINTEXTLENGTH.get('de'));cov_1wdc6hy9p().s[19]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMinTextLength,this.VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH.get('de'));cov_1wdc6hy9p().s[20]++;this.data.get('de').set(validationKeyService.ValidationErrorMinDate,this.VALIDATION_ERROR_MINDATE.get('de'));cov_1wdc6hy9p().s[21]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMinDate,this.VALIDATION_ERROR_SUMMARY_MINDATE.get('de'));cov_1wdc6hy9p().s[22]++;this.data.get('de').set(validationKeyService.ValidationErrorMaxDate,this.VALIDATION_ERROR_MAXDATE.get('de'));cov_1wdc6hy9p().s[23]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMaxDate,this.VALIDATION_ERROR_SUMMARY_MAXDATE.get('de'));cov_1wdc6hy9p().s[24]++;this.data.get('de').set(validationKeyService.ValidationErrorMinTime,this.VALIDATION_ERROR_MINTIME.get('de'));cov_1wdc6hy9p().s[25]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMinTime,this.VALIDATION_ERROR_SUMMARY_MINTIME.get('de'));cov_1wdc6hy9p().s[26]++;this.data.get('de').set(validationKeyService.ValidationErrorMaxTime,this.VALIDATION_ERROR_MAXTIME.get('de'));cov_1wdc6hy9p().s[27]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMaxTime,this.VALIDATION_ERROR_SUMMARY_MAXTIME.get('de'));cov_1wdc6hy9p().s[28]++;this.data.get('de').set(validationKeyService.ValidationErrorDatetimeFormat,this.VALIDATION_ERROR_DATETIMEFORMAT.get('de'));cov_1wdc6hy9p().s[29]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryDatetimeFormat,this.VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT.get('de'));cov_1wdc6hy9p().s[30]++;this.data.get('de').set(validationKeyService.ValidationErrorFilesMin,this.VALIDATION_ERROR_FILESMIN.get('de'));cov_1wdc6hy9p().s[31]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryFilesMin,this.VALIDATION_ERROR_SUMMARY_FILESMIN.get('de'));cov_1wdc6hy9p().s[32]++;this.data.get('de').set(validationKeyService.ValidationErrorMultilanguageRequiredAny,this.VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY.get('de'));cov_1wdc6hy9p().s[33]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMultilanguageRequiredAny,this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY.get('de'));cov_1wdc6hy9p().s[34]++;this.data.get('de').set(validationKeyService.ValidationErrorMultilanguageRequired,this.VALIDATION_ERROR_MULTILANGUAGEREQUIRED.get('de'));cov_1wdc6hy9p().s[35]++;this.data.get('de').set(validationKeyService.ValidationErrorSummaryMultilanguageRequired,this.VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED.get('de'));// Grid Component
@@ -29,13 +30,16 @@ cov_1wdc6hy9p().s[46]++;this.data.get('de').set(validationKeyService.Filebrowser
29
30
  get CONFIRM_BUTTON_NO(){cov_1wdc6hy9p().f[1]++;cov_1wdc6hy9p().s[55]++;return new Map([['de','Nein']]);}get CONFIRM_BUTTON_YES(){cov_1wdc6hy9p().f[2]++;cov_1wdc6hy9p().s[56]++;return new Map([['de','Ja']]);}get FILEBROWSER_CONFIRM_DELETEFILE(){cov_1wdc6hy9p().f[3]++;cov_1wdc6hy9p().s[57]++;return new Map([['de','Soll die Datei gelöscht werden?']]);}get FILEBROWSER_CONFIRM_DELETEFOLDER(){cov_1wdc6hy9p().f[4]++;cov_1wdc6hy9p().s[58]++;return new Map([['de','Soll der Ordner gelöscht werden?']]);}get FILEBROWSER_DELETE(){cov_1wdc6hy9p().f[5]++;cov_1wdc6hy9p().s[59]++;return new Map([['de','Löschen']]);}get FILEBROWSER_GRID_FILE(){cov_1wdc6hy9p().f[6]++;cov_1wdc6hy9p().s[60]++;return new Map([['de','Dateiname']]);}get FILEBROWSER_GRID_SIZE(){cov_1wdc6hy9p().f[7]++;cov_1wdc6hy9p().s[61]++;return new Map([['de','Grösse']]);}get FILEBROWSER_NEWFOLDER(){cov_1wdc6hy9p().f[8]++;cov_1wdc6hy9p().s[62]++;return new Map([['de','Neuer Ordner']]);}get FILEBROWSER_NO_FILES(){cov_1wdc6hy9p().f[9]++;cov_1wdc6hy9p().s[63]++;return new Map([['de','Keine Dateien vorhanden']]);}get FILEBROWSER_REFRESH(){cov_1wdc6hy9p().f[10]++;cov_1wdc6hy9p().s[64]++;return new Map([['de','Aktualisieren']]);}get FILEBROWSER_UPLOAD(){cov_1wdc6hy9p().f[11]++;cov_1wdc6hy9p().s[65]++;return new Map([['de','Legen Sie Dateien hier ab um Sie hochzuladen']]);}get PAGING_PAGEENTRIESTEXT(){cov_1wdc6hy9p().f[12]++;cov_1wdc6hy9p().s[66]++;return new Map([['de','Einträge pro Seite']]);}get PAGING_PAGEOFTEXT(){cov_1wdc6hy9p().f[13]++;cov_1wdc6hy9p().s[67]++;return new Map([['de','Seite {{CURRENTPAGE}} von {{TOTALPAGES}}']]);}get TINYMCE_FILESELECT_CANCEL(){cov_1wdc6hy9p().f[14]++;cov_1wdc6hy9p().s[68]++;return new Map([['de','Abbrechen']]);}get TINYMCE_FILESELECT_DIALOGTITLE(){cov_1wdc6hy9p().f[15]++;cov_1wdc6hy9p().s[69]++;return new Map([['de','Datei auswählen']]);}get TINYMCE_FILESELECT_OK(){cov_1wdc6hy9p().f[16]++;cov_1wdc6hy9p().s[70]++;return new Map([['de','OK']]);}get UPLOAD_BUTTON_BROWSE(){cov_1wdc6hy9p().f[17]++;cov_1wdc6hy9p().s[71]++;return new Map([['de','Browse...']]);}get UPLOAD_BUTTON_UPLOAD(){cov_1wdc6hy9p().f[18]++;cov_1wdc6hy9p().s[72]++;return new Map([['de','Upload']]);}get UPLOAD_NO_FILE_SELECTED(){cov_1wdc6hy9p().f[19]++;cov_1wdc6hy9p().s[73]++;return new Map([['de','Keine Datei ausgewählt']]);}get VALIDATION_ERROR_DATETIMEFORMAT(){cov_1wdc6hy9p().f[20]++;cov_1wdc6hy9p().s[74]++;return new Map([['de','Feld ist kein gültiges Datum.']]);}get VALIDATION_ERROR_EMAIL(){cov_1wdc6hy9p().f[21]++;cov_1wdc6hy9p().s[75]++;return new Map([['de','Feld ist keine E-Mail Adresse']]);}get VALIDATION_ERROR_FILESMIN(){cov_1wdc6hy9p().f[22]++;cov_1wdc6hy9p().s[76]++;return new Map([['de','Es müssen min. {{MINFILES}} Dateien hochgeladen sein.']]);}get VALIDATION_ERROR_MAXDATE(){cov_1wdc6hy9p().f[23]++;cov_1wdc6hy9p().s[77]++;return new Map([['de','Feld muss älter oder gleich {{MAXDATE}} sein.']]);}get VALIDATION_ERROR_MAXTIME(){cov_1wdc6hy9p().f[24]++;cov_1wdc6hy9p().s[78]++;return new Map([['de','Feld muss älter oder gleich {{MAXTIME}} sein.']]);}get VALIDATION_ERROR_MAXVALUE(){cov_1wdc6hy9p().f[25]++;cov_1wdc6hy9p().s[79]++;return new Map([['de','Feld "{{FIELD}}" darf nicht grösser als {{MAXVALUE}} sein.']]);}get VALIDATION_ERROR_MINDATE(){cov_1wdc6hy9p().f[26]++;cov_1wdc6hy9p().s[80]++;return new Map([['de','Feld muss neuer oder gleich {{MINDATE}} sein.']]);}get VALIDATION_ERROR_MINTEXTLENGTH(){cov_1wdc6hy9p().f[27]++;cov_1wdc6hy9p().s[81]++;return new Map([['de','Feld erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);}get VALIDATION_ERROR_MINTIME(){cov_1wdc6hy9p().f[28]++;cov_1wdc6hy9p().s[82]++;return new Map([['de','Feld muss neuer oder gleich {{MINTIME}} sein.']]);}get VALIDATION_ERROR_MINVALUE(){cov_1wdc6hy9p().f[29]++;cov_1wdc6hy9p().s[83]++;return new Map([['de','Wert darf nicht kleiner als {{MINVALUE}} sein.']]);}get VALIDATION_ERROR_MULTILANGUAGEREQUIRED(){cov_1wdc6hy9p().f[30]++;cov_1wdc6hy9p().s[84]++;return new Map([['de','Es müssen alle Sprachen erfasst sein.']]);}get VALIDATION_ERROR_MULTILANGUAGEREQUIREDANY(){cov_1wdc6hy9p().f[31]++;cov_1wdc6hy9p().s[85]++;return new Map([['de','Es muss min. 1 Sprache erfasst sein.']]);}get VALIDATION_ERROR_PATTERN(){cov_1wdc6hy9p().f[32]++;cov_1wdc6hy9p().s[86]++;return new Map([['de','Wert entspricht nicht der Format Vorlage.']]);}get VALIDATION_ERROR_REQUIRED(){cov_1wdc6hy9p().f[33]++;cov_1wdc6hy9p().s[87]++;return new Map([['de','Feld ist erforderlich.']]);}get VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT(){cov_1wdc6hy9p().f[34]++;cov_1wdc6hy9p().s[88]++;return new Map([['de','Feld "{{FIELD}}" ist kein gültiges Datum.']]);}get VALIDATION_ERROR_SUMMARY_EMAIL(){cov_1wdc6hy9p().f[35]++;cov_1wdc6hy9p().s[89]++;return new Map([['de','Feld "{{FIELD}}" ist keine E-Mail Adresse']]);}get VALIDATION_ERROR_SUMMARY_FILESMIN(){cov_1wdc6hy9p().f[36]++;cov_1wdc6hy9p().s[90]++;return new Map([['de','Feld "{{FIELD}}" muss min. {{MINFILES}} Dateien hochgeladen haben.']]);}get VALIDATION_ERROR_SUMMARY_MAXDATE(){cov_1wdc6hy9p().f[37]++;cov_1wdc6hy9p().s[91]++;return new Map([['de','Feld "{{FIELD}}" muss älter oder gleich {{MAXDATE}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MAXTIME(){cov_1wdc6hy9p().f[38]++;cov_1wdc6hy9p().s[92]++;return new Map([['de','Feld "{{FIELD}}" muss älter oder gleich {{MAXTIME}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MAXVALUE(){cov_1wdc6hy9p().f[39]++;cov_1wdc6hy9p().s[93]++;return new Map([['de','Wert darf nicht grösser als {{MAXVALUE}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MINDATE(){cov_1wdc6hy9p().f[40]++;cov_1wdc6hy9p().s[94]++;return new Map([['de','Feld "{{FIELD}}" muss neuer oder gleich {{MINDATE}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH(){cov_1wdc6hy9p().f[41]++;cov_1wdc6hy9p().s[95]++;return new Map([['de','Feld "{{FIELD}}" erfordert min. {{MINTEXTLENGTH}} Zeichen.']]);}get VALIDATION_ERROR_SUMMARY_MINTIME(){cov_1wdc6hy9p().f[42]++;cov_1wdc6hy9p().s[96]++;return new Map([['de','Feld "{{FIELD}}" muss neuer oder gleich {{MINTIME}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MINVALUE(){cov_1wdc6hy9p().f[43]++;cov_1wdc6hy9p().s[97]++;return new Map([['de','Feld "{{FIELD}}" darf nicht kleiner als {{MINVALUE}} sein.']]);}get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIRED(){cov_1wdc6hy9p().f[44]++;cov_1wdc6hy9p().s[98]++;return new Map([['de','Feld "{{FIELD}}" muss alle Sprachen erfasst haben.']]);}get VALIDATION_ERROR_SUMMARY_MULTILANGUAGEREQUIREDANY(){cov_1wdc6hy9p().f[45]++;cov_1wdc6hy9p().s[99]++;return new Map([['de','Feld "{{FIELD}}" muss min. 1 Sprache erfasst haben.']]);}get VALIDATION_ERROR_SUMMARY_PATTERN(){cov_1wdc6hy9p().f[46]++;cov_1wdc6hy9p().s[100]++;return new Map([['de','Feld "{{FIELD}}" entspricht nicht der Format Vorlage.']]);}get VALIDATION_ERROR_SUMMARY_REQUIRED(){cov_1wdc6hy9p().f[47]++;cov_1wdc6hy9p().s[101]++;return new Map([['de','Feld "{{FIELD}}" ist erforderlich.']]);}// #endregion Protected Getters And Setters
30
31
  // #region Public Methods
31
32
  /**
32
- * Die Methode ergibt die selecte Sprache (string) anhand von Key und Params
33
+ * The method returns the selected language (string) based on key and params
34
+ * @param key The resource key to retrieve
35
+ * @param params Optional parameters for string interpolation
36
+ * @returns Observable string with the localized resource
33
37
  */GetString(key,params){cov_1wdc6hy9p().f[48]++;cov_1wdc6hy9p().s[102]++;return new Observable(observer=>{cov_1wdc6hy9p().f[49]++;let language=(cov_1wdc6hy9p().s[103]++,this.GetLanguage());cov_1wdc6hy9p().s[104]++;if(!this.data.has(language)){cov_1wdc6hy9p().b[0][0]++;cov_1wdc6hy9p().s[105]++;language=this.GetFallbackLanguage();// Return Key if no Language exists
34
38
  cov_1wdc6hy9p().s[106]++;if(!this.data.has(language)){cov_1wdc6hy9p().b[1][0]++;cov_1wdc6hy9p().s[107]++;observer.next(key);cov_1wdc6hy9p().s[108]++;observer.complete();cov_1wdc6hy9p().s[109]++;return;}else{cov_1wdc6hy9p().b[1][1]++;}}else{cov_1wdc6hy9p().b[0][1]++;}cov_1wdc6hy9p().s[110]++;if(this.data.get(language).has(key)){cov_1wdc6hy9p().b[2][0]++;const resource=(cov_1wdc6hy9p().s[111]++,this.data.get(language).get(key));cov_1wdc6hy9p().s[112]++;if((cov_1wdc6hy9p().b[4][0]++,params!==undefined)&&(cov_1wdc6hy9p().b[4][1]++,params!==null)){cov_1wdc6hy9p().b[3][0]++;const formatter=(cov_1wdc6hy9p().s[113]++,new Interpolation());cov_1wdc6hy9p().s[114]++;observer.next(formatter.interpolateString(resource,params));cov_1wdc6hy9p().s[115]++;observer.complete();cov_1wdc6hy9p().s[116]++;return;}else{cov_1wdc6hy9p().b[3][1]++;cov_1wdc6hy9p().s[117]++;observer.next(resource);cov_1wdc6hy9p().s[118]++;observer.complete();cov_1wdc6hy9p().s[119]++;return;}}else{cov_1wdc6hy9p().b[2][1]++;cov_1wdc6hy9p().s[120]++;observer.next(key);cov_1wdc6hy9p().s[121]++;observer.complete();cov_1wdc6hy9p().s[122]++;return;}});}// #endregion Public Methods
35
39
  // #region Private Methods
36
40
  /**
37
- * Die Funktion setzt die default Sprache auf DE, falls die Sprach-Setzung nicht möglich ist.
41
+ * The function sets the default language to DE if language setting is not possible.
38
42
  */GetFallbackLanguage(){cov_1wdc6hy9p().f[50]++;cov_1wdc6hy9p().s[123]++;return'de';}/**
39
- * Die Funktion ergibt die ausgewählte Sprache.
40
- */GetLanguage(){cov_1wdc6hy9p().f[51]++;const language=(cov_1wdc6hy9p().s[124]++,navigator.language);cov_1wdc6hy9p().s[125]++;if(language.indexOf('-')>=0){cov_1wdc6hy9p().b[5][0]++;cov_1wdc6hy9p().s[126]++;return language.split('-')[0];}else{cov_1wdc6hy9p().b[5][1]++;cov_1wdc6hy9p().s[127]++;return language;}}static{cov_1wdc6hy9p().s[128]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,deps:[{token:SACVALIDATIONKEY_SERVICE}],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1wdc6hy9p().s[129]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,providedIn:'root'});}}export{SacDefaultLocalisationService};cov_1wdc6hy9p().s[130]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_1wdc6hy9p().f[52]++;cov_1wdc6hy9p().s[131]++;return[{type:undefined,decorators:[{type:Inject,args:[SACVALIDATIONKEY_SERVICE]}]}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFbEMsb0JBQW9CO0FBRXBCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQWlDLHdCQUF3QixDQUFDLENBQUM7QUFFcEgsdUJBQXVCO0FBRXZCLDJCQUEyQjtBQUUzQjs7S0FFSztBQUNMLE1BQ3NCLDhCQUE4QjsrR0FBOUIsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FEMUIsTUFBTTs7U0FDViw4QkFBOEI7NEZBQTlCLDhCQUE4QjtrQkFEbkQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBOEdsQzs7S0FFSztBQUNMLE1BQ2EsNkJBQThCLFNBQVEsOEJBQThCO0lBUTdFLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7O1NBRUs7SUFDTCxZQUVZLG9CQUE4QztRQUV0RCxLQUFLLEVBQUUsQ0FBQztRQUZBLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFoQjFELHFCQUFxQjtRQUVyQjs7V0FFRztRQUNJLFNBQUksR0FBcUMsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFlbkYsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdB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QUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDSCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNMLENBQUM7K0dBelpRLDZCQUE2QixrQkFnQjFCLHdCQUF3QjttSEFoQjNCLDZCQUE2QixjQURoQixNQUFNOztTQUNuQiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWlCekIsTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xuaW1wb3J0IHsgSW50ZXJwb2xhdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9pbnRlcnBvbGF0aW9uJztcbmltcG9ydCB7IFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSB9IGZyb20gJy4vc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogaW5qZWN0aW9uIHRva2VuIGZvciBsb2NhbGlzYXRpb24gc2VydmljZVxuICovXG5leHBvcnQgY29uc3QgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlPignU2FjTG9jYWxpc2F0aW9uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgbG9jYWxpc2F0aW9uIGluIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZSBpbXBsZW1lbnRzIElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX05PKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX1lFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfREVMRVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX0dSSURfRklMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9HUklEX1NJWkUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfTkVXRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX05PX0ZJTEVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX1JFRlJFU0goKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFBBR0lOR19QQUdFRU5UUklFU1RFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgUEFHSU5HX1BBR0VPRlRFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX09LKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fQlJPV1NFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9OT19GSUxFX1NFTEVDVEVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgw7xiZXJzZXR6dCBkZW4gZWluZ2VnZWJlbmVuIFdvcnQvQmVncmlmZi4gVmVybGFuZ3Qga2V5IHVuZCBvcHRpb25lbGwgcGFyYW1zXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldFN0cmluZyhrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuXG4vKipcbiAqIGRlZmF1bHQgbG9jYWxpc2F0aW9uIHNlcnZpY2VcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIExhbmd1YWdlIFJlc291cmNlcyBmw7xyIENvbnRyb2xzIExpYnJhcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4gPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UpXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIFNldCBMYW5ndWFnZXNcbiAgICAgICAgdGhpcy5kYXRhLnNldCgnZGUnLCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcblxuICAgICAgICAvLyBWYWxpZGF0aW9uXG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkLCB0aGlzLlZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JQYXR0ZXJuLCB0aGlzLlZBTElEQVRJT05fRVJST1JfUEFUVEVSTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVBhdHRlcm4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1BBVFRFUk4uZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4VmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JFbWFpbCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX0VNQUlMLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RW1haWwsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5UZXh0TGVuZ3RoLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblRleHRMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSC5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1pbkRhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluRGF0ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNYXhEYXRlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUFYREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heERhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWERBVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01JTlRJTUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UaW1lLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5USU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heFRpbWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4VGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0LFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFULmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRmlsZXNNaW4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeUZpbGVzTWluLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55LFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRUQuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRUQuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIEdyaWQgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ1BhZ2VPZiwgdGhpcy5QQUdJTkdfUEFHRU9GVEVYVC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5QYWdpbmdFbnRyaWVzLCB0aGlzLlBBR0lOR19QQUdFRU5UUklFU1RFWFQuZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBVcGxvYWQgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZE5vRmlsZXNTZWxlY3RlZCwgdGhpcy5VUExPQURfTk9fRklMRV9TRUxFQ1RFRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQsIHRoaXMuVVBMT0FEX0JVVFRPTl9VUExPQUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uQnJvd3NlLCB0aGlzLlVQTE9BRF9CVVRUT05fQlJPV1NFLmdldCgnZGUnKSk7XG5cbiAgICAgICAgLy8gVGlueU1DRSBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3RPaywgdGhpcy5USU5ZTUNFX0ZJTEVTRUxFQ1RfT0suZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3RDYW5jZWwsIHRoaXMuVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3REaWFsb2d0aXRsZSwgdGhpcy5USU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUuZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBDb25maXJtIERpYWxvZyBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuQ29uZmlybURlZmF1bHRCdXR0b25ZZXMsIHRoaXMuQ09ORklSTV9CVVRUT05fWUVTLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkNvbmZpcm1EZWZhdWx0QnV0dG9uTm8sIHRoaXMuQ09ORklSTV9CVVRUT05fTk8uZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBCcm93c2VyIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckdyaWROb0ZpbGVzLCB0aGlzLkZJTEVCUk9XU0VSX05PX0ZJTEVTLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyR3JpZEZpbGVuYW1lLCB0aGlzLkZJTEVCUk9XU0VSX0dSSURfRklMRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckdyaWRTaXplLCB0aGlzLkZJTEVCUk9XU0VSX0dSSURfU0laRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckJ1dHRvblVwbG9hZCwgdGhpcy5GSUxFQlJPV1NFUl9VUExPQUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJCdXR0b25OZXdGb2xkZXIsIHRoaXMuRklMRUJST1dTRVJfTkVXRk9MREVSLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uUmVmcmVzaCwgdGhpcy5GSUxFQlJPV1NFUl9SRUZSRVNILmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uRGVsZXRlLCB0aGlzLkZJTEVCUk9XU0VSX0RFTEVURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckNvbmZpcm1UZXh0RGVsZXRlRm9sZGVyLFxuICAgICAgICAgICAgICAgIHRoaXMuRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckNvbmZpcm1UZXh0RGVsZXRlRmlsZSxcbiAgICAgICAgICAgICAgICB0aGlzLkZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRklMRS5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gRU5cbiAgICAgICAgLy8gdGhpcy5kYXRhLnNldCgnZW4nLCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgcHJvdGVjdGVkIGdldCBDT05GSVJNX0JVVFRPTl9OTygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ05laW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgQ09ORklSTV9CVVRUT05fWUVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnSmEnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGSUxFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnU29sbCBkaWUgRGF0ZWkgZ2Vsw7ZzY2h0IHdlcmRlbj8nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdTb2xsIGRlciBPcmRuZXIgZ2Vsw7ZzY2h0IHdlcmRlbj8nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfREVMRVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTMO2c2NoZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfR1JJRF9GSUxFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRGF0ZWluYW1lJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0dSSURfU0laRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0dyw7Zzc2UnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfTkVXRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTmV1ZXIgT3JkbmVyJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX05PX0ZJTEVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnS2VpbmUgRGF0ZWllbiB2b3JoYW5kZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfUkVGUkVTSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0FrdHVhbGlzaWVyZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTGVnZW4gU2llIERhdGVpZW4gaGllciBhYiB1bSBTaWUgaG9jaHp1bGFkZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VpbnRyw6RnZSBwcm8gU2VpdGUnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUEFHSU5HX1BBR0VPRlRFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdTZWl0ZSB7e0NVUlJFTlRQQUdFfX0gdm9uIHt7VE9UQUxQQUdFU319J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdBYmJyZWNoZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRGF0ZWkgYXVzd8OkaGxlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfT0soKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdPSyddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfQlVUVE9OX0JST1dTRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0Jyb3dzZS4uLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfQlVUVE9OX1VQTE9BRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1VwbG9hZCddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfTk9fRklMRV9TRUxFQ1RFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGlzdCBrZWluIGfDvGx0aWdlcyBEYXR1bS4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgaXN0IGtlaW5lIEUtTWFpbCBBZHJlc3NlJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfRklMRVNNSU4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdFcyBtw7xzc2VuIG1pbi4ge3tNSU5GSUxFU319IERhdGVpZW4gaG9jaGdlbGFkZW4gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBtdXNzIMOkbHRlciBvZGVyIGdsZWljaCB7e01BWERBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIG11c3Mgw6RsdGVyIG9kZXIgZ2xlaWNoIHt7TUFYVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZGFyZiBuaWNodCBncsO2c3NlciBhbHMge3tNQVhWQUxVRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTkRBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlRFWFRMRU5HVEgoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGVyZm9yZGVydCBtaW4uIHt7TUlOVEVYVExFTkdUSH19IFplaWNoZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTlRJTUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnV2VydCBkYXJmIG5pY2h0IGtsZWluZXIgYWxzIHt7TUlOVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VzIG3DvHNzZW4gYWxsZSBTcHJhY2hlbiBlcmZhc3N0IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRXMgbXVzcyBtaW4uIDEgU3ByYWNoZSBlcmZhc3N0IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1dlcnQgZW50c3ByaWNodCBuaWNodCBkZXIgRm9ybWF0IFZvcmxhZ2UuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGlzdCBlcmZvcmRlcmxpY2guJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3Qga2VpbiBnw7xsdGlnZXMgRGF0dW0uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3Qga2VpbmUgRS1NYWlsIEFkcmVzc2UnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbWluLiB7e01JTkZJTEVTfX0gRGF0ZWllbiBob2NoZ2VsYWRlbiBoYWJlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWERBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhEQVRFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhUSU1FfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnV2VydCBkYXJmIG5pY2h0IGdyw7Zzc2VyIGFscyB7e01BWFZBTFVFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTkRBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBlcmZvcmRlcnQgbWluLiB7e01JTlRFWFRMRU5HVEh9fSBaZWljaGVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIG5ldWVyIG9kZXIgZ2xlaWNoIHt7TUlOVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBkYXJmIG5pY2h0IGtsZWluZXIgYWxzIHt7TUlOVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgYWxsZSBTcHJhY2hlbiBlcmZhc3N0IGhhYmVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbWluLiAxIFNwcmFjaGUgZXJmYXNzdCBoYWJlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1BBVFRFUk4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZW50c3ByaWNodCBuaWNodCBkZXIgRm9ybWF0IFZvcmxhZ2UuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3QgZXJmb3JkZXJsaWNoLiddXSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgZXJnaWJ0IGRpZSBzZWxlY3RlIFNwcmFjaGUgKHN0cmluZykgIGFuaGFuZCB2b24gS2V5IHVuZCBQYXJhbXNcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0U3RyaW5nKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBsYW5ndWFnZTogc3RyaW5nID0gdGhpcy5HZXRMYW5ndWFnZSgpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5oYXMobGFuZ3VhZ2UpKSB7XG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2UgPSB0aGlzLkdldEZhbGxiYWNrTGFuZ3VhZ2UoKTtcblxuICAgICAgICAgICAgICAgIC8vIFJldHVybiBLZXkgaWYgbm8gTGFuZ3VhZ2UgZXhpc3RzXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGFzKGxhbmd1YWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGtleSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuZ2V0KGxhbmd1YWdlKS5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5kYXRhLmdldChsYW5ndWFnZSkuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtcyAhPT0gdW5kZWZpbmVkICYmIHBhcmFtcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZXI6IEludGVycG9sYXRpb24gPSBuZXcgSW50ZXJwb2xhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZvcm1hdHRlci5pbnRlcnBvbGF0ZVN0cmluZyhyZXNvdXJjZSwgcGFyYW1zKSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc291cmNlKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChrZXkpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIEZ1bmt0aW9uIHNldHp0IGRpZSBkZWZhdWx0IFNwcmFjaGUgYXVmIERFLCBmYWxscyBkaWUgU3ByYWNoLVNldHp1bmcgbmljaHQgbcO2Z2xpY2ggaXN0LlxuICAgICAqL1xuICAgIHByaXZhdGUgR2V0RmFsbGJhY2tMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2RlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaWUgRnVua3Rpb24gZXJnaWJ0IGRpZSBhdXNnZXfDpGhsdGUgU3ByYWNoZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIEdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlOiBzdHJpbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XG5cbiAgICAgICAgaWYgKGxhbmd1YWdlLmluZGV4T2YoJy0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsYW5ndWFnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl19
41
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXdkYzZoeTlwIiwiYWN0dWFsQ292ZXJhZ2UiLCJJbnRlcnBvbGF0aW9uIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiSW5qZWN0IiwiSW5qZWN0YWJsZSIsIkluamVjdGlvblRva2VuIiwiT2JzZXJ2YWJsZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwicyIsIlNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZSIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwicHJvdmlkZWRJbiIsImRlY29yYXRvcnMiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsImNvbnN0cnVjdG9yIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJmIiwiZGF0YSIsIk1hcCIsInNldCIsImdldCIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwiVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvck1pblZhbHVlIiwiVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5WYWx1ZSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRSIsIlZhbGlkYXRpb25FcnJvclBhdHRlcm4iLCJWQUxJREFUSU9OX0VSUk9SX1BBVFRFUk4iLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UGF0dGVybiIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOIiwiVmFsaWRhdGlvbkVycm9yTWF4VmFsdWUiLCJWQUxJREFUSU9OX0VSUk9SX01BWFZBTFVFIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFZBTFVFIiwiVmFsaWRhdGlvbkVycm9yRW1haWwiLCJWQUxJREFUSU9OX0VSUk9SX0VNQUlMIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeUVtYWlsIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMIiwiVmFsaWRhdGlvbkVycm9yTWluVGV4dExlbmd0aCIsIlZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UZXh0TGVuZ3RoIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRFWFRMRU5HVEgiLCJWYWxpZGF0aW9uRXJyb3JNaW5EYXRlIiwiVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGUiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSIsIlZhbGlkYXRpb25FcnJvck1heERhdGUiLCJWQUxJREFUSU9OX0VSUk9SX01BWERBVEUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFIiwiVmFsaWRhdGlvbkVycm9yTWluVGltZSIsIlZBTElEQVRJT05fRVJST1JfTUlOVElNRSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UaW1lIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUiLCJWYWxpZGF0aW9uRXJyb3JNYXhUaW1lIiwiVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFRpbWUiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwiVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCIsIlZhbGlkYXRpb25FcnJvckZpbGVzTWluIiwiVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTiIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbiIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTiIsIlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSIsIlZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkiLCJWYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEIiwiUGFnaW5nUGFnZU9mIiwiUEFHSU5HX1BBR0VPRlRFWFQiLCJQYWdpbmdFbnRyaWVzIiwiUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCIsIlVwbG9hZE5vRmlsZXNTZWxlY3RlZCIsIlVQTE9BRF9OT19GSUxFX1NFTEVDVEVEIiwiVXBsb2FkQnV0dG9uVXBsb2FkIiwiVVBMT0FEX0JVVFRPTl9VUExPQUQiLCJVcGxvYWRCdXR0b25Ccm93c2UiLCJVUExPQURfQlVUVE9OX0JST1dTRSIsIlRpbnlNY2VGaWxlc2VsZWN0T2siLCJUSU5ZTUNFX0ZJTEVTRUxFQ1RfT0siLCJUaW55TWNlRmlsZXNlbGVjdENhbmNlbCIsIlRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwiLCJUaW55TWNlRmlsZXNlbGVjdERpYWxvZ3RpdGxlIiwiVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFIiwiQ29uZmlybURlZmF1bHRCdXR0b25ZZXMiLCJDT05GSVJNX0JVVFRPTl9ZRVMiLCJDb25maXJtRGVmYXVsdEJ1dHRvbk5vIiwiQ09ORklSTV9CVVRUT05fTk8iLCJGaWxlYnJvd3NlckdyaWROb0ZpbGVzIiwiRklMRUJST1dTRVJfTk9fRklMRVMiLCJGaWxlYnJvd3NlckdyaWRGaWxlbmFtZSIsIkZJTEVCUk9XU0VSX0dSSURfRklMRSIsIkZpbGVicm93c2VyR3JpZFNpemUiLCJGSUxFQlJPV1NFUl9HUklEX1NJWkUiLCJGaWxlYnJvd3NlckJ1dHRvblVwbG9hZCIsIkZJTEVCUk9XU0VSX1VQTE9BRCIsIkZpbGVicm93c2VyQnV0dG9uTmV3Rm9sZGVyIiwiRklMRUJST1dTRVJfTkVXRk9MREVSIiwiRmlsZWJyb3dzZXJCdXR0b25SZWZyZXNoIiwiRklMRUJST1dTRVJfUkVGUkVTSCIsIkZpbGVicm93c2VyQnV0dG9uRGVsZXRlIiwiRklMRUJST1dTRVJfREVMRVRFIiwiRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZvbGRlciIsIkZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRk9MREVSIiwiRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZpbGUiLCJGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUiLCJHZXRTdHJpbmciLCJrZXkiLCJwYXJhbXMiLCJvYnNlcnZlciIsImxhbmd1YWdlIiwiR2V0TGFuZ3VhZ2UiLCJoYXMiLCJiIiwiR2V0RmFsbGJhY2tMYW5ndWFnZSIsIm5leHQiLCJjb21wbGV0ZSIsInJlc291cmNlIiwidW5kZWZpbmVkIiwiZm9ybWF0dGVyIiwiaW50ZXJwb2xhdGVTdHJpbmciLCJuYXZpZ2F0b3IiLCJpbmRleE9mIiwic3BsaXQiLCJ0b2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xuaW1wb3J0IHsgSW50ZXJwb2xhdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9pbnRlcnBvbGF0aW9uJztcbmltcG9ydCB7IFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSB9IGZyb20gJy4vc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogaW5qZWN0aW9uIHRva2VuIGZvciBsb2NhbGlzYXRpb24gc2VydmljZVxuICovXG5leHBvcnQgY29uc3QgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlPignU2FjTG9jYWxpc2F0aW9uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgbG9jYWxpc2F0aW9uIGluIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZSBpbXBsZW1lbnRzIElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX05PKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX1lFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfREVMRVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX0dSSURfRklMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9HUklEX1NJWkUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfTkVXRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX05PX0ZJTEVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX1JFRlJFU0goKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFBBR0lOR19QQUdFRU5UUklFU1RFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgUEFHSU5HX1BBR0VPRlRFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX09LKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fQlJPV1NFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9OT19GSUxFX1NFTEVDVEVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgw7xiZXJzZXR6dCBkZW4gZWluZ2VnZWJlbmVuIFdvcnQvQmVncmlmZi4gVmVybGFuZ3Qga2V5IHVuZCBvcHRpb25lbGwgcGFyYW1zXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldFN0cmluZyhrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuXG4vKipcbiAqIGRlZmF1bHQgbG9jYWxpc2F0aW9uIHNlcnZpY2VcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIExhbmd1YWdlIFJlc291cmNlcyBmw7xyIENvbnRyb2xzIExpYnJhcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4gPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UpXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbktleVNlcnZpY2U6IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIFNldCBMYW5ndWFnZXNcbiAgICAgICAgdGhpcy5kYXRhLnNldCgnZGUnLCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcblxuICAgICAgICAvLyBWYWxpZGF0aW9uXG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkLCB0aGlzLlZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JQYXR0ZXJuLCB0aGlzLlZBTElEQVRJT05fRVJST1JfUEFUVEVSTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVBhdHRlcm4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1BBVFRFUk4uZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4VmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JFbWFpbCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX0VNQUlMLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RW1haWwsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5UZXh0TGVuZ3RoLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblRleHRMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSC5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1pbkRhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluRGF0ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNYXhEYXRlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUFYREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heERhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWERBVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01JTlRJTUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UaW1lLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5USU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heFRpbWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4VGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0LFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFULmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRmlsZXNNaW4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeUZpbGVzTWluLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55LFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTXVsdGlsYW5ndWFnZVJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRUQuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRUQuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIEdyaWQgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ1BhZ2VPZiwgdGhpcy5QQUdJTkdfUEFHRU9GVEVYVC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5QYWdpbmdFbnRyaWVzLCB0aGlzLlBBR0lOR19QQUdFRU5UUklFU1RFWFQuZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBVcGxvYWQgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZE5vRmlsZXNTZWxlY3RlZCwgdGhpcy5VUExPQURfTk9fRklMRV9TRUxFQ1RFRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQsIHRoaXMuVVBMT0FEX0JVVFRPTl9VUExPQUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uQnJvd3NlLCB0aGlzLlVQTE9BRF9CVVRUT05fQlJPV1NFLmdldCgnZGUnKSk7XG5cbiAgICAgICAgLy8gVGlueU1DRSBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3RPaywgdGhpcy5USU5ZTUNFX0ZJTEVTRUxFQ1RfT0suZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3RDYW5jZWwsIHRoaXMuVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVGlueU1jZUZpbGVzZWxlY3REaWFsb2d0aXRsZSwgdGhpcy5USU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUuZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBDb25maXJtIERpYWxvZyBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuQ29uZmlybURlZmF1bHRCdXR0b25ZZXMsIHRoaXMuQ09ORklSTV9CVVRUT05fWUVTLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkNvbmZpcm1EZWZhdWx0QnV0dG9uTm8sIHRoaXMuQ09ORklSTV9CVVRUT05fTk8uZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBCcm93c2VyIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckdyaWROb0ZpbGVzLCB0aGlzLkZJTEVCUk9XU0VSX05PX0ZJTEVTLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyR3JpZEZpbGVuYW1lLCB0aGlzLkZJTEVCUk9XU0VSX0dSSURfRklMRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckdyaWRTaXplLCB0aGlzLkZJTEVCUk9XU0VSX0dSSURfU0laRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckJ1dHRvblVwbG9hZCwgdGhpcy5GSUxFQlJPV1NFUl9VUExPQUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJCdXR0b25OZXdGb2xkZXIsIHRoaXMuRklMRUJST1dTRVJfTkVXRk9MREVSLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uUmVmcmVzaCwgdGhpcy5GSUxFQlJPV1NFUl9SRUZSRVNILmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uRGVsZXRlLCB0aGlzLkZJTEVCUk9XU0VSX0RFTEVURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckNvbmZpcm1UZXh0RGVsZXRlRm9sZGVyLFxuICAgICAgICAgICAgICAgIHRoaXMuRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckNvbmZpcm1UZXh0RGVsZXRlRmlsZSxcbiAgICAgICAgICAgICAgICB0aGlzLkZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRklMRS5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gRU5cbiAgICAgICAgLy8gdGhpcy5kYXRhLnNldCgnZW4nLCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgcHJvdGVjdGVkIGdldCBDT05GSVJNX0JVVFRPTl9OTygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ05laW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgQ09ORklSTV9CVVRUT05fWUVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnSmEnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGSUxFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnU29sbCBkaWUgRGF0ZWkgZ2Vsw7ZzY2h0IHdlcmRlbj8nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdTb2xsIGRlciBPcmRuZXIgZ2Vsw7ZzY2h0IHdlcmRlbj8nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfREVMRVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTMO2c2NoZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfR1JJRF9GSUxFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRGF0ZWluYW1lJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0dSSURfU0laRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0dyw7Zzc2UnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfTkVXRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTmV1ZXIgT3JkbmVyJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX05PX0ZJTEVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnS2VpbmUgRGF0ZWllbiB2b3JoYW5kZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfUkVGUkVTSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0FrdHVhbGlzaWVyZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTGVnZW4gU2llIERhdGVpZW4gaGllciBhYiB1bSBTaWUgaG9jaHp1bGFkZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VpbnRyw6RnZSBwcm8gU2VpdGUnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUEFHSU5HX1BBR0VPRlRFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdTZWl0ZSB7e0NVUlJFTlRQQUdFfX0gdm9uIHt7VE9UQUxQQUdFU319J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdBYmJyZWNoZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRGF0ZWkgYXVzd8OkaGxlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfT0soKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdPSyddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfQlVUVE9OX0JST1dTRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0Jyb3dzZS4uLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfQlVUVE9OX1VQTE9BRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1VwbG9hZCddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBVUExPQURfTk9fRklMRV9TRUxFQ1RFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGlzdCBrZWluIGfDvGx0aWdlcyBEYXR1bS4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgaXN0IGtlaW5lIEUtTWFpbCBBZHJlc3NlJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfRklMRVNNSU4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdFcyBtw7xzc2VuIG1pbi4ge3tNSU5GSUxFU319IERhdGVpZW4gaG9jaGdlbGFkZW4gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBtdXNzIMOkbHRlciBvZGVyIGdsZWljaCB7e01BWERBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIG11c3Mgw6RsdGVyIG9kZXIgZ2xlaWNoIHt7TUFYVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZGFyZiBuaWNodCBncsO2c3NlciBhbHMge3tNQVhWQUxVRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTkRBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlRFWFRMRU5HVEgoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGVyZm9yZGVydCBtaW4uIHt7TUlOVEVYVExFTkdUSH19IFplaWNoZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTlRJTUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnV2VydCBkYXJmIG5pY2h0IGtsZWluZXIgYWxzIHt7TUlOVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VzIG3DvHNzZW4gYWxsZSBTcHJhY2hlbiBlcmZhc3N0IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRXMgbXVzcyBtaW4uIDEgU3ByYWNoZSBlcmZhc3N0IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1dlcnQgZW50c3ByaWNodCBuaWNodCBkZXIgRm9ybWF0IFZvcmxhZ2UuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGlzdCBlcmZvcmRlcmxpY2guJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3Qga2VpbiBnw7xsdGlnZXMgRGF0dW0uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3Qga2VpbmUgRS1NYWlsIEFkcmVzc2UnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbWluLiB7e01JTkZJTEVTfX0gRGF0ZWllbiBob2NoZ2VsYWRlbiBoYWJlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWERBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhEQVRFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhUSU1FfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnV2VydCBkYXJmIG5pY2h0IGdyw7Zzc2VyIGFscyB7e01BWFZBTFVFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTkRBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBlcmZvcmRlcnQgbWluLiB7e01JTlRFWFRMRU5HVEh9fSBaZWljaGVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIG5ldWVyIG9kZXIgZ2xlaWNoIHt7TUlOVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBkYXJmIG5pY2h0IGtsZWluZXIgYWxzIHt7TUlOVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgYWxsZSBTcHJhY2hlbiBlcmZhc3N0IGhhYmVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbWluLiAxIFNwcmFjaGUgZXJmYXNzdCBoYWJlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1BBVFRFUk4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZW50c3ByaWNodCBuaWNodCBkZXIgRm9ybWF0IFZvcmxhZ2UuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBpc3QgZXJmb3JkZXJsaWNoLiddXSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIE1ldGhvZGUgZXJnaWJ0IGRpZSBzZWxlY3RlIFNwcmFjaGUgKHN0cmluZykgIGFuaGFuZCB2b24gS2V5IHVuZCBQYXJhbXNcbiAgICAgKi9cbiAgICBwdWJsaWMgR2V0U3RyaW5nKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGxldCBsYW5ndWFnZTogc3RyaW5nID0gdGhpcy5HZXRMYW5ndWFnZSgpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5oYXMobGFuZ3VhZ2UpKSB7XG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2UgPSB0aGlzLkdldEZhbGxiYWNrTGFuZ3VhZ2UoKTtcblxuICAgICAgICAgICAgICAgIC8vIFJldHVybiBLZXkgaWYgbm8gTGFuZ3VhZ2UgZXhpc3RzXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGFzKGxhbmd1YWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGtleSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuZ2V0KGxhbmd1YWdlKS5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5kYXRhLmdldChsYW5ndWFnZSkuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtcyAhPT0gdW5kZWZpbmVkICYmIHBhcmFtcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZXI6IEludGVycG9sYXRpb24gPSBuZXcgSW50ZXJwb2xhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZvcm1hdHRlci5pbnRlcnBvbGF0ZVN0cmluZyhyZXNvdXJjZSwgcGFyYW1zKSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc291cmNlKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChrZXkpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRGllIEZ1bmt0aW9uIHNldHp0IGRpZSBkZWZhdWx0IFNwcmFjaGUgYXVmIERFLCBmYWxscyBkaWUgU3ByYWNoLVNldHp1bmcgbmljaHQgbcO2Z2xpY2ggaXN0LlxuICAgICAqL1xuICAgIHByaXZhdGUgR2V0RmFsbGJhY2tMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2RlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaWUgRnVua3Rpb24gZXJnaWJ0IGRpZSBhdXNnZXfDpGhsdGUgU3ByYWNoZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIEdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlOiBzdHJpbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2U7XG5cbiAgICAgICAgaWYgKGxhbmd1YWdlLmluZGV4T2YoJy0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsYW5ndWFnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl0sIm1hcHBpbmdzIjoiaSt0REFzQnNCO0FBQUFBLGFBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsYUFBQSxHQXBCdEIsT0FBU0UsYUFBYSxLQUFRLDRCQUE0QixDQUMxRCxPQUFTQyx3QkFBd0IsS0FBUSw2QkFBNkIsQ0FDdEUsT0FBU0MsTUFBTSxDQUFFQyxVQUFVLENBQUVDLGNBQWMsS0FBUSxlQUFlLENBQ2xFLE9B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
43
+ * The function returns the selected language.
44
+ */GetLanguage(){cov_1wdc6hy9p().f[51]++;const language=(cov_1wdc6hy9p().s[124]++,navigator.language);cov_1wdc6hy9p().s[125]++;if(language.indexOf('-')>=0){cov_1wdc6hy9p().b[5][0]++;cov_1wdc6hy9p().s[126]++;return language.split('-')[0];}else{cov_1wdc6hy9p().b[5][1]++;cov_1wdc6hy9p().s[127]++;return language;}}static{cov_1wdc6hy9p().s[128]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,deps:[{token:SACVALIDATIONKEY_SERVICE}],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_1wdc6hy9p().s[129]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,providedIn:'root'});}}cov_1wdc6hy9p().s[130]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultLocalisationService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_1wdc6hy9p().f[52]++;cov_1wdc6hy9p().s[131]++;return[{type:undefined,decorators:[{type:Inject,args:[SACVALIDATIONKEY_SERVICE]}]}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFbEMsb0JBQW9CO0FBRXBCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQWlDLHdCQUF3QixDQUFDLENBQUM7QUFFcEgsdUJBQXVCO0FBRXZCLDJCQUEyQjtBQUUzQjs7S0FFSztBQUVMLE1BQU0sT0FBZ0IsOEJBQThCOytHQUE5Qiw4QkFBOEI7bUhBQTlCLDhCQUE4QixjQUQxQixNQUFNOzs0RkFDViw4QkFBOEI7a0JBRG5ELFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQThHbEM7O0tBRUs7QUFFTCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsOEJBQThCO0lBUTdFLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFFWSxvQkFBOEM7UUFFdEQsS0FBSyxFQUFFLENBQUM7UUFGQSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBakIxRCxxQkFBcUI7UUFFckI7O1dBRUc7UUFDSSxTQUFJLEdBQXFDLElBQUksR0FBRyxFQUErQixDQUFDO1FBZ0JuRixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FB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SUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzsrR0E3WlEsNkJBQTZCLGtCQWlCMUIsd0JBQXdCO21IQWpCM0IsNkJBQTZCLGNBRGhCLE1BQU07OzRGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFrQnpCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcbmltcG9ydCB7IEludGVycG9sYXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvaW50ZXJwb2xhdGlvbic7XG5pbXBvcnQgeyBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UgfSBmcm9tICcuL3NhYy12YWxpZGF0aW9ua2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vLyAjcmVnaW9uIFZhcmlhYmxlc1xuXG4vKipcbiAqIGluamVjdGlvbiB0b2tlbiBmb3IgbG9jYWxpc2F0aW9uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPFNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZT4oJ1NhY0xvY2FsaXNhdGlvblNlcnZpY2UnKTtcblxuLy8gI2VuZHJlZ2lvbiBWYXJpYWJsZXNcblxuLy8gI3JlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG5cbi8qKlxuICogYWJzdHJhY3QgY2xhc3MgZm9yIGxvY2FsaXNhdGlvbiBpbiBjb21wb25lbnRzXG4gKiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNBYnN0cmFjdExvY2FsaXNhdGlvblNlcnZpY2UgaW1wbGVtZW50cyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB7XG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBDT05GSVJNX0JVVFRPTl9OTygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBDT05GSVJNX0JVVFRPTl9ZRVMoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGSUxFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX0RFTEVURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9HUklEX0ZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfR1JJRF9TSVpFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX05FV0ZPTERFUigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9OT19GSUxFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9SRUZSRVNIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX1VQTE9BRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBQQUdJTkdfUEFHRUVOVFJJRVNURVhUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFBBR0lOR19QQUdFT0ZURVhUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9PSygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBVUExPQURfQlVUVE9OX0JST1dTRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBVUExPQURfQlVUVE9OX1VQTE9BRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBVUExPQURfTk9fRklMRV9TRUxFQ1RFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX0RBVEVUSU1FRk9STUFUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01BWERBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1BBVFRFUk4oKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRFWFRMRU5HVEgoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2QgdHJhbnNsYXRlcyB0aGUgcHJvdmlkZWQgd29yZC90ZXJtLiBSZXF1aXJlcyBhIGtleSBhbmQgb3B0aW9uYWwgcGFyYW1zXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldFN0cmluZyhrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuXG4vKipcbiAqIGRlZmF1bHQgbG9jYWxpc2F0aW9uIHNlcnZpY2VcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIExhbmd1YWdlIHJlc291cmNlcyBmb3IgdGhlIGNvbnRyb2xzIGxpYnJhcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4gPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25LZXlTZXJ2aWNlIFNlcnZpY2UgZm9yIHZhbGlkYXRpb24ga2V5IGxvY2FsaXphdGlvblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSlcbiAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLy8gU2V0IExhbmd1YWdlc1xuICAgICAgICB0aGlzLmRhdGEuc2V0KCdkZScsIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRpb25cbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5WYWx1ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluVmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlZBTFVFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclBhdHRlcm4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9QQVRURVJOLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UGF0dGVybiwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUEFUVEVSTi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNYXhWYWx1ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01BWFZBTFVFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4VmFsdWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFZBTFVFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckVtYWlsLCB0aGlzLlZBTElEQVRJT05fRVJST1JfRU1BSUwuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlFbWFpbCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRU1BSUwuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1pblRleHRMZW5ndGgsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RILmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluVGV4dExlbmd0aCxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5URVhUTEVOR1RILmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluRGF0ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01JTkRBVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5EYXRlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5EQVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heERhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NQVhEQVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5UaW1lLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUlOVElNRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblRpbWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4VGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01BWFRJTUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhUaW1lLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX0RBVEVUSU1FRk9STUFULmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQsXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JGaWxlc01pbiwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RmlsZXNNaW4sIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnksXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWS5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55LFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWS5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRC5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkLFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRC5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gR3JpZCBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuUGFnaW5nUGFnZU9mLCB0aGlzLlBBR0lOR19QQUdFT0ZURVhULmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ0VudHJpZXMsIHRoaXMuUEFHSU5HX1BBR0VFTlRSSUVTVEVYVC5nZXQoJ2RlJykpO1xuXG4gICAgICAgIC8vIFVwbG9hZCBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkTm9GaWxlc1NlbGVjdGVkLCB0aGlzLlVQTE9BRF9OT19GSUxFX1NFTEVDVEVELmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCwgdGhpcy5VUExPQURfQlVUVE9OX1VQTE9BRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UsIHRoaXMuVVBMT0FEX0JVVFRPTl9CUk9XU0UuZ2V0KCdkZScpKTtcblxuICAgICAgICAvLyBUaW55TUNFIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5UaW55TWNlRmlsZXNlbGVjdE9rLCB0aGlzLlRJTllNQ0VfRklMRVNFTEVDVF9PSy5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5UaW55TWNlRmlsZXNlbGVjdENhbmNlbCwgdGhpcy5USU5ZTUNFX0ZJTEVTRUxFQ1RfQ0FOQ0VMLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5UaW55TWNlRmlsZXNlbGVjdERpYWxvZ3RpdGxlLCB0aGlzLlRJTllNQ0VfRklMRVNFTEVDVF9ESUFMT0dUSVRMRS5nZXQoJ2RlJykpO1xuXG4gICAgICAgIC8vIENvbmZpcm0gRGlhbG9nIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5Db25maXJtRGVmYXVsdEJ1dHRvblllcywgdGhpcy5DT05GSVJNX0JVVFRPTl9ZRVMuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuQ29uZmlybURlZmF1bHRCdXR0b25ObywgdGhpcy5DT05GSVJNX0JVVFRPTl9OTy5nZXQoJ2RlJykpO1xuXG4gICAgICAgIC8vIEJyb3dzZXIgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyR3JpZE5vRmlsZXMsIHRoaXMuRklMRUJST1dTRVJfTk9fRklMRVMuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJHcmlkRmlsZW5hbWUsIHRoaXMuRklMRUJST1dTRVJfR1JJRF9GSUxFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyR3JpZFNpemUsIHRoaXMuRklMRUJST1dTRVJfR1JJRF9TSVpFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uVXBsb2FkLCB0aGlzLkZJTEVCUk9XU0VSX1VQTE9BRC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckJ1dHRvbk5ld0ZvbGRlciwgdGhpcy5GSUxFQlJPV1NFUl9ORVdGT0xERVIuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJCdXR0b25SZWZyZXNoLCB0aGlzLkZJTEVCUk9XU0VSX1JFRlJFU0guZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJCdXR0b25EZWxldGUsIHRoaXMuRklMRUJST1dTRVJfREVMRVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQ29uZmlybVRleHREZWxldGVGb2xkZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5GSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZPTERFUi5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQ29uZmlybVRleHREZWxldGVGaWxlLFxuICAgICAgICAgICAgICAgIHRoaXMuRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGSUxFLmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAvLyBFTlxuICAgICAgICAvLyB0aGlzLmRhdGEuc2V0KCdlbicsIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IENPTkZJUk1fQlVUVE9OX05PKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnTmVpbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBDT05GSVJNX0JVVFRPTl9ZRVMoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdKYSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdTb2xsIGRpZSBEYXRlaSBnZWzDtnNjaHQgd2VyZGVuPyddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZPTERFUigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1NvbGwgZGVyIE9yZG5lciBnZWzDtnNjaHQgd2VyZGVuPyddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9ERUxFVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdMw7ZzY2hlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9HUklEX0ZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdEYXRlaW5hbWUnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfR1JJRF9TSVpFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnR3LDtnNzZSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9ORVdGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdOZXVlciBPcmRuZXInXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgRklMRUJST1dTRVJfTk9fRklMRVMoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdLZWluZSBEYXRlaWVuIHZvcmhhbmRlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9SRUZSRVNIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnQWt0dWFsaXNpZXJlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9VUExPQUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdMZWdlbiBTaWUgRGF0ZWllbiBoaWVyIGFiIHVtIFNpZSBob2NoenVsYWRlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBQQUdJTkdfUEFHRUVOVFJJRVNURVhUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRWludHLDpGdlIHBybyBTZWl0ZSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBQQUdJTkdfUEFHRU9GVEVYVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1NlaXRlIHt7Q1VSUkVOVFBBR0V9fSB2b24ge3tUT1RBTFBBR0VTfX0nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0FiYnJlY2hlbiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdEYXRlaSBhdXN3w6RobGVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9PSygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ09LJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFVQTE9BRF9CVVRUT05fQlJPV1NFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnQnJvd3NlLi4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFVQTE9BRF9CVVRUT05fVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnVXBsb2FkJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFVQTE9BRF9OT19GSUxFX1NFTEVDVEVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnS2VpbmUgRGF0ZWkgYXVzZ2V3w6RobHQnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgaXN0IGtlaW4gZ8O8bHRpZ2VzIERhdHVtLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX0VNQUlMKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBpc3Qga2VpbmUgRS1NYWlsIEFkcmVzc2UnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VzIG3DvHNzZW4gbWluLiB7e01JTkZJTEVTfX0gRGF0ZWllbiBob2NoZ2VsYWRlbiBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01BWERBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIG11c3Mgw6RsdGVyIG9kZXIgZ2xlaWNoIHt7TUFYREFURX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhUSU1FfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBkYXJmIG5pY2h0IGdyw7Zzc2VyIGFscyB7e01BWFZBTFVFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBtdXNzIG5ldWVyIG9kZXIgZ2xlaWNoIHt7TUlOREFURX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgZXJmb3JkZXJ0IG1pbi4ge3tNSU5URVhUTEVOR1RIfX0gWmVpY2hlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5USU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBtdXNzIG5ldWVyIG9kZXIgZ2xlaWNoIHt7TUlOVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdXZXJ0IGRhcmYgbmljaHQga2xlaW5lciBhbHMge3tNSU5WQUxVRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRXMgbcO8c3NlbiBhbGxlIFNwcmFjaGVuIGVyZmFzc3Qgc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdFcyBtdXNzIG1pbi4gMSBTcHJhY2hlIGVyZmFzc3Qgc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9QQVRURVJOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnV2VydCBlbnRzcHJpY2h0IG5pY2h0IGRlciBGb3JtYXQgVm9ybGFnZS4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgaXN0IGVyZm9yZGVybGljaC4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGlzdCBrZWluIGfDvGx0aWdlcyBEYXR1bS4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGlzdCBrZWluZSBFLU1haWwgQWRyZXNzZSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRklMRVNNSU4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBtaW4uIHt7TUlORklMRVN9fSBEYXRlaWVuIGhvY2hnZWxhZGVuIGhhYmVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIMOkbHRlciBvZGVyIGdsZWljaCB7e01BWERBVEV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIMOkbHRlciBvZGVyIGdsZWljaCB7e01BWFRJTUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdXZXJ0IGRhcmYgbmljaHQgZ3LDtnNzZXIgYWxzIHt7TUFYVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIG5ldWVyIG9kZXIgZ2xlaWNoIHt7TUlOREFURX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5URVhUTEVOR1RIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGVyZm9yZGVydCBtaW4uIHt7TUlOVEVYVExFTkdUSH19IFplaWNoZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5USU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbmV1ZXIgb2RlciBnbGVpY2gge3tNSU5USU1FfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGRhcmYgbmljaHQga2xlaW5lciBhbHMge3tNSU5WQUxVRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBhbGxlIFNwcmFjaGVuIGVyZmFzc3QgaGFiZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBtaW4uIDEgU3ByYWNoZSBlcmZhc3N0IGhhYmVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBlbnRzcHJpY2h0IG5pY2h0IGRlciBGb3JtYXQgVm9ybGFnZS4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1JFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGlzdCBlcmZvcmRlcmxpY2guJ11dKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIHNlbGVjdGVkIGxhbmd1YWdlIChzdHJpbmcpIGJhc2VkIG9uIGtleSBhbmQgcGFyYW1zXG4gICAgICogQHBhcmFtIGtleSBUaGUgcmVzb3VyY2Uga2V5IHRvIHJldHJpZXZlXG4gICAgICogQHBhcmFtIHBhcmFtcyBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBzdHJpbmcgaW50ZXJwb2xhdGlvblxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyaW5nIHdpdGggdGhlIGxvY2FsaXplZCByZXNvdXJjZVxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRTdHJpbmcoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgbGV0IGxhbmd1YWdlOiBzdHJpbmcgPSB0aGlzLkdldExhbmd1YWdlKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kYXRhLmhhcyhsYW5ndWFnZSkpIHtcbiAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMuR2V0RmFsbGJhY2tMYW5ndWFnZSgpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmV0dXJuIEtleSBpZiBubyBMYW5ndWFnZSBleGlzdHNcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5oYXMobGFuZ3VhZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5nZXQobGFuZ3VhZ2UpLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmRhdGEuZ2V0KGxhbmd1YWdlKS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zICE9PSB1bmRlZmluZWQgJiYgcGFyYW1zICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlcjogSW50ZXJwb2xhdGlvbiA9IG5ldyBJbnRlcnBvbGF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZm9ybWF0dGVyLmludGVycG9sYXRlU3RyaW5nKHJlc291cmNlLCBwYXJhbXMpKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzb3VyY2UpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGtleSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gc2V0cyB0aGUgZGVmYXVsdCBsYW5ndWFnZSB0byBERSBpZiBsYW5ndWFnZSBzZXR0aW5nIGlzIG5vdCBwb3NzaWJsZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIEdldEZhbGxiYWNrTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdkZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNlbGVjdGVkIGxhbmd1YWdlLlxuICAgICAqL1xuICAgIHByaXZhdGUgR2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2U6IHN0cmluZyA9IG5hdmlnYXRvci5sYW5ndWFnZTtcblxuICAgICAgICBpZiAobGFuZ3VhZ2UuaW5kZXhPZignLScpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBsYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGxhbmd1YWdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cblxuLy8gI2VuZHJlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXdkYzZoeTlwIiwiYWN0dWFsQ292ZXJhZ2UiLCJJbnRlcnBvbGF0aW9uIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiSW5qZWN0IiwiSW5qZWN0YWJsZSIsIkluamVjdGlvblRva2VuIiwiT2JzZXJ2YWJsZSIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwicyIsIlNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZSIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwicHJvdmlkZWRJbiIsImRlY29yYXRvcnMiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsImNvbnN0cnVjdG9yIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJmIiwiZGF0YSIsIk1hcCIsInNldCIsImdldCIsIlZhbGlkYXRpb25FcnJvclJlcXVpcmVkIiwiVkFMSURBVElPTl9FUlJPUl9SRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvck1pblZhbHVlIiwiVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5WYWx1ZSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5WQUxVRSIsIlZhbGlkYXRpb25FcnJvclBhdHRlcm4iLCJWQUxJREFUSU9OX0VSUk9SX1BBVFRFUk4iLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UGF0dGVybiIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOIiwiVmFsaWRhdGlvbkVycm9yTWF4VmFsdWUiLCJWQUxJREFUSU9OX0VSUk9SX01BWFZBTFVFIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFZBTFVFIiwiVmFsaWRhdGlvbkVycm9yRW1haWwiLCJWQUxJREFUSU9OX0VSUk9SX0VNQUlMIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeUVtYWlsIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMIiwiVmFsaWRhdGlvbkVycm9yTWluVGV4dExlbmd0aCIsIlZBTElEQVRJT05fRVJST1JfTUlOVEVYVExFTkdUSCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UZXh0TGVuZ3RoIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRFWFRMRU5HVEgiLCJWYWxpZGF0aW9uRXJyb3JNaW5EYXRlIiwiVkFMSURBVElPTl9FUlJPUl9NSU5EQVRFIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGUiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSIsIlZhbGlkYXRpb25FcnJvck1heERhdGUiLCJWQUxJREFUSU9OX0VSUk9SX01BWERBVEUiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFIiwiVmFsaWRhdGlvbkVycm9yTWluVGltZSIsIlZBTElEQVRJT05fRVJST1JfTUlOVElNRSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UaW1lIiwiVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUiLCJWYWxpZGF0aW9uRXJyb3JNYXhUaW1lIiwiVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFRpbWUiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVElNRSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwiVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCIsIlZhbGlkYXRpb25FcnJvckZpbGVzTWluIiwiVkFMSURBVElPTl9FUlJPUl9GSUxFU01JTiIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbiIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTiIsIlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSIsIlZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSIsIlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlkiLCJWYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWQiLCJWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEIiwiUGFnaW5nUGFnZU9mIiwiUEFHSU5HX1BBR0VPRlRFWFQiLCJQYWdpbmdFbnRyaWVzIiwiUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCIsIlVwbG9hZE5vRmlsZXNTZWxlY3RlZCIsIlVQTE9BRF9OT19GSUxFX1NFTEVDVEVEIiwiVXBsb2FkQnV0dG9uVXBsb2FkIiwiVVBMT0FEX0JVVFRPTl9VUExPQUQiLCJVcGxvYWRCdXR0b25Ccm93c2UiLCJVUExPQURfQlVUVE9OX0JST1dTRSIsIlRpbnlNY2VGaWxlc2VsZWN0T2siLCJUSU5ZTUNFX0ZJTEVTRUxFQ1RfT0siLCJUaW55TWNlRmlsZXNlbGVjdENhbmNlbCIsIlRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwiLCJUaW55TWNlRmlsZXNlbGVjdERpYWxvZ3RpdGxlIiwiVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFIiwiQ29uZmlybURlZmF1bHRCdXR0b25ZZXMiLCJDT05GSVJNX0JVVFRPTl9ZRVMiLCJDb25maXJtRGVmYXVsdEJ1dHRvbk5vIiwiQ09ORklSTV9CVVRUT05fTk8iLCJGaWxlYnJvd3NlckdyaWROb0ZpbGVzIiwiRklMRUJST1dTRVJfTk9fRklMRVMiLCJGaWxlYnJvd3NlckdyaWRGaWxlbmFtZSIsIkZJTEVCUk9XU0VSX0dSSURfRklMRSIsIkZpbGVicm93c2VyR3JpZFNpemUiLCJGSUxFQlJPV1NFUl9HUklEX1NJWkUiLCJGaWxlYnJvd3NlckJ1dHRvblVwbG9hZCIsIkZJTEVCUk9XU0VSX1VQTE9BRCIsIkZpbGVicm93c2VyQnV0dG9uTmV3Rm9sZGVyIiwiRklMRUJST1dTRVJfTkVXRk9MREVSIiwiRmlsZWJyb3dzZXJCdXR0b25SZWZyZXNoIiwiRklMRUJST1dTRVJfUkVGUkVTSCIsIkZpbGVicm93c2VyQnV0dG9uRGVsZXRlIiwiRklMRUJST1dTRVJfREVMRVRFIiwiRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZvbGRlciIsIkZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRk9MREVSIiwiRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZpbGUiLCJGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUiLCJHZXRTdHJpbmciLCJrZXkiLCJwYXJhbXMiLCJvYnNlcnZlciIsImxhbmd1YWdlIiwiR2V0TGFuZ3VhZ2UiLCJoYXMiLCJiIiwiR2V0RmFsbGJhY2tMYW5ndWFnZSIsIm5leHQiLCJjb21wbGV0ZSIsInJlc291cmNlIiwidW5kZWZpbmVkIiwiZm9ybWF0dGVyIiwiaW50ZXJwb2xhdGVTdHJpbmciLCJuYXZpZ2F0b3IiLCJpbmRleE9mIiwic3BsaXQiLCJ0b2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xuaW1wb3J0IHsgSW50ZXJwb2xhdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9pbnRlcnBvbGF0aW9uJztcbmltcG9ydCB7IFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSB9IGZyb20gJy4vc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogaW5qZWN0aW9uIHRva2VuIGZvciBsb2NhbGlzYXRpb24gc2VydmljZVxuICovXG5leHBvcnQgY29uc3QgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2FjQWJzdHJhY3RMb2NhbGlzYXRpb25TZXJ2aWNlPignU2FjTG9jYWxpc2F0aW9uU2VydmljZScpO1xuXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xuXG4vLyAjcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcblxuLyoqXG4gKiBhYnN0cmFjdCBjbGFzcyBmb3IgbG9jYWxpc2F0aW9uIGluIGNvbXBvbmVudHNcbiAqICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0TG9jYWxpc2F0aW9uU2VydmljZSBpbXBsZW1lbnRzIElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIHtcbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX05PKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IENPTkZJUk1fQlVUVE9OX1lFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVIoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfREVMRVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX0dSSURfRklMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBGSUxFQlJPV1NFUl9HUklEX1NJWkUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfTkVXRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX05PX0ZJTEVTKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IEZJTEVCUk9XU0VSX1JFRlJFU0goKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgRklMRUJST1dTRVJfVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFBBR0lOR19QQUdFRU5UUklFU1RFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgUEFHSU5HX1BBR0VPRlRFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX0NBTkNFTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfRElBTE9HVElUTEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX09LKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fQlJPV1NFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9CVVRUT05fVVBMT0FEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFVQTE9BRF9OT19GSUxFX1NFTEVDVEVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9FTUFJTCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfUEFUVEVSTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGhvZCB0cmFuc2xhdGVzIHRoZSBwcm92aWRlZCB3b3JkL3Rlcm0uIFJlcXVpcmVzIGEga2V5IGFuZCBvcHRpb25hbCBwYXJhbXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgR2V0U3RyaW5nKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG5cbi8qKlxuICogZGVmYXVsdCBsb2NhbGlzYXRpb24gc2VydmljZVxuICogKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UgZXh0ZW5kcyBTYWNBYnN0cmFjdExvY2FsaXNhdGlvblNlcnZpY2Uge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogTGFuZ3VhZ2UgcmVzb3VyY2VzIGZvciB0aGUgY29udHJvbHMgbGlicmFyeVxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhOiBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PiA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PigpO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbktleVNlcnZpY2UgU2VydmljZSBmb3IgdmFsaWRhdGlvbiBrZXkgbG9jYWxpemF0aW9uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFKVxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvLyBTZXQgTGFuZ3VhZ2VzXG4gICAgICAgIHRoaXMuZGF0YS5zZXQoJ2RlJywgbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvblxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVELmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1JFUVVJUkVELmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1pblZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUlOVkFMVUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5WYWx1ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUGF0dGVybiwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1BBVFRFUk4uZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlQYXR0ZXJuLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heFZhbHVlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUFYVkFMVUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhWYWx1ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVkFMVUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRW1haWwsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9FTUFJTC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeUVtYWlsLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9FTUFJTC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVGV4dExlbmd0aCwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01JTlRFWFRMRU5HVEguZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UZXh0TGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRFWFRMRU5HVEguZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5EYXRlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUlOREFURS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTkRBVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4RGF0ZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX01BWERBVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhEYXRlLCB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1pblRpbWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9NSU5USU1FLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YVxuICAgICAgICAgICAgLmdldCgnZGUnKVxuICAgICAgICAgICAgLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluVGltZSwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVElNRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNYXhUaW1lLCB0aGlzLlZBTElEQVRJT05fRVJST1JfTUFYVElNRS5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGFcbiAgICAgICAgICAgIC5nZXQoJ2RlJylcbiAgICAgICAgICAgIC5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFRpbWUsIHRoaXMuVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFRJTUUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0LCB0aGlzLlZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9EQVRFVElNRUZPUk1BVC5nZXQoJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckZpbGVzTWluLCB0aGlzLlZBTElEQVRJT05fRVJST1JfRklMRVNNSU4uZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbiwgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRklMRVNNSU4uZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZLmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnksXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZLmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICB0aGlzLlZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVELmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNdWx0aWxhbmd1YWdlUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgdGhpcy5WQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVELmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAvLyBHcmlkIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5QYWdpbmdQYWdlT2YsIHRoaXMuUEFHSU5HX1BBR0VPRlRFWFQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuUGFnaW5nRW50cmllcywgdGhpcy5QQUdJTkdfUEFHRUVOVFJJRVNURVhULmdldCgnZGUnKSk7XG5cbiAgICAgICAgLy8gVXBsb2FkIENvbXBvbmVudFxuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWROb0ZpbGVzU2VsZWN0ZWQsIHRoaXMuVVBMT0FEX05PX0ZJTEVfU0VMRUNURUQuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkLCB0aGlzLlVQTE9BRF9CVVRUT05fVVBMT0FELmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvbkJyb3dzZSwgdGhpcy5VUExPQURfQlVUVE9OX0JST1dTRS5nZXQoJ2RlJykpO1xuXG4gICAgICAgIC8vIFRpbnlNQ0UgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlRpbnlNY2VGaWxlc2VsZWN0T2ssIHRoaXMuVElOWU1DRV9GSUxFU0VMRUNUX09LLmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlRpbnlNY2VGaWxlc2VsZWN0Q2FuY2VsLCB0aGlzLlRJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLlRpbnlNY2VGaWxlc2VsZWN0RGlhbG9ndGl0bGUsIHRoaXMuVElOWU1DRV9GSUxFU0VMRUNUX0RJQUxPR1RJVExFLmdldCgnZGUnKSk7XG5cbiAgICAgICAgLy8gQ29uZmlybSBEaWFsb2cgQ29tcG9uZW50XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkNvbmZpcm1EZWZhdWx0QnV0dG9uWWVzLCB0aGlzLkNPTkZJUk1fQlVUVE9OX1lFUy5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5Db25maXJtRGVmYXVsdEJ1dHRvbk5vLCB0aGlzLkNPTkZJUk1fQlVUVE9OX05PLmdldCgnZGUnKSk7XG5cbiAgICAgICAgLy8gQnJvd3NlciBDb21wb25lbnRcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJHcmlkTm9GaWxlcywgdGhpcy5GSUxFQlJPV1NFUl9OT19GSUxFUy5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckdyaWRGaWxlbmFtZSwgdGhpcy5GSUxFQlJPV1NFUl9HUklEX0ZJTEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJHcmlkU2l6ZSwgdGhpcy5GSUxFQlJPV1NFUl9HUklEX1NJWkUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhLmdldCgnZGUnKS5zZXQodmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJCdXR0b25VcGxvYWQsIHRoaXMuRklMRUJST1dTRVJfVVBMT0FELmdldCgnZGUnKSk7XG4gICAgICAgIHRoaXMuZGF0YS5nZXQoJ2RlJykuc2V0KHZhbGlkYXRpb25LZXlTZXJ2aWNlLkZpbGVicm93c2VyQnV0dG9uTmV3Rm9sZGVyLCB0aGlzLkZJTEVCUk9XU0VSX05FV0ZPTERFUi5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckJ1dHRvblJlZnJlc2gsIHRoaXMuRklMRUJST1dTRVJfUkVGUkVTSC5nZXQoJ2RlJykpO1xuICAgICAgICB0aGlzLmRhdGEuZ2V0KCdkZScpLnNldCh2YWxpZGF0aW9uS2V5U2VydmljZS5GaWxlYnJvd3NlckJ1dHRvbkRlbGV0ZSwgdGhpcy5GSUxFQlJPV1NFUl9ERUxFVEUuZ2V0KCdkZScpKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZvbGRlcixcbiAgICAgICAgICAgICAgICB0aGlzLkZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRk9MREVSLmdldCgnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhXG4gICAgICAgICAgICAuZ2V0KCdkZScpXG4gICAgICAgICAgICAuc2V0KFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZpbGUsXG4gICAgICAgICAgICAgICAgdGhpcy5GSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUuZ2V0KCdkZScpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIEVOXG4gICAgICAgIC8vIHRoaXMuZGF0YS5zZXQoJ2VuJywgbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIHByb3RlY3RlZCBnZXQgQ09ORklSTV9CVVRUT05fTk8oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdOZWluJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IENPTkZJUk1fQlVUVE9OX1lFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0phJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRklMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1NvbGwgZGllIERhdGVpIGdlbMO2c2NodCB3ZXJkZW4/J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0NPTkZJUk1fREVMRVRFRk9MREVSKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnU29sbCBkZXIgT3JkbmVyIGdlbMO2c2NodCB3ZXJkZW4/J11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0RFTEVURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0zDtnNjaGVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX0dSSURfRklMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0RhdGVpbmFtZSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9HUklEX1NJWkUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdHcsO2c3NlJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX05FV0ZPTERFUigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ05ldWVyIE9yZG5lciddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBGSUxFQlJPV1NFUl9OT19GSUxFUygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0tlaW5lIERhdGVpZW4gdm9yaGFuZGVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX1JFRlJFU0goKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdBa3R1YWxpc2llcmVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEZJTEVCUk9XU0VSX1VQTE9BRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0xlZ2VuIFNpZSBEYXRlaWVuIGhpZXIgYWIgdW0gU2llIGhvY2h6dWxhZGVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFBBR0lOR19QQUdFRU5UUklFU1RFWFQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdFaW50csOkZ2UgcHJvIFNlaXRlJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFBBR0lOR19QQUdFT0ZURVhUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnU2VpdGUge3tDVVJSRU5UUEFHRX19IHZvbiB7e1RPVEFMUEFHRVN9fSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBUSU5ZTUNFX0ZJTEVTRUxFQ1RfQ0FOQ0VMKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnQWJicmVjaGVuJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFRJTllNQ0VfRklMRVNFTEVDVF9ESUFMT0dUSVRMRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0RhdGVpIGF1c3fDpGhsZW4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVElOWU1DRV9GSUxFU0VMRUNUX09LKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnT0snXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVVBMT0FEX0JVVFRPTl9CUk9XU0UoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdCcm93c2UuLi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVVBMT0FEX0JVVFRPTl9VUExPQUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdVcGxvYWQnXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVVBMT0FEX05PX0ZJTEVfU0VMRUNURUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdLZWluZSBEYXRlaSBhdXNnZXfDpGhsdCddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX0RBVEVUSU1FRk9STUFUKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBpc3Qga2VpbiBnw7xsdGlnZXMgRGF0dW0uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIGlzdCBrZWluZSBFLU1haWwgQWRyZXNzZSddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRXMgbcO8c3NlbiBtaW4uIHt7TUlORklMRVN9fSBEYXRlaWVuIGhvY2hnZWxhZGVuIHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfTUFYREFURSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgbXVzcyDDpGx0ZXIgb2RlciBnbGVpY2gge3tNQVhEQVRFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBtdXNzIMOkbHRlciBvZGVyIGdsZWljaCB7e01BWFRJTUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01BWFZBTFVFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGRhcmYgbmljaHQgZ3LDtnNzZXIgYWxzIHt7TUFYVkFMVUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTkRBVEUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIG11c3MgbmV1ZXIgb2RlciBnbGVpY2gge3tNSU5EQVRFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RIKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBlcmZvcmRlcnQgbWluLiB7e01JTlRFWFRMRU5HVEh9fSBaZWljaGVuLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01JTlRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIG11c3MgbmV1ZXIgb2RlciBnbGVpY2gge3tNSU5USU1FfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1dlcnQgZGFyZiBuaWNodCBrbGVpbmVyIGFscyB7e01JTlZBTFVFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdFcyBtw7xzc2VuIGFsbGUgU3ByYWNoZW4gZXJmYXNzdCBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0VzIG11c3MgbWluLiAxIFNwcmFjaGUgZXJmYXNzdCBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1BBVFRFUk4oKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdXZXJ0IGVudHNwcmljaHQgbmljaHQgZGVyIEZvcm1hdCBWb3JsYWdlLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBpc3QgZXJmb3JkZXJsaWNoLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgaXN0IGtlaW4gZ8O8bHRpZ2VzIERhdHVtLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRU1BSUwoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgaXN0IGtlaW5lIEUtTWFpbCBBZHJlc3NlJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9GSUxFU01JTigpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIG1pbi4ge3tNSU5GSUxFU319IERhdGVpZW4gaG9jaGdlbGFkZW4gaGFiZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhEQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3Mgw6RsdGVyIG9kZXIgZ2xlaWNoIHt7TUFYREFURX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3Mgw6RsdGVyIG9kZXIgZ2xlaWNoIHt7TUFYVElNRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ1dlcnQgZGFyZiBuaWNodCBncsO2c3NlciBhbHMge3tNQVhWQUxVRX19IHNlaW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5EQVRFKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIG11c3MgbmV1ZXIgb2RlciBnbGVpY2gge3tNSU5EQVRFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRFWFRMRU5HVEgoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZXJmb3JkZXJ0IG1pbi4ge3tNSU5URVhUTEVOR1RIfX0gWmVpY2hlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgbXVzcyBuZXVlciBvZGVyIGdsZWljaCB7e01JTlRJTUV9fSBzZWluLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgZGFyZiBuaWNodCBrbGVpbmVyIGFscyB7e01JTlZBTFVFfX0gc2Vpbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIGFsbGUgU3ByYWNoZW4gZXJmYXNzdCBoYWJlbi4nXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWSgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJ2RlJywgJ0ZlbGQgXCJ7e0ZJRUxEfX1cIiBtdXNzIG1pbi4gMSBTcHJhY2hlIGVyZmFzc3QgaGFiZW4uJ11dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9QQVRURVJOKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1snZGUnLCAnRmVsZCBcInt7RklFTER9fVwiIGVudHNwcmljaHQgbmljaHQgZGVyIEZvcm1hdCBWb3JsYWdlLiddXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbWydkZScsICdGZWxkIFwie3tGSUVMRH19XCIgaXN0IGVyZm9yZGVybGljaC4nXV0pO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2QgcmV0dXJucyB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2UgKHN0cmluZykgYmFzZWQgb24ga2V5IGFuZCBwYXJhbXNcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSByZXNvdXJjZSBrZXkgdG8gcmV0cmlldmVcbiAgICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHN0cmluZyBpbnRlcnBvbGF0aW9uXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBzdHJpbmcgd2l0aCB0aGUgbG9jYWxpemVkIHJlc291cmNlXG4gICAgICovXG4gICAgcHVibGljIEdldFN0cmluZyhrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBsZXQgbGFuZ3VhZ2U6IHN0cmluZyA9IHRoaXMuR2V0TGFuZ3VhZ2UoKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGFzKGxhbmd1YWdlKSkge1xuICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gdGhpcy5HZXRGYWxsYmFja0xhbmd1YWdlKCk7XG5cbiAgICAgICAgICAgICAgICAvLyBSZXR1cm4gS2V5IGlmIG5vIExhbmd1YWdlIGV4aXN0c1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kYXRhLmhhcyhsYW5ndWFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChrZXkpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLmdldChsYW5ndWFnZSkuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuZGF0YS5nZXQobGFuZ3VhZ2UpLmdldChrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXMgIT09IHVuZGVmaW5lZCAmJiBwYXJhbXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVyOiBJbnRlcnBvbGF0aW9uID0gbmV3IEludGVycG9sYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChmb3JtYXR0ZXIuaW50ZXJwb2xhdGVTdHJpbmcocmVzb3VyY2UsIHBhcmFtcykpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoa2V5KTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiBzZXRzIHRoZSBkZWZhdWx0IGxhbmd1YWdlIHRvIERFIGlmIGxhbmd1YWdlIHNldHRpbmcgaXMgbm90IHBvc3NpYmxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgR2V0RmFsbGJhY2tMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2RlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2UuXG4gICAgICovXG4gICAgcHJpdmF0ZSBHZXRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBsYW5ndWFnZTogc3RyaW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlO1xuXG4gICAgICAgIGlmIChsYW5ndWFnZS5pbmRleE9mKCctJykgPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xu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