@simpleangularcontrols/sac-common 16.0.0-rc.4 → 16.0.0-rc.6

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 (199) hide show
  1. package/common/basedatetimecontrol.d.ts.map +1 -1
  2. package/common/basemodelcontrol.d.ts +19 -1
  3. package/common/basemodelcontrol.d.ts.map +1 -1
  4. package/common/baseuploadcontrol.d.ts.map +1 -1
  5. package/components/browser/browser.d.ts +11 -6
  6. package/components/browser/browser.d.ts.map +1 -1
  7. package/controls/buttons/button.d.ts +23 -22
  8. package/controls/buttons/button.d.ts.map +1 -1
  9. package/controls/checkbox/radiobutton.d.ts +9 -0
  10. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  11. package/controls/checkbox/radiobuttons.d.ts +20 -20
  12. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  13. package/controls/confirm/confirm.button.d.ts +14 -8
  14. package/controls/confirm/confirm.button.d.ts.map +1 -1
  15. package/controls/confirm/confirm.service.d.ts +24 -19
  16. package/controls/confirm/confirm.service.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  18. package/controls/datetime/date.d.ts +33 -33
  19. package/controls/datetime/date.d.ts.map +1 -1
  20. package/controls/datetime/datetime.d.ts +31 -31
  21. package/controls/datetime/datetime.d.ts.map +1 -1
  22. package/controls/datetime/time.d.ts +29 -29
  23. package/controls/datetime/time.d.ts.map +1 -1
  24. package/controls/grid/grid.d.ts +57 -54
  25. package/controls/grid/grid.d.ts.map +1 -1
  26. package/controls/grid/paging.d.ts +70 -67
  27. package/controls/grid/paging.d.ts.map +1 -1
  28. package/controls/input/input.d.ts +11 -11
  29. package/controls/input/input.d.ts.map +1 -1
  30. package/controls/input/inputdecimal.d.ts.map +1 -1
  31. package/controls/input/inputemail.d.ts.map +1 -1
  32. package/controls/input/inputinteger.d.ts +21 -21
  33. package/controls/input/inputinteger.d.ts.map +1 -1
  34. package/controls/input/inputpassword.d.ts +5 -5
  35. package/controls/input/inputpassword.d.ts.map +1 -1
  36. package/controls/layout/formlayout.d.ts +14 -9
  37. package/controls/layout/formlayout.d.ts.map +1 -1
  38. package/controls/list/dropdown.d.ts.map +1 -1
  39. package/controls/list/listbox.d.ts +20 -20
  40. package/controls/list/listbox.d.ts.map +1 -1
  41. package/controls/multilanguage/multilanguageinput.d.ts +31 -31
  42. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  43. package/controls/multilanguage/multilanguageinputarea.d.ts +34 -34
  44. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  45. package/controls/tinymce/tinymce.d.ts.map +1 -1
  46. package/controls/upload/dropzonemultiple.d.ts +24 -24
  47. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  48. package/controls/upload/uploadmultiple.d.ts +9 -9
  49. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  50. package/controls/validation/validationsummary.d.ts +18 -13
  51. package/controls/validation/validationsummary.d.ts.map +1 -1
  52. package/enums/ButtonRoleType.d.ts +2 -0
  53. package/enums/ButtonRoleType.d.ts.map +1 -0
  54. package/enums/ControlHeight.d.ts +18 -0
  55. package/enums/ControlHeight.d.ts.map +1 -0
  56. package/esm2022/common/basedatetimecontrol.mjs +32 -148
  57. package/esm2022/common/baseinputcontrol.mjs +20 -77
  58. package/esm2022/common/baselistcontrol.mjs +11 -56
  59. package/esm2022/common/basemodelcontrol.mjs +81 -408
  60. package/esm2022/common/baseselectcontrol.mjs +6 -27
  61. package/esm2022/common/baseuploadcontrol.mjs +64 -389
  62. package/esm2022/components/browser/browser.mjs +66 -474
  63. package/esm2022/components/browser/models/browserfile.mjs +3 -2
  64. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
  65. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
  66. package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
  67. package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
  68. package/esm2022/components/browser/models/browsernode.mjs +3 -2
  69. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
  70. package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
  71. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
  72. package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
  73. package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
  74. package/esm2022/controls/buttons/button.mjs +32 -131
  75. package/esm2022/controls/checkbox/checkbox.mjs +7 -34
  76. package/esm2022/controls/checkbox/radiobutton.mjs +24 -98
  77. package/esm2022/controls/checkbox/radiobuttons.mjs +26 -104
  78. package/esm2022/controls/confirm/confirm.button.mjs +17 -21
  79. package/esm2022/controls/confirm/confirm.mjs +19 -69
  80. package/esm2022/controls/confirm/confirm.service.mjs +29 -74
  81. package/esm2022/controls/contextmenu/contextmenu.mjs +31 -169
  82. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -20
  83. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -20
  84. package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -13
  85. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +15 -91
  86. package/esm2022/controls/datetime/date.mjs +39 -203
  87. package/esm2022/controls/datetime/dateselector.mjs +65 -409
  88. package/esm2022/controls/datetime/datetime.mjs +41 -220
  89. package/esm2022/controls/datetime/time.mjs +38 -201
  90. package/esm2022/controls/dialog/dialog.mjs +33 -194
  91. package/esm2022/controls/form/form.mjs +24 -96
  92. package/esm2022/controls/grid/grid.mjs +39 -146
  93. package/esm2022/controls/grid/gridbutton.mjs +9 -52
  94. package/esm2022/controls/grid/gridcolumn.mjs +9 -41
  95. package/esm2022/controls/grid/gridcolumnaction.mjs +5 -20
  96. package/esm2022/controls/grid/gridcolumnbase.mjs +20 -114
  97. package/esm2022/controls/grid/gridimage.mjs +4 -15
  98. package/esm2022/controls/grid/model.mjs +16 -59
  99. package/esm2022/controls/grid/paging.mjs +65 -232
  100. package/esm2022/controls/input/input.mjs +17 -65
  101. package/esm2022/controls/input/inputarea.mjs +10 -53
  102. package/esm2022/controls/input/inputcurrency.mjs +4 -14
  103. package/esm2022/controls/input/inputdecimal.mjs +25 -140
  104. package/esm2022/controls/input/inputemail.mjs +10 -37
  105. package/esm2022/controls/input/inputinteger.mjs +32 -127
  106. package/esm2022/controls/input/inputpassword.mjs +12 -43
  107. package/esm2022/controls/input/inputsearch.mjs +8 -37
  108. package/esm2022/controls/layout/formlayout.mjs +20 -65
  109. package/esm2022/controls/list/dropdown.mjs +54 -219
  110. package/esm2022/controls/list/listbox.mjs +40 -159
  111. package/esm2022/controls/multilanguage/multilanguageinput.mjs +45 -213
  112. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +48 -215
  113. package/esm2022/controls/static/formcontainer.mjs +10 -44
  114. package/esm2022/controls/static/staticlabel.mjs +7 -28
  115. package/esm2022/controls/tabs/tab.mjs +14 -68
  116. package/esm2022/controls/tabs/tabitem.mjs +7 -37
  117. package/esm2022/controls/tinymce/tinymce.mjs +41 -218
  118. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
  119. package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
  120. package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
  121. package/esm2022/controls/tooltip/tooltip.mjs +46 -327
  122. package/esm2022/controls/treeview/ngtreeitemaction.mjs +9 -56
  123. package/esm2022/controls/treeview/treeview.mjs +53 -299
  124. package/esm2022/controls/treeview/treeviewchild.mjs +5 -19
  125. package/esm2022/controls/upload/dropzonemultiple.mjs +32 -152
  126. package/esm2022/controls/upload/dropzonesingle.mjs +12 -91
  127. package/esm2022/controls/upload/uploadmultiple.mjs +21 -111
  128. package/esm2022/controls/upload/uploadsingle.mjs +8 -50
  129. package/esm2022/controls/validation/validationsummary.mjs +23 -120
  130. package/esm2022/controls/wizard/wizard.mjs +20 -128
  131. package/esm2022/controls/wizard/wizarditem.mjs +6 -31
  132. package/esm2022/enums/ButtonRoleType.mjs +3 -0
  133. package/esm2022/enums/ControlHeight.mjs +11 -0
  134. package/esm2022/enums/IconType.mjs +4 -8
  135. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -2
  136. package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
  137. package/esm2022/interfaces/ISacIconService.mjs +3 -2
  138. package/esm2022/interfaces/ISacLabelSizes.mjs +3 -2
  139. package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
  140. package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
  141. package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
  142. package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
  143. package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
  144. package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
  145. package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
  146. package/esm2022/models/languagemodel.mjs +5 -11
  147. package/esm2022/public_api.mjs +23 -95
  148. package/esm2022/services/index.mjs +3 -6
  149. package/esm2022/services/sac-configuration.service.mjs +13 -59
  150. package/esm2022/services/sac-filebrowser.service.mjs +15 -167
  151. package/esm2022/services/sac-icon.service.mjs +49 -155
  152. package/esm2022/services/sac-language.service.mjs +7 -45
  153. package/esm2022/services/sac-localisation.service.mjs +33 -428
  154. package/esm2022/services/sac-validationkey.service.mjs +7 -0
  155. package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
  156. package/esm2022/utilities/convertion.mjs +6 -26
  157. package/esm2022/utilities/datatypes.mjs +4 -6
  158. package/esm2022/utilities/enums.mjs +8 -15
  159. package/esm2022/utilities/guid.mjs +5 -15
  160. package/esm2022/utilities/interpolation.mjs +7 -42
  161. package/esm2022/utilities/positioning.mjs +23 -266
  162. package/esm2022/validation/email.validator.mjs +3 -13
  163. package/esm2022/validation/index.mjs +3 -3
  164. package/esm2022/validation/invaliddate.validator.mjs +3 -14
  165. package/esm2022/validation/isDateValid.mjs +5 -14
  166. package/esm2022/validation/maxdate.validator.mjs +4 -21
  167. package/esm2022/validation/maxtime.validator.mjs +4 -21
  168. package/esm2022/validation/maxvalue.validator.mjs +3 -16
  169. package/esm2022/validation/mindate.validator.mjs +4 -21
  170. package/esm2022/validation/minfiles.validator.mjs +4 -19
  171. package/esm2022/validation/minlength.validator.mjs +3 -21
  172. package/esm2022/validation/mintime.validator.mjs +4 -21
  173. package/esm2022/validation/minvalue.validator.mjs +3 -16
  174. package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
  175. package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
  176. package/esm2022/validation/pattern.validator.mjs +3 -16
  177. package/esm2022/validation/required.validator.mjs +3 -13
  178. package/esm2022/validation/validation.mjs +20 -99
  179. package/esm2022/validation/validationerrorcreator.mjs +3 -11
  180. package/esm2022/validation/validationerroritem.mjs +7 -19
  181. package/fesm2022/simpleangularcontrols-sac-common.mjs +1625 -9018
  182. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  183. package/interfaces/ISacConfigurationService.d.ts +5 -0
  184. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  185. package/interfaces/ISacValidationKeyService.d.ts +53 -0
  186. package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
  187. package/package.json +1 -1
  188. package/public_api.d.ts +4 -1
  189. package/public_api.d.ts.map +1 -1
  190. package/services/index.d.ts +1 -0
  191. package/services/index.d.ts.map +1 -1
  192. package/services/sac-configuration.service.d.ts +6 -0
  193. package/services/sac-configuration.service.d.ts.map +1 -1
  194. package/services/sac-localisation.service.d.ts +103 -97
  195. package/services/sac-localisation.service.d.ts.map +1 -1
  196. package/services/sac-validationkey.service.d.ts +59 -0
  197. package/services/sac-validationkey.service.d.ts.map +1 -0
  198. package/simpleangularcontrols-sac-common-16.0.0-rc.6.tgz +0 -0
  199. package/simpleangularcontrols-sac-common-16.0.0-rc.4.tgz +0 -0
