@simpleangularcontrols/sac-bootstrap3 10.0.0-rc.20 → 10.0.0-rc.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +27 -27
  2. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js +2758 -2727
  3. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js.map +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js +1 -1
  5. package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js.map +1 -1
  6. package/controls/buttons/button.d.ts +3 -3
  7. package/controls/buttons/button.module.d.ts +2 -2
  8. package/controls/buttons/button.module.ngfactory.d.ts +3 -3
  9. package/controls/buttons/button.ngfactory.d.ts +1 -1
  10. package/controls/checkbox/checkbox.d.ts +11 -11
  11. package/controls/checkbox/checkbox.module.d.ts +2 -2
  12. package/controls/checkbox/checkbox.module.ngfactory.d.ts +3 -3
  13. package/controls/checkbox/checkbox.ngfactory.d.ts +1 -1
  14. package/controls/checkbox/checkbox.scss.ngstyle.d.ts +1 -1
  15. package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts +1 -1
  16. package/controls/checkbox/radiobutton.d.ts +7 -7
  17. package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -1
  18. package/controls/checkbox/radiobutton.scss.ngstyle.d.ts +1 -1
  19. package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts +1 -1
  20. package/controls/checkbox/radiobuttons.d.ts +11 -11
  21. package/controls/checkbox/radiobuttons.ngfactory.d.ts +1 -1
  22. package/controls/confirm/confirm.d.ts +3 -3
  23. package/controls/confirm/confirm.module.d.ts +11 -11
  24. package/controls/confirm/confirm.module.ngfactory.d.ts +3 -3
  25. package/controls/confirm/confirm.ngfactory.d.ts +1 -1
  26. package/controls/confirm/confirm.service.d.ts +54 -54
  27. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
  28. package/controls/contextmenu/contextmenu.d.ts +16 -16
  29. package/controls/contextmenu/contextmenu.module.d.ts +2 -2
  30. package/controls/contextmenu/contextmenu.module.ngfactory.d.ts +3 -3
  31. package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -1
  32. package/controls/contextmenu/contextmenuanchor.d.ts +12 -12
  33. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -1
  34. package/controls/contextmenu/contextmenucontainer.d.ts +12 -12
  35. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -1
  36. package/controls/contextmenu/contextmenuitembutton.d.ts +14 -14
  37. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -1
  38. package/controls/contextmenu/contextmenuitemsplitter.d.ts +6 -6
  39. package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts +1 -1
  40. package/controls/datetime/date.d.ts +13 -13
  41. package/controls/datetime/date.ngfactory.d.ts +1 -1
  42. package/controls/datetime/dateselector.d.ts +3 -3
  43. package/controls/datetime/dateselector.ngfactory.d.ts +1 -1
  44. package/controls/datetime/datetime.d.ts +13 -13
  45. package/controls/datetime/datetime.module.d.ts +2 -2
  46. package/controls/datetime/datetime.module.ngfactory.d.ts +3 -3
  47. package/controls/datetime/datetime.ngfactory.d.ts +1 -1
  48. package/controls/datetime/time.d.ts +13 -13
  49. package/controls/datetime/time.ngfactory.d.ts +1 -1
  50. package/controls/dialog/dialog.d.ts +11 -11
  51. package/controls/dialog/dialog.module.d.ts +2 -2
  52. package/controls/dialog/dialog.module.ngfactory.d.ts +3 -3
  53. package/controls/dialog/dialog.ngfactory.d.ts +1 -1
  54. package/controls/form/form.d.ts +28 -28
  55. package/controls/form/form.module.d.ts +2 -2
  56. package/controls/form/form.module.ngfactory.d.ts +3 -3
  57. package/controls/form/form.ngfactory.d.ts +1 -1
  58. package/controls/form/inheritform.directive.d.ts +24 -24
  59. package/controls/form/inheritform.directive.ngfactory.d.ts +1 -1
  60. package/controls/grid/grid.d.ts +6 -6
  61. package/controls/grid/grid.module.d.ts +2 -2
  62. package/controls/grid/grid.module.ngfactory.d.ts +3 -3
  63. package/controls/grid/grid.ngfactory.d.ts +1 -1
  64. package/controls/grid/gridbutton.d.ts +10 -10
  65. package/controls/grid/gridbutton.ngfactory.d.ts +1 -1
  66. package/controls/grid/gridcolumn.d.ts +6 -6
  67. package/controls/grid/gridcolumn.ngfactory.d.ts +1 -1
  68. package/controls/grid/gridcolumnaction.d.ts +6 -6
  69. package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -1
  70. package/controls/grid/gridimage.d.ts +4 -4
  71. package/controls/grid/gridimage.ngfactory.d.ts +1 -1
  72. package/controls/grid/paging.d.ts +8 -8
  73. package/controls/grid/paging.ngfactory.d.ts +1 -1
  74. package/controls/input/input.d.ts +11 -11
  75. package/controls/input/input.module.d.ts +2 -2
  76. package/controls/input/input.module.ngfactory.d.ts +3 -3
  77. package/controls/input/input.ngfactory.d.ts +1 -1
  78. package/controls/input/inputarea.d.ts +23 -23
  79. package/controls/input/inputarea.ngfactory.d.ts +1 -1
  80. package/controls/input/inputcurrency.d.ts +11 -11
  81. package/controls/input/inputcurrency.ngfactory.d.ts +1 -1
  82. package/controls/input/inputdecimal.d.ts +11 -11
  83. package/controls/input/inputdecimal.ngfactory.d.ts +1 -1
  84. package/controls/input/inputemail.d.ts +11 -11
  85. package/controls/input/inputemail.ngfactory.d.ts +1 -1
  86. package/controls/input/inputinteger.d.ts +11 -11
  87. package/controls/input/inputinteger.ngfactory.d.ts +1 -1
  88. package/controls/input/inputpassword.d.ts +11 -11
  89. package/controls/input/inputpassword.ngfactory.d.ts +1 -1
  90. package/controls/input/inputsearch.d.ts +11 -11
  91. package/controls/input/inputsearch.ngfactory.d.ts +1 -1
  92. package/controls/layout/formlayout.directive.d.ts +3 -3
  93. package/controls/layout/formlayout.directive.ngfactory.d.ts +1 -1
  94. package/controls/layout/layout.module.d.ts +2 -2
  95. package/controls/layout/layout.module.ngfactory.d.ts +3 -3
  96. package/controls/layout/tocontrolheight.pipe.d.ts +9 -9
  97. package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts +1 -1
  98. package/controls/layout/tocontrolwidthcss.pipe.d.ts +16 -16
  99. package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +1 -1
  100. package/controls/layout/tolabelheight.pipe.d.ts +9 -9
  101. package/controls/layout/tolabelheight.pipe.ngfactory.d.ts +1 -1
  102. package/controls/layout/tolabelwidthcss.pipe.d.ts +10 -10
  103. package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +1 -1
  104. package/controls/list/dropdown.d.ts +22 -22
  105. package/controls/list/dropdown.ngfactory.d.ts +1 -1
  106. package/controls/list/list.module.d.ts +2 -2
  107. package/controls/list/list.module.ngfactory.d.ts +3 -3
  108. package/controls/list/listbox.d.ts +11 -11
  109. package/controls/list/listbox.ngfactory.d.ts +1 -1
  110. package/controls/static/formcontainer.d.ts +25 -25
  111. package/controls/static/formcontainer.ngfactory.d.ts +1 -1
  112. package/controls/static/staticlabel.d.ts +11 -11
  113. package/controls/static/staticlabel.module.d.ts +2 -2
  114. package/controls/static/staticlabel.module.ngfactory.d.ts +3 -3
  115. package/controls/static/staticlabel.ngfactory.d.ts +1 -1
  116. package/controls/tabs/tab.d.ts +7 -7
  117. package/controls/tabs/tab.ngfactory.d.ts +1 -1
  118. package/controls/tabs/tabitem.d.ts +3 -3
  119. package/controls/tabs/tabitem.ngfactory.d.ts +1 -1
  120. package/controls/tabs/tabs.module.d.ts +2 -2
  121. package/controls/tabs/tabs.module.ngfactory.d.ts +3 -3
  122. package/controls/tinymce/tinymce.d.ts +20 -20
  123. package/controls/tinymce/tinymce.module.d.ts +2 -2
  124. package/controls/tinymce/tinymce.module.ngfactory.d.ts +3 -3
  125. package/controls/tinymce/tinymce.ngfactory.d.ts +1 -1
  126. package/controls/tooltip/tooltip.d.ts +34 -34
  127. package/controls/tooltip/tooltip.module.d.ts +2 -2
  128. package/controls/tooltip/tooltip.module.ngfactory.d.ts +3 -3
  129. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -1
  130. package/controls/treeview/treeview.d.ts +14 -14
  131. package/controls/treeview/treeview.module.d.ts +2 -2
  132. package/controls/treeview/treeview.module.ngfactory.d.ts +3 -3
  133. package/controls/treeview/treeview.ngfactory.d.ts +1 -1
  134. package/controls/upload/dropzonemultiple.d.ts +21 -21
  135. package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -1
  136. package/controls/upload/dropzonesingle.d.ts +21 -21
  137. package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -1
  138. package/controls/upload/upload.d.ts +13 -13
  139. package/controls/upload/upload.module.d.ts +2 -2
  140. package/controls/upload/upload.module.ngfactory.d.ts +3 -3
  141. package/controls/upload/upload.ngfactory.d.ts +1 -1
  142. package/controls/upload/upload.scss.ngstyle.d.ts +1 -1
  143. package/controls/upload/upload.scss.shim.ngstyle.d.ts +1 -1
  144. package/controls/upload/uploadmultiple.d.ts +13 -13
  145. package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -1
  146. package/controls/validation/validationsummary.d.ts +11 -11
  147. package/controls/validation/validationsummary.module.d.ts +2 -2
  148. package/controls/validation/validationsummary.module.ngfactory.d.ts +3 -3
  149. package/controls/validation/validationsummary.ngfactory.d.ts +1 -1
  150. package/controls/wizard/wizard.d.ts +7 -7
  151. package/controls/wizard/wizard.module.d.ts +2 -2
  152. package/controls/wizard/wizard.module.ngfactory.d.ts +3 -3
  153. package/controls/wizard/wizard.ngfactory.d.ts +1 -1
  154. package/controls/wizard/wizarditem.d.ts +3 -3
  155. package/controls/wizard/wizarditem.ngfactory.d.ts +1 -1
  156. package/esm2015/controls/buttons/button.js +13 -13
  157. package/esm2015/controls/buttons/button.module.js +15 -15
  158. package/esm2015/controls/buttons/button.module.ngfactory.js +7 -7
  159. package/esm2015/controls/buttons/button.ngfactory.js +7 -7
  160. package/esm2015/controls/checkbox/checkbox.js +40 -40
  161. package/esm2015/controls/checkbox/checkbox.module.js +29 -29
  162. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +7 -7
  163. package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -7
  164. package/esm2015/controls/checkbox/checkbox.scss.ngstyle.js +7 -7
  165. package/esm2015/controls/checkbox/checkbox.scss.shim.ngstyle.js +7 -7
  166. package/esm2015/controls/checkbox/radiobutton.js +23 -23
  167. package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -7
  168. package/esm2015/controls/checkbox/radiobutton.scss.ngstyle.js +7 -7
  169. package/esm2015/controls/checkbox/radiobutton.scss.shim.ngstyle.js +7 -7
  170. package/esm2015/controls/checkbox/radiobuttons.js +39 -39
  171. package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -7
  172. package/esm2015/controls/confirm/confirm.js +11 -11
  173. package/esm2015/controls/confirm/confirm.module.js +31 -31
  174. package/esm2015/controls/confirm/confirm.module.ngfactory.js +7 -7
  175. package/esm2015/controls/confirm/confirm.ngfactory.js +7 -7
  176. package/esm2015/controls/confirm/confirm.service.js +102 -102
  177. package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -7
  178. package/esm2015/controls/contextmenu/contextmenu.js +34 -34
  179. package/esm2015/controls/contextmenu/contextmenu.module.js +28 -28
  180. package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +7 -7
  181. package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -7
  182. package/esm2015/controls/contextmenu/contextmenuanchor.js +30 -30
  183. package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -7
  184. package/esm2015/controls/contextmenu/contextmenucontainer.js +30 -30
  185. package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -7
  186. package/esm2015/controls/contextmenu/contextmenuitembutton.js +42 -42
  187. package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -7
  188. package/esm2015/controls/contextmenu/contextmenuitemsplitter.js +20 -20
  189. package/esm2015/controls/contextmenu/contextmenuitemsplitter.ngfactory.js +7 -7
  190. package/esm2015/controls/datetime/date.js +49 -49
  191. package/esm2015/controls/datetime/date.ngfactory.js +7 -7
  192. package/esm2015/controls/datetime/dateselector.js +11 -11
  193. package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -7
  194. package/esm2015/controls/datetime/datetime.js +43 -43
  195. package/esm2015/controls/datetime/datetime.module.js +34 -34
  196. package/esm2015/controls/datetime/datetime.module.ngfactory.js +7 -7
  197. package/esm2015/controls/datetime/datetime.ngfactory.js +7 -7
  198. package/esm2015/controls/datetime/time.js +43 -43
  199. package/esm2015/controls/datetime/time.ngfactory.js +7 -7
  200. package/esm2015/controls/dialog/dialog.js +51 -51
  201. package/esm2015/controls/dialog/dialog.module.js +15 -15
  202. package/esm2015/controls/dialog/dialog.module.ngfactory.js +7 -7
  203. package/esm2015/controls/dialog/dialog.ngfactory.js +7 -7
  204. package/esm2015/controls/form/form.js +49 -49
  205. package/esm2015/controls/form/form.module.js +15 -15
  206. package/esm2015/controls/form/form.module.ngfactory.js +7 -7
  207. package/esm2015/controls/form/form.ngfactory.js +7 -7
  208. package/esm2015/controls/form/inheritform.directive.js +57 -57
  209. package/esm2015/controls/form/inheritform.directive.ngfactory.js +7 -7
  210. package/esm2015/controls/grid/grid.js +24 -24
  211. package/esm2015/controls/grid/grid.module.js +33 -33
  212. package/esm2015/controls/grid/grid.module.ngfactory.js +7 -7
  213. package/esm2015/controls/grid/grid.ngfactory.js +7 -7
  214. package/esm2015/controls/grid/gridbutton.js +39 -39
  215. package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -7
  216. package/esm2015/controls/grid/gridcolumn.js +26 -26
  217. package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -7
  218. package/esm2015/controls/grid/gridcolumnaction.js +27 -27
  219. package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -7
  220. package/esm2015/controls/grid/gridimage.js +21 -21
  221. package/esm2015/controls/grid/gridimage.ngfactory.js +7 -7
  222. package/esm2015/controls/grid/paging.js +24 -24
  223. package/esm2015/controls/grid/paging.ngfactory.js +7 -7
  224. package/esm2015/controls/input/input.js +35 -35
  225. package/esm2015/controls/input/input.module.js +47 -47
  226. package/esm2015/controls/input/input.module.ngfactory.js +7 -7
  227. package/esm2015/controls/input/input.ngfactory.js +7 -7
  228. package/esm2015/controls/input/inputarea.js +51 -51
  229. package/esm2015/controls/input/inputarea.ngfactory.js +7 -7
  230. package/esm2015/controls/input/inputcurrency.js +39 -39
  231. package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -7
  232. package/esm2015/controls/input/inputdecimal.js +39 -39
  233. package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -7
  234. package/esm2015/controls/input/inputemail.js +39 -39
  235. package/esm2015/controls/input/inputemail.ngfactory.js +7 -7
  236. package/esm2015/controls/input/inputinteger.js +39 -39
  237. package/esm2015/controls/input/inputinteger.ngfactory.js +7 -7
  238. package/esm2015/controls/input/inputpassword.js +39 -39
  239. package/esm2015/controls/input/inputpassword.ngfactory.js +7 -7
  240. package/esm2015/controls/input/inputsearch.js +39 -39
  241. package/esm2015/controls/input/inputsearch.ngfactory.js +7 -7
  242. package/esm2015/controls/layout/formlayout.directive.js +10 -10
  243. package/esm2015/controls/layout/formlayout.directive.ngfactory.js +7 -7
  244. package/esm2015/controls/layout/layout.module.js +29 -29
  245. package/esm2015/controls/layout/layout.module.ngfactory.js +7 -7
  246. package/esm2015/controls/layout/tocontrolheight.pipe.js +29 -29
  247. package/esm2015/controls/layout/tocontrolheight.pipe.ngfactory.js +7 -7
  248. package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +47 -47
  249. package/esm2015/controls/layout/tocontrolwidthcss.pipe.ngfactory.js +7 -7
  250. package/esm2015/controls/layout/tolabelheight.pipe.js +29 -29
  251. package/esm2015/controls/layout/tolabelheight.pipe.ngfactory.js +7 -7
  252. package/esm2015/controls/layout/tolabelwidthcss.pipe.js +31 -31
  253. package/esm2015/controls/layout/tolabelwidthcss.pipe.ngfactory.js +7 -7
  254. package/esm2015/controls/list/dropdown.js +65 -65
  255. package/esm2015/controls/list/dropdown.ngfactory.js +7 -7
  256. package/esm2015/controls/list/list.module.js +32 -32
  257. package/esm2015/controls/list/list.module.ngfactory.js +7 -7
  258. package/esm2015/controls/list/listbox.js +41 -41
  259. package/esm2015/controls/list/listbox.ngfactory.js +7 -7
  260. package/esm2015/controls/static/formcontainer.js +53 -53
  261. package/esm2015/controls/static/formcontainer.ngfactory.js +7 -7
  262. package/esm2015/controls/static/staticlabel.js +39 -39
  263. package/esm2015/controls/static/staticlabel.module.js +20 -20
  264. package/esm2015/controls/static/staticlabel.module.ngfactory.js +7 -7
  265. package/esm2015/controls/static/staticlabel.ngfactory.js +7 -7
  266. package/esm2015/controls/tabs/tab.js +18 -18
  267. package/esm2015/controls/tabs/tab.ngfactory.js +7 -7
  268. package/esm2015/controls/tabs/tabitem.js +11 -11
  269. package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -7
  270. package/esm2015/controls/tabs/tabs.module.js +16 -16
  271. package/esm2015/controls/tabs/tabs.module.ngfactory.js +7 -7
  272. package/esm2015/controls/tinymce/tinymce.js +50 -50
  273. package/esm2015/controls/tinymce/tinymce.module.js +27 -27
  274. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +7 -7
  275. package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -7
  276. package/esm2015/controls/tooltip/tooltip.js +52 -52
  277. package/esm2015/controls/tooltip/tooltip.module.js +13 -13
  278. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -7
  279. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -7
  280. package/esm2015/controls/treeview/treeview.js +41 -41
  281. package/esm2015/controls/treeview/treeview.module.js +16 -16
  282. package/esm2015/controls/treeview/treeview.module.ngfactory.js +7 -7
  283. package/esm2015/controls/treeview/treeview.ngfactory.js +7 -7
  284. package/esm2015/controls/upload/dropzonemultiple.js +55 -55
  285. package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -7
  286. package/esm2015/controls/upload/dropzonesingle.js +55 -55
  287. package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -7
  288. package/esm2015/controls/upload/upload.js +44 -44
  289. package/esm2015/controls/upload/upload.module.js +24 -24
  290. package/esm2015/controls/upload/upload.module.ngfactory.js +7 -7
  291. package/esm2015/controls/upload/upload.ngfactory.js +7 -7
  292. package/esm2015/controls/upload/upload.scss.ngstyle.js +7 -7
  293. package/esm2015/controls/upload/upload.scss.shim.ngstyle.js +7 -7
  294. package/esm2015/controls/upload/uploadmultiple.js +44 -44
  295. package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -7
  296. package/esm2015/controls/validation/validationsummary.js +34 -34
  297. package/esm2015/controls/validation/validationsummary.module.js +15 -15
  298. package/esm2015/controls/validation/validationsummary.module.ngfactory.js +7 -7
  299. package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -7
  300. package/esm2015/controls/wizard/wizard.js +23 -23
  301. package/esm2015/controls/wizard/wizard.module.js +16 -16
  302. package/esm2015/controls/wizard/wizard.module.ngfactory.js +7 -7
  303. package/esm2015/controls/wizard/wizard.ngfactory.js +7 -7
  304. package/esm2015/controls/wizard/wizarditem.js +11 -11
  305. package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -7
  306. package/esm2015/public_api.js +76 -76
  307. package/esm2015/public_api.ngfactory.js +7 -7
  308. package/esm2015/simpleangularcontrols-sac-bootstrap3.js +6 -6
  309. package/esm2015/simpleangularcontrols-sac-bootstrap3.ngfactory.js +7 -7
  310. package/fesm2015/simpleangularcontrols-sac-bootstrap3.js +2098 -2098
  311. package/fesm2015/simpleangularcontrols-sac-bootstrap3.js.map +1 -1
  312. package/package.json +31 -31
  313. package/public_api.d.ts +70 -70
  314. package/public_api.ngfactory.d.ts +1 -1
  315. package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.22.tgz +0 -0
  316. package/simpleangularcontrols-sac-bootstrap3.d.ts +5 -5
  317. package/simpleangularcontrols-sac-bootstrap3.metadata.json +1 -1
  318. package/simpleangularcontrols-sac-bootstrap3.ngfactory.d.ts +1 -1
  319. package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.20.tgz +0 -0
