@onepercentio/one-ui 0.29.1 → 0.29.4

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 (462) hide show
  1. package/dist/components/AdaptiveButton/index.d.ts +2 -1
  2. package/dist/components/AdaptiveButton/index.js +15 -3
  3. package/dist/components/AdaptiveContainer/index.d.ts +2 -1
  4. package/dist/components/AdaptiveContainer/index.js +15 -3
  5. package/dist/components/AdaptiveDialog/index.d.ts +2 -1
  6. package/dist/components/AdaptiveDialog/index.js +15 -3
  7. package/dist/components/AdaptiveSidebar/index.d.ts +2 -1
  8. package/dist/components/AdaptiveSidebar/index.js +15 -3
  9. package/dist/components/AnchoredTooltip/index.d.ts +2 -1
  10. package/dist/components/AnchoredTooltip/index.js +15 -3
  11. package/dist/components/AnimatedEntrance/index.d.ts +2 -1
  12. package/dist/components/AnimatedEntrance/index.js +13 -13
  13. package/dist/components/AsyncWrapper/index.d.ts +2 -1
  14. package/dist/components/AsyncWrapper/index.js +15 -3
  15. package/dist/components/Avatar/index.d.ts +2 -1
  16. package/dist/components/Avatar/index.js +15 -3
  17. package/dist/components/BucketFill/index.d.ts +2 -1
  18. package/dist/components/BucketFill/index.js +15 -3
  19. package/dist/components/Button/index.d.ts +2 -1
  20. package/dist/components/Button/index.js +15 -3
  21. package/dist/components/Card/index.d.ts +2 -1
  22. package/dist/components/Card/index.js +15 -3
  23. package/dist/components/Chart/Chart.d.ts +2 -0
  24. package/dist/components/Chart/Chart.js +26 -0
  25. package/dist/components/Chart/Chart.view.js +1 -1
  26. package/dist/components/Chart/index.d.ts +2 -1
  27. package/dist/components/Chart/index.js +15 -3
  28. package/dist/components/CheckBox/index.d.ts +2 -1
  29. package/dist/components/CheckBox/index.js +15 -3
  30. package/dist/components/CodeInput/index.d.ts +2 -1
  31. package/dist/components/CodeInput/index.js +15 -3
  32. package/dist/components/Collapsable/index.d.ts +2 -1
  33. package/dist/components/Collapsable/index.js +15 -3
  34. package/dist/components/Countdown/index.d.ts +2 -1
  35. package/dist/components/Countdown/index.js +15 -3
  36. package/dist/components/CurrencyInput/index.d.ts +1 -0
  37. package/dist/components/CurrencyInput/index.js +15 -3
  38. package/dist/components/Divider/index.d.ts +2 -1
  39. package/dist/components/Divider/index.js +15 -3
  40. package/dist/components/EmailInput/EmailInput.d.ts +1 -1
  41. package/dist/components/EmailInput/index.d.ts +2 -1
  42. package/dist/components/EmailInput/index.js +13 -7
  43. package/dist/components/FadeIn/index.d.ts +2 -1
  44. package/dist/components/FadeIn/index.js +15 -3
  45. package/dist/components/FileInput/View/BigFactory/index.d.ts +2 -1
  46. package/dist/components/FileInput/View/BigFactory/index.js +15 -3
  47. package/dist/components/FileInput/View/Compact/index.d.ts +2 -1
  48. package/dist/components/FileInput/View/Compact/index.js +13 -7
  49. package/dist/components/FileInput/index.d.ts +2 -1
  50. package/dist/components/FileInput/index.js +15 -3
  51. package/dist/components/FlowController/index.d.ts +2 -1
  52. package/dist/components/FlowController/index.js +15 -3
  53. package/dist/components/Form/index.d.ts +1 -0
  54. package/dist/components/Form/index.js +15 -3
  55. package/dist/components/Form/v2/FormField/Extensions/DateField/index.d.ts +2 -1
  56. package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +15 -3
  57. package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +2 -1
  58. package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +15 -3
  59. package/dist/components/Form/v2/FormField/index.d.ts +2 -1
  60. package/dist/components/Form/v2/FormField/index.js +15 -3
  61. package/dist/components/Form/v2/index.d.ts +2 -1
  62. package/dist/components/Form/v2/index.js +15 -3
  63. package/dist/components/Freeze/index.d.ts +2 -1
  64. package/dist/components/Freeze/index.js +15 -3
  65. package/dist/components/HSForms/index.d.ts +2 -1
  66. package/dist/components/HSForms/index.js +15 -3
  67. package/dist/components/Header/index.d.ts +2 -1
  68. package/dist/components/Header/index.js +15 -3
  69. package/dist/components/HeaderCloseBtn/index.d.ts +2 -1
  70. package/dist/components/HeaderCloseBtn/index.js +15 -3
  71. package/dist/components/InfinityScroll/index.d.ts +2 -1
  72. package/dist/components/InfinityScroll/index.js +15 -3
  73. package/dist/components/Input/Input.d.ts +1 -1
  74. package/dist/components/Input/index.d.ts +2 -1
  75. package/dist/components/Input/index.js +15 -3
  76. package/dist/components/InstantCounter/index.d.ts +2 -1
  77. package/dist/components/InstantCounter/index.js +15 -3
  78. package/dist/components/LavaLamp/index.d.ts +2 -1
  79. package/dist/components/LavaLamp/index.js +15 -3
  80. package/dist/components/LinkToId/index.d.ts +2 -1
  81. package/dist/components/LinkToId/index.js +13 -7
  82. package/dist/components/Loader/index.d.ts +2 -1
  83. package/dist/components/Loader/index.js +15 -3
  84. package/dist/components/LoaderDotsIndicator/index.d.ts +2 -1
  85. package/dist/components/LoaderDotsIndicator/index.js +15 -3
  86. package/dist/components/LoopableVideo/index.d.ts +2 -1
  87. package/dist/components/LoopableVideo/index.js +15 -3
  88. package/dist/components/MainGrid/index.d.ts +2 -1
  89. package/dist/components/MainGrid/index.js +15 -3
  90. package/dist/components/MutableHamburgerButton/index.d.ts +2 -1
  91. package/dist/components/MutableHamburgerButton/index.js +15 -3
  92. package/dist/components/Notification/index.d.ts +2 -1
  93. package/dist/components/Notification/index.js +15 -3
  94. package/dist/components/OrderableList/index.d.ts +2 -1
  95. package/dist/components/OrderableList/index.js +15 -3
  96. package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +1 -1
  97. package/dist/components/PaginationIndicator/index.d.ts +2 -1
  98. package/dist/components/PaginationIndicator/index.js +15 -3
  99. package/dist/components/Parallax/Parallax.d.ts +0 -2
  100. package/dist/components/Parallax/Parallax.js +6 -18
  101. package/dist/components/Parallax/index.d.ts +2 -1
  102. package/dist/components/Parallax/index.js +15 -3
  103. package/dist/components/PasswordInput/PasswordInput.d.ts +1 -1
  104. package/dist/components/PasswordInput/index.d.ts +2 -1
  105. package/dist/components/PasswordInput/index.js +15 -3
  106. package/dist/components/PingPongText/index.d.ts +2 -1
  107. package/dist/components/PingPongText/index.js +15 -3
  108. package/dist/components/PixelatedScan/index.d.ts +2 -1
  109. package/dist/components/PixelatedScan/index.js +15 -3
  110. package/dist/components/Portal/index.d.ts +2 -1
  111. package/dist/components/Portal/index.js +13 -7
  112. package/dist/components/ProgressBar/index.d.ts +2 -1
  113. package/dist/components/ProgressBar/index.js +13 -7
  114. package/dist/components/ProgressTexts/index.d.ts +2 -1
  115. package/dist/components/ProgressTexts/index.js +15 -3
  116. package/dist/components/Radio/index.d.ts +2 -1
  117. package/dist/components/Radio/index.js +15 -3
  118. package/dist/components/SectionContainer/index.d.ts +2 -1
  119. package/dist/components/SectionContainer/index.js +15 -3
  120. package/dist/components/Select/index.d.ts +2 -1
  121. package/dist/components/Select/index.js +15 -3
  122. package/dist/components/Skeleton/index.d.ts +2 -1
  123. package/dist/components/Skeleton/index.js +15 -3
  124. package/dist/components/Spacing/index.d.ts +2 -1
  125. package/dist/components/Spacing/index.js +15 -3
  126. package/dist/components/StaticScroller/index.d.ts +2 -1
  127. package/dist/components/StaticScroller/index.js +15 -3
  128. package/dist/components/Switch/index.d.ts +2 -1
  129. package/dist/components/Switch/index.js +15 -3
  130. package/dist/components/Table/index.d.ts +2 -1
  131. package/dist/components/Table/index.js +15 -3
  132. package/dist/components/Tabs/index.d.ts +2 -1
  133. package/dist/components/Tabs/index.js +15 -3
  134. package/dist/components/Text/index.d.ts +2 -1
  135. package/dist/components/Text/index.js +15 -3
  136. package/dist/components/Transition/Transition.d.ts +4 -4
  137. package/dist/components/Transition/index.d.ts +2 -1
  138. package/dist/components/Transition/index.js +13 -7
  139. package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +1 -1
  140. package/dist/components/UncontrolledTransition/index.js +1 -1
  141. package/dist/components/WalletConnectionWrapper/index.d.ts +2 -1
  142. package/dist/components/WalletConnectionWrapper/index.js +13 -7
  143. package/dist/components/utilitary/ScrollAndFocusLock/index.d.ts +2 -1
  144. package/dist/components/utilitary/ScrollAndFocusLock/index.js +15 -3
  145. package/dist/hooks/useAsyncControl.d.ts +2 -2
  146. package/dist/hooks/useHero.js +3 -2
  147. package/dist/index.d.ts +228 -2
  148. package/dist/index.js +2188 -10
  149. package/dist/index.preprocess.d.ts +1 -0
  150. package/dist/index.preprocess.js +41 -0
  151. package/dist/test.d.ts +0 -0
  152. package/dist/test.js +2 -0
  153. package/dist/utils/e2e.d.ts +4 -2
  154. package/dist/utils/e2e.js +7 -9
  155. package/dist/utils/test.d.ts +1 -0
  156. package/dist/utils/test.js +2 -1
  157. package/dist-ts/components/AdaptiveButton/index.d.ts +2 -1
  158. package/dist-ts/components/AdaptiveButton/index.js +2 -1
  159. package/dist-ts/components/AdaptiveButton/index.js.map +1 -1
  160. package/dist-ts/components/AdaptiveContainer/index.d.ts +2 -1
  161. package/dist-ts/components/AdaptiveContainer/index.js +2 -1
  162. package/dist-ts/components/AdaptiveContainer/index.js.map +1 -1
  163. package/dist-ts/components/AdaptiveDialog/index.d.ts +2 -1
  164. package/dist-ts/components/AdaptiveDialog/index.js +2 -1
  165. package/dist-ts/components/AdaptiveDialog/index.js.map +1 -1
  166. package/dist-ts/components/AdaptiveSidebar/index.d.ts +2 -1
  167. package/dist-ts/components/AdaptiveSidebar/index.js +2 -1
  168. package/dist-ts/components/AdaptiveSidebar/index.js.map +1 -1
  169. package/dist-ts/components/AnchoredTooltip/index.d.ts +2 -1
  170. package/dist-ts/components/AnchoredTooltip/index.js +2 -1
  171. package/dist-ts/components/AnchoredTooltip/index.js.map +1 -1
  172. package/dist-ts/components/AnimatedEntrance/index.d.ts +2 -1
  173. package/dist-ts/components/AnimatedEntrance/index.js +2 -1
  174. package/dist-ts/components/AnimatedEntrance/index.js.map +1 -1
  175. package/dist-ts/components/AsyncWrapper/index.d.ts +2 -1
  176. package/dist-ts/components/AsyncWrapper/index.js +2 -1
  177. package/dist-ts/components/AsyncWrapper/index.js.map +1 -1
  178. package/dist-ts/components/Avatar/index.d.ts +2 -1
  179. package/dist-ts/components/Avatar/index.js +2 -1
  180. package/dist-ts/components/Avatar/index.js.map +1 -1
  181. package/dist-ts/components/BucketFill/index.d.ts +2 -1
  182. package/dist-ts/components/BucketFill/index.js +2 -1
  183. package/dist-ts/components/BucketFill/index.js.map +1 -1
  184. package/dist-ts/components/Button/index.d.ts +2 -1
  185. package/dist-ts/components/Button/index.js +2 -1
  186. package/dist-ts/components/Button/index.js.map +1 -1
  187. package/dist-ts/components/Card/index.d.ts +2 -1
  188. package/dist-ts/components/Card/index.js +2 -1
  189. package/dist-ts/components/Card/index.js.map +1 -1
  190. package/dist-ts/components/Chart/Chart.d.ts +2 -0
  191. package/dist-ts/components/Chart/Chart.js +3 -0
  192. package/dist-ts/components/Chart/Chart.js.map +1 -0
  193. package/dist-ts/components/Chart/Chart.view.js.map +1 -1
  194. package/dist-ts/components/Chart/index.d.ts +2 -1
  195. package/dist-ts/components/Chart/index.js +2 -1
  196. package/dist-ts/components/Chart/index.js.map +1 -1
  197. package/dist-ts/components/CheckBox/index.d.ts +2 -1
  198. package/dist-ts/components/CheckBox/index.js +2 -1
  199. package/dist-ts/components/CheckBox/index.js.map +1 -1
  200. package/dist-ts/components/CodeInput/index.d.ts +2 -1
  201. package/dist-ts/components/CodeInput/index.js +2 -1
  202. package/dist-ts/components/CodeInput/index.js.map +1 -1
  203. package/dist-ts/components/Collapsable/index.d.ts +2 -1
  204. package/dist-ts/components/Collapsable/index.js +2 -1
  205. package/dist-ts/components/Collapsable/index.js.map +1 -1
  206. package/dist-ts/components/Countdown/index.d.ts +2 -1
  207. package/dist-ts/components/Countdown/index.js +2 -1
  208. package/dist-ts/components/Countdown/index.js.map +1 -1
  209. package/dist-ts/components/CurrencyInput/index.d.ts +1 -0
  210. package/dist-ts/components/CurrencyInput/index.js +1 -0
  211. package/dist-ts/components/CurrencyInput/index.js.map +1 -1
  212. package/dist-ts/components/Divider/index.d.ts +2 -1
  213. package/dist-ts/components/Divider/index.js +2 -1
  214. package/dist-ts/components/Divider/index.js.map +1 -1
  215. package/dist-ts/components/EmailInput/EmailInput.d.ts +1 -1
  216. package/dist-ts/components/EmailInput/index.d.ts +2 -1
  217. package/dist-ts/components/EmailInput/index.js +2 -1
  218. package/dist-ts/components/EmailInput/index.js.map +1 -1
  219. package/dist-ts/components/FadeIn/index.d.ts +2 -1
  220. package/dist-ts/components/FadeIn/index.js +2 -1
  221. package/dist-ts/components/FadeIn/index.js.map +1 -1
  222. package/dist-ts/components/FileInput/View/BigFactory/index.d.ts +2 -1
  223. package/dist-ts/components/FileInput/View/BigFactory/index.js +2 -1
  224. package/dist-ts/components/FileInput/View/BigFactory/index.js.map +1 -1
  225. package/dist-ts/components/FileInput/View/Compact/index.d.ts +2 -1
  226. package/dist-ts/components/FileInput/View/Compact/index.js +2 -1
  227. package/dist-ts/components/FileInput/View/Compact/index.js.map +1 -1
  228. package/dist-ts/components/FileInput/index.d.ts +2 -1
  229. package/dist-ts/components/FileInput/index.js +2 -1
  230. package/dist-ts/components/FileInput/index.js.map +1 -1
  231. package/dist-ts/components/FlowController/index.d.ts +2 -1
  232. package/dist-ts/components/FlowController/index.js +2 -1
  233. package/dist-ts/components/FlowController/index.js.map +1 -1
  234. package/dist-ts/components/Form/index.d.ts +1 -0
  235. package/dist-ts/components/Form/index.js +1 -0
  236. package/dist-ts/components/Form/index.js.map +1 -1
  237. package/dist-ts/components/Form/v2/FormField/Extensions/DateField/index.d.ts +2 -1
  238. package/dist-ts/components/Form/v2/FormField/Extensions/DateField/index.js +2 -1
  239. package/dist-ts/components/Form/v2/FormField/Extensions/DateField/index.js.map +1 -1
  240. package/dist-ts/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +2 -1
  241. package/dist-ts/components/Form/v2/FormField/Extensions/PhoneField/index.js +2 -1
  242. package/dist-ts/components/Form/v2/FormField/Extensions/PhoneField/index.js.map +1 -1
  243. package/dist-ts/components/Form/v2/FormField/index.d.ts +2 -1
  244. package/dist-ts/components/Form/v2/FormField/index.js +2 -1
  245. package/dist-ts/components/Form/v2/FormField/index.js.map +1 -1
  246. package/dist-ts/components/Form/v2/index.d.ts +2 -1
  247. package/dist-ts/components/Form/v2/index.js +2 -1
  248. package/dist-ts/components/Form/v2/index.js.map +1 -1
  249. package/dist-ts/components/Freeze/index.d.ts +2 -1
  250. package/dist-ts/components/Freeze/index.js +2 -1
  251. package/dist-ts/components/Freeze/index.js.map +1 -1
  252. package/dist-ts/components/HSForms/index.d.ts +2 -1
  253. package/dist-ts/components/HSForms/index.js +2 -1
  254. package/dist-ts/components/HSForms/index.js.map +1 -1
  255. package/dist-ts/components/Header/index.d.ts +2 -1
  256. package/dist-ts/components/Header/index.js +2 -1
  257. package/dist-ts/components/Header/index.js.map +1 -1
  258. package/dist-ts/components/HeaderCloseBtn/index.d.ts +2 -1
  259. package/dist-ts/components/HeaderCloseBtn/index.js +2 -1
  260. package/dist-ts/components/HeaderCloseBtn/index.js.map +1 -1
  261. package/dist-ts/components/InfinityScroll/index.d.ts +2 -1
  262. package/dist-ts/components/InfinityScroll/index.js +2 -1
  263. package/dist-ts/components/InfinityScroll/index.js.map +1 -1
  264. package/dist-ts/components/Input/Input.d.ts +1 -1
  265. package/dist-ts/components/Input/index.d.ts +2 -1
  266. package/dist-ts/components/Input/index.js +2 -1
  267. package/dist-ts/components/Input/index.js.map +1 -1
  268. package/dist-ts/components/InstantCounter/index.d.ts +2 -1
  269. package/dist-ts/components/InstantCounter/index.js +2 -1
  270. package/dist-ts/components/InstantCounter/index.js.map +1 -1
  271. package/dist-ts/components/LavaLamp/index.d.ts +2 -1
  272. package/dist-ts/components/LavaLamp/index.js +2 -1
  273. package/dist-ts/components/LavaLamp/index.js.map +1 -1
  274. package/dist-ts/components/LinkToId/index.d.ts +2 -1
  275. package/dist-ts/components/LinkToId/index.js +2 -1
  276. package/dist-ts/components/LinkToId/index.js.map +1 -1
  277. package/dist-ts/components/Loader/index.d.ts +2 -1
  278. package/dist-ts/components/Loader/index.js +2 -1
  279. package/dist-ts/components/Loader/index.js.map +1 -1
  280. package/dist-ts/components/LoaderDotsIndicator/index.d.ts +2 -1
  281. package/dist-ts/components/LoaderDotsIndicator/index.js +2 -1
  282. package/dist-ts/components/LoaderDotsIndicator/index.js.map +1 -1
  283. package/dist-ts/components/LoopableVideo/index.d.ts +2 -1
  284. package/dist-ts/components/LoopableVideo/index.js +2 -1
  285. package/dist-ts/components/LoopableVideo/index.js.map +1 -1
  286. package/dist-ts/components/MainGrid/index.d.ts +2 -1
  287. package/dist-ts/components/MainGrid/index.js +2 -1
  288. package/dist-ts/components/MainGrid/index.js.map +1 -1
  289. package/dist-ts/components/MutableHamburgerButton/index.d.ts +2 -1
  290. package/dist-ts/components/MutableHamburgerButton/index.js +2 -1
  291. package/dist-ts/components/MutableHamburgerButton/index.js.map +1 -1
  292. package/dist-ts/components/Notification/index.d.ts +2 -1
  293. package/dist-ts/components/Notification/index.js +2 -1
  294. package/dist-ts/components/Notification/index.js.map +1 -1
  295. package/dist-ts/components/OrderableList/index.d.ts +2 -1
  296. package/dist-ts/components/OrderableList/index.js +2 -1
  297. package/dist-ts/components/OrderableList/index.js.map +1 -1
  298. package/dist-ts/components/PaginationIndicator/PaginationIndicator.d.ts +1 -1
  299. package/dist-ts/components/PaginationIndicator/index.d.ts +2 -1
  300. package/dist-ts/components/PaginationIndicator/index.js +2 -1
  301. package/dist-ts/components/PaginationIndicator/index.js.map +1 -1
  302. package/dist-ts/components/Parallax/Parallax.d.ts +0 -2
  303. package/dist-ts/components/Parallax/Parallax.js +3 -13
  304. package/dist-ts/components/Parallax/Parallax.js.map +1 -1
  305. package/dist-ts/components/Parallax/index.d.ts +2 -1
  306. package/dist-ts/components/Parallax/index.js +2 -1
  307. package/dist-ts/components/Parallax/index.js.map +1 -1
  308. package/dist-ts/components/PasswordInput/PasswordInput.d.ts +1 -1
  309. package/dist-ts/components/PasswordInput/index.d.ts +2 -1
  310. package/dist-ts/components/PasswordInput/index.js +2 -1
  311. package/dist-ts/components/PasswordInput/index.js.map +1 -1
  312. package/dist-ts/components/PingPongText/index.d.ts +2 -1
  313. package/dist-ts/components/PingPongText/index.js +2 -1
  314. package/dist-ts/components/PingPongText/index.js.map +1 -1
  315. package/dist-ts/components/PixelatedScan/index.d.ts +2 -1
  316. package/dist-ts/components/PixelatedScan/index.js +2 -1
  317. package/dist-ts/components/PixelatedScan/index.js.map +1 -1
  318. package/dist-ts/components/Portal/index.d.ts +2 -1
  319. package/dist-ts/components/Portal/index.js +2 -1
  320. package/dist-ts/components/Portal/index.js.map +1 -1
  321. package/dist-ts/components/ProgressBar/index.d.ts +2 -1
  322. package/dist-ts/components/ProgressBar/index.js +2 -1
  323. package/dist-ts/components/ProgressBar/index.js.map +1 -1
  324. package/dist-ts/components/ProgressTexts/index.d.ts +2 -1
  325. package/dist-ts/components/ProgressTexts/index.js +2 -1
  326. package/dist-ts/components/ProgressTexts/index.js.map +1 -1
  327. package/dist-ts/components/Radio/index.d.ts +2 -1
  328. package/dist-ts/components/Radio/index.js +2 -1
  329. package/dist-ts/components/Radio/index.js.map +1 -1
  330. package/dist-ts/components/SectionContainer/index.d.ts +2 -1
  331. package/dist-ts/components/SectionContainer/index.js +2 -1
  332. package/dist-ts/components/SectionContainer/index.js.map +1 -1
  333. package/dist-ts/components/Select/index.d.ts +2 -1
  334. package/dist-ts/components/Select/index.js +2 -1
  335. package/dist-ts/components/Select/index.js.map +1 -1
  336. package/dist-ts/components/Skeleton/index.d.ts +2 -1
  337. package/dist-ts/components/Skeleton/index.js +2 -1
  338. package/dist-ts/components/Skeleton/index.js.map +1 -1
  339. package/dist-ts/components/Spacing/index.d.ts +2 -1
  340. package/dist-ts/components/Spacing/index.js +2 -1
  341. package/dist-ts/components/Spacing/index.js.map +1 -1
  342. package/dist-ts/components/StaticScroller/index.d.ts +2 -1
  343. package/dist-ts/components/StaticScroller/index.js +2 -1
  344. package/dist-ts/components/StaticScroller/index.js.map +1 -1
  345. package/dist-ts/components/Switch/index.d.ts +2 -1
  346. package/dist-ts/components/Switch/index.js +2 -1
  347. package/dist-ts/components/Switch/index.js.map +1 -1
  348. package/dist-ts/components/Table/index.d.ts +2 -1
  349. package/dist-ts/components/Table/index.js +2 -1
  350. package/dist-ts/components/Table/index.js.map +1 -1
  351. package/dist-ts/components/Tabs/index.d.ts +2 -1
  352. package/dist-ts/components/Tabs/index.js +2 -1
  353. package/dist-ts/components/Tabs/index.js.map +1 -1
  354. package/dist-ts/components/Text/index.d.ts +2 -1
  355. package/dist-ts/components/Text/index.js +2 -1
  356. package/dist-ts/components/Text/index.js.map +1 -1
  357. package/dist-ts/components/Transition/Transition.d.ts +4 -4
  358. package/dist-ts/components/Transition/index.d.ts +2 -1
  359. package/dist-ts/components/Transition/index.js +2 -1
  360. package/dist-ts/components/Transition/index.js.map +1 -1
  361. package/dist-ts/components/UncontrolledTransition/UncontrolledTransition.d.ts +1 -1
  362. package/dist-ts/components/WalletConnectionWrapper/index.d.ts +2 -1
  363. package/dist-ts/components/WalletConnectionWrapper/index.js +2 -1
  364. package/dist-ts/components/WalletConnectionWrapper/index.js.map +1 -1
  365. package/dist-ts/components/utilitary/ScrollAndFocusLock/index.d.ts +2 -1
  366. package/dist-ts/components/utilitary/ScrollAndFocusLock/index.js +2 -1
  367. package/dist-ts/components/utilitary/ScrollAndFocusLock/index.js.map +1 -1
  368. package/dist-ts/hooks/useAsyncControl.d.ts +2 -2
  369. package/dist-ts/hooks/useHero.js +5 -4
  370. package/dist-ts/hooks/useHero.js.map +1 -1
  371. package/dist-ts/index.d.ts +228 -2
  372. package/dist-ts/index.js +228 -2
  373. package/dist-ts/index.js.map +1 -1
  374. package/dist-ts/index.preprocess.d.ts +1 -0
  375. package/dist-ts/index.preprocess.js +66 -0
  376. package/dist-ts/index.preprocess.js.map +1 -0
  377. package/dist-ts/test.d.ts +0 -0
  378. package/dist-ts/test.js +2 -0
  379. package/dist-ts/test.js.map +1 -0
  380. package/dist-ts/utils/e2e.d.ts +4 -2
  381. package/dist-ts/utils/e2e.js +1 -1
  382. package/dist-ts/utils/e2e.js.map +1 -1
  383. package/dist-ts/utils/test.d.ts +1 -0
  384. package/dist-ts/utils/test.js +1 -0
  385. package/dist-ts/utils/test.js.map +1 -1
  386. package/package.json +13 -5
  387. package/src/components/AdaptiveButton/index.tsx +2 -1
  388. package/src/components/AdaptiveContainer/index.tsx +2 -1
  389. package/src/components/AdaptiveDialog/index.tsx +2 -1
  390. package/src/components/AdaptiveSidebar/index.tsx +2 -1
  391. package/src/components/AnchoredTooltip/index.tsx +2 -1
  392. package/src/components/AnimatedEntrance/index.tsx +2 -5
  393. package/src/components/AsyncWrapper/index.tsx +2 -1
  394. package/src/components/Avatar/index.tsx +2 -1
  395. package/src/components/BucketFill/index.tsx +2 -1
  396. package/src/components/Button/index.tsx +2 -1
  397. package/src/components/Card/index.tsx +2 -1
  398. package/src/components/Chart/Chart.tsx +2 -0
  399. package/src/components/Chart/Chart.view.tsx +2 -1
  400. package/src/components/Chart/index.tsx +2 -1
  401. package/src/components/CheckBox/index.tsx +2 -1
  402. package/src/components/CodeInput/index.tsx +2 -1
  403. package/src/components/Collapsable/index.tsx +2 -1
  404. package/src/components/Countdown/index.tsx +2 -1
  405. package/src/components/CurrencyInput/index.tsx +2 -1
  406. package/src/components/Divider/index.tsx +2 -1
  407. package/src/components/EmailInput/index.tsx +2 -1
  408. package/src/components/FadeIn/index.tsx +2 -1
  409. package/src/components/FileInput/View/BigFactory/index.tsx +2 -1
  410. package/src/components/FileInput/View/Compact/index.tsx +2 -1
  411. package/src/components/FileInput/index.tsx +2 -1
  412. package/src/components/FlowController/index.tsx +2 -1
  413. package/src/components/Form/index.ts +1 -0
  414. package/src/components/Form/v2/FormField/Extensions/DateField/index.tsx +2 -1
  415. package/src/components/Form/v2/FormField/Extensions/PhoneField/index.tsx +2 -1
  416. package/src/components/Form/v2/FormField/index.tsx +2 -1
  417. package/src/components/Form/v2/index.tsx +2 -1
  418. package/src/components/Freeze/index.tsx +2 -1
  419. package/src/components/HSForms/index.tsx +2 -1
  420. package/src/components/Header/index.tsx +2 -1
  421. package/src/components/HeaderCloseBtn/index.tsx +2 -1
  422. package/src/components/InfinityScroll/index.tsx +2 -1
  423. package/src/components/Input/index.tsx +2 -1
  424. package/src/components/InstantCounter/index.tsx +2 -1
  425. package/src/components/LavaLamp/index.tsx +2 -1
  426. package/src/components/LinkToId/index.tsx +2 -1
  427. package/src/components/Loader/index.tsx +2 -1
  428. package/src/components/LoaderDotsIndicator/index.tsx +2 -1
  429. package/src/components/LoopableVideo/index.tsx +2 -1
  430. package/src/components/MainGrid/index.tsx +2 -1
  431. package/src/components/MutableHamburgerButton/index.tsx +2 -1
  432. package/src/components/Notification/index.tsx +2 -1
  433. package/src/components/OrderableList/index.tsx +2 -1
  434. package/src/components/PaginationIndicator/index.tsx +2 -1
  435. package/src/components/Parallax/Parallax.tsx +8 -31
  436. package/src/components/Parallax/index.tsx +2 -1
  437. package/src/components/PasswordInput/index.tsx +2 -1
  438. package/src/components/PingPongText/index.tsx +2 -1
  439. package/src/components/PixelatedScan/index.tsx +2 -1
  440. package/src/components/Portal/index.tsx +2 -1
  441. package/src/components/ProgressBar/index.tsx +2 -1
  442. package/src/components/ProgressTexts/index.tsx +2 -1
  443. package/src/components/Radio/index.tsx +2 -1
  444. package/src/components/SectionContainer/index.tsx +2 -1
  445. package/src/components/Select/index.tsx +2 -1
  446. package/src/components/Skeleton/index.tsx +2 -1
  447. package/src/components/Spacing/index.tsx +2 -1
  448. package/src/components/StaticScroller/index.tsx +2 -1
  449. package/src/components/Switch/index.tsx +2 -1
  450. package/src/components/Table/index.tsx +2 -1
  451. package/src/components/Tabs/index.tsx +2 -1
  452. package/src/components/Text/index.tsx +2 -1
  453. package/src/components/Transition/index.tsx +2 -1
  454. package/src/components/UncontrolledTransition/index.tsx +1 -1
  455. package/src/components/WalletConnectionWrapper/index.tsx +2 -1
  456. package/src/components/utilitary/ScrollAndFocusLock/index.tsx +2 -1
  457. package/src/hooks/useHero.ts +7 -5
  458. package/src/index.preprocess.ts +82 -0
  459. package/src/index.ts +228 -2
  460. package/src/test.tsx +0 -0
  461. package/src/utils/e2e.ts +7 -4
  462. package/src/utils/test.ts +1 -0
