primeng 14.2.6-lts → 14.2.8-lts

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 (580) hide show
  1. package/accordion/accordion.d.ts +2 -3
  2. package/animate/animate.d.ts +1 -3
  3. package/api/licensemanager.d.ts +4 -13
  4. package/autocomplete/autocomplete.d.ts +2 -3
  5. package/autofocus/autofocus.d.ts +1 -3
  6. package/avatar/avatar.d.ts +1 -3
  7. package/badge/badge.d.ts +2 -5
  8. package/blockui/blockui.d.ts +2 -3
  9. package/breadcrumb/breadcrumb.d.ts +2 -3
  10. package/button/button.d.ts +2 -5
  11. package/calendar/calendar.d.ts +2 -3
  12. package/captcha/captcha.d.ts +1 -3
  13. package/card/card.d.ts +1 -3
  14. package/carousel/carousel.d.ts +1 -3
  15. package/cascadeselect/cascadeselect.d.ts +2 -3
  16. package/chart/chart.d.ts +1 -3
  17. package/checkbox/checkbox.d.ts +1 -3
  18. package/chip/chip.d.ts +1 -3
  19. package/chips/chips.d.ts +1 -3
  20. package/colorpicker/colorpicker.d.ts +2 -3
  21. package/confirmdialog/confirmdialog.d.ts +2 -3
  22. package/confirmpopup/confirmpopup.d.ts +2 -3
  23. package/contextmenu/contextmenu.d.ts +2 -3
  24. package/dataview/dataview.d.ts +2 -3
  25. package/defer/defer.d.ts +1 -3
  26. package/dialog/dialog.d.ts +2 -3
  27. package/divider/divider.d.ts +1 -3
  28. package/dock/dock.d.ts +1 -3
  29. package/dragdrop/dragdrop.d.ts +2 -5
  30. package/dropdown/dropdown.d.ts +2 -3
  31. package/dynamicdialog/dynamicdialog.d.ts +3 -4
  32. package/editor/editor.d.ts +1 -3
  33. package/esm2020/accordion/accordion.mjs +9 -11
  34. package/esm2020/animate/animate.mjs +6 -7
  35. package/esm2020/api/licensemanager.mjs +58 -77
  36. package/esm2020/autocomplete/autocomplete.mjs +6 -7
  37. package/esm2020/autofocus/autofocus.mjs +6 -7
  38. package/esm2020/avatar/avatar.mjs +8 -9
  39. package/esm2020/badge/badge.mjs +12 -15
  40. package/esm2020/blockui/blockui.mjs +6 -7
  41. package/esm2020/breadcrumb/breadcrumb.mjs +10 -11
  42. package/esm2020/button/button.mjs +13 -16
  43. package/esm2020/calendar/calendar.mjs +6 -7
  44. package/esm2020/captcha/captcha.mjs +6 -7
  45. package/esm2020/card/card.mjs +8 -10
  46. package/esm2020/carousel/carousel.mjs +9 -11
  47. package/esm2020/cascadeselect/cascadeselect.mjs +6 -7
  48. package/esm2020/chart/chart.mjs +6 -7
  49. package/esm2020/checkbox/checkbox.mjs +8 -9
  50. package/esm2020/chip/chip.mjs +8 -9
  51. package/esm2020/chips/chips.mjs +8 -10
  52. package/esm2020/colorpicker/colorpicker.mjs +6 -6
  53. package/esm2020/confirmdialog/confirmdialog.mjs +6 -7
  54. package/esm2020/confirmpopup/confirmpopup.mjs +6 -7
  55. package/esm2020/contextmenu/contextmenu.mjs +6 -7
  56. package/esm2020/dataview/dataview.mjs +6 -7
  57. package/esm2020/defer/defer.mjs +6 -7
  58. package/esm2020/dialog/dialog.mjs +6 -7
  59. package/esm2020/divider/divider.mjs +8 -9
  60. package/esm2020/dock/dock.mjs +11 -13
  61. package/esm2020/dom/domhandler.mjs +2 -2
  62. package/esm2020/dragdrop/dragdrop.mjs +10 -12
  63. package/esm2020/dropdown/dropdown.mjs +6 -7
  64. package/esm2020/dynamicdialog/dynamicdialog.mjs +6 -6
  65. package/esm2020/editor/editor.mjs +8 -10
  66. package/esm2020/fieldset/fieldset.mjs +9 -11
  67. package/esm2020/fileupload/fileupload.mjs +6 -7
  68. package/esm2020/focustrap/focustrap.mjs +6 -7
  69. package/esm2020/galleria/galleria.mjs +6 -7
  70. package/esm2020/gmap/gmap.mjs +8 -9
  71. package/esm2020/image/image.mjs +6 -7
  72. package/esm2020/inplace/inplace.mjs +9 -11
  73. package/esm2020/inputmask/inputmask.mjs +10 -11
  74. package/esm2020/inputnumber/inputnumber.mjs +10 -11
  75. package/esm2020/inputswitch/inputswitch.mjs +8 -9
  76. package/esm2020/inputtext/inputtext.mjs +6 -7
  77. package/esm2020/inputtextarea/inputtextarea.mjs +6 -7
  78. package/esm2020/keyfilter/keyfilter.mjs +6 -7
  79. package/esm2020/knob/knob.mjs +8 -9
  80. package/esm2020/listbox/listbox.mjs +6 -7
  81. package/esm2020/megamenu/megamenu.mjs +11 -13
  82. package/esm2020/menu/menu.mjs +6 -6
  83. package/esm2020/menubar/menubar.mjs +8 -9
  84. package/esm2020/messages/messages.mjs +6 -7
  85. package/esm2020/multiselect/multiselect.mjs +7 -7
  86. package/esm2020/orderlist/orderlist.mjs +6 -7
  87. package/esm2020/organizationchart/organizationchart.mjs +9 -11
  88. package/esm2020/overlay/overlay.mjs +11 -6
  89. package/esm2020/overlaypanel/overlaypanel.mjs +6 -7
  90. package/esm2020/paginator/paginator.mjs +10 -10
  91. package/esm2020/panel/panel.mjs +9 -11
  92. package/esm2020/panelmenu/panelmenu.mjs +6 -7
  93. package/esm2020/password/password.mjs +6 -7
  94. package/esm2020/picklist/picklist.mjs +6 -7
  95. package/esm2020/progressbar/progressbar.mjs +8 -9
  96. package/esm2020/progressspinner/progressspinner.mjs +8 -9
  97. package/esm2020/radiobutton/radiobutton.mjs +8 -9
  98. package/esm2020/rating/rating.mjs +8 -10
  99. package/esm2020/ripple/ripple.mjs +6 -6
  100. package/esm2020/scroller/scroller.mjs +11 -11
  101. package/esm2020/scrollpanel/scrollpanel.mjs +8 -10
  102. package/esm2020/scrolltop/scrolltop.mjs +6 -6
  103. package/esm2020/selectbutton/selectbutton.mjs +10 -11
  104. package/esm2020/sidebar/sidebar.mjs +6 -7
  105. package/esm2020/skeleton/skeleton.mjs +8 -9
  106. package/esm2020/slidemenu/slidemenu.mjs +6 -6
  107. package/esm2020/slider/slider.mjs +8 -9
  108. package/esm2020/speeddial/speeddial.mjs +12 -14
  109. package/esm2020/splitbutton/splitbutton.mjs +10 -12
  110. package/esm2020/splitter/splitter.mjs +8 -10
  111. package/esm2020/steps/steps.mjs +9 -10
  112. package/esm2020/styleclass/styleclass.mjs +6 -7
  113. package/esm2020/table/table.mjs +6 -7
  114. package/esm2020/tabmenu/tabmenu.mjs +10 -12
  115. package/esm2020/tabview/tabview.mjs +11 -13
  116. package/esm2020/tag/tag.mjs +8 -10
  117. package/esm2020/terminal/terminal.mjs +9 -10
  118. package/esm2020/tieredmenu/tieredmenu.mjs +15 -15
  119. package/esm2020/timeline/timeline.mjs +8 -10
  120. package/esm2020/toast/toast.mjs +6 -6
  121. package/esm2020/togglebutton/togglebutton.mjs +10 -11
  122. package/esm2020/toolbar/toolbar.mjs +8 -10
  123. package/esm2020/tooltip/tooltip.mjs +6 -6
  124. package/esm2020/tree/tree.mjs +6 -7
  125. package/esm2020/treeselect/treeselect.mjs +6 -7
  126. package/esm2020/treetable/treetable.mjs +6 -7
  127. package/esm2020/tristatecheckbox/tristatecheckbox.mjs +8 -9
  128. package/esm2020/virtualscroller/virtualscroller.mjs +9 -10
  129. package/fesm2015/primeng-accordion.mjs +8 -10
  130. package/fesm2015/primeng-accordion.mjs.map +1 -1
  131. package/fesm2015/primeng-animate.mjs +5 -6
  132. package/fesm2015/primeng-animate.mjs.map +1 -1
  133. package/fesm2015/primeng-api.mjs +76 -97
  134. package/fesm2015/primeng-api.mjs.map +1 -1
  135. package/fesm2015/primeng-autocomplete.mjs +5 -6
  136. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  137. package/fesm2015/primeng-autofocus.mjs +5 -6
  138. package/fesm2015/primeng-autofocus.mjs.map +1 -1
  139. package/fesm2015/primeng-avatar.mjs +7 -8
  140. package/fesm2015/primeng-avatar.mjs.map +1 -1
  141. package/fesm2015/primeng-badge.mjs +11 -14
  142. package/fesm2015/primeng-badge.mjs.map +1 -1
  143. package/fesm2015/primeng-blockui.mjs +5 -6
  144. package/fesm2015/primeng-blockui.mjs.map +1 -1
  145. package/fesm2015/primeng-breadcrumb.mjs +9 -10
  146. package/fesm2015/primeng-breadcrumb.mjs.map +1 -1
  147. package/fesm2015/primeng-button.mjs +12 -15
  148. package/fesm2015/primeng-button.mjs.map +1 -1
  149. package/fesm2015/primeng-calendar.mjs +5 -6
  150. package/fesm2015/primeng-calendar.mjs.map +1 -1
  151. package/fesm2015/primeng-captcha.mjs +5 -6
  152. package/fesm2015/primeng-captcha.mjs.map +1 -1
  153. package/fesm2015/primeng-card.mjs +7 -9
  154. package/fesm2015/primeng-card.mjs.map +1 -1
  155. package/fesm2015/primeng-carousel.mjs +8 -10
  156. package/fesm2015/primeng-carousel.mjs.map +1 -1
  157. package/fesm2015/primeng-cascadeselect.mjs +5 -6
  158. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  159. package/fesm2015/primeng-chart.mjs +5 -6
  160. package/fesm2015/primeng-chart.mjs.map +1 -1
  161. package/fesm2015/primeng-checkbox.mjs +7 -8
  162. package/fesm2015/primeng-checkbox.mjs.map +1 -1
  163. package/fesm2015/primeng-chip.mjs +7 -8
  164. package/fesm2015/primeng-chip.mjs.map +1 -1
  165. package/fesm2015/primeng-chips.mjs +7 -9
  166. package/fesm2015/primeng-chips.mjs.map +1 -1
  167. package/fesm2015/primeng-colorpicker.mjs +6 -6
  168. package/fesm2015/primeng-colorpicker.mjs.map +1 -1
  169. package/fesm2015/primeng-confirmdialog.mjs +5 -6
  170. package/fesm2015/primeng-confirmdialog.mjs.map +1 -1
  171. package/fesm2015/primeng-confirmpopup.mjs +5 -6
  172. package/fesm2015/primeng-confirmpopup.mjs.map +1 -1
  173. package/fesm2015/primeng-contextmenu.mjs +5 -6
  174. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  175. package/fesm2015/primeng-dataview.mjs +5 -6
  176. package/fesm2015/primeng-dataview.mjs.map +1 -1
  177. package/fesm2015/primeng-defer.mjs +5 -6
  178. package/fesm2015/primeng-defer.mjs.map +1 -1
  179. package/fesm2015/primeng-dialog.mjs +5 -6
  180. package/fesm2015/primeng-dialog.mjs.map +1 -1
  181. package/fesm2015/primeng-divider.mjs +7 -8
  182. package/fesm2015/primeng-divider.mjs.map +1 -1
  183. package/fesm2015/primeng-dock.mjs +10 -12
  184. package/fesm2015/primeng-dock.mjs.map +1 -1
  185. package/fesm2015/primeng-dom.mjs +1 -1
  186. package/fesm2015/primeng-dom.mjs.map +1 -1
  187. package/fesm2015/primeng-dragdrop.mjs +9 -11
  188. package/fesm2015/primeng-dragdrop.mjs.map +1 -1
  189. package/fesm2015/primeng-dropdown.mjs +5 -6
  190. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  191. package/fesm2015/primeng-dynamicdialog.mjs +6 -6
  192. package/fesm2015/primeng-dynamicdialog.mjs.map +1 -1
  193. package/fesm2015/primeng-editor.mjs +7 -9
  194. package/fesm2015/primeng-editor.mjs.map +1 -1
  195. package/fesm2015/primeng-fieldset.mjs +8 -10
  196. package/fesm2015/primeng-fieldset.mjs.map +1 -1
  197. package/fesm2015/primeng-fileupload.mjs +5 -6
  198. package/fesm2015/primeng-fileupload.mjs.map +1 -1
  199. package/fesm2015/primeng-focustrap.mjs +5 -6
  200. package/fesm2015/primeng-focustrap.mjs.map +1 -1
  201. package/fesm2015/primeng-galleria.mjs +5 -6
  202. package/fesm2015/primeng-galleria.mjs.map +1 -1
  203. package/fesm2015/primeng-gmap.mjs +7 -8
  204. package/fesm2015/primeng-gmap.mjs.map +1 -1
  205. package/fesm2015/primeng-image.mjs +5 -6
  206. package/fesm2015/primeng-image.mjs.map +1 -1
  207. package/fesm2015/primeng-inplace.mjs +8 -10
  208. package/fesm2015/primeng-inplace.mjs.map +1 -1
  209. package/fesm2015/primeng-inputmask.mjs +9 -10
  210. package/fesm2015/primeng-inputmask.mjs.map +1 -1
  211. package/fesm2015/primeng-inputnumber.mjs +9 -10
  212. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  213. package/fesm2015/primeng-inputswitch.mjs +7 -8
  214. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  215. package/fesm2015/primeng-inputtext.mjs +5 -6
  216. package/fesm2015/primeng-inputtext.mjs.map +1 -1
  217. package/fesm2015/primeng-inputtextarea.mjs +5 -6
  218. package/fesm2015/primeng-inputtextarea.mjs.map +1 -1
  219. package/fesm2015/primeng-keyfilter.mjs +5 -6
  220. package/fesm2015/primeng-keyfilter.mjs.map +1 -1
  221. package/fesm2015/primeng-knob.mjs +7 -8
  222. package/fesm2015/primeng-knob.mjs.map +1 -1
  223. package/fesm2015/primeng-listbox.mjs +5 -6
  224. package/fesm2015/primeng-listbox.mjs.map +1 -1
  225. package/fesm2015/primeng-megamenu.mjs +10 -12
  226. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  227. package/fesm2015/primeng-menu.mjs +6 -6
  228. package/fesm2015/primeng-menu.mjs.map +1 -1
  229. package/fesm2015/primeng-menubar.mjs +7 -8
  230. package/fesm2015/primeng-menubar.mjs.map +1 -1
  231. package/fesm2015/primeng-messages.mjs +5 -6
  232. package/fesm2015/primeng-messages.mjs.map +1 -1
  233. package/fesm2015/primeng-multiselect.mjs +6 -6
  234. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  235. package/fesm2015/primeng-orderlist.mjs +5 -6
  236. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  237. package/fesm2015/primeng-organizationchart.mjs +8 -10
  238. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  239. package/fesm2015/primeng-overlay.mjs +10 -5
  240. package/fesm2015/primeng-overlay.mjs.map +1 -1
  241. package/fesm2015/primeng-overlaypanel.mjs +5 -6
  242. package/fesm2015/primeng-overlaypanel.mjs.map +1 -1
  243. package/fesm2015/primeng-paginator.mjs +9 -10
  244. package/fesm2015/primeng-paginator.mjs.map +1 -1
  245. package/fesm2015/primeng-panel.mjs +8 -10
  246. package/fesm2015/primeng-panel.mjs.map +1 -1
  247. package/fesm2015/primeng-panelmenu.mjs +5 -6
  248. package/fesm2015/primeng-panelmenu.mjs.map +1 -1
  249. package/fesm2015/primeng-password.mjs +5 -6
  250. package/fesm2015/primeng-password.mjs.map +1 -1
  251. package/fesm2015/primeng-picklist.mjs +5 -6
  252. package/fesm2015/primeng-picklist.mjs.map +1 -1
  253. package/fesm2015/primeng-progressbar.mjs +7 -8
  254. package/fesm2015/primeng-progressbar.mjs.map +1 -1
  255. package/fesm2015/primeng-progressspinner.mjs +7 -8
  256. package/fesm2015/primeng-progressspinner.mjs.map +1 -1
  257. package/fesm2015/primeng-radiobutton.mjs +7 -8
  258. package/fesm2015/primeng-radiobutton.mjs.map +1 -1
  259. package/fesm2015/primeng-rating.mjs +7 -9
  260. package/fesm2015/primeng-rating.mjs.map +1 -1
  261. package/fesm2015/primeng-ripple.mjs +5 -5
  262. package/fesm2015/primeng-ripple.mjs.map +1 -1
  263. package/fesm2015/primeng-scroller.mjs +10 -10
  264. package/fesm2015/primeng-scroller.mjs.map +1 -1
  265. package/fesm2015/primeng-scrollpanel.mjs +7 -9
  266. package/fesm2015/primeng-scrollpanel.mjs.map +1 -1
  267. package/fesm2015/primeng-scrolltop.mjs +5 -5
  268. package/fesm2015/primeng-scrolltop.mjs.map +1 -1
  269. package/fesm2015/primeng-selectbutton.mjs +9 -10
  270. package/fesm2015/primeng-selectbutton.mjs.map +1 -1
  271. package/fesm2015/primeng-sidebar.mjs +5 -6
  272. package/fesm2015/primeng-sidebar.mjs.map +1 -1
  273. package/fesm2015/primeng-skeleton.mjs +7 -8
  274. package/fesm2015/primeng-skeleton.mjs.map +1 -1
  275. package/fesm2015/primeng-slidemenu.mjs +6 -6
  276. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  277. package/fesm2015/primeng-slider.mjs +7 -8
  278. package/fesm2015/primeng-slider.mjs.map +1 -1
  279. package/fesm2015/primeng-speeddial.mjs +11 -13
  280. package/fesm2015/primeng-speeddial.mjs.map +1 -1
  281. package/fesm2015/primeng-splitbutton.mjs +9 -11
  282. package/fesm2015/primeng-splitbutton.mjs.map +1 -1
  283. package/fesm2015/primeng-splitter.mjs +7 -9
  284. package/fesm2015/primeng-splitter.mjs.map +1 -1
  285. package/fesm2015/primeng-steps.mjs +8 -9
  286. package/fesm2015/primeng-steps.mjs.map +1 -1
  287. package/fesm2015/primeng-styleclass.mjs +5 -6
  288. package/fesm2015/primeng-styleclass.mjs.map +1 -1
  289. package/fesm2015/primeng-table.mjs +5 -6
  290. package/fesm2015/primeng-table.mjs.map +1 -1
  291. package/fesm2015/primeng-tabmenu.mjs +9 -11
  292. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  293. package/fesm2015/primeng-tabview.mjs +10 -12
  294. package/fesm2015/primeng-tabview.mjs.map +1 -1
  295. package/fesm2015/primeng-tag.mjs +7 -9
  296. package/fesm2015/primeng-tag.mjs.map +1 -1
  297. package/fesm2015/primeng-terminal.mjs +8 -9
  298. package/fesm2015/primeng-terminal.mjs.map +1 -1
  299. package/fesm2015/primeng-tieredmenu.mjs +14 -14
  300. package/fesm2015/primeng-tieredmenu.mjs.map +1 -1
  301. package/fesm2015/primeng-timeline.mjs +7 -9
  302. package/fesm2015/primeng-timeline.mjs.map +1 -1
  303. package/fesm2015/primeng-toast.mjs +5 -6
  304. package/fesm2015/primeng-toast.mjs.map +1 -1
  305. package/fesm2015/primeng-togglebutton.mjs +9 -10
  306. package/fesm2015/primeng-togglebutton.mjs.map +1 -1
  307. package/fesm2015/primeng-toolbar.mjs +7 -9
  308. package/fesm2015/primeng-toolbar.mjs.map +1 -1
  309. package/fesm2015/primeng-tooltip.mjs +5 -5
  310. package/fesm2015/primeng-tooltip.mjs.map +1 -1
  311. package/fesm2015/primeng-tree.mjs +5 -6
  312. package/fesm2015/primeng-tree.mjs.map +1 -1
  313. package/fesm2015/primeng-treeselect.mjs +5 -6
  314. package/fesm2015/primeng-treeselect.mjs.map +1 -1
  315. package/fesm2015/primeng-treetable.mjs +5 -6
  316. package/fesm2015/primeng-treetable.mjs.map +1 -1
  317. package/fesm2015/primeng-tristatecheckbox.mjs +7 -8
  318. package/fesm2015/primeng-tristatecheckbox.mjs.map +1 -1
  319. package/fesm2015/primeng-virtualscroller.mjs +8 -9
  320. package/fesm2015/primeng-virtualscroller.mjs.map +1 -1
  321. package/fesm2020/primeng-accordion.mjs +8 -10
  322. package/fesm2020/primeng-accordion.mjs.map +1 -1
  323. package/fesm2020/primeng-animate.mjs +5 -6
  324. package/fesm2020/primeng-animate.mjs.map +1 -1
  325. package/fesm2020/primeng-api.mjs +59 -75
  326. package/fesm2020/primeng-api.mjs.map +1 -1
  327. package/fesm2020/primeng-autocomplete.mjs +5 -6
  328. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  329. package/fesm2020/primeng-autofocus.mjs +5 -6
  330. package/fesm2020/primeng-autofocus.mjs.map +1 -1
  331. package/fesm2020/primeng-avatar.mjs +7 -8
  332. package/fesm2020/primeng-avatar.mjs.map +1 -1
  333. package/fesm2020/primeng-badge.mjs +11 -14
  334. package/fesm2020/primeng-badge.mjs.map +1 -1
  335. package/fesm2020/primeng-blockui.mjs +5 -6
  336. package/fesm2020/primeng-blockui.mjs.map +1 -1
  337. package/fesm2020/primeng-breadcrumb.mjs +9 -10
  338. package/fesm2020/primeng-breadcrumb.mjs.map +1 -1
  339. package/fesm2020/primeng-button.mjs +12 -15
  340. package/fesm2020/primeng-button.mjs.map +1 -1
  341. package/fesm2020/primeng-calendar.mjs +5 -6
  342. package/fesm2020/primeng-calendar.mjs.map +1 -1
  343. package/fesm2020/primeng-captcha.mjs +5 -6
  344. package/fesm2020/primeng-captcha.mjs.map +1 -1
  345. package/fesm2020/primeng-card.mjs +7 -9
  346. package/fesm2020/primeng-card.mjs.map +1 -1
  347. package/fesm2020/primeng-carousel.mjs +8 -10
  348. package/fesm2020/primeng-carousel.mjs.map +1 -1
  349. package/fesm2020/primeng-cascadeselect.mjs +5 -6
  350. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  351. package/fesm2020/primeng-chart.mjs +5 -6
  352. package/fesm2020/primeng-chart.mjs.map +1 -1
  353. package/fesm2020/primeng-checkbox.mjs +7 -8
  354. package/fesm2020/primeng-checkbox.mjs.map +1 -1
  355. package/fesm2020/primeng-chip.mjs +7 -8
  356. package/fesm2020/primeng-chip.mjs.map +1 -1
  357. package/fesm2020/primeng-chips.mjs +7 -9
  358. package/fesm2020/primeng-chips.mjs.map +1 -1
  359. package/fesm2020/primeng-colorpicker.mjs +6 -6
  360. package/fesm2020/primeng-colorpicker.mjs.map +1 -1
  361. package/fesm2020/primeng-confirmdialog.mjs +5 -6
  362. package/fesm2020/primeng-confirmdialog.mjs.map +1 -1
  363. package/fesm2020/primeng-confirmpopup.mjs +5 -6
  364. package/fesm2020/primeng-confirmpopup.mjs.map +1 -1
  365. package/fesm2020/primeng-contextmenu.mjs +5 -6
  366. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  367. package/fesm2020/primeng-dataview.mjs +5 -6
  368. package/fesm2020/primeng-dataview.mjs.map +1 -1
  369. package/fesm2020/primeng-defer.mjs +5 -6
  370. package/fesm2020/primeng-defer.mjs.map +1 -1
  371. package/fesm2020/primeng-dialog.mjs +5 -6
  372. package/fesm2020/primeng-dialog.mjs.map +1 -1
  373. package/fesm2020/primeng-divider.mjs +7 -8
  374. package/fesm2020/primeng-divider.mjs.map +1 -1
  375. package/fesm2020/primeng-dock.mjs +10 -12
  376. package/fesm2020/primeng-dock.mjs.map +1 -1
  377. package/fesm2020/primeng-dom.mjs +1 -1
  378. package/fesm2020/primeng-dom.mjs.map +1 -1
  379. package/fesm2020/primeng-dragdrop.mjs +9 -11
  380. package/fesm2020/primeng-dragdrop.mjs.map +1 -1
  381. package/fesm2020/primeng-dropdown.mjs +5 -6
  382. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  383. package/fesm2020/primeng-dynamicdialog.mjs +6 -6
  384. package/fesm2020/primeng-dynamicdialog.mjs.map +1 -1
  385. package/fesm2020/primeng-editor.mjs +7 -9
  386. package/fesm2020/primeng-editor.mjs.map +1 -1
  387. package/fesm2020/primeng-fieldset.mjs +8 -10
  388. package/fesm2020/primeng-fieldset.mjs.map +1 -1
  389. package/fesm2020/primeng-fileupload.mjs +5 -6
  390. package/fesm2020/primeng-fileupload.mjs.map +1 -1
  391. package/fesm2020/primeng-focustrap.mjs +5 -6
  392. package/fesm2020/primeng-focustrap.mjs.map +1 -1
  393. package/fesm2020/primeng-galleria.mjs +5 -6
  394. package/fesm2020/primeng-galleria.mjs.map +1 -1
  395. package/fesm2020/primeng-gmap.mjs +7 -8
  396. package/fesm2020/primeng-gmap.mjs.map +1 -1
  397. package/fesm2020/primeng-image.mjs +5 -6
  398. package/fesm2020/primeng-image.mjs.map +1 -1
  399. package/fesm2020/primeng-inplace.mjs +8 -10
  400. package/fesm2020/primeng-inplace.mjs.map +1 -1
  401. package/fesm2020/primeng-inputmask.mjs +9 -10
  402. package/fesm2020/primeng-inputmask.mjs.map +1 -1
  403. package/fesm2020/primeng-inputnumber.mjs +9 -10
  404. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  405. package/fesm2020/primeng-inputswitch.mjs +7 -8
  406. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  407. package/fesm2020/primeng-inputtext.mjs +5 -6
  408. package/fesm2020/primeng-inputtext.mjs.map +1 -1
  409. package/fesm2020/primeng-inputtextarea.mjs +5 -6
  410. package/fesm2020/primeng-inputtextarea.mjs.map +1 -1
  411. package/fesm2020/primeng-keyfilter.mjs +5 -6
  412. package/fesm2020/primeng-keyfilter.mjs.map +1 -1
  413. package/fesm2020/primeng-knob.mjs +7 -8
  414. package/fesm2020/primeng-knob.mjs.map +1 -1
  415. package/fesm2020/primeng-listbox.mjs +5 -6
  416. package/fesm2020/primeng-listbox.mjs.map +1 -1
  417. package/fesm2020/primeng-megamenu.mjs +10 -12
  418. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  419. package/fesm2020/primeng-menu.mjs +6 -6
  420. package/fesm2020/primeng-menu.mjs.map +1 -1
  421. package/fesm2020/primeng-menubar.mjs +7 -8
  422. package/fesm2020/primeng-menubar.mjs.map +1 -1
  423. package/fesm2020/primeng-messages.mjs +5 -6
  424. package/fesm2020/primeng-messages.mjs.map +1 -1
  425. package/fesm2020/primeng-multiselect.mjs +6 -6
  426. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  427. package/fesm2020/primeng-orderlist.mjs +5 -6
  428. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  429. package/fesm2020/primeng-organizationchart.mjs +8 -10
  430. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  431. package/fesm2020/primeng-overlay.mjs +10 -5
  432. package/fesm2020/primeng-overlay.mjs.map +1 -1
  433. package/fesm2020/primeng-overlaypanel.mjs +5 -6
  434. package/fesm2020/primeng-overlaypanel.mjs.map +1 -1
  435. package/fesm2020/primeng-paginator.mjs +9 -10
  436. package/fesm2020/primeng-paginator.mjs.map +1 -1
  437. package/fesm2020/primeng-panel.mjs +8 -10
  438. package/fesm2020/primeng-panel.mjs.map +1 -1
  439. package/fesm2020/primeng-panelmenu.mjs +5 -6
  440. package/fesm2020/primeng-panelmenu.mjs.map +1 -1
  441. package/fesm2020/primeng-password.mjs +5 -6
  442. package/fesm2020/primeng-password.mjs.map +1 -1
  443. package/fesm2020/primeng-picklist.mjs +5 -6
  444. package/fesm2020/primeng-picklist.mjs.map +1 -1
  445. package/fesm2020/primeng-progressbar.mjs +7 -8
  446. package/fesm2020/primeng-progressbar.mjs.map +1 -1
  447. package/fesm2020/primeng-progressspinner.mjs +7 -8
  448. package/fesm2020/primeng-progressspinner.mjs.map +1 -1
  449. package/fesm2020/primeng-radiobutton.mjs +7 -8
  450. package/fesm2020/primeng-radiobutton.mjs.map +1 -1
  451. package/fesm2020/primeng-rating.mjs +7 -9
  452. package/fesm2020/primeng-rating.mjs.map +1 -1
  453. package/fesm2020/primeng-ripple.mjs +5 -5
  454. package/fesm2020/primeng-ripple.mjs.map +1 -1
  455. package/fesm2020/primeng-scroller.mjs +10 -10
  456. package/fesm2020/primeng-scroller.mjs.map +1 -1
  457. package/fesm2020/primeng-scrollpanel.mjs +7 -9
  458. package/fesm2020/primeng-scrollpanel.mjs.map +1 -1
  459. package/fesm2020/primeng-scrolltop.mjs +5 -5
  460. package/fesm2020/primeng-scrolltop.mjs.map +1 -1
  461. package/fesm2020/primeng-selectbutton.mjs +9 -10
  462. package/fesm2020/primeng-selectbutton.mjs.map +1 -1
  463. package/fesm2020/primeng-sidebar.mjs +5 -6
  464. package/fesm2020/primeng-sidebar.mjs.map +1 -1
  465. package/fesm2020/primeng-skeleton.mjs +7 -8
  466. package/fesm2020/primeng-skeleton.mjs.map +1 -1
  467. package/fesm2020/primeng-slidemenu.mjs +6 -6
  468. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  469. package/fesm2020/primeng-slider.mjs +7 -8
  470. package/fesm2020/primeng-slider.mjs.map +1 -1
  471. package/fesm2020/primeng-speeddial.mjs +11 -13
  472. package/fesm2020/primeng-speeddial.mjs.map +1 -1
  473. package/fesm2020/primeng-splitbutton.mjs +9 -11
  474. package/fesm2020/primeng-splitbutton.mjs.map +1 -1
  475. package/fesm2020/primeng-splitter.mjs +7 -9
  476. package/fesm2020/primeng-splitter.mjs.map +1 -1
  477. package/fesm2020/primeng-steps.mjs +8 -9
  478. package/fesm2020/primeng-steps.mjs.map +1 -1
  479. package/fesm2020/primeng-styleclass.mjs +5 -6
  480. package/fesm2020/primeng-styleclass.mjs.map +1 -1
  481. package/fesm2020/primeng-table.mjs +5 -6
  482. package/fesm2020/primeng-table.mjs.map +1 -1
  483. package/fesm2020/primeng-tabmenu.mjs +9 -11
  484. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  485. package/fesm2020/primeng-tabview.mjs +10 -12
  486. package/fesm2020/primeng-tabview.mjs.map +1 -1
  487. package/fesm2020/primeng-tag.mjs +7 -9
  488. package/fesm2020/primeng-tag.mjs.map +1 -1
  489. package/fesm2020/primeng-terminal.mjs +8 -9
  490. package/fesm2020/primeng-terminal.mjs.map +1 -1
  491. package/fesm2020/primeng-tieredmenu.mjs +14 -14
  492. package/fesm2020/primeng-tieredmenu.mjs.map +1 -1
  493. package/fesm2020/primeng-timeline.mjs +7 -9
  494. package/fesm2020/primeng-timeline.mjs.map +1 -1
  495. package/fesm2020/primeng-toast.mjs +5 -6
  496. package/fesm2020/primeng-toast.mjs.map +1 -1
  497. package/fesm2020/primeng-togglebutton.mjs +9 -10
  498. package/fesm2020/primeng-togglebutton.mjs.map +1 -1
  499. package/fesm2020/primeng-toolbar.mjs +7 -9
  500. package/fesm2020/primeng-toolbar.mjs.map +1 -1
  501. package/fesm2020/primeng-tooltip.mjs +5 -5
  502. package/fesm2020/primeng-tooltip.mjs.map +1 -1
  503. package/fesm2020/primeng-tree.mjs +5 -6
  504. package/fesm2020/primeng-tree.mjs.map +1 -1
  505. package/fesm2020/primeng-treeselect.mjs +5 -6
  506. package/fesm2020/primeng-treeselect.mjs.map +1 -1
  507. package/fesm2020/primeng-treetable.mjs +5 -6
  508. package/fesm2020/primeng-treetable.mjs.map +1 -1
  509. package/fesm2020/primeng-tristatecheckbox.mjs +7 -8
  510. package/fesm2020/primeng-tristatecheckbox.mjs.map +1 -1
  511. package/fesm2020/primeng-virtualscroller.mjs +8 -9
  512. package/fesm2020/primeng-virtualscroller.mjs.map +1 -1
  513. package/fieldset/fieldset.d.ts +1 -3
  514. package/fileupload/fileupload.d.ts +2 -3
  515. package/focustrap/focustrap.d.ts +1 -3
  516. package/galleria/galleria.d.ts +2 -3
  517. package/gmap/gmap.d.ts +1 -3
  518. package/image/image.d.ts +2 -3
  519. package/inplace/inplace.d.ts +1 -3
  520. package/inputmask/inputmask.d.ts +1 -3
  521. package/inputnumber/inputnumber.d.ts +1 -3
  522. package/inputswitch/inputswitch.d.ts +1 -3
  523. package/inputtext/inputtext.d.ts +2 -4
  524. package/inputtextarea/inputtextarea.d.ts +2 -4
  525. package/keyfilter/keyfilter.d.ts +1 -3
  526. package/knob/knob.d.ts +1 -3
  527. package/listbox/listbox.d.ts +2 -3
  528. package/megamenu/megamenu.d.ts +2 -3
  529. package/menu/menu.d.ts +2 -3
  530. package/menubar/menubar.d.ts +2 -3
  531. package/messages/messages.d.ts +3 -4
  532. package/multiselect/multiselect.d.ts +2 -3
  533. package/orderlist/orderlist.d.ts +2 -3
  534. package/organizationchart/organizationchart.d.ts +1 -3
  535. package/overlay/overlay.d.ts +1 -1
  536. package/overlaypanel/overlaypanel.d.ts +2 -3
  537. package/package.json +1 -1
  538. package/paginator/paginator.d.ts +2 -3
  539. package/panel/panel.d.ts +1 -3
  540. package/panelmenu/panelmenu.d.ts +2 -3
  541. package/password/password.d.ts +2 -3
  542. package/picklist/picklist.d.ts +2 -3
  543. package/progressbar/progressbar.d.ts +1 -3
  544. package/progressspinner/progressspinner.d.ts +1 -3
  545. package/radiobutton/radiobutton.d.ts +1 -3
  546. package/rating/rating.d.ts +1 -3
  547. package/resources/components/button/button.css +1 -0
  548. package/resources/components/menubar/menubar.css +1 -0
  549. package/resources/primeng.css +1 -0
  550. package/resources/primeng.min.css +1 -1
  551. package/ripple/ripple.d.ts +3 -4
  552. package/scroller/scroller.d.ts +1 -3
  553. package/scrollpanel/scrollpanel.d.ts +1 -3
  554. package/scrolltop/scrolltop.d.ts +2 -3
  555. package/selectbutton/selectbutton.d.ts +1 -3
  556. package/sidebar/sidebar.d.ts +2 -3
  557. package/skeleton/skeleton.d.ts +1 -3
  558. package/slidemenu/slidemenu.d.ts +2 -3
  559. package/slider/slider.d.ts +1 -3
  560. package/speeddial/speeddial.d.ts +2 -3
  561. package/splitbutton/splitbutton.d.ts +2 -3
  562. package/splitter/splitter.d.ts +1 -3
  563. package/steps/steps.d.ts +2 -3
  564. package/styleclass/styleclass.d.ts +1 -3
  565. package/table/table.d.ts +2 -3
  566. package/tabmenu/tabmenu.d.ts +2 -3
  567. package/tabview/tabview.d.ts +2 -3
  568. package/tag/tag.d.ts +1 -3
  569. package/terminal/terminal.d.ts +1 -3
  570. package/tieredmenu/tieredmenu.d.ts +2 -3
  571. package/timeline/timeline.d.ts +2 -3
  572. package/toast/toast.d.ts +2 -3
  573. package/togglebutton/togglebutton.d.ts +1 -3
  574. package/toolbar/toolbar.d.ts +2 -3
  575. package/tooltip/tooltip.d.ts +2 -3
  576. package/tree/tree.d.ts +3 -4
  577. package/treeselect/treeselect.d.ts +2 -3
  578. package/treetable/treetable.d.ts +2 -3
  579. package/tristatecheckbox/tristatecheckbox.d.ts +1 -3
  580. package/virtualscroller/virtualscroller.d.ts +2 -3