@@ -1,205 +1,53 @@
1
- import { Injectable, InjectionToken } from '@angular/core';
2
- import { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';
3
- import { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';
4
- import { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';
5
- import { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';
6
- import { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';
7
- import { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';
8
- import { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common/http";
11
- /**
1
+ function cov_11eby9qid7(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\services\\sac-filebrowser.service.mjs";var hash="e036967747a4f8f6df150825895dfc4ab5145f8a";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\services\\sac-filebrowser.service.mjs",statementMap:{"0":{start:{line:14,column:38},end:{line:14,column:78}},"1":{start:{line:19,column:13},end:{line:19,column:193}},"2":{start:{line:20,column:13},end:{line:20,column:168}},"3":{start:{line:23,column:0},end:{line:28,column:14}},"4":{start:{line:38,column:8},end:{line:38,column:16}},"5":{start:{line:39,column:8},end:{line:39,column:37}},"6":{start:{line:48,column:20},end:{line:48,column:40}},"7":{start:{line:49,column:8},end:{line:51,column:9}},"8":{start:{line:50,column:12},end:{line:50,column:22}},"9":{start:{line:52,column:24},end:{line:55,column:10}},"10":{start:{line:56,column:8},end:{line:58,column:11}},"11":{start:{line:67,column:20},end:{line:67,column:39}},"12":{start:{line:68,column:8},end:{line:70,column:9}},"13":{start:{line:69,column:12},end:{line:69,column:22}},"14":{start:{line:71,column:24},end:{line:74,column:10}},"15":{start:{line:75,column:8},end:{line:77,column:11}},"16":{start:{line:86,column:20},end:{line:86,column:42}},"17":{start:{line:87,column:8},end:{line:89,column:9}},"18":{start:{line:88,column:12},end:{line:88,column:22}},"19":{start:{line:90,column:24},end:{line:93,column:10}},"20":{start:{line:94,column:8},end:{line:96,column:11}},"21":{start:{line:104,column:20},end:{line:104,column:42}},"22":{start:{line:105,column:8},end:{line:107,column:9}},"23":{start:{line:106,column:12},end:{line:106,column:22}},"24":{start:{line:108,column:24},end:{line:110,column:10}},"25":{start:{line:111,column:8},end:{line:113,column:11}},"26":{start:{line:122,column:20},end:{line:122,column:40}},"27":{start:{line:123,column:8},end:{line:125,column:9}},"28":{start:{line:124,column:12},end:{line:124,column:22}},"29":{start:{line:126,column:24},end:{line:129,column:10}},"30":{start:{line:130,column:8},end:{line:132,column:11}},"31":{start:{line:142,column:20},end:{line:142,column:42}},"32":{start:{line:143,column:8},end:{line:145,column:9}},"33":{start:{line:144,column:12},end:{line:144,column:22}},"34":{start:{line:146,column:24},end:{line:150,column:10}},"35":{start:{line:151,column:8},end:{line:153,column:11}},"36":{start:{line:162,column:20},end:{line:162,column:42}},"37":{start:{line:163,column:8},end:{line:165,column:9}},"38":{start:{line:164,column:12},end:{line:164,column:22}},"39":{start:{line:166,column:24},end:{line:169,column:10}},"40":{start:{line:170,column:8},end:{line:172,column:11}},"41":{start:{line:182,column:20},end:{line:182,column:42}},"42":{start:{line:183,column:8},end:{line:185,column:9}},"43":{start:{line:184,column:12},end:{line:184,column:22}},"44":{start:{line:186,column:24},end:{line:190,column:10}},"45":{start:{line:191,column:8},end:{line:193,column:11}},"46":{start:{line:195,column:13},end:{line:195,column:216}},"47":{start:{line:196,column:13},end:{line:196,column:167}},"48":{start:{line:199,column:0},end:{line:204,column:81}},"49":{start:{line:204,column:42},end:{line:204,column:75}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:37,column:4},end:{line:37,column:5}},loc:{start:{line:37,column:28},end:{line:40,column:5}},line:37},"1":{name:"(anonymous_1)",decl:{start:{line:47,column:4},end:{line:47,column:5}},loc:{start:{line:47,column:45},end:{line:59,column:5}},line:47},"2":{name:"(anonymous_2)",decl:{start:{line:66,column:4},end:{line:66,column:5}},loc:{start:{line:66,column:42},end:{line:78,column:5}},line:66},"3":{name:"(anonymous_3)",decl:{start:{line:85,column:4},end:{line:85,column:5}},loc:{start:{line:85,column:44},end:{line:97,column:5}},line:85},"4":{name:"(anonymous_4)",decl:{start:{line:103,column:4},end:{line:103,column:5}},loc:{start:{line:103,column:29},end:{line:114,column:5}},line:103},"5":{name:"(anonymous_5)",decl:{start:{line:121,column:4},end:{line:121,column:5}},loc:{start:{line:121,column:46},end:{line:133,column:5}},line:121},"6":{name:"(anonymous_6)",decl:{start:{line:141,column:4},end:{line:141,column:5}},loc:{start:{line:141,column:50},end:{line:154,column:5}},line:141},"7":{name:"(anonymous_7)",decl:{start:{line:161,column:4},end:{line:161,column:5}},loc:{start:{line:161,column:48},end:{line:173,column:5}},line:161},"8":{name:"(anonymous_8)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:61},end:{line:194,column:5}},line:181},"9":{name:"(anonymous_9)",decl:{start:{line:204,column:28},end:{line:204,column:29}},loc:{start:{line:204,column:40},end:{line:204,column:77}},line:204}},branchMap:{"0":{loc:{start:{line:49,column:8},end:{line:51,column:9}},type:"if",locations:[{start:{line:49,column:8},end:{line:51,column:9}},{start:{line:49,column:8},end:{line:51,column:9}}],line:49},"1":{loc:{start:{line:68,column:8},end:{line:70,column:9}},type:"if",locations:[{start:{line:68,column:8},end:{line:70,column:9}},{start:{line:68,column:8},end:{line:70,column:9}}],line:68},"2":{loc:{start:{line:87,column:8},end:{line:89,column:9}},type:"if",locations:[{start:{line:87,column:8},end:{line:89,column:9}},{start:{line:87,column:8},end:{line:89,column:9}}],line:87},"3":{loc:{start:{line:105,column:8},end:{line:107,column:9}},type:"if",locations:[{start:{line:105,column:8},end:{line:107,column:9}},{start:{line:105,column:8},end:{line:107,column:9}}],line:105},"4":{loc:{start:{line:123,column:8},end:{line:125,column:9}},type:"if",locations:[{start:{line:123,column:8},end:{line:125,column:9}},{start:{line:123,column:8},end:{line:125,column:9}}],line:123},"5":{loc:{start:{line:143,column:8},end:{line:145,column:9}},type:"if",locations:[{start:{line:143,column:8},end:{line:145,column:9}},{start:{line:143,column:8},end:{line:145,column:9}}],line:143},"6":{loc:{start:{line:163,column:8},end:{line:165,column:9}},type:"if",locations:[{start:{line:163,column:8},end:{line:165,column:9}},{start:{line:163,column:8},end:{line:165,column:9}}],line:163},"7":{loc:{start:{line:183,column:8},end:{line:185,column:9}},type:"if",locations:[{start:{line:183,column:8},end:{line:185,column:9}},{start:{line:183,column:8},end:{line:185,column:9}}],line:183}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0]},inputSourceMap:{version:3,file:"sac-filebrowser.service.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/services/sac-filebrowser.service.ts"],names:[],mappings:"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",sourcesContent:["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BrowserFileDeleteRequest } from '../components/browser/models/browserfiledeleterequest';\r\nimport { BrowserFileRenameRequest } from '../components/browser/models/browserfilerenamerequest';\r\nimport { IBrowserFileResponse } from '../components/browser/models/browserfileresponse';\r\nimport { BrowserFileSaveRequest } from '../components/browser/models/browserfilesaverequest';\r\nimport { BrowserNodeDeleteRequest } from '../components/browser/models/browsernodedeleterequest';\r\nimport { BrowserNodeNewRequest } from '../components/browser/models/browsernodenewrequest';\r\nimport { BrowserNodeRenameRequest } from '../components/browser/models/browsernoderenamerequest';\r\nimport { BrowserNodeRequest } from '../components/browser/models/browsernoderequest';\r\nimport { IBrowserNodeResponse } from '../components/browser/models/browsernoderesponse';\r\nimport { ISacFileBrowserService } from '../interfaces/ISacFileBrowserService';\r\n\r\n/**\r\n * Injection Token f\xFCr Language Service\r\n */\r\nexport const SACFILEBROWSER_SERVICE =\r\n new InjectionToken<ISacFileBrowserService>('FileBrowserService');\r\n\r\n/**\r\n * Abstrakte Implementierung des File Service f\xFCr die Browser Component\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport abstract class SacAbstractFileBrowserService\r\n implements ISacFileBrowserService\r\n{\r\n /**\r\n * Gibt einen Node zur\xFCck\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Node welcher angefordert wird\r\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\r\n */\r\n abstract GetNode(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserNodeResponse>;\r\n\r\n /**\r\n * Speichert einen Node\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad in welchem der Node gespeichert werden soll\r\n * @param newFoldername Name des neuen Nodes\r\n */\r\n abstract SaveNode(\r\n apiurl: string,\r\n path: string,\r\n newFoldername: string\r\n ): Observable<IBrowserNodeResponse>;\r\n\r\n /**\r\n * Rename eines Nodes\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes welcher umbenannt werden soll\r\n * @param newFoldername Neuer Name des Nodes\r\n */\r\n abstract RenameNode(\r\n apiurl: string,\r\n path: string,\r\n newFoldername: string\r\n ): Observable<IBrowserNodeResponse>;\r\n\r\n /**\r\n * L\xF6scht einen Node\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\r\n */\r\n abstract DeleteNode(\r\n apiurl: string,\r\n path: string\r\n ): Observable<IBrowserNodeResponse>;\r\n\r\n /**\r\n * Methode welche die Dateien eines Nodes ausliest\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\r\n * @param allowedextensions Erlaubte File Extensions\r\n */\r\n abstract GetFiles(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse>;\r\n\r\n /**\r\n * Speichert eine Hochgeladene Datei in der Struktur\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad in welchem das neue File gespeichert werden soll\r\n * @param id ID des Uploads\r\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\r\n */\r\n abstract SaveFile(\r\n apiurl: string,\r\n path: string,\r\n id: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse>;\r\n\r\n /**\r\n * Methode welche eine Datei umbenannt\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad zum File welches umbenannt werden soll\r\n * @param newFilename Neuer Dateiname\r\n * @param allowedextensions Erlaubte Extension f\xFCr Files\r\n */\r\n abstract RenameFile(\r\n apiurl: string,\r\n path: string,\r\n newFilename: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse>;\r\n\r\n /**\r\n * L\xF6scht eine Datei\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Files welches gel\xF6scht werden soll\r\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\r\n */\r\n abstract DeleteFile(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse>;\r\n}\r\n\r\n/**\r\n * Standardimplementierung des Backend Service f\xFCr die File Browser Component\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {\r\n /**\r\n * Konstruktor\r\n * @param httpclient HTTP Client Service\r\n */\r\n constructor(private httpclient: HttpClient) {\r\n super();\r\n }\r\n\r\n /**\r\n * Gibt einen Node zur\xFCck\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Node welcher angefordert wird\r\n * @param allowedextensions Erlaubte Extensions die angezeigt werden d\xFCrfen\r\n */\r\n public GetNode(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserNodeResponse> {\r\n const url = `${apiurl}/getnodes`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserNodeRequest({\r\n Path: path,\r\n AllowedTypes: allowedextensions,\r\n });\r\n\r\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * Speichert einen Node\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad in welchem der Node gespeichert werden soll\r\n * @param newFoldername Name des neuen Nodes\r\n */\r\n public SaveNode(\r\n apiurl: string,\r\n path: string,\r\n newFoldername: string\r\n ): Observable<IBrowserNodeResponse> {\r\n const url = `${apiurl}/newnode`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserNodeNewRequest({\r\n Path: path,\r\n NewFoldername: newFoldername,\r\n });\r\n\r\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * Rename eines Nodes\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes welcher umbenannt werden soll\r\n * @param newFoldername Neuer Name des Nodes\r\n */\r\n public RenameNode(\r\n apiurl: string,\r\n path: string,\r\n newFoldername: string\r\n ): Observable<IBrowserNodeResponse> {\r\n const url = `${apiurl}/renamenode`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserNodeRenameRequest({\r\n Path: path,\r\n NewFoldername: newFoldername,\r\n });\r\n\r\n return this.httpclient.put<IBrowserNodeResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * L\xF6scht einen Node\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes welcher gel\xF6scht werden soll\r\n */\r\n public DeleteNode(\r\n apiurl: string,\r\n path: string\r\n ): Observable<IBrowserNodeResponse> {\r\n const url = `${apiurl}/deletenode`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserNodeDeleteRequest({\r\n Path: path,\r\n });\r\n\r\n return this.httpclient.post<IBrowserNodeResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * Methode welche die Dateien eines Nodes ausliest\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Nodes in welchem die Files gelesen werden sollen\r\n * @param allowedextensions Erlaubte File Extensions\r\n */\r\n public GetFiles(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse> {\r\n const url = `${apiurl}/getfiles`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserNodeRequest({\r\n Path: path,\r\n AllowedTypes: allowedextensions,\r\n });\r\n\r\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * Speichert eine Hochgeladene Datei in der Struktur\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad in welchem das neue File gespeichert werden soll\r\n * @param id ID des Uploads\r\n * @param allowedextensions Erlaubte Extensions f\xFCr den Upload\r\n */\r\n public SaveFile(\r\n apiurl: string,\r\n path: string,\r\n id: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse> {\r\n const url = `${apiurl}/uploadfile`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserFileSaveRequest({\r\n Path: path,\r\n UploadId: id,\r\n AllowedTypes: allowedextensions,\r\n });\r\n\r\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * L\xF6scht eine Datei\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad des Files welches gel\xF6scht werden soll\r\n * @param allowedextensions Erlaubte Extensions f\xFCr Files\r\n */\r\n public DeleteFile(\r\n apiurl: string,\r\n path: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse> {\r\n const url = `${apiurl}/deletefile`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserFileDeleteRequest({\r\n Path: path,\r\n AllowedTypes: allowedextensions,\r\n });\r\n\r\n return this.httpclient.post<IBrowserFileResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n\r\n /**\r\n * Methode welche eine Datei umbenannt\r\n * @param apiurl URL zu API Service\r\n * @param path Pfad zum File welches umbenannt werden soll\r\n * @param newFilename Neuer Dateiname\r\n * @param allowedextensions Erlaubte Extension f\xFCr Files\r\n */\r\n public RenameFile(\r\n apiurl: string,\r\n path: string,\r\n newFilename: string,\r\n allowedextensions: string\r\n ): Observable<IBrowserFileResponse> {\r\n const url = `${apiurl}/renamefile`;\r\n\r\n if (!path) {\r\n path = '';\r\n }\r\n\r\n const request = new BrowserFileRenameRequest({\r\n Path: path,\r\n NewFilename: newFilename,\r\n AllowedTypes: allowedextensions,\r\n });\r\n\r\n return this.httpclient.put<IBrowserFileResponse>(url, request, {\r\n withCredentials: true,\r\n });\r\n }\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e036967747a4f8f6df150825895dfc4ab5145f8a"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_11eby9qid7=function(){return actualCoverage;};}return actualCoverage;}cov_11eby9qid7();import{Injectable,InjectionToken}from'@angular/core';import{BrowserFileDeleteRequest}from'../components/browser/models/browserfiledeleterequest';import{BrowserFileRenameRequest}from'../components/browser/models/browserfilerenamerequest';import{BrowserFileSaveRequest}from'../components/browser/models/browserfilesaverequest';import{BrowserNodeDeleteRequest}from'../components/browser/models/browsernodedeleterequest';import{BrowserNodeNewRequest}from'../components/browser/models/browsernodenewrequest';import{BrowserNodeRenameRequest}from'../components/browser/models/browsernoderenamerequest';import{BrowserNodeRequest}from'../components/browser/models/browsernoderequest';import*as i0 from"@angular/core";import*as i1 from"@angular/common/http";/**
12
3
  * Injection Token für Language Service
13
- */
14
- export const SACFILEBROWSER_SERVICE = new InjectionToken('FileBrowserService');
15
- /**
4
+ */export const SACFILEBROWSER_SERVICE=(cov_11eby9qid7().s[0]++,new InjectionToken('FileBrowserService'));/**
16
5
  * Abstrakte Implementierung des File Service für die Browser Component
17
- */
18
- class SacAbstractFileBrowserService {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacAbstractFileBrowserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacAbstractFileBrowserService, providedIn: 'root' }); }
21
- }
22
- export { SacAbstractFileBrowserService };
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacAbstractFileBrowserService, decorators: [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root',
27
- }]
28
- }] });
29
- /**
6
+ */class SacAbstractFileBrowserService{static{cov_11eby9qid7().s[1]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,deps:[],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_11eby9qid7().s[2]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,providedIn:'root'});}}export{SacAbstractFileBrowserService};cov_11eby9qid7().s[3]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacAbstractFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}]});/**
30
7
  * Standardimplementierung des Backend Service für die File Browser Component
31
- */
32
- class SacDefaultFileBrowserService extends SacAbstractFileBrowserService {
33
- /**
8
+ */class SacDefaultFileBrowserService extends SacAbstractFileBrowserService{/**
34
9
  * Konstruktor
35
10
  * @param httpclient HTTP Client Service
36
- */
37
- constructor(httpclient) {
38
- super();
39
- this.httpclient = httpclient;
40
- }
41
- /**
11
+ */constructor(httpclient){cov_11eby9qid7().f[0]++;cov_11eby9qid7().s[4]++;super();cov_11eby9qid7().s[5]++;this.httpclient=httpclient;}/**
42
12
  * Gibt einen Node zurück
43
13
  * @param apiurl URL zu API Service
44
14
  * @param path Pfad des Node welcher angefordert wird
45
15
  * @param allowedextensions Erlaubte Extensions die angezeigt werden dürfen
46
- */
47
- GetNode(apiurl, path, allowedextensions) {
48
- const url = `${apiurl}/getnodes`;
49
- if (!path) {
50
- path = '';
51
- }
52
- const request = new BrowserNodeRequest({
53
- Path: path,
54
- AllowedTypes: allowedextensions,
55
- });
56
- return this.httpclient.post(url, request, {
57
- withCredentials: true,
58
- });
59
- }
60
- /**
16
+ */GetNode(apiurl,path,allowedextensions){cov_11eby9qid7().f[1]++;const url=(cov_11eby9qid7().s[6]++,`${apiurl}/getnodes`);cov_11eby9qid7().s[7]++;if(!path){cov_11eby9qid7().b[0][0]++;cov_11eby9qid7().s[8]++;path='';}else{cov_11eby9qid7().b[0][1]++;}const request=(cov_11eby9qid7().s[9]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_11eby9qid7().s[10]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
61
17
  * Speichert einen Node
62
18
  * @param apiurl URL zu API Service
63
19
  * @param path Pfad in welchem der Node gespeichert werden soll
64
20
  * @param newFoldername Name des neuen Nodes
65
- */
66
- SaveNode(apiurl, path, newFoldername) {
67
- const url = `${apiurl}/newnode`;
68
- if (!path) {
69
- path = '';
70
- }
71
- const request = new BrowserNodeNewRequest({
72
- Path: path,
73
- NewFoldername: newFoldername,
74
- });
75
- return this.httpclient.post(url, request, {
76
- withCredentials: true,
77
- });
78
- }
79
- /**
21
+ */SaveNode(apiurl,path,newFoldername){cov_11eby9qid7().f[2]++;const url=(cov_11eby9qid7().s[11]++,`${apiurl}/newnode`);cov_11eby9qid7().s[12]++;if(!path){cov_11eby9qid7().b[1][0]++;cov_11eby9qid7().s[13]++;path='';}else{cov_11eby9qid7().b[1][1]++;}const request=(cov_11eby9qid7().s[14]++,new BrowserNodeNewRequest({Path:path,NewFoldername:newFoldername}));cov_11eby9qid7().s[15]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
80
22
  * Rename eines Nodes
81
23
  * @param apiurl URL zu API Service
82
24
  * @param path Pfad des Nodes welcher umbenannt werden soll
83
25
  * @param newFoldername Neuer Name des Nodes
84
- */
85
- RenameNode(apiurl, path, newFoldername) {
86
- const url = `${apiurl}/renamenode`;
87
- if (!path) {
88
- path = '';
89
- }
90
- const request = new BrowserNodeRenameRequest({
91
- Path: path,
92
- NewFoldername: newFoldername,
93
- });
94
- return this.httpclient.put(url, request, {
95
- withCredentials: true,
96
- });
97
- }
98
- /**
26
+ */RenameNode(apiurl,path,newFoldername){cov_11eby9qid7().f[3]++;const url=(cov_11eby9qid7().s[16]++,`${apiurl}/renamenode`);cov_11eby9qid7().s[17]++;if(!path){cov_11eby9qid7().b[2][0]++;cov_11eby9qid7().s[18]++;path='';}else{cov_11eby9qid7().b[2][1]++;}const request=(cov_11eby9qid7().s[19]++,new BrowserNodeRenameRequest({Path:path,NewFoldername:newFoldername}));cov_11eby9qid7().s[20]++;return this.httpclient.put(url,request,{withCredentials:true});}/**
99
27
  * Löscht einen Node
100
28
  * @param apiurl URL zu API Service
101
29
  * @param path Pfad des Nodes welcher gelöscht werden soll
102
- */
103
- DeleteNode(apiurl, path) {
104
- const url = `${apiurl}/deletenode`;
105
- if (!path) {
106
- path = '';
107
- }
108
- const request = new BrowserNodeDeleteRequest({
109
- Path: path,
110
- });
111
- return this.httpclient.post(url, request, {
112
- withCredentials: true,
113
- });
114
- }
115
- /**
30
+ */DeleteNode(apiurl,path){cov_11eby9qid7().f[4]++;const url=(cov_11eby9qid7().s[21]++,`${apiurl}/deletenode`);cov_11eby9qid7().s[22]++;if(!path){cov_11eby9qid7().b[3][0]++;cov_11eby9qid7().s[23]++;path='';}else{cov_11eby9qid7().b[3][1]++;}const request=(cov_11eby9qid7().s[24]++,new BrowserNodeDeleteRequest({Path:path}));cov_11eby9qid7().s[25]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
116
31
  * Methode welche die Dateien eines Nodes ausliest
117
32
  * @param apiurl URL zu API Service
118
33
  * @param path Pfad des Nodes in welchem die Files gelesen werden sollen
119
34
  * @param allowedextensions Erlaubte File Extensions
120
- */
121
- GetFiles(apiurl, path, allowedextensions) {
122
- const url = `${apiurl}/getfiles`;
123
- if (!path) {
124
- path = '';
125
- }
126
- const request = new BrowserNodeRequest({
127
- Path: path,
128
- AllowedTypes: allowedextensions,
129
- });
130
- return this.httpclient.post(url, request, {
131
- withCredentials: true,
132
- });
133
- }
134
- /**
35
+ */GetFiles(apiurl,path,allowedextensions){cov_11eby9qid7().f[5]++;const url=(cov_11eby9qid7().s[26]++,`${apiurl}/getfiles`);cov_11eby9qid7().s[27]++;if(!path){cov_11eby9qid7().b[4][0]++;cov_11eby9qid7().s[28]++;path='';}else{cov_11eby9qid7().b[4][1]++;}const request=(cov_11eby9qid7().s[29]++,new BrowserNodeRequest({Path:path,AllowedTypes:allowedextensions}));cov_11eby9qid7().s[30]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
135
36
  * Speichert eine Hochgeladene Datei in der Struktur
136
37
  * @param apiurl URL zu API Service
137
38
  * @param path Pfad in welchem das neue File gespeichert werden soll
138
39
  * @param id ID des Uploads
139
40
  * @param allowedextensions Erlaubte Extensions für den Upload
140
- */
141
- SaveFile(apiurl, path, id, allowedextensions) {
142
- const url = `${apiurl}/uploadfile`;
143
- if (!path) {
144
- path = '';
145
- }
146
- const request = new BrowserFileSaveRequest({
147
- Path: path,
148
- UploadId: id,
149
- AllowedTypes: allowedextensions,
150
- });
151
- return this.httpclient.post(url, request, {
152
- withCredentials: true,
153
- });
154
- }
155
- /**
41
+ */SaveFile(apiurl,path,id,allowedextensions){cov_11eby9qid7().f[6]++;const url=(cov_11eby9qid7().s[31]++,`${apiurl}/uploadfile`);cov_11eby9qid7().s[32]++;if(!path){cov_11eby9qid7().b[5][0]++;cov_11eby9qid7().s[33]++;path='';}else{cov_11eby9qid7().b[5][1]++;}const request=(cov_11eby9qid7().s[34]++,new BrowserFileSaveRequest({Path:path,UploadId:id,AllowedTypes:allowedextensions}));cov_11eby9qid7().s[35]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
156
42
  * Löscht eine Datei
157
43
  * @param apiurl URL zu API Service
158
44
  * @param path Pfad des Files welches gelöscht werden soll
159
45
  * @param allowedextensions Erlaubte Extensions für Files
160
- */
161
- DeleteFile(apiurl, path, allowedextensions) {
162
- const url = `${apiurl}/deletefile`;
163
- if (!path) {
164
- path = '';
165
- }
166
- const request = new BrowserFileDeleteRequest({
167
- Path: path,
168
- AllowedTypes: allowedextensions,
169
- });
170
- return this.httpclient.post(url, request, {
171
- withCredentials: true,
172
- });
173
- }
174
- /**
46
+ */DeleteFile(apiurl,path,allowedextensions){cov_11eby9qid7().f[7]++;const url=(cov_11eby9qid7().s[36]++,`${apiurl}/deletefile`);cov_11eby9qid7().s[37]++;if(!path){cov_11eby9qid7().b[6][0]++;cov_11eby9qid7().s[38]++;path='';}else{cov_11eby9qid7().b[6][1]++;}const request=(cov_11eby9qid7().s[39]++,new BrowserFileDeleteRequest({Path:path,AllowedTypes:allowedextensions}));cov_11eby9qid7().s[40]++;return this.httpclient.post(url,request,{withCredentials:true});}/**
175
47
  * Methode welche eine Datei umbenannt
176
48
  * @param apiurl URL zu API Service
177
49
  * @param path Pfad zum File welches umbenannt werden soll
178
50
  * @param newFilename Neuer Dateiname
179
51
  * @param allowedextensions Erlaubte Extension für Files
180
- */
181
- RenameFile(apiurl, path, newFilename, allowedextensions) {
182
- const url = `${apiurl}/renamefile`;
183
- if (!path) {
184
- path = '';
185
- }
186
- const request = new BrowserFileRenameRequest({
187
- Path: path,
188
- NewFilename: newFilename,
189
- AllowedTypes: allowedextensions,
190
- });
191
- return this.httpclient.put(url, request, {
192
- withCredentials: true,
193
- });
194
- }
195
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDefaultFileBrowserService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
196
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDefaultFileBrowserService, providedIn: 'root' }); }
197
- }
198
- export { SacDefaultFileBrowserService };
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacDefaultFileBrowserService, decorators: [{
200
- type: Injectable,
201
- args: [{
202
- providedIn: 'root',
203
- }]
204
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBSXJGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFHc0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7bUhBQTdCLDZCQUE2QixjQUZyQyxNQUFNOztTQUVFLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQUhsRCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF1R0Q7O0dBRUc7QUFDSCxNQUdhLDRCQUE2QixTQUFRLDZCQUE2QjtJQUM3RTs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVEOzs7OztP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O1lBQ1YsV0FBVyxFQUFFLFdBQVc7WUFDeEIsWUFBWSxFQUFFLGlCQUFpQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbE9VLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07O1NBRVAsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgSUJyb3dzZXJGaWxlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBCcm93c2VyTm9kZU5ld1JlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlbmV3cmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBJQnJvd3Nlck5vZGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXNwb25zZSc7XHJcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEluamVjdGlvbiBUb2tlbiBmw7xyIExhbmd1YWdlIFNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBTQUNGSUxFQlJPV1NFUl9TRVJWSUNFID1cclxuICBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWt0ZSBJbXBsZW1lbnRpZXJ1bmcgZGVzIEZpbGUgU2VydmljZSBmw7xyIGRpZSBCcm93c2VyIENvbXBvbmVudFxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlXHJcbiAgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlXHJcbntcclxuICAvKipcclxuICAgKiBHaWJ0IGVpbmVuIE5vZGUgenVyw7xja1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZSB3ZWxjaGVyIGFuZ2Vmb3JkZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBkaWUgYW5nZXplaWd0IHdlcmRlbiBkw7xyZmVuXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IFJlbmFtZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBMw7ZzY2h0IGVpbmVuIE5vZGVcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGRpZSBEYXRlaWVuIGVpbmVzIE5vZGVzIGF1c2xpZXN0XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRmlsZSBFeHRlbnNpb25zXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgenVtIEZpbGUgd2VsY2hlcyB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXHJcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbiBmw7xyIEZpbGVzXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgUmVuYW1lRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBEZWxldGVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZGltcGxlbWVudGllcnVuZyBkZXMgQmFja2VuZCBTZXJ2aWNlIGbDvHIgZGllIEZpbGUgQnJvd3NlciBDb21wb25lbnRcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEZWZhdWx0RmlsZUJyb3dzZXJTZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIGh0dHBjbGllbnQgSFRUUCBDbGllbnQgU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlIHdlbGNoZXIgYW5nZWZvcmRlcnQgd2lyZFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cclxuICAgKi9cclxuICBwdWJsaWMgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vbmV3bm9kZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVOb2RlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9kZWxldGVub2RlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIERhdGVpZW4gZWluZXMgTm9kZXMgYXVzbGllc3RcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIGluIHdlbGNoZW0gZGllIEZpbGVzIGdlbGVzZW4gd2VyZGVuIHNvbGxlblxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZUZpbGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIFVwbG9hZElkOiBpZCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGVpbmUgRGF0ZWkgdW1iZW5hbm50XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIHp1bSBGaWxlIHdlbGNoZXMgdW1iZW5hbm50IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldWVyIERhdGVpbmFtZVxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vcmVuYW1lZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
52
+ */RenameFile(apiurl,path,newFilename,allowedextensions){cov_11eby9qid7().f[8]++;const url=(cov_11eby9qid7().s[41]++,`${apiurl}/renamefile`);cov_11eby9qid7().s[42]++;if(!path){cov_11eby9qid7().b[7][0]++;cov_11eby9qid7().s[43]++;path='';}else{cov_11eby9qid7().b[7][1]++;}const request=(cov_11eby9qid7().s[44]++,new BrowserFileRenameRequest({Path:path,NewFilename:newFilename,AllowedTypes:allowedextensions}));cov_11eby9qid7().s[45]++;return this.httpclient.put(url,request,{withCredentials:true});}static{cov_11eby9qid7().s[46]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable});}static{cov_11eby9qid7().s[47]++;this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,providedIn:'root'});}}export{SacDefaultFileBrowserService};cov_11eby9qid7().s[48]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacDefaultFileBrowserService,decorators:[{type:Injectable,args:[{providedIn:'root'}]}],ctorParameters:function(){cov_11eby9qid7().f[9]++;cov_11eby9qid7().s[49]++;return[{type:i1.HttpClient}];}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLWZpbGVicm93c2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9zZXJ2aWNlcy9zYWMtZmlsZWJyb3dzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBSXJGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLElBQUksY0FBYyxDQUF5QixvQkFBb0IsQ0FBQyxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFHc0IsNkJBQTZCOytHQUE3Qiw2QkFBNkI7bUhBQTdCLDZCQUE2QixjQUZyQyxNQUFNOztTQUVFLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQUhsRCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF1R0Q7O0dBRUc7QUFDSCxNQUdhLDRCQUE2QixTQUFRLDZCQUE2QjtJQUM3RTs7O09BR0c7SUFDSCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUNaLE1BQWMsRUFDZCxJQUFZLEVBQ1osaUJBQXlCO1FBRXpCLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxXQUFXLENBQUM7UUFFakMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksR0FBRyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUM7WUFDckMsSUFBSSxFQUFFLElBQUk7WUFDVixZQUFZLEVBQUUsaUJBQWlCO1NBQ2hDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUNiLE1BQWMsRUFDZCxJQUFZLEVBQ1osYUFBcUI7UUFFckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLFVBQVUsQ0FBQztRQUVoQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztZQUN4QyxJQUFJLEVBQUUsSUFBSTtZQUNWLGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUNmLE1BQWMsRUFDZCxJQUFZLEVBQ1osYUFBcUI7UUFFckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQztZQUMzQyxJQUFJLEVBQUUsSUFBSTtZQUNWLGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDN0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQ2YsTUFBYyxFQUNkLElBQVk7UUFFWixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sYUFBYSxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUF3QixDQUFDO1lBQzNDLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBdUIsR0FBRyxFQUFFLE9BQU8sRUFBRTtZQUM5RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQ2IsTUFBYyxFQUNkLElBQVksRUFDWixpQkFBeUI7UUFFekIsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLFdBQVcsQ0FBQztRQUVqQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBSTtZQUNWLFlBQVksRUFBRSxpQkFBaUI7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBdUIsR0FBRyxFQUFFLE9BQU8sRUFBRTtZQUM5RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUNiLE1BQWMsRUFDZCxJQUFZLEVBQ1osRUFBVSxFQUNWLGlCQUF5QjtRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sYUFBYSxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDO1lBQ3pDLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLEVBQUU7WUFDWixZQUFZLEVBQUUsaUJBQWlCO1NBQ2hDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUNmLE1BQWMsRUFDZCxJQUFZLEVBQ1osaUJBQXlCO1FBRXpCLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUM7UUFFbkMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksR0FBRyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksd0JBQXdCLENBQUM7WUFDM0MsSUFBSSxFQUFFLElBQUk7WUFDVixZQUFZLEVBQUUsaUJBQWlCO1NBQ2hDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXVCLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FDZixNQUFjLEVBQ2QsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLGlCQUF5QjtRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sYUFBYSxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUF3QixDQUFDO1lBQzNDLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLFdBQVc7WUFDeEIsWUFBWSxFQUFFLGlCQUFpQjtTQUNoQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbE9VLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07O1NBRVAsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgSUJyb3dzZXJGaWxlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBCcm93c2VyTm9kZU5ld1JlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlbmV3cmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBJQnJvd3Nlck5vZGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXNwb25zZSc7XHJcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEluamVjdGlvbiBUb2tlbiBmw7xyIExhbmd1YWdlIFNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBTQUNGSUxFQlJPV1NFUl9TRVJWSUNFID1cclxuICBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWt0ZSBJbXBsZW1lbnRpZXJ1bmcgZGVzIEZpbGUgU2VydmljZSBmw7xyIGRpZSBCcm93c2VyIENvbXBvbmVudFxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlXHJcbiAgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlXHJcbntcclxuICAvKipcclxuICAgKiBHaWJ0IGVpbmVuIE5vZGUgenVyw7xja1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZSB3ZWxjaGVyIGFuZ2Vmb3JkZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBkaWUgYW5nZXplaWd0IHdlcmRlbiBkw7xyZmVuXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IFJlbmFtZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBMw7ZzY2h0IGVpbmVuIE5vZGVcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGRpZSBEYXRlaWVuIGVpbmVzIE5vZGVzIGF1c2xpZXN0XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRmlsZSBFeHRlbnNpb25zXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgenVtIEZpbGUgd2VsY2hlcyB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXHJcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbiBmw7xyIEZpbGVzXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgUmVuYW1lRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBEZWxldGVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZGltcGxlbWVudGllcnVuZyBkZXMgQmFja2VuZCBTZXJ2aWNlIGbDvHIgZGllIEZpbGUgQnJvd3NlciBDb21wb25lbnRcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEZWZhdWx0RmlsZUJyb3dzZXJTZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIGh0dHBjbGllbnQgSFRUUCBDbGllbnQgU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlIHdlbGNoZXIgYW5nZWZvcmRlcnQgd2lyZFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cclxuICAgKi9cclxuICBwdWJsaWMgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vbmV3bm9kZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVOb2RlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9kZWxldGVub2RlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIERhdGVpZW4gZWluZXMgTm9kZXMgYXVzbGllc3RcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIGluIHdlbGNoZW0gZGllIEZpbGVzIGdlbGVzZW4gd2VyZGVuIHNvbGxlblxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZUZpbGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIFVwbG9hZElkOiBpZCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGVpbmUgRGF0ZWkgdW1iZW5hbm50XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIHp1bSBGaWxlIHdlbGNoZXMgdW1iZW5hbm50IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldWVyIERhdGVpbmFtZVxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vcmVuYW1lZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmplY3RhYmxlIiwiSW5qZWN0aW9uVG9rZW4iLCJCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QiLCJCcm93c2VyRmlsZVJlbmFtZVJlcXVlc3QiLCJCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVOZXdSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZW5hbWVSZXF1ZXN0IiwiQnJvd3Nlck5vZGVSZXF1ZXN0IiwiU0FDRklMRUJST1dTRVJfU0VSVklDRSIsImNvdl8xMWVieTlxaWQ3IiwicyIsIlNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlIiwiZGVwcyIsInRhcmdldCIsImkwIiwiybXJtUZhY3RvcnlUYXJnZXQiLCJwcm92aWRlZEluIiwiZGVjb3JhdG9ycyIsIlNhY0RlZmF1bHRGaWxlQnJvd3NlclNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsImh0dHBjbGllbnQiLCJmIiwiR2V0Tm9kZSIsImFwaXVybCIsInBhdGgiLCJhbGxvd2VkZXh0ZW5zaW9ucyIsInVybCIsImIiLCJyZXF1ZXN0IiwiUGF0aCIsIkFsbG93ZWRUeXBlcyIsInBvc3QiLCJ3aXRoQ3JlZGVudGlhbHMiLCJTYXZlTm9kZSIsIm5ld0ZvbGRlcm5hbWUiLCJOZXdGb2xkZXJuYW1lIiwiUmVuYW1lTm9kZSIsInB1dCIsIkRlbGV0ZU5vZGUiLCJHZXRGaWxlcyIsIlNhdmVGaWxlIiwiaWQiLCJVcGxvYWRJZCIsIkRlbGV0ZUZpbGUiLCJSZW5hbWVGaWxlIiwibmV3RmlsZW5hbWUiLCJOZXdGaWxlbmFtZSIsInRva2VuIiwiaTEiLCJIdHRwQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvc2VydmljZXMvc2FjLWZpbGVicm93c2VyLnNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZURlbGV0ZVJlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlZGVsZXRlcmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3NlcmZpbGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgSUJyb3dzZXJGaWxlUmVzcG9uc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJmaWxlcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBCcm93c2VyRmlsZVNhdmVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2VyZmlsZXNhdmVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZWRlbGV0ZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBCcm93c2VyTm9kZU5ld1JlcXVlc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL2Jyb3dzZXIvbW9kZWxzL2Jyb3dzZXJub2RlbmV3cmVxdWVzdCc7XHJcbmltcG9ydCB7IEJyb3dzZXJOb2RlUmVuYW1lUmVxdWVzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZW5hbWVyZXF1ZXN0JztcclxuaW1wb3J0IHsgQnJvd3Nlck5vZGVSZXF1ZXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9icm93c2VyL21vZGVscy9icm93c2Vybm9kZXJlcXVlc3QnO1xyXG5pbXBvcnQgeyBJQnJvd3Nlck5vZGVSZXNwb25zZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnJvd3Nlci9tb2RlbHMvYnJvd3Nlcm5vZGVyZXNwb25zZSc7XHJcbmltcG9ydCB7IElTYWNGaWxlQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNGaWxlQnJvd3NlclNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEluamVjdGlvbiBUb2tlbiBmw7xyIExhbmd1YWdlIFNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBTQUNGSUxFQlJPV1NFUl9TRVJWSUNFID1cclxuICBuZXcgSW5qZWN0aW9uVG9rZW48SVNhY0ZpbGVCcm93c2VyU2VydmljZT4oJ0ZpbGVCcm93c2VyU2VydmljZScpO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWt0ZSBJbXBsZW1lbnRpZXJ1bmcgZGVzIEZpbGUgU2VydmljZSBmw7xyIGRpZSBCcm93c2VyIENvbXBvbmVudFxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Fic3RyYWN0RmlsZUJyb3dzZXJTZXJ2aWNlXHJcbiAgaW1wbGVtZW50cyBJU2FjRmlsZUJyb3dzZXJTZXJ2aWNlXHJcbntcclxuICAvKipcclxuICAgKiBHaWJ0IGVpbmVuIE5vZGUgenVyw7xja1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZSB3ZWxjaGVyIGFuZ2Vmb3JkZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBkaWUgYW5nZXplaWd0IHdlcmRlbiBkw7xyZmVuXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3Rm9sZGVybmFtZTogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IFJlbmFtZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+O1xyXG5cclxuICAvKipcclxuICAgKiBMw7ZzY2h0IGVpbmVuIE5vZGVcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIHdlbGNoZXIgZ2Vsw7ZzY2h0IHdlcmRlbiBzb2xsXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGRpZSBEYXRlaWVuIGVpbmVzIE5vZGVzIGF1c2xpZXN0XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlcyBpbiB3ZWxjaGVtIGRpZSBGaWxlcyBnZWxlc2VuIHdlcmRlbiBzb2xsZW5cclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRmlsZSBFeHRlbnNpb25zXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBhYnN0cmFjdCBTYXZlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZWluZSBEYXRlaSB1bWJlbmFubnRcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgenVtIEZpbGUgd2VsY2hlcyB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3RmlsZW5hbWUgTmV1ZXIgRGF0ZWluYW1lXHJcbiAgICogQHBhcmFtIGFsbG93ZWRleHRlbnNpb25zIEVybGF1YnRlIEV4dGVuc2lvbiBmw7xyIEZpbGVzXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgUmVuYW1lRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbmV3RmlsZW5hbWU6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBEZWxldGVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZGltcGxlbWVudGllcnVuZyBkZXMgQmFja2VuZCBTZXJ2aWNlIGbDvHIgZGllIEZpbGUgQnJvd3NlciBDb21wb25lbnRcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEZWZhdWx0RmlsZUJyb3dzZXJTZXJ2aWNlIGV4dGVuZHMgU2FjQWJzdHJhY3RGaWxlQnJvd3NlclNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIGh0dHBjbGllbnQgSFRUUCBDbGllbnQgU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cGNsaWVudDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZWluZW4gTm9kZSB6dXLDvGNrXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBOb2RlIHdlbGNoZXIgYW5nZWZvcmRlcnQgd2lyZFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGRpZSBhbmdlemVpZ3Qgd2VyZGVuIGTDvHJmZW5cclxuICAgKi9cclxuICBwdWJsaWMgR2V0Tm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZ2V0bm9kZXNgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBBbGxvd2VkVHlwZXM6IGFsbG93ZWRleHRlbnNpb25zLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wb3N0PElCcm93c2VyTm9kZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTcGVpY2hlcnQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRlciBOb2RlIGdlc3BlaWNoZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZvbGRlcm5hbWUgTmFtZSBkZXMgbmV1ZW4gTm9kZXNcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZU5vZGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIG5ld0ZvbGRlcm5hbWU6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJOb2RlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vbmV3bm9kZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJOb2RlTmV3UmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZvbGRlcm5hbWU6IG5ld0ZvbGRlcm5hbWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbmFtZSBlaW5lcyBOb2Rlc1xyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciB1bWJlbmFubnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbmV3Rm9sZGVybmFtZSBOZXVlciBOYW1lIGRlcyBOb2Rlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVOb2RlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGb2xkZXJuYW1lOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyTm9kZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L3JlbmFtZW5vZGVgO1xyXG5cclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICBwYXRoID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBCcm93c2VyTm9kZVJlbmFtZVJlcXVlc3Qoe1xyXG4gICAgICBQYXRoOiBwYXRoLFxyXG4gICAgICBOZXdGb2xkZXJuYW1lOiBuZXdGb2xkZXJuYW1lLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cGNsaWVudC5wdXQ8SUJyb3dzZXJOb2RlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEzDtnNjaHQgZWluZW4gTm9kZVxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBkZXMgTm9kZXMgd2VsY2hlciBnZWzDtnNjaHQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTm9kZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3Nlck5vZGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS9kZWxldGVub2RlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVEZWxldGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3Nlck5vZGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIERhdGVpZW4gZWluZXMgTm9kZXMgYXVzbGllc3RcclxuICAgKiBAcGFyYW0gYXBpdXJsIFVSTCB6dSBBUEkgU2VydmljZVxyXG4gICAqIEBwYXJhbSBwYXRoIFBmYWQgZGVzIE5vZGVzIGluIHdlbGNoZW0gZGllIEZpbGVzIGdlbGVzZW4gd2VyZGVuIHNvbGxlblxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0RmlsZXMoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGFsbG93ZWRleHRlbnNpb25zOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPElCcm93c2VyRmlsZVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHthcGl1cmx9L2dldGZpbGVzYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3Nlck5vZGVSZXF1ZXN0KHtcclxuICAgICAgUGF0aDogcGF0aCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3BlaWNoZXJ0IGVpbmUgSG9jaGdlbGFkZW5lIERhdGVpIGluIGRlciBTdHJ1a3R1clxyXG4gICAqIEBwYXJhbSBhcGl1cmwgVVJMIHp1IEFQSSBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhdGggUGZhZCBpbiB3ZWxjaGVtIGRhcyBuZXVlIEZpbGUgZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gaWQgSUQgZGVzIFVwbG9hZHNcclxuICAgKiBAcGFyYW0gYWxsb3dlZGV4dGVuc2lvbnMgRXJsYXVidGUgRXh0ZW5zaW9ucyBmw7xyIGRlbiBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZUZpbGUoXHJcbiAgICBhcGl1cmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBhbGxvd2VkZXh0ZW5zaW9uczogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJQnJvd3NlckZpbGVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7YXBpdXJsfS91cGxvYWRmaWxlYDtcclxuXHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcGF0aCA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgQnJvd3NlckZpbGVTYXZlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIFVwbG9hZElkOiBpZCxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucG9zdDxJQnJvd3NlckZpbGVSZXNwb25zZT4odXJsLCByZXF1ZXN0LCB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTMO2c2NodCBlaW5lIERhdGVpXHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIGRlcyBGaWxlcyB3ZWxjaGVzIGdlbMO2c2NodCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb25zIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlRmlsZShcclxuICAgIGFwaXVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vZGVsZXRlZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlRGVsZXRlUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIEFsbG93ZWRUeXBlczogYWxsb3dlZGV4dGVuc2lvbnMsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwY2xpZW50LnBvc3Q8SUJyb3dzZXJGaWxlUmVzcG9uc2U+KHVybCwgcmVxdWVzdCwge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUgd2VsY2hlIGVpbmUgRGF0ZWkgdW1iZW5hbm50XHJcbiAgICogQHBhcmFtIGFwaXVybCBVUkwgenUgQVBJIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gcGF0aCBQZmFkIHp1bSBGaWxlIHdlbGNoZXMgdW1iZW5hbm50IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG5ld0ZpbGVuYW1lIE5ldWVyIERhdGVpbmFtZVxyXG4gICAqIEBwYXJhbSBhbGxvd2VkZXh0ZW5zaW9ucyBFcmxhdWJ0ZSBFeHRlbnNpb24gZsO8ciBGaWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBSZW5hbWVGaWxlKFxyXG4gICAgYXBpdXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBuZXdGaWxlbmFtZTogc3RyaW5nLFxyXG4gICAgYWxsb3dlZGV4dGVuc2lvbnM6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SUJyb3dzZXJGaWxlUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke2FwaXVybH0vcmVuYW1lZmlsZWA7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHBhdGggPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEJyb3dzZXJGaWxlUmVuYW1lUmVxdWVzdCh7XHJcbiAgICAgIFBhdGg6IHBhdGgsXHJcbiAgICAgIE5ld0ZpbGVuYW1lOiBuZXdGaWxlbmFtZSxcclxuICAgICAgQWxsb3dlZFR5cGVzOiBhbGxvd2VkZXh0ZW5zaW9ucyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBjbGllbnQucHV0PElCcm93c2VyRmlsZVJlc3BvbnNlPih1cmwsIHJlcXVlc3QsIHtcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6IjsyRkFDQSxPQUFTQSxVQUFVLENBQUVDLGNBQWMsS0FBUSxlQUFlLENBRTFELE9BQVNDLHdCQUF3QixLQUFRLHVEQUF1RCxDQUNoRyxPQUFT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