@@ -3,12 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "TransitionAnimationTypes", {
7
- enumerable: true,
8
- get: function () {
9
- return _Transition.TransitionAnimationTypes;
10
- }
11
- });
6
+ var _exportNames = {};
12
7
  Object.defineProperty(exports, "default", {
13
8
  enumerable: true,
14
9
  get: function () {
@@ -16,5 +11,16 @@ Object.defineProperty(exports, "default", {
16
11
  }
17
12
  });
18
13
  var _Transition = _interopRequireWildcard(require("./Transition"));
14
+ Object.keys(_Transition).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _Transition[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _Transition[key];
22
+ }
23
+ });
24
+ });
19
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RyYW5zaXRpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQsIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcyB9IGZyb20gXCIuL1RyYW5zaXRpb25cIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBaUUsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLENBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBIiwiaWdub3JlTGlzdCI6W119
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJzZXQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UcmFuc2l0aW9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vVHJhbnNpdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHJhbnNpdGlvblwiOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixXQUFBLEVBQUFLLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQU4sV0FBQSxDQUFBTSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBZCxXQUFBLENBQUFNLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFBNkIsU0FBQUwsd0JBQUFjLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFoQix1QkFBQSxZQUFBQSxDQUFBYyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFQLEdBQUEsQ0FBQUMsQ0FBQSxHQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxFQUFBUSxDQUFBLGdCQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQVIsY0FBQSxDQUFBQyxJQUFBLENBQUFNLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQWxCLE1BQUEsQ0FBQVMsY0FBQSxLQUFBVCxNQUFBLENBQUF5Qix3QkFBQSxDQUFBYixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBUixHQUFBLElBQUFRLENBQUEsQ0FBQUssR0FBQSxJQUFBTixDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -10,7 +10,7 @@ export declare const UncontrolledTransition: React.ForwardRefExoticComponent<({
10
10
  lockTransitionWidth?: boolean | undefined;
11
11
  lockTransitionHeight?: boolean | undefined;
12
12
  onDiscardStep?: ((key: Key) => void) | undefined;
13
- } & Pick<TransitionProps, "contentStyle"> & TransitionTypeDefinitions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, any>, "className" | "children" | "ref">) & React.RefAttributes<{
13
+ } & Pick<TransitionProps, "contentStyle"> & TransitionTypeDefinitions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, any>, "children" | "ref" | "className">) & React.RefAttributes<{
14
14
  setOrientation: (orientation: "forward" | "backward") => void;
15
15
  sectionRef: RefObject<HTMLDivElement | null>;
16
16
  }>>;