@@ -1,13 +1,12 @@
1
1
  import { NgModule, Directive, HostListener, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { DomHandler } from 'primeng/dom';
4
+ import { LicenseManager } from 'primeng/api';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "primeng/api";
6
6
  export class Draggable {
7
- constructor(el, zone, licenseManager) {
7
+ constructor(el, zone) {
8
8
  this.el = el;
9
9
  this.zone = zone;
10
- this.licenseManager = licenseManager;
11
10
  this.onDragStart = new EventEmitter();
12
11
  this.onDragEnd = new EventEmitter();
13
12
  this.onDrag = new EventEmitter();
@@ -30,7 +29,7 @@ export class Draggable {
30
29
  this.el.nativeElement.draggable = true;
31
30
  this.bindMouseListeners();
32
31
  }
33
- this.licenseManager['check']();
32
+ LicenseManager.check();
34
33
  }
35
34
  bindDragListener() {
36
35
  if (!this.dragListener) {
@@ -105,7 +104,7 @@ export class Draggable {
105
104
  this.unbindMouseListeners();
106
105
  }
107
106
  }
108
- Draggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.LicenseManager }], target: i0.ɵɵFactoryTarget.Directive });
107
+ Draggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
109
108
  Draggable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.7", type: Draggable, selector: "[pDraggable]", inputs: { scope: ["pDraggable", "scope"], dragEffect: "dragEffect", dragHandle: "dragHandle", pDraggableDisabled: "pDraggableDisabled" }, outputs: { onDragStart: "onDragStart", onDragEnd: "onDragEnd", onDrag: "onDrag" }, host: { listeners: { "dragstart": "dragStart($event)", "dragend": "dragEnd($event)" }, classAttribute: "p-element" }, ngImport: i0 });