@@ -1,34 +1,34 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { IMaskModule } from 'angular-imask';
4
- import { SACBootstrap3LayoutModule } from '../layout/layout.module';
5
- import { SACBootstrap3TooltipModule } from '../tooltip/tooltip.module';
6
- import { SacDateComponent } from './date';
7
- import { SacDateSelectorComponent } from './dateselector';
8
- import { SacDateTimeComponent } from './datetime';
9
- import { SacTimeComponent } from './time';
10
- export class SACBootstrap3DateTimeModule {
11
- }
12
- SACBootstrap3DateTimeModule.decorators = [
13
- { type: NgModule, args: [{
14
- declarations: [
15
- SacDateComponent,
16
- SacDateTimeComponent,
17
- SacTimeComponent,
18
- SacDateSelectorComponent,
19
- ],
20
- imports: [
21
- CommonModule,
22
- IMaskModule,
23
- SACBootstrap3LayoutModule,
24
- SACBootstrap3TooltipModule,
25
- ],
26
- exports: [
27
- SacDateComponent,
28
- SacDateTimeComponent,
29
- SacTimeComponent,
30
- SacDateSelectorComponent,
31
- ],
32
- },] }
33
- ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS9kYXRldGltZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQXNCMUMsTUFBTSxPQUFPLDJCQUEyQjs7O1lBcEJ2QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLHdCQUF3QjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCx5QkFBeUI7b0JBQ3pCLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLHdCQUF3QjtpQkFDekI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDNMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDNUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNhY0RhdGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUnO1xyXG5pbXBvcnQgeyBTYWNEYXRlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2RhdGVzZWxlY3Rvcic7XHJcbmltcG9ydCB7IFNhY0RhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZSc7XHJcbmltcG9ydCB7IFNhY1RpbWVDb21wb25lbnQgfSBmcm9tICcuL3RpbWUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNhY0RhdGVDb21wb25lbnQsXHJcbiAgICBTYWNEYXRlVGltZUNvbXBvbmVudCxcclxuICAgIFNhY1RpbWVDb21wb25lbnQsXHJcbiAgICBTYWNEYXRlU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJTWFza01vZHVsZSxcclxuICAgIFNBQ0Jvb3RzdHJhcDNMYXlvdXRNb2R1bGUsXHJcbiAgICBTQUNCb290c3RyYXAzVG9vbHRpcE1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNhY0RhdGVDb21wb25lbnQsXHJcbiAgICBTYWNEYXRlVGltZUNvbXBvbmVudCxcclxuICAgIFNhY1RpbWVDb21wb25lbnQsXHJcbiAgICBTYWNEYXRlU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDNEYXRlVGltZU1vZHVsZSB7fVxyXG4iXX0=
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { IMaskModule } from 'angular-imask';
4
+ import { SACBootstrap3LayoutModule } from '../layout/layout.module';
5
+ import { SACBootstrap3TooltipModule } from '../tooltip/tooltip.module';
6
+ import { SacDateComponent } from './date';
7
+ import { SacDateSelectorComponent } from './dateselector';
8
+ import { SacDateTimeComponent } from './datetime';
9
+ import { SacTimeComponent } from './time';
10
+ export class SACBootstrap3DateTimeModule {
11
+ }
12
+ SACBootstrap3DateTimeModule.decorators = [
13
+ { type: NgModule, args: [{
14
+ declarations: [
15
+ SacDateComponent,
16
+ SacDateTimeComponent,
17
+ SacTimeComponent,
18
+ SacDateSelectorComponent,
19
+ ],
20
+ imports: [
21
+ CommonModule,
22
+ IMaskModule,
23
+ SACBootstrap3LayoutModule,
24
+ SACBootstrap3TooltipModule,
25
+ ],
26
+ exports: [
27
+ SacDateComponent,
28
+ SacDateTimeComponent,
29
+ SacTimeComponent,
30
+ SacDateSelectorComponent,
31
+ ],
32
+ },] }
33
+ ];
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RhdGV0aW1lL2RhdGV0aW1lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBc0IxQyxNQUFNLE9BQU8sMkJBQTJCOzs7WUFwQnZDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLHlCQUF5QjtvQkFDekIsMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFza01vZHVsZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHsgU0FDQm9vdHN0cmFwM0xheW91dE1vZHVsZSB9IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDNUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBTYWNEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlJztcbmltcG9ydCB7IFNhY0RhdGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXNlbGVjdG9yJztcbmltcG9ydCB7IFNhY0RhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZSc7XG5pbXBvcnQgeyBTYWNUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2FjRGF0ZUNvbXBvbmVudCxcbiAgICBTYWNEYXRlVGltZUNvbXBvbmVudCxcbiAgICBTYWNUaW1lQ29tcG9uZW50LFxuICAgIFNhY0RhdGVTZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJTWFza01vZHVsZSxcbiAgICBTQUNCb290c3RyYXAzTGF5b3V0TW9kdWxlLFxuICAgIFNBQ0Jvb3RzdHJhcDNUb29sdGlwTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2FjRGF0ZUNvbXBvbmVudCxcbiAgICBTYWNEYXRlVGltZUNvbXBvbmVudCxcbiAgICBTYWNUaW1lQ29tcG9uZW50LFxuICAgIFNhY0RhdGVTZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwM0RhdGVUaW1lTW9kdWxlIHt9XG4iXX0=
@@ -1,7 +1,7 @@
1
- /**
2
- * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
- *
4
- * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
- * tslint:disable
6
- */
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGF0ZXRpbWUvZGF0ZXRpbWUubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2RhdGV0aW1lLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgKiBhcyBpNCBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwJztcbmltcG9ydCAqIGFzIGk2IGZyb20gJy4vZGF0ZSc7XG5pbXBvcnQgKiBhcyBpNyBmcm9tICcuL2RhdGV0aW1lJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJy4vdGltZSc7XG5pbXBvcnQgKiBhcyBpOSBmcm9tICcuL2RhdGVzZWxlY3Rvcic7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgU0FDQm9vdHN0cmFwM0RhdGVUaW1lTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5TQUNCb290c3RyYXAzRGF0ZVRpbWVNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5JTWFza0RpcmVjdGl2ZTxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuU2FjVG9vbHRpcENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5TYWNEYXRlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1Omk3LlNhY0RhdGVUaW1lQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2Omk4LlNhY1RpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTkuU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkyLkFzeW5jUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkyLkxvd2VyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTIuSnNvblBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkyLkRlY2ltYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkyLlBlcmNlbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI1OmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTIuQ3VycmVuY3lQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkyLkRhdGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkyLkkxOG5TZWxlY3RQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkyLktleVZhbHVlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMy5JTWFza1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTEwLlNhY1RvQ29udHJvbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTExLlNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNDppMTIuU2FjVG9MYWJlbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTEzLlNhY1RvTGFiZWxXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzY6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM3OmkzLklNYXNrTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM4OmkxNC5TQUNCb290c3RyYXAzTGF5b3V0TW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM5OmkxNS5TQUNCb290c3RyYXAzVG9vbHRpcE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZUNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBwZF8wOmFueSA9ICgoPGFueT5fZGVjbDBfMTQub25DbGljayhfYW55LnRhcmdldCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTQuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE0LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNC5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC14cy0xMiBjb250cm9sLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzM1LnRyYW5zZm9ybShfZGVjbDBfMTQubGFiZWxTaXplcyk6ICdzci1vbmx5JyldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNC5uYW1lLCdsYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNC5uYW1lLCcnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNC5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE0LmxhYmVsO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfMygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfNCgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE0LmludmFsaWQpICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xOC50cmFuc2Zvcm0oX2RlY2wwXzE0LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV82KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE0Ll9zaG93c2VsZWN0b3IgJiYgX2RlY2wwXzE0Ll9zaG93c2VsZWN0b3IpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3RydWUnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzE0LnZhbHVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBwZF8yOmFueSA9ICgoPGFueT5fZGVjbDBfMTQuZGF0ZXNlbGVjdChfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZUNvbXBvbmVudF8xXzUoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNC5fc2hvd3NlbGVjdG9yKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTQuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTQuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkgfHwgKF9kZWNsMF8xNC5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNC5Ub29sdGlwUG9zaXRpb24uYm90dG9tZW5kKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8xNC5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNC5Ub29sdGlwUG9zaXRpb24udG9wKSB8fCAoX2RlY2wwXzE0LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE0LlRvb2x0aXBQb3NpdGlvbi50b3BlbmQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNC5wb3NQb3B1cExlZnQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTQucG9zUG9wdXBUb3A7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTQucG9zQXJyb3dUb3A7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTQucG9zQXJyb3dMZWZ0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzE0Ll9zaG93c2VsZWN0b3I7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfOCgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKSAmJiAoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE0LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfNygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JvdyBmb3JtLWdyb3VwJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM0LnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xNC5pbnZhbGlkICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKChfZGVjbDBfMTQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gWygoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzMudHJhbnNmb3JtKF9kZWNsMF8xNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTQuQ29udHJvbEhlaWdodC5TbWFsbCk/IDEyMDogKChfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTQuQ29udHJvbEhlaWdodC5MYXJnZSk/IDE4MDogMTQwKSk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTQuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IChfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAnZm9ybS1jb250cm9sIGRhdGUtY29udHJvbCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzE0LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xNC5pbWFza0RhdGU7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNC5uYW1lLCcnKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJycpO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMTQuaW52YWxpZCAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gX2RlY2wwXzE0LnBsYWNlaG9sZGVyO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8xNC52YWx1ZXN0cmluZztcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSBfZGVjbDBfMTQuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSBfZGVjbDBfMTQuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSBfZGVjbDBfMTQuSWNvblNlbGVjdG9yO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoX2RlY2wwXzE0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzE0Ll9zaG93c2VsZWN0b3I7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9oYW5kbGVJbnB1dChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEub25Ub3VjaGVkKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2NvbXBvc2l0aW9uU3RhcnQoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5fY29tcG9zaXRpb25FbmQoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yOTphbnkgPSAoKDxhbnk+X2RlY2wwXzE0Lm9uVG91Y2goKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5zZXRWYWx1ZVN0cmluZyhfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzE6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5zaG93RGF0ZVNlbGVjdG9yKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMyOmFueSA9ICgoPGFueT5fZGVjbDBfMTQuc2hvd0RhdGVTZWxlY3RvcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgcGRfMDphbnkgPSAoKDxhbnk+X2RlY2wwXzE1Lm9uQ2xpY2soX2FueS50YXJnZXQpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMTUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNS5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTUuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVUaW1lQ29tcG9uZW50XzJfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNS5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC14cy0xMiBjb250cm9sLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzM1LnRyYW5zZm9ybShfZGVjbDBfMTUubGFiZWxTaXplcyk6ICdzci1vbmx5JyldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNS5uYW1lLCdsYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNS5uYW1lLCcnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNS5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE1LmxhYmVsO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzMoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTUuaW52YWxpZCkgJiYgKF9kZWNsMF8xNS5kaXJ0eSB8fCBfZGVjbDBfMTUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE4LnRyYW5zZm9ybShfZGVjbDBfMTUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl82KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE1Ll9zaG93c2VsZWN0b3IgJiYgX2RlY2wwXzE1Ll9zaG93c2VsZWN0b3IpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3RydWUnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ3RydWUnO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE1LnZhbHVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMTUuZGF0ZXNlbGVjdChfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTUuX3Nob3dzZWxlY3Rvcikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzE1LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE1LlRvb2x0aXBQb3NpdGlvbi5ib3R0b20pIHx8IChfZGVjbDBfMTUuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTUuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMTUuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTUuVG9vbHRpcFBvc2l0aW9uLnRvcCkgfHwgKF9kZWNsMF8xNS5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNS5Ub29sdGlwUG9zaXRpb24udG9wZW5kKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTUucG9zUG9wdXBMZWZ0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzE1LnBvc1BvcHVwVG9wO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzE1LnBvc0Fycm93VG9wO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE1LnBvc0Fycm93TGVmdDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xNS5fc2hvd3NlbGVjdG9yO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl84KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpICYmIF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTUuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVUaW1lQ29tcG9uZW50XzJfNygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpICYmIF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdyb3cgZm9ybS1ncm91cCc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNC50cmFuc2Zvcm0oX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTUuaW52YWxpZCAmJiAoX2RlY2wwXzE1LmRpcnR5IHx8IF9kZWNsMF8xNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICgoX2RlY2wwXzE1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTUuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ2NvbC14cy0xMic7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IFsoKF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzMzLnRyYW5zZm9ybShfZGVjbDBfMTUubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkgJiYgX2RlY2wwXzE1LmRpc2FibGVsYWJlbCk/ICdmbGV4JzogbnVsbCk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE1LkNvbnRyb2xIZWlnaHQuU21hbGwpPyAxNjA6ICgoX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpPyAyMzA6IDE4MCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gJ2Zvcm0tY29udHJvbCBkYXRlLWNvbnRyb2wnO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IFtfZGVjbDBfMzIudHJhbnNmb3JtKF9kZWNsMF8xNS5jb21wb25lbnRIZWlnaHQpXTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBfZGVjbDBfMTUuaW1hc2tEYXRlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTUubmFtZSwnJyk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNS5uYW1lLCcnKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSAoX2RlY2wwXzE1LmludmFsaWQgJiYgKF9kZWNsMF8xNS5kaXJ0eSB8fCBfZGVjbDBfMTUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8xNS5wbGFjZWhvbGRlcjtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMTUudmFsdWVzdHJpbmc7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gX2RlY2wwXzE1LmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gX2RlY2wwXzE1LmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTk7XG4gIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gX2RlY2wwXzE1Lkljb25TZWxlY3RvcjtcbiAgY3VyclZhbF8yMDtcbiAgY29uc3QgY3VyclZhbF8yMTphbnkgPSAoKF9kZWNsMF8xNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzE1LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yMTtcbiAgY29uc3QgY3VyclZhbF8yMjphbnkgPSAoKF9kZWNsMF8xNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTUuaW52YWxpZCkgJiYgKF9kZWNsMF8xNS5kaXJ0eSB8fCBfZGVjbDBfMTUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IF9kZWNsMF8xNS5fc2hvd3NlbGVjdG9yO1xuICBjdXJyVmFsXzIzO1xuICBjb25zdCBjdXJyVmFsXzI0OmFueSA9ICgoKF9kZWNsMF8xNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTUuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8yNDtcbiAgY29uc3QgcGRfMjU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5faGFuZGxlSW5wdXQoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNjphbnkgPSAoKDxhbnk+X2RlY2wwXzExLm9uVG91Y2hlZCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9jb21wb3NpdGlvblN0YXJ0KCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI4OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2NvbXBvc2l0aW9uRW5kKF9hbnkudGFyZ2V0LnZhbHVlKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjk6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5vblRvdWNoKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMwOmFueSA9ICgoPGFueT5fZGVjbDBfMTUuc2V0VmFsdWVTdHJpbmcoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMxOmFueSA9ICgoPGFueT5fZGVjbDBfMTUuc2hvd0RhdGVTZWxlY3RvcigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMjphbnkgPSAoKDxhbnk+X2RlY2wwXzE1LnNob3dEYXRlU2VsZWN0b3IoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RpbWVDb21wb25lbnRfSG9zdF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgcGRfMDphbnkgPSAoKDxhbnk+X2RlY2wwXzE2Lm9uQ2xpY2soX2FueS50YXJnZXQpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8xNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzE2LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNi5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTYuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMTYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zNS50cmFuc2Zvcm0oX2RlY2wwXzE2LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTYubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTYubmFtZSwnJyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTYuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNi5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzMoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzE2LmRpcnR5IHx8IF9kZWNsMF8xNi50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTgudHJhbnNmb3JtKF9kZWNsMF8xNi5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfNigpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8xNi5fc2hvd3NlbGVjdG9yICYmIF9kZWNsMF8xNi5fc2hvd3NlbGVjdG9yKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICd0cnVlJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xNi52YWx1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzE2LnRpbWVzZWxlY3QoX2FueSkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RpbWVDb21wb25lbnRfM181KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTYuX3Nob3dzZWxlY3Rvcikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzE2LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE2LlRvb2x0aXBQb3NpdGlvbi5ib3R0b20pIHx8IChfZGVjbDBfMTYuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTYuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMTYuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTYuVG9vbHRpcFBvc2l0aW9uLnRvcCkgfHwgKF9kZWNsMF8xNi5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNi5Ub29sdGlwUG9zaXRpb24udG9wZW5kKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTYucG9zUG9wdXBMZWZ0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzE2LnBvc1BvcHVwVG9wO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzE2LnBvc0Fycm93VG9wO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE2LnBvc0Fycm93TGVmdDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xNi5fc2hvd3NlbGVjdG9yO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzgoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCkgJiYgX2RlY2wwXzE2LmRpc2FibGVsYWJlbCkgJiYgKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNi5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzcoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTYuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdyb3cgZm9ybS1ncm91cCc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNC50cmFuc2Zvcm0oX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTYuaW52YWxpZCAmJiAoX2RlY2wwXzE2LmRpcnR5IHx8IF9kZWNsMF8xNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICgoX2RlY2wwXzE2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTYuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ2NvbC14cy0xMic7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IFsoKF9kZWNsMF8xNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzMzLnRyYW5zZm9ybShfZGVjbDBfMTYubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCkgJiYgX2RlY2wwXzE2LmRpc2FibGVsYWJlbCk/ICdmbGV4JzogbnVsbCk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE2LkNvbnRyb2xIZWlnaHQuU21hbGwpPyAxMjA6ICgoX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE2LkNvbnRyb2xIZWlnaHQuTGFyZ2UpPyAxNjA6IDE0MCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE2LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE2LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gJ2Zvcm0tY29udHJvbCB0aW1lLWNvbnRyb2wnO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IFtfZGVjbDBfMzIudHJhbnNmb3JtKF9kZWNsMF8xNi5jb21wb25lbnRIZWlnaHQpXTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBfZGVjbDBfMTYuaW1hc2tEYXRlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTYubmFtZSwnJyk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNi5uYW1lLCcnKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSAoX2RlY2wwXzE2LmludmFsaWQgJiYgKF9kZWNsMF8xNi5kaXJ0eSB8fCBfZGVjbDBfMTYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8xNi5wbGFjZWhvbGRlcjtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMTYudmFsdWVzdHJpbmc7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gX2RlY2wwXzE2LmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gX2RlY2wwXzE2LmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfMTk7XG4gIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gX2RlY2wwXzE2Lkljb25TZWxlY3RvcjtcbiAgY3VyclZhbF8yMDtcbiAgY29uc3QgY3VyclZhbF8yMTphbnkgPSAoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yMTtcbiAgY29uc3QgY3VyclZhbF8yMjphbnkgPSAoKF9kZWNsMF8xNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTYuaW52YWxpZCkgJiYgKF9kZWNsMF8xNi5kaXJ0eSB8fCBfZGVjbDBfMTYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IF9kZWNsMF8xNi5fc2hvd3NlbGVjdG9yO1xuICBjdXJyVmFsXzIzO1xuICBjb25zdCBjdXJyVmFsXzI0OmFueSA9ICgoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTYuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8yNDtcbiAgY29uc3QgcGRfMjU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5faGFuZGxlSW5wdXQoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNjphbnkgPSAoKDxhbnk+X2RlY2wwXzExLm9uVG91Y2hlZCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9jb21wb3NpdGlvblN0YXJ0KCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI4OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2NvbXBvc2l0aW9uRW5kKF9hbnkudGFyZ2V0LnZhbHVlKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjk6YW55ID0gKCg8YW55Pl9kZWNsMF8xNi5vblRvdWNoKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMwOmFueSA9ICgoPGFueT5fZGVjbDBfMTYuc2V0VmFsdWVTdHJpbmcoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMxOmFueSA9ICgoPGFueT5fZGVjbDBfMTYuc2hvd1RpbWVTZWxlY3RvcigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMjphbnkgPSAoKDxhbnk+X2RlY2wwXzE2LnNob3dUaW1lU2VsZWN0b3IoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVTZWxlY3RvckNvbXBvbmVudF9Ib3N0XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LmRhdGVzZWxlY3Rpb24pIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAndGV4dC1jZW50ZXInO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0geydkYXktY3VycmVudCc6X2FueS5pc2N1cnJlbnQsJ2RheS1zZWxlY3RlZCc6X2FueS5pc3NlbGVjdGVkLFxuICAgICAgICAnZGF5LW5ldyc6X2FueS5pc25ldywnZGF5LWRpc2FibGVkJzohX2FueS5pc2VuYWJsZWR9O1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0geydjdXJzb3InOihfYW55LmlzZW5hYmxlZD8gJ3BvaW50ZXInOiBudWxsKX07XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LmRpc3BsYXl0ZXh0O1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMTcuc2VsZWN0RGF0ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50XzRfMigpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LmRhdGVzZWxlY3Rpb24pIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfYW55O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50XzRfMSgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LmRhdGVzZWxlY3Rpb24pIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuaWNvbk1vbnRoUHJldjtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTcubW9udGggKyAxKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNy55ZWFyO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzE3Lmljb25Nb250aE5leHQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTcuZGF0ZXM7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5tb250aEJhY2soKSkgIT09IGZhbHNlKTtcbiAgICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTcubW9udGhOZXh0KCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVTZWxlY3RvckNvbXBvbmVudF80XzQoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNy50aW1lc2VsZWN0aW9uKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmdldEhvdXJzKCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTcuZ2V0TWludXRlcygpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBwZF8yOmFueSA9ICgoPGFueT5fZGVjbDBfMTcuc2V0SG91cnMoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRNaW51dGVzKF9hbnkudGFyZ2V0LnZhbHVlKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE3LmRhdGVzZWxlY3Rpb247XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xNy50aW1lc2VsZWN0aW9uO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IHBkXzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRUb2RheSgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMTcucmVzZXRTZWxlY3Rpb24oKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfNDphbnkgPSAoKDxhbnk+X2RlY2wwXzE3LmFwcGx5U2VsZWN0aW9uKCkpICE9PSBmYWxzZSk7XG59XG4iXX0=
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS9kYXRldGltZS5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vZGF0ZXRpbWUubW9kdWxlJztcbmltcG9ydCAqIGFzIGkyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBpMyBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi9kYXRlJztcbmltcG9ydCAqIGFzIGk3IGZyb20gJy4vZGF0ZXRpbWUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi90aW1lJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4vZGF0ZXNlbGVjdG9yJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXAzRGF0ZVRpbWVNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDNEYXRlVGltZU1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLklNYXNrRGlyZWN0aXZlPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTQuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppNS5TYWNUb29sdGlwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0Omk2LlNhY0RhdGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuU2FjRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTguU2FjVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNzppOS5TYWNEYXRlU2VsZWN0b3JDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkzLklNYXNrUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMjppMTAuU2FjVG9Db250cm9sSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMTEuU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0OmkxMi5TYWNUb0xhYmVsSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNTppMTMuU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTMuSU1hc2tNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTE0LlNBQ0Jvb3RzdHJhcDNMYXlvdXRNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTE1LlNBQ0Jvb3RzdHJhcDNUb29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50X0hvc3RfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IHBkXzA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5vbkNsaWNrKF9hbnkudGFyZ2V0KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMTQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNC5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzE0LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLXhzLTEyIGNvbnRyb2wtbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzUudHJhbnNmb3JtKF9kZWNsMF8xNC5sYWJlbFNpemVzKTogJ3NyLW9ubHknKV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJ2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzE0LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTQubGFiZWw7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV8zKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTQuaW52YWxpZCkgJiYgKF9kZWNsMF8xNC5kaXJ0eSB8fCBfZGVjbDBfMTQudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE4LnRyYW5zZm9ybShfZGVjbDBfMTQuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZUNvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTQuX3Nob3dzZWxlY3RvciAmJiBfZGVjbDBfMTQuX3Nob3dzZWxlY3RvcikpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAndHJ1ZSc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTQudmFsdWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IHBkXzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5kYXRlc2VsZWN0KF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlQ29tcG9uZW50XzFfNSgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE0Ll9zaG93c2VsZWN0b3IpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xNC5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNC5Ub29sdGlwUG9zaXRpb24uYm90dG9tKSB8fCAoX2RlY2wwXzE0LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE0LlRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICgoX2RlY2wwXzE0LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE0LlRvb2x0aXBQb3NpdGlvbi50b3ApIHx8IChfZGVjbDBfMTQuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTQuVG9vbHRpcFBvc2l0aW9uLnRvcGVuZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE0LnBvc1BvcHVwTGVmdDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xNC5wb3NQb3B1cFRvcDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNC5wb3NBcnJvd1RvcDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNC5wb3NBcnJvd0xlZnQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTQuX3Nob3dzZWxlY3RvcjtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV84KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV83KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzE0LmRpc2FibGVsYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVDb21wb25lbnRfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAncm93IGZvcm0tZ3JvdXAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzQudHJhbnNmb3JtKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzE0LmludmFsaWQgJiYgKF9kZWNsMF8xNC5kaXJ0eSB8fCBfZGVjbDBfMTQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoKF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzE0LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9ICdjb2wteHMtMTInO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBbKChfZGVjbDBfMTQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zMy50cmFuc2Zvcm0oX2RlY2wwXzE0LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpPyAnZmxleCc6IG51bGwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xNC5Db250cm9sSGVpZ2h0LlNtYWxsKT8gMTIwOiAoKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xNC5Db250cm9sSGVpZ2h0LkxhcmdlKT8gMTgwOiAxNDApKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xNC5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xNC5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICdmb3JtLWNvbnRyb2wgZGF0ZS1jb250cm9sJztcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSBbX2RlY2wwXzMyLnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KV07XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzE0LmltYXNrRGF0ZTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJycpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQubmFtZSwnJyk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKF9kZWNsMF8xNC5pbnZhbGlkICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSBfZGVjbDBfMTQucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gX2RlY2wwXzE0LnZhbHVlc3RyaW5nO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8xNC5pc2Rpc2FibGVkO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8xNC5pc2Rpc2FibGVkO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8xNC5JY29uU2VsZWN0b3I7XG4gIGN1cnJWYWxfMjA7XG4gIGNvbnN0IGN1cnJWYWxfMjE6YW55ID0gKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gKChfZGVjbDBfMTQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE0LmludmFsaWQpICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yMjtcbiAgY29uc3QgY3VyclZhbF8yMzphbnkgPSBfZGVjbDBfMTQuX3Nob3dzZWxlY3RvcjtcbiAgY3VyclZhbF8yMztcbiAgY29uc3QgY3VyclZhbF8yNDphbnkgPSAoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzE0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IHBkXzI1OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2hhbmRsZUlucHV0KF9hbnkudGFyZ2V0LnZhbHVlKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjY6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5vblRvdWNoZWQoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjc6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5fY29tcG9zaXRpb25TdGFydCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yODphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9jb21wb3NpdGlvbkVuZChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI5OmFueSA9ICgoPGFueT5fZGVjbDBfMTQub25Ub3VjaCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMDphbnkgPSAoKDxhbnk+X2RlY2wwXzE0LnNldFZhbHVlU3RyaW5nKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMTphbnkgPSAoKDxhbnk+X2RlY2wwXzE0LnNob3dEYXRlU2VsZWN0b3IoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5zaG93RGF0ZVNlbGVjdG9yKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF9Ib3N0XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBwZF8wOmFueSA9ICgoPGFueT5fZGVjbDBfMTUub25DbGljayhfYW55LnRhcmdldCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzE1LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzE1LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLXhzLTEyIGNvbnRyb2wtbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzE1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzUudHJhbnNmb3JtKF9kZWNsMF8xNS5sYWJlbFNpemVzKTogJ3NyLW9ubHknKV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE1Lm5hbWUsJ2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE1Lm5hbWUsJycpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzE1LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTUubGFiZWw7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE1LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVUaW1lQ29tcG9uZW50XzJfMygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTUuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzE1LmRpcnR5IHx8IF9kZWNsMF8xNS50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTgudHJhbnNmb3JtKF9kZWNsMF8xNS5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTUuX3Nob3dzZWxlY3RvciAmJiBfZGVjbDBfMTUuX3Nob3dzZWxlY3RvcikpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAndHJ1ZSc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAndHJ1ZSc7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTUudmFsdWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5kYXRlc2VsZWN0KF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzUoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNS5fc2hvd3NlbGVjdG9yKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTUuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTUuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkgfHwgKF9kZWNsMF8xNS5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNS5Ub29sdGlwUG9zaXRpb24uYm90dG9tZW5kKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8xNS5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNS5Ub29sdGlwUG9zaXRpb24udG9wKSB8fCAoX2RlY2wwXzE1LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE1LlRvb2x0aXBQb3NpdGlvbi50b3BlbmQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNS5wb3NQb3B1cExlZnQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTUucG9zUG9wdXBUb3A7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTUucG9zQXJyb3dUb3A7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTUucG9zQXJyb3dMZWZ0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzE1Ll9zaG93c2VsZWN0b3I7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlVGltZUNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkgJiYgX2RlY2wwXzE1LmRpc2FibGVsYWJlbCkgJiYgKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVRpbWVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMTUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNS5oZWxwdGV4dCkgJiYgX2RlY2wwXzE1LmRpc2FibGVsYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE1LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0RhdGVUaW1lQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JvdyBmb3JtLWdyb3VwJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM0LnRyYW5zZm9ybShfZGVjbDBfMTUuY29tcG9uZW50SGVpZ2h0KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xNS5pbnZhbGlkICYmIChfZGVjbDBfMTUuZGlydHkgfHwgX2RlY2wwXzE1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKChfZGVjbDBfMTUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNS5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gWygoX2RlY2wwXzE1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzMudHJhbnNmb3JtKF9kZWNsMF8xNS5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoKF9kZWNsMF8xNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTUuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMTUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTUuQ29udHJvbEhlaWdodC5TbWFsbCk/IDE2MDogKChfZGVjbDBfMTUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTUuQ29udHJvbEhlaWdodC5MYXJnZSk/IDIzMDogMTgwKSk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMTUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IChfZGVjbDBfMTUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAnZm9ybS1jb250cm9sIGRhdGUtY29udHJvbCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzE1LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xNS5pbWFza0RhdGU7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNS5uYW1lLCcnKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE1Lm5hbWUsJycpO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMTUuaW52YWxpZCAmJiAoX2RlY2wwXzE1LmRpcnR5IHx8IF9kZWNsMF8xNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gX2RlY2wwXzE1LnBsYWNlaG9sZGVyO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8xNS52YWx1ZXN0cmluZztcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSBfZGVjbDBfMTUuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSBfZGVjbDBfMTUuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSBfZGVjbDBfMTUuSWNvblNlbGVjdG9yO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoX2RlY2wwXzE1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzE1LmRpcnR5IHx8IF9kZWNsMF8xNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzE1Ll9zaG93c2VsZWN0b3I7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gKCgoX2RlY2wwXzE1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTUuaGVscHRleHQpICYmIF9kZWNsMF8xNS5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9oYW5kbGVJbnB1dChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEub25Ub3VjaGVkKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2NvbXBvc2l0aW9uU3RhcnQoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5fY29tcG9zaXRpb25FbmQoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yOTphbnkgPSAoKDxhbnk+X2RlY2wwXzE1Lm9uVG91Y2goKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5zZXRWYWx1ZVN0cmluZyhfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzE6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5zaG93RGF0ZVNlbGVjdG9yKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMyOmFueSA9ICgoPGFueT5fZGVjbDBfMTUuc2hvd0RhdGVTZWxlY3RvcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF9Ib3N0XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBwZF8wOmFueSA9ICgoPGFueT5fZGVjbDBfMTYub25DbGljayhfYW55LnRhcmdldCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMTYuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNi5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC14cy0xMiBjb250cm9sLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8xNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzM1LnRyYW5zZm9ybShfZGVjbDBfMTYubGFiZWxTaXplcyk6ICdzci1vbmx5JyldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNi5uYW1lLCdsYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNi5uYW1lLCcnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNi5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE2LmxhYmVsO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfMygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfNCgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE2LmludmFsaWQpICYmIChfZGVjbDBfMTYuZGlydHkgfHwgX2RlY2wwXzE2LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xOC50cmFuc2Zvcm0oX2RlY2wwXzE2LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1RpbWVDb21wb25lbnRfM182KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE2Ll9zaG93c2VsZWN0b3IgJiYgX2RlY2wwXzE2Ll9zaG93c2VsZWN0b3IpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3RydWUnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzE2LnZhbHVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBwZF8yOmFueSA9ICgoPGFueT5fZGVjbDBfMTYudGltZXNlbGVjdChfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVGltZUNvbXBvbmVudF8zXzUoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8xNi5fc2hvd3NlbGVjdG9yKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTYuR2V0UGlja2VyUG9zaXRpb24oKSA9PSBfZGVjbDBfMTYuVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkgfHwgKF9kZWNsMF8xNi5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNi5Ub29sdGlwUG9zaXRpb24uYm90dG9tZW5kKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8xNi5HZXRQaWNrZXJQb3NpdGlvbigpID09IF9kZWNsMF8xNi5Ub29sdGlwUG9zaXRpb24udG9wKSB8fCAoX2RlY2wwXzE2LkdldFBpY2tlclBvc2l0aW9uKCkgPT0gX2RlY2wwXzE2LlRvb2x0aXBQb3NpdGlvbi50b3BlbmQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNi5wb3NQb3B1cExlZnQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTYucG9zUG9wdXBUb3A7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTYucG9zQXJyb3dUb3A7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTYucG9zQXJyb3dMZWZ0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzE2Ll9zaG93c2VsZWN0b3I7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfOCgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTYuZGlzYWJsZWxhYmVsKSAmJiAoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfNygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpICYmIF9kZWNsMF8xNi5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNi5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNUaW1lQ29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JvdyBmb3JtLWdyb3VwJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM0LnRyYW5zZm9ybShfZGVjbDBfMTYuY29tcG9uZW50SGVpZ2h0KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xNi5pbnZhbGlkICYmIChfZGVjbDBfMTYuZGlydHkgfHwgX2RlY2wwXzE2LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKChfZGVjbDBfMTYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8xNi5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gWygoX2RlY2wwXzE2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzMudHJhbnNmb3JtKF9kZWNsMF8xNi5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoKF9kZWNsMF8xNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTYuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMTYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTYuQ29udHJvbEhlaWdodC5TbWFsbCk/IDEyMDogKChfZGVjbDBfMTYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTYuQ29udHJvbEhlaWdodC5MYXJnZSk/IDE2MDogMTQwKSk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMTYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTYuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IChfZGVjbDBfMTYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTYuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAnZm9ybS1jb250cm9sIHRpbWUtY29udHJvbCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzE2LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xNi5pbWFza0RhdGU7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNi5uYW1lLCcnKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE2Lm5hbWUsJycpO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMTYuaW52YWxpZCAmJiAoX2RlY2wwXzE2LmRpcnR5IHx8IF9kZWNsMF8xNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gX2RlY2wwXzE2LnBsYWNlaG9sZGVyO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8xNi52YWx1ZXN0cmluZztcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSBfZGVjbDBfMTYuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSBfZGVjbDBfMTYuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSBfZGVjbDBfMTYuSWNvblNlbGVjdG9yO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoX2RlY2wwXzE2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzE2LmRpcnR5IHx8IF9kZWNsMF8xNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzE2Ll9zaG93c2VsZWN0b3I7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gKCgoX2RlY2wwXzE2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTYuaGVscHRleHQpICYmIF9kZWNsMF8xNi5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzExLl9oYW5kbGVJbnB1dChfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEub25Ub3VjaGVkKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuX2NvbXBvc2l0aW9uU3RhcnQoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5fY29tcG9zaXRpb25FbmQoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yOTphbnkgPSAoKDxhbnk+X2RlY2wwXzE2Lm9uVG91Y2goKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNi5zZXRWYWx1ZVN0cmluZyhfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzE6YW55ID0gKCg8YW55Pl9kZWNsMF8xNi5zaG93VGltZVNlbGVjdG9yKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMyOmFueSA9ICgoPGFueT5fZGVjbDBfMTYuc2hvd1RpbWVTZWxlY3RvcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50X0hvc3RfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlU2VsZWN0b3JDb21wb25lbnRfNF8zKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTcuZGF0ZXNlbGVjdGlvbikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICd0ZXh0LWNlbnRlcic7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB7J2RheS1jdXJyZW50JzpfYW55LmlzY3VycmVudCwnZGF5LXNlbGVjdGVkJzpfYW55Lmlzc2VsZWN0ZWQsXG4gICAgICAgICdkYXktbmV3JzpfYW55LmlzbmV3LCdkYXktZGlzYWJsZWQnOiFfYW55LmlzZW5hYmxlZH07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSB7J2N1cnNvcic6KF9hbnkuaXNlbmFibGVkPyAncG9pbnRlcic6IG51bGwpfTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9hbnkuZGlzcGxheXRleHQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZWxlY3REYXRlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlU2VsZWN0b3JDb21wb25lbnRfNF8yKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTcuZGF0ZXNlbGVjdGlvbikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlU2VsZWN0b3JDb21wb25lbnRfNF8xKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTcuZGF0ZXNlbGVjdGlvbikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNy5pY29uTW9udGhQcmV2O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8xNy5tb250aCArIDEpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE3LnllYXI7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTcuaWNvbk1vbnRoTmV4dDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNy5kYXRlcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzE3Lm1vbnRoQmFjaygpKSAhPT0gZmFsc2UpO1xuICAgIGNvbnN0IHBkXzY6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5tb250aE5leHQoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRGF0ZVNlbGVjdG9yQ29tcG9uZW50XzRfNCgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzE3LnRpbWVzZWxlY3Rpb24pIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuZ2V0SG91cnMoKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xNy5nZXRNaW51dGVzKCk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IHBkXzI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5zZXRIb3VycyhfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzE3LnNldE1pbnV0ZXMoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEYXRlU2VsZWN0b3JDb21wb25lbnRfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTcuZGF0ZXNlbGVjdGlvbjtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzE3LnRpbWVzZWxlY3Rpb247XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzE3LnNldFRvZGF5KCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNy5yZXNldFNlbGVjdGlvbigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMTcuYXBwbHlTZWxlY3Rpb24oKSkgIT09IGZhbHNlKTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
- /**
2
- * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
- *
4
- * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
- * tslint:disable
6
- */
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS9kYXRldGltZS5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RhdGV0aW1lL2RhdGV0aW1lLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19
@@ -1,43 +1,43 @@
1
- import { SacFormLayoutDirective } from '../layout/formlayout.directive';
2
- import { ChangeDetectorRef, Component, ElementRef, Host, Injector, Optional, forwardRef } from '@angular/core';
3
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { SacTimeCommon } from '@simpleangularcontrols/sac-common';
5
- export class SacTimeComponent extends SacTimeCommon {
6
- // #region Constructors
7
- /**
8
- * Constructor
9
- * @param formLayout SacFormLayout to define scoped layout settings
10
- * @param injector Injector for injecting services
11
- * @param elementRef Reference to html dom element
12
- * @param cdRef Change Dectection Servie
13
- */
14
- constructor(formLayout, injector, elementRef, cdRef) {
15
- super(formLayout, injector, elementRef, cdRef);
16
- }
17
- }
18
- SacTimeComponent.decorators = [
19
- { type: Component, args: [{
20
- selector: 'sac-time',
21
- template: "<div\r\n class=\"row form-group\"\r\n [class.has-error]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"componentHeight | toLabelHeight\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}label\"\r\n for=\"{{ name }}\"\r\n class=\"col-xs-12 control-label\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\r\n [class.required]=\"isrequired\">\r\n <span class=\"text\">{{ label }}</span>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-xs-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\r\n <div\r\n style=\"position: relative\"\r\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 160 : 140\">\r\n <div\r\n class=\"datetime-textbox input-group\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <input\r\n id=\"{{ name }}\"\r\n name=\"{{ name }}\"\r\n type=\"text\"\r\n class=\"form-control time-control\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\"\r\n [imask]=\"imaskDate\"\r\n [attr.placeholder]=\"placeholder\"\r\n [value]=\"valuestring\"\r\n (blur)=\"onTouch()\"\r\n (accept)=\"setValueString($event)\"\r\n [disabled]=\"isdisabled\"\r\n (click)=\"showTimeSelector()\"\r\n maxlength=\"6\"\r\n size=\"6\" />\r\n <span class=\"input-group-btn\">\r\n <button\r\n #pickerbutton\r\n class=\"btn btn-default\"\r\n type=\"button\"\r\n (click)=\"showTimeSelector()\"\r\n [disabled]=\"isdisabled\">\r\n <i [class]=\"IconSelector\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n <p\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"help-block\">\r\n {{ helptext }}\r\n </p>\r\n <div\r\n class=\"help-block help-block-error\"\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n\r\n <div\r\n #picker\r\n *ngIf=\"_showselector\">\r\n <div\r\n class=\"popover in\"\r\n role=\"tooltip\"\r\n style=\"display: block; max-width: unset; margin: 0\"\r\n [class.bottom]=\"GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\"\r\n [class.top]=\"GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\"\r\n [style.left.px]=\"posPopupLeft\"\r\n [style.top.px]=\"posPopupTop\">\r\n <div\r\n #pickerarrow\r\n style=\"margin: 0\"\r\n class=\"arrow\"\r\n [style.top.px]=\"posArrowTop\"\r\n [style.left.px]=\"posArrowLeft\">\r\n </div>\r\n\r\n <div class=\"popover-content\">\r\n <sac-dateselector\r\n *ngIf=\"_showselector\"\r\n [initialvalue]=\"value\"\r\n (selectdate)=\"timeselect($event)\"\r\n timeselection=\"true\"></sac-dateselector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-static\"\r\n style=\"margin-left: 5px\">\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [class]=\"HelptextTooltipIcon\"\r\n style=\"margin-left: 5px; margin-right: 5px\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n</div>\r\n",
22
- // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
23
- providers: [
24
- {
25
- provide: NG_VALUE_ACCESSOR,
26
- multi: true,
27
- useExisting: forwardRef(() => SacTimeComponent),
28
- },
29
- {
30
- provide: NG_VALIDATORS,
31
- multi: true,
32
- useExisting: forwardRef(() => SacTimeComponent),
33
- },
34
- ]
35
- },] }
36
- ];
37
- SacTimeComponent.ctorParameters = () => [
38
- { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
39
- { type: Injector },
40
- { type: ElementRef },
41
- { type: ChangeDetectorRef }
42
- ];
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGF0ZXRpbWUvdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQW1CbEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUFDL0MsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3dCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFVBQXNCLEVBQ3RCLEtBQXdCO1FBRXhCLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs7WUFsQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxVQUFVO2dCQUNwQix1cktBQTBCO2dCQUMxQiwrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3FCQUNsRDtvQkFDRDt3QkFDSSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztxQkFDbEQ7aUJBQ0o7YUFDSjs7O1lBckJRLHNCQUFzQix1QkFpQ3RCLElBQUksWUFBSSxRQUFRO1lBaENnQyxRQUFRO1lBQTFCLFVBQVU7WUFBeEMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVGltZUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2FjLXRpbWUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUuaHRtbCcsXHJcbiAgICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1RpbWVDb21wb25lbnQpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVGltZUNvbXBvbmVudCksXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNUaW1lQ29tcG9uZW50IGV4dGVuZHMgU2FjVGltZUNvbW1vbiB7XHJcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gaHRtbCBkb20gZWxlbWVudFxyXG4gICAgICogQHBhcmFtIGNkUmVmICBDaGFuZ2UgRGVjdGVjdGlvbiBTZXJ2aWVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIGVsZW1lbnRSZWYsIGNkUmVmKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiJdfQ==
1
+ import { SacFormLayoutDirective } from '../layout/formlayout.directive';
2
+ import { ChangeDetectorRef, Component, ElementRef, Host, Injector, Optional, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { SacTimeCommon } from '@simpleangularcontrols/sac-common';
5
+ export class SacTimeComponent extends SacTimeCommon {
6
+ // #region Constructors
7
+ /**
8
+ * Constructor
9
+ * @param formLayout SacFormLayout to define scoped layout settings
10
+ * @param injector Injector for injecting services
11
+ * @param elementRef Reference to html dom element
12
+ * @param cdRef Change Dectection Servie
13
+ */
14
+ constructor(formLayout, injector, elementRef, cdRef) {
15
+ super(formLayout, injector, elementRef, cdRef);
16
+ }
17
+ }
18
+ SacTimeComponent.decorators = [
19
+ { type: Component, args: [{
20
+ selector: 'sac-time',
21
+ template: "<div\n class=\"row form-group\"\n [class.has-error]=\"invalid && (dirty || touched)\"\n [ngClass]=\"componentHeight | toLabelHeight\">\n <label\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\n id=\"{{ name }}label\"\n for=\"{{ name }}\"\n class=\"col-xs-12 control-label\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\n [class.required]=\"isrequired\">\n <span class=\"text\">{{ label }}</span>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-xs-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\n <div\n style=\"position: relative\"\n [style.width.px]=\"componentHeight === ControlHeight.Small ? 120 : componentHeight === ControlHeight.Large ? 160 : 140\">\n <div\n class=\"datetime-textbox input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\n <input\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control time-control\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [imask]=\"imaskDate\"\n [attr.placeholder]=\"placeholder\"\n [value]=\"valuestring\"\n (blur)=\"onTouch()\"\n (accept)=\"setValueString($event)\"\n [disabled]=\"isdisabled\"\n (click)=\"showTimeSelector()\"\n maxlength=\"6\"\n size=\"6\" />\n <span class=\"input-group-btn\">\n <button\n #pickerbutton\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"showTimeSelector()\"\n [disabled]=\"isdisabled\">\n <i [class]=\"IconSelector\"></i>\n </button>\n </span>\n </div>\n <p\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"help-block\">\n {{ helptext }}\n </p>\n <div\n class=\"help-block help-block-error\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n\n <div\n #picker\n *ngIf=\"_showselector\">\n <div\n class=\"popover in\"\n role=\"tooltip\"\n style=\"display: block; max-width: unset; margin: 0\"\n [class.bottom]=\"GetPickerPosition() == TooltipPosition.bottom || GetPickerPosition() == TooltipPosition.bottomend\"\n [class.top]=\"GetPickerPosition() == TooltipPosition.top || GetPickerPosition() == TooltipPosition.topend\"\n [style.left.px]=\"posPopupLeft\"\n [style.top.px]=\"posPopupTop\">\n <div\n #pickerarrow\n style=\"margin: 0\"\n class=\"arrow\"\n [style.top.px]=\"posArrowTop\"\n [style.left.px]=\"posArrowLeft\">\n </div>\n\n <div class=\"popover-content\">\n <sac-dateselector\n *ngIf=\"_showselector\"\n [initialvalue]=\"value\"\n (selectdate)=\"timeselect($event)\"\n timeselection=\"true\"></sac-dateselector>\n </div>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-static\"\n style=\"margin-left: 5px\">\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px; margin-right: 5px\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n",
22
+ // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
23
+ providers: [
24
+ {
25
+ provide: NG_VALUE_ACCESSOR,
26
+ multi: true,
27
+ useExisting: forwardRef(() => SacTimeComponent),
28
+ },
29
+ {
30
+ provide: NG_VALIDATORS,
31
+ multi: true,
32
+ useExisting: forwardRef(() => SacTimeComponent),
33
+ },
34
+ ]
35
+ },] }
36
+ ];
37
+ SacTimeComponent.ctorParameters = () => [
38
+ { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
39
+ { type: Injector },
40
+ { type: ElementRef },
41
+ { type: ChangeDetectorRef }
42
+ ];
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBbUJsRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBYTtJQUMvQyx1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDd0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsVUFBc0IsRUFDdEIsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7OztZQWxDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLDY4SkFBMEI7Z0JBQzFCLCtGQUErRjtnQkFDL0YsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7cUJBQ2xEO29CQUNEO3dCQUNJLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3FCQUNsRDtpQkFDSjthQUNKOzs7WUFyQlEsc0JBQXNCLHVCQWlDdEIsSUFBSSxZQUFJLFFBQVE7WUFoQ2dDLFFBQVE7WUFBMUIsVUFBVTtZQUF4QyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTYWNUaW1lQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUuaHRtbCcsXG4gICAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1RpbWVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNUaW1lQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNUaW1lQ29tcG9uZW50IGV4dGVuZHMgU2FjVGltZUNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgUmVmZXJlbmNlIHRvIGh0bWwgZG9tIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgIENoYW5nZSBEZWN0ZWN0aW9uIFNlcnZpZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCBlbGVtZW50UmVmLCBjZFJlZik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
- /**
2
- * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
- *
4
- * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
- * tslint:disable
6
- */
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RhdGV0aW1lL3RpbWUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGF0ZXRpbWUvdGltZS5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
@@ -1,51 +1,51 @@
1
- import { Component, ElementRef, Input, ChangeDetectorRef } from '@angular/core';
2
- import { SacDialogCommon } from '@simpleangularcontrols/sac-common';
3
- export class SacDialogComponent extends SacDialogCommon {
4
- constructor(el, cdRef) {
5
- super(cdRef);
6
- //#region Bootstrap 3 Spezifische Properites
7
- this.zindex = 20002;
8
- this._lastDialogMarginTop = 0;
9
- this.element = el.nativeElement;
10
- }
11
- // Margin Top für Center Position des Dialogs berechnen
12
- get dialogMarginTop() {
13
- let result = 0;
14
- // ContentPlaceholder kann NULL/UNDEFINED sein wenn Dialog nicht angezeigt wird
15
- if (this.dialogElement !== null && this.dialogElement !== undefined) {
16
- result = (this.dialogElement.nativeElement.clientHeight / 2) * -1;
17
- }
18
- // Change Detection ausführen, falls Wert nach Rendering noch geändert hat. Kann durch HTML Content / Zeilenumbrüche usw. ausgelöst werden.
19
- if (this._lastDialogMarginTop !== result) {
20
- this._lastDialogMarginTop = result;
21
- this.ChangeDetector.detectChanges();
22
- }
23
- return result;
24
- }
25
- //#endregion
26
- ngOnInit() {
27
- // Element an Body für korrektes Styling unter Bootstrap 3 verschieben
28
- document.body.appendChild(this.element);
29
- }
30
- ngOnDestroy() {
31
- this.hide();
32
- if (document.body.contains(this.element)) {
33
- document.body.removeChild(this.element);
34
- }
35
- super.ngOnDestroy();
36
- }
37
- }
38
- SacDialogComponent.decorators = [
39
- { type: Component, args: [{
40
- selector: 'sac-dialog',
41
- template: "<div [id]=\"name\" *ngIf=\"_show\" [ngStyle]=\"{'z-index': zindex}\">\r\n <div\r\n class=\"modal in\"\r\n style=\"display: block\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n #dialog\r\n >\r\n <div\r\n class=\"modal-dialog\"\r\n [class.modal-sm]=\"_size==='small'\"\r\n [class.modal-lg]=\"_size === 'large' || _size === 'extralarge'\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button\r\n type=\"button\"\r\n class=\"close\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n (click)=\"hide()\"\r\n *ngIf=\"closebutton\"\r\n >\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n <span class=\"modal-title\">{{title}}</span>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content select=\"[dialogbody]\"></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-content select=\"[dialogfooter]\"></ng-content>\r\n </div>\r\n </div>\r\n <!-- /.modal-content -->\r\n </div>\r\n <!-- /.modal-dialog -->\r\n </div>\r\n <!-- /.modal -->\r\n</div>\r\n<div class=\"modal-backdrop in\" *ngIf=\"_show && backdrop\" #backdrop></div>\r\n"
42
- },] }
43
- ];
44
- SacDialogComponent.ctorParameters = () => [
45
- { type: ElementRef },
46
- { type: ChangeDetectorRef }
47
- ];
48
- SacDialogComponent.propDecorators = {
49
- zindex: [{ type: Input }]
50
- };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kaWFsb2cvZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTXBFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBSXJELFlBQVksRUFBYyxFQUFFLEtBQXdCO1FBQ2xELEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUtmLDRDQUE0QztRQUc1QyxXQUFNLEdBQVcsS0FBSyxDQUFDO1FBRWYseUJBQW9CLEdBQVcsQ0FBQyxDQUFDO1FBUnZDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDO0lBU0QsdURBQXVEO0lBQ3ZELElBQUksZUFBZTtRQUNqQixJQUFJLE1BQU0sR0FBVyxDQUFDLENBQUM7UUFFdkIsK0VBQStFO1FBQy9FLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsMklBQTJJO1FBQzNJLElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLE1BQU0sRUFBRTtZQUN4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDckM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWTtJQUVaLFFBQVE7UUFDTixzRUFBc0U7UUFDdEUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OztZQXBERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGkxQ0FBNEI7YUFDN0I7OztZQU5tQixVQUFVO1lBQTRCLGlCQUFpQjs7O3FCQW1CeEUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYWNEaWFsb2dDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBTYWNEaWFsb2dDb21tb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gRE9NIEVsZW1lbnRcclxuICBwcml2YXRlIGVsZW1lbnQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoY2RSZWYpO1xyXG5cclxuICAgIHRoaXMuZWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQm9vdHN0cmFwIDMgU3BlemlmaXNjaGUgUHJvcGVyaXRlc1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHppbmRleDogbnVtYmVyID0gMjAwMDI7XHJcblxyXG4gIHByaXZhdGUgX2xhc3REaWFsb2dNYXJnaW5Ub3A6IG51bWJlciA9IDA7XHJcblxyXG4gIC8vIE1hcmdpbiBUb3AgZsO8ciBDZW50ZXIgUG9zaXRpb24gZGVzIERpYWxvZ3MgYmVyZWNobmVuXHJcbiAgZ2V0IGRpYWxvZ01hcmdpblRvcCgpOiBudW1iZXIge1xyXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvLyBDb250ZW50UGxhY2Vob2xkZXIga2FubiBOVUxML1VOREVGSU5FRCBzZWluIHdlbm4gRGlhbG9nIG5pY2h0IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICBpZiAodGhpcy5kaWFsb2dFbGVtZW50ICE9PSBudWxsICYmIHRoaXMuZGlhbG9nRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJlc3VsdCA9ICh0aGlzLmRpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLyAyKSAqIC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoYW5nZSBEZXRlY3Rpb24gYXVzZsO8aHJlbiwgZmFsbHMgV2VydCBuYWNoIFJlbmRlcmluZyBub2NoIGdlw6RuZGVydCBoYXQuIEthbm4gZHVyY2ggSFRNTCBDb250ZW50IC8gWmVpbGVudW1icsO8Y2hlIHVzdy4gYXVzZ2Vsw7ZzdCB3ZXJkZW4uXHJcbiAgICBpZiAodGhpcy5fbGFzdERpYWxvZ01hcmdpblRvcCAhPT0gcmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuX2xhc3REaWFsb2dNYXJnaW5Ub3AgPSByZXN1bHQ7XHJcbiAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBFbGVtZW50IGFuIEJvZHkgZsO8ciBrb3JyZWt0ZXMgU3R5bGluZyB1bnRlciBCb290c3RyYXAgMyB2ZXJzY2hpZWJlblxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuZWxlbWVudCkpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
1
+ import { Component, ElementRef, Input, ChangeDetectorRef } from '@angular/core';
2
+ import { SacDialogCommon } from '@simpleangularcontrols/sac-common';
3
+ export class SacDialogComponent extends SacDialogCommon {
4
+ constructor(el, cdRef) {
5
+ super(cdRef);
6
+ //#region Bootstrap 3 Spezifische Properites
7
+ this.zindex = 20002;
8
+ this._lastDialogMarginTop = 0;
9
+ this.element = el.nativeElement;
10
+ }
11
+ // Margin Top für Center Position des Dialogs berechnen
12
+ get dialogMarginTop() {
13
+ let result = 0;
14
+ // ContentPlaceholder kann NULL/UNDEFINED sein wenn Dialog nicht angezeigt wird
15
+ if (this.dialogElement !== null && this.dialogElement !== undefined) {
16
+ result = (this.dialogElement.nativeElement.clientHeight / 2) * -1;
17
+ }
18
+ // Change Detection ausführen, falls Wert nach Rendering noch geändert hat. Kann durch HTML Content / Zeilenumbrüche usw. ausgelöst werden.
19
+ if (this._lastDialogMarginTop !== result) {
20
+ this._lastDialogMarginTop = result;
21
+ this.ChangeDetector.detectChanges();
22
+ }
23
+ return result;
24
+ }
25
+ //#endregion
26
+ ngOnInit() {
27
+ // Element an Body für korrektes Styling unter Bootstrap 3 verschieben
28
+ document.body.appendChild(this.element);
29
+ }
30
+ ngOnDestroy() {
31
+ this.hide();
32
+ if (document.body.contains(this.element)) {
33
+ document.body.removeChild(this.element);
34
+ }
35
+ super.ngOnDestroy();
36
+ }
37
+ }
38
+ SacDialogComponent.decorators = [
39
+ { type: Component, args: [{
40
+ selector: 'sac-dialog',
41
+ template: "<div [id]=\"name\" *ngIf=\"_show\" [ngStyle]=\"{'z-index': zindex}\">\n <div\n class=\"modal in\"\n style=\"display: block\"\n tabindex=\"-1\"\n role=\"dialog\"\n #dialog\n >\n <div\n class=\"modal-dialog\"\n [class.modal-sm]=\"_size==='small'\"\n [class.modal-lg]=\"_size === 'large' || _size === 'extralarge'\"\n role=\"document\"\n >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <button\n type=\"button\"\n class=\"close\"\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n (click)=\"hide()\"\n *ngIf=\"closebutton\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n <span class=\"modal-title\">{{title}}</span>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[dialogbody]\"></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"[dialogfooter]\"></ng-content>\n </div>\n </div>\n <!-- /.modal-content -->\n </div>\n <!-- /.modal-dialog -->\n </div>\n <!-- /.modal -->\n</div>\n<div class=\"modal-backdrop in\" *ngIf=\"_show && backdrop\" #backdrop></div>\n"
42
+ },] }
43
+ ];
44
+ SacDialogComponent.ctorParameters = () => [
45
+ { type: ElementRef },
46
+ { type: ChangeDetectorRef }
47
+ ];
48
+ SacDialogComponent.propDecorators = {
49
+ zindex: [{ type: Input }]
50
+ };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RpYWxvZy9kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFNcEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFJckQsWUFBWSxFQUFjLEVBQUUsS0FBd0I7UUFDbEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBS2YsNENBQTRDO1FBRzVDLFdBQU0sR0FBVyxLQUFLLENBQUM7UUFFZix5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFSdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFTRCx1REFBdUQ7SUFDdkQsSUFBSSxlQUFlO1FBQ2pCLElBQUksTUFBTSxHQUFXLENBQUMsQ0FBQztRQUV2QiwrRUFBK0U7UUFDL0UsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbkU7UUFFRCwySUFBMkk7UUFDM0ksSUFBSSxJQUFJLENBQUMsb0JBQW9CLEtBQUssTUFBTSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNyQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZO0lBRVosUUFBUTtRQUNOLHNFQUFzRTtRQUN0RSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekM7UUFDRCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7O1lBcERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsNnZDQUE0QjthQUM3Qjs7O1lBTm1CLFVBQVU7WUFBNEIsaUJBQWlCOzs7cUJBbUJ4RSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWNEaWFsb2dDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYWMtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTYWNEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBTYWNEaWFsb2dDb21tb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIERPTSBFbGVtZW50XG4gIHByaXZhdGUgZWxlbWVudDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZFJlZik7XG5cbiAgICB0aGlzLmVsZW1lbnQgPSBlbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8jcmVnaW9uIEJvb3RzdHJhcCAzIFNwZXppZmlzY2hlIFByb3Blcml0ZXNcblxuICBASW5wdXQoKVxuICB6aW5kZXg6IG51bWJlciA9IDIwMDAyO1xuXG4gIHByaXZhdGUgX2xhc3REaWFsb2dNYXJnaW5Ub3A6IG51bWJlciA9IDA7XG5cbiAgLy8gTWFyZ2luIFRvcCBmw7xyIENlbnRlciBQb3NpdGlvbiBkZXMgRGlhbG9ncyBiZXJlY2huZW5cbiAgZ2V0IGRpYWxvZ01hcmdpblRvcCgpOiBudW1iZXIge1xuICAgIGxldCByZXN1bHQ6IG51bWJlciA9IDA7XG5cbiAgICAvLyBDb250ZW50UGxhY2Vob2xkZXIga2FubiBOVUxML1VOREVGSU5FRCBzZWluIHdlbm4gRGlhbG9nIG5pY2h0IGFuZ2V6ZWlndCB3aXJkXG4gICAgaWYgKHRoaXMuZGlhbG9nRWxlbWVudCAhPT0gbnVsbCAmJiB0aGlzLmRpYWxvZ0VsZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0ID0gKHRoaXMuZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAvIDIpICogLTE7XG4gICAgfVxuXG4gICAgLy8gQ2hhbmdlIERldGVjdGlvbiBhdXNmw7xocmVuLCBmYWxscyBXZXJ0IG5hY2ggUmVuZGVyaW5nIG5vY2ggZ2XDpG5kZXJ0IGhhdC4gS2FubiBkdXJjaCBIVE1MIENvbnRlbnQgLyBaZWlsZW51bWJyw7xjaGUgdXN3LiBhdXNnZWzDtnN0IHdlcmRlbi5cbiAgICBpZiAodGhpcy5fbGFzdERpYWxvZ01hcmdpblRvcCAhPT0gcmVzdWx0KSB7XG4gICAgICB0aGlzLl9sYXN0RGlhbG9nTWFyZ2luVG9wID0gcmVzdWx0O1xuICAgICAgdGhpcy5DaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEVsZW1lbnQgYW4gQm9keSBmw7xyIGtvcnJla3RlcyBTdHlsaW5nIHVudGVyIEJvb3RzdHJhcCAzIHZlcnNjaGllYmVuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oaWRlKCk7XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5lbGVtZW50KSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG59XG5cbiJdfQ==
@@ -1,15 +1,15 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SacDialogComponent } from './dialog';
4
- export class SACBootstrap3DialogModule {
5
- }
6
- SACBootstrap3DialogModule.decorators = [
7
- { type: NgModule, args: [{
8
- declarations: [SacDialogComponent],
9
- imports: [
10
- CommonModule
11
- ],
12
- exports: [SacDialogComponent]
13
- },] }
14
- ];
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGlhbG9nL2RpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUzlDLE1BQU0sT0FBTyx5QkFBeUI7OztZQVByQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2cnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTYWNEaWFsb2dDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NhY0RpYWxvZ0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDNEaWFsb2dNb2R1bGUgeyB9XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SacDialogComponent } from './dialog';
4
+ export class SACBootstrap3DialogModule {
5
+ }
6
+ SACBootstrap3DialogModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ declarations: [SacDialogComponent],
9
+ imports: [
10
+ CommonModule
11
+ ],
12
+ exports: [SacDialogComponent]
13
+ },] }
14
+ ];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kaWFsb2cvZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFTOUMsTUFBTSxPQUFPLHlCQUF5Qjs7O1lBUHJDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDbEMsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7YUFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2FjRGlhbG9nQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbU2FjRGlhbG9nQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXAzRGlhbG9nTW9kdWxlIHsgfVxuIl19