@@ -23,4 +23,4 @@ Object.keys(_UncontrolledTransition).forEach(function (key) {
23
23
  });
24
24
  });
25
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVW5jb250cm9sbGVkVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJzZXQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSx1QkFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSix1QkFBQSxFQUFBSyxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUFOLHVCQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLHVCQUFBLENBQUFNLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFBeUMsU0FBQUwsd0JBQUFjLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFoQix1QkFBQSxZQUFBQSxDQUFBYyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFQLEdBQUEsQ0FBQUMsQ0FBQSxHQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxFQUFBUSxDQUFBLGdCQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQVIsY0FBQSxDQUFBQyxJQUFBLENBQUFNLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQWxCLE1BQUEsQ0FBQVMsY0FBQSxLQUFBVCxNQUFBLENBQUF5Qix3QkFBQSxDQUFBYixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBUixHQUFBLElBQUFRLENBQUEsQ0FBQUssR0FBQSxJQUFBTixDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVW5jb250cm9sbGVkVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJzZXQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VbmNvbnRyb2xsZWRUcmFuc2l0aW9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVW5jb250cm9sbGVkVHJhbnNpdGlvblwiOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosdUJBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTix1QkFBQSxDQUFBTSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBZCx1QkFBQSxDQUFBTSxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQXlDLFNBQUFMLHdCQUFBYyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBaEIsdUJBQUEsWUFBQUEsQ0FBQWMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBUCxHQUFBLENBQUFDLENBQUEsR0FBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFSLGNBQUEsQ0FBQUMsSUFBQSxDQUFBTSxDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFsQixNQUFBLENBQUFTLGNBQUEsS0FBQVQsTUFBQSxDQUFBeUIsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQVIsR0FBQSxJQUFBUSxDQUFBLENBQUFLLEdBQUEsSUFBQU4sQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1,2 @@
1
- export { default, BaseWalletConnectionWrapper } from './WalletConnectionWrapper';
1
+ export { default } from "./WalletConnectionWrapper";
2
+ export * from "./WalletConnectionWrapper";
@@ -3,12 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "BaseWalletConnectionWrapper", {
7
- enumerable: true,
8
- get: function () {
9
- return _WalletConnectionWrapper.BaseWalletConnectionWrapper;
10
- }
11
- });
6
+ var _exportNames = {};
12
7
  Object.defineProperty(exports, "default", {
13
8
  enumerable: true,
14
9
  get: function () {
@@ -16,5 +11,16 @@ Object.defineProperty(exports, "default", {
16
11
  }
17
12
  });
18
13
  var _WalletConnectionWrapper = _interopRequireWildcard(require("./WalletConnectionWrapper"));
14
+ Object.keys(_WalletConnectionWrapper).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _WalletConnectionWrapper[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _WalletConnectionWrapper[key];
22
+ }
23
+ });
24
+ });
19
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9XYWxsZXRDb25uZWN0aW9uV3JhcHBlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCwgQmFzZVdhbGxldENvbm5lY3Rpb25XcmFwcGVyIH0gZnJvbSAnLi9XYWxsZXRDb25uZWN0aW9uV3JhcHBlcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsd0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUFpRixTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsQ0FBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwic2V0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvV2FsbGV0Q29ubmVjdGlvbldyYXBwZXIvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9XYWxsZXRDb25uZWN0aW9uV3JhcHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vV2FsbGV0Q29ubmVjdGlvbldyYXBwZXJcIjsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLHdCQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLHdCQUFBLEVBQUFLLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQU4sd0JBQUEsQ0FBQU0sR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQWQsd0JBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUEwQyxTQUFBTCx3QkFBQWMsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWhCLHVCQUFBLFlBQUFBLENBQUFjLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQVAsR0FBQSxDQUFBQyxDQUFBLEdBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBUixjQUFBLENBQUFDLElBQUEsQ0FBQU0sQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBbEIsTUFBQSxDQUFBUyxjQUFBLEtBQUFULE1BQUEsQ0FBQXlCLHdCQUFBLENBQUFiLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLENBQUFSLEdBQUEsSUFBQVEsQ0FBQSxDQUFBSyxHQUFBLElBQUFOLENBQUEsQ0FBQUUsQ0FBQSxFQUFBUCxDQUFBLEVBQUFNLENBQUEsSUFBQUMsQ0FBQSxDQUFBUCxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxXQUFBTyxDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1,2 @@
1
- export { default } from './ScrollAndFocusLock';
1
+ export { default } from "./ScrollAndFocusLock";
2
+ export * from "./ScrollAndFocusLock";
@@ -3,12 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {};
6
7
  Object.defineProperty(exports, "default", {
7
8
  enumerable: true,
8
9
  get: function () {
9
10
  return _ScrollAndFocusLock.default;
10
11
  }
11
12
  });
12
- var _ScrollAndFocusLock = _interopRequireDefault(require("./ScrollAndFocusLock"));
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2Nyb2xsQW5kRm9jdXNMb2NrIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy91dGlsaXRhcnkvU2Nyb2xsQW5kRm9jdXNMb2NrL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9TY3JvbGxBbmRGb2N1c0xvY2snO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
13
+ var _ScrollAndFocusLock = _interopRequireWildcard(require("./ScrollAndFocusLock"));
14
+ Object.keys(_ScrollAndFocusLock).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _ScrollAndFocusLock[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ScrollAndFocusLock[key];
22
+ }
23
+ });
24
+ });
25
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2Nyb2xsQW5kRm9jdXNMb2NrIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsInNldCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3V0aWxpdGFyeS9TY3JvbGxBbmRGb2N1c0xvY2svaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9TY3JvbGxBbmRGb2N1c0xvY2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1Njcm9sbEFuZEZvY3VzTG9ja1wiOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsbUJBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosbUJBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixtQkFBQSxDQUFBTSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBZCxtQkFBQSxDQUFBTSxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQXFDLFNBQUFMLHdCQUFBYyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBaEIsdUJBQUEsWUFBQUEsQ0FBQWMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBUCxHQUFBLENBQUFDLENBQUEsR0FBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFSLGNBQUEsQ0FBQUMsSUFBQSxDQUFBTSxDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFsQixNQUFBLENBQUFTLGNBQUEsS0FBQVQsTUFBQSxDQUFBeUIsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQVIsR0FBQSxJQUFBUSxDQUFBLENBQUFLLEdBQUEsSUFBQU4sQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -20,8 +20,8 @@ export declare function useAsyncControl<E = any, F extends {
20
20
  } = {}>(functionsToWrap?: F): {
21
21
  process: (asyncFn: Promise<any> | (() => Promise<any>)) => Promise<any>;
22
22
  loading: boolean;
23
- error: E | Error | undefined;
24
- setError: import("react").Dispatch<SetStateAction<E | Error | undefined>>;
23
+ error: Error | E | undefined;
24
+ setError: import("react").Dispatch<SetStateAction<Error | E | undefined>>;
25
25
  setLoading: import("react").Dispatch<SetStateAction<boolean>>;
26
26
  } & F;