110
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Draggable, decorators: [{
111
110
  type: Directive,
@@ -115,7 +114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
115
114
  class: 'p-element'
116
115
  }
117
116
  }]
118
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.LicenseManager }]; }, propDecorators: { scope: [{
117
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { scope: [{
119
118
  type: Input,
120
119
  args: ['pDraggable']
121
120
  }], dragEffect: [{
@@ -138,10 +137,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
138
137
  args: ['dragend', ['$event']]
139
138
  }] } });
140
139
  export class Droppable {
141
- constructor(el, zone, licenseManager) {
140
+ constructor(el, zone) {
142
141
  this.el = el;
143
142
  this.zone = zone;
144
- this.licenseManager = licenseManager;
145
143
  this.onDragEnter = new EventEmitter();
146
144
  this.onDragLeave = new EventEmitter();
147
145
  this.onDrop = new EventEmitter();
@@ -150,7 +148,7 @@ export class Droppable {
150
148
  if (!this.pDroppableDisabled) {
151
149
  this.bindDragOverListener();
152
150
  }
153
- this.licenseManager['check']();
151
+ LicenseManager.check();
154
152
  }
155
153
  bindDragOverListener() {
156
154
  if (!this.dragOverListener) {
@@ -209,7 +207,7 @@ export class Droppable {
209
207
  this.unbindDragOverListener();
210
208
  }
211
209
  }
212
- Droppable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Droppable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.LicenseManager }], target: i0.ɵɵFactoryTarget.Directive });
210
+ Droppable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Droppable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
213
211
  Droppable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.7", type: Droppable, selector: "[pDroppable]", inputs: { scope: ["pDroppable", "scope"], pDroppableDisabled: "pDroppableDisabled", dropEffect: "dropEffect" }, outputs: { onDragEnter: "onDragEnter", onDragLeave: "onDragLeave", onDrop: "onDrop" }, host: { listeners: { "drop": "drop($event)", "dragenter": "dragEnter($event)", "dragleave": "dragLeave($event)" }, classAttribute: "p-element" }, ngImport: i0 });
214
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: Droppable, decorators: [{
215
213
  type: Directive,
@@ -219,7 +217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
219
217
  class: 'p-element'
220
218
  }
221
219
  }]
222
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.LicenseManager }]; }, propDecorators: { scope: [{
220
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { scope: [{
223
221
  type: Input,
224
222
  args: ['pDroppable']
225
223
  }], pDroppableDisabled: [{
@@ -255,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
255
253
  declarations: [Draggable, Droppable]
256
254
  }]
257
255
  }] });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZHJhZ2Ryb3AvZHJhZ2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQXdDLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBU3pDLE1BQU0sT0FBTyxTQUFTO0lBdUJsQixZQUFtQixFQUFjLEVBQVMsSUFBWSxFQUFVLGNBQThCO1FBQTNFLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBaEJwRixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFZd0MsQ0FBQztJQUVsRyxJQUFhLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxtQkFBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBRS9DLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFD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QUFwQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQXFDUCxJQUFJO3NCQURILFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVoQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWFyQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWdDekMsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkEvT2QsU0FBUyxFQTJJVCxTQUFTLGFBZ0dSLFlBQVksYUEzT2IsU0FBUyxFQTJJVCxTQUFTOzRHQW9HVCxjQUFjLFlBSmIsWUFBWTsyRkFJYixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztvQkFDL0IsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuaW1wb3J0IHsgTGljZW5zZU1hbmFnZXIgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3BEcmFnZ2FibGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1lbGVtZW50J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2dhYmxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoJ3BEcmFnZ2FibGUnKSBzY29wZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZHJhZ0VmZmVjdDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZHJhZ0hhbmRsZTogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIG9uRHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uRHJhZzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBoYW5kbGU6IGFueTtcblxuICAgIGRyYWdMaXN0ZW5lcjogYW55O1xuXG4gICAgbW91c2VEb3duTGlzdGVuZXI6IGFueTtcblxuICAgIG1vdXNlVXBMaXN0ZW5lcjogYW55O1xuXG4gICAgX3BEcmFnZ2FibGVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHVibGljIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSBsaWNlbnNlTWFuYWdlcjogTGljZW5zZU1hbmFnZXIpIHt9XG5cbiAgICBASW5wdXQoKSBnZXQgcERyYWdnYWJsZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcERyYWdnYWJsZURpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgcERyYWdnYWJsZURpc2FibGVkKF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcERyYWdnYWJsZURpc2FibGVkID0gX3BEcmFnZ2FibGVEaXNhYmxlZDtcblxuICAgICAgICBpZiAodGhpcy5fcERyYWdnYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wRHJhZ2dhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGljZW5zZU1hbmFnZXJbJ2NoZWNrJ10oKTtcbiAgICB9XG5cbiAgICBiaW5kRHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJhZ0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gdGhpcy5kcmFnLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWcnLCB0aGlzLmRyYWdMaXN0ZW5lcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZERyYWdMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnJywgdGhpcy5kcmFnTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZE1vdXNlTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMubW91c2VEb3duTGlzdGVuZXIgJiYgIXRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VEb3duTGlzdGVuZXIgPSB0aGlzLm1vdXNlZG93bi5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VVcExpc3RlbmVyID0gdGhpcy5tb3VzZXVwLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VEb3duTGlzdGVuZXIgJiYgdGhpcy5tb3VzZVVwTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VEb3duTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VVcExpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhZyhldmVudCkge1xuICAgICAgICB0aGlzLm9uRHJhZy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnc3RhcnQnLCBbJyRldmVudCddKVxuICAgIGRyYWdTdGFydChldmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0RyYWcoKSAmJiAhdGhpcy5wRHJhZ2dhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdFZmZlY3QpIHtcbiAgICAgICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9IHRoaXMuZHJhZ0VmZmVjdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgdGhpcy5zY29wZSk7XG5cbiAgICAgICAgICAgIHRoaXMub25EcmFnU3RhcnQuZW1pdChldmVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuYmluZERyYWdMaXN0ZW5lcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKVxuICAgIGRyYWdFbmQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkRyYWdFbmQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMudW5iaW5kRHJhZ0xpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgbW91c2Vkb3duKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlID0gZXZlbnQudGFyZ2V0O1xuICAgIH1cblxuICAgIG1vdXNldXAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUgPSBudWxsO1xuICAgIH1cblxuICAgIGFsbG93RHJhZygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ0hhbmRsZSAmJiB0aGlzLmhhbmRsZSkgcmV0dXJuIERvbUhhbmRsZXIubWF0Y2hlcyh0aGlzLmhhbmRsZSwgdGhpcy5kcmFnSGFuZGxlKTtcbiAgICAgICAgZWxzZSByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmREcmFnTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy51bmJpbmRNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcERyb3BwYWJsZV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wcGFibGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgncERyb3BwYWJsZScpIHNjb3BlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpIHBEcm9wcGFibGVEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGRyb3BFZmZlY3Q6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdFbnRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25EcmFnTGVhdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uRHJvcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB6b25lOiBOZ1pvbmUsIHByaXZhdGUgbGljZW5zZU1hbmFnZXI6IExpY2Vuc2VNYW5hZ2VyKSB7fVxuXG4gICAgZHJhZ092ZXJMaXN0ZW5lcjogYW55O1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMucERyb3BwYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmREcmFnT3Zlckxpc3RlbmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpY2Vuc2VNYW5hZ2VyWydjaGVjayddKCk7XG4gICAgfVxuXG4gICAgYmluZERyYWdPdmVyTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMuZHJhZ092ZXIuYmluZCh0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmRyYWdPdmVyTGlzdGVuZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmREcmFnT3Zlckxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhZ092ZXIoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgICBkcm9wKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RHJvcChldmVudCkpIHtcbiAgICAgICAgICAgIERvbUhhbmRsZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncC1kcmFnZ2FibGUtZW50ZXInKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLm9uRHJvcC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0VudGVyKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZHJvcEVmZmVjdCkge1xuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSB0aGlzLmRyb3BFZmZlY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBEb21IYW5kbGVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3AtZHJhZ2dhYmxlLWVudGVyJyk7XG4gICAgICAgIHRoaXMub25EcmFnRW50ZXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgICBkcmFnTGVhdmUoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3AtZHJhZ2dhYmxlLWVudGVyJyk7XG4gICAgICAgIHRoaXMub25EcmFnTGVhdmUuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgYWxsb3dEcm9wKGV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBkcmFnU2NvcGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NvcGUgPT0gJ3N0cmluZycgJiYgZHJhZ1Njb3BlID09IHRoaXMuc2NvcGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2NvcGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnNjb3BlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRyYWdTY29wZSA9PSB0aGlzLnNjb3BlW2pdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5iaW5kRHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbRHJhZ2dhYmxlLCBEcm9wcGFibGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0RyYWdnYWJsZSwgRHJvcHBhYmxlXVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnRHJvcE1vZHVsZSB7fVxuIl19
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZHJhZ2Ryb3AvZHJhZ2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQXdDLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVE3QyxNQUFNLE9BQU8sU0FBUztJQXVCbEIsWUFBbUIsRUFBYyxFQUFTLElBQVk7UUFBbkMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFoQjVDLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEQsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVlBLENBQUM7SUFFMUQsSUFBYSxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksa0JBQWtCLENBQUMsbUJBQTRCO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMvQjthQUFNO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFRCxlQUFlO1FB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QkFESCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVaEMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhckMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFnQ3pDLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBL09kLFNBQVMsRUEySVQsU0FBUyxhQWdHUixZQUFZLGFBM09iLFNBQVMsRUEySVQsU0FBUzs0R0FvR1QsY0FBYyxZQUpiLFlBQVk7MkZBSWIsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7b0JBQy9CLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ3ByaW1lbmcvZG9tJztcbmltcG9ydCB7IExpY2Vuc2VNYW5hZ2VyIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twRHJhZ2dhYmxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdwRHJhZ2dhYmxlJykgc2NvcGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdFZmZlY3Q6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdIYW5kbGU6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25EcmFnRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaGFuZGxlOiBhbnk7XG5cbiAgICBkcmFnTGlzdGVuZXI6IGFueTtcblxuICAgIG1vdXNlRG93bkxpc3RlbmVyOiBhbnk7XG5cbiAgICBtb3VzZVVwTGlzdGVuZXI6IGFueTtcblxuICAgIF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgICBASW5wdXQoKSBnZXQgcERyYWdnYWJsZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcERyYWdnYWJsZURpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgcERyYWdnYWJsZURpc2FibGVkKF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcERyYWdnYWJsZURpc2FibGVkID0gX3BEcmFnZ2FibGVEaXNhYmxlZDtcblxuICAgICAgICBpZiAodGhpcy5fcERyYWdnYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wRHJhZ2dhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIExpY2Vuc2VNYW5hZ2VyLmNoZWNrKCk7XG4gICAgfVxuXG4gICAgYmluZERyYWdMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyYWdMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdMaXN0ZW5lciA9IHRoaXMuZHJhZy5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnJywgdGhpcy5kcmFnTGlzdGVuZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmREcmFnTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZycsIHRoaXMuZHJhZ0xpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlRG93bkxpc3RlbmVyICYmICF0aGlzLm1vdXNlVXBMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5tb3VzZWRvd24uYmluZCh0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9IHRoaXMubW91c2V1cC5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kTW91c2VMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlRG93bkxpc3RlbmVyICYmIHRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlRG93bkxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYWcoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkRyYWcuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSlcbiAgICBkcmFnU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dEcmFnKCkgJiYgIXRoaXMucERyYWdnYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcmFnRWZmZWN0KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSB0aGlzLmRyYWdFZmZlY3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHRoaXMuc2NvcGUpO1xuXG4gICAgICAgICAgICB0aGlzLm9uRHJhZ1N0YXJ0LmVtaXQoZXZlbnQpO1xuXG4gICAgICAgICAgICB0aGlzLmJpbmREcmFnTGlzdGVuZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSlcbiAgICBkcmFnRW5kKGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25EcmFnRW5kLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLnVuYmluZERyYWdMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIG1vdXNlZG93bihldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZSA9IGV2ZW50LnRhcmdldDtcbiAgICB9XG5cbiAgICBtb3VzZXVwKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlID0gbnVsbDtcbiAgICB9XG5cbiAgICBhbGxvd0RyYWcoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdIYW5kbGUgJiYgdGhpcy5oYW5kbGUpIHJldHVybiBEb21IYW5kbGVyLm1hdGNoZXModGhpcy5oYW5kbGUsIHRoaXMuZHJhZ0hhbmRsZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5iaW5kRHJhZ0xpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMudW5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3BEcm9wcGFibGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1lbGVtZW50J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcHBhYmxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoJ3BEcm9wcGFibGUnKSBzY29wZTogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICBASW5wdXQoKSBwRHJvcHBhYmxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBkcm9wRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgb25EcmFnRW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uRHJhZ0xlYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyb3A6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwdWJsaWMgem9uZTogTmdab25lKSB7fVxuXG4gICAgZHJhZ092ZXJMaXN0ZW5lcjogYW55O1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMucERyb3BwYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmREcmFnT3Zlckxpc3RlbmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBMaWNlbnNlTWFuYWdlci5jaGVjaygpO1xuICAgIH1cblxuICAgIGJpbmREcmFnT3Zlckxpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJhZ092ZXJMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdPdmVyTGlzdGVuZXIgPSB0aGlzLmRyYWdPdmVyLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5kcmFnT3Zlckxpc3RlbmVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRHJhZ092ZXJMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ092ZXJMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmRyYWdPdmVyTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYWdPdmVyKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgZHJvcChldmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0Ryb3AoZXZlbnQpKSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3AtZHJhZ2dhYmxlLWVudGVyJyk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5vbkRyb3AuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKVxuICAgIGRyYWdFbnRlcihldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3BFZmZlY3QpIHtcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gdGhpcy5kcm9wRWZmZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGFuZGxlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0VudGVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0xlYXZlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgRG9tSGFuZGxlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0xlYXZlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIGFsbG93RHJvcChldmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZHJhZ1Njb3BlID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNjb3BlID09ICdzdHJpbmcnICYmIGRyYWdTY29wZSA9PSB0aGlzLnNjb3BlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNjb3BlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5zY29wZS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChkcmFnU2NvcGUgPT0gdGhpcy5zY29wZVtqXSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuYmluZERyYWdPdmVyTGlzdGVuZXIoKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0RyYWdnYWJsZSwgRHJvcHBhYmxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtEcmFnZ2FibGUsIERyb3BwYWJsZV1cbn0pXG5leHBvcnQgY2xhc3MgRHJhZ0Ryb3BNb2R1bGUge31cbiJdfQ==