27
27
  /**
@@ -114,7 +114,8 @@ function useHero(id) {
114
114
  // Since a transition is now triggering from the old element, he cannot be considered for other transitions
115
115
  otherElement.removeAttribute(dataProperty);
116
116
  function willTheHeroMove(origin, target) {
117
- return !(origin.top === target.top && origin.left === target.left && origin.width === target.width && origin.height === target.height);
117
+ const willItMove = !(Math.trunc(origin.top) === Math.trunc(target.top) && Math.trunc(origin.left) === Math.trunc(target.left) && Math.trunc(origin.width) === Math.trunc(target.width) && Math.trunc(origin.height) === Math.trunc(target.height));
118
+ return willItMove;
118
119
  }
119
120
 
120
121
  /**
@@ -265,4 +266,4 @@ const TRANSITION_FACTORY = exports.TRANSITION_FACTORY = {
265
266
  }
266
267
  })
267
268
  };
268
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX293bkV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VIZXJvTW9kdWxlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIklEIiwiaWQiLCJjb25jYXQiLCJ2aWV3cG9ydCIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0IiwiREFUQV9UQUdfSEVST19DT01QT05FTlQiLCJ0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMiLCJjbG9uZSIsImNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIiLCJvcmlnaW4iLCJpZHNUaGF0V2lsbEFwcGVhciIsIm1hcCIsImEiLCJnZXRBdHRyaWJ1dGUiLCJwcmVleGlzdGluZ0NvbXBvbmVudHMiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwicmVtb3ZlZEVsZW1lbnRzIiwiZWwiLCJpbmNsdWRlcyIsImVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQiLCJoZWlnaHRLZXkiLCJzdHlsZSIsImNsaWVudEhlaWdodCIsInNldFRpbWVvdXQiLCJvcGFjaXR5IiwiY29tcG9uZW50VGhhdFdpbGxBcHBlYXIiLCJhbHJlYWR5SW5qZWN0ZWRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInJlY3Vyc2l2ZUJ1aWxkUGF0aCIsImZyb21FbGVtZW50IiwicGF0aFN1ZmZpeCIsInVuZGVmaW5lZCIsInBhcmVudCIsInBhcmVudEVsZW1lbnQiLCJwYXJlbnRDaGlsZHMiLCJjaGlsZHJlbiIsImVsQ2hpbGRTZWxlY3RvciIsImluZGV4T2YiLCJ3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnQiLCJpbnNlcnRBdEluZGV4IiwidGFyZ2V0RWxlbWVudENsb25lIiwiY2xvbmVOb2RlIiwic2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudCIsInJlbWFpbmluZ0luZGV4ZXMiLCJhcHBlbmQiLCJpbnNlcnRCZWZvcmUiLCJjaGlsZE5vZGVzIiwiaXRlbSIsIkFMV0FZU19UUkFOU0lUSU9OIiwidXNlSGVybyIsIm9wdGlvbnMiLCJwcm9wc1RvVHJhbnNpdGlvbiIsImV2ZW50cyIsIl9wIiwiZGF0YVByZWZmaXgiLCJyZXBlYXRhYmxlIiwidXNlTWVtbyIsInAiLCJyZXBsYWNlIiwiXyIsInZhbCIsInRvTG93ZXJDYXNlIiwiX2RhdGFQcmVmZml4IiwiZGF0YVByb3BlcnR5IiwiaGVyb1JlZiIsInVzZVJlZiIsInVzZUxheW91dEVmZmVjdCIsImN1cnJlbnQiLCJzZXRBdHRyaWJ1dGUiLCJnZXRIZXJvc09uU2NyZWVuIiwidXNlQ2FsbGJhY2siLCJvdGhlckVsZW1lbnRzIiwiZG9jdW1lbnQiLCJ0cmlnZ2VySGVyb0FuaW1hdGlvbiIsImFsbFByb3BzVG9UcmFuc2l0aW9uIiwib3ZlcnJpZGVQcm9wc1RvVHJhbnNpdGlvbiIsInNob3VsZEhlcm9GbiIsIm9uSGVyb0RldGVjdCIsImN1cnJlbnRFbGVtZW50IiwiY3VycmVudEVsQ29vcmRpbmF0ZXMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIm90aGVyRWxlbWVudCIsImZpbmQiLCJvcmlnaW5Db250YWluZXIiLCJ0YXJnZXRDb250YWluZXIiLCJvbkJlZm9yZVRyYW5zaXRpb24iLCJzaG91bGRTa2lwIiwiaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lciIsIm9uSGVyb1NraXAiLCJfZXZlbnRzJG9uSGVyb1NraXBwZWQiLCJvbkhlcm9Ta2lwcGVkIiwib2xkQ2xvbmUiLCJvbkhlcm9DbG9uZWQiLCJ2aXNpYmlsaXR5IiwicmVtb3ZlQXR0cmlidXRlIiwid2lsbFRoZUhlcm9Nb3ZlIiwidGFyZ2V0IiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0Iiwic2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YiLCJjb29yZGluYXRlcyIsImN1cnJlbnRDb29yZGluYXRlcyIsIndpbGxNb3ZlIiwicG9zaXRpb24iLCJpdFdvbnRNb3ZlIiwiYm9keSIsImFwcGVuZENoaWxkIiwicHJvcFRvVHJhbnNpdGlvbiIsImdldENvbXB1dGVkU3R5bGUiLCJ0cmFuc2l0aW9uIiwicHJvcCIsInN1YiIsImpvaW4iLCJlbEl0V2lsbFRyYW5zaXRpb25UbyIsImNsZWFudXAiLCJvbkhlcm9FbmQiLCJyZW1vdmUiLCJvbkhlcm9TdGFydCIsImluaXRpYWxPZmZzZXQiLCJzIiwiX3JlZiIsImQiLCJjb250YWlucyIsInNjcm9sbFRvcCIsIm1hcmdpblRvcCIsInRyYW5zaXRpb25FbmRDYiIsIm93bkV2ZW50IiwiX3JlZjIiLCJjdXJyZW50VGFyZ2V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbkNhbmNlbENiIiwidXNlRWZmZWN0IiwidHJpZ2dlciIsImhlcm9Db21wb25lbnRSZWYiLCJjb21wb25lbnRJZCIsImVsUmVmIiwiY2xhc3NMaXN0IiwiYWRkIiwiU3R5bGVzIiwiY29tcG9uZW50IiwiaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0IiwiZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0IiwiZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCIsImNvbnRhaW5lciIsIlZpc3VhbFZpZXdwb3J0IiwiY29udGFpbmVyQm91bmRzIiwiaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQiLCJjZW50ZXJQb2ludCIsInJlY3QiLCJhbmdsZSIsInBvaW50QSIsInBvaW50QiIsIk1hdGgiLCJhdGFuMiIsIlBJIiwidG9GaXhlZCIsIlRSQU5TSVRJT05fRkFDVE9SWSIsImV4cG9ydHMiLCJBQ0NFTEVSQVRJT04iLCJhY2NlbGVyYXRpb24iLCJjZW50ZXJQb2ludE9yaWdpbiIsImNlbnRlclBvaW50RGVzdGluYXRpb24iLCJhbmdsZUJldHdlZW5FbGVtZW50cyIsInZlY3RvclgiLCJzaW4iLCJ2ZWN0b3JZIiwiY29zIiwicm90YXRlWSIsIm9yaWdpblgiLCJyb3RhdGVYIiwib3JpZ2luWSIsInNldFByb3BlcnR5IiwicGVyc3BlY3RpdmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSGVyby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IG93bkV2ZW50IGZyb20gXCIuLi91dGlscy9vd25FdmVudFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi91c2VIZXJvLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IElEID0gKGlkOiBzdHJpbmcpID0+IGAke2lkfS1oZXJvYDtcbnR5cGUgU2hvdWxkU2tpcCA9IGJvb2xlYW47XG50eXBlIFJlc3VsdCA9IFtcbiAgb3JpZ2luQ29udGFpbmVyOiBFbGVtZW50IHwgVmlzdWFsVmlld3BvcnQsXG4gIHRhcmdldENvbnRhaW5lcjogRWxlbWVudCB8IFZpc3VhbFZpZXdwb3J0XG5dO1xuY29uc3Qgdmlld3BvcnQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQhO1xuY29uc3QgREFUQV9UQUdfSEVST19DT01QT05FTlQgPSBcImRhdGEtaGVyby1jb21wb25lbnRcIjtcblxuZnVuY3Rpb24gdHJpZ2dlckR5bmFtaWNDb21wb25lbnRzKFxuICBjbG9uZTogSFRNTERpdkVsZW1lbnQsXG4gIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXI6IEhUTUxEaXZFbGVtZW50W10sXG4gIG9yaWdpbjogSFRNTERpdkVsZW1lbnRcbikge1xuICBjb25zdCBpZHNUaGF0V2lsbEFwcGVhciA9IGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIubWFwKChhKSA9PlxuICAgIGEuZ2V0QXR0cmlidXRlKERBVEFfVEFHX0hFUk9fQ09NUE9ORU5UKVxuICApO1xuICBjb25zdCBwcmVleGlzdGluZ0NvbXBvbmVudHMgPSBBcnJheS5mcm9tKFxuICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfV1gKVxuICApIGFzIEhUTUxEaXZFbGVtZW50W107XG4gIGNvbnN0IHJlbW92ZWRFbGVtZW50czogSFRNTERpdkVsZW1lbnRbXSA9IHByZWV4aXN0aW5nQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgKGVsKSA9PlxuICAgICAgIWlkc1RoYXRXaWxsQXBwZWFyLmluY2x1ZGVzKGVsLmdldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVCkpXG4gICk7XG5cbiAgZm9yIChsZXQgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZCBvZiByZW1vdmVkRWxlbWVudHMpIHtcbiAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5zdHlsZVtcbiAgICAgICAgaGVpZ2h0S2V5XG4gICAgICBdID0gYCR7ZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5jbGllbnRIZWlnaHR9cHhgO1xuICB9XG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGZvciAobGV0IGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQgb2YgcmVtb3ZlZEVsZW1lbnRzKSB7XG4gICAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgICBlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkLnN0eWxlW2hlaWdodEtleV0gPSBgMHB4YDtcbiAgICAgIGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQuc3R5bGUub3BhY2l0eSA9IGAwYDtcbiAgICB9XG4gIH0sIDApO1xuXG4gIGZvciAobGV0IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyIG9mIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIpIHtcbiAgICBjb25zdCBhbHJlYWR5SW5qZWN0ZWRFbGVtZW50ID0gISFjbG9uZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfT1cIiR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuZ2V0QXR0cmlidXRlKFxuICAgICAgICBEQVRBX1RBR19IRVJPX0NPTVBPTkVOVFxuICAgICAgKX1cIl1gXG4gICAgKTtcbiAgICBpZiAoIWFscmVhZHlJbmplY3RlZEVsZW1lbnQpIHtcbiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgZnJvbUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBwYXRoU3VmZml4OiBzdHJpbmcgPSBcIlwiXG4gICAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoZnJvbUVsZW1lbnQgPT09IG9yaWdpbikgcmV0dXJuIHBhdGhTdWZmaXg7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZyb21FbGVtZW50LnBhcmVudEVsZW1lbnQhO1xuICAgICAgICBjb25zdCBwYXJlbnRDaGlsZHMgPSBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgIGNvbnN0IGVsQ2hpbGRTZWxlY3RvciA9IGA6bnRoLWNoaWxkKCR7XG4gICAgICAgICAgcGFyZW50Q2hpbGRzLmluZGV4T2YoZnJvbUVsZW1lbnQpICsgMVxuICAgICAgICB9KWA7XG5cbiAgICAgICAgaWYgKGZyb21FbGVtZW50ICE9PSBvcmlnaW4pXG4gICAgICAgICAgcmV0dXJuIHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgIGAke2VsQ2hpbGRTZWxlY3Rvcn0ke3BhdGhTdWZmaXggPyBgPiR7cGF0aFN1ZmZpeH1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgZWxzZSByZXR1cm4gcGF0aFN1ZmZpeDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdoYXRJc1RoZUVsZW1lbnRQYXRoRnJvbUNsb25lRWxlbWVudCA9IHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgY29tcG9uZW50VGhhdFdpbGxBcHBlYXIucGFyZW50RWxlbWVudCFcbiAgICAgICk7XG4gICAgICBjb25zdCBpbnNlcnRBdEluZGV4ID0gQXJyYXkuZnJvbShcbiAgICAgICAgY29tcG9uZW50VGhhdFdpbGxBcHBlYXIucGFyZW50RWxlbWVudCEuY2hpbGRyZW5cbiAgICAgICkuaW5kZXhPZihjb21wb25lbnRUaGF0V2lsbEFwcGVhcik7XG5cbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbG9uZSA9IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGZvciAobGV0IGhlaWdodEtleSBvZiBbXCJoZWlnaHRcIiwgXCJtaW5IZWlnaHRcIiwgXCJtYXhIZWlnaHRcIl0gYXMgY29uc3QpXG4gICAgICAgIHRhcmdldEVsZW1lbnRDbG9uZS5zdHlsZVtoZWlnaHRLZXldID0gXCIwcHhcIjtcbiAgICAgIGNvbnN0IHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQgPSB3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnRcbiAgICAgICAgPyBjbG9uZS5xdWVyeVNlbGVjdG9yKHdoYXRJc1RoZUVsZW1lbnRQYXRoRnJvbUNsb25lRWxlbWVudCkhXG4gICAgICAgIDogY2xvbmU7XG4gICAgICBjb25zdCByZW1haW5pbmdJbmRleGVzID0gQXJyYXkuZnJvbShzaG91bGRCZUluc2VydGVkQXRFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAubWFwKChlbCwgaSkgPT5cbiAgICAgICAgICByZW1vdmVkRWxlbWVudHMuaW5jbHVkZXMoZWwgYXMgSFRNTERpdkVsZW1lbnQpID8gdW5kZWZpbmVkIDogaVxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT09IHVuZGVmaW5lZCkgYXMgbnVtYmVyW107XG5cbiAgICAgIGlmIChpbnNlcnRBdEluZGV4ID09PSByZW1haW5pbmdJbmRleGVzLmxlbmd0aClcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5hcHBlbmQodGFyZ2V0RWxlbWVudENsb25lKTtcbiAgICAgIGVsc2VcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudENsb25lLFxuICAgICAgICAgIHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQuY2hpbGROb2Rlcy5pdGVtKFxuICAgICAgICAgICAgcmVtYWluaW5nSW5kZXhlc1tpbnNlcnRBdEluZGV4XVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgICAgIHRhcmdldEVsZW1lbnRDbG9uZS5zdHlsZVtcbiAgICAgICAgICAgIGhlaWdodEtleVxuICAgICAgICAgIF0gPSBgJHtjb21wb25lbnRUaGF0V2lsbEFwcGVhci5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IEFMV0FZU19UUkFOU0lUSU9OID0gW1widG9wXCIsIFwibGVmdFwiXTtcblxuLyoqXG4gKiBUaGlzIGhvb2sgaW1wbGVtZW50cyB0aGUgbG9naWMgZm9yIGEgaGVybyBhbmltYXRpb24gYmV0d2VlbiAyIGVsZW1lbnRzIHNoYXJpbmcgdGhlIHNhbWUgaWRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlSGVybyhcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDx7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IEV4Y2x1ZGU8XG4gICAgICBrZXlvZiBDU1NQcm9wZXJ0aWVzLFxuICAgICAgXCJ3aWR0aFwiIHwgXCJoZWlnaHRcIiB8IFwidG9wXCIgfCBcImxlZnRcIlxuICAgID5bXTtcbiAgICAvKiogSWYgc2V0LCB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzICh3aWR0aCwgaGVpZ2h0LCBldGMuLi4pIHdpbGwgbm90IHRyYW5zaXRpb24sIGFuZCBwcm9wc1RvVHJhbnNpdGlvbiB3aWxsIGJlIHRoZSBvbmx5IG9uZXMgdGhhdCB3aWxsIGJlIHRyYW5zaXRpb25lZCAqL1xuICAgIG92ZXJyaWRlUHJvcHNUb1RyYW5zaXRpb246IGJvb2xlYW47XG5cbiAgICBcImRhdGEtcHJlZmZpeFwiOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHRoaXMgaGVybyBhbmltYXRpb24gd2lsbCBwcm9iYWJseSBiZSByZXBlYXRlZCBtdWx0aXBsZSB0aW1lICovXG4gICAgcmVwZWF0YWJsZTogYm9vbGVhbjtcbiAgfT4gPSB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IFtdLFxuICB9LFxuICBldmVudHM6IHtcbiAgICAvKipcbiAgICAgKiBTaG91bGQgcmV0dXJuIGlmIHRoZSBkZXRlY3RlZCBlbGVtZW50IHNob3VsZCBiZSBcImhlcm9lZFwiXG4gICAgICpcbiAgICAgKiBVc2VmdWxsIGZvciB3aGVuIHRoZSBoZXJvIGhhcyAyIHBvc3NpYmxlIG9yaWdpbnMuXG4gICAgICogRm9yIGV4YW1wbGUsIG9uZSBjb3VsZCBoZXJvIG9ubHkgdGhlIGN1cnJlbnQgaG92ZXJlZCBlbGVtZW50IHdpdGggZWwubWF0Y2hlcyhcIjpob3ZlclwiKVxuICAgICAqL1xuICAgIG9uSGVyb0RldGVjdD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRG8gc29tZXRoaW5nIHdoZW4gdGhlIGhlcm8gZW5kc1xuICAgICAqXG4gICAgICogVXNlZnVsbCBmb3IgdHJpZ2dlcmluZyBzZWNvbmRhcnkgYW5pbWF0aW9uc1xuICAgICAqL1xuICAgIG9uSGVyb0VuZD86ICgpID0+IHZvaWQ7XG5cbiAgICAvKiogRG8gc29tZXRoaWduIHdpdGggdGhlIGNsb25lIGJlZm9yZSBpdCBnb2VzIHRvIHRoZSBodG1sICovXG4gICAgb25IZXJvQ2xvbmVkPzogKGNsb25lOiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIERvIHNvbWV0aGluZyB3aGVuIHRoZSBoZXJvIHN0YXJ0cyB0aGUgdHJhbnNpdGlvblxuICAgICAqIEhlcmUgaXQncyB1c2VmdWxsIHRvIHN3aXRjaCBjbGFzc05hbWVzIHdpdGggdGhlIHRhcmdldC5cbiAgICAgKlxuICAgICAqIElmIGRvbmUgY29ycmVjdGx5LCBpdCB3aWxsIHRyYW5zaXRpb24gZnJvbSBzdGF0ZSBhIHRvIGIgc21vb3RobHlcbiAgICAgKi9cbiAgICBvbkhlcm9TdGFydD86IChcbiAgICAgIGNsb25lOiBIVE1MRGl2RWxlbWVudCxcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGhlcm8gaXMgY29taW5nL2dvaW5nIG91dHNpZGUgdGhlIHZpZXdwb3J0XG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0IGl0J3Mgc2V0IHRvIHNraXAgYWxsIGhlcm9lcyB0aGF0IGhhdmUgdGhlc2UgY29uZGl0aW9uc1xuICAgICAqXG4gICAgICogQHJldHVybnMgSWYgdGhlIGhlcm8gc2hvdWxkIGJlIHNraXBwZWQgb3Igbm90XG4gICAgICovXG4gICAgb25IZXJvU2tpcD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBTaG91bGRTa2lwO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gYSBoZXJvIGlzIHNraXBwZWRcbiAgICAgKi9cbiAgICBvbkhlcm9Ta2lwcGVkPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJlZm9yZSB0cmFuc2l0aW9uIHN0YXJ0LCBzZXR1cCB0aGUgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgaGVybyBhbmltYXRpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGFpbmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBoZXJvIGlzIG91dCBvciBpbiB0aGUgdmlld1xuICAgICAqL1xuICAgIG9uQmVmb3JlVHJhbnNpdGlvbj86IChcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiBSZXN1bHQgfCBSZWFkb25seTxSZXN1bHQ+O1xuICB9ID0ge31cbikge1xuICBjb25zdCB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IF9wID0gW10sXG4gICAgXCJkYXRhLXByZWZmaXhcIjogZGF0YVByZWZmaXgsXG4gICAgcmVwZWF0YWJsZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHByb3BzVG9UcmFuc2l0aW9uID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgX3AubWFwKChwKSA9PiBwLnJlcGxhY2UoLyhbQS1aXSkvZywgKF8sIHZhbCkgPT4gYC0ke3ZhbC50b0xvd2VyQ2FzZSgpfWApKSxcbiAgICBbX3BdXG4gICk7XG4gIGNvbnN0IF9kYXRhUHJlZmZpeCA9IGRhdGFQcmVmZml4ID8gYC0ke2RhdGFQcmVmZml4fWAgOiBcIlwiO1xuICBjb25zdCBkYXRhUHJvcGVydHkgPSBgZGF0YSR7X2RhdGFQcmVmZml4fS1oZXJvYDtcbiAgY29uc3QgaGVyb1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBoZXJvUmVmLmN1cnJlbnQhLnNldEF0dHJpYnV0ZShkYXRhUHJvcGVydHksIGlkKTtcbiAgfSwgW2lkXSk7XG5cbiAgY29uc3QgZ2V0SGVyb3NPblNjcmVlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBvdGhlckVsZW1lbnRzID0gKFxuICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgWyR7ZGF0YVByb3BlcnR5fT1cIiR7aWR9XCJdYClcbiAgICAgICkgYXMgSFRNTERpdkVsZW1lbnRbXVxuICAgICkuZmlsdGVyKChlbCkgPT4gZWwgIT09IGhlcm9SZWYuY3VycmVudCk7XG4gICAgcmV0dXJuIG90aGVyRWxlbWVudHM7XG4gIH0sIFtpZF0pO1xuXG4gIGZ1bmN0aW9uIHRyaWdnZXJIZXJvQW5pbWF0aW9uKCkge1xuICAgIGNvbnN0IGFsbFByb3BzVG9UcmFuc2l0aW9uID0gb3B0aW9ucy5vdmVycmlkZVByb3BzVG9UcmFuc2l0aW9uXG4gICAgICA/IFsuLi5BTFdBWVNfVFJBTlNJVElPTiwgLi4ucHJvcHNUb1RyYW5zaXRpb25dXG4gICAgICA6IFtcIndpZHRoXCIsIFwiaGVpZ2h0XCIsIC4uLkFMV0FZU19UUkFOU0lUSU9OLCAuLi5wcm9wc1RvVHJhbnNpdGlvbl07XG4gICAgY29uc3Qgc2hvdWxkSGVyb0ZuID0gZXZlbnRzLm9uSGVyb0RldGVjdCB8fCAoKC4uLmE6IGFueVtdKSA9PiB0cnVlKTtcbiAgICBjb25zdCBvdGhlckVsZW1lbnRzID0gZ2V0SGVyb3NPblNjcmVlbigpLmZpbHRlcigoZWwpID0+XG4gICAgICBzaG91bGRIZXJvRm4oZWwsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGhlcm9SZWYuY3VycmVudCE7XG4gICAgY29uc3QgY3VycmVudEVsQ29vcmRpbmF0ZXMgPSBjdXJyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIG90aGVyRWxlbWVudHMubGVuZ3RoID4gMilcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJUaGVyZSBhcmUgdG9vIG1hbnkgZWxlbWVudHMgdG8gdHJhbnNpdGlvbiB0bywgSSB3aWxsIHRyYW5zaXRpb24gdG8gdGhlIGZpcnN0IEkgZmluZFwiLFxuICAgICAgICBvdGhlckVsZW1lbnRzXG4gICAgICApO1xuICAgIGNvbnN0IG90aGVyRWxlbWVudCA9IG90aGVyRWxlbWVudHMuZmluZChcbiAgICAgIChlbCkgPT4gZWwgIT09IGhlcm9SZWYuY3VycmVudCFcbiAgICApIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaWYgKG90aGVyRWxlbWVudCkge1xuICAgICAgY29uc3QgW29yaWdpbkNvbnRhaW5lciwgdGFyZ2V0Q29udGFpbmVyXSA9IGV2ZW50cy5vbkJlZm9yZVRyYW5zaXRpb25cbiAgICAgICAgPyBldmVudHMub25CZWZvcmVUcmFuc2l0aW9uKG90aGVyRWxlbWVudCwgaGVyb1JlZi5jdXJyZW50ISlcbiAgICAgICAgOiBbdmlld3BvcnQsIHZpZXdwb3J0XTtcbiAgICAgIGNvbnN0IHNob3VsZFNraXAgPVxuICAgICAgICBpc0VsZW1lbnRPdXRzaWRlQ29udGFpbmVyKHRhcmdldENvbnRhaW5lciwgY3VycmVudEVsQ29vcmRpbmF0ZXMpIHx8XG4gICAgICAgIGlzRWxlbWVudE91dHNpZGVDb250YWluZXIoXG4gICAgICAgICAgb3JpZ2luQ29udGFpbmVyLFxuICAgICAgICAgIG90aGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICApXG4gICAgICAgICAgPyAoZXZlbnRzLm9uSGVyb1NraXAgfHwgKCgpID0+IHRydWUpKShvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIGlmIChzaG91bGRTa2lwKSB7XG4gICAgICAgIGV2ZW50cy5vbkhlcm9Ta2lwcGVkPy4oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkQ2xvbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgWyR7ZGF0YVByb3BlcnR5fS1jbG9uZT1cIiR7SUQoaWQpfVwiXWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjbG9uZSA9IChvbGRDbG9uZSB8fFxuICAgICAgICBvdGhlckVsZW1lbnQuY2xvbmVOb2RlKHRydWUpKSBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgaWYgKGV2ZW50cy5vbkhlcm9DbG9uZWQgJiYgIW9sZENsb25lKSBldmVudHMub25IZXJvQ2xvbmVkKGNsb25lKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgdGhvcyBwcm9wZXJ0aWVzIHRoYXQgY2FuIGNhdXNlIGNvbmZ1c2lvbiBzaW5jZSBpdCdzIGEgY2xvbmVcbiAgICAgIGNsb25lLnN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgY2xvbmUucmVtb3ZlQXR0cmlidXRlKGRhdGFQcm9wZXJ0eSk7XG5cbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShgJHtkYXRhUHJvcGVydHl9LWNsb25lYCwgSUQoaWQpKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBJZiBpdCdzIHJlcGVhdGFibGUsIHdlIHNob3VsZCBrZWVwIHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBoZXJvIGV4aXN0YW5jZVxuICAgICAgICovXG4gICAgICBpZiAoIXJlcGVhdGFibGUpXG4gICAgICAgIC8vIFNpbmNlIGEgdHJhbnNpdGlvbiBpcyBub3cgdHJpZ2dlcmluZyBmcm9tIHRoZSBvbGQgZWxlbWVudCwgaGUgY2Fubm90IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRyYW5zaXRpb25zXG4gICAgICAgIG90aGVyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZGF0YVByb3BlcnR5KTtcblxuICAgICAgZnVuY3Rpb24gd2lsbFRoZUhlcm9Nb3ZlKG9yaWdpbjogRE9NUmVjdCwgdGFyZ2V0OiBET01SZWN0KSB7XG4gICAgICAgIHJldHVybiAhKFxuICAgICAgICAgIG9yaWdpbi50b3AgPT09IHRhcmdldC50b3AgJiZcbiAgICAgICAgICBvcmlnaW4ubGVmdCA9PT0gdGFyZ2V0LmxlZnQgJiZcbiAgICAgICAgICBvcmlnaW4ud2lkdGggPT09IHRhcmdldC53aWR0aCAmJlxuICAgICAgICAgIG9yaWdpbi5oZWlnaHQgPT09IHRhcmdldC5oZWlnaHRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGVsXG4gICAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGlmIGl0IHdpbGwgbW92ZVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBzZXRDbG9uZVRvQ29vcmRpbmF0ZXNPZihlbDogSFRNTERpdkVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgY3VycmVudENvb3JkaW5hdGVzID0gY2xvbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbGxNb3ZlID0gd2lsbFRoZUhlcm9Nb3ZlKGNvb3JkaW5hdGVzLCBjdXJyZW50Q29vcmRpbmF0ZXMpO1xuXG4gICAgICAgIGNsb25lLnN0eWxlLnBvc2l0aW9uID0gXCJmaXhlZFwiO1xuICAgICAgICBjbG9uZS5zdHlsZS50b3AgPSBgJHtjb29yZGluYXRlcy50b3B9cHhgO1xuICAgICAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7Y29vcmRpbmF0ZXMubGVmdH1weGA7XG4gICAgICAgIGlmIChhbGxQcm9wc1RvVHJhbnNpdGlvbi5pbmNsdWRlcyhcIndpZHRoXCIpKVxuICAgICAgICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7Y29vcmRpbmF0ZXMud2lkdGh9cHhgO1xuICAgICAgICBpZiAoYWxsUHJvcHNUb1RyYW5zaXRpb24uaW5jbHVkZXMoXCJoZWlnaHRcIikpXG4gICAgICAgICAgY2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7Y29vcmRpbmF0ZXMuaGVpZ2h0fXB4YDtcblxuICAgICAgICByZXR1cm4gd2lsbE1vdmU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gb3RoZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY3VycmVudENvb3JkaW5hdGVzID0gaGVyb1JlZi5jdXJyZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGl0V29udE1vdmUgPSAhd2lsbFRoZUhlcm9Nb3ZlKGNvb3JkaW5hdGVzLCBjdXJyZW50Q29vcmRpbmF0ZXMpO1xuICAgICAgaWYgKGl0V29udE1vdmUpIHJldHVybjtcblxuICAgICAgaWYgKCFvbGRDbG9uZSkge1xuICAgICAgICAvKiogU2V0IHRoZSBjbG9uZSBvdmVyIHRoZSBzdGFydGluZyBlbGVtZW50ICovXG4gICAgICAgIHNldENsb25lVG9Db29yZGluYXRlc09mKG90aGVyRWxlbWVudCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2xvbmUpO1xuICAgICAgfVxuICAgICAgaGVyb1JlZi5jdXJyZW50IS5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcbiAgICAgIG90aGVyRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcblxuICAgICAgZm9yIChsZXQgcHJvcFRvVHJhbnNpdGlvbiBvZiBwcm9wc1RvVHJhbnNpdGlvbikge1xuICAgICAgICBjbG9uZS5zdHlsZVtwcm9wVG9UcmFuc2l0aW9uIGFzIGFueV0gPVxuICAgICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG90aGVyRWxlbWVudClbcHJvcFRvVHJhbnNpdGlvbiBhcyBhbnldO1xuICAgICAgfVxuXG4gICAgICBjbG9uZS5zdHlsZS50cmFuc2l0aW9uID0gYCR7YWxsUHJvcHNUb1RyYW5zaXRpb25cbiAgICAgICAgLm1hcChcbiAgICAgICAgICAocHJvcCkgPT5cbiAgICAgICAgICAgIGAke3Byb3AucmVwbGFjZShcbiAgICAgICAgICAgICAgL1tBLVpdL2csXG4gICAgICAgICAgICAgIChzdWIpID0+IGAtJHtzdWIudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICAgICApfSB2YXIoLS1hbmltYXRpb24tLXNwZWVkLWZhc3QsIDI1MG1zKSBlYXNlLW91dGBcbiAgICAgICAgKVxuICAgICAgICAuam9pbihcIiwgXCIpfWA7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbEl0V2lsbFRyYW5zaXRpb25UbyA9IGhlcm9SZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnRzLm9uSGVyb0VuZCkgZXZlbnRzLm9uSGVyb0VuZCgpO1xuICAgICAgICAgIGlmIChlbEl0V2lsbFRyYW5zaXRpb25Ubykge1xuICAgICAgICAgICAgaWYgKHJlcGVhdGFibGUpXG4gICAgICAgICAgICAgIGVsSXRXaWxsVHJhbnNpdGlvblRvIS5zZXRBdHRyaWJ1dGUoZGF0YVByb3BlcnR5LCBpZCk7XG4gICAgICAgICAgICBlbEl0V2lsbFRyYW5zaXRpb25Uby5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjbG9uZS5yZW1vdmUoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgdHJpZ2dlckR5bmFtaWNDb21wb25lbnRzKFxuICAgICAgICAgIGNsb25lLFxuICAgICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgICBoZXJvUmVmLmN1cnJlbnQhLnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfV1gKVxuICAgICAgICAgICkgYXMgSFRNTERpdkVsZW1lbnRbXSxcbiAgICAgICAgICBjdXJyZW50RWxlbWVudFxuICAgICAgICApO1xuICAgICAgICBpZiAoZXZlbnRzLm9uSGVyb1N0YXJ0KSB7XG4gICAgICAgICAgZXZlbnRzLm9uSGVyb1N0YXJ0KGNsb25lLCBvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZWxJdFdpbGxUcmFuc2l0aW9uVG8pIHtcbiAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qKiBTZXQgdGhlIGNsb25lIG92ZXIgdGhlIG5ldyBwb3NpdGlvbiAqL1xuICAgICAgICBjb25zdCB3aWxsTW92ZSA9IHNldENsb25lVG9Db29yZGluYXRlc09mKGVsSXRXaWxsVHJhbnNpdGlvblRvKTtcbiAgICAgICAgaWYgKCF3aWxsTW92ZSkgY2xlYW51cCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBmb3IgKGxldCBwcm9wVG9UcmFuc2l0aW9uIG9mIHByb3BzVG9UcmFuc2l0aW9uKVxuICAgICAgICAgICAgY2xvbmUuc3R5bGVbcHJvcFRvVHJhbnNpdGlvbiBhcyBhbnldID1cbiAgICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxJdFdpbGxUcmFuc2l0aW9uVG8pW1xuICAgICAgICAgICAgICAgIHByb3BUb1RyYW5zaXRpb24gYXMgYW55XG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgbGV0IGluaXRpYWxPZmZzZXQ6IG51bWJlcjtcbiAgICAgICAgICBjb25zdCBzID0gKHsgdGFyZ2V0IH06IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSB0YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoZC5jb250YWlucyhlbEl0V2lsbFRyYW5zaXRpb25UbykpIHtcbiAgICAgICAgICAgICAgaWYgKGluaXRpYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkgaW5pdGlhbE9mZnNldCA9IGQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY2xvbmUuc3R5bGUubWFyZ2luVG9wID0gYCR7LShkLnNjcm9sbFRvcCAtIGluaXRpYWxPZmZzZXQpfXB4YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IHRyYW5zaXRpb25FbmRDYiA9IG93bkV2ZW50KFxuICAgICAgICAgICAgKHsgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH06IFRyYW5zaXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSBjbGVhbnVwKCk7XG4gICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgcyBhcyBhbnksIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzIGFzIGFueSwgdHJ1ZSk7XG4gICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgdHJhbnNpdGlvbkVuZENiKTtcbiAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbnN0YXJ0XCIsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9uQ2FuY2VsQ2IgPSBvd25FdmVudCgoZSkgPT4ge1xuICAgICAgICAgICAgICBjbG9uZS5yZW1vdmVFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCB0cmFuc2l0aW9uRW5kQ2IpO1xuICAgICAgICAgICAgICBjbG9uZS5yZW1vdmVFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmNhbmNlbFwiLCBvbkNhbmNlbENiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25jYW5jZWxcIiwgb25DYW5jZWxDYik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdHJpZ2dlckhlcm9BbmltYXRpb24oKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgaGVyb1JlZixcbiAgICBnZXRIZXJvc09uU2NyZWVuLFxuICAgIHRyaWdnZXI6IHRyaWdnZXJIZXJvQW5pbWF0aW9uLFxuICAgIGhlcm9Db21wb25lbnRSZWY6XG4gICAgICAoY29tcG9uZW50SWQ6IHN0cmluZykgPT4gKGVsUmVmOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKGVsUmVmKSB7XG4gICAgICAgICAgZWxSZWYuc2V0QXR0cmlidXRlKERBVEFfVEFHX0hFUk9fQ09NUE9ORU5ULCBjb21wb25lbnRJZCk7XG4gICAgICAgICAgZWxSZWYuY2xhc3NMaXN0LmFkZChTdHlsZXMuY29tcG9uZW50KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0KGNvb3JkaW5hdGVzOiBET01SZWN0KSB7XG4gIGNvbnN0IGVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydCA9XG4gICAgY29vcmRpbmF0ZXMubGVmdCA+PSB2aWV3cG9ydC53aWR0aCB8fCBjb29yZGluYXRlcy50b3AgPj0gdmlld3BvcnQuaGVpZ2h0O1xuICBjb25zdCBlbGVtZW50VW5kZXJmbG93c1ZpZXdwb3J0ID1cbiAgICBjb29yZGluYXRlcy5sZWZ0IDw9IC1jb29yZGluYXRlcy53aWR0aCB8fFxuICAgIGNvb3JkaW5hdGVzLnRvcCA8PSAtY29vcmRpbmF0ZXMuaGVpZ2h0O1xuICByZXR1cm4gZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0IHx8IGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQ7XG59XG5cbmZ1bmN0aW9uIGlzRWxlbWVudE91dHNpZGVDb250YWluZXIoXG4gIGNvbnRhaW5lcjogVmlzdWFsVmlld3BvcnQgfCBFbGVtZW50LFxuICBjb29yZGluYXRlczogRE9NUmVjdFxuKSB7XG4gIGlmIChjb250YWluZXIgaW5zdGFuY2VvZiBWaXN1YWxWaWV3cG9ydCkge1xuICAgIHJldHVybiBpc0VsZW1lbnRPdXRzaWRlVmlld3BvcnQoY29vcmRpbmF0ZXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kcyA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzQ29udGFpbmVyT3V0c2lkZVZpZXdwb3J0ID1cbiAgICAgIGlzRWxlbWVudE91dHNpZGVWaWV3cG9ydChjb250YWluZXJCb3VuZHMpO1xuXG4gICAgaWYgKGlzQ29udGFpbmVyT3V0c2lkZVZpZXdwb3J0KSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IGVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydCA9XG4gICAgICBjb29yZGluYXRlcy5sZWZ0ID49IGNvbnRhaW5lckJvdW5kcy5sZWZ0ICsgY29udGFpbmVyQm91bmRzLndpZHRoIHx8XG4gICAgICBjb29yZGluYXRlcy50b3AgPj0gY29udGFpbmVyQm91bmRzLnRvcCArIGNvbnRhaW5lckJvdW5kcy5oZWlnaHQ7XG5cbiAgICBjb25zdCBlbGVtZW50VW5kZXJmbG93c1ZpZXdwb3J0ID1cbiAgICAgIGNvbnRhaW5lckJvdW5kcy5sZWZ0IC0gY29vcmRpbmF0ZXMubGVmdCA+PSBjb29yZGluYXRlcy53aWR0aCB8fFxuICAgICAgY29udGFpbmVyQm91bmRzLnRvcCAtIGNvb3JkaW5hdGVzLnRvcCA+PSBjb29yZGluYXRlcy5oZWlnaHQ7XG5cbiAgICByZXR1cm4gZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCB8fCBlbGVtZW50T3ZlcmZsb3dzVmlld3BvcnQ7XG4gIH1cbn1cblxudHlwZSBFVkVOVFNfSU5URVJGQUNFID0gUGFyYW1ldGVyczx0eXBlb2YgdXNlSGVybz5bMl07XG50eXBlIFRSQU5TSVRJT05fVFlQRVMgPSBcIkFDQ0VMRVJBVElPTlwiO1xuZnVuY3Rpb24gY2VudGVyUG9pbnQocmVjdDogRE9NUmVjdCkge1xuICByZXR1cm4gW3JlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMl0gYXMgY29uc3Q7XG59XG5jb25zdCBhbmdsZSA9IChcbiAgcG9pbnRBOiByZWFkb25seSBbeDogbnVtYmVyLCB5OiBudW1iZXJdLFxuICBwb2ludEI6IHJlYWRvbmx5IFt4OiBudW1iZXIsIHk6IG51bWJlcl1cbikgPT5cbiAgTnVtYmVyKFxuICAgIChcbiAgICAgIE1hdGguYXRhbjIocG9pbnRBWzFdIC0gcG9pbnRCWzFdLCBwb2ludEFbMF0gLSBwb2ludEJbMF0pICpcbiAgICAgICgxNzkuMDggLyBNYXRoLlBJKVxuICAgICkudG9GaXhlZCg1KVxuICApO1xuZXhwb3J0IGNvbnN0IFRSQU5TSVRJT05fRkFDVE9SWToge1xuICBbbiBpbiBUUkFOU0lUSU9OX1RZUEVTXTogKGV2ZW50cz86IEVWRU5UU19JTlRFUkZBQ0UpID0+IEVWRU5UU19JTlRFUkZBQ0U7XG59ID0ge1xuICBBQ0NFTEVSQVRJT046IChldmVudHMpID0+ICh7XG4gICAgLi4uZXZlbnRzLFxuICAgIG9uSGVyb1N0YXJ0KGNsb25lLCBvcmlnaW4sIHRhcmdldCkge1xuICAgICAgaWYgKGV2ZW50cz8ub25IZXJvU3RhcnQpIGV2ZW50cy5vbkhlcm9TdGFydChjbG9uZSwgb3JpZ2luLCB0YXJnZXQpO1xuICAgICAgY2xvbmUuY2xhc3NMaXN0LmFkZChTdHlsZXMuYWNjZWxlcmF0aW9uKTtcbiAgICAgIGNvbnN0IGNlbnRlclBvaW50T3JpZ2luID0gY2VudGVyUG9pbnQob3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICAgIGNvbnN0IGNlbnRlclBvaW50RGVzdGluYXRpb24gPSBjZW50ZXJQb2ludChcbiAgICAgICAgdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICApO1xuICAgICAgY29uc3QgYW5nbGVCZXR3ZWVuRWxlbWVudHMgPSBhbmdsZShcbiAgICAgICAgY2VudGVyUG9pbnRPcmlnaW4sXG4gICAgICAgIGNlbnRlclBvaW50RGVzdGluYXRpb25cbiAgICAgICk7XG4gICAgICBjb25zdCB2ZWN0b3JYID0gTWF0aC5zaW4oYW5nbGVCZXR3ZWVuRWxlbWVudHMpO1xuICAgICAgY29uc3QgdmVjdG9yWSA9IE1hdGguY29zKGFuZ2xlQmV0d2VlbkVsZW1lbnRzKTtcblxuICAgICAgY29uc3Qgcm90YXRlWSA9ICgxMCAqIHZlY3RvclkpLnRvRml4ZWQoMCk7XG4gICAgICBjb25zdCBvcmlnaW5YID0gKHZlY3RvclkgKyAxKSAqIDUwO1xuXG4gICAgICBjb25zdCByb3RhdGVYID0gLSgxMCAqIHZlY3RvclgpLnRvRml4ZWQoMCk7XG4gICAgICBjb25zdCBvcmlnaW5ZID0gKHZlY3RvclggKyAxKSAqIDUwO1xuXG4gICAgICBjbG9uZS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgXCItLXN0YWdlLTFcIixcbiAgICAgICAgYHJvdGF0ZVkoJHtyb3RhdGVZfWRlZykgcm90YXRlWCgkey1yb3RhdGVYfWRlZylgXG4gICAgICApO1xuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgIFwiLS1zdGFnZS0yXCIsXG4gICAgICAgIGByb3RhdGVZKCR7LXJvdGF0ZVkgKiAwLjN9ZGVnKSByb3RhdGVYKCR7cm90YXRlWCAqIDAuM31kZWcpYFxuICAgICAgKTtcbiAgICAgIGNsb25lLnN0eWxlLnNldFByb3BlcnR5KFwiLS1vcmlnaW4tMVwiLCBgJHtvcmlnaW5YfSUgJHtvcmlnaW5ZfSVgKTtcbiAgICAgIGNsb25lLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICBcIi0tb3JpZ2luLTJcIixcbiAgICAgICAgYCR7MTAwIC0gb3JpZ2luWH0lICR7MTAwIC0gb3JpZ2luWX0lYFxuICAgICAgKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGVyc3BlY3RpdmUgPSBcIjEwMHZ3XCI7XG4gICAgfSxcbiAgICBvbkhlcm9FbmQoKSB7XG4gICAgICBpZiAoZXZlbnRzPy5vbkhlcm9FbmQpIGV2ZW50cy5vbkhlcm9FbmQoKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGVyc3BlY3RpdmUgPSBcIlwiO1xuICAgIH0sXG4gIH0pLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVFBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUEyQyxTQUFBRSx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFD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
269
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX293bkV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VIZXJvTW9kdWxlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIklEIiwiaWQiLCJjb25jYXQiLCJ2aWV3cG9ydCIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0IiwiREFUQV9UQUdfSEVST19DT01QT05FTlQiLCJ0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMiLCJjbG9uZSIsImNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIiLCJvcmlnaW4iLCJpZHNUaGF0V2lsbEFwcGVhciIsIm1hcCIsImEiLCJnZXRBdHRyaWJ1dGUiLCJwcmVleGlzdGluZ0NvbXBvbmVudHMiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwicmVtb3ZlZEVsZW1lbnRzIiwiZWwiLCJpbmNsdWRlcyIsImVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQiLCJoZWlnaHRLZXkiLCJzdHlsZSIsImNsaWVudEhlaWdodCIsInNldFRpbWVvdXQiLCJvcGFjaXR5IiwiY29tcG9uZW50VGhhdFdpbGxBcHBlYXIiLCJhbHJlYWR5SW5qZWN0ZWRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInJlY3Vyc2l2ZUJ1aWxkUGF0aCIsImZyb21FbGVtZW50IiwicGF0aFN1ZmZpeCIsInVuZGVmaW5lZCIsInBhcmVudCIsInBhcmVudEVsZW1lbnQiLCJwYXJlbnRDaGlsZHMiLCJjaGlsZHJlbiIsImVsQ2hpbGRTZWxlY3RvciIsImluZGV4T2YiLCJ3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnQiLCJpbnNlcnRBdEluZGV4IiwidGFyZ2V0RWxlbWVudENsb25lIiwiY2xvbmVOb2RlIiwic2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudCIsInJlbWFpbmluZ0luZGV4ZXMiLCJhcHBlbmQiLCJpbnNlcnRCZWZvcmUiLCJjaGlsZE5vZGVzIiwiaXRlbSIsIkFMV0FZU19UUkFOU0lUSU9OIiwidXNlSGVybyIsIm9wdGlvbnMiLCJwcm9wc1RvVHJhbnNpdGlvbiIsImV2ZW50cyIsIl9wIiwiZGF0YVByZWZmaXgiLCJyZXBlYXRhYmxlIiwidXNlTWVtbyIsInAiLCJyZXBsYWNlIiwiXyIsInZhbCIsInRvTG93ZXJDYXNlIiwiX2RhdGFQcmVmZml4IiwiZGF0YVByb3BlcnR5IiwiaGVyb1JlZiIsInVzZVJlZiIsInVzZUxheW91dEVmZmVjdCIsImN1cnJlbnQiLCJzZXRBdHRyaWJ1dGUiLCJnZXRIZXJvc09uU2NyZWVuIiwidXNlQ2FsbGJhY2siLCJvdGhlckVsZW1lbnRzIiwiZG9jdW1lbnQiLCJ0cmlnZ2VySGVyb0FuaW1hdGlvbiIsImFsbFByb3BzVG9UcmFuc2l0aW9uIiwib3ZlcnJpZGVQcm9wc1RvVHJhbnNpdGlvbiIsInNob3VsZEhlcm9GbiIsIm9uSGVyb0RldGVjdCIsImN1cnJlbnRFbGVtZW50IiwiY3VycmVudEVsQ29vcmRpbmF0ZXMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIm90aGVyRWxlbWVudCIsImZpbmQiLCJvcmlnaW5Db250YWluZXIiLCJ0YXJnZXRDb250YWluZXIiLCJvbkJlZm9yZVRyYW5zaXRpb24iLCJzaG91bGRTa2lwIiwiaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lciIsIm9uSGVyb1NraXAiLCJfZXZlbnRzJG9uSGVyb1NraXBwZWQiLCJvbkhlcm9Ta2lwcGVkIiwib2xkQ2xvbmUiLCJvbkhlcm9DbG9uZWQiLCJ2aXNpYmlsaXR5IiwicmVtb3ZlQXR0cmlidXRlIiwid2lsbFRoZUhlcm9Nb3ZlIiwidGFyZ2V0Iiwid2lsbEl0TW92ZSIsIk1hdGgiLCJ0cnVuYyIsInRvcCIsImxlZnQiLCJ3aWR0aCIsImhlaWdodCIsInNldENsb25lVG9Db29yZGluYXRlc09mIiwiY29vcmRpbmF0ZXMiLCJjdXJyZW50Q29vcmRpbmF0ZXMiLCJ3aWxsTW92ZSIsInBvc2l0aW9uIiwiaXRXb250TW92ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInByb3BUb1RyYW5zaXRpb24iLCJnZXRDb21wdXRlZFN0eWxlIiwidHJhbnNpdGlvbiIsInByb3AiLCJzdWIiLCJqb2luIiwiZWxJdFdpbGxUcmFuc2l0aW9uVG8iLCJjbGVhbnVwIiwib25IZXJvRW5kIiwicmVtb3ZlIiwib25IZXJvU3RhcnQiLCJpbml0aWFsT2Zmc2V0IiwicyIsIl9yZWYiLCJkIiwiY29udGFpbnMiLCJzY3JvbGxUb3AiLCJtYXJnaW5Ub3AiLCJ0cmFuc2l0aW9uRW5kQ2IiLCJvd25FdmVudCIsIl9yZWYyIiwiY3VycmVudFRhcmdldCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25DYW5jZWxDYiIsInVzZUVmZmVjdCIsInRyaWdnZXIiLCJoZXJvQ29tcG9uZW50UmVmIiwiY29tcG9uZW50SWQiLCJlbFJlZiIsImNsYXNzTGlzdCIsImFkZCIsIlN0eWxlcyIsImNvbXBvbmVudCIsImlzRWxlbWVudE91dHNpZGVWaWV3cG9ydCIsImVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydCIsImVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQiLCJjb250YWluZXIiLCJWaXN1YWxWaWV3cG9ydCIsImNvbnRhaW5lckJvdW5kcyIsImlzQ29udGFpbmVyT3V0c2lkZVZpZXdwb3J0IiwiY2VudGVyUG9pbnQiLCJyZWN0IiwiYW5nbGUiLCJwb2ludEEiLCJwb2ludEIiLCJhdGFuMiIsIlBJIiwidG9GaXhlZCIsIlRSQU5TSVRJT05fRkFDVE9SWSIsImV4cG9ydHMiLCJBQ0NFTEVSQVRJT04iLCJhY2NlbGVyYXRpb24iLCJjZW50ZXJQb2ludE9yaWdpbiIsImNlbnRlclBvaW50RGVzdGluYXRpb24iLCJhbmdsZUJldHdlZW5FbGVtZW50cyIsInZlY3RvclgiLCJzaW4iLCJ2ZWN0b3JZIiwiY29zIiwicm90YXRlWSIsIm9yaWdpblgiLCJyb3RhdGVYIiwib3JpZ2luWSIsInNldFByb3BlcnR5IiwicGVyc3BlY3RpdmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSGVyby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IG93bkV2ZW50IGZyb20gXCIuLi91dGlscy9vd25FdmVudFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi91c2VIZXJvLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IElEID0gKGlkOiBzdHJpbmcpID0+IGAke2lkfS1oZXJvYDtcbnR5cGUgU2hvdWxkU2tpcCA9IGJvb2xlYW47XG50eXBlIFJlc3VsdCA9IFtcbiAgb3JpZ2luQ29udGFpbmVyOiBFbGVtZW50IHwgVmlzdWFsVmlld3BvcnQsXG4gIHRhcmdldENvbnRhaW5lcjogRWxlbWVudCB8IFZpc3VhbFZpZXdwb3J0XG5dO1xuY29uc3Qgdmlld3BvcnQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQhO1xuY29uc3QgREFUQV9UQUdfSEVST19DT01QT05FTlQgPSBcImRhdGEtaGVyby1jb21wb25lbnRcIjtcblxuZnVuY3Rpb24gdHJpZ2dlckR5bmFtaWNDb21wb25lbnRzKFxuICBjbG9uZTogSFRNTERpdkVsZW1lbnQsXG4gIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXI6IEhUTUxEaXZFbGVtZW50W10sXG4gIG9yaWdpbjogSFRNTERpdkVsZW1lbnRcbikge1xuICBjb25zdCBpZHNUaGF0V2lsbEFwcGVhciA9IGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIubWFwKChhKSA9PlxuICAgIGEuZ2V0QXR0cmlidXRlKERBVEFfVEFHX0hFUk9fQ09NUE9ORU5UKVxuICApO1xuICBjb25zdCBwcmVleGlzdGluZ0NvbXBvbmVudHMgPSBBcnJheS5mcm9tKFxuICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfV1gKVxuICApIGFzIEhUTUxEaXZFbGVtZW50W107XG4gIGNvbnN0IHJlbW92ZWRFbGVtZW50czogSFRNTERpdkVsZW1lbnRbXSA9IHByZWV4aXN0aW5nQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgKGVsKSA9PlxuICAgICAgIWlkc1RoYXRXaWxsQXBwZWFyLmluY2x1ZGVzKGVsLmdldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVCkpXG4gICk7XG5cbiAgZm9yIChsZXQgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZCBvZiByZW1vdmVkRWxlbWVudHMpIHtcbiAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5zdHlsZVtcbiAgICAgICAgaGVpZ2h0S2V5XG4gICAgICBdID0gYCR7ZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5jbGllbnRIZWlnaHR9cHhgO1xuICB9XG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGZvciAobGV0IGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQgb2YgcmVtb3ZlZEVsZW1lbnRzKSB7XG4gICAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgICBlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkLnN0eWxlW2hlaWdodEtleV0gPSBgMHB4YDtcbiAgICAgIGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQuc3R5bGUub3BhY2l0eSA9IGAwYDtcbiAgICB9XG4gIH0sIDApO1xuXG4gIGZvciAobGV0IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyIG9mIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIpIHtcbiAgICBjb25zdCBhbHJlYWR5SW5qZWN0ZWRFbGVtZW50ID0gISFjbG9uZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfT1cIiR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuZ2V0QXR0cmlidXRlKFxuICAgICAgICBEQVRBX1RBR19IRVJPX0NPTVBPTkVOVFxuICAgICAgKX1cIl1gXG4gICAgKTtcbiAgICBpZiAoIWFscmVhZHlJbmplY3RlZEVsZW1lbnQpIHtcbiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgZnJvbUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBwYXRoU3VmZml4OiBzdHJpbmcgPSBcIlwiXG4gICAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoZnJvbUVsZW1lbnQgPT09IG9yaWdpbikgcmV0dXJuIHBhdGhTdWZmaXg7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZyb21FbGVtZW50LnBhcmVudEVsZW1lbnQhO1xuICAgICAgICBjb25zdCBwYXJlbnRDaGlsZHMgPSBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgIGNvbnN0IGVsQ2hpbGRTZWxlY3RvciA9IGA6bnRoLWNoaWxkKCR7XG4gICAgICAgICAgcGFyZW50Q2hpbGRzLmluZGV4T2YoZnJvbUVsZW1lbnQpICsgMVxuICAgICAgICB9KWA7XG5cbiAgICAgICAgaWYgKGZyb21FbGVtZW50ICE9PSBvcmlnaW4pXG4gICAgICAgICAgcmV0dXJuIHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgIGAke2VsQ2hpbGRTZWxlY3Rvcn0ke3BhdGhTdWZmaXggPyBgPiR7cGF0aFN1ZmZpeH1gIDogXCJcIn1gXG4gICAgICAgICAgKTtcbiAgICAgICAgZWxzZSByZXR1cm4gcGF0aFN1ZmZpeDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdoYXRJc1RoZUVsZW1lbnRQYXRoRnJvbUNsb25lRWxlbWVudCA9IHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgY29tcG9uZW50VGhhdFdpbGxBcHBlYXIucGFyZW50RWxlbWVudCFcbiAgICAgICk7XG4gICAgICBjb25zdCBpbnNlcnRBdEluZGV4ID0gQXJyYXkuZnJvbShcbiAgICAgICAgY29tcG9uZW50VGhhdFdpbGxBcHBlYXIucGFyZW50RWxlbWVudCEuY2hpbGRyZW5cbiAgICAgICkuaW5kZXhPZihjb21wb25lbnRUaGF0V2lsbEFwcGVhcik7XG5cbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbG9uZSA9IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGZvciAobGV0IGhlaWdodEtleSBvZiBbXCJoZWlnaHRcIiwgXCJtaW5IZWlnaHRcIiwgXCJtYXhIZWlnaHRcIl0gYXMgY29uc3QpXG4gICAgICAgIHRhcmdldEVsZW1lbnRDbG9uZS5zdHlsZVtoZWlnaHRLZXldID0gXCIwcHhcIjtcbiAgICAgIGNvbnN0IHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQgPSB3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnRcbiAgICAgICAgPyBjbG9uZS5xdWVyeVNlbGVjdG9yKHdoYXRJc1RoZUVsZW1lbnRQYXRoRnJvbUNsb25lRWxlbWVudCkhXG4gICAgICAgIDogY2xvbmU7XG4gICAgICBjb25zdCByZW1haW5pbmdJbmRleGVzID0gQXJyYXkuZnJvbShzaG91bGRCZUluc2VydGVkQXRFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAubWFwKChlbCwgaSkgPT5cbiAgICAgICAgICByZW1vdmVkRWxlbWVudHMuaW5jbHVkZXMoZWwgYXMgSFRNTERpdkVsZW1lbnQpID8gdW5kZWZpbmVkIDogaVxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT09IHVuZGVmaW5lZCkgYXMgbnVtYmVyW107XG5cbiAgICAgIGlmIChpbnNlcnRBdEluZGV4ID09PSByZW1haW5pbmdJbmRleGVzLmxlbmd0aClcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5hcHBlbmQodGFyZ2V0RWxlbWVudENsb25lKTtcbiAgICAgIGVsc2VcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudENsb25lLFxuICAgICAgICAgIHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQuY2hpbGROb2Rlcy5pdGVtKFxuICAgICAgICAgICAgcmVtYWluaW5nSW5kZXhlc1tpbnNlcnRBdEluZGV4XVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBoZWlnaHRLZXkgb2YgW1wiaGVpZ2h0XCIsIFwibWluSGVpZ2h0XCIsIFwibWF4SGVpZ2h0XCJdIGFzIGNvbnN0KVxuICAgICAgICAgIHRhcmdldEVsZW1lbnRDbG9uZS5zdHlsZVtcbiAgICAgICAgICAgIGhlaWdodEtleVxuICAgICAgICAgIF0gPSBgJHtjb21wb25lbnRUaGF0V2lsbEFwcGVhci5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IEFMV0FZU19UUkFOU0lUSU9OID0gW1widG9wXCIsIFwibGVmdFwiXTtcblxuLyoqXG4gKiBUaGlzIGhvb2sgaW1wbGVtZW50cyB0aGUgbG9naWMgZm9yIGEgaGVybyBhbmltYXRpb24gYmV0d2VlbiAyIGVsZW1lbnRzIHNoYXJpbmcgdGhlIHNhbWUgaWRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlSGVybyhcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDx7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IEV4Y2x1ZGU8XG4gICAgICBrZXlvZiBDU1NQcm9wZXJ0aWVzLFxuICAgICAgXCJ3aWR0aFwiIHwgXCJoZWlnaHRcIiB8IFwidG9wXCIgfCBcImxlZnRcIlxuICAgID5bXTtcbiAgICAvKiogSWYgc2V0LCB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzICh3aWR0aCwgaGVpZ2h0LCBldGMuLi4pIHdpbGwgbm90IHRyYW5zaXRpb24sIGFuZCBwcm9wc1RvVHJhbnNpdGlvbiB3aWxsIGJlIHRoZSBvbmx5IG9uZXMgdGhhdCB3aWxsIGJlIHRyYW5zaXRpb25lZCAqL1xuICAgIG92ZXJyaWRlUHJvcHNUb1RyYW5zaXRpb246IGJvb2xlYW47XG5cbiAgICBcImRhdGEtcHJlZmZpeFwiOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHRoaXMgaGVybyBhbmltYXRpb24gd2lsbCBwcm9iYWJseSBiZSByZXBlYXRlZCBtdWx0aXBsZSB0aW1lICovXG4gICAgcmVwZWF0YWJsZTogYm9vbGVhbjtcbiAgfT4gPSB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IFtdLFxuICB9LFxuICBldmVudHM6IHtcbiAgICAvKipcbiAgICAgKiBTaG91bGQgcmV0dXJuIGlmIHRoZSBkZXRlY3RlZCBlbGVtZW50IHNob3VsZCBiZSBcImhlcm9lZFwiXG4gICAgICpcbiAgICAgKiBVc2VmdWxsIGZvciB3aGVuIHRoZSBoZXJvIGhhcyAyIHBvc3NpYmxlIG9yaWdpbnMuXG4gICAgICogRm9yIGV4YW1wbGUsIG9uZSBjb3VsZCBoZXJvIG9ubHkgdGhlIGN1cnJlbnQgaG92ZXJlZCBlbGVtZW50IHdpdGggZWwubWF0Y2hlcyhcIjpob3ZlclwiKVxuICAgICAqL1xuICAgIG9uSGVyb0RldGVjdD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRG8gc29tZXRoaW5nIHdoZW4gdGhlIGhlcm8gZW5kc1xuICAgICAqXG4gICAgICogVXNlZnVsbCBmb3IgdHJpZ2dlcmluZyBzZWNvbmRhcnkgYW5pbWF0aW9uc1xuICAgICAqL1xuICAgIG9uSGVyb0VuZD86ICgpID0+IHZvaWQ7XG5cbiAgICAvKiogRG8gc29tZXRoaWduIHdpdGggdGhlIGNsb25lIGJlZm9yZSBpdCBnb2VzIHRvIHRoZSBodG1sICovXG4gICAgb25IZXJvQ2xvbmVkPzogKGNsb25lOiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIERvIHNvbWV0aGluZyB3aGVuIHRoZSBoZXJvIHN0YXJ0cyB0aGUgdHJhbnNpdGlvblxuICAgICAqIEhlcmUgaXQncyB1c2VmdWxsIHRvIHN3aXRjaCBjbGFzc05hbWVzIHdpdGggdGhlIHRhcmdldC5cbiAgICAgKlxuICAgICAqIElmIGRvbmUgY29ycmVjdGx5LCBpdCB3aWxsIHRyYW5zaXRpb24gZnJvbSBzdGF0ZSBhIHRvIGIgc21vb3RobHlcbiAgICAgKi9cbiAgICBvbkhlcm9TdGFydD86IChcbiAgICAgIGNsb25lOiBIVE1MRGl2RWxlbWVudCxcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGhlcm8gaXMgY29taW5nL2dvaW5nIG91dHNpZGUgdGhlIHZpZXdwb3J0XG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0IGl0J3Mgc2V0IHRvIHNraXAgYWxsIGhlcm9lcyB0aGF0IGhhdmUgdGhlc2UgY29uZGl0aW9uc1xuICAgICAqXG4gICAgICogQHJldHVybnMgSWYgdGhlIGhlcm8gc2hvdWxkIGJlIHNraXBwZWQgb3Igbm90XG4gICAgICovXG4gICAgb25IZXJvU2tpcD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBTaG91bGRTa2lwO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gYSBoZXJvIGlzIHNraXBwZWRcbiAgICAgKi9cbiAgICBvbkhlcm9Ta2lwcGVkPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJlZm9yZSB0cmFuc2l0aW9uIHN0YXJ0LCBzZXR1cCB0aGUgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgaGVybyBhbmltYXRpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGFpbmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBoZXJvIGlzIG91dCBvciBpbiB0aGUgdmlld1xuICAgICAqL1xuICAgIG9uQmVmb3JlVHJhbnNpdGlvbj86IChcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiBSZXN1bHQgfCBSZWFkb25seTxSZXN1bHQ+O1xuICB9ID0ge31cbikge1xuICBjb25zdCB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IF9wID0gW10sXG4gICAgXCJkYXRhLXByZWZmaXhcIjogZGF0YVByZWZmaXgsXG4gICAgcmVwZWF0YWJsZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHByb3BzVG9UcmFuc2l0aW9uID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgX3AubWFwKChwKSA9PiBwLnJlcGxhY2UoLyhbQS1aXSkvZywgKF8sIHZhbCkgPT4gYC0ke3ZhbC50b0xvd2VyQ2FzZSgpfWApKSxcbiAgICBbX3BdXG4gICk7XG4gIGNvbnN0IF9kYXRhUHJlZmZpeCA9IGRhdGFQcmVmZml4ID8gYC0ke2RhdGFQcmVmZml4fWAgOiBcIlwiO1xuICBjb25zdCBkYXRhUHJvcGVydHkgPSBgZGF0YSR7X2RhdGFQcmVmZml4fS1oZXJvYDtcbiAgY29uc3QgaGVyb1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBoZXJvUmVmLmN1cnJlbnQhLnNldEF0dHJpYnV0ZShkYXRhUHJvcGVydHksIGlkKTtcbiAgfSwgW2lkXSk7XG5cbiAgY29uc3QgZ2V0SGVyb3NPblNjcmVlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBvdGhlckVsZW1lbnRzID0gKFxuICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgWyR7ZGF0YVByb3BlcnR5fT1cIiR7aWR9XCJdYClcbiAgICAgICkgYXMgSFRNTERpdkVsZW1lbnRbXVxuICAgICkuZmlsdGVyKChlbCkgPT4gZWwgIT09IGhlcm9SZWYuY3VycmVudCk7XG4gICAgcmV0dXJuIG90aGVyRWxlbWVudHM7XG4gIH0sIFtpZF0pO1xuXG4gIGZ1bmN0aW9uIHRyaWdnZXJIZXJvQW5pbWF0aW9uKCkge1xuICAgIGNvbnN0IGFsbFByb3BzVG9UcmFuc2l0aW9uID0gb3B0aW9ucy5vdmVycmlkZVByb3BzVG9UcmFuc2l0aW9uXG4gICAgICA/IFsuLi5BTFdBWVNfVFJBTlNJVElPTiwgLi4ucHJvcHNUb1RyYW5zaXRpb25dXG4gICAgICA6IFtcIndpZHRoXCIsIFwiaGVpZ2h0XCIsIC4uLkFMV0FZU19UUkFOU0lUSU9OLCAuLi5wcm9wc1RvVHJhbnNpdGlvbl07XG4gICAgY29uc3Qgc2hvdWxkSGVyb0ZuID0gZXZlbnRzLm9uSGVyb0RldGVjdCB8fCAoKC4uLmE6IGFueVtdKSA9PiB0cnVlKTtcbiAgICBjb25zdCBvdGhlckVsZW1lbnRzID0gZ2V0SGVyb3NPblNjcmVlbigpLmZpbHRlcigoZWwpID0+XG4gICAgICBzaG91bGRIZXJvRm4oZWwsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGhlcm9SZWYuY3VycmVudCE7XG4gICAgY29uc3QgY3VycmVudEVsQ29vcmRpbmF0ZXMgPSBjdXJyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIG90aGVyRWxlbWVudHMubGVuZ3RoID4gMilcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJUaGVyZSBhcmUgdG9vIG1hbnkgZWxlbWVudHMgdG8gdHJhbnNpdGlvbiB0bywgSSB3aWxsIHRyYW5zaXRpb24gdG8gdGhlIGZpcnN0IEkgZmluZFwiLFxuICAgICAgICBvdGhlckVsZW1lbnRzXG4gICAgICApO1xuICAgIGNvbnN0IG90aGVyRWxlbWVudCA9IG90aGVyRWxlbWVudHMuZmluZChcbiAgICAgIChlbCkgPT4gZWwgIT09IGhlcm9SZWYuY3VycmVudCFcbiAgICApIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaWYgKG90aGVyRWxlbWVudCkge1xuICAgICAgY29uc3QgW29yaWdpbkNvbnRhaW5lciwgdGFyZ2V0Q29udGFpbmVyXSA9IGV2ZW50cy5vbkJlZm9yZVRyYW5zaXRpb25cbiAgICAgICAgPyBldmVudHMub25CZWZvcmVUcmFuc2l0aW9uKG90aGVyRWxlbWVudCwgaGVyb1JlZi5jdXJyZW50ISlcbiAgICAgICAgOiBbdmlld3BvcnQsIHZpZXdwb3J0XTtcbiAgICAgIGNvbnN0IHNob3VsZFNraXAgPVxuICAgICAgICBpc0VsZW1lbnRPdXRzaWRlQ29udGFpbmVyKHRhcmdldENvbnRhaW5lciwgY3VycmVudEVsQ29vcmRpbmF0ZXMpIHx8XG4gICAgICAgIGlzRWxlbWVudE91dHNpZGVDb250YWluZXIoXG4gICAgICAgICAgb3JpZ2luQ29udGFpbmVyLFxuICAgICAgICAgIG90aGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICApXG4gICAgICAgICAgPyAoZXZlbnRzLm9uSGVyb1NraXAgfHwgKCgpID0+IHRydWUpKShvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIGlmIChzaG91bGRTa2lwKSB7XG4gICAgICAgIGV2ZW50cy5vbkhlcm9Ta2lwcGVkPy4oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkQ2xvbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgWyR7ZGF0YVByb3BlcnR5fS1jbG9uZT1cIiR7SUQoaWQpfVwiXWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjbG9uZSA9IChvbGRDbG9uZSB8fFxuICAgICAgICBvdGhlckVsZW1lbnQuY2xvbmVOb2RlKHRydWUpKSBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgaWYgKGV2ZW50cy5vbkhlcm9DbG9uZWQgJiYgIW9sZENsb25lKSBldmVudHMub25IZXJvQ2xvbmVkKGNsb25lKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgdGhvcyBwcm9wZXJ0aWVzIHRoYXQgY2FuIGNhdXNlIGNvbmZ1c2lvbiBzaW5jZSBpdCdzIGEgY2xvbmVcbiAgICAgIGNsb25lLnN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgY2xvbmUucmVtb3ZlQXR0cmlidXRlKGRhdGFQcm9wZXJ0eSk7XG5cbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShgJHtkYXRhUHJvcGVydHl9LWNsb25lYCwgSUQoaWQpKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBJZiBpdCdzIHJlcGVhdGFibGUsIHdlIHNob3VsZCBrZWVwIHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBoZXJvIGV4aXN0YW5jZVxuICAgICAgICovXG4gICAgICBpZiAoIXJlcGVhdGFibGUpXG4gICAgICAgIC8vIFNpbmNlIGEgdHJhbnNpdGlvbiBpcyBub3cgdHJpZ2dlcmluZyBmcm9tIHRoZSBvbGQgZWxlbWVudCwgaGUgY2Fubm90IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRyYW5zaXRpb25zXG4gICAgICAgIG90aGVyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZGF0YVByb3BlcnR5KTtcblxuICAgICAgZnVuY3Rpb24gd2lsbFRoZUhlcm9Nb3ZlKG9yaWdpbjogRE9NUmVjdCwgdGFyZ2V0OiBET01SZWN0KSB7XG4gICAgICAgIGNvbnN0IHdpbGxJdE1vdmUgPSAhKFxuICAgICAgICAgIE1hdGgudHJ1bmMob3JpZ2luLnRvcCkgPT09IE1hdGgudHJ1bmModGFyZ2V0LnRvcCkgJiZcbiAgICAgICAgICBNYXRoLnRydW5jKG9yaWdpbi5sZWZ0KSA9PT0gTWF0aC50cnVuYyh0YXJnZXQubGVmdCkgJiZcbiAgICAgICAgICBNYXRoLnRydW5jKG9yaWdpbi53aWR0aCkgPT09IE1hdGgudHJ1bmModGFyZ2V0LndpZHRoKSAmJlxuICAgICAgICAgIE1hdGgudHJ1bmMob3JpZ2luLmhlaWdodCkgPT09IE1hdGgudHJ1bmModGFyZ2V0LmhlaWdodClcbiAgICAgICAgKTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB3aWxsSXRNb3ZlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gZWxcbiAgICAgICAqIEByZXR1cm5zIFJldHVybnMgaWYgaXQgd2lsbCBtb3ZlXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIHNldENsb25lVG9Db29yZGluYXRlc09mKGVsOiBIVE1MRGl2RWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50Q29vcmRpbmF0ZXMgPSBjbG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgd2lsbE1vdmUgPSB3aWxsVGhlSGVyb01vdmUoY29vcmRpbmF0ZXMsIGN1cnJlbnRDb29yZGluYXRlcyk7XG5cbiAgICAgICAgY2xvbmUuc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XG4gICAgICAgIGNsb25lLnN0eWxlLnRvcCA9IGAke2Nvb3JkaW5hdGVzLnRvcH1weGA7XG4gICAgICAgIGNsb25lLnN0eWxlLmxlZnQgPSBgJHtjb29yZGluYXRlcy5sZWZ0fXB4YDtcbiAgICAgICAgaWYgKGFsbFByb3BzVG9UcmFuc2l0aW9uLmluY2x1ZGVzKFwid2lkdGhcIikpXG4gICAgICAgICAgY2xvbmUuc3R5bGUud2lkdGggPSBgJHtjb29yZGluYXRlcy53aWR0aH1weGA7XG4gICAgICAgIGlmIChhbGxQcm9wc1RvVHJhbnNpdGlvbi5pbmNsdWRlcyhcImhlaWdodFwiKSlcbiAgICAgICAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtjb29yZGluYXRlcy5oZWlnaHR9cHhgO1xuXG4gICAgICAgIHJldHVybiB3aWxsTW92ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBvdGhlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjdXJyZW50Q29vcmRpbmF0ZXMgPSBoZXJvUmVmLmN1cnJlbnQhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaXRXb250TW92ZSA9ICF3aWxsVGhlSGVyb01vdmUoY29vcmRpbmF0ZXMsIGN1cnJlbnRDb29yZGluYXRlcyk7XG4gICAgICBpZiAoaXRXb250TW92ZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoIW9sZENsb25lKSB7XG4gICAgICAgIC8qKiBTZXQgdGhlIGNsb25lIG92ZXIgdGhlIHN0YXJ0aW5nIGVsZW1lbnQgKi9cbiAgICAgICAgc2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2Yob3RoZXJFbGVtZW50KTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICB9XG4gICAgICBoZXJvUmVmLmN1cnJlbnQhLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgb3RoZXJFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuXG4gICAgICBmb3IgKGxldCBwcm9wVG9UcmFuc2l0aW9uIG9mIHByb3BzVG9UcmFuc2l0aW9uKSB7XG4gICAgICAgIGNsb25lLnN0eWxlW3Byb3BUb1RyYW5zaXRpb24gYXMgYW55XSA9XG4gICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUob3RoZXJFbGVtZW50KVtwcm9wVG9UcmFuc2l0aW9uIGFzIGFueV07XG4gICAgICB9XG5cbiAgICAgIGNsb25lLnN0eWxlLnRyYW5zaXRpb24gPSBgJHthbGxQcm9wc1RvVHJhbnNpdGlvblxuICAgICAgICAubWFwKFxuICAgICAgICAgIChwcm9wKSA9PlxuICAgICAgICAgICAgYCR7cHJvcC5yZXBsYWNlKFxuICAgICAgICAgICAgICAvW0EtWl0vZyxcbiAgICAgICAgICAgICAgKHN1YikgPT4gYC0ke3N1Yi50b0xvd2VyQ2FzZSgpfWBcbiAgICAgICAgICAgICl9IHZhcigtLWFuaW1hdGlvbi0tc3BlZWQtZmFzdCwgMjUwbXMpIGVhc2Utb3V0YFxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiLCBcIil9YDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsSXRXaWxsVHJhbnNpdGlvblRvID0gaGVyb1JlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudHMub25IZXJvRW5kKSBldmVudHMub25IZXJvRW5kKCk7XG4gICAgICAgICAgaWYgKGVsSXRXaWxsVHJhbnNpdGlvblRvKSB7XG4gICAgICAgICAgICBpZiAocmVwZWF0YWJsZSlcbiAgICAgICAgICAgICAgZWxJdFdpbGxUcmFuc2l0aW9uVG8hLnNldEF0dHJpYnV0ZShkYXRhUHJvcGVydHksIGlkKTtcbiAgICAgICAgICAgIGVsSXRXaWxsVHJhbnNpdGlvblRvLnN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNsb25lLnJlbW92ZSgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9O1xuICAgICAgICB0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMoXG4gICAgICAgICAgY2xvbmUsXG4gICAgICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgICAgIGhlcm9SZWYuY3VycmVudCEucXVlcnlTZWxlY3RvckFsbChgWyR7REFUQV9UQUdfSEVST19DT01QT05FTlR9XWApXG4gICAgICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudFtdLFxuICAgICAgICAgIGN1cnJlbnRFbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmIChldmVudHMub25IZXJvU3RhcnQpIHtcbiAgICAgICAgICBldmVudHMub25IZXJvU3RhcnQoY2xvbmUsIG90aGVyRWxlbWVudCwgaGVyb1JlZi5jdXJyZW50ISk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFlbEl0V2lsbFRyYW5zaXRpb25Ubykge1xuICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqIFNldCB0aGUgY2xvbmUgb3ZlciB0aGUgbmV3IHBvc2l0aW9uICovXG4gICAgICAgIGNvbnN0IHdpbGxNb3ZlID0gc2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YoZWxJdFdpbGxUcmFuc2l0aW9uVG8pO1xuICAgICAgICBpZiAoIXdpbGxNb3ZlKSBjbGVhbnVwKCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGZvciAobGV0IHByb3BUb1RyYW5zaXRpb24gb2YgcHJvcHNUb1RyYW5zaXRpb24pXG4gICAgICAgICAgICBjbG9uZS5zdHlsZVtwcm9wVG9UcmFuc2l0aW9uIGFzIGFueV0gPVxuICAgICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbEl0V2lsbFRyYW5zaXRpb25UbylbXG4gICAgICAgICAgICAgICAgcHJvcFRvVHJhbnNpdGlvbiBhcyBhbnlcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICBsZXQgaW5pdGlhbE9mZnNldDogbnVtYmVyO1xuICAgICAgICAgIGNvbnN0IHMgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZCA9IHRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgICAgIGlmIChkLmNvbnRhaW5zKGVsSXRXaWxsVHJhbnNpdGlvblRvKSkge1xuICAgICAgICAgICAgICBpZiAoaW5pdGlhbE9mZnNldCA9PT0gdW5kZWZpbmVkKSBpbml0aWFsT2Zmc2V0ID0gZC5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjbG9uZS5zdHlsZS5tYXJnaW5Ub3AgPSBgJHstKGQuc2Nyb2xsVG9wIC0gaW5pdGlhbE9mZnNldCl9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgdHJhbnNpdGlvbkVuZENiID0gb3duRXZlbnQoXG4gICAgICAgICAgICAoeyB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfTogVHJhbnNpdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzIGFzIGFueSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHMgYXMgYW55LCB0cnVlKTtcbiAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCB0cmFuc2l0aW9uRW5kQ2IpO1xuICAgICAgICAgIGNsb25lLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uc3RhcnRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb25DYW5jZWxDYiA9IG93bkV2ZW50KChlKSA9PiB7XG4gICAgICAgICAgICAgIGNsb25lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHRyYW5zaXRpb25FbmRDYik7XG4gICAgICAgICAgICAgIGNsb25lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uY2FuY2VsXCIsIG9uQ2FuY2VsQ2IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmNhbmNlbFwiLCBvbkNhbmNlbENiKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB0cmlnZ2VySGVyb0FuaW1hdGlvbigpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBoZXJvUmVmLFxuICAgIGdldEhlcm9zT25TY3JlZW4sXG4gICAgdHJpZ2dlcjogdHJpZ2dlckhlcm9BbmltYXRpb24sXG4gICAgaGVyb0NvbXBvbmVudFJlZjpcbiAgICAgIChjb21wb25lbnRJZDogc3RyaW5nKSA9PiAoZWxSZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoZWxSZWYpIHtcbiAgICAgICAgICBlbFJlZi5zZXRBdHRyaWJ1dGUoREFUQV9UQUdfSEVST19DT01QT05FTlQsIGNvbXBvbmVudElkKTtcbiAgICAgICAgICBlbFJlZi5jbGFzc0xpc3QuYWRkKFN0eWxlcy5jb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0VsZW1lbnRPdXRzaWRlVmlld3BvcnQoY29vcmRpbmF0ZXM6IERPTVJlY3QpIHtcbiAgY29uc3QgZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0ID1cbiAgICBjb29yZGluYXRlcy5sZWZ0ID49IHZpZXdwb3J0LndpZHRoIHx8IGNvb3JkaW5hdGVzLnRvcCA+PSB2aWV3cG9ydC5oZWlnaHQ7XG4gIGNvbnN0IGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQgPVxuICAgIGNvb3JkaW5hdGVzLmxlZnQgPD0gLWNvb3JkaW5hdGVzLndpZHRoIHx8XG4gICAgY29vcmRpbmF0ZXMudG9wIDw9IC1jb29yZGluYXRlcy5oZWlnaHQ7XG4gIHJldHVybiBlbGVtZW50T3ZlcmZsb3dzVmlld3BvcnQgfHwgZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydDtcbn1cblxuZnVuY3Rpb24gaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lcihcbiAgY29udGFpbmVyOiBWaXN1YWxWaWV3cG9ydCB8IEVsZW1lbnQsXG4gIGNvb3JkaW5hdGVzOiBET01SZWN0XG4pIHtcbiAgaWYgKGNvbnRhaW5lciBpbnN0YW5jZW9mIFZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIGlzRWxlbWVudE91dHNpZGVWaWV3cG9ydChjb29yZGluYXRlcyk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGFpbmVyQm91bmRzID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQgPVxuICAgICAgaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0KGNvbnRhaW5lckJvdW5kcyk7XG5cbiAgICBpZiAoaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0ID1cbiAgICAgIGNvb3JkaW5hdGVzLmxlZnQgPj0gY29udGFpbmVyQm91bmRzLmxlZnQgKyBjb250YWluZXJCb3VuZHMud2lkdGggfHxcbiAgICAgIGNvb3JkaW5hdGVzLnRvcCA+PSBjb250YWluZXJCb3VuZHMudG9wICsgY29udGFpbmVyQm91bmRzLmhlaWdodDtcblxuICAgIGNvbnN0IGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQgPVxuICAgICAgY29udGFpbmVyQm91bmRzLmxlZnQgLSBjb29yZGluYXRlcy5sZWZ0ID49IGNvb3JkaW5hdGVzLndpZHRoIHx8XG4gICAgICBjb250YWluZXJCb3VuZHMudG9wIC0gY29vcmRpbmF0ZXMudG9wID49IGNvb3JkaW5hdGVzLmhlaWdodDtcblxuICAgIHJldHVybiBlbGVtZW50VW5kZXJmbG93c1ZpZXdwb3J0IHx8IGVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydDtcbiAgfVxufVxuXG50eXBlIEVWRU5UU19JTlRFUkZBQ0UgPSBQYXJhbWV0ZXJzPHR5cGVvZiB1c2VIZXJvPlsyXTtcbnR5cGUgVFJBTlNJVElPTl9UWVBFUyA9IFwiQUNDRUxFUkFUSU9OXCI7XG5mdW5jdGlvbiBjZW50ZXJQb2ludChyZWN0OiBET01SZWN0KSB7XG4gIHJldHVybiBbcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsIHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyXSBhcyBjb25zdDtcbn1cbmNvbnN0IGFuZ2xlID0gKFxuICBwb2ludEE6IHJlYWRvbmx5IFt4OiBudW1iZXIsIHk6IG51bWJlcl0sXG4gIHBvaW50QjogcmVhZG9ubHkgW3g6IG51bWJlciwgeTogbnVtYmVyXVxuKSA9PlxuICBOdW1iZXIoXG4gICAgKFxuICAgICAgTWF0aC5hdGFuMihwb2ludEFbMV0gLSBwb2ludEJbMV0sIHBvaW50QVswXSAtIHBvaW50QlswXSkgKlxuICAgICAgKDE3OS4wOCAvIE1hdGguUEkpXG4gICAgKS50b0ZpeGVkKDUpXG4gICk7XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9GQUNUT1JZOiB7XG4gIFtuIGluIFRSQU5TSVRJT05fVFlQRVNdOiAoZXZlbnRzPzogRVZFTlRTX0lOVEVSRkFDRSkgPT4gRVZFTlRTX0lOVEVSRkFDRTtcbn0gPSB7XG4gIEFDQ0VMRVJBVElPTjogKGV2ZW50cykgPT4gKHtcbiAgICAuLi5ldmVudHMsXG4gICAgb25IZXJvU3RhcnQoY2xvbmUsIG9yaWdpbiwgdGFyZ2V0KSB7XG4gICAgICBpZiAoZXZlbnRzPy5vbkhlcm9TdGFydCkgZXZlbnRzLm9uSGVyb1N0YXJ0KGNsb25lLCBvcmlnaW4sIHRhcmdldCk7XG4gICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKFN0eWxlcy5hY2NlbGVyYXRpb24pO1xuICAgICAgY29uc3QgY2VudGVyUG9pbnRPcmlnaW4gPSBjZW50ZXJQb2ludChvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgY29uc3QgY2VudGVyUG9pbnREZXN0aW5hdGlvbiA9IGNlbnRlclBvaW50KFxuICAgICAgICB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICk7XG4gICAgICBjb25zdCBhbmdsZUJldHdlZW5FbGVtZW50cyA9IGFuZ2xlKFxuICAgICAgICBjZW50ZXJQb2ludE9yaWdpbixcbiAgICAgICAgY2VudGVyUG9pbnREZXN0aW5hdGlvblxuICAgICAgKTtcbiAgICAgIGNvbnN0IHZlY3RvclggPSBNYXRoLnNpbihhbmdsZUJldHdlZW5FbGVtZW50cyk7XG4gICAgICBjb25zdCB2ZWN0b3JZID0gTWF0aC5jb3MoYW5nbGVCZXR3ZWVuRWxlbWVudHMpO1xuXG4gICAgICBjb25zdCByb3RhdGVZID0gKDEwICogdmVjdG9yWSkudG9GaXhlZCgwKTtcbiAgICAgIGNvbnN0IG9yaWdpblggPSAodmVjdG9yWSArIDEpICogNTA7XG5cbiAgICAgIGNvbnN0IHJvdGF0ZVggPSAtKDEwICogdmVjdG9yWCkudG9GaXhlZCgwKTtcbiAgICAgIGNvbnN0IG9yaWdpblkgPSAodmVjdG9yWCArIDEpICogNTA7XG5cbiAgICAgIGNsb25lLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICBcIi0tc3RhZ2UtMVwiLFxuICAgICAgICBgcm90YXRlWSgke3JvdGF0ZVl9ZGVnKSByb3RhdGVYKCR7LXJvdGF0ZVh9ZGVnKWBcbiAgICAgICk7XG4gICAgICBjbG9uZS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgXCItLXN0YWdlLTJcIixcbiAgICAgICAgYHJvdGF0ZVkoJHstcm90YXRlWSAqIDAuM31kZWcpIHJvdGF0ZVgoJHtyb3RhdGVYICogMC4zfWRlZylgXG4gICAgICApO1xuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXCItLW9yaWdpbi0xXCIsIGAke29yaWdpblh9JSAke29yaWdpbll9JWApO1xuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgIFwiLS1vcmlnaW4tMlwiLFxuICAgICAgICBgJHsxMDAgLSBvcmlnaW5YfSUgJHsxMDAgLSBvcmlnaW5ZfSVgXG4gICAgICApO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wZXJzcGVjdGl2ZSA9IFwiMTAwdndcIjtcbiAgICB9LFxuICAgIG9uSGVyb0VuZCgpIHtcbiAgICAgIGlmIChldmVudHM/Lm9uSGVyb0VuZCkgZXZlbnRzLm9uSGVyb0VuZCgpO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wZXJzcGVjdGl2ZSA9IFwiXCI7XG4gICAgfSxcbiAgfSksXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBUUEsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQTJDLFNBQUFFLHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsUUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFQLENBQUEsT0FBQU0sTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFI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QztNQUM5QyxNQUFNRyxPQUFPLEdBQUd4RSxJQUFJLENBQUN5RSxHQUFHLENBQUNKLG9CQUFvQixDQUFDO01BRTlDLE1BQU1LLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBR0YsT0FBTyxFQUFFVixPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3pDLE1BQU1hLE9BQU8sR0FBRyxDQUFDSCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUU7TUFFbEMsTUFBTUksT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUdOLE9BQU8sRUFBRVIsT0FBTyxDQUFDLENBQUMsQ0FBQztNQUMxQyxNQUFNZSxPQUFPLEdBQUcsQ0FBQ1AsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFO01BRWxDeEssS0FBSyxDQUFDZ0IsS0FBSyxDQUFDZ0ssV0FBVyxDQUNyQixXQUFXLGFBQUF0TCxNQUFBLENBQ0FrTCxPQUFPLG1CQUFBbEwsTUFBQSxDQUFnQixDQUFDb0wsT0FBTyxTQUM1QyxDQUFDO01BQ0Q5SyxLQUFLLENBQUNnQixLQUFLLENBQUNnSyxXQUFXLENBQ3JCLFdBQVcsYUFBQXRMLE1BQUEsQ0FDQSxDQUFDa0wsT0FBTyxHQUFHLEdBQUcsbUJBQUFsTCxNQUFBLENBQWdCb0wsT0FBTyxHQUFHLEdBQUcsU0FDeEQsQ0FBQztNQUNEOUssS0FBSyxDQUFDZ0IsS0FBSyxDQUFDZ0ssV0FBVyxDQUFDLFlBQVksS0FBQXRMLE1BQUEsQ0FBS21MLE9BQU8sUUFBQW5MLE1BQUEsQ0FBS3FMLE9BQU8sTUFBRyxDQUFDO01BQ2hFL0ssS0FBSyxDQUFDZ0IsS0FBSyxDQUFDZ0ssV0FBVyxDQUNyQixZQUFZLEtBQUF0TCxNQUFBLENBQ1QsR0FBRyxHQUFHbUwsT0FBTyxRQUFBbkwsTUFBQSxDQUFLLEdBQUcsR0FBR3FMLE9BQU8sTUFDcEMsQ0FBQztNQUNENUcsUUFBUSxDQUFDMkMsSUFBSSxDQUFDOUYsS0FBSyxDQUFDaUssV0FBVyxHQUFHLE9BQU87SUFDM0MsQ0FBQztJQUNEekQsU0FBU0EsQ0FBQSxFQUFHO01BQ1YsSUFBSXpFLE1BQU0sYUFBTkEsTUFBTSxlQUFOQSxNQUFNLENBQUV5RSxTQUFTLEVBQUV6RSxNQUFNLENBQUN5RSxTQUFTLENBQUMsQ0FBQztNQUN6Q3JELFFBQVEsQ0FBQzJDLElBQUksQ0FBQzlGLEtBQUssQ0FBQ2lLLFdBQVcsR0FBRyxFQUFFO0lBQ3RDO0VBQUM7QUFFTCxDQUFDIiwiaWdub3JlTGlzdCI6W119