@persona/design-system 0.1.5-pre.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 (897) hide show
  1. package/CHANGELOG.md +461 -0
  2. package/LICENSE +77 -0
  3. package/README.md +9 -0
  4. package/dist/Action-B10lxofb.d.mts +35 -0
  5. package/dist/Action-uduFOh2m.d.cts +35 -0
  6. package/dist/Action.d.cts +2 -0
  7. package/dist/Action.d.mts +2 -0
  8. package/dist/Attribute.d.cts +107 -0
  9. package/dist/Attribute.d.mts +107 -0
  10. package/dist/AttributeGrid.d.cts +40 -0
  11. package/dist/AttributeGrid.d.mts +41 -0
  12. package/dist/Badge-BqLnhb4n.mjs +34 -0
  13. package/dist/Badge-BqLnhb4n.mjs.map +1 -0
  14. package/dist/Badge-BwAZD9BH.cjs +41 -0
  15. package/dist/Badge-BwAZD9BH.cjs.map +1 -0
  16. package/dist/Badge.d.cts +25 -0
  17. package/dist/Badge.d.mts +25 -0
  18. package/dist/Banner.d.cts +48 -0
  19. package/dist/Banner.d.mts +48 -0
  20. package/dist/Button-C_3p5Xfi.d.cts +101 -0
  21. package/dist/Button-DqDLGURJ.d.mts +101 -0
  22. package/dist/Button.d.cts +2 -0
  23. package/dist/Button.d.mts +2 -0
  24. package/dist/ButtonGroup.d.cts +20 -0
  25. package/dist/ButtonGroup.d.mts +20 -0
  26. package/dist/Calendar.d.cts +11 -0
  27. package/dist/Calendar.d.mts +12 -0
  28. package/dist/CalendarBase.d.mts +12 -0
  29. package/dist/CalendarCell.d.mts +18 -0
  30. package/dist/CalendarGrid.d.mts +18 -0
  31. package/dist/Card-CcU9cKCd.d.mts +52 -0
  32. package/dist/Card-CrQL0hXm.d.cts +52 -0
  33. package/dist/Card-CyCKL-M5.cjs +248 -0
  34. package/dist/Card-CyCKL-M5.cjs.map +1 -0
  35. package/dist/Card-DeJSt5ys.mjs +205 -0
  36. package/dist/Card-DeJSt5ys.mjs.map +1 -0
  37. package/dist/Card.d.cts +2 -0
  38. package/dist/Card.d.mts +2 -0
  39. package/dist/Card2.d.cts +95 -0
  40. package/dist/Card2.d.mts +96 -0
  41. package/dist/Checkbox-BWJNAP27.d.mts +46 -0
  42. package/dist/Checkbox-BmjK0Wac.d.cts +46 -0
  43. package/dist/Checkbox-C5bGcb-r.mjs +176 -0
  44. package/dist/Checkbox-C5bGcb-r.mjs.map +1 -0
  45. package/dist/Checkbox-D4nv7eNs.cjs +183 -0
  46. package/dist/Checkbox-D4nv7eNs.cjs.map +1 -0
  47. package/dist/Checkbox.d.cts +2 -0
  48. package/dist/Checkbox.d.mts +2 -0
  49. package/dist/CheckboxGroupField.d.cts +24 -0
  50. package/dist/CheckboxGroupField.d.mts +25 -0
  51. package/dist/Combobox-B_-swcix.mjs +1672 -0
  52. package/dist/Combobox-B_-swcix.mjs.map +1 -0
  53. package/dist/Combobox-B_oe33Re.cjs +1692 -0
  54. package/dist/Combobox-B_oe33Re.cjs.map +1 -0
  55. package/dist/Combobox-DjbJYK_u.d.mts +11 -0
  56. package/dist/Combobox.d.cts +12 -0
  57. package/dist/Combobox.d.mts +3 -0
  58. package/dist/ComboboxBase-D2wypeXf.d.cts +320 -0
  59. package/dist/ComboboxBase-INya0Csa.d.mts +320 -0
  60. package/dist/ComboboxBase.d.cts +2 -0
  61. package/dist/ComboboxBase.d.mts +2 -0
  62. package/dist/ComboboxMultiSelect-Dn8cRZ6Z.d.cts +47 -0
  63. package/dist/ComboboxMultiSelect-Dq9DGH8S.d.mts +47 -0
  64. package/dist/ComboboxMultiSelect.d.cts +2 -0
  65. package/dist/ComboboxMultiSelect.d.mts +2 -0
  66. package/dist/ComboboxSingleSelect-D8YM7GKP.d.cts +35 -0
  67. package/dist/ComboboxSingleSelect-WwBJRb0e.d.mts +35 -0
  68. package/dist/ComboboxSingleSelect.d.cts +2 -0
  69. package/dist/ComboboxSingleSelect.d.mts +2 -0
  70. package/dist/ConfigFormGroup.d.cts +7 -0
  71. package/dist/ConfigFormGroup.d.mts +7 -0
  72. package/dist/DateField-Bwe_0qm9.d.cts +24 -0
  73. package/dist/DateField-Chko9oLb.d.mts +24 -0
  74. package/dist/DateField.d.cts +2 -0
  75. package/dist/DateField.d.mts +2 -0
  76. package/dist/DatePicker.d.cts +19 -0
  77. package/dist/DatePicker.d.mts +19 -0
  78. package/dist/DateRangePicker.d.cts +46 -0
  79. package/dist/DateRangePicker.d.mts +47 -0
  80. package/dist/DropdownButton-DO4NqvWR.cjs +33 -0
  81. package/dist/DropdownButton-DO4NqvWR.cjs.map +1 -0
  82. package/dist/DropdownButton-k9kEcexu.mjs +27 -0
  83. package/dist/DropdownButton-k9kEcexu.mjs.map +1 -0
  84. package/dist/DropdownButton.d.cts +26 -0
  85. package/dist/DropdownButton.d.mts +26 -0
  86. package/dist/DropdownMenu-BTk--LWo.mjs +60 -0
  87. package/dist/DropdownMenu-BTk--LWo.mjs.map +1 -0
  88. package/dist/DropdownMenu-Bm2QqLEq.d.cts +75 -0
  89. package/dist/DropdownMenu-D2fzpkX2.cjs +74 -0
  90. package/dist/DropdownMenu-D2fzpkX2.cjs.map +1 -0
  91. package/dist/DropdownMenu-rWgROxQe.d.mts +75 -0
  92. package/dist/DropdownMenu.d.cts +2 -0
  93. package/dist/DropdownMenu.d.mts +2 -0
  94. package/dist/ErrorProps-DLdVsYlk.d.cts +8 -0
  95. package/dist/ErrorProps-DYUKygmd.d.mts +8 -0
  96. package/dist/ErrorProps.d.cts +2 -0
  97. package/dist/ErrorProps.d.mts +2 -0
  98. package/dist/FormControl-BXHqI_2D.mjs +168 -0
  99. package/dist/FormControl-BXHqI_2D.mjs.map +1 -0
  100. package/dist/FormControl-CM7wTn1P.d.mts +60 -0
  101. package/dist/FormControl-DiR2e7Od.cjs +212 -0
  102. package/dist/FormControl-DiR2e7Od.cjs.map +1 -0
  103. package/dist/FormControl-KkeIYuBa.d.cts +60 -0
  104. package/dist/FormControl.d.cts +2 -0
  105. package/dist/FormControl.d.mts +2 -0
  106. package/dist/FormField-19ownwjH.d.cts +69 -0
  107. package/dist/FormField-CdMru4s5.d.mts +69 -0
  108. package/dist/FormField.d.cts +2 -0
  109. package/dist/FormField.d.mts +2 -0
  110. package/dist/Header-D8oDtnIL.d.cts +35 -0
  111. package/dist/Header-t1plnZc0.d.mts +35 -0
  112. package/dist/Header.d.cts +2 -0
  113. package/dist/Header.d.mts +2 -0
  114. package/dist/HelperTooltip-Cd7I0Ucq.d.mts +20 -0
  115. package/dist/HelperTooltip-oXdyk2At.d.cts +20 -0
  116. package/dist/HelperTooltip.d.cts +2 -0
  117. package/dist/HelperTooltip.d.mts +2 -0
  118. package/dist/IconButton-B1ZL8BqW.cjs +372 -0
  119. package/dist/IconButton-B1ZL8BqW.cjs.map +1 -0
  120. package/dist/IconButton-C28qxOdi.mjs +341 -0
  121. package/dist/IconButton-C28qxOdi.mjs.map +1 -0
  122. package/dist/IconButton-DsXbc3nQ.d.mts +24 -0
  123. package/dist/IconButton-ZcyTFjPn.d.cts +24 -0
  124. package/dist/IconButton.d.cts +2 -0
  125. package/dist/IconButton.d.mts +2 -0
  126. package/dist/ImageTile.d.cts +60 -0
  127. package/dist/ImageTile.d.mts +60 -0
  128. package/dist/Input-Cv5qieRg.d.mts +65 -0
  129. package/dist/Input-DHOsR4cl.cjs +210 -0
  130. package/dist/Input-DHOsR4cl.cjs.map +1 -0
  131. package/dist/Input-XppkvfUf.d.cts +65 -0
  132. package/dist/Input-eoFk39bE.mjs +191 -0
  133. package/dist/Input-eoFk39bE.mjs.map +1 -0
  134. package/dist/Input.d.cts +2 -0
  135. package/dist/Input.d.mts +2 -0
  136. package/dist/InputProps-BHu05fX0.d.mts +16 -0
  137. package/dist/InputProps-CitGo8QA.d.cts +16 -0
  138. package/dist/InputProps.d.cts +2 -0
  139. package/dist/InputProps.d.mts +2 -0
  140. package/dist/Link.d.cts +43 -0
  141. package/dist/Link.d.mts +43 -0
  142. package/dist/ListBox-AyjzT6ra.d.mts +138 -0
  143. package/dist/ListBox-CE3mfDSB.cjs +383 -0
  144. package/dist/ListBox-CE3mfDSB.cjs.map +1 -0
  145. package/dist/ListBox-DbyZFy2W.d.cts +138 -0
  146. package/dist/ListBox-Z1y0LG1H.mjs +369 -0
  147. package/dist/ListBox-Z1y0LG1H.mjs.map +1 -0
  148. package/dist/ListBox.d.cts +2 -0
  149. package/dist/ListBox.d.mts +2 -0
  150. package/dist/ListBoxField.d.cts +46 -0
  151. package/dist/ListBoxField.d.mts +47 -0
  152. package/dist/LoadingShimmer-CNE6JUVF.mjs +67 -0
  153. package/dist/LoadingShimmer-CNE6JUVF.mjs.map +1 -0
  154. package/dist/LoadingShimmer-DMK9RC4N.cjs +92 -0
  155. package/dist/LoadingShimmer-DMK9RC4N.cjs.map +1 -0
  156. package/dist/LoadingShimmer.d.cts +38 -0
  157. package/dist/LoadingShimmer.d.mts +38 -0
  158. package/dist/MaskedInput.d.cts +10 -0
  159. package/dist/MaskedInput.d.mts +10 -0
  160. package/dist/MatchHighlight.d.cts +11 -0
  161. package/dist/MatchHighlight.d.mts +11 -0
  162. package/dist/Menu-BpkjNO81.cjs +217 -0
  163. package/dist/Menu-BpkjNO81.cjs.map +1 -0
  164. package/dist/Menu-DIFkRQ6x.d.mts +70 -0
  165. package/dist/Menu-DNRHo2i_.mjs +167 -0
  166. package/dist/Menu-DNRHo2i_.mjs.map +1 -0
  167. package/dist/Menu-DPrNMatb.d.cts +70 -0
  168. package/dist/Menu.d.cts +2 -0
  169. package/dist/Menu.d.mts +2 -0
  170. package/dist/Modal.d.cts +141 -0
  171. package/dist/Modal.d.mts +141 -0
  172. package/dist/PageHeader.d.cts +26 -0
  173. package/dist/PageHeader.d.mts +26 -0
  174. package/dist/PageSelector.d.cts +30 -0
  175. package/dist/PageSelector.d.mts +30 -0
  176. package/dist/PageSizeSelector.d.mts +22 -0
  177. package/dist/Pagination.d.cts +33 -0
  178. package/dist/Pagination.d.mts +33 -0
  179. package/dist/Pii.d.cts +16 -0
  180. package/dist/Pii.d.mts +17 -0
  181. package/dist/Popover-BSdyxuja.mjs +124 -0
  182. package/dist/Popover-BSdyxuja.mjs.map +1 -0
  183. package/dist/Popover-C2dBSwiU.cjs +168 -0
  184. package/dist/Popover-C2dBSwiU.cjs.map +1 -0
  185. package/dist/Popover.d.cts +90 -0
  186. package/dist/Popover.d.mts +90 -0
  187. package/dist/ProgressBar.d.cts +83 -0
  188. package/dist/ProgressBar.d.mts +83 -0
  189. package/dist/ProgressIndicator.d.cts +64 -0
  190. package/dist/ProgressIndicator.d.mts +64 -0
  191. package/dist/PseudoClassProps-C5jpj6Rp.d.cts +12 -0
  192. package/dist/PseudoClassProps-mZgO_iZJ.d.mts +12 -0
  193. package/dist/PseudoClassProps.d.cts +2 -0
  194. package/dist/PseudoClassProps.d.mts +2 -0
  195. package/dist/Radio-mFfT6G3d.cjs +154 -0
  196. package/dist/Radio-mFfT6G3d.cjs.map +1 -0
  197. package/dist/Radio-w-L3Otuk.mjs +147 -0
  198. package/dist/Radio-w-L3Otuk.mjs.map +1 -0
  199. package/dist/Radio.d.cts +21 -0
  200. package/dist/Radio.d.mts +21 -0
  201. package/dist/RadioGroup-B8htTzsS.mjs +50 -0
  202. package/dist/RadioGroup-B8htTzsS.mjs.map +1 -0
  203. package/dist/RadioGroup-BjDmweRK.cjs +57 -0
  204. package/dist/RadioGroup-BjDmweRK.cjs.map +1 -0
  205. package/dist/RadioGroup-D5ueuC6a.d.cts +21 -0
  206. package/dist/RadioGroup-Ls0vPsP_.d.mts +21 -0
  207. package/dist/RadioGroup.d.cts +2 -0
  208. package/dist/RadioGroup.d.mts +2 -0
  209. package/dist/RangeCalendar.d.mts +33 -0
  210. package/dist/RangeCalendarPresets.d.mts +25 -0
  211. package/dist/RegisterComponent-BDb43KvI.d.mts +34 -0
  212. package/dist/RegisterComponent-CpXIR-51.d.cts +34 -0
  213. package/dist/Section.d.mts +67 -0
  214. package/dist/SectionHeading-DVSXofwK.d.cts +72 -0
  215. package/dist/SectionHeading-QvAmhVmD.d.mts +72 -0
  216. package/dist/SectionHeading.d.cts +2 -0
  217. package/dist/SectionHeading.d.mts +2 -0
  218. package/dist/SegmentedControl-CvznPXgC.cjs +124 -0
  219. package/dist/SegmentedControl-CvznPXgC.cjs.map +1 -0
  220. package/dist/SegmentedControl-DRtXdbLe.d.cts +59 -0
  221. package/dist/SegmentedControl-Dk5S4Dhz.d.mts +59 -0
  222. package/dist/SegmentedControl-DnwNjYre.mjs +111 -0
  223. package/dist/SegmentedControl-DnwNjYre.mjs.map +1 -0
  224. package/dist/SegmentedControl.d.cts +2 -0
  225. package/dist/SegmentedControl.d.mts +2 -0
  226. package/dist/Select-BdPdgtfU.d.cts +77 -0
  227. package/dist/Select-CVB-Q1g1.cjs +266 -0
  228. package/dist/Select-CVB-Q1g1.cjs.map +1 -0
  229. package/dist/Select-Cl3AOq0-.mjs +246 -0
  230. package/dist/Select-Cl3AOq0-.mjs.map +1 -0
  231. package/dist/Select-DRnRqMAL.d.mts +77 -0
  232. package/dist/Select.d.cts +2 -0
  233. package/dist/Select.d.mts +2 -0
  234. package/dist/Slider-D3gz7otf.d.mts +56 -0
  235. package/dist/Slider-uH5MOu2D.d.cts +56 -0
  236. package/dist/Slider.d.cts +2 -0
  237. package/dist/Slider.d.mts +2 -0
  238. package/dist/SliderRHF-Cc-9RuPe.d.cts +984 -0
  239. package/dist/SliderRHF-DIV-tCEv.d.mts +984 -0
  240. package/dist/SliderRHF.d.cts +2 -0
  241. package/dist/SliderRHF.d.mts +2 -0
  242. package/dist/SliderThumb.d.mts +139 -0
  243. package/dist/Spacer-DWGkX170.cjs +20 -0
  244. package/dist/Spacer-DWGkX170.cjs.map +1 -0
  245. package/dist/Spacer-DxH_sQrV.mjs +13 -0
  246. package/dist/Spacer-DxH_sQrV.mjs.map +1 -0
  247. package/dist/Spacer.d.cts +17 -0
  248. package/dist/Spacer.d.mts +18 -0
  249. package/dist/Spinner-C05An_fn.mjs +41 -0
  250. package/dist/Spinner-C05An_fn.mjs.map +1 -0
  251. package/dist/Spinner-z7DrPE1d.cjs +48 -0
  252. package/dist/Spinner-z7DrPE1d.cjs.map +1 -0
  253. package/dist/Spinner.d.cts +26 -0
  254. package/dist/Spinner.d.mts +26 -0
  255. package/dist/Stack-BHb3ZB2A.cjs +53 -0
  256. package/dist/Stack-BHb3ZB2A.cjs.map +1 -0
  257. package/dist/Stack-BntgUvsW.d.mts +47 -0
  258. package/dist/Stack-hwgS2FU1.mjs +40 -0
  259. package/dist/Stack-hwgS2FU1.mjs.map +1 -0
  260. package/dist/Stack-toDRLy--.d.cts +47 -0
  261. package/dist/Stack.d.cts +2 -0
  262. package/dist/Stack.d.mts +2 -0
  263. package/dist/StatusIndicator.d.cts +54 -0
  264. package/dist/StatusIndicator.d.mts +54 -0
  265. package/dist/Sticker-Bd7KkekO.d.mts +68 -0
  266. package/dist/Sticker-D6bwBTGr.mjs +215 -0
  267. package/dist/Sticker-D6bwBTGr.mjs.map +1 -0
  268. package/dist/Sticker-D_dutvp_.cjs +246 -0
  269. package/dist/Sticker-D_dutvp_.cjs.map +1 -0
  270. package/dist/Sticker-S6QWjlEJ.d.cts +68 -0
  271. package/dist/Sticker.d.cts +2 -0
  272. package/dist/Sticker.d.mts +2 -0
  273. package/dist/SwatchPicker.d.cts +18 -0
  274. package/dist/SwatchPicker.d.mts +18 -0
  275. package/dist/Tab.d.cts +26 -0
  276. package/dist/Tab.d.mts +26 -0
  277. package/dist/TabBar-BMv8dAS3.cjs +297 -0
  278. package/dist/TabBar-BMv8dAS3.cjs.map +1 -0
  279. package/dist/TabBar-Bf89XksH.mjs +266 -0
  280. package/dist/TabBar-Bf89XksH.mjs.map +1 -0
  281. package/dist/TabBar.d.cts +33 -0
  282. package/dist/TabBar.d.mts +33 -0
  283. package/dist/TabBarContext.d.mts +10 -0
  284. package/dist/TabBarIconButton.d.cts +10 -0
  285. package/dist/TabBarIconButton.d.mts +11 -0
  286. package/dist/Table-34f5m7w5.d.mts +13 -0
  287. package/dist/Table-DkAA1lt_.d.cts +13 -0
  288. package/dist/Table.d.cts +2 -0
  289. package/dist/Table.d.mts +2 -0
  290. package/dist/TableBody-5QcVMPP_.d.cts +9 -0
  291. package/dist/TableBody-Clf34yzJ.d.mts +9 -0
  292. package/dist/TableBody.d.cts +2 -0
  293. package/dist/TableBody.d.mts +2 -0
  294. package/dist/TableCell-DIs9h97h.d.cts +75 -0
  295. package/dist/TableCell-Dog4Blfq.d.mts +75 -0
  296. package/dist/TableCell.d.cts +2 -0
  297. package/dist/TableCell.d.mts +2 -0
  298. package/dist/TableHead-9LLM1B8I.d.cts +12 -0
  299. package/dist/TableHead-DJBGHoUD.d.mts +12 -0
  300. package/dist/TableHead.d.cts +2 -0
  301. package/dist/TableHead.d.mts +2 -0
  302. package/dist/TableHeaderCell-25lC9tNk.d.cts +17 -0
  303. package/dist/TableHeaderCell-DzYZq7SG.d.mts +17 -0
  304. package/dist/TableHeaderCell.d.cts +2 -0
  305. package/dist/TableHeaderCell.d.mts +2 -0
  306. package/dist/TableLayout-BA3jbdbi.d.mts +19 -0
  307. package/dist/TableLayout-CmDKOu10.d.cts +19 -0
  308. package/dist/TableLayout.d.cts +2 -0
  309. package/dist/TableLayout.d.mts +2 -0
  310. package/dist/TableRow-CBKpDeUV.d.mts +13 -0
  311. package/dist/TableRow-IPjQnK2q.d.cts +13 -0
  312. package/dist/TableRow.d.cts +2 -0
  313. package/dist/TableRow.d.mts +2 -0
  314. package/dist/TableTH.d.cts +2 -0
  315. package/dist/TableTH.d.mts +2 -0
  316. package/dist/Text-CnXedFut.d.mts +42 -0
  317. package/dist/Text-CrGiWG2E.d.cts +42 -0
  318. package/dist/Text-DOTYjIt0.mjs +58 -0
  319. package/dist/Text-DOTYjIt0.mjs.map +1 -0
  320. package/dist/Text-DVz8erdF.cjs +95 -0
  321. package/dist/Text-DVz8erdF.cjs.map +1 -0
  322. package/dist/Text.d.cts +2 -0
  323. package/dist/Text.d.mts +2 -0
  324. package/dist/TextArea-1bHvaq9p.d.mts +10 -0
  325. package/dist/TextArea-B1kitxCl.mjs +33 -0
  326. package/dist/TextArea-B1kitxCl.mjs.map +1 -0
  327. package/dist/TextArea-MVgGGM6r.cjs +40 -0
  328. package/dist/TextArea-MVgGGM6r.cjs.map +1 -0
  329. package/dist/TextArea-j43fhp2P.d.cts +10 -0
  330. package/dist/TextArea.d.cts +2 -0
  331. package/dist/TextArea.d.mts +2 -0
  332. package/dist/TextUnderlineTooltip-BDMs4iXn.d.cts +18 -0
  333. package/dist/TextUnderlineTooltip-z4sSGL91.d.mts +18 -0
  334. package/dist/TextUnderlineTooltip.d.cts +2 -0
  335. package/dist/TextUnderlineTooltip.d.mts +2 -0
  336. package/dist/Tile.d.cts +63 -0
  337. package/dist/Tile.d.mts +63 -0
  338. package/dist/Toast.d.cts +27 -0
  339. package/dist/Toast.d.mts +27 -0
  340. package/dist/Toggle-8GNRxyvE.mjs +167 -0
  341. package/dist/Toggle-8GNRxyvE.mjs.map +1 -0
  342. package/dist/Toggle-B3Cdyf7T.d.mts +54 -0
  343. package/dist/Toggle-BjkbL_uf.d.cts +54 -0
  344. package/dist/Toggle-CVdg5iQ0.cjs +174 -0
  345. package/dist/Toggle-CVdg5iQ0.cjs.map +1 -0
  346. package/dist/Toggle.d.cts +2 -0
  347. package/dist/Toggle.d.mts +2 -0
  348. package/dist/Tooltip-0i_15ysU.cjs +152 -0
  349. package/dist/Tooltip-0i_15ysU.cjs.map +1 -0
  350. package/dist/Tooltip-C0PS5InA.d.mts +100 -0
  351. package/dist/Tooltip-CE1oH6Iz.d.cts +100 -0
  352. package/dist/Tooltip-T7RQpy_a.mjs +120 -0
  353. package/dist/Tooltip-T7RQpy_a.mjs.map +1 -0
  354. package/dist/Tooltip.d.cts +2 -0
  355. package/dist/Tooltip.d.mts +2 -0
  356. package/dist/TruncatedText-0Tf8CwFX.d.mts +18 -0
  357. package/dist/TruncatedText-D8f3AiBL.d.cts +18 -0
  358. package/dist/chunk-Bpcn9VDT.mjs +39 -0
  359. package/dist/chunk-CoPdw6nB.cjs +64 -0
  360. package/dist/common.d.mts +7 -0
  361. package/dist/components/Attribute/index.cjs +210 -0
  362. package/dist/components/Attribute/index.cjs.map +1 -0
  363. package/dist/components/Attribute/index.d.cts +3 -0
  364. package/dist/components/Attribute/index.d.mts +3 -0
  365. package/dist/components/Attribute/index.mjs +198 -0
  366. package/dist/components/Attribute/index.mjs.map +1 -0
  367. package/dist/components/Badge/index.cjs +8 -0
  368. package/dist/components/Badge/index.d.cts +2 -0
  369. package/dist/components/Badge/index.d.mts +2 -0
  370. package/dist/components/Badge/index.mjs +2 -0
  371. package/dist/components/Banner/index.cjs +100 -0
  372. package/dist/components/Banner/index.cjs.map +1 -0
  373. package/dist/components/Banner/index.d.cts +2 -0
  374. package/dist/components/Banner/index.d.mts +2 -0
  375. package/dist/components/Banner/index.mjs +93 -0
  376. package/dist/components/Banner/index.mjs.map +1 -0
  377. package/dist/components/Button/index.cjs +12 -0
  378. package/dist/components/Button/index.d.cts +3 -0
  379. package/dist/components/Button/index.d.mts +3 -0
  380. package/dist/components/Button/index.mjs +2 -0
  381. package/dist/components/ButtonGroup/index.cjs +112 -0
  382. package/dist/components/ButtonGroup/index.cjs.map +1 -0
  383. package/dist/components/ButtonGroup/index.d.cts +2 -0
  384. package/dist/components/ButtonGroup/index.d.mts +2 -0
  385. package/dist/components/ButtonGroup/index.mjs +103 -0
  386. package/dist/components/ButtonGroup/index.mjs.map +1 -0
  387. package/dist/components/Card/index.cjs +13 -0
  388. package/dist/components/Card/index.d.cts +3 -0
  389. package/dist/components/Card/index.d.mts +3 -0
  390. package/dist/components/Card/index.mjs +2 -0
  391. package/dist/components/CardV2/index.cjs +512 -0
  392. package/dist/components/CardV2/index.cjs.map +1 -0
  393. package/dist/components/CardV2/index.d.cts +3 -0
  394. package/dist/components/CardV2/index.d.mts +3 -0
  395. package/dist/components/CardV2/index.mjs +511 -0
  396. package/dist/components/CardV2/index.mjs.map +1 -0
  397. package/dist/components/Checkbox/index.cjs +8 -0
  398. package/dist/components/Checkbox/index.d.cts +2 -0
  399. package/dist/components/Checkbox/index.d.mts +2 -0
  400. package/dist/components/Checkbox/index.mjs +2 -0
  401. package/dist/components/Combobox/index.cjs +10 -0
  402. package/dist/components/Combobox/index.d.cts +3 -0
  403. package/dist/components/Combobox/index.d.mts +3 -0
  404. package/dist/components/Combobox/index.mjs +2 -0
  405. package/dist/components/ConfigFormGroup/index.cjs +37 -0
  406. package/dist/components/ConfigFormGroup/index.cjs.map +1 -0
  407. package/dist/components/ConfigFormGroup/index.d.cts +3 -0
  408. package/dist/components/ConfigFormGroup/index.d.mts +3 -0
  409. package/dist/components/ConfigFormGroup/index.mjs +28 -0
  410. package/dist/components/ConfigFormGroup/index.mjs.map +1 -0
  411. package/dist/components/DatePicker/index.cjs +11503 -0
  412. package/dist/components/DatePicker/index.cjs.map +1 -0
  413. package/dist/components/DatePicker/index.d.cts +5 -0
  414. package/dist/components/DatePicker/index.d.mts +5 -0
  415. package/dist/components/DatePicker/index.mjs +11491 -0
  416. package/dist/components/DatePicker/index.mjs.map +1 -0
  417. package/dist/components/DropdownButton/index.cjs +8 -0
  418. package/dist/components/DropdownButton/index.d.cts +2 -0
  419. package/dist/components/DropdownButton/index.d.mts +2 -0
  420. package/dist/components/DropdownButton/index.mjs +2 -0
  421. package/dist/components/DropdownMenu/index.cjs +8 -0
  422. package/dist/components/DropdownMenu/index.d.cts +2 -0
  423. package/dist/components/DropdownMenu/index.d.mts +2 -0
  424. package/dist/components/DropdownMenu/index.mjs +2 -0
  425. package/dist/components/FormControl/index.cjs +16 -0
  426. package/dist/components/FormControl/index.d.cts +3 -0
  427. package/dist/components/FormControl/index.d.mts +3 -0
  428. package/dist/components/FormControl/index.mjs +3 -0
  429. package/dist/components/FormField/index.cjs +385 -0
  430. package/dist/components/FormField/index.cjs.map +1 -0
  431. package/dist/components/FormField/index.d.cts +5 -0
  432. package/dist/components/FormField/index.d.mts +5 -0
  433. package/dist/components/FormField/index.mjs +367 -0
  434. package/dist/components/FormField/index.mjs.map +1 -0
  435. package/dist/components/ImageTile/index.cjs +228 -0
  436. package/dist/components/ImageTile/index.cjs.map +1 -0
  437. package/dist/components/ImageTile/index.d.cts +2 -0
  438. package/dist/components/ImageTile/index.d.mts +2 -0
  439. package/dist/components/ImageTile/index.mjs +221 -0
  440. package/dist/components/ImageTile/index.mjs.map +1 -0
  441. package/dist/components/Input/index.cjs +15 -0
  442. package/dist/components/Input/index.cjs.map +1 -0
  443. package/dist/components/Input/index.d.cts +2 -0
  444. package/dist/components/Input/index.d.mts +2 -0
  445. package/dist/components/Input/index.mjs +7 -0
  446. package/dist/components/Input/index.mjs.map +1 -0
  447. package/dist/components/Link/index.cjs +87 -0
  448. package/dist/components/Link/index.cjs.map +1 -0
  449. package/dist/components/Link/index.d.cts +2 -0
  450. package/dist/components/Link/index.d.mts +2 -0
  451. package/dist/components/Link/index.mjs +80 -0
  452. package/dist/components/Link/index.mjs.map +1 -0
  453. package/dist/components/ListBox/index.cjs +9 -0
  454. package/dist/components/ListBox/index.d.cts +2 -0
  455. package/dist/components/ListBox/index.d.mts +2 -0
  456. package/dist/components/ListBox/index.mjs +2 -0
  457. package/dist/components/LoadingShimmer/index.cjs +7 -0
  458. package/dist/components/LoadingShimmer/index.d.cts +2 -0
  459. package/dist/components/LoadingShimmer/index.d.mts +2 -0
  460. package/dist/components/LoadingShimmer/index.mjs +2 -0
  461. package/dist/components/MaskedInput/index.cjs +29 -0
  462. package/dist/components/MaskedInput/index.cjs.map +1 -0
  463. package/dist/components/MaskedInput/index.d.cts +2 -0
  464. package/dist/components/MaskedInput/index.d.mts +2 -0
  465. package/dist/components/MaskedInput/index.mjs +24 -0
  466. package/dist/components/MaskedInput/index.mjs.map +1 -0
  467. package/dist/components/MatchHighlight/index.cjs +31 -0
  468. package/dist/components/MatchHighlight/index.cjs.map +1 -0
  469. package/dist/components/MatchHighlight/index.d.cts +2 -0
  470. package/dist/components/MatchHighlight/index.d.mts +2 -0
  471. package/dist/components/MatchHighlight/index.mjs +24 -0
  472. package/dist/components/MatchHighlight/index.mjs.map +1 -0
  473. package/dist/components/Menu/index.cjs +15 -0
  474. package/dist/components/Menu/index.d.cts +2 -0
  475. package/dist/components/Menu/index.d.mts +2 -0
  476. package/dist/components/Menu/index.mjs +2 -0
  477. package/dist/components/Modal/index.cjs +285 -0
  478. package/dist/components/Modal/index.cjs.map +1 -0
  479. package/dist/components/Modal/index.d.cts +2 -0
  480. package/dist/components/Modal/index.d.mts +2 -0
  481. package/dist/components/Modal/index.mjs +276 -0
  482. package/dist/components/Modal/index.mjs.map +1 -0
  483. package/dist/components/PageHeader/index.cjs +71 -0
  484. package/dist/components/PageHeader/index.cjs.map +1 -0
  485. package/dist/components/PageHeader/index.d.cts +2 -0
  486. package/dist/components/PageHeader/index.d.mts +2 -0
  487. package/dist/components/PageHeader/index.mjs +64 -0
  488. package/dist/components/PageHeader/index.mjs.map +1 -0
  489. package/dist/components/Pagination/index.cjs +211 -0
  490. package/dist/components/Pagination/index.cjs.map +1 -0
  491. package/dist/components/Pagination/index.d.cts +3 -0
  492. package/dist/components/Pagination/index.d.mts +3 -0
  493. package/dist/components/Pagination/index.mjs +203 -0
  494. package/dist/components/Pagination/index.mjs.map +1 -0
  495. package/dist/components/Pii/index.cjs +20 -0
  496. package/dist/components/Pii/index.cjs.map +1 -0
  497. package/dist/components/Pii/index.d.cts +2 -0
  498. package/dist/components/Pii/index.d.mts +2 -0
  499. package/dist/components/Pii/index.mjs +19 -0
  500. package/dist/components/Pii/index.mjs.map +1 -0
  501. package/dist/components/Popover/index.cjs +13 -0
  502. package/dist/components/Popover/index.d.cts +2 -0
  503. package/dist/components/Popover/index.d.mts +2 -0
  504. package/dist/components/Popover/index.mjs +2 -0
  505. package/dist/components/ProgressBar/index.cjs +177 -0
  506. package/dist/components/ProgressBar/index.cjs.map +1 -0
  507. package/dist/components/ProgressBar/index.d.cts +2 -0
  508. package/dist/components/ProgressBar/index.d.mts +2 -0
  509. package/dist/components/ProgressBar/index.mjs +168 -0
  510. package/dist/components/ProgressBar/index.mjs.map +1 -0
  511. package/dist/components/ProgressIndicator/index.cjs +185 -0
  512. package/dist/components/ProgressIndicator/index.cjs.map +1 -0
  513. package/dist/components/ProgressIndicator/index.d.cts +2 -0
  514. package/dist/components/ProgressIndicator/index.d.mts +2 -0
  515. package/dist/components/ProgressIndicator/index.mjs +178 -0
  516. package/dist/components/ProgressIndicator/index.mjs.map +1 -0
  517. package/dist/components/Radio/index.cjs +8 -0
  518. package/dist/components/Radio/index.d.cts +2 -0
  519. package/dist/components/Radio/index.d.mts +2 -0
  520. package/dist/components/Radio/index.mjs +2 -0
  521. package/dist/components/RadioGroup/index.cjs +8 -0
  522. package/dist/components/RadioGroup/index.d.cts +2 -0
  523. package/dist/components/RadioGroup/index.d.mts +2 -0
  524. package/dist/components/RadioGroup/index.mjs +2 -0
  525. package/dist/components/SegmentedControl/index.cjs +9 -0
  526. package/dist/components/SegmentedControl/index.d.cts +2 -0
  527. package/dist/components/SegmentedControl/index.d.mts +2 -0
  528. package/dist/components/SegmentedControl/index.mjs +2 -0
  529. package/dist/components/Select/index.cjs +10 -0
  530. package/dist/components/Select/index.d.cts +2 -0
  531. package/dist/components/Select/index.d.mts +2 -0
  532. package/dist/components/Select/index.mjs +2 -0
  533. package/dist/components/Slider/index.cjs +1507 -0
  534. package/dist/components/Slider/index.cjs.map +1 -0
  535. package/dist/components/Slider/index.d.cts +3 -0
  536. package/dist/components/Slider/index.d.mts +3 -0
  537. package/dist/components/Slider/index.mjs +1497 -0
  538. package/dist/components/Slider/index.mjs.map +1 -0
  539. package/dist/components/Spacer/index.cjs +3 -0
  540. package/dist/components/Spacer/index.d.cts +2 -0
  541. package/dist/components/Spacer/index.d.mts +2 -0
  542. package/dist/components/Spacer/index.mjs +2 -0
  543. package/dist/components/Spinner/index.cjs +8 -0
  544. package/dist/components/Spinner/index.d.cts +2 -0
  545. package/dist/components/Spinner/index.d.mts +2 -0
  546. package/dist/components/Spinner/index.mjs +2 -0
  547. package/dist/components/Stack/index.cjs +9 -0
  548. package/dist/components/Stack/index.d.cts +2 -0
  549. package/dist/components/Stack/index.d.mts +2 -0
  550. package/dist/components/Stack/index.mjs +2 -0
  551. package/dist/components/StatusIndicator/index.cjs +174 -0
  552. package/dist/components/StatusIndicator/index.cjs.map +1 -0
  553. package/dist/components/StatusIndicator/index.d.cts +2 -0
  554. package/dist/components/StatusIndicator/index.d.mts +2 -0
  555. package/dist/components/StatusIndicator/index.mjs +167 -0
  556. package/dist/components/StatusIndicator/index.mjs.map +1 -0
  557. package/dist/components/Sticker/index.cjs +12 -0
  558. package/dist/components/Sticker/index.d.cts +2 -0
  559. package/dist/components/Sticker/index.d.mts +2 -0
  560. package/dist/components/Sticker/index.mjs +2 -0
  561. package/dist/components/SwatchPicker/index.cjs +65 -0
  562. package/dist/components/SwatchPicker/index.cjs.map +1 -0
  563. package/dist/components/SwatchPicker/index.d.cts +2 -0
  564. package/dist/components/SwatchPicker/index.d.mts +2 -0
  565. package/dist/components/SwatchPicker/index.mjs +58 -0
  566. package/dist/components/SwatchPicker/index.mjs.map +1 -0
  567. package/dist/components/TabBar/index.cjs +12 -0
  568. package/dist/components/TabBar/index.d.cts +4 -0
  569. package/dist/components/TabBar/index.d.mts +4 -0
  570. package/dist/components/TabBar/index.mjs +2 -0
  571. package/dist/components/Table/index.cjs +400 -0
  572. package/dist/components/Table/index.cjs.map +1 -0
  573. package/dist/components/Table/index.d.cts +8 -0
  574. package/dist/components/Table/index.d.mts +8 -0
  575. package/dist/components/Table/index.mjs +379 -0
  576. package/dist/components/Table/index.mjs.map +1 -0
  577. package/dist/components/Text/index.cjs +9 -0
  578. package/dist/components/Text/index.d.cts +2 -0
  579. package/dist/components/Text/index.d.mts +2 -0
  580. package/dist/components/Text/index.mjs +2 -0
  581. package/dist/components/TextArea/index.cjs +8 -0
  582. package/dist/components/TextArea/index.d.cts +2 -0
  583. package/dist/components/TextArea/index.d.mts +2 -0
  584. package/dist/components/TextArea/index.mjs +2 -0
  585. package/dist/components/Tile/index.cjs +103 -0
  586. package/dist/components/Tile/index.cjs.map +1 -0
  587. package/dist/components/Tile/index.d.cts +2 -0
  588. package/dist/components/Tile/index.d.mts +2 -0
  589. package/dist/components/Tile/index.mjs +96 -0
  590. package/dist/components/Tile/index.mjs.map +1 -0
  591. package/dist/components/Toast/index.cjs +141 -0
  592. package/dist/components/Toast/index.cjs.map +1 -0
  593. package/dist/components/Toast/index.d.cts +2 -0
  594. package/dist/components/Toast/index.d.mts +2 -0
  595. package/dist/components/Toast/index.mjs +136 -0
  596. package/dist/components/Toast/index.mjs.map +1 -0
  597. package/dist/components/Toggle/index.cjs +8 -0
  598. package/dist/components/Toggle/index.d.cts +2 -0
  599. package/dist/components/Toggle/index.d.mts +2 -0
  600. package/dist/components/Toggle/index.mjs +2 -0
  601. package/dist/components/Tooltip/index.cjs +12 -0
  602. package/dist/components/Tooltip/index.d.cts +4 -0
  603. package/dist/components/Tooltip/index.d.mts +4 -0
  604. package/dist/components/Tooltip/index.mjs +2 -0
  605. package/dist/constants.d.mts +5 -0
  606. package/dist/ids-Cr-NW2RJ.d.mts +11 -0
  607. package/dist/ids-e4V5Y3Ub.d.cts +11 -0
  608. package/dist/index-1-AkepUA.d.mts +1 -0
  609. package/dist/index-7in8TPrM.d.mts +1 -0
  610. package/dist/index-8R9vlM2B.d.mts +83 -0
  611. package/dist/index-B2KLYYkM.d.cts +1 -0
  612. package/dist/index-BBDa5smF.d.cts +1 -0
  613. package/dist/index-BJ8-FA6N.d.cts +1 -0
  614. package/dist/index-BM1DqNZf.d.cts +628 -0
  615. package/dist/index-BPSCxsMC.d.cts +1 -0
  616. package/dist/index-BPiqSRRl.d.mts +1 -0
  617. package/dist/index-BUYyA1Xh.d.cts +1 -0
  618. package/dist/index-CCt0lwyI.d.mts +1 -0
  619. package/dist/index-CEDY7cmG.d.cts +1 -0
  620. package/dist/index-CEqOS-7M.d.mts +1 -0
  621. package/dist/index-CExuKKOI.d.cts +218 -0
  622. package/dist/index-CIABef8t.d.mts +1 -0
  623. package/dist/index-CIBxlpQo.d.mts +1 -0
  624. package/dist/index-CKu60b9I.d.mts +154 -0
  625. package/dist/index-CP2eJYlK.d.mts +1 -0
  626. package/dist/index-CRo77wc3.d.mts +1 -0
  627. package/dist/index-CiBIKhMu.d.cts +1 -0
  628. package/dist/index-Cii4Qb1X.d.mts +1 -0
  629. package/dist/index-CspKFJM1.d.cts +1 -0
  630. package/dist/index-CsuikFeJ.d.mts +1 -0
  631. package/dist/index-Cz6N-KeS.d.cts +1 -0
  632. package/dist/index-D-BciAtf.d.cts +1 -0
  633. package/dist/index-D26lpgQi.d.cts +1 -0
  634. package/dist/index-D2HUTZ-d.d.cts +1 -0
  635. package/dist/index-D4DUvwPf.d.mts +1 -0
  636. package/dist/index-D4ELpJXS.d.cts +1 -0
  637. package/dist/index-D6CnpA_r.d.cts +1 -0
  638. package/dist/index-DLoAMD9J.d.cts +1 -0
  639. package/dist/index-DQvVmqvS.d.mts +628 -0
  640. package/dist/index-DWfPppPU.d.mts +1 -0
  641. package/dist/index-DcU87nuJ2.d.cts +1 -0
  642. package/dist/index-DkrC-i1D.d.mts +1 -0
  643. package/dist/index-DvuJXuAN.d.mts +1 -0
  644. package/dist/index-OEBbnNdr.d.mts +1 -0
  645. package/dist/index-QbUkWSLh.d.mts +1 -0
  646. package/dist/index-VmEFGBxN.d.cts +1 -0
  647. package/dist/index.cjs +1 -0
  648. package/dist/index.d.cts +2 -0
  649. package/dist/index.d.mts +2 -0
  650. package/dist/index.mjs +0 -0
  651. package/dist/index2.d.cts +1 -0
  652. package/dist/index2.d.mts +1 -0
  653. package/dist/input-BCmP106-.d.mts +17 -0
  654. package/dist/input-Bm_anD8X.d.cts +17 -0
  655. package/dist/inputFields.d.cts +83 -0
  656. package/dist/inputFields.d.mts +83 -0
  657. package/dist/intersperse.d.mts +18 -0
  658. package/dist/lib/ConfigContext.cjs +15 -0
  659. package/dist/lib/ConfigContext.cjs.map +1 -0
  660. package/dist/lib/ConfigContext.d.cts +16 -0
  661. package/dist/lib/ConfigContext.d.mts +17 -0
  662. package/dist/lib/ConfigContext.mjs +15 -0
  663. package/dist/lib/ConfigContext.mjs.map +1 -0
  664. package/dist/lib/HeadlessAriaButton.cjs +33 -0
  665. package/dist/lib/HeadlessAriaButton.cjs.map +1 -0
  666. package/dist/lib/HeadlessAriaButton.d.cts +12 -0
  667. package/dist/lib/HeadlessAriaButton.d.mts +12 -0
  668. package/dist/lib/HeadlessAriaButton.mjs +30 -0
  669. package/dist/lib/HeadlessAriaButton.mjs.map +1 -0
  670. package/dist/lib/PDSProvider.cjs +20 -0
  671. package/dist/lib/PDSProvider.cjs.map +1 -0
  672. package/dist/lib/PDSProvider.d.cts +12 -0
  673. package/dist/lib/PDSProvider.d.mts +13 -0
  674. package/dist/lib/PDSProvider.mjs +19 -0
  675. package/dist/lib/PDSProvider.mjs.map +1 -0
  676. package/dist/lib/TruncatedText.cjs +39 -0
  677. package/dist/lib/TruncatedText.cjs.map +1 -0
  678. package/dist/lib/TruncatedText.d.cts +2 -0
  679. package/dist/lib/TruncatedText.d.mts +2 -0
  680. package/dist/lib/TruncatedText.mjs +31 -0
  681. package/dist/lib/TruncatedText.mjs.map +1 -0
  682. package/dist/lib/TruncatedTextWithTooltip.cjs +34 -0
  683. package/dist/lib/TruncatedTextWithTooltip.cjs.map +1 -0
  684. package/dist/lib/TruncatedTextWithTooltip.d.cts +15 -0
  685. package/dist/lib/TruncatedTextWithTooltip.d.mts +15 -0
  686. package/dist/lib/TruncatedTextWithTooltip.mjs +28 -0
  687. package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -0
  688. package/dist/lib/comboboxHelper.cjs +46 -0
  689. package/dist/lib/comboboxHelper.cjs.map +1 -0
  690. package/dist/lib/comboboxHelper.d.cts +24 -0
  691. package/dist/lib/comboboxHelper.d.mts +24 -0
  692. package/dist/lib/comboboxHelper.mjs +42 -0
  693. package/dist/lib/comboboxHelper.mjs.map +1 -0
  694. package/dist/lib/datePickerHelper.cjs +3568 -0
  695. package/dist/lib/datePickerHelper.cjs.map +1 -0
  696. package/dist/lib/datePickerHelper.d.cts +19 -0
  697. package/dist/lib/datePickerHelper.d.mts +19 -0
  698. package/dist/lib/datePickerHelper.mjs +3566 -0
  699. package/dist/lib/datePickerHelper.mjs.map +1 -0
  700. package/dist/lib/pseudoClass.cjs +32 -0
  701. package/dist/lib/pseudoClass.cjs.map +1 -0
  702. package/dist/lib/pseudoClass.d.cts +45 -0
  703. package/dist/lib/pseudoClass.d.mts +45 -0
  704. package/dist/lib/pseudoClass.mjs +18 -0
  705. package/dist/lib/pseudoClass.mjs.map +1 -0
  706. package/dist/lib/register/RegisterComponent.cjs +91 -0
  707. package/dist/lib/register/RegisterComponent.cjs.map +1 -0
  708. package/dist/lib/register/RegisterComponent.d.cts +2 -0
  709. package/dist/lib/register/RegisterComponent.d.mts +2 -0
  710. package/dist/lib/register/RegisterComponent.mjs +88 -0
  711. package/dist/lib/register/RegisterComponent.mjs.map +1 -0
  712. package/dist/lib/register/ids.cjs +31 -0
  713. package/dist/lib/register/ids.cjs.map +1 -0
  714. package/dist/lib/register/ids.d.cts +2 -0
  715. package/dist/lib/register/ids.d.mts +2 -0
  716. package/dist/lib/register/ids.mjs +28 -0
  717. package/dist/lib/register/ids.mjs.map +1 -0
  718. package/dist/lib/register/index.cjs +8 -0
  719. package/dist/lib/register/index.d.cts +4 -0
  720. package/dist/lib/register/index.d.mts +4 -0
  721. package/dist/lib/register/index.mjs +3 -0
  722. package/dist/lib/register/types.cjs +1 -0
  723. package/dist/lib/register/types.d.cts +2 -0
  724. package/dist/lib/register/types.d.mts +2 -0
  725. package/dist/lib/register/types.mjs +0 -0
  726. package/dist/lib/reorderItems.cjs +39 -0
  727. package/dist/lib/reorderItems.cjs.map +1 -0
  728. package/dist/lib/reorderItems.d.cts +26 -0
  729. package/dist/lib/reorderItems.d.mts +26 -0
  730. package/dist/lib/reorderItems.mjs +36 -0
  731. package/dist/lib/reorderItems.mjs.map +1 -0
  732. package/dist/lib/selectHelper.cjs +22 -0
  733. package/dist/lib/selectHelper.cjs.map +1 -0
  734. package/dist/lib/selectHelper.d.cts +14 -0
  735. package/dist/lib/selectHelper.d.mts +14 -0
  736. package/dist/lib/selectHelper.mjs +20 -0
  737. package/dist/lib/selectHelper.mjs.map +1 -0
  738. package/dist/lib/useControlled.cjs +20 -0
  739. package/dist/lib/useControlled.cjs.map +1 -0
  740. package/dist/lib/useControlled.d.cts +16 -0
  741. package/dist/lib/useControlled.d.mts +17 -0
  742. package/dist/lib/useControlled.mjs +19 -0
  743. package/dist/lib/useControlled.mjs.map +1 -0
  744. package/dist/lib/useIsOverflow.cjs +58 -0
  745. package/dist/lib/useIsOverflow.cjs.map +1 -0
  746. package/dist/lib/useIsOverflow.d.cts +11 -0
  747. package/dist/lib/useIsOverflow.d.mts +11 -0
  748. package/dist/lib/useIsOverflow.mjs +56 -0
  749. package/dist/lib/useIsOverflow.mjs.map +1 -0
  750. package/dist/lib/useOutsideClick.cjs +19 -0
  751. package/dist/lib/useOutsideClick.cjs.map +1 -0
  752. package/dist/lib/useOutsideClick.d.cts +13 -0
  753. package/dist/lib/useOutsideClick.d.mts +13 -0
  754. package/dist/lib/useOutsideClick.mjs +17 -0
  755. package/dist/lib/useOutsideClick.mjs.map +1 -0
  756. package/dist/lib/zindex.cjs +27 -0
  757. package/dist/lib/zindex.cjs.map +1 -0
  758. package/dist/lib/zindex.d.cts +25 -0
  759. package/dist/lib/zindex.d.mts +25 -0
  760. package/dist/lib/zindex.mjs +25 -0
  761. package/dist/lib/zindex.mjs.map +1 -0
  762. package/dist/mergeRefs-BZinWopc.cjs +31 -0
  763. package/dist/mergeRefs-BZinWopc.cjs.map +1 -0
  764. package/dist/mergeRefs-BgcbK0Qy.mjs +26 -0
  765. package/dist/mergeRefs-BgcbK0Qy.mjs.map +1 -0
  766. package/dist/mixins/focus.cjs +39 -0
  767. package/dist/mixins/focus.cjs.map +1 -0
  768. package/dist/mixins/focus.d.cts +11 -0
  769. package/dist/mixins/focus.d.mts +11 -0
  770. package/dist/mixins/focus.mjs +34 -0
  771. package/dist/mixins/focus.mjs.map +1 -0
  772. package/dist/mixins/hoverable.cjs +38 -0
  773. package/dist/mixins/hoverable.cjs.map +1 -0
  774. package/dist/mixins/hoverable.d.cts +16 -0
  775. package/dist/mixins/hoverable.d.mts +16 -0
  776. package/dist/mixins/hoverable.mjs +32 -0
  777. package/dist/mixins/hoverable.mjs.map +1 -0
  778. package/dist/mixins/input.cjs +95 -0
  779. package/dist/mixins/input.cjs.map +1 -0
  780. package/dist/mixins/input.d.cts +2 -0
  781. package/dist/mixins/input.d.mts +2 -0
  782. package/dist/mixins/input.mjs +94 -0
  783. package/dist/mixins/input.mjs.map +1 -0
  784. package/dist/mixins/menuItem.cjs +110 -0
  785. package/dist/mixins/menuItem.cjs.map +1 -0
  786. package/dist/mixins/menuItem.d.cts +30 -0
  787. package/dist/mixins/menuItem.d.mts +31 -0
  788. package/dist/mixins/menuItem.mjs +109 -0
  789. package/dist/mixins/menuItem.mjs.map +1 -0
  790. package/dist/mixins/print/index.cjs +25 -0
  791. package/dist/mixins/print/index.cjs.map +1 -0
  792. package/dist/mixins/print/index.d.cts +11 -0
  793. package/dist/mixins/print/index.d.mts +11 -0
  794. package/dist/mixins/print/index.mjs +23 -0
  795. package/dist/mixins/print/index.mjs.map +1 -0
  796. package/dist/mixins/text.cjs +93 -0
  797. package/dist/mixins/text.cjs.map +1 -0
  798. package/dist/mixins/text.d.cts +2 -0
  799. package/dist/mixins/text.d.mts +2 -0
  800. package/dist/mixins/text.mjs +88 -0
  801. package/dist/mixins/text.mjs.map +1 -0
  802. package/dist/motion-DoikasqZ.mjs +7483 -0
  803. package/dist/motion-DoikasqZ.mjs.map +1 -0
  804. package/dist/motion-QW6imSxE.cjs +7488 -0
  805. package/dist/motion-QW6imSxE.cjs.map +1 -0
  806. package/dist/react.esm-C-es35jP.cjs +11441 -0
  807. package/dist/react.esm-C-es35jP.cjs.map +1 -0
  808. package/dist/react.esm-Dv1lMDRs.mjs +11397 -0
  809. package/dist/react.esm-Dv1lMDRs.mjs.map +1 -0
  810. package/dist/text-BrSUs-88.d.mts +14 -0
  811. package/dist/text-PmH5oc61.d.cts +14 -0
  812. package/dist/theme-Cadb1xzQ.d.cts +154 -0
  813. package/dist/theme-DGAqgnUa.d.mts +154 -0
  814. package/dist/theme.cjs +353 -0
  815. package/dist/theme.cjs.map +1 -0
  816. package/dist/theme.d.cts +2 -0
  817. package/dist/theme.d.mts +2 -0
  818. package/dist/theme.mjs +346 -0
  819. package/dist/theme.mjs.map +1 -0
  820. package/dist/types-DzHQ5MGm.d.mts +69 -0
  821. package/dist/types-N-cXznfM.d.cts +69 -0
  822. package/dist/useFormField-Ba0CQ43u.d.cts +30 -0
  823. package/dist/useFormField-BmtItl8y.d.mts +30 -0
  824. package/dist/useFormField-DN3gpEEV.cjs +37 -0
  825. package/dist/useFormField-DN3gpEEV.cjs.map +1 -0
  826. package/dist/useFormField-eftOPiXj.mjs +25 -0
  827. package/dist/useFormField-eftOPiXj.mjs.map +1 -0
  828. package/dist/useFormField.d.cts +2 -0
  829. package/dist/useFormField.d.mts +2 -0
  830. package/dist/useFormGroup-BMukAMAd.mjs +14 -0
  831. package/dist/useFormGroup-BMukAMAd.mjs.map +1 -0
  832. package/dist/useFormGroup-B_mFNoN9.cjs +26 -0
  833. package/dist/useFormGroup-B_mFNoN9.cjs.map +1 -0
  834. package/dist/useFormGroup.d.cts +18 -0
  835. package/dist/useFormGroup.d.mts +18 -0
  836. package/dist/useLabel-BcbghpIU.cjs +1465 -0
  837. package/dist/useLabel-BcbghpIU.cjs.map +1 -0
  838. package/dist/useLabel-DHGzNIKw.mjs +1212 -0
  839. package/dist/useLabel-DHGzNIKw.mjs.map +1 -0
  840. package/dist/useModalInsetRight.d.mts +21 -0
  841. package/dist/useToggle-0zLL1E7s.mjs +21 -0
  842. package/dist/useToggle-0zLL1E7s.mjs.map +1 -0
  843. package/dist/useToggle-DNrEsTpr.cjs +27 -0
  844. package/dist/useToggle-DNrEsTpr.cjs.map +1 -0
  845. package/dist/useToggle.d.mts +17 -0
  846. package/dist/useTruncation.d.mts +12 -0
  847. package/dist/utilities-C8Jf-xpi.d.cts +9 -0
  848. package/dist/utilities-w1K54IAy.d.mts +9 -0
  849. package/dist/utilities.d.cts +2 -0
  850. package/dist/utilities.d.mts +2 -0
  851. package/dist/utils/storybook.cjs +13 -0
  852. package/dist/utils/storybook.cjs.map +1 -0
  853. package/dist/utils/storybook.mjs +11 -0
  854. package/dist/utils/storybook.mjs.map +1 -0
  855. package/dist/utils/testing.cjs +50 -0
  856. package/dist/utils/testing.cjs.map +1 -0
  857. package/dist/utils/testing.d.cts +370 -0
  858. package/dist/utils/testing.d.mts +370 -0
  859. package/dist/utils/testing.mjs +45 -0
  860. package/dist/utils/testing.mjs.map +1 -0
  861. package/dist/variables/color.cjs +23 -0
  862. package/dist/variables/color.cjs.map +1 -0
  863. package/dist/variables/color.d.cts +19 -0
  864. package/dist/variables/color.d.mts +19 -0
  865. package/dist/variables/color.mjs +21 -0
  866. package/dist/variables/color.mjs.map +1 -0
  867. package/dist/variables/effect.cjs +27 -0
  868. package/dist/variables/effect.cjs.map +1 -0
  869. package/dist/variables/effect.d.cts +21 -0
  870. package/dist/variables/effect.d.mts +21 -0
  871. package/dist/variables/effect.mjs +24 -0
  872. package/dist/variables/effect.mjs.map +1 -0
  873. package/dist/variables/keyframes.cjs +22 -0
  874. package/dist/variables/keyframes.cjs.map +1 -0
  875. package/dist/variables/keyframes.d.cts +8 -0
  876. package/dist/variables/keyframes.d.mts +8 -0
  877. package/dist/variables/keyframes.mjs +19 -0
  878. package/dist/variables/keyframes.mjs.map +1 -0
  879. package/dist/variables/spacing.cjs +11 -0
  880. package/dist/variables/spacing.cjs.map +1 -0
  881. package/dist/variables/spacing.d.cts +8 -0
  882. package/dist/variables/spacing.d.mts +8 -0
  883. package/dist/variables/spacing.mjs +9 -0
  884. package/dist/variables/spacing.mjs.map +1 -0
  885. package/dist/variables/text.cjs +14 -0
  886. package/dist/variables/text.cjs.map +1 -0
  887. package/dist/variables/text.d.cts +10 -0
  888. package/dist/variables/text.d.mts +10 -0
  889. package/dist/variables/text.mjs +12 -0
  890. package/dist/variables/text.mjs.map +1 -0
  891. package/dist/variables/transitions.cjs +25 -0
  892. package/dist/variables/transitions.cjs.map +1 -0
  893. package/dist/variables/transitions.d.cts +19 -0
  894. package/dist/variables/transitions.d.mts +19 -0
  895. package/dist/variables/transitions.mjs +22 -0
  896. package/dist/variables/transitions.mjs.map +1 -0
  897. package/package.json +781 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["Spacing","Typography","IconButton","Typography","Color","BorderRadius","Color","Typography","GregorianCalendar","ArrowLeftIcon","ArrowRightIcon","$4YhVz$arAEmodulejs","$4YhVz$bgBGmodulejs","$4YhVz$csCZmodulejs","$4YhVz$daDKmodulejs","$4YhVz$deDEmodulejs","$4YhVz$elGRmodulejs","$4YhVz$enUSmodulejs","$4YhVz$esESmodulejs","$4YhVz$etEEmodulejs","$4YhVz$fiFImodulejs","$4YhVz$frFRmodulejs","$4YhVz$heILmodulejs","$4YhVz$hrHRmodulejs","$4YhVz$huHUmodulejs","$4YhVz$itITmodulejs","$4YhVz$jaJPmodulejs","$4YhVz$koKRmodulejs","$4YhVz$ltLTmodulejs","$4YhVz$lvLVmodulejs","$4YhVz$nbNOmodulejs","$4YhVz$nlNLmodulejs","$4YhVz$plPLmodulejs","$4YhVz$ptBRmodulejs","$4YhVz$ptPTmodulejs","$4YhVz$roROmodulejs","$4YhVz$ruRUmodulejs","$4YhVz$skSKmodulejs","$4YhVz$slSImodulejs","$4YhVz$srSPmodulejs","$4YhVz$svSEmodulejs","$4YhVz$trTRmodulejs","$4YhVz$ukUAmodulejs","$4YhVz$zhCNmodulejs","$4YhVz$zhTWmodulejs","$d4ee10de306f2510$export$4282f70798064fe0","$bJKXg$shadowDOM","$c87311424ea30a05$export$b7d78993b74f766d","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$78551043582a6a98","$c87311424ea30a05$export$7bef049ce92e4224","$7215afc6de606d6b$export$de79e2c695e052f3","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$8ae05eaa5c114e9c$export$7f54fc3180508a52","$c87311424ea30a05$export$6446a186d09e379e","$3aeG1$react","$7mdmh$mergeProps","$7mdmh$useSyncRef","$7mdmh$_2","$7mdmh$_","$7mdmh$_1","$7mdmh$useGlobalListeners","$7mdmh$useEffectEvent","$14c0b72509d70225$export$b0d6fa1ab32e3295","$8a9cb279dc87e130$export$c2b7abe5d61ec696","$8a9cb279dc87e130$export$525bc4921d56d4a","$7mdmh$nodeContains","$7mdmh$getEventTarget","$7mdmh$getOwnerDocument","$7mdmh$chain","$7mdmh$isMac","$7mdmh$openLink","$7mdmh$isVirtualClick","$7mdmh$isVirtualPointerEvent","$14c0b72509d70225$export$16a4697467175487","$8a9cb279dc87e130$export$cabe61c495ee3649","$7mdmh$focusWithoutScrolling","$7mdmh$getOwnerWindow","$cgawC$getOwnerDocument","$cgawC$focusSafely","$cgawC$isTabbable","$cgawC$isFocusable","$cgawC$createShadowTreeWalker","$cgawC$getActiveElement","$6ksNp$LocalizedStringDictionary","$18f2051aff69b9bf$export$43bb16f9c6d9e3f7","$6ksNp$LocalizedStringFormatter","$6wxND$useDeepMemo","$18f2051aff69b9bf$export$43bb16f9c6d9e3f7","$6wxND$DateFormatter","$488c6ddbf4ef74c2$export$cc77c4ff7e8673c5","$18f2051aff69b9bf$export$43bb16f9c6d9e3f7","$7CEvq$useLocale","$7CEvq$createFocusManager","$7CEvq$getFocusableTreeWalker","$7CEvq$usePress","$7CEvq$mergeProps","$d191a55c9702f145$export$8467354a121f1b9f","$2kC82$useSlotId","$2kC82$mergeProps","$9Gacy$useLayoutEffect","$9Gacy$useEffectEvent","$9Gacy$setInteractionModality","$parcel$interopDefault","$7Gzdi$useField","$7Gzdi$useFocusWithin","$7Gzdi$useLocalizedStringFormatter","$7Gzdi$intlStringsmodulejs","$7Gzdi$useDescription","$7Gzdi$createFocusManager","$7Gzdi$mergeProps","$7Gzdi$useFormReset","$7Gzdi$useFormValidation","$7Gzdi$filterDOMProps","$parcel$interopDefault","$jR5iF$useLocale","$jR5iF$useLocalizedStringDictionary","$jR5iF$intlStringsmodulejs","$894vb$arAEmodulejs","$894vb$bgBGmodulejs","$894vb$csCZmodulejs","$894vb$daDKmodulejs","$894vb$deDEmodulejs","$894vb$elGRmodulejs","$894vb$enUSmodulejs","$894vb$esESmodulejs","$894vb$etEEmodulejs","$894vb$fiFImodulejs","$894vb$frFRmodulejs","$894vb$heILmodulejs","$894vb$hrHRmodulejs","$894vb$huHUmodulejs","$894vb$itITmodulejs","$894vb$jaJPmodulejs","$894vb$koKRmodulejs","$894vb$ltLTmodulejs","$894vb$lvLVmodulejs","$894vb$nbNOmodulejs","$894vb$nlNLmodulejs","$894vb$plPLmodulejs","$894vb$ptBRmodulejs","$894vb$ptPTmodulejs","$894vb$roROmodulejs","$894vb$ruRUmodulejs","$894vb$skSKmodulejs","$894vb$slSImodulejs","$894vb$srSPmodulejs","$894vb$svSEmodulejs","$894vb$trTRmodulejs","$894vb$ukUAmodulejs","$894vb$zhCNmodulejs","$894vb$zhTWmodulejs","$parcel$interopDefault","$5rwhf$useLocalizedStringFormatter","$5rwhf$intlStringsmodulejs","$5rwhf$clearAnnouncer","$5rwhf$announce","$5rwhf$useEffectEvent","$5rwhf$useGlobalListeners","$4d1jn$useLocale","$4d1jn$useDateFormatter","$4d1jn$useSpinButton","$4d1jn$NumberParser","$4d1jn$isMac","$4d1jn$useFilter","$4d1jn$CalendarDate","$4d1jn$scrollIntoViewport","$4d1jn$getScrollParent","$4d1jn$useEvent","$4d1jn$useLayoutEffect","$4d1jn$isIOS","$4d1jn$useId","$4d1jn$useLabels","$4d1jn$mergeProps","$4d1jn$react","$umoiH$arAEmodulejs","$umoiH$bgBGmodulejs","$umoiH$csCZmodulejs","$umoiH$daDKmodulejs","$umoiH$deDEmodulejs","$umoiH$elGRmodulejs","$umoiH$enUSmodulejs","$umoiH$esESmodulejs","$umoiH$etEEmodulejs","$umoiH$fiFImodulejs","$umoiH$frFRmodulejs","$umoiH$heILmodulejs","$umoiH$hrHRmodulejs","$umoiH$huHUmodulejs","$umoiH$itITmodulejs","$umoiH$jaJPmodulejs","$umoiH$koKRmodulejs","$umoiH$ltLTmodulejs","$umoiH$lvLVmodulejs","$umoiH$nbNOmodulejs","$umoiH$nlNLmodulejs","$umoiH$plPLmodulejs","$umoiH$ptBRmodulejs","$umoiH$ptPTmodulejs","$umoiH$roROmodulejs","$umoiH$ruRUmodulejs","$umoiH$skSKmodulejs","$umoiH$slSImodulejs","$umoiH$srSPmodulejs","$umoiH$svSEmodulejs","$umoiH$trTRmodulejs","$umoiH$ukUAmodulejs","$umoiH$zhCNmodulejs","$umoiH$zhTWmodulejs","$bUJMr$LocalizedStringDictionary","$bUJMr$intlStringsmodulejs","$bUJMr$LocalizedStringFormatter","$bUJMr$DateFormatter","$bzTv4$LocalizedStringDictionary","$g03ag$DateFormatter","$g03ag$useControlledState","$g03ag$GregorianCalendar","$g03ag$useFormValidationState","isFocused","Color","Spacing","useDateSegment","inputMixin","isFocusedVisible","isNotDisabled","focusWithinOutline","useLocale","useDateFieldState","useDateField","mergeRefs","OpenButton","Popover","Z_INDICES","VisuallyHidden","singleton","English.formatRelativeTime","English.months","English.weekdays","English.meridiems","English.eras","Formats.DATE_SHORT","Formats.DATE_MED","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_MED","Formats.DATETIME_FULL","Formats.DATETIME_HUGE","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE_WITH_SECONDS","English.meridiemForDateTime","English.monthForDateTime","English.weekdayForDateTime","English.eraForDateTime","INVALID","orderedUnits","clone","INVALID","Formats.DATE_SHORT","Formats.DATE_SHORT","diff","Formats.DATE_MED","Formats.DATE_MED_WITH_WEEKDAY","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_MED_WITH_WEEKDAY","Formats.DATETIME_FULL","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE","Formats.DATETIME_HUGE_WITH_SECONDS","MenuItem","isNotDisabled","isHovered","isFocused","Color","MenuList","Spacing","BorderRadius","Card","Color","ArrowLeftIcon","ArrowRightIcon","RangeCalendarPresets","VisuallyHidden","FormLabel","Spacing","Typography","ClearButton","isDisabled","CalendarDate","Popover","CircleXInverseIcon","VisuallyHidden"],"sources":["../../../components/DatePicker/Calendar/CalendarBase.tsx","../../../components/DatePicker/Calendar/CalendarCell.tsx","../../../components/DatePicker/Calendar/CalendarGrid.tsx","../../../components/DatePicker/common.ts","../../../components/DatePicker/Calendar/Calendar.tsx","../../../../../node_modules/@react-aria/datepicker/dist/ar-AE.mjs","../../../../../node_modules/@react-aria/datepicker/dist/bg-BG.mjs","../../../../../node_modules/@react-aria/datepicker/dist/cs-CZ.mjs","../../../../../node_modules/@react-aria/datepicker/dist/da-DK.mjs","../../../../../node_modules/@react-aria/datepicker/dist/de-DE.mjs","../../../../../node_modules/@react-aria/datepicker/dist/el-GR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/en-US.mjs","../../../../../node_modules/@react-aria/datepicker/dist/es-ES.mjs","../../../../../node_modules/@react-aria/datepicker/dist/et-EE.mjs","../../../../../node_modules/@react-aria/datepicker/dist/fi-FI.mjs","../../../../../node_modules/@react-aria/datepicker/dist/fr-FR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/he-IL.mjs","../../../../../node_modules/@react-aria/datepicker/dist/hr-HR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/hu-HU.mjs","../../../../../node_modules/@react-aria/datepicker/dist/it-IT.mjs","../../../../../node_modules/@react-aria/datepicker/dist/ja-JP.mjs","../../../../../node_modules/@react-aria/datepicker/dist/ko-KR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/lt-LT.mjs","../../../../../node_modules/@react-aria/datepicker/dist/lv-LV.mjs","../../../../../node_modules/@react-aria/datepicker/dist/nb-NO.mjs","../../../../../node_modules/@react-aria/datepicker/dist/nl-NL.mjs","../../../../../node_modules/@react-aria/datepicker/dist/pl-PL.mjs","../../../../../node_modules/@react-aria/datepicker/dist/pt-BR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/pt-PT.mjs","../../../../../node_modules/@react-aria/datepicker/dist/ro-RO.mjs","../../../../../node_modules/@react-aria/datepicker/dist/ru-RU.mjs","../../../../../node_modules/@react-aria/datepicker/dist/sk-SK.mjs","../../../../../node_modules/@react-aria/datepicker/dist/sl-SI.mjs","../../../../../node_modules/@react-aria/datepicker/dist/sr-SP.mjs","../../../../../node_modules/@react-aria/datepicker/dist/sv-SE.mjs","../../../../../node_modules/@react-aria/datepicker/dist/tr-TR.mjs","../../../../../node_modules/@react-aria/datepicker/dist/uk-UA.mjs","../../../../../node_modules/@react-aria/datepicker/dist/zh-CN.mjs","../../../../../node_modules/@react-aria/datepicker/dist/zh-TW.mjs","../../../../../node_modules/@react-aria/datepicker/dist/intlStrings.mjs","../../../../../node_modules/@react-aria/utils/dist/ShadowTreeWalker.mjs","../../../../../node_modules/@react-aria/utils/dist/filterDOMProps.mjs","../../../../../node_modules/@react-aria/utils/dist/openLink.mjs","../../../../../node_modules/@react-aria/utils/dist/isScrollable.mjs","../../../../../node_modules/@react-aria/utils/dist/getScrollParent.mjs","../../../../../node_modules/@react-aria/utils/dist/getScrollParents.mjs","../../../../../node_modules/@react-aria/utils/dist/useDescription.mjs","../../../../../node_modules/@react-aria/utils/dist/useEvent.mjs","../../../../../node_modules/@react-aria/utils/dist/scrollIntoView.mjs","../../../../../node_modules/@react-aria/utils/dist/useDeepMemo.mjs","../../../../../node_modules/@react-aria/interactions/dist/context.mjs","../../../../../node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js","../../../../../node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js","../../../../../node_modules/@swc/helpers/esm/_class_private_field_get.js","../../../../../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","../../../../../node_modules/@swc/helpers/esm/_class_private_field_init.js","../../../../../node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js","../../../../../node_modules/@swc/helpers/esm/_class_private_field_set.js","../../../../../node_modules/@react-aria/interactions/dist/usePress.mjs","../../../../../node_modules/@react-aria/focus/dist/FocusScope.mjs","../../../../../node_modules/@internationalized/string/dist/LocalizedStringDictionary.mjs","../../../../../node_modules/@internationalized/string/dist/LocalizedStringFormatter.mjs","../../../../../node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.mjs","../../../../../node_modules/@react-aria/i18n/dist/useDateFormatter.mjs","../../../../../node_modules/@internationalized/number/dist/NumberParser.mjs","../../../../../node_modules/@react-aria/i18n/dist/useCollator.mjs","../../../../../node_modules/@react-aria/i18n/dist/useFilter.mjs","../../../../../node_modules/@react-aria/datepicker/dist/useDatePickerGroup.mjs","../../../../../node_modules/@react-aria/label/dist/useField.mjs","../../../../../node_modules/@react-aria/form/dist/useFormValidation.mjs","../../../../../node_modules/@react-aria/datepicker/dist/useDateField.mjs","../../../../../node_modules/@react-stately/form/dist/useFormValidationState.mjs","../../../../../node_modules/@react-aria/datepicker/dist/useDisplayNames.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/ar-AE.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/bg-BG.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/cs-CZ.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/da-DK.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/de-DE.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/el-GR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/en-US.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/es-ES.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/et-EE.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/fi-FI.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/fr-FR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/he-IL.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/hr-HR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/hu-HU.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/it-IT.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/ja-JP.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/ko-KR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/lt-LT.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/lv-LV.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/nb-NO.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/nl-NL.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/pl-PL.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/pt-BR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/pt-PT.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/ro-RO.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/ru-RU.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/sk-SK.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/sl-SI.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/sr-SP.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/sv-SE.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/tr-TR.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/uk-UA.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/zh-CN.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/zh-TW.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/intlStrings.mjs","../../../../../node_modules/@react-aria/live-announcer/dist/LiveAnnouncer.mjs","../../../../../node_modules/@react-aria/spinbutton/dist/useSpinButton.mjs","../../../../../node_modules/@react-aria/datepicker/dist/useDateSegment.mjs","../../../../../node_modules/@react-stately/datepicker/dist/ar-AE.mjs","../../../../../node_modules/@react-stately/datepicker/dist/bg-BG.mjs","../../../../../node_modules/@react-stately/datepicker/dist/cs-CZ.mjs","../../../../../node_modules/@react-stately/datepicker/dist/da-DK.mjs","../../../../../node_modules/@react-stately/datepicker/dist/de-DE.mjs","../../../../../node_modules/@react-stately/datepicker/dist/el-GR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/en-US.mjs","../../../../../node_modules/@react-stately/datepicker/dist/es-ES.mjs","../../../../../node_modules/@react-stately/datepicker/dist/et-EE.mjs","../../../../../node_modules/@react-stately/datepicker/dist/fi-FI.mjs","../../../../../node_modules/@react-stately/datepicker/dist/fr-FR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/he-IL.mjs","../../../../../node_modules/@react-stately/datepicker/dist/hr-HR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/hu-HU.mjs","../../../../../node_modules/@react-stately/datepicker/dist/it-IT.mjs","../../../../../node_modules/@react-stately/datepicker/dist/ja-JP.mjs","../../../../../node_modules/@react-stately/datepicker/dist/ko-KR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/lt-LT.mjs","../../../../../node_modules/@react-stately/datepicker/dist/lv-LV.mjs","../../../../../node_modules/@react-stately/datepicker/dist/nb-NO.mjs","../../../../../node_modules/@react-stately/datepicker/dist/nl-NL.mjs","../../../../../node_modules/@react-stately/datepicker/dist/pl-PL.mjs","../../../../../node_modules/@react-stately/datepicker/dist/pt-BR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/pt-PT.mjs","../../../../../node_modules/@react-stately/datepicker/dist/ro-RO.mjs","../../../../../node_modules/@react-stately/datepicker/dist/ru-RU.mjs","../../../../../node_modules/@react-stately/datepicker/dist/sk-SK.mjs","../../../../../node_modules/@react-stately/datepicker/dist/sl-SI.mjs","../../../../../node_modules/@react-stately/datepicker/dist/sr-SP.mjs","../../../../../node_modules/@react-stately/datepicker/dist/sv-SE.mjs","../../../../../node_modules/@react-stately/datepicker/dist/tr-TR.mjs","../../../../../node_modules/@react-stately/datepicker/dist/uk-UA.mjs","../../../../../node_modules/@react-stately/datepicker/dist/zh-CN.mjs","../../../../../node_modules/@react-stately/datepicker/dist/zh-TW.mjs","../../../../../node_modules/@react-stately/datepicker/dist/intlStrings.mjs","../../../../../node_modules/@react-stately/datepicker/dist/utils.mjs","../../../../../node_modules/@react-stately/datepicker/dist/placeholders.mjs","../../../../../node_modules/@react-stately/datepicker/dist/useDateFieldState.mjs","../../../components/DatePicker/DateField.tsx","../../../components/DatePicker/DatePicker.tsx","../../../../../node_modules/luxon/src/errors.js","../../../../../node_modules/luxon/src/impl/formats.js","../../../../../node_modules/luxon/src/zone.js","../../../../../node_modules/luxon/src/zones/systemZone.js","../../../../../node_modules/luxon/src/zones/IANAZone.js","../../../../../node_modules/luxon/src/impl/locale.js","../../../../../node_modules/luxon/src/zones/fixedOffsetZone.js","../../../../../node_modules/luxon/src/zones/invalidZone.js","../../../../../node_modules/luxon/src/impl/zoneUtil.js","../../../../../node_modules/luxon/src/settings.js","../../../../../node_modules/luxon/src/impl/invalid.js","../../../../../node_modules/luxon/src/impl/conversions.js","../../../../../node_modules/luxon/src/impl/util.js","../../../../../node_modules/luxon/src/impl/english.js","../../../../../node_modules/luxon/src/impl/formatter.js","../../../../../node_modules/luxon/src/impl/regexParser.js","../../../../../node_modules/luxon/src/duration.js","../../../../../node_modules/luxon/src/interval.js","../../../../../node_modules/luxon/src/info.js","../../../../../node_modules/luxon/src/impl/diff.js","../../../../../node_modules/luxon/src/impl/digits.js","../../../../../node_modules/luxon/src/impl/tokenParser.js","../../../../../node_modules/luxon/src/datetime.js","../../../components/DatePicker/Calendar/RangeCalendarPresets.tsx","../../../components/DatePicker/Calendar/RangeCalendar.tsx","../../../components/DatePicker/DateRangePicker.tsx"],"sourcesContent":["import { Spacing, Typography } from '@persona/design-tokens';\nimport { useRef } from 'react';\nimport { useButton } from 'react-aria';\nimport styled from 'styled-components';\n\nimport { IconButton } from 'design-system/components/Button';\nimport type { IconButtonProps } from 'design-system/components/Button/IconButton';\n\nexport const CalendarContainer = styled.div`\n display: inline-block;\n`;\n\nexport const CalendarHeader = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: ${Spacing[2]};\n`;\n\nexport const CalendarHeading = styled.div`\n ${Typography.TextLargeBold};\n flex: 1;\n text-align: center;\n`;\n\nconst StyledCalendarButton = styled(IconButton)`\n width: 32px;\n height: 32px;\n`;\n\nexport const CalendarButton = (props: IconButtonProps) => {\n const ref = useRef();\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n const { buttonProps } = useButton(props, ref);\n\n return (\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n <StyledCalendarButton {...buttonProps} className={props.className} ref={ref}>\n {props.children}\n </StyledCalendarButton>\n );\n};\n","import { type CalendarDate, type DateValue, isSameDay, isSameMonth } from '@internationalized/date';\nimport { BorderRadius, Color, Typography } from '@persona/design-tokens';\nimport { useRef } from 'react';\nimport { useCalendarCell } from 'react-aria';\nimport type { CalendarState, RangeCalendarState } from 'react-stately';\nimport styled, { css } from 'styled-components';\n\nconst CalendarCellContainer = styled.td`\n text-align: center;\n width: 38px;\n height: 38px;\n padding: 0px;\n`;\n\ninterface CalendarCellButtonProps {\n isSelected?: boolean;\n isSelectionStart?: boolean;\n isSelectionEnd?: boolean;\n isInvalid?: boolean;\n isDisabled?: boolean;\n}\n\nconst CalendarCellButton = styled.button<CalendarCellButtonProps>`\n ${Typography.TextMedium};\n border-style: none;\n padding: 0;\n background: none;\n width: 100%;\n height: 100%;\n cursor: pointer;\n position: relative;\n\n ${({ isSelected }) =>\n isSelected &&\n css`\n background: ${Color.CorePurple100};\n `}\n\n ${({ isSelectionStart }) =>\n isSelectionStart &&\n css`\n background: ${Color.BackgroundButtonPrimary};\n color: ${Color.TextInverse};\n border-top-left-radius: ${BorderRadius.Sm};\n border-bottom-left-radius: ${BorderRadius.Sm};\n `}\n\n ${({ isSelectionEnd }) =>\n isSelectionEnd &&\n css`\n background: ${Color.BackgroundButtonPrimary};\n color: ${Color.TextInverse};\n border-top-right-radius: ${BorderRadius.Sm};\n border-bottom-right-radius: ${BorderRadius.Sm};\n `}\n\n ${({ isDisabled }) =>\n isDisabled &&\n css`\n color: ${Color.CoreSlate300};\n `}\n\n ${({ isInvalid }) =>\n isInvalid &&\n css`\n background: ${Color.BackgroundButtonDanger};\n color: ${Color.TextInverse};\n `}\n\n &:focus-visible {\n outline: 2px solid ${Color.BorderFocus};\n outline-offset: -2px;\n box-shadow: ${Color.PrimaryWhite} 0px 0px 0px 3px inset;\n z-index: 1;\n }\n`;\n\ninterface CalendarCellProps {\n state: CalendarState | RangeCalendarState;\n date: CalendarDate;\n currentMonth: DateValue;\n}\n\nconst CalendarCell = ({ state, date, currentMonth }: CalendarCellProps) => {\n const ref = useRef();\n const { cellProps, buttonProps, isSelected, isInvalid, isDisabled, formattedDate } =\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n useCalendarCell({ date }, state, ref);\n\n const highlightedRange = 'highlightedRange' in state && state.highlightedRange;\n\n const isOutsideMonth = !isSameMonth(currentMonth, date);\n const isSelectionStart = highlightedRange ? isSameDay(date, highlightedRange.start) : isSelected;\n const isSelectionEnd = highlightedRange ? isSameDay(date, highlightedRange.end) : isSelected;\n\n return (\n <CalendarCellContainer {...cellProps}>\n <CalendarCellButton\n {...buttonProps}\n hidden={isOutsideMonth}\n isSelected={isSelected}\n isSelectionStart={isSelectionStart}\n isSelectionEnd={isSelectionEnd}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref={ref}\n >\n {formattedDate}\n </CalendarCellButton>\n </CalendarCellContainer>\n );\n};\n\nexport default CalendarCell;\n","import { type DateDuration, endOfMonth, getWeeksInMonth } from '@internationalized/date';\nimport { Color, Typography } from '@persona/design-tokens';\nimport { useCalendarGrid, useLocale } from 'react-aria';\nimport type { CalendarState, RangeCalendarState } from 'react-stately';\nimport styled from 'styled-components';\n\nimport CalendarCell from './CalendarCell';\n\nconst CalendarGridContainer = styled.table`\n width: 266px;\n border-spacing: 0px;\n border-collapse: collapse;\n\n &:focus-visible {\n outline: 2px solid ${Color.BorderFocus};\n outline-offset: 1px;\n }\n`;\n\nconst CalendarGridDayHeader = styled.th`\n ${Typography.TextMedium};\n color: ${Color.TextSecondary};\n`;\n\ninterface CalendarGridProps {\n state: CalendarState | RangeCalendarState;\n offset?: DateDuration;\n skipFromTabOrder?: boolean;\n}\n\nconst CalendarGrid = ({ state, offset = {}, skipFromTabOrder = false }: CalendarGridProps) => {\n const { locale } = useLocale();\n const startDate = state.visibleRange.start.add(offset);\n const endDate = endOfMonth(startDate);\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n {\n startDate,\n endDate,\n },\n state,\n );\n\n const weeksInMonth = getWeeksInMonth(startDate, locale);\n\n // Remove second calendar grid from tab order - use arrow keys to navigate between months\n const modifiedGridProps = skipFromTabOrder ? { ...gridProps, tabIndex: -1 } : gridProps;\n\n return (\n <CalendarGridContainer {...modifiedGridProps}>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, index) => (\n <CalendarGridDayHeader key={index}>{day}</CalendarGridDayHeader>\n ))}\n </tr>\n </thead>\n <tbody>\n {[...new Array(weeksInMonth).keys()].map((weekIndex) => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date, i) =>\n date ? (\n <CalendarCell key={i} state={state} date={date} currentMonth={startDate} />\n ) : (\n <td key={i} />\n ),\n )}\n </tr>\n ))}\n </tbody>\n </CalendarGridContainer>\n );\n};\n\nexport default CalendarGrid;\n","import { GregorianCalendar } from '@internationalized/date';\n\nexport const createCalendar = () => new GregorianCalendar();\n","import { ArrowLeftIcon, ArrowRightIcon } from '@persona/icons';\nimport type { Ref } from 'react';\nimport { type AriaCalendarProps, type DateValue, useCalendar, useLocale } from 'react-aria';\nimport { useCalendarState } from 'react-stately';\n\nimport {\n CalendarButton,\n CalendarContainer,\n CalendarHeader,\n CalendarHeading,\n} from 'design-system/components/DatePicker/Calendar/CalendarBase';\nimport CalendarGrid from 'design-system/components/DatePicker/Calendar/CalendarGrid';\nimport { createCalendar } from 'design-system/components/DatePicker/common';\n\ninterface CalendarProps extends AriaCalendarProps<DateValue> {\n calendarRef?: Ref<HTMLDivElement>;\n}\n\nconst Calendar = (props: CalendarProps) => {\n const { locale } = useLocale();\n const state = useCalendarState({ ...props, locale, createCalendar });\n const { calendarProps, prevButtonProps, nextButtonProps, title } = useCalendar(props, state);\n\n return (\n <CalendarContainer {...calendarProps} ref={props.calendarRef}>\n <CalendarHeader>\n <CalendarButton {...prevButtonProps}>\n <ArrowLeftIcon />\n </CalendarButton>\n <CalendarHeading>{title}</CalendarHeading>\n <CalendarButton {...nextButtonProps}>\n <ArrowRightIcon />\n </CalendarButton>\n </CalendarHeader>\n <CalendarGrid state={state} />\n </CalendarContainer>\n );\n};\n\nexport default Calendar;\n","var $f23889fffbde9058$exports = {};\n$f23889fffbde9058$exports = {\n \"calendar\": `\\u{627}\\u{644}\\u{62A}\\u{642}\\u{648}\\u{64A}\\u{645}`,\n \"day\": `\\u{64A}\\u{648}\\u{645}`,\n \"dayPeriod\": `\\u{635}/\\u{645}`,\n \"endDate\": `\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{627}\\u{646}\\u{62A}\\u{647}\\u{627}\\u{621}`,\n \"era\": `\\u{627}\\u{644}\\u{639}\\u{635}\\u{631}`,\n \"hour\": `\\u{627}\\u{644}\\u{633}\\u{627}\\u{639}\\u{627}\\u{62A}`,\n \"minute\": `\\u{627}\\u{644}\\u{62F}\\u{642}\\u{627}\\u{626}\\u{642}`,\n \"month\": `\\u{627}\\u{644}\\u{634}\\u{647}\\u{631}`,\n \"second\": `\\u{627}\\u{644}\\u{62B}\\u{648}\\u{627}\\u{646}\\u{64A}`,\n \"selectedDateDescription\": (args)=>`\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{627}\\u{644}\\u{645}\\u{62F}\\u{649} \\u{627}\\u{644}\\u{632}\\u{645}\\u{646}\\u{64A} \\u{627}\\u{644}\\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args.startDate} \\u{625}\\u{644}\\u{649} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{627}\\u{644}\\u{648}\\u{642}\\u{62A} \\u{627}\\u{644}\\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args.time}`,\n \"startDate\": `\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{628}\\u{62F}\\u{621}`,\n \"timeZoneName\": `\\u{627}\\u{644}\\u{62A}\\u{648}\\u{642}\\u{64A}\\u{62A}`,\n \"weekday\": `\\u{627}\\u{644}\\u{64A}\\u{648}\\u{645}`,\n \"year\": `\\u{627}\\u{644}\\u{633}\\u{646}\\u{629}`\n};\n\n\nexport {$f23889fffbde9058$exports as default};\n//# sourceMappingURL=ar-AE.module.js.map\n","var $09d9badaa8903929$exports = {};\n$09d9badaa8903929$exports = {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}`,\n \"dayPeriod\": `\\u{43F}\\u{440}.\\u{43E}\\u{431}./\\u{441}\\u{43B}.\\u{43E}\\u{431}.`,\n \"endDate\": `\\u{41A}\\u{440}\\u{430}\\u{439}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{447}\\u{430}\\u{441}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}\\u{430}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{435}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D} \\u{434}\\u{438}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: ${args.startDate} \\u{434}\\u{43E} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43E} \\u{432}\\u{440}\\u{435}\\u{43C}\\u{435}: ${args.time}`,\n \"startDate\": `\\u{41D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{430} \\u{437}\\u{43E}\\u{43D}\\u{430}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D} \\u{43E}\\u{442} \\u{441}\\u{435}\\u{434}\\u{43C}\\u{438}\\u{446}\\u{430}\\u{442}\\u{430}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`\n};\n\n\nexport {$09d9badaa8903929$exports as default};\n//# sourceMappingURL=bg-BG.module.js.map\n","var $151b77e0fd711730$exports = {};\n$151b77e0fd711730$exports = {\n \"calendar\": `Kalend\\xe1\\u{159}`,\n \"day\": `den`,\n \"dayPeriod\": `\\u{10D}\\xe1st dne`,\n \"endDate\": `Kone\\u{10D}n\\xe9 datum`,\n \"era\": `letopo\\u{10D}et`,\n \"hour\": `hodina`,\n \"minute\": `minuta`,\n \"month\": `m\\u{11B}s\\xedc`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Vybran\\xe9 datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Vybran\\xe9 obdob\\xed: ${args.startDate} a\\u{17E} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vybran\\xfd \\u{10D}as: ${args.time}`,\n \"startDate\": `Po\\u{10D}\\xe1te\\u{10D}n\\xed datum`,\n \"timeZoneName\": `\\u{10D}asov\\xe9 p\\xe1smo`,\n \"weekday\": `den v t\\xfddnu`,\n \"year\": `rok`\n};\n\n\nexport {$151b77e0fd711730$exports as default};\n//# sourceMappingURL=cs-CZ.module.js.map\n","var $61915aa8630b90a2$exports = {};\n$61915aa8630b90a2$exports = {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Slutdato`,\n \"era\": `\\xe6ra`,\n \"hour\": `time`,\n \"minute\": `minut`,\n \"month\": `m\\xe5ned`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valgt dato: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Valgt interval: ${args.startDate} til ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valgt tidspunkt: ${args.time}`,\n \"startDate\": `Startdato`,\n \"timeZoneName\": `tidszone`,\n \"weekday\": `ugedag`,\n \"year\": `\\xe5r`\n};\n\n\nexport {$61915aa8630b90a2$exports as default};\n//# sourceMappingURL=da-DK.module.js.map\n","var $35cea00159787840$exports = {};\n$35cea00159787840$exports = {\n \"calendar\": `Kalender`,\n \"day\": `Tag`,\n \"dayPeriod\": `Tagesh\\xe4lfte`,\n \"endDate\": `Enddatum`,\n \"era\": `Epoche`,\n \"hour\": `Stunde`,\n \"minute\": `Minute`,\n \"month\": `Monat`,\n \"second\": `Sekunde`,\n \"selectedDateDescription\": (args)=>`Ausgew\\xe4hltes Datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Ausgew\\xe4hlter Bereich: ${args.startDate} bis ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ausgew\\xe4hlte Zeit: ${args.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `Zeitzone`,\n \"weekday\": `Wochentag`,\n \"year\": `Jahr`\n};\n\n\nexport {$35cea00159787840$exports as default};\n//# sourceMappingURL=de-DE.module.js.map\n","var $518b4e82b9eacafd$exports = {};\n$518b4e82b9eacafd$exports = {\n \"calendar\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BB}\\u{3CC}\\u{3B3}\\u{3B9}\\u{3BF}`,\n \"day\": `\\u{3B7}\\u{3BC}\\u{3AD}\\u{3C1}\\u{3B1}`,\n \"dayPeriod\": `\\u{3C0}.\\u{3BC}./\\u{3BC}.\\u{3BC}.`,\n \"endDate\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3BB}\\u{3AE}\\u{3BE}\\u{3B7}\\u{3C2}`,\n \"era\": `\\u{3C0}\\u{3B5}\\u{3C1}\\u{3AF}\\u{3BF}\\u{3B4}\\u{3BF}\\u{3C2}`,\n \"hour\": `\\u{3CE}\\u{3C1}\\u{3B1}`,\n \"minute\": `\\u{3BB}\\u{3B5}\\u{3C0}\\u{3C4}\\u{3CC}`,\n \"month\": `\\u{3BC}\\u{3AE}\\u{3BD}\\u{3B1}\\u{3C2}`,\n \"second\": `\\u{3B4}\\u{3B5}\\u{3C5}\\u{3C4}\\u{3B5}\\u{3C1}\\u{3CC}\\u{3BB}\\u{3B5}\\u{3C0}\\u{3C4}\\u{3BF}`,\n \"selectedDateDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3B7} \\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3BF} \\u{3B5}\\u{3CD}\\u{3C1}\\u{3BF}\\u{3C2}: ${args.startDate} \\u{3AD}\\u{3C9}\\u{3C2} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3B7} \\u{3CE}\\u{3C1}\\u{3B1}: ${args.time}`,\n \"startDate\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3AD}\\u{3BD}\\u{3B1}\\u{3C1}\\u{3BE}\\u{3B7}\\u{3C2}`,\n \"timeZoneName\": `\\u{3B6}\\u{3CE}\\u{3BD}\\u{3B7} \\u{3CE}\\u{3C1}\\u{3B1}\\u{3C2}`,\n \"weekday\": `\\u{3BA}\\u{3B1}\\u{3B8}\\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3B9}\\u{3BD}\\u{3AE}`,\n \"year\": `\\u{3AD}\\u{3C4}\\u{3BF}\\u{3C2}`\n};\n\n\nexport {$518b4e82b9eacafd$exports as default};\n//# sourceMappingURL=el-GR.module.js.map\n","var $1c2b297f7e2cf474$exports = {};\n$1c2b297f7e2cf474$exports = {\n \"era\": `era`,\n \"year\": `year`,\n \"month\": `month`,\n \"day\": `day`,\n \"hour\": `hour`,\n \"minute\": `minute`,\n \"second\": `second`,\n \"dayPeriod\": `AM/PM`,\n \"calendar\": `Calendar`,\n \"startDate\": `Start Date`,\n \"endDate\": `End Date`,\n \"weekday\": `day of the week`,\n \"timeZoneName\": `time zone`,\n \"selectedDateDescription\": (args)=>`Selected Date: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Selected Range: ${args.startDate} to ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Selected Time: ${args.time}`\n};\n\n\nexport {$1c2b297f7e2cf474$exports as default};\n//# sourceMappingURL=en-US.module.js.map\n","var $07f628a707cf9b18$exports = {};\n$07f628a707cf9b18$exports = {\n \"calendar\": `Calendario`,\n \"day\": `d\\xeda`,\n \"dayPeriod\": `a.\\xa0m./p.\\xa0m.`,\n \"endDate\": `Fecha final`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `mes`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Fecha seleccionada: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Rango seleccionado: ${args.startDate} a ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora seleccionada: ${args.time}`,\n \"startDate\": `Fecha de inicio`,\n \"timeZoneName\": `zona horaria`,\n \"weekday\": `d\\xeda de la semana`,\n \"year\": `a\\xf1o`\n};\n\n\nexport {$07f628a707cf9b18$exports as default};\n//# sourceMappingURL=es-ES.module.js.map\n","var $db553ffe17c7f4db$exports = {};\n$db553ffe17c7f4db$exports = {\n \"calendar\": `Kalender`,\n \"day\": `p\\xe4ev`,\n \"dayPeriod\": `enne/p\\xe4rast l\\xf5unat`,\n \"endDate\": `L\\xf5ppkuup\\xe4ev`,\n \"era\": `ajastu`,\n \"hour\": `tund`,\n \"minute\": `minut`,\n \"month\": `kuu`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valitud kuup\\xe4ev: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Valitud vahemik: ${args.startDate} kuni ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valitud aeg: ${args.time}`,\n \"startDate\": `Alguskuup\\xe4ev`,\n \"timeZoneName\": `ajav\\xf6\\xf6nd`,\n \"weekday\": `n\\xe4dalap\\xe4ev`,\n \"year\": `aasta`\n};\n\n\nexport {$db553ffe17c7f4db$exports as default};\n//# sourceMappingURL=et-EE.module.js.map\n","var $4afcfe00cd703f83$exports = {};\n$4afcfe00cd703f83$exports = {\n \"calendar\": `Kalenteri`,\n \"day\": `p\\xe4iv\\xe4`,\n \"dayPeriod\": `vuorokaudenaika`,\n \"endDate\": `P\\xe4\\xe4ttymisp\\xe4iv\\xe4`,\n \"era\": `aikakausi`,\n \"hour\": `tunti`,\n \"minute\": `minuutti`,\n \"month\": `kuukausi`,\n \"second\": `sekunti`,\n \"selectedDateDescription\": (args)=>`Valittu p\\xe4iv\\xe4m\\xe4\\xe4r\\xe4: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Valittu aikav\\xe4li: ${args.startDate} \\u{2013} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valittu aika: ${args.time}`,\n \"startDate\": `Alkamisp\\xe4iv\\xe4`,\n \"timeZoneName\": `aikavy\\xf6hyke`,\n \"weekday\": `viikonp\\xe4iv\\xe4`,\n \"year\": `vuosi`\n};\n\n\nexport {$4afcfe00cd703f83$exports as default};\n//# sourceMappingURL=fi-FI.module.js.map\n","var $1d2645d18d4c5be0$exports = {};\n$1d2645d18d4c5be0$exports = {\n \"calendar\": `Calendrier`,\n \"day\": `jour`,\n \"dayPeriod\": `cadran`,\n \"endDate\": `Date de fin`,\n \"era\": `\\xe8re`,\n \"hour\": `heure`,\n \"minute\": `minute`,\n \"month\": `mois`,\n \"second\": `seconde`,\n \"selectedDateDescription\": (args)=>`Date s\\xe9lectionn\\xe9e\\xa0: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Plage s\\xe9lectionn\\xe9e\\xa0: ${args.startDate} au ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Heure choisie\\xa0: ${args.time}`,\n \"startDate\": `Date de d\\xe9but`,\n \"timeZoneName\": `fuseau horaire`,\n \"weekday\": `jour de la semaine`,\n \"year\": `ann\\xe9e`\n};\n\n\nexport {$1d2645d18d4c5be0$exports as default};\n//# sourceMappingURL=fr-FR.module.js.map\n","var $64cb6a9be1f6fa48$exports = {};\n$64cb6a9be1f6fa48$exports = {\n \"calendar\": `\\u{5DC}\\u{5D5}\\u{5D7} \\u{5E9}\\u{5E0}\\u{5D4}`,\n \"day\": `\\u{5D9}\\u{5D5}\\u{5DD}`,\n \"dayPeriod\": `\\u{5DC}\\u{5E4}\\u{5E0}\\u{5D4}\\u{5F4}\\u{5E6}/\\u{5D0}\\u{5D7}\\u{5D4}\\u{5F4}\\u{5E6}`,\n \"endDate\": `\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5E1}\\u{5D9}\\u{5D5}\\u{5DD}`,\n \"era\": `\\u{5EA}\\u{5E7}\\u{5D5}\\u{5E4}\\u{5D4}`,\n \"hour\": `\\u{5E9}\\u{5E2}\\u{5D4}`,\n \"minute\": `\\u{5D3}\\u{5E7}\\u{5D4}`,\n \"month\": `\\u{5D7}\\u{5D5}\\u{5D3}\\u{5E9}`,\n \"second\": `\\u{5E9}\\u{5E0}\\u{5D9}\\u{5D9}\\u{5D4}`,\n \"selectedDateDescription\": (args)=>`\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{5D8}\\u{5D5}\\u{5D5}\\u{5D7} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args.startDate} \\u{5E2}\\u{5D3} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{5D6}\\u{5DE}\\u{5DF} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args.time}`,\n \"startDate\": `\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5D4}\\u{5EA}\\u{5D7}\\u{5DC}\\u{5D4}`,\n \"timeZoneName\": `\\u{5D0}\\u{5D6}\\u{5D5}\\u{5E8} \\u{5D6}\\u{5DE}\\u{5DF}`,\n \"weekday\": `\\u{5D9}\\u{5D5}\\u{5DD} \\u{5D1}\\u{5E9}\\u{5D1}\\u{5D5}\\u{5E2}`,\n \"year\": `\\u{5E9}\\u{5E0}\\u{5D4}`\n};\n\n\nexport {$64cb6a9be1f6fa48$exports as default};\n//# sourceMappingURL=he-IL.module.js.map\n","var $2a1ef2e8050be27a$exports = {};\n$2a1ef2e8050be27a$exports = {\n \"calendar\": `Kalendar`,\n \"day\": `dan`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Datum zavr\\u{161}etka`,\n \"era\": `era`,\n \"hour\": `sat`,\n \"minute\": `minuta`,\n \"month\": `mjesec`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Odabrani datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Odabrani raspon: ${args.startDate} do ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Odabrano vrijeme: ${args.time}`,\n \"startDate\": `Datum po\\u{10D}etka`,\n \"timeZoneName\": `vremenska zona`,\n \"weekday\": `dan u tjednu`,\n \"year\": `godina`\n};\n\n\nexport {$2a1ef2e8050be27a$exports as default};\n//# sourceMappingURL=hr-HR.module.js.map\n","var $ad429dca102acd0e$exports = {};\n$ad429dca102acd0e$exports = {\n \"calendar\": `Napt\\xe1r`,\n \"day\": `nap`,\n \"dayPeriod\": `napszak`,\n \"endDate\": `Befejez\\u{151} d\\xe1tum`,\n \"era\": `\\xe9ra`,\n \"hour\": `\\xf3ra`,\n \"minute\": `perc`,\n \"month\": `h\\xf3nap`,\n \"second\": `m\\xe1sodperc`,\n \"selectedDateDescription\": (args)=>`Kijel\\xf6lt d\\xe1tum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Kijel\\xf6lt tartom\\xe1ny: ${args.startDate}\\u{2013}${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Kijel\\xf6lt id\\u{151}: ${args.time}`,\n \"startDate\": `Kezd\\u{151} d\\xe1tum`,\n \"timeZoneName\": `id\\u{151}z\\xf3na`,\n \"weekday\": `h\\xe9t napja`,\n \"year\": `\\xe9v`\n};\n\n\nexport {$ad429dca102acd0e$exports as default};\n//# sourceMappingURL=hu-HU.module.js.map\n","var $6e68cb5d1cb97bd2$exports = {};\n$6e68cb5d1cb97bd2$exports = {\n \"calendar\": `Calendario`,\n \"day\": `giorno`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Data finale`,\n \"era\": `era`,\n \"hour\": `ora`,\n \"minute\": `minuto`,\n \"month\": `mese`,\n \"second\": `secondo`,\n \"selectedDateDescription\": (args)=>`Data selezionata: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Intervallo selezionato: da ${args.startDate} a ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ora selezionata: ${args.time}`,\n \"startDate\": `Data iniziale`,\n \"timeZoneName\": `fuso orario`,\n \"weekday\": `giorno della settimana`,\n \"year\": `anno`\n};\n\n\nexport {$6e68cb5d1cb97bd2$exports as default};\n//# sourceMappingURL=it-IT.module.js.map\n","var $a82ee9af063ee069$exports = {};\n$a82ee9af063ee069$exports = {\n \"calendar\": `\\u{30AB}\\u{30EC}\\u{30F3}\\u{30C0}\\u{30FC}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{5348}\\u{524D}/\\u{5348}\\u{5F8C}`,\n \"endDate\": `\\u{7D42}\\u{4E86}\\u{65E5}`,\n \"era\": `\\u{6642}\\u{4EE3}`,\n \"hour\": `\\u{6642}`,\n \"minute\": `\\u{5206}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9078}\\u{629E}\\u{3057}\\u{305F}\\u{65E5}\\u{4ED8} : ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9078}\\u{629E}\\u{7BC4}\\u{56F2} : ${args.startDate} \\u{304B}\\u{3089} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9078}\\u{629E}\\u{3057}\\u{305F}\\u{6642}\\u{9593} : ${args.time}`,\n \"startDate\": `\\u{958B}\\u{59CB}\\u{65E5}`,\n \"timeZoneName\": `\\u{30BF}\\u{30A4}\\u{30E0}\\u{30BE}\\u{30FC}\\u{30F3}`,\n \"weekday\": `\\u{66DC}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n};\n\n\nexport {$a82ee9af063ee069$exports as default};\n//# sourceMappingURL=ja-JP.module.js.map\n","var $67e9091dbf37d4eb$exports = {};\n$67e9091dbf37d4eb$exports = {\n \"calendar\": `\\u{B2EC}\\u{B825}`,\n \"day\": `\\u{C77C}`,\n \"dayPeriod\": `\\u{C624}\\u{C804}/\\u{C624}\\u{D6C4}`,\n \"endDate\": `\\u{C885}\\u{B8CC}\\u{C77C}`,\n \"era\": `\\u{C5F0}\\u{D638}`,\n \"hour\": `\\u{C2DC}`,\n \"minute\": `\\u{BD84}`,\n \"month\": `\\u{C6D4}`,\n \"second\": `\\u{CD08}`,\n \"selectedDateDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{C77C}\\u{C790}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{BC94}\\u{C704}: ${args.startDate} ~ ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{C2DC}\\u{AC04}: ${args.time}`,\n \"startDate\": `\\u{C2DC}\\u{C791}\\u{C77C}`,\n \"timeZoneName\": `\\u{C2DC}\\u{AC04}\\u{B300}`,\n \"weekday\": `\\u{C694}\\u{C77C}`,\n \"year\": `\\u{B144}`\n};\n\n\nexport {$67e9091dbf37d4eb$exports as default};\n//# sourceMappingURL=ko-KR.module.js.map\n","var $75834f9729f653d1$exports = {};\n$75834f9729f653d1$exports = {\n \"calendar\": `Kalendorius`,\n \"day\": `diena`,\n \"dayPeriod\": `iki piet\\u{173} / po piet\\u{173}`,\n \"endDate\": `Pabaigos data`,\n \"era\": `era`,\n \"hour\": `valanda`,\n \"minute\": `minut\\u{117}`,\n \"month\": `m\\u{117}nuo`,\n \"second\": `sekund\\u{117}`,\n \"selectedDateDescription\": (args)=>`Pasirinkta data: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Pasirinktas intervalas: nuo ${args.startDate} iki ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Pasirinktas laikas: ${args.time}`,\n \"startDate\": `Prad\\u{17E}ios data`,\n \"timeZoneName\": `laiko juosta`,\n \"weekday\": `savait\\u{117}s diena`,\n \"year\": `metai`\n};\n\n\nexport {$75834f9729f653d1$exports as default};\n//# sourceMappingURL=lt-LT.module.js.map\n","var $a2df2c2520b4a7f0$exports = {};\n$a2df2c2520b4a7f0$exports = {\n \"calendar\": `Kalend\\u{101}rs`,\n \"day\": `diena`,\n \"dayPeriod\": `priek\\u{161}pusdien\\u{101}/p\\u{113}cpusdien\\u{101}`,\n \"endDate\": `Beigu datums`,\n \"era\": `\\u{113}ra`,\n \"hour\": `stundas`,\n \"minute\": `min\\u{16B}tes`,\n \"month\": `m\\u{113}nesis`,\n \"second\": `sekundes`,\n \"selectedDateDescription\": (args)=>`Atlas\\u{12B}tais datums: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Atlas\\u{12B}tais diapazons: no ${args.startDate} l\\u{12B}dz ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Atlas\\u{12B}tais laiks: ${args.time}`,\n \"startDate\": `S\\u{101}kuma datums`,\n \"timeZoneName\": `laika josla`,\n \"weekday\": `ned\\u{113}\\u{13C}as diena`,\n \"year\": `gads`\n};\n\n\nexport {$a2df2c2520b4a7f0$exports as default};\n//# sourceMappingURL=lv-LV.module.js.map\n","var $aedcd71db4933ed5$exports = {};\n$aedcd71db4933ed5$exports = {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `a.m./p.m.`,\n \"endDate\": `Sluttdato`,\n \"era\": `tidsalder`,\n \"hour\": `time`,\n \"minute\": `minutt`,\n \"month\": `m\\xe5ned`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valgt dato: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Valgt omr\\xe5de: ${args.startDate} til ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valgt tid: ${args.time}`,\n \"startDate\": `Startdato`,\n \"timeZoneName\": `tidssone`,\n \"weekday\": `ukedag`,\n \"year\": `\\xe5r`\n};\n\n\nexport {$aedcd71db4933ed5$exports as default};\n//# sourceMappingURL=nb-NO.module.js.map\n","var $3b2df9e54353046c$exports = {};\n$3b2df9e54353046c$exports = {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `a.m./p.m.`,\n \"endDate\": `Einddatum`,\n \"era\": `tijdperk`,\n \"hour\": `uur`,\n \"minute\": `minuut`,\n \"month\": `maand`,\n \"second\": `seconde`,\n \"selectedDateDescription\": (args)=>`Geselecteerde datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Geselecteerd bereik: ${args.startDate} tot ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Geselecteerde tijd: ${args.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `tijdzone`,\n \"weekday\": `dag van de week`,\n \"year\": `jaar`\n};\n\n\nexport {$3b2df9e54353046c$exports as default};\n//# sourceMappingURL=nl-NL.module.js.map\n","var $c03fe977fcfafe93$exports = {};\n$c03fe977fcfafe93$exports = {\n \"calendar\": `Kalendarz`,\n \"day\": `dzie\\u{144}`,\n \"dayPeriod\": `rano / po po\\u{142}udniu / wieczorem`,\n \"endDate\": `Data ko\\u{144}cowa`,\n \"era\": `era`,\n \"hour\": `godzina`,\n \"minute\": `minuta`,\n \"month\": `miesi\\u{105}c`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Wybrana data: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Wybrany zakres: ${args.startDate} do ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Wybrany czas: ${args.time}`,\n \"startDate\": `Data pocz\\u{105}tkowa`,\n \"timeZoneName\": `strefa czasowa`,\n \"weekday\": `dzie\\u{144} tygodnia`,\n \"year\": `rok`\n};\n\n\nexport {$c03fe977fcfafe93$exports as default};\n//# sourceMappingURL=pl-PL.module.js.map\n","var $569f006fc292345f$exports = {};\n$569f006fc292345f$exports = {\n \"calendar\": `Calend\\xe1rio`,\n \"day\": `dia`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Data final`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `m\\xeas`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Data selecionada: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Intervalo selecionado: ${args.startDate} a ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora selecionada: ${args.time}`,\n \"startDate\": `Data inicial`,\n \"timeZoneName\": `fuso hor\\xe1rio`,\n \"weekday\": `dia da semana`,\n \"year\": `ano`\n};\n\n\nexport {$569f006fc292345f$exports as default};\n//# sourceMappingURL=pt-BR.module.js.map\n","var $7c2494e14452f2dd$exports = {};\n$7c2494e14452f2dd$exports = {\n \"calendar\": `Calend\\xe1rio`,\n \"day\": `dia`,\n \"dayPeriod\": `am/pm`,\n \"endDate\": `Data de T\\xe9rmino`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `m\\xeas`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Data selecionada: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Intervalo selecionado: ${args.startDate} a ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora selecionada: ${args.time}`,\n \"startDate\": `Data de In\\xedcio`,\n \"timeZoneName\": `fuso hor\\xe1rio`,\n \"weekday\": `dia da semana`,\n \"year\": `ano`\n};\n\n\nexport {$7c2494e14452f2dd$exports as default};\n//# sourceMappingURL=pt-PT.module.js.map\n","var $eb82ef981b5592bf$exports = {};\n$eb82ef981b5592bf$exports = {\n \"calendar\": `Calendar`,\n \"day\": `zi`,\n \"dayPeriod\": `a.m/p.m.`,\n \"endDate\": `Dat\\u{103} final`,\n \"era\": `er\\u{103}`,\n \"hour\": `or\\u{103}`,\n \"minute\": `minut`,\n \"month\": `lun\\u{103}`,\n \"second\": `secund\\u{103}`,\n \"selectedDateDescription\": (args)=>`Dat\\u{103} selectat\\u{103}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Interval selectat: de la ${args.startDate} p\\xe2n\\u{103} la ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ora selectat\\u{103}: ${args.time}`,\n \"startDate\": `Dat\\u{103} \\xeenceput`,\n \"timeZoneName\": `fus orar`,\n \"weekday\": `ziua din s\\u{103}pt\\u{103}m\\xe2n\\u{103}`,\n \"year\": `an`\n};\n\n\nexport {$eb82ef981b5592bf$exports as default};\n//# sourceMappingURL=ro-RO.module.js.map\n","var $6efa0e119f396950$exports = {};\n$6efa0e119f396950$exports = {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}\\u{44C}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}\\u{44C}`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43E}\\u{43A}\\u{43E}\\u{43D}\\u{447}\\u{430}\\u{43D}\\u{438}\\u{44F}`,\n \"era\": `\\u{44D}\\u{440}\\u{430}`,\n \"hour\": `\\u{447}\\u{430}\\u{441}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}\\u{430}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{44F}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{430}\\u{44F} \\u{434}\\u{430}\\u{442}\\u{430}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{44B}\\u{439} \\u{434}\\u{438}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: \\u{441} ${args.startDate} \\u{43F}\\u{43E} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{43E}\\u{435} \\u{432}\\u{440}\\u{435}\\u{43C}\\u{44F}: ${args.time}`,\n \"startDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{430}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{43E}\\u{439} \\u{43F}\\u{43E}\\u{44F}\\u{441}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D}\\u{44C} \\u{43D}\\u{435}\\u{434}\\u{435}\\u{43B}\\u{438}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}`\n};\n\n\nexport {$6efa0e119f396950$exports as default};\n//# sourceMappingURL=ru-RU.module.js.map\n","var $7f5e57085d7f5049$exports = {};\n$7f5e57085d7f5049$exports = {\n \"calendar\": `Kalend\\xe1r`,\n \"day\": `de\\u{148}`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `D\\xe1tum ukon\\u{10D}enia`,\n \"era\": `letopo\\u{10D}et`,\n \"hour\": `hodina`,\n \"minute\": `min\\xfata`,\n \"month\": `mesiac`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Vybrat\\xfd d\\xe1tum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Vybrat\\xfd rozsah: od ${args.startDate} do ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vybrat\\xfd \\u{10D}as: ${args.time}`,\n \"startDate\": `D\\xe1tum za\\u{10D}atia`,\n \"timeZoneName\": `\\u{10D}asov\\xe9 p\\xe1smo`,\n \"weekday\": `de\\u{148} t\\xfd\\u{17E}d\\u{148}a`,\n \"year\": `rok`\n};\n\n\nexport {$7f5e57085d7f5049$exports as default};\n//# sourceMappingURL=sk-SK.module.js.map\n","var $578ee7c11dcdde7a$exports = {};\n$578ee7c11dcdde7a$exports = {\n \"calendar\": `Koledar`,\n \"day\": `dan`,\n \"dayPeriod\": `dop/pop`,\n \"endDate\": `Datum konca`,\n \"era\": `doba`,\n \"hour\": `ura`,\n \"minute\": `minuta`,\n \"month\": `mesec`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Izbrani datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Izbrano obmo\\u{10D}je: ${args.startDate} do ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Izbrani \\u{10D}as: ${args.time}`,\n \"startDate\": `Datum za\\u{10D}etka`,\n \"timeZoneName\": `\\u{10D}asovni pas`,\n \"weekday\": `dan v tednu`,\n \"year\": `leto`\n};\n\n\nexport {$578ee7c11dcdde7a$exports as default};\n//# sourceMappingURL=sl-SI.module.js.map\n","var $bbc3fd6cd0bc9d50$exports = {};\n$bbc3fd6cd0bc9d50$exports = {\n \"calendar\": `Kalendar`,\n \"day\": `\\u{434}\\u{430}\\u{43D}`,\n \"dayPeriod\": `\\u{43F}\\u{440}\\u{435} \\u{43F}\\u{43E}\\u{434}\\u{43D}\\u{435}/\\u{43F}\\u{43E} \\u{43F}\\u{43E}\\u{434}\\u{43D}\\u{435}`,\n \"endDate\": `Datum zavr\\u{161}etka`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{441}\\u{430}\\u{442}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{435}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}`,\n \"selectedDateDescription\": (args)=>`Izabrani datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Izabrani opseg: od ${args.startDate} do ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Izabrano vreme: ${args.time}`,\n \"startDate\": `Datum po\\u{10D}etka`,\n \"timeZoneName\": `\\u{432}\\u{440}\\u{435}\\u{43C}\\u{435}\\u{43D}\\u{441}\\u{43A}\\u{430} \\u{437}\\u{43E}\\u{43D}\\u{430}`,\n \"weekday\": `\\u{434}\\u{430}\\u{43D} \\u{443} \\u{43D}\\u{435}\\u{434}\\u{435}\\u{459}\\u{438}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`\n};\n\n\nexport {$bbc3fd6cd0bc9d50$exports as default};\n//# sourceMappingURL=sr-SP.module.js.map\n","var $0b04512118591d2a$exports = {};\n$0b04512118591d2a$exports = {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `fm/em`,\n \"endDate\": `Slutdatum`,\n \"era\": `era`,\n \"hour\": `timme`,\n \"minute\": `minut`,\n \"month\": `m\\xe5nad`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valt datum: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Valt intervall: ${args.startDate} till ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vald tid: ${args.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `tidszon`,\n \"weekday\": `veckodag`,\n \"year\": `\\xe5r`\n};\n\n\nexport {$0b04512118591d2a$exports as default};\n//# sourceMappingURL=sv-SE.module.js.map\n","var $3a49d121fe4c9e1d$exports = {};\n$3a49d121fe4c9e1d$exports = {\n \"calendar\": `Takvim`,\n \"day\": `g\\xfcn`,\n \"dayPeriod\": `\\xd6\\xd6/\\xd6S`,\n \"endDate\": `Biti\\u{15F} Tarihi`,\n \"era\": `\\xe7a\\u{11F}`,\n \"hour\": `saat`,\n \"minute\": `dakika`,\n \"month\": `ay`,\n \"second\": `saniye`,\n \"selectedDateDescription\": (args)=>`Se\\xe7ilen Tarih: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`Se\\xe7ilen Aral\\u{131}k: ${args.startDate} - ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`Se\\xe7ilen Zaman: ${args.time}`,\n \"startDate\": `Ba\\u{15F}lang\\u{131}\\xe7 Tarihi`,\n \"timeZoneName\": `saat dilimi`,\n \"weekday\": `haftan\\u{131}n g\\xfcn\\xfc`,\n \"year\": `y\\u{131}l`\n};\n\n\nexport {$3a49d121fe4c9e1d$exports as default};\n//# sourceMappingURL=tr-TR.module.js.map\n","var $5ba21dbb8914919d$exports = {};\n$5ba21dbb8914919d$exports = {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}\\u{44C}`,\n \"dayPeriod\": `\\u{434}\\u{43F}/\\u{43F}\\u{43F}`,\n \"endDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{437}\\u{430}\\u{432}\\u{435}\\u{440}\\u{448}\\u{435}\\u{43D}\\u{43D}\\u{44F}`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`,\n \"minute\": `\\u{445}\\u{432}\\u{438}\\u{43B}\\u{438}\\u{43D}\\u{430}`,\n \"month\": `\\u{43C}\\u{456}\\u{441}\\u{44F}\\u{446}\\u{44C}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}: ${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{438}\\u{439} \\u{434}\\u{456}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: ${args.startDate} \\u{2014} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{438}\\u{439} \\u{447}\\u{430}\\u{441}: ${args.time}`,\n \"startDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43F}\\u{43E}\\u{447}\\u{430}\\u{442}\\u{43A}\\u{443}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{438}\\u{439} \\u{43F}\\u{43E}\\u{44F}\\u{441}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D}\\u{44C} \\u{442}\\u{438}\\u{436}\\u{43D}\\u{44F}`,\n \"year\": `\\u{440}\\u{456}\\u{43A}`\n};\n\n\nexport {$5ba21dbb8914919d$exports as default};\n//# sourceMappingURL=uk-UA.module.js.map\n","var $51078838e1b16cd7$exports = {};\n$51078838e1b16cd7$exports = {\n \"calendar\": `\\u{65E5}\\u{5386}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{4E0A}\\u{5348}/\\u{4E0B}\\u{5348}`,\n \"endDate\": `\\u{7ED3}\\u{675F}\\u{65E5}\\u{671F}`,\n \"era\": `\\u{7EAA}\\u{5143}`,\n \"hour\": `\\u{5C0F}\\u{65F6}`,\n \"minute\": `\\u{5206}\\u{949F}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{65E5}\\u{671F}\\u{FF1A}${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{8303}\\u{56F4}\\u{FF1A}${args.startDate} \\u{81F3} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{65F6}\\u{95F4}\\u{FF1A}${args.time}`,\n \"startDate\": `\\u{5F00}\\u{59CB}\\u{65E5}\\u{671F}`,\n \"timeZoneName\": `\\u{65F6}\\u{533A}`,\n \"weekday\": `\\u{5DE5}\\u{4F5C}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n};\n\n\nexport {$51078838e1b16cd7$exports as default};\n//# sourceMappingURL=zh-CN.module.js.map\n","var $33fab8219207655a$exports = {};\n$33fab8219207655a$exports = {\n \"calendar\": `\\u{65E5}\\u{66C6}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{4E0A}\\u{5348}/\\u{4E0B}\\u{5348}`,\n \"endDate\": `\\u{7D50}\\u{675F}\\u{65E5}\\u{671F}`,\n \"era\": `\\u{7EAA}\\u{5143}`,\n \"hour\": `\\u{5C0F}\\u{65F6}`,\n \"minute\": `\\u{5206}\\u{949F}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{65E5}\\u{671F}\\u{FF1A}${args.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{7BC4}\\u{570D}\\u{FF1A}${args.startDate} \\u{81F3} ${args.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{6642}\\u{9593}\\u{FF1A}${args.time}`,\n \"startDate\": `\\u{958B}\\u{59CB}\\u{65E5}\\u{671F}`,\n \"timeZoneName\": `\\u{65F6}\\u{533A}`,\n \"weekday\": `\\u{5DE5}\\u{4F5C}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n};\n\n\nexport {$33fab8219207655a$exports as default};\n//# sourceMappingURL=zh-TW.module.js.map\n","import $4YhVz$arAEmodulejs from \"./ar-AE.mjs\";\nimport $4YhVz$bgBGmodulejs from \"./bg-BG.mjs\";\nimport $4YhVz$csCZmodulejs from \"./cs-CZ.mjs\";\nimport $4YhVz$daDKmodulejs from \"./da-DK.mjs\";\nimport $4YhVz$deDEmodulejs from \"./de-DE.mjs\";\nimport $4YhVz$elGRmodulejs from \"./el-GR.mjs\";\nimport $4YhVz$enUSmodulejs from \"./en-US.mjs\";\nimport $4YhVz$esESmodulejs from \"./es-ES.mjs\";\nimport $4YhVz$etEEmodulejs from \"./et-EE.mjs\";\nimport $4YhVz$fiFImodulejs from \"./fi-FI.mjs\";\nimport $4YhVz$frFRmodulejs from \"./fr-FR.mjs\";\nimport $4YhVz$heILmodulejs from \"./he-IL.mjs\";\nimport $4YhVz$hrHRmodulejs from \"./hr-HR.mjs\";\nimport $4YhVz$huHUmodulejs from \"./hu-HU.mjs\";\nimport $4YhVz$itITmodulejs from \"./it-IT.mjs\";\nimport $4YhVz$jaJPmodulejs from \"./ja-JP.mjs\";\nimport $4YhVz$koKRmodulejs from \"./ko-KR.mjs\";\nimport $4YhVz$ltLTmodulejs from \"./lt-LT.mjs\";\nimport $4YhVz$lvLVmodulejs from \"./lv-LV.mjs\";\nimport $4YhVz$nbNOmodulejs from \"./nb-NO.mjs\";\nimport $4YhVz$nlNLmodulejs from \"./nl-NL.mjs\";\nimport $4YhVz$plPLmodulejs from \"./pl-PL.mjs\";\nimport $4YhVz$ptBRmodulejs from \"./pt-BR.mjs\";\nimport $4YhVz$ptPTmodulejs from \"./pt-PT.mjs\";\nimport $4YhVz$roROmodulejs from \"./ro-RO.mjs\";\nimport $4YhVz$ruRUmodulejs from \"./ru-RU.mjs\";\nimport $4YhVz$skSKmodulejs from \"./sk-SK.mjs\";\nimport $4YhVz$slSImodulejs from \"./sl-SI.mjs\";\nimport $4YhVz$srSPmodulejs from \"./sr-SP.mjs\";\nimport $4YhVz$svSEmodulejs from \"./sv-SE.mjs\";\nimport $4YhVz$trTRmodulejs from \"./tr-TR.mjs\";\nimport $4YhVz$ukUAmodulejs from \"./uk-UA.mjs\";\nimport $4YhVz$zhCNmodulejs from \"./zh-CN.mjs\";\nimport $4YhVz$zhTWmodulejs from \"./zh-TW.mjs\";\n\nvar $dfb4eba373ed9493$exports = {};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$dfb4eba373ed9493$exports = {\n \"ar-AE\": $4YhVz$arAEmodulejs,\n \"bg-BG\": $4YhVz$bgBGmodulejs,\n \"cs-CZ\": $4YhVz$csCZmodulejs,\n \"da-DK\": $4YhVz$daDKmodulejs,\n \"de-DE\": $4YhVz$deDEmodulejs,\n \"el-GR\": $4YhVz$elGRmodulejs,\n \"en-US\": $4YhVz$enUSmodulejs,\n \"es-ES\": $4YhVz$esESmodulejs,\n \"et-EE\": $4YhVz$etEEmodulejs,\n \"fi-FI\": $4YhVz$fiFImodulejs,\n \"fr-FR\": $4YhVz$frFRmodulejs,\n \"he-IL\": $4YhVz$heILmodulejs,\n \"hr-HR\": $4YhVz$hrHRmodulejs,\n \"hu-HU\": $4YhVz$huHUmodulejs,\n \"it-IT\": $4YhVz$itITmodulejs,\n \"ja-JP\": $4YhVz$jaJPmodulejs,\n \"ko-KR\": $4YhVz$koKRmodulejs,\n \"lt-LT\": $4YhVz$ltLTmodulejs,\n \"lv-LV\": $4YhVz$lvLVmodulejs,\n \"nb-NO\": $4YhVz$nbNOmodulejs,\n \"nl-NL\": $4YhVz$nlNLmodulejs,\n \"pl-PL\": $4YhVz$plPLmodulejs,\n \"pt-BR\": $4YhVz$ptBRmodulejs,\n \"pt-PT\": $4YhVz$ptPTmodulejs,\n \"ro-RO\": $4YhVz$roROmodulejs,\n \"ru-RU\": $4YhVz$ruRUmodulejs,\n \"sk-SK\": $4YhVz$skSKmodulejs,\n \"sl-SI\": $4YhVz$slSImodulejs,\n \"sr-SP\": $4YhVz$srSPmodulejs,\n \"sv-SE\": $4YhVz$svSEmodulejs,\n \"tr-TR\": $4YhVz$trTRmodulejs,\n \"uk-UA\": $4YhVz$ukUAmodulejs,\n \"zh-CN\": $4YhVz$zhCNmodulejs,\n \"zh-TW\": $4YhVz$zhTWmodulejs\n};\n\n\nexport {$dfb4eba373ed9493$exports as default};\n//# sourceMappingURL=intlStrings.module.js.map\n","import {nodeContains as $d4ee10de306f2510$export$4282f70798064fe0} from \"./DOMFunctions.mjs\";\nimport {shadowDOM as $bJKXg$shadowDOM} from \"@react-stately/flags\";\n\n// https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/ShadowTreeWalker.ts\n\n\nclass $dfc540311bf7f109$export$63eb3ababa9c55c4 {\n get currentNode() {\n return this._currentNode;\n }\n set currentNode(node) {\n if (!(0, $d4ee10de306f2510$export$4282f70798064fe0)(this.root, node)) throw new Error('Cannot set currentNode to a node that is not contained by the root node.');\n const walkers = [];\n let curNode = node;\n let currentWalkerCurrentNode = node;\n this._currentNode = node;\n while(curNode && curNode !== this.root)if (curNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowRoot = curNode;\n const walker = this._doc.createTreeWalker(shadowRoot, this.whatToShow, {\n acceptNode: this._acceptNode\n });\n walkers.push(walker);\n walker.currentNode = currentWalkerCurrentNode;\n this._currentSetFor.add(walker);\n curNode = currentWalkerCurrentNode = shadowRoot.host;\n } else curNode = curNode.parentNode;\n const walker = this._doc.createTreeWalker(this.root, this.whatToShow, {\n acceptNode: this._acceptNode\n });\n walkers.push(walker);\n walker.currentNode = currentWalkerCurrentNode;\n this._currentSetFor.add(walker);\n this._walkerStack = walkers;\n }\n get doc() {\n return this._doc;\n }\n firstChild() {\n let currentNode = this.currentNode;\n let newNode = this.nextNode();\n if (!(0, $d4ee10de306f2510$export$4282f70798064fe0)(currentNode, newNode)) {\n this.currentNode = currentNode;\n return null;\n }\n if (newNode) this.currentNode = newNode;\n return newNode;\n }\n lastChild() {\n let walker = this._walkerStack[0];\n let newNode = walker.lastChild();\n if (newNode) this.currentNode = newNode;\n return newNode;\n }\n nextNode() {\n const nextNode = this._walkerStack[0].nextNode();\n if (nextNode) {\n const shadowRoot = nextNode.shadowRoot;\n if (shadowRoot) {\n var _this_filter;\n let nodeResult;\n if (typeof this.filter === 'function') nodeResult = this.filter(nextNode);\n else if ((_this_filter = this.filter) === null || _this_filter === void 0 ? void 0 : _this_filter.acceptNode) nodeResult = this.filter.acceptNode(nextNode);\n if (nodeResult === NodeFilter.FILTER_ACCEPT) {\n this.currentNode = nextNode;\n return nextNode;\n }\n // _acceptNode should have added new walker for this shadow,\n // go in recursively.\n let newNode = this.nextNode();\n if (newNode) this.currentNode = newNode;\n return newNode;\n }\n if (nextNode) this.currentNode = nextNode;\n return nextNode;\n } else {\n if (this._walkerStack.length > 1) {\n this._walkerStack.shift();\n let newNode = this.nextNode();\n if (newNode) this.currentNode = newNode;\n return newNode;\n } else return null;\n }\n }\n previousNode() {\n const currentWalker = this._walkerStack[0];\n if (currentWalker.currentNode === currentWalker.root) {\n if (this._currentSetFor.has(currentWalker)) {\n this._currentSetFor.delete(currentWalker);\n if (this._walkerStack.length > 1) {\n this._walkerStack.shift();\n let newNode = this.previousNode();\n if (newNode) this.currentNode = newNode;\n return newNode;\n } else return null;\n }\n return null;\n }\n const previousNode = currentWalker.previousNode();\n if (previousNode) {\n const shadowRoot = previousNode.shadowRoot;\n if (shadowRoot) {\n var _this_filter;\n let nodeResult;\n if (typeof this.filter === 'function') nodeResult = this.filter(previousNode);\n else if ((_this_filter = this.filter) === null || _this_filter === void 0 ? void 0 : _this_filter.acceptNode) nodeResult = this.filter.acceptNode(previousNode);\n if (nodeResult === NodeFilter.FILTER_ACCEPT) {\n if (previousNode) this.currentNode = previousNode;\n return previousNode;\n }\n // _acceptNode should have added new walker for this shadow,\n // go in recursively.\n let newNode = this.lastChild();\n if (newNode) this.currentNode = newNode;\n return newNode;\n }\n if (previousNode) this.currentNode = previousNode;\n return previousNode;\n } else {\n if (this._walkerStack.length > 1) {\n this._walkerStack.shift();\n let newNode = this.previousNode();\n if (newNode) this.currentNode = newNode;\n return newNode;\n } else return null;\n }\n }\n /**\n * @deprecated\n */ nextSibling() {\n // if (__DEV__) {\n // throw new Error(\"Method not implemented.\");\n // }\n return null;\n }\n /**\n * @deprecated\n */ previousSibling() {\n // if (__DEV__) {\n // throw new Error(\"Method not implemented.\");\n // }\n return null;\n }\n /**\n * @deprecated\n */ parentNode() {\n // if (__DEV__) {\n // throw new Error(\"Method not implemented.\");\n // }\n return null;\n }\n constructor(doc, root, whatToShow, filter){\n this._walkerStack = [];\n this._currentSetFor = new Set();\n this._acceptNode = (node)=>{\n if (node.nodeType === Node.ELEMENT_NODE) {\n const shadowRoot = node.shadowRoot;\n if (shadowRoot) {\n const walker = this._doc.createTreeWalker(shadowRoot, this.whatToShow, {\n acceptNode: this._acceptNode\n });\n this._walkerStack.unshift(walker);\n return NodeFilter.FILTER_ACCEPT;\n } else {\n var _this_filter;\n if (typeof this.filter === 'function') return this.filter(node);\n else if ((_this_filter = this.filter) === null || _this_filter === void 0 ? void 0 : _this_filter.acceptNode) return this.filter.acceptNode(node);\n else if (this.filter === null) return NodeFilter.FILTER_ACCEPT;\n }\n }\n return NodeFilter.FILTER_SKIP;\n };\n this._doc = doc;\n this.root = root;\n this.filter = filter !== null && filter !== void 0 ? filter : null;\n this.whatToShow = whatToShow !== null && whatToShow !== void 0 ? whatToShow : NodeFilter.SHOW_ALL;\n this._currentNode = root;\n this._walkerStack.unshift(doc.createTreeWalker(root, whatToShow, this._acceptNode));\n const shadowRoot = root.shadowRoot;\n if (shadowRoot) {\n const walker = this._doc.createTreeWalker(shadowRoot, this.whatToShow, {\n acceptNode: this._acceptNode\n });\n this._walkerStack.unshift(walker);\n }\n }\n}\nfunction $dfc540311bf7f109$export$4d0f8be8b12a7ef6(doc, root, whatToShow, filter) {\n if ((0, $bJKXg$shadowDOM)()) return new $dfc540311bf7f109$export$63eb3ababa9c55c4(doc, root, whatToShow, filter);\n return doc.createTreeWalker(root, whatToShow, filter);\n}\n\n\nexport {$dfc540311bf7f109$export$63eb3ababa9c55c4 as ShadowTreeWalker, $dfc540311bf7f109$export$4d0f8be8b12a7ef6 as createShadowTreeWalker};\n//# sourceMappingURL=ShadowTreeWalker.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $65484d02dcb7eb3e$var$DOMPropNames = new Set([\n 'id'\n]);\nconst $65484d02dcb7eb3e$var$labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n// See LinkDOMProps in dom.d.ts.\nconst $65484d02dcb7eb3e$var$linkPropNames = new Set([\n 'href',\n 'hrefLang',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy'\n]);\nconst $65484d02dcb7eb3e$var$globalAttrs = new Set([\n 'dir',\n 'lang',\n 'hidden',\n 'inert',\n 'translate'\n]);\nconst $65484d02dcb7eb3e$var$globalEvents = new Set([\n 'onClick',\n 'onAuxClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onScroll',\n 'onWheel',\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n 'onTransitionCancel',\n 'onTransitionEnd',\n 'onTransitionRun',\n 'onTransitionStart'\n]);\nconst $65484d02dcb7eb3e$var$propRe = /^(data-.*)$/;\nfunction $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, opts = {}) {\n let { labelable: labelable, isLink: isLink, global: global, events: events = global, propNames: propNames } = opts;\n let filteredProps = {};\n for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && ($65484d02dcb7eb3e$var$DOMPropNames.has(prop) || labelable && $65484d02dcb7eb3e$var$labelablePropNames.has(prop) || isLink && $65484d02dcb7eb3e$var$linkPropNames.has(prop) || global && $65484d02dcb7eb3e$var$globalAttrs.has(prop) || events && $65484d02dcb7eb3e$var$globalEvents.has(prop) || prop.endsWith('Capture') && $65484d02dcb7eb3e$var$globalEvents.has(prop.slice(0, -7)) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || $65484d02dcb7eb3e$var$propRe.test(prop))) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\nexport {$65484d02dcb7eb3e$export$457c3d6518dd4c6f as filterDOMProps};\n//# sourceMappingURL=filterDOMProps.module.js.map\n","import {focusWithoutScrolling as $7215afc6de606d6b$export$de79e2c695e052f3} from \"./focusWithoutScrolling.mjs\";\nimport {isMac as $c87311424ea30a05$export$9ac100e40613ea10, isWebKit as $c87311424ea30a05$export$78551043582a6a98, isFirefox as $c87311424ea30a05$export$b7d78993b74f766d, isIPad as $c87311424ea30a05$export$7bef049ce92e4224} from \"./platform.mjs\";\nimport $g3jFn$react, {createContext as $g3jFn$createContext, useMemo as $g3jFn$useMemo, useContext as $g3jFn$useContext} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (0, $g3jFn$createContext)({\n isNative: true,\n open: $ea8dcbcb9ea1b556$var$openSyntheticLink,\n useHref: (href)=>href\n});\nfunction $ea8dcbcb9ea1b556$export$323e4fc2fa4753fb(props) {\n let { children: children, navigate: navigate, useHref: useHref } = props;\n let ctx = (0, $g3jFn$useMemo)(()=>({\n isNative: false,\n open: (target, modifiers, href, routerOptions)=>{\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>{\n if ($ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers)) navigate(href, routerOptions);\n else $ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers);\n });\n },\n useHref: useHref || ((href)=>href)\n }), [\n navigate,\n useHref\n ]);\n return /*#__PURE__*/ (0, $g3jFn$react).createElement($ea8dcbcb9ea1b556$var$RouterContext.Provider, {\n value: ctx\n }, children);\n}\nfunction $ea8dcbcb9ea1b556$export$9a302a45f65d0572() {\n return (0, $g3jFn$useContext)($ea8dcbcb9ea1b556$var$RouterContext);\n}\nfunction $ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n let target = link.getAttribute('target');\n return (!target || target === '_self') && link.origin === location.origin && !link.hasAttribute('download') && !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey;\n}\nfunction $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) {\n var _window_event_type, _window_event;\n let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers;\n // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n if ((0, $c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') {\n if ((0, $c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true;\n else ctrlKey = true;\n }\n // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n let event = (0, $c87311424ea30a05$export$78551043582a6a98)() && (0, $c87311424ea30a05$export$9ac100e40613ea10)() && !(0, $c87311424ea30a05$export$7bef049ce92e4224)() && process.env.NODE_ENV !== 'test' ? new KeyboardEvent('keydown', {\n keyIdentifier: 'Enter',\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey\n }) : new MouseEvent('click', {\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey,\n bubbles: true,\n cancelable: true\n });\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening;\n (0, $7215afc6de606d6b$export$de79e2c695e052f3)(target);\n target.dispatchEvent(event);\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\n$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\nfunction $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {\n if (target instanceof HTMLAnchorElement) open(target);\n else if (target.hasAttribute('data-href')) {\n let link = document.createElement('a');\n link.href = target.getAttribute('data-href');\n if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');\n if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');\n if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');\n if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');\n if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');\n target.appendChild(link);\n open(link);\n target.removeChild(link);\n }\n}\nfunction $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));\n}\nfunction $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n 'data-href': props.href ? href : undefined,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$51437d503373d223(props) {\n return {\n 'data-href': props.href,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props === null || props === void 0 ? void 0 : props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n href: (props === null || props === void 0 ? void 0 : props.href) ? href : undefined,\n target: props === null || props === void 0 ? void 0 : props.target,\n rel: props === null || props === void 0 ? void 0 : props.rel,\n download: props === null || props === void 0 ? void 0 : props.download,\n ping: props === null || props === void 0 ? void 0 : props.ping,\n referrerPolicy: props === null || props === void 0 ? void 0 : props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$13aea1a3cb5e3f1f(e, router, href, routerOptions) {\n // If a custom router is provided, prevent default and forward if this link should client navigate.\n if (!router.isNative && e.currentTarget instanceof HTMLAnchorElement && e.currentTarget.href && // If props are applied to a router Link component, it may have already prevented default.\n !e.isDefaultPrevented() && $ea8dcbcb9ea1b556$export$efa8c9099e530235(e.currentTarget, e) && href) {\n e.preventDefault();\n router.open(e.currentTarget, e, href, routerOptions);\n }\n}\n\n\nexport {$ea8dcbcb9ea1b556$export$323e4fc2fa4753fb as RouterProvider, $ea8dcbcb9ea1b556$export$efa8c9099e530235 as shouldClientNavigate, $ea8dcbcb9ea1b556$export$95185d699e05d4d7 as openLink, $ea8dcbcb9ea1b556$export$9a302a45f65d0572 as useRouter, $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6 as useSyntheticLinkProps, $ea8dcbcb9ea1b556$export$51437d503373d223 as getSyntheticLinkProps, $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 as useLinkProps, $ea8dcbcb9ea1b556$export$13aea1a3cb5e3f1f as handleLinkClick};\n//# sourceMappingURL=openLink.module.js.map\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $cc38e7bd3fc7b213$export$2bb74740c4e19def(node, checkForOverflow) {\n if (!node) return false;\n let style = window.getComputedStyle(node);\n let isScrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n if (isScrollable && checkForOverflow) isScrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n return isScrollable;\n}\n\n\nexport {$cc38e7bd3fc7b213$export$2bb74740c4e19def as isScrollable};\n//# sourceMappingURL=isScrollable.module.js.map\n","import {isScrollable as $cc38e7bd3fc7b213$export$2bb74740c4e19def} from \"./isScrollable.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $62d8ded9296f3872$export$cfa2225e87938781(node, checkForOverflow) {\n let scrollableNode = node;\n if ((0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;\n while(scrollableNode && !(0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(scrollableNode, checkForOverflow))scrollableNode = scrollableNode.parentElement;\n return scrollableNode || document.scrollingElement || document.documentElement;\n}\n\n\nexport {$62d8ded9296f3872$export$cfa2225e87938781 as getScrollParent};\n//# sourceMappingURL=getScrollParent.module.js.map\n","import {isScrollable as $cc38e7bd3fc7b213$export$2bb74740c4e19def} from \"./isScrollable.mjs\";\n\n/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $a40c673dc9f6d9c7$export$94ed1c92c7beeb22(node, checkForOverflow) {\n const scrollParents = [];\n while(node && node !== document.documentElement){\n if ((0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(node, checkForOverflow)) scrollParents.push(node);\n node = node.parentElement;\n }\n return scrollParents;\n}\n\n\nexport {$a40c673dc9f6d9c7$export$94ed1c92c7beeb22 as getScrollParents};\n//# sourceMappingURL=getScrollParents.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useState as $hQ5Hp$useState} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nlet $ef06256079686ba0$var$descriptionId = 0;\nconst $ef06256079686ba0$var$descriptionNodes = new Map();\nfunction $ef06256079686ba0$export$f8aeda7b10753fa1(description) {\n let [id, setId] = (0, $hQ5Hp$useState)();\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (!description) return;\n let desc = $ef06256079686ba0$var$descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${$ef06256079686ba0$var$descriptionId++}`;\n setId(id);\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {\n refCount: 0,\n element: node\n };\n $ef06256079686ba0$var$descriptionNodes.set(description, desc);\n } else setId(desc.element.id);\n desc.refCount++;\n return ()=>{\n if (desc && --desc.refCount === 0) {\n desc.element.remove();\n $ef06256079686ba0$var$descriptionNodes.delete(description);\n }\n };\n }, [\n description\n ]);\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n\n\nexport {$ef06256079686ba0$export$f8aeda7b10753fa1 as useDescription};\n//# sourceMappingURL=useDescription.module.js.map\n","import {useEffectEvent as $8ae05eaa5c114e9c$export$7f54fc3180508a52} from \"./useEffectEvent.mjs\";\nimport {useEffect as $ceQd6$useEffect} from \"react\";\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $e9faafb641e167db$export$90fc3a17d93f704c(ref, event, handler, options) {\n let handleEvent = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(handler);\n let isDisabled = handler == null;\n (0, $ceQd6$useEffect)(()=>{\n if (isDisabled || !ref.current) return;\n let element = ref.current;\n element.addEventListener(event, handleEvent, options);\n return ()=>{\n element.removeEventListener(event, handleEvent, options);\n };\n }, [\n ref,\n event,\n options,\n isDisabled,\n handleEvent\n ]);\n}\n\n\nexport {$e9faafb641e167db$export$90fc3a17d93f704c as useEvent};\n//# sourceMappingURL=useEvent.module.js.map\n","import {getScrollParents as $a40c673dc9f6d9c7$export$94ed1c92c7beeb22} from \"./getScrollParents.mjs\";\nimport {isChrome as $c87311424ea30a05$export$6446a186d09e379e} from \"./platform.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollView, element) {\n let offsetX = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, 'left');\n let offsetY = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n // Account for top/left border offsetting the scroll top/Left + scroll padding\n let { borderTopWidth: borderTopWidth, borderLeftWidth: borderLeftWidth, scrollPaddingTop: scrollPaddingTop, scrollPaddingRight: scrollPaddingRight, scrollPaddingBottom: scrollPaddingBottom, scrollPaddingLeft: scrollPaddingLeft } = getComputedStyle(scrollView);\n // Account for scroll margin of the element\n let { scrollMarginTop: scrollMarginTop, scrollMarginRight: scrollMarginRight, scrollMarginBottom: scrollMarginBottom, scrollMarginLeft: scrollMarginLeft } = getComputedStyle(element);\n let borderAdjustedX = x + parseInt(borderLeftWidth, 10);\n let borderAdjustedY = y + parseInt(borderTopWidth, 10);\n // Ignore end/bottom border via clientHeight/Width instead of offsetHeight/Width\n let maxX = borderAdjustedX + scrollView.clientWidth;\n let maxY = borderAdjustedY + scrollView.clientHeight;\n // Get scroll padding / margin values as pixels - defaults to 0 if no scroll padding / margin\n // is used.\n let scrollPaddingTopNumber = parseInt(scrollPaddingTop, 10) || 0;\n let scrollPaddingBottomNumber = parseInt(scrollPaddingBottom, 10) || 0;\n let scrollPaddingRightNumber = parseInt(scrollPaddingRight, 10) || 0;\n let scrollPaddingLeftNumber = parseInt(scrollPaddingLeft, 10) || 0;\n let scrollMarginTopNumber = parseInt(scrollMarginTop, 10) || 0;\n let scrollMarginBottomNumber = parseInt(scrollMarginBottom, 10) || 0;\n let scrollMarginRightNumber = parseInt(scrollMarginRight, 10) || 0;\n let scrollMarginLeftNumber = parseInt(scrollMarginLeft, 10) || 0;\n let targetLeft = offsetX - scrollMarginLeftNumber;\n let targetRight = offsetX + width + scrollMarginRightNumber;\n let targetTop = offsetY - scrollMarginTopNumber;\n let targetBottom = offsetY + height + scrollMarginBottomNumber;\n let scrollPortLeft = x + parseInt(borderLeftWidth, 10) + scrollPaddingLeftNumber;\n let scrollPortRight = maxX - scrollPaddingRightNumber;\n let scrollPortTop = y + parseInt(borderTopWidth, 10) + scrollPaddingTopNumber;\n let scrollPortBottom = maxY - scrollPaddingBottomNumber;\n if (targetLeft > scrollPortLeft || targetRight < scrollPortRight) {\n if (targetLeft <= x + scrollPaddingLeftNumber) x = targetLeft - parseInt(borderLeftWidth, 10) - scrollPaddingLeftNumber;\n else if (targetRight > maxX - scrollPaddingRightNumber) x += targetRight - maxX + scrollPaddingRightNumber;\n }\n if (targetTop > scrollPortTop || targetBottom < scrollPortBottom) {\n if (targetTop <= borderAdjustedY + scrollPaddingTopNumber) y = targetTop - parseInt(borderTopWidth, 10) - scrollPaddingTopNumber;\n else if (targetBottom > maxY - scrollPaddingBottomNumber) y += targetBottom - maxY + scrollPaddingBottomNumber;\n }\n if (process.env.NODE_ENV === 'test') {\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n return;\n }\n scrollView.scrollTo({\n left: x,\n top: y\n });\n}\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */ function $2f04cbc44ee30ce0$var$relativeOffset(ancestor, child, axis) {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while(child.offsetParent){\n sum += child[prop];\n if (child.offsetParent === ancestor) break;\n else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent;\n }\n return sum;\n}\nfunction $2f04cbc44ee30ce0$export$c826860796309d1b(targetElement, opts) {\n if (targetElement && document.contains(targetElement)) {\n let root = document.scrollingElement || document.documentElement;\n let isScrollPrevented = window.getComputedStyle(root).overflow === 'hidden';\n // If scrolling is not currently prevented then we aren't in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view\n // Also ignore in chrome because of this bug: https://issues.chromium.org/issues/40074749\n if (!isScrollPrevented && !(0, $c87311424ea30a05$export$6446a186d09e379e)()) {\n var // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n _targetElement_scrollIntoView;\n let { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n targetElement === null || targetElement === void 0 ? void 0 : (_targetElement_scrollIntoView = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView === void 0 ? void 0 : _targetElement_scrollIntoView.call(targetElement, {\n block: 'nearest'\n });\n let { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n // Account for sub pixel differences from rounding\n if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n var _opts_containingElement_scrollIntoView, _opts_containingElement, _targetElement_scrollIntoView1;\n opts === null || opts === void 0 ? void 0 : (_opts_containingElement = opts.containingElement) === null || _opts_containingElement === void 0 ? void 0 : (_opts_containingElement_scrollIntoView = _opts_containingElement.scrollIntoView) === null || _opts_containingElement_scrollIntoView === void 0 ? void 0 : _opts_containingElement_scrollIntoView.call(_opts_containingElement, {\n block: 'center',\n inline: 'center'\n });\n (_targetElement_scrollIntoView1 = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView1 === void 0 ? void 0 : _targetElement_scrollIntoView1.call(targetElement, {\n block: 'nearest'\n });\n }\n } else {\n let scrollParents = (0, $a40c673dc9f6d9c7$export$94ed1c92c7beeb22)(targetElement);\n // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n for (let scrollParent of scrollParents)$2f04cbc44ee30ce0$export$53a0910f038337bd(scrollParent, targetElement);\n }\n }\n}\n\n\nexport {$2f04cbc44ee30ce0$export$53a0910f038337bd as scrollIntoView, $2f04cbc44ee30ce0$export$c826860796309d1b as scrollIntoViewport};\n//# sourceMappingURL=scrollIntoView.module.js.map\n","import {useRef as $jtQ6z$useRef} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /* eslint-disable rulesdir/pure-render */ \nfunction $5a387cc49350e6db$export$722debc0e56fea39(value, isEqual) {\n // Using a ref during render is ok here because it's only an optimization – both values are equivalent.\n // If a render is thrown away, it'll still work the same no matter if the next render is the same or not.\n let lastValue = (0, $jtQ6z$useRef)(null);\n if (value && lastValue.current && isEqual(value, lastValue.current)) value = lastValue.current;\n lastValue.current = value;\n return value;\n}\n\n\nexport {$5a387cc49350e6db$export$722debc0e56fea39 as useDeepMemo};\n//# sourceMappingURL=useDeepMemo.module.js.map\n","import $3aeG1$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (0, $3aeG1$react).createContext({\n register: ()=>{}\n});\n$ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = 'PressResponderContext';\n\n\nexport {$ae1eeba8b9eafd08$export$5165eccb35aaadb5 as PressResponderContext};\n//# sourceMappingURL=context.module.js.map\n","function _class_apply_descriptor_get(receiver, descriptor) {\n if (descriptor.get) return descriptor.get.call(receiver);\n\n return descriptor.value;\n}\nexport { _class_apply_descriptor_get as _ };\n","function _class_extract_field_descriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n\n return privateMap.get(receiver);\n}\nexport { _class_extract_field_descriptor as _ };\n","import { _ as _class_apply_descriptor_get } from \"./_class_apply_descriptor_get.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_get(receiver, privateMap) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"get\");\n return _class_apply_descriptor_get(receiver, descriptor);\n}\nexport { _class_private_field_get as _ };\n","function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import { _ as _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nfunction _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","function _class_apply_descriptor_set(receiver, descriptor, value) {\n if (descriptor.set) descriptor.set.call(receiver, value);\n else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}\nexport { _class_apply_descriptor_set as _ };\n","import { _ as _class_apply_descriptor_set } from \"./_class_apply_descriptor_set.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_set(receiver, privateMap, value) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"set\");\n _class_apply_descriptor_set(receiver, descriptor, value);\n return value;\n}\nexport { _class_private_field_set as _ };\n","import {createSyntheticEvent as $8a9cb279dc87e130$export$525bc4921d56d4a, preventFocus as $8a9cb279dc87e130$export$cabe61c495ee3649, setEventTarget as $8a9cb279dc87e130$export$c2b7abe5d61ec696} from \"./utils.mjs\";\nimport {disableTextSelection as $14c0b72509d70225$export$16a4697467175487, restoreTextSelection as $14c0b72509d70225$export$b0d6fa1ab32e3295} from \"./textSelection.mjs\";\nimport {PressResponderContext as $ae1eeba8b9eafd08$export$5165eccb35aaadb5} from \"./context.mjs\";\nimport {_ as $7mdmh$_} from \"@swc/helpers/_/_class_private_field_get\";\nimport {_ as $7mdmh$_1} from \"@swc/helpers/_/_class_private_field_init\";\nimport {_ as $7mdmh$_2} from \"@swc/helpers/_/_class_private_field_set\";\nimport {mergeProps as $7mdmh$mergeProps, useSyncRef as $7mdmh$useSyncRef, useGlobalListeners as $7mdmh$useGlobalListeners, useEffectEvent as $7mdmh$useEffectEvent, nodeContains as $7mdmh$nodeContains, getEventTarget as $7mdmh$getEventTarget, getOwnerDocument as $7mdmh$getOwnerDocument, chain as $7mdmh$chain, isMac as $7mdmh$isMac, openLink as $7mdmh$openLink, isVirtualClick as $7mdmh$isVirtualClick, isVirtualPointerEvent as $7mdmh$isVirtualPointerEvent, focusWithoutScrolling as $7mdmh$focusWithoutScrolling, getOwnerWindow as $7mdmh$getOwnerWindow} from \"@react-aria/utils\";\nimport {flushSync as $7mdmh$flushSync} from \"react-dom\";\nimport {useContext as $7mdmh$useContext, useState as $7mdmh$useState, useRef as $7mdmh$useRef, useMemo as $7mdmh$useMemo, useEffect as $7mdmh$useEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\n\n\n\n\n\nfunction $f6c31cce2adf654f$var$usePressResponderContext(props) {\n // Consume context from <PressResponder> and merge with props.\n let context = (0, $7mdmh$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n if (context) {\n let { register: register, ...contextProps } = context;\n props = (0, $7mdmh$mergeProps)(contextProps, props);\n register();\n }\n (0, $7mdmh$useSyncRef)(context, props.ref);\n return props;\n}\nvar $f6c31cce2adf654f$var$_shouldStopPropagation = /*#__PURE__*/ new WeakMap();\nclass $f6c31cce2adf654f$var$PressEvent {\n continuePropagation() {\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, false);\n }\n get shouldStopPropagation() {\n return (0, $7mdmh$_)(this, $f6c31cce2adf654f$var$_shouldStopPropagation);\n }\n constructor(type, pointerType, originalEvent, state){\n (0, $7mdmh$_1)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, {\n writable: true,\n value: void 0\n });\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, true);\n var _state_target;\n let currentTarget = (_state_target = state === null || state === void 0 ? void 0 : state.target) !== null && _state_target !== void 0 ? _state_target : originalEvent.currentTarget;\n const rect = currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.getBoundingClientRect();\n let x, y = 0;\n let clientX, clientY = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n }\n}\nconst $f6c31cce2adf654f$var$LINK_CLICKED = Symbol('linkClicked');\nconst $f6c31cce2adf654f$var$STYLE_ID = 'react-aria-pressable-style';\nconst $f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE = 'data-react-aria-pressable';\nfunction $f6c31cce2adf654f$export$45712eceda6fad21(props) {\n let { onPress: onPress, onPressChange: onPressChange, onPressStart: onPressStart, onPressEnd: onPressEnd, onPressUp: onPressUp, onClick: onClick, isDisabled: isDisabled, isPressed: isPressedProp, preventFocusOnPress: preventFocusOnPress, shouldCancelOnPointerExit: shouldCancelOnPointerExit, allowTextSelectionOnPress: allowTextSelectionOnPress, ref: domRef, ...domProps } = $f6c31cce2adf654f$var$usePressResponderContext(props);\n let [isPressed, setPressed] = (0, $7mdmh$useState)(false);\n let ref = (0, $7mdmh$useRef)({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null,\n disposables: []\n });\n let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $7mdmh$useGlobalListeners)();\n let triggerPressStart = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) return false;\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(true);\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n let triggerPressEnd = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType, wasPressed = true)=>{\n let state = ref.current;\n if (!state.didFirePressStart) return false;\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(false);\n setPressed(false);\n if (onPress && wasPressed && !isDisabled) {\n let event = new $f6c31cce2adf654f$var$PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);\n }\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n let triggerPressUp = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled) return false;\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new $f6c31cce2adf654f$var$PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n return true;\n });\n let cancel = (0, $7mdmh$useEffectEvent)((e)=>{\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.didFirePressStart && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n }\n });\n let cancelOnPointerExit = (0, $7mdmh$useEffectEvent)((e)=>{\n if (shouldCancelOnPointerExit) cancel(e);\n });\n let triggerClick = (0, $7mdmh$useEffectEvent)((e)=>{\n if (isDisabled) return;\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n });\n let triggerSyntheticClick = (0, $7mdmh$useEffectEvent)((e, target)=>{\n if (isDisabled) return;\n // Some third-party libraries pass in onClick instead of onPress.\n // Create a fake mouse event and trigger onClick as well.\n // This matches the browser's native activation behavior for certain elements (e.g. button).\n // https://html.spec.whatwg.org/#activation\n // https://html.spec.whatwg.org/#fire-a-synthetic-pointer-event\n if (onClick) {\n let event = new MouseEvent('click', e);\n (0, $8a9cb279dc87e130$export$c2b7abe5d61ec696)(event, target);\n onClick((0, $8a9cb279dc87e130$export$525bc4921d56d4a)(event));\n }\n });\n let pressProps = (0, $7mdmh$useMemo)(()=>{\n let state = ref.current;\n let pressProps = {\n onKeyDown (e) {\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && (0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) {\n var _state_metaKeyEvents;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard((0, $7mdmh$getEventTarget)(e.nativeEvent), e.key)) e.preventDefault();\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n state.pointerType = 'keyboard';\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e)=>{\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e, originalTarget) && !e.repeat && (0, $7mdmh$nodeContains)(originalTarget, (0, $7mdmh$getEventTarget)(e)) && state.target) triggerPressUp($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard');\n };\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'keyup', (0, $7mdmh$chain)(pressUp, onKeyUp), true);\n }\n if (shouldStopPropagation) e.stopPropagation();\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && (0, $7mdmh$isMac)()) (_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.set(e.key, e.nativeEvent);\n } else if (e.key === 'Meta') state.metaKeyEvents = new Map();\n },\n onClick (e) {\n if (e && !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (e && e.button === 0 && !state.isTriggeringEvent && !(0, $7mdmh$openLink).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) e.preventDefault();\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || (0, $7mdmh$isVirtualClick)(e.nativeEvent))) {\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n triggerClick(e);\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n } else if (state.isPressed && state.pointerType !== 'keyboard') {\n let pointerType = state.pointerType || e.nativeEvent.pointerType || 'virtual';\n let stopPressUp = triggerPressUp($f6c31cce2adf654f$var$createEvent(e.currentTarget, e), pointerType);\n let stopPressEnd = triggerPressEnd($f6c31cce2adf654f$var$createEvent(e.currentTarget, e), pointerType, true);\n shouldStopPropagation = stopPressUp && stopPressEnd;\n state.isOverTarget = false;\n triggerClick(e);\n cancel(e);\n }\n state.ignoreEmulatedMouseEvents = false;\n if (shouldStopPropagation) e.stopPropagation();\n }\n }\n };\n let onKeyUp = (e)=>{\n var _state_metaKeyEvents;\n if (state.isPressed && state.target && $f6c31cce2adf654f$var$isValidKeyboardEvent(e, state.target)) {\n var _state_metaKeyEvents1;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard((0, $7mdmh$getEventTarget)(e), e.key)) e.preventDefault();\n let target = (0, $7mdmh$getEventTarget)(e);\n let wasPressed = (0, $7mdmh$nodeContains)(state.target, (0, $7mdmh$getEventTarget)(e));\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard', wasPressed);\n if (wasPressed) triggerSyntheticClick(e, state.target);\n removeAllGlobalListeners();\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && $f6c31cce2adf654f$var$isHTMLAnchorLink(state.target) && (0, $7mdmh$nodeContains)(state.target, target) && !e[$f6c31cce2adf654f$var$LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[$f6c31cce2adf654f$var$LINK_CLICKED] = true;\n (0, $7mdmh$openLink)(state.target, e, false);\n }\n state.isPressed = false;\n (_state_metaKeyEvents1 = state.metaKeyEvents) === null || _state_metaKeyEvents1 === void 0 ? void 0 : _state_metaKeyEvents1.delete(e.key);\n } else if (e.key === 'Meta' && ((_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.size)) {\n var _state_target;\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values())(_state_target = state.target) === null || _state_target === void 0 ? void 0 : _state_target.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n };\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e)=>{\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if ((0, $7mdmh$isVirtualPointerEvent)(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n state.pointerType = e.pointerType;\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = (0, $7mdmh$getEventTarget)(e.nativeEvent);\n if ('releasePointerCapture' in target) target.releasePointerCapture(e.pointerId);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseDown = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (e.button === 0) {\n if (preventFocusOnPress) {\n let dispose = (0, $8a9cb279dc87e130$export$cabe61c495ee3649)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n e.stopPropagation();\n }\n };\n pressProps.onPointerUp = (e)=>{\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent)) || state.pointerType === 'virtual') return;\n // Only handle left clicks. If isPressed is true, delay until onClick.\n if (e.button === 0 && !state.isPressed) triggerPressUp(e, state.pointerType || e.pointerType);\n };\n pressProps.onPointerEnter = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n }\n };\n pressProps.onPointerLeave = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if ((0, $7mdmh$nodeContains)(state.target, (0, $7mdmh$getEventTarget)(e)) && state.pointerType != null) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onPointerUp and onClick, and is more compatible with third party libraries.\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // However, iOS and Android do not focus or fire onClick after a long press.\n // We work around this by triggering a click ourselves after a timeout.\n // This timeout is canceled during the click event in case the real one fires first.\n // The timeout must be at least 32ms, because Safari on iOS delays the click event on\n // non-form elements without certain ARIA roles (for hover emulation).\n // https://github.com/WebKit/WebKit/blob/dccfae42bb29bd4bdef052e469f604a9387241c0/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm#L875-L892\n let clicked = false;\n let timeout = setTimeout(()=>{\n if (state.isPressed && state.target instanceof HTMLElement) {\n if (clicked) cancel(e);\n else {\n (0, $7mdmh$focusWithoutScrolling)(state.target);\n state.target.click();\n }\n }\n }, 80);\n // Use a capturing listener to track if a click occurred.\n // If stopPropagation is called it may never reach our handler.\n addGlobalListener(e.currentTarget, 'click', ()=>clicked = true, true);\n state.disposables.push(()=>clearTimeout(timeout));\n } else cancel(e);\n // Ignore subsequent onPointerLeave event before onClick on touch devices.\n state.isOverTarget = false;\n }\n };\n let onPointerCancel = (e)=>{\n cancel(e);\n };\n pressProps.onDragStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else if (process.env.NODE_ENV === 'test') {\n // NOTE: this fallback branch is entirely used by unit tests.\n // All browsers now support pointer events, but JSDOM still does not.\n pressProps.onMouseDown = (e)=>{\n // Only handle left clicks\n if (e.button !== 0 || !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = (0, $7mdmh$isVirtualClick)(e.nativeEvent) ? 'virtual' : 'mouse';\n // Flush sync so that focus moved during react re-renders occurs before we yield back to the browser.\n let shouldStopPropagation = (0, $7mdmh$flushSync)(()=>triggerPressStart(e, state.pointerType));\n if (shouldStopPropagation) e.stopPropagation();\n if (preventFocusOnPress) {\n let dispose = (0, $8a9cb279dc87e130$export$cabe61c495ee3649)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n pressProps.onMouseEnter = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseLeave = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseUp = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.ignoreEmulatedMouseEvents && e.button === 0 && !state.isPressed) triggerPressUp(e, state.pointerType || 'mouse');\n };\n let onMouseUp = (e)=>{\n // Only handle left clicks\n if (e.button !== 0) return;\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n if (state.target && state.target.contains(e.target) && state.pointerType != null) ;\n else cancel(e);\n state.isOverTarget = false;\n };\n pressProps.onTouchStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let touch = $f6c31cce2adf654f$var$getTouchFromEvent(e.nativeEvent);\n if (!touch) return;\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n let shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n if (shouldStopPropagation) e.stopPropagation();\n addGlobalListener((0, $7mdmh$getOwnerWindow)(e.currentTarget), 'scroll', onScroll, true);\n };\n pressProps.onTouchMove = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onTouchEnd = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n triggerSyntheticClick(e.nativeEvent, state.target);\n } else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n if (shouldStopPropagation) e.stopPropagation();\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n removeAllGlobalListeners();\n };\n pressProps.onTouchCancel = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n e.stopPropagation();\n if (state.isPressed) cancel($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n };\n let onScroll = (e)=>{\n if (state.isPressed && (0, $7mdmh$nodeContains)((0, $7mdmh$getEventTarget)(e), state.target)) cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n };\n pressProps.onDragStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n cancel(e);\n };\n }\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp,\n triggerClick,\n triggerSyntheticClick\n ]);\n // Avoid onClick delay for double tap to zoom by default.\n (0, $7mdmh$useEffect)(()=>{\n if (!domRef || process.env.NODE_ENV === 'test') return;\n const ownerDocument = (0, $7mdmh$getOwnerDocument)(domRef.current);\n if (!ownerDocument || !ownerDocument.head || ownerDocument.getElementById($f6c31cce2adf654f$var$STYLE_ID)) return;\n const style = ownerDocument.createElement('style');\n style.id = $f6c31cce2adf654f$var$STYLE_ID;\n // touchAction: 'manipulation' is supposed to be equivalent, but in\n // Safari it causes onPointerCancel not to fire on scroll.\n // https://bugs.webkit.org/show_bug.cgi?id=240917\n style.textContent = `\n@layer {\n [${$f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE}] {\n touch-action: pan-x pan-y pinch-zoom;\n }\n}\n `.trim();\n ownerDocument.head.prepend(style);\n }, [\n domRef\n ]);\n // Remove user-select: none in case component unmounts immediately after pressStart\n (0, $7mdmh$useEffect)(()=>{\n let state = ref.current;\n return ()=>{\n var _state_target;\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)((_state_target = state.target) !== null && _state_target !== void 0 ? _state_target : undefined);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n };\n }, [\n allowTextSelectionOnPress\n ]);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: (0, $7mdmh$mergeProps)(domProps, pressProps, {\n [$f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE]: true\n })\n };\n}\nfunction $f6c31cce2adf654f$var$isHTMLAnchorLink(target) {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\nfunction $f6c31cce2adf654f$var$isValidKeyboardEvent(event, currentTarget) {\n const { key: key, code: code } = event;\n const element = currentTarget;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLInputElement && !$f6c31cce2adf654f$var$isValidInputKey(element, key) || element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key\n !((role === 'link' || !role && $f6c31cce2adf654f$var$isHTMLAnchorLink(element)) && key !== 'Enter');\n}\nfunction $f6c31cce2adf654f$var$getTouchFromEvent(event) {\n const { targetTouches: targetTouches } = event;\n if (targetTouches.length > 0) return targetTouches[0];\n return null;\n}\nfunction $f6c31cce2adf654f$var$getTouchById(event, pointerId) {\n const changedTouches = event.changedTouches;\n for(let i = 0; i < changedTouches.length; i++){\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) return touch;\n }\n return null;\n}\nfunction $f6c31cce2adf654f$var$createTouchEvent(target, e) {\n let clientX = 0;\n let clientY = 0;\n if (e.targetTouches && e.targetTouches.length === 1) {\n clientX = e.targetTouches[0].clientX;\n clientY = e.targetTouches[0].clientY;\n }\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$createEvent(target, e) {\n let clientX = e.clientX;\n let clientY = e.clientY;\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$getPointClientRect(point) {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) offsetX = point.width / 2;\n else if (point.radiusX !== undefined) offsetX = point.radiusX;\n if (point.height !== undefined) offsetY = point.height / 2;\n else if (point.radiusY !== undefined) offsetY = point.radiusY;\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\nfunction $f6c31cce2adf654f$var$areRectanglesOverlapping(a, b) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) return false;\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$isOverTarget(point, target) {\n let rect = target.getBoundingClientRect();\n let pointRect = $f6c31cce2adf654f$var$getPointClientRect(point);\n return $f6c31cce2adf654f$var$areRectanglesOverlapping(rect, pointRect);\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultUp(target) {\n if (target instanceof HTMLInputElement) return false;\n if (target instanceof HTMLButtonElement) return target.type !== 'submit' && target.type !== 'reset';\n if ($f6c31cce2adf654f$var$isHTMLAnchorLink(target)) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(target, key) {\n if (target instanceof HTMLInputElement) return !$f6c31cce2adf654f$var$isValidInputKey(target, key);\n return $f6c31cce2adf654f$var$shouldPreventDefaultUp(target);\n}\nconst $f6c31cce2adf654f$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\nfunction $f6c31cce2adf654f$var$isValidInputKey(target, key) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : $f6c31cce2adf654f$var$nonTextInputTypes.has(target.type);\n}\n\n\nexport {$f6c31cce2adf654f$export$45712eceda6fad21 as usePress};\n//# sourceMappingURL=usePress.module.js.map\n","import {useLayoutEffect as $cgawC$useLayoutEffect, getActiveElement as $cgawC$getActiveElement, getOwnerDocument as $cgawC$getOwnerDocument, getEventTarget as $cgawC$getEventTarget, isAndroid as $cgawC$isAndroid, isChrome as $cgawC$isChrome, isTabbable as $cgawC$isTabbable, isFocusable as $cgawC$isFocusable, createShadowTreeWalker as $cgawC$createShadowTreeWalker} from \"@react-aria/utils\";\nimport {getInteractionModality as $cgawC$getInteractionModality, focusSafely as $cgawC$focusSafely} from \"@react-aria/interactions\";\nimport $cgawC$react, {useRef as $cgawC$useRef, useContext as $cgawC$useContext, useMemo as $cgawC$useMemo, useEffect as $cgawC$useEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $9bf71ea28793e738$var$FocusContext = /*#__PURE__*/ (0, $cgawC$react).createContext(null);\nconst $9bf71ea28793e738$var$RESTORE_FOCUS_EVENT = 'react-aria-focus-scope-restore';\nlet $9bf71ea28793e738$var$activeScope = null;\nfunction $9bf71ea28793e738$export$20e40289641fbbb6(props) {\n let { children: children, contain: contain, restoreFocus: restoreFocus, autoFocus: autoFocus } = props;\n let startRef = (0, $cgawC$useRef)(null);\n let endRef = (0, $cgawC$useRef)(null);\n let scopeRef = (0, $cgawC$useRef)([]);\n let { parentNode: parentNode } = (0, $cgawC$useContext)($9bf71ea28793e738$var$FocusContext) || {};\n // Create a tree node here so we can add children to it even before it is added to the tree.\n let node = (0, $cgawC$useMemo)(()=>new $9bf71ea28793e738$var$TreeNode({\n scopeRef: scopeRef\n }), [\n scopeRef\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n // If a new scope mounts outside the active scope, (e.g. DialogContainer launched from a menu),\n // use the active scope as the parent instead of the parent from context. Layout effects run bottom\n // up, so if the parent is not yet added to the tree, don't do this. Only the outer-most FocusScope\n // that is being added should get the activeScope as its parent.\n let parent = parentNode || $9bf71ea28793e738$export$d06fae2ee68b101e.root;\n if ($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parent.scopeRef) && $9bf71ea28793e738$var$activeScope && !$9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, parent.scopeRef)) {\n let activeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n if (activeNode) parent = activeNode;\n }\n // Add the node to the parent, and to the tree.\n parent.addChild(node);\n $9bf71ea28793e738$export$d06fae2ee68b101e.addNode(node);\n }, [\n node,\n parentNode\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n let node = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (node) node.contain = !!contain;\n }, [\n contain\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n var _startRef_current;\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = (_startRef_current = startRef.current) === null || _startRef_current === void 0 ? void 0 : _startRef_current.nextSibling;\n let nodes = [];\n let stopPropagation = (e)=>e.stopPropagation();\n while(node && node !== endRef.current){\n nodes.push(node);\n // Stop custom restore focus event from propagating to parent focus scopes.\n node.addEventListener($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, stopPropagation);\n node = node.nextSibling;\n }\n scopeRef.current = nodes;\n return ()=>{\n for (let node of nodes)node.removeEventListener($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, stopPropagation);\n };\n }, [\n children\n ]);\n $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain);\n $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus);\n // This needs to be an effect so that activeScope is updated after the FocusScope tree is complete.\n // It cannot be a useLayoutEffect because the parent of this node hasn't been attached in the tree yet.\n (0, $cgawC$useEffect)(()=>{\n const activeElement = (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined));\n let scope = null;\n if ($9bf71ea28793e738$var$isElementInScope(activeElement, scopeRef.current)) {\n // We need to traverse the focusScope tree and find the bottom most scope that\n // contains the active element and set that as the activeScope.\n for (let node of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse())if (node.scopeRef && $9bf71ea28793e738$var$isElementInScope(activeElement, node.scopeRef.current)) scope = node;\n if (scope === $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) $9bf71ea28793e738$var$activeScope = scope.scopeRef;\n }\n }, [\n scopeRef\n ]);\n // This layout effect cleanup is so that the tree node is removed synchronously with react before the RAF\n // in useRestoreFocus cleanup runs.\n (0, $cgawC$useLayoutEffect)(()=>{\n return ()=>{\n var _focusScopeTree_getTreeNode_parent, _focusScopeTree_getTreeNode;\n var _focusScopeTree_getTreeNode_parent_scopeRef;\n // Scope may have been re-parented.\n let parentScope = (_focusScopeTree_getTreeNode_parent_scopeRef = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : (_focusScopeTree_getTreeNode_parent = _focusScopeTree_getTreeNode.parent) === null || _focusScopeTree_getTreeNode_parent === void 0 ? void 0 : _focusScopeTree_getTreeNode_parent.scopeRef) !== null && _focusScopeTree_getTreeNode_parent_scopeRef !== void 0 ? _focusScopeTree_getTreeNode_parent_scopeRef : null;\n if ((scopeRef === $9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope(scopeRef, $9bf71ea28793e738$var$activeScope)) && (!parentScope || $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parentScope))) $9bf71ea28793e738$var$activeScope = parentScope;\n $9bf71ea28793e738$export$d06fae2ee68b101e.removeTreeNode(scopeRef);\n };\n }, [\n scopeRef\n ]);\n let focusManager = (0, $cgawC$useMemo)(()=>$9bf71ea28793e738$var$createFocusManagerForScope(scopeRef), []);\n let value = (0, $cgawC$useMemo)(()=>({\n focusManager: focusManager,\n parentNode: node\n }), [\n node,\n focusManager\n ]);\n return /*#__PURE__*/ (0, $cgawC$react).createElement($9bf71ea28793e738$var$FocusContext.Provider, {\n value: value\n }, /*#__PURE__*/ (0, $cgawC$react).createElement(\"span\", {\n \"data-focus-scope-start\": true,\n hidden: true,\n ref: startRef\n }), children, /*#__PURE__*/ (0, $cgawC$react).createElement(\"span\", {\n \"data-focus-scope-end\": true,\n hidden: true,\n ref: endRef\n }));\n}\nfunction $9bf71ea28793e738$export$10c5169755ce7bd7() {\n var _useContext;\n return (_useContext = (0, $cgawC$useContext)($9bf71ea28793e738$var$FocusContext)) === null || _useContext === void 0 ? void 0 : _useContext.focusManager;\n}\nfunction $9bf71ea28793e738$var$createFocusManagerForScope(scopeRef) {\n return {\n focusNext (opts = {}) {\n let scope = scopeRef.current;\n let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;\n var _scope_;\n let node = from || (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)((_scope_ = scope[0]) !== null && _scope_ !== void 0 ? _scope_ : undefined));\n let sentinel = scope[0].previousElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = {}) {\n let scope = scopeRef.current;\n let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;\n var _scope_;\n let node = from || (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)((_scope_ = scope[0]) !== null && _scope_ !== void 0 ? _scope_ : undefined));\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode();\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n },\n focusFirst (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable, accept: accept } = opts;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable, accept: accept } = opts;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode();\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n }\n };\n}\nfunction $9bf71ea28793e738$var$getScopeRoot(scope) {\n return scope[0].parentElement;\n}\nfunction $9bf71ea28793e738$var$shouldContainFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.contain) return false;\n scope = scope.parent;\n }\n return true;\n}\nfunction $9bf71ea28793e738$var$isTabbableRadio(element) {\n if (element.checked) return true;\n let radios = [];\n if (!element.form) radios = [\n ...(0, $cgawC$getOwnerDocument)(element).querySelectorAll(`input[type=\"radio\"][name=\"${CSS.escape(element.name)}\"]`)\n ].filter((radio)=>!radio.form);\n else {\n var _element_form_elements, _element_form;\n let radioList = (_element_form = element.form) === null || _element_form === void 0 ? void 0 : (_element_form_elements = _element_form.elements) === null || _element_form_elements === void 0 ? void 0 : _element_form_elements.namedItem(element.name);\n radios = [\n ...radioList !== null && radioList !== void 0 ? radioList : []\n ];\n }\n if (!radios) return false;\n let anyChecked = radios.some((radio)=>radio.checked);\n return !anyChecked;\n}\nfunction $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain) {\n let focusedNode = (0, $cgawC$useRef)(undefined);\n let raf = (0, $cgawC$useRef)(undefined);\n (0, $cgawC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = undefined;\n }\n return;\n }\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e)=>{\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef) || e.isComposing) return;\n let focusedElement = (0, $cgawC$getActiveElement)(ownerDocument);\n let scope = scopeRef.current;\n if (!scope || !$9bf71ea28793e738$var$isElementInScope(focusedElement, scope)) return;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: true\n }, scope);\n if (!focusedElement) return;\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n }\n e.preventDefault();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n };\n let onFocus = (e)=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope((0, $cgawC$getEventTarget)(e), scopeRef.current)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n focusedNode.current = (0, $cgawC$getEventTarget)(e);\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope((0, $cgawC$getEventTarget)(e), scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) focusedNode.current.focus();\n else if ($9bf71ea28793e738$var$activeScope && $9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef)) focusedNode.current = (0, $cgawC$getEventTarget)(e);\n };\n let onBlur = (e)=>{\n // Firefox doesn't shift focus back to the Dialog properly without this\n if (raf.current) cancelAnimationFrame(raf.current);\n raf.current = requestAnimationFrame(()=>{\n // Patches infinite focus coersion loop for Android Talkback where the user isn't able to move the virtual cursor\n // if within a containing focus scope. Bug filed against Chrome: https://issuetracker.google.com/issues/384844019.\n // Note that this means focus can leave focus containing modals due to this, but it is isolated to Chrome Talkback.\n let modality = (0, $cgawC$getInteractionModality)();\n let shouldSkipFocusRestore = (modality === 'virtual' || modality === null) && (0, $cgawC$isAndroid)() && (0, $cgawC$isChrome)();\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n let activeElement = (0, $cgawC$getActiveElement)(ownerDocument);\n if (!shouldSkipFocusRestore && activeElement && $9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(activeElement, scopeRef)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n let target = (0, $cgawC$getEventTarget)(e);\n if (target && target.isConnected) {\n var _focusedNode_current;\n focusedNode.current = target;\n (_focusedNode_current = focusedNode.current) === null || _focusedNode_current === void 0 ? void 0 : _focusedNode_current.focus();\n } else if ($9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n }\n });\n };\n ownerDocument.addEventListener('keydown', onKeyDown, false);\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusout', onBlur, false));\n return ()=>{\n ownerDocument.removeEventListener('keydown', onKeyDown, false);\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusout', onBlur, false));\n };\n }, [\n scopeRef,\n contain\n ]);\n // This is a useLayoutEffect so it is guaranteed to run before our async synthetic blur\n (0, $cgawC$useLayoutEffect)(()=>{\n return ()=>{\n if (raf.current) cancelAnimationFrame(raf.current);\n };\n }, [\n raf\n ]);\n}\nfunction $9bf71ea28793e738$var$isElementInAnyScope(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element);\n}\nfunction $9bf71ea28793e738$var$isElementInScope(element, scope) {\n if (!element) return false;\n if (!scope) return false;\n return scope.some((node)=>node.contains(element));\n}\nfunction $9bf71ea28793e738$var$isElementInChildScope(element, scope = null) {\n // If the element is within a top layer element (e.g. toasts), always allow moving focus there.\n if (element instanceof Element && element.closest('[data-react-aria-top-layer]')) return true;\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let { scopeRef: s } of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope))){\n if (s && $9bf71ea28793e738$var$isElementInScope(element, s.current)) return true;\n }\n return false;\n}\nfunction $9bf71ea28793e738$export$1258395f99bf9cbf(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element, $9bf71ea28793e738$var$activeScope);\n}\nfunction $9bf71ea28793e738$var$isAncestorScope(ancestor, scope) {\n var _focusScopeTree_getTreeNode;\n let parent = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : _focusScopeTree_getTreeNode.parent;\n while(parent){\n if (parent.scopeRef === ancestor) return true;\n parent = parent.parent;\n }\n return false;\n}\nfunction $9bf71ea28793e738$var$focusElement(element, scroll = false) {\n if (element != null && !scroll) try {\n (0, $cgawC$focusSafely)(element);\n } catch {\n // ignore\n }\n else if (element != null) try {\n element.focus();\n } catch {\n // ignore\n }\n}\nfunction $9bf71ea28793e738$var$getFirstInScope(scope, tabbable = true) {\n let sentinel = scope[0].previousElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable\n }, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: false\n }, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n return nextNode;\n}\nfunction $9bf71ea28793e738$var$focusFirstInScope(scope, tabbable = true) {\n $9bf71ea28793e738$var$focusElement($9bf71ea28793e738$var$getFirstInScope(scope, tabbable));\n}\nfunction $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus) {\n const autoFocusRef = (0, $cgawC$react).useRef(autoFocus);\n (0, $cgawC$useEffect)(()=>{\n if (autoFocusRef.current) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!$9bf71ea28793e738$var$isElementInScope((0, $cgawC$getActiveElement)(ownerDocument), $9bf71ea28793e738$var$activeScope.current) && scopeRef.current) $9bf71ea28793e738$var$focusFirstInScope(scopeRef.current);\n }\n autoFocusRef.current = false;\n }, [\n scopeRef\n ]);\n}\nfunction $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restore, contain) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n (0, $cgawC$useLayoutEffect)(()=>{\n if (restore || contain) return;\n let scope = scopeRef.current;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n let onFocus = (e)=>{\n let target = (0, $cgawC$getEventTarget)(e);\n if ($9bf71ea28793e738$var$isElementInScope(target, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;\n else if (!$9bf71ea28793e738$var$isElementInAnyScope(target)) $9bf71ea28793e738$var$activeScope = null;\n };\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n return ()=>{\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n };\n }, [\n scopeRef,\n restore,\n contain\n ]);\n}\nfunction $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.nodeToRestore) return false;\n scope = scope.parent;\n }\n return (scope === null || scope === void 0 ? void 0 : scope.scopeRef) === scopeRef;\n}\nfunction $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n // eslint-disable-next-line no-restricted-globals\n const nodeToRestoreRef = (0, $cgawC$useRef)(typeof document !== 'undefined' ? (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined)) : null);\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n (0, $cgawC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n if (!restoreFocus || contain) return;\n let onFocus = ()=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope((0, $cgawC$getActiveElement)(ownerDocument), scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;\n };\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n return ()=>{\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n scopeRef,\n contain\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!restoreFocus) return;\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e)=>{\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef) || e.isComposing) return;\n let focusedElement = ownerDocument.activeElement;\n if (!$9bf71ea28793e738$var$isElementInChildScope(focusedElement, scopeRef) || !$9bf71ea28793e738$var$shouldRestoreFocus(scopeRef)) return;\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n let nodeToRestore = treeNode.nodeToRestore;\n // Create a DOM tree walker that matches all tabbable elements\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(ownerDocument.body, {\n tabbable: true\n });\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!nodeToRestore || !nodeToRestore.isConnected || nodeToRestore === ownerDocument.body) {\n nodeToRestore = undefined;\n treeNode.nodeToRestore = undefined;\n }\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !$9bf71ea28793e738$var$isElementInChildScope(nextElement, scopeRef)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n while ($9bf71ea28793e738$var$isElementInChildScope(nextElement, scopeRef));\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n else // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!$9bf71ea28793e738$var$isElementInAnyScope(nodeToRestore)) focusedElement.blur();\n else $9bf71ea28793e738$var$focusElement(nodeToRestore, true);\n }\n };\n if (!contain) ownerDocument.addEventListener('keydown', onKeyDown, true);\n return ()=>{\n if (!contain) ownerDocument.removeEventListener('keydown', onKeyDown, true);\n };\n }, [\n scopeRef,\n restoreFocus,\n contain\n ]);\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n (0, $cgawC$useLayoutEffect)(()=>{\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!restoreFocus) return;\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n var _nodeToRestoreRef_current;\n treeNode.nodeToRestore = (_nodeToRestoreRef_current = nodeToRestoreRef.current) !== null && _nodeToRestoreRef_current !== void 0 ? _nodeToRestoreRef_current : undefined;\n return ()=>{\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n let nodeToRestore = treeNode.nodeToRestore;\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n let activeElement = (0, $cgawC$getActiveElement)(ownerDocument);\n if (restoreFocus && nodeToRestore && (activeElement && $9bf71ea28793e738$var$isElementInChildScope(activeElement, scopeRef) || activeElement === ownerDocument.body && $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef))) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = $9bf71ea28793e738$export$d06fae2ee68b101e.clone();\n requestAnimationFrame(()=>{\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (ownerDocument.activeElement === ownerDocument.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.nodeToRestore && treeNode.nodeToRestore.isConnected) {\n $9bf71ea28793e738$var$restoreFocusToElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.scopeRef && treeNode.scopeRef.current && $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(treeNode.scopeRef)) {\n let node = $9bf71ea28793e738$var$getFirstInScope(treeNode.scopeRef.current, true);\n $9bf71ea28793e738$var$restoreFocusToElement(node);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [\n scopeRef,\n restoreFocus\n ]);\n}\nfunction $9bf71ea28793e738$var$restoreFocusToElement(node) {\n // Dispatch a custom event that parent elements can intercept to customize focus restoration.\n // For example, virtualized collection components reuse DOM elements, so the original element\n // might still exist in the DOM but representing a different item.\n if (node.dispatchEvent(new CustomEvent($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, {\n bubbles: true,\n cancelable: true\n }))) $9bf71ea28793e738$var$focusElement(node);\n}\nfunction $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, opts, scope) {\n let filter = (opts === null || opts === void 0 ? void 0 : opts.tabbable) ? (0, $cgawC$isTabbable) : (0, $cgawC$isFocusable);\n // Ensure that root is an Element or fall back appropriately\n let rootElement = (root === null || root === void 0 ? void 0 : root.nodeType) === Node.ELEMENT_NODE ? root : null;\n // Determine the document to use\n let doc = (0, $cgawC$getOwnerDocument)(rootElement);\n // Create a TreeWalker, ensuring the root is an Element or Document\n let walker = (0, $cgawC$createShadowTreeWalker)(doc, root || doc, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n var _opts_from;\n // Skip nodes inside the starting node.\n if (opts === null || opts === void 0 ? void 0 : (_opts_from = opts.from) === null || _opts_from === void 0 ? void 0 : _opts_from.contains(node)) return NodeFilter.FILTER_REJECT;\n if ((opts === null || opts === void 0 ? void 0 : opts.tabbable) && node.tagName === 'INPUT' && node.getAttribute('type') === 'radio') {\n // If the radio is in a form, we can get all the other radios by name\n if (!$9bf71ea28793e738$var$isTabbableRadio(node)) return NodeFilter.FILTER_REJECT;\n // If the radio is in the same group as the current node and none are selected, we can skip it\n if (walker.currentNode.tagName === 'INPUT' && walker.currentNode.type === 'radio' && walker.currentNode.name === node.name) return NodeFilter.FILTER_REJECT;\n }\n if (filter(node) && (!scope || $9bf71ea28793e738$var$isElementInScope(node, scope)) && (!(opts === null || opts === void 0 ? void 0 : opts.accept) || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;\n return NodeFilter.FILTER_SKIP;\n }\n });\n if (opts === null || opts === void 0 ? void 0 : opts.from) walker.currentNode = opts.from;\n return walker;\n}\nfunction $9bf71ea28793e738$export$c5251b9e124bf29(ref, defaultOptions = {}) {\n return {\n focusNext (opts = {}) {\n let root = ref.current;\n if (!root) return null;\n let { from: from, tabbable: tabbable = defaultOptions.tabbable, wrap: wrap = defaultOptions.wrap, accept: accept = defaultOptions.accept } = opts;\n let node = from || (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)(root));\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { from: from, tabbable: tabbable = defaultOptions.tabbable, wrap: wrap = defaultOptions.wrap, accept: accept = defaultOptions.accept } = opts;\n let node = from || (0, $cgawC$getActiveElement)((0, $cgawC$getOwnerDocument)(root));\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n else {\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next !== null && next !== void 0 ? next : null;\n }\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = root;\n let lastNode = $9bf71ea28793e738$var$last(walker);\n if (!lastNode) // couldn't wrap\n return null;\n previousNode = lastNode;\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode !== null && previousNode !== void 0 ? previousNode : null;\n },\n focusFirst (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { tabbable: tabbable = defaultOptions.tabbable, accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { tabbable: tabbable = defaultOptions.tabbable, accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next !== null && next !== void 0 ? next : null;\n }\n };\n}\nfunction $9bf71ea28793e738$var$last(walker) {\n let next = undefined;\n let last;\n do {\n last = walker.lastChild();\n if (last) next = last;\n }while (last);\n return next;\n}\nclass $9bf71ea28793e738$var$Tree {\n get size() {\n return this.fastMap.size;\n }\n getTreeNode(data) {\n return this.fastMap.get(data);\n }\n addTreeNode(scopeRef, parent, nodeToRestore) {\n let parentNode = this.fastMap.get(parent !== null && parent !== void 0 ? parent : null);\n if (!parentNode) return;\n let node = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: scopeRef\n });\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) node.nodeToRestore = nodeToRestore;\n }\n addNode(node) {\n this.fastMap.set(node.scopeRef, node);\n }\n removeTreeNode(scopeRef) {\n // never remove the root\n if (scopeRef === null) return;\n let node = this.fastMap.get(scopeRef);\n if (!node) return;\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse())if (current !== node && node.nodeToRestore && current.nodeToRestore && node.scopeRef && node.scopeRef.current && $9bf71ea28793e738$var$isElementInScope(current.nodeToRestore, node.scopeRef.current)) current.nodeToRestore = node.nodeToRestore;\n let children = node.children;\n if (parentNode) {\n parentNode.removeChild(node);\n if (children.size > 0) children.forEach((child)=>parentNode && parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n // Pre Order Depth First\n *traverse(node = this.root) {\n if (node.scopeRef != null) yield node;\n if (node.children.size > 0) for (let child of node.children)yield* this.traverse(child);\n }\n clone() {\n var _node_parent;\n let newTree = new $9bf71ea28793e738$var$Tree();\n var _node_parent_scopeRef;\n for (let node of this.traverse())newTree.addTreeNode(node.scopeRef, (_node_parent_scopeRef = (_node_parent = node.parent) === null || _node_parent === void 0 ? void 0 : _node_parent.scopeRef) !== null && _node_parent_scopeRef !== void 0 ? _node_parent_scopeRef : null, node.nodeToRestore);\n return newTree;\n }\n constructor(){\n this.fastMap = new Map();\n this.root = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: null\n });\n this.fastMap.set(null, this.root);\n }\n}\nclass $9bf71ea28793e738$var$TreeNode {\n addChild(node) {\n this.children.add(node);\n node.parent = this;\n }\n removeChild(node) {\n this.children.delete(node);\n node.parent = undefined;\n }\n constructor(props){\n this.children = new Set();\n this.contain = false;\n this.scopeRef = props.scopeRef;\n }\n}\nlet $9bf71ea28793e738$export$d06fae2ee68b101e = new $9bf71ea28793e738$var$Tree();\n\n\nexport {$9bf71ea28793e738$export$20e40289641fbbb6 as FocusScope, $9bf71ea28793e738$export$d06fae2ee68b101e as focusScopeTree, $9bf71ea28793e738$export$10c5169755ce7bd7 as useFocusManager, $9bf71ea28793e738$export$2d6ec8fc375ceafa as getFocusableTreeWalker, $9bf71ea28793e738$export$1258395f99bf9cbf as isElementInChildOfActiveScope, $9bf71ea28793e738$export$c5251b9e124bf29 as createFocusManager};\n//# sourceMappingURL=FocusScope.module.js.map\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $5b160d28a433310d$var$localeSymbol = Symbol.for('react-aria.i18n.locale');\nconst $5b160d28a433310d$var$stringsSymbol = Symbol.for('react-aria.i18n.strings');\nlet $5b160d28a433310d$var$cachedGlobalStrings = undefined;\nclass $5b160d28a433310d$export$c17fa47878dc55b6 {\n /** Returns a localized string for the given key and locale. */ getStringForLocale(key, locale) {\n let strings = this.getStringsForLocale(locale);\n let string = strings[key];\n if (!string) throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n return string;\n }\n /** Returns all localized strings for the given locale. */ getStringsForLocale(locale) {\n let strings = this.strings[locale];\n if (!strings) {\n strings = $5b160d28a433310d$var$getStringsForLocale(locale, this.strings, this.defaultLocale);\n this.strings[locale] = strings;\n }\n return strings;\n }\n static getGlobalDictionaryForPackage(packageName) {\n if (typeof window === 'undefined') return null;\n let locale = window[$5b160d28a433310d$var$localeSymbol];\n if ($5b160d28a433310d$var$cachedGlobalStrings === undefined) {\n let globalStrings = window[$5b160d28a433310d$var$stringsSymbol];\n if (!globalStrings) return null;\n $5b160d28a433310d$var$cachedGlobalStrings = {};\n for(let pkg in globalStrings)$5b160d28a433310d$var$cachedGlobalStrings[pkg] = new $5b160d28a433310d$export$c17fa47878dc55b6({\n [locale]: globalStrings[pkg]\n }, locale);\n }\n let dictionary = $5b160d28a433310d$var$cachedGlobalStrings === null || $5b160d28a433310d$var$cachedGlobalStrings === void 0 ? void 0 : $5b160d28a433310d$var$cachedGlobalStrings[packageName];\n if (!dictionary) throw new Error(`Strings for package \"${packageName}\" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);\n return dictionary;\n }\n constructor(messages, defaultLocale = 'en-US'){\n // Clone messages so we don't modify the original object.\n // Filter out entries with falsy values which may have been caused by applying optimize-locales-plugin.\n this.strings = Object.fromEntries(Object.entries(messages).filter(([, v])=>v));\n this.defaultLocale = defaultLocale;\n }\n}\nfunction $5b160d28a433310d$var$getStringsForLocale(locale, strings, defaultLocale = 'en-US') {\n // If there is an exact match, use it.\n if (strings[locale]) return strings[locale];\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = $5b160d28a433310d$var$getLanguage(locale);\n if (strings[language]) return strings[language];\n for(let key in strings){\n if (key.startsWith(language + '-')) return strings[key];\n }\n // Nothing close, use english.\n return strings[defaultLocale];\n}\nfunction $5b160d28a433310d$var$getLanguage(locale) {\n // @ts-ignore\n if (Intl.Locale) // @ts-ignore\n return new Intl.Locale(locale).language;\n return locale.split('-')[0];\n}\n\n\nexport {$5b160d28a433310d$export$c17fa47878dc55b6 as LocalizedStringDictionary};\n//# sourceMappingURL=LocalizedStringDictionary.module.js.map\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $6db58dc88e78b024$var$pluralRulesCache = new Map();\nconst $6db58dc88e78b024$var$numberFormatCache = new Map();\nclass $6db58dc88e78b024$export$2f817fcdc4b89ae0 {\n /** Formats a localized string for the given key with the provided variables. */ format(key, variables) {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === 'function' ? message(variables, this) : message;\n }\n plural(count, options, type = 'cardinal') {\n let opt = options['=' + count];\n if (opt) return typeof opt === 'function' ? opt() : opt;\n let key = this.locale + ':' + type;\n let pluralRules = $6db58dc88e78b024$var$pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {\n type: type\n });\n $6db58dc88e78b024$var$pluralRulesCache.set(key, pluralRules);\n }\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n number(value) {\n let numberFormat = $6db58dc88e78b024$var$numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n $6db58dc88e78b024$var$numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n select(options, value) {\n let opt = options[value] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n constructor(locale, strings){\n this.locale = locale;\n this.strings = strings;\n }\n}\n\n\nexport {$6db58dc88e78b024$export$2f817fcdc4b89ae0 as LocalizedStringFormatter};\n//# sourceMappingURL=LocalizedStringFormatter.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\nimport {LocalizedStringDictionary as $6ksNp$LocalizedStringDictionary, LocalizedStringFormatter as $6ksNp$LocalizedStringFormatter} from \"@internationalized/string\";\nimport {useMemo as $6ksNp$useMemo} from \"react\";\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $fca6afa0e843324b$var$cache = new WeakMap();\nfunction $fca6afa0e843324b$var$getCachedDictionary(strings) {\n let dictionary = $fca6afa0e843324b$var$cache.get(strings);\n if (!dictionary) {\n dictionary = new (0, $6ksNp$LocalizedStringDictionary)(strings);\n $fca6afa0e843324b$var$cache.set(strings, dictionary);\n }\n return dictionary;\n}\nfunction $fca6afa0e843324b$export$87b761675e8eaa10(strings, packageName) {\n return packageName && (0, $6ksNp$LocalizedStringDictionary).getGlobalDictionaryForPackage(packageName) || $fca6afa0e843324b$var$getCachedDictionary(strings);\n}\nfunction $fca6afa0e843324b$export$f12b703ca79dfbb1(strings, packageName) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let dictionary = $fca6afa0e843324b$export$87b761675e8eaa10(strings, packageName);\n return (0, $6ksNp$useMemo)(()=>new (0, $6ksNp$LocalizedStringFormatter)(locale, dictionary), [\n locale,\n dictionary\n ]);\n}\n\n\nexport {$fca6afa0e843324b$export$87b761675e8eaa10 as useLocalizedStringDictionary, $fca6afa0e843324b$export$f12b703ca79dfbb1 as useLocalizedStringFormatter};\n//# sourceMappingURL=useLocalizedStringFormatter.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\nimport {DateFormatter as $6wxND$DateFormatter} from \"@internationalized/date\";\nimport {useDeepMemo as $6wxND$useDeepMemo} from \"@react-aria/utils\";\nimport {useMemo as $6wxND$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nfunction $896ba0a80a8f4d36$export$85fd5fdf27bacc79(options) {\n // Reuse last options object if it is shallowly equal, which allows the useMemo result to also be reused.\n options = (0, $6wxND$useDeepMemo)(options !== null && options !== void 0 ? options : {}, $896ba0a80a8f4d36$var$isEqual);\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $6wxND$useMemo)(()=>new (0, $6wxND$DateFormatter)(locale, options), [\n locale,\n options\n ]);\n}\nfunction $896ba0a80a8f4d36$var$isEqual(a, b) {\n if (a === b) return true;\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) return false;\n for (let key of aKeys){\n if (b[key] !== a[key]) return false;\n }\n return true;\n}\n\n\nexport {$896ba0a80a8f4d36$export$85fd5fdf27bacc79 as useDateFormatter};\n//# sourceMappingURL=useDateFormatter.module.js.map\n","import {NumberFormatter as $488c6ddbf4ef74c2$export$cc77c4ff7e8673c5} from \"./NumberFormatter.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $6c7bd7858deea686$var$CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst $6c7bd7858deea686$var$NUMBERING_SYSTEMS = [\n 'latn',\n 'arab',\n 'hanidec',\n 'deva',\n 'beng',\n 'fullwide'\n];\nclass $6c7bd7858deea686$export$cd11ab140839f11d {\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */ parse(value) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */ isValidPartialNumber(value, minValue, maxValue) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */ getNumberingSystem(value) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n constructor(locale, options = {}){\n this.locale = locale;\n this.options = options;\n }\n}\nconst $6c7bd7858deea686$var$numberParserCache = new Map();\nfunction $6c7bd7858deea686$var$getNumberParserImpl(locale, options, value) {\n // First try the default numbering system for the provided locale\n let defaultParser = $6c7bd7858deea686$var$getCachedNumberParser(locale, options);\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of $6c7bd7858deea686$var$NUMBERING_SYSTEMS)if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = $6c7bd7858deea686$var$getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) return parser;\n }\n }\n return defaultParser;\n}\nfunction $6c7bd7858deea686$var$getCachedNumberParser(locale, options) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : '');\n let parser = $6c7bd7858deea686$var$numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new $6c7bd7858deea686$var$NumberParserImpl(locale, options);\n $6c7bd7858deea686$var$numberParserCache.set(cacheKey, parser);\n }\n return parser;\n}\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass $6c7bd7858deea686$var$NumberParserImpl {\n parse(value) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n if (this.symbols.group) // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = $6c7bd7858deea686$var$replaceAll(fullySanitizedValue, this.symbols.group, '');\n if (this.symbols.decimal) fullySanitizedValue = fullySanitizedValue.replace(this.symbols.decimal, '.');\n if (this.symbols.minusSign) fullySanitizedValue = fullySanitizedValue.replace(this.symbols.minusSign, '-');\n fullySanitizedValue = fullySanitizedValue.replace(this.symbols.numeral, this.symbols.index);\n if (this.options.style === 'percent') {\n // javascript is bad at dividing by 100 and maintaining the same significant figures, so perform it on the string before parsing\n let isNegative = fullySanitizedValue.indexOf('-');\n fullySanitizedValue = fullySanitizedValue.replace('-', '');\n fullySanitizedValue = fullySanitizedValue.replace('+', '');\n let index = fullySanitizedValue.indexOf('.');\n if (index === -1) index = fullySanitizedValue.length;\n fullySanitizedValue = fullySanitizedValue.replace('.', '');\n if (index - 2 === 0) fullySanitizedValue = `0.${fullySanitizedValue}`;\n else if (index - 2 === -1) fullySanitizedValue = `0.0${fullySanitizedValue}`;\n else if (index - 2 === -2) fullySanitizedValue = '0.00';\n else fullySanitizedValue = `${fullySanitizedValue.slice(0, index - 2)}.${fullySanitizedValue.slice(index - 2)}`;\n if (isNegative > -1) fullySanitizedValue = `-${fullySanitizedValue}`;\n }\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) return NaN;\n if (this.options.style === 'percent') {\n var _this_options_minimumFractionDigits, _this_options_maximumFractionDigits;\n // extra step for rounding percents to what our formatter would output\n let options = {\n ...this.options,\n style: 'decimal',\n minimumFractionDigits: Math.min(((_this_options_minimumFractionDigits = this.options.minimumFractionDigits) !== null && _this_options_minimumFractionDigits !== void 0 ? _this_options_minimumFractionDigits : 0) + 2, 20),\n maximumFractionDigits: Math.min(((_this_options_maximumFractionDigits = this.options.maximumFractionDigits) !== null && _this_options_maximumFractionDigits !== void 0 ? _this_options_maximumFractionDigits : 0) + 2, 20)\n };\n return new $6c7bd7858deea686$export$cd11ab140839f11d(this.locale, options).parse(new (0, $488c6ddbf4ef74c2$export$cc77c4ff7e8673c5)(this.locale, options).format(newValue));\n }\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && $6c7bd7858deea686$var$CURRENCY_SIGN_REGEX.test(value)) newValue = -1 * newValue;\n return newValue;\n }\n sanitize(value) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n if (this.symbols.minusSign) value = value.replace('-', this.symbols.minusSign);\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n if (this.symbols.decimal) {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n }\n if (this.symbols.group) value = $6c7bd7858deea686$var$replaceAll(value, '.', this.symbols.group);\n }\n // In some locale styles, such as swiss currency, the group character can be a special single quote\n // that keyboards don't typically have. This expands the character to include the easier to type single quote.\n if (this.symbols.group === \"\\u2019\" && value.includes(\"'\")) value = $6c7bd7858deea686$var$replaceAll(value, \"'\", this.symbols.group);\n // fr-FR group character is narrow non-breaking space, char code 8239 (U+202F), but that's not a key on the french keyboard,\n // so allow space and non-breaking space as a group char as well\n if (this.options.locale === 'fr-FR' && this.symbols.group) {\n value = $6c7bd7858deea686$var$replaceAll(value, ' ', this.symbols.group);\n value = $6c7bd7858deea686$var$replaceAll(value, /\\u00A0/g, this.symbols.group);\n }\n return value;\n }\n isValidPartialNumber(value, minValue = -Infinity, maxValue = Infinity) {\n value = this.sanitize(value);\n // Remove minus or plus sign, which must be at the start of the string.\n if (this.symbols.minusSign && value.startsWith(this.symbols.minusSign) && minValue < 0) value = value.slice(this.symbols.minusSign.length);\n else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) value = value.slice(this.symbols.plusSign.length);\n // Numbers cannot start with a group separator\n if (this.symbols.group && value.startsWith(this.symbols.group)) return false;\n // Numbers that can't have any decimal values fail if a decimal character is typed\n if (this.symbols.decimal && value.indexOf(this.symbols.decimal) > -1 && this.options.maximumFractionDigits === 0) return false;\n // Remove numerals, groups, and decimals\n if (this.symbols.group) value = $6c7bd7858deea686$var$replaceAll(value, this.symbols.group, '');\n value = value.replace(this.symbols.numeral, '');\n if (this.symbols.decimal) value = value.replace(this.symbols.decimal, '');\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n constructor(locale, options = {}){\n this.locale = locale;\n // see https://tc39.es/ecma402/#sec-setnfdigitoptions, when using roundingIncrement, the maximumFractionDigits and minimumFractionDigits must be equal\n // by default, they are 0 and 3 respectively, so we set them to 0 if neither are set\n if (options.roundingIncrement !== 1 && options.roundingIncrement != null) {\n if (options.maximumFractionDigits == null && options.minimumFractionDigits == null) {\n options.maximumFractionDigits = 0;\n options.minimumFractionDigits = 0;\n } else if (options.maximumFractionDigits == null) options.maximumFractionDigits = options.minimumFractionDigits;\n else if (options.minimumFractionDigits == null) options.minimumFractionDigits = options.maximumFractionDigits;\n // if both are specified, let the normal Range Error be thrown\n }\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = $6c7bd7858deea686$var$getSymbols(locale, this.formatter, this.options, options);\n var _this_options_minimumFractionDigits, _this_options_maximumFractionDigits;\n if (this.options.style === 'percent' && (((_this_options_minimumFractionDigits = this.options.minimumFractionDigits) !== null && _this_options_minimumFractionDigits !== void 0 ? _this_options_minimumFractionDigits : 0) > 18 || ((_this_options_maximumFractionDigits = this.options.maximumFractionDigits) !== null && _this_options_maximumFractionDigits !== void 0 ? _this_options_maximumFractionDigits : 0) > 18)) console.warn('NumberParser cannot handle percentages with greater than 18 decimal places, please reduce the number in your options.');\n }\n}\nconst $6c7bd7858deea686$var$nonLiteralParts = new Set([\n 'decimal',\n 'fraction',\n 'integer',\n 'minusSign',\n 'plusSign',\n 'group'\n]);\n// This list is derived from https://www.unicode.org/cldr/charts/43/supplemental/language_plural_rules.html#comparison and includes\n// all unique numbers which we need to check in order to determine all the plural forms for a given locale.\n// See: https://github.com/adobe/react-spectrum/pull/5134/files#r1337037855 for used script\nconst $6c7bd7858deea686$var$pluralNumbers = [\n 0,\n 4,\n 2,\n 1,\n 11,\n 20,\n 3,\n 7,\n 100,\n 21,\n 0.1,\n 1.1\n];\nfunction $6c7bd7858deea686$var$getSymbols(locale, formatter, intlOptions, originalOptions) {\n var _allParts_find, _posAllParts_find, _decimalParts_find, _allParts_find1;\n // formatter needs access to all decimal places in order to generate the correct literal strings for the plural set\n let symbolFormatter = new Intl.NumberFormat(locale, {\n ...intlOptions,\n // Resets so we get the full range of symbols\n minimumSignificantDigits: 1,\n maximumSignificantDigits: 21,\n roundingIncrement: 1,\n roundingPriority: 'auto',\n roundingMode: 'halfExpand'\n });\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = symbolFormatter.formatToParts(-10000.111);\n let posAllParts = symbolFormatter.formatToParts(10000.111);\n let pluralParts = $6c7bd7858deea686$var$pluralNumbers.map((n)=>symbolFormatter.formatToParts(n));\n var _allParts_find_value;\n let minusSign = (_allParts_find_value = (_allParts_find = allParts.find((p)=>p.type === 'minusSign')) === null || _allParts_find === void 0 ? void 0 : _allParts_find.value) !== null && _allParts_find_value !== void 0 ? _allParts_find_value : '-';\n let plusSign = (_posAllParts_find = posAllParts.find((p)=>p.type === 'plusSign')) === null || _posAllParts_find === void 0 ? void 0 : _posAllParts_find.value;\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n if (!plusSign && ((originalOptions === null || originalOptions === void 0 ? void 0 : originalOptions.signDisplay) === 'exceptZero' || (originalOptions === null || originalOptions === void 0 ? void 0 : originalOptions.signDisplay) === 'always')) plusSign = '+';\n // If maximumSignificantDigits is 1 (the minimum) then we won't get decimal characters out of the above formatters\n // Percent also defaults to 0 fractionDigits, so we need to make a new one that isn't percent to get an accurate decimal\n let decimalParts = new Intl.NumberFormat(locale, {\n ...intlOptions,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).formatToParts(0.001);\n let decimal = (_decimalParts_find = decimalParts.find((p)=>p.type === 'decimal')) === null || _decimalParts_find === void 0 ? void 0 : _decimalParts_find.value;\n let group = (_allParts_find1 = allParts.find((p)=>p.type === 'group')) === null || _allParts_find1 === void 0 ? void 0 : _allParts_find1.value;\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let allPartsLiterals = allParts.filter((p)=>!$6c7bd7858deea686$var$nonLiteralParts.has(p.type)).map((p)=>$6c7bd7858deea686$var$escapeRegex(p.value));\n let pluralPartsLiterals = pluralParts.flatMap((p)=>p.filter((p)=>!$6c7bd7858deea686$var$nonLiteralParts.has(p.type)).map((p)=>$6c7bd7858deea686$var$escapeRegex(p.value)));\n let sortedLiterals = [\n ...new Set([\n ...allPartsLiterals,\n ...pluralPartsLiterals\n ])\n ].sort((a, b)=>b.length - a.length);\n let literals = sortedLiterals.length === 0 ? new RegExp('[\\\\p{White_Space}]', 'gu') : new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [\n ...new Intl.NumberFormat(intlOptions.locale, {\n useGrouping: false\n }).format(9876543210)\n ].reverse();\n let indexes = new Map(numerals.map((d, i)=>[\n d,\n i\n ]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = (d)=>String(indexes.get(d));\n return {\n minusSign: minusSign,\n plusSign: plusSign,\n decimal: decimal,\n group: group,\n literals: literals,\n numeral: numeral,\n index: index\n };\n}\nfunction $6c7bd7858deea686$var$replaceAll(str, find, replace) {\n if (str.replaceAll) return str.replaceAll(find, replace);\n return str.split(find).join(replace);\n}\nfunction $6c7bd7858deea686$var$escapeRegex(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n\nexport {$6c7bd7858deea686$export$cd11ab140839f11d as NumberParser};\n//# sourceMappingURL=NumberParser.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nlet $325a3faab7a68acd$var$cache = new Map();\nfunction $325a3faab7a68acd$export$a16aca283550c30d(options) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : '');\n if ($325a3faab7a68acd$var$cache.has(cacheKey)) return $325a3faab7a68acd$var$cache.get(cacheKey);\n let formatter = new Intl.Collator(locale, options);\n $325a3faab7a68acd$var$cache.set(cacheKey, formatter);\n return formatter;\n}\n\n\nexport {$325a3faab7a68acd$export$a16aca283550c30d as useCollator};\n//# sourceMappingURL=useCollator.module.js.map\n","import {useCollator as $325a3faab7a68acd$export$a16aca283550c30d} from \"./useCollator.mjs\";\nimport {useCallback as $21ck9$useCallback, useMemo as $21ck9$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $bb77f239b46e8c72$export$3274cf84b703fff(options) {\n let collator = (0, $325a3faab7a68acd$export$a16aca283550c30d)({\n usage: 'search',\n ...options\n });\n // TODO(later): these methods don't currently support the ignorePunctuation option.\n let startsWith = (0, $21ck9$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n // Normalize both strings so we can slice safely\n // TODO: take into account the ignorePunctuation option as well...\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(0, substring.length), substring) === 0;\n }, [\n collator\n ]);\n let endsWith = (0, $21ck9$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(-substring.length), substring) === 0;\n }, [\n collator\n ]);\n let contains = (0, $21ck9$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n let scan = 0;\n let sliceLen = substring.length;\n for(; scan + sliceLen <= string.length; scan++){\n let slice = string.slice(scan, scan + sliceLen);\n if (collator.compare(substring, slice) === 0) return true;\n }\n return false;\n }, [\n collator\n ]);\n return (0, $21ck9$useMemo)(()=>({\n startsWith: startsWith,\n endsWith: endsWith,\n contains: contains\n }), [\n startsWith,\n endsWith,\n contains\n ]);\n}\n\n\nexport {$bb77f239b46e8c72$export$3274cf84b703fff as useFilter};\n//# sourceMappingURL=useFilter.module.js.map\n","import {createFocusManager as $7CEvq$createFocusManager, getFocusableTreeWalker as $7CEvq$getFocusableTreeWalker} from \"@react-aria/focus\";\nimport {mergeProps as $7CEvq$mergeProps} from \"@react-aria/utils\";\nimport {useLocale as $7CEvq$useLocale} from \"@react-aria/i18n\";\nimport {useMemo as $7CEvq$useMemo} from \"react\";\nimport {usePress as $7CEvq$usePress} from \"@react-aria/interactions\";\n\n\n\n\n\n\nfunction $3dfb0f96be0d6a08$export$4a931266a3838b86(state, ref, disableArrowNavigation) {\n let { direction: direction } = (0, $7CEvq$useLocale)();\n let focusManager = (0, $7CEvq$useMemo)(()=>(0, $7CEvq$createFocusManager)(ref), [\n ref\n ]);\n // Open the popover on alt + arrow down\n let onKeyDown = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (e.altKey && (e.key === 'ArrowDown' || e.key === 'ArrowUp') && 'setOpen' in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n }\n if (disableArrowNavigation) return;\n switch(e.key){\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n if (ref.current) {\n let target = e.target;\n let prev = $3dfb0f96be0d6a08$var$findNextSegment(ref.current, target.getBoundingClientRect().left, -1);\n if (prev) prev.focus();\n }\n } else focusManager.focusPrevious();\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n if (ref.current) {\n let target = e.target;\n let next = $3dfb0f96be0d6a08$var$findNextSegment(ref.current, target.getBoundingClientRect().left, 1);\n if (next) next.focus();\n }\n } else focusManager.focusNext();\n break;\n }\n };\n // Focus the first placeholder segment from the end on mouse down/touch up in the field.\n let focusLast = ()=>{\n var _window_event;\n if (!ref.current) return;\n // Try to find the segment prior to the element that was clicked on.\n let target = (_window_event = window.event) === null || _window_event === void 0 ? void 0 : _window_event.target;\n let walker = (0, $7CEvq$getFocusableTreeWalker)(ref.current, {\n tabbable: true\n });\n if (target) {\n walker.currentNode = target;\n target = walker.previousNode();\n }\n // If no target found, find the last element from the end.\n if (!target) {\n let last;\n do {\n last = walker.lastChild();\n if (last) target = last;\n }while (last);\n }\n // Now go backwards until we find an element that is not a placeholder.\n while(target === null || target === void 0 ? void 0 : target.hasAttribute('data-placeholder')){\n let prev = walker.previousNode();\n if (prev && prev.hasAttribute('data-placeholder')) target = prev;\n else break;\n }\n if (target) target.focus();\n };\n let { pressProps: pressProps } = (0, $7CEvq$usePress)({\n preventFocusOnPress: true,\n allowTextSelectionOnPress: true,\n onPressStart (e) {\n if (e.pointerType === 'mouse') focusLast();\n },\n onPress (e) {\n if (e.pointerType === 'touch' || e.pointerType === 'pen') focusLast();\n }\n });\n return (0, $7CEvq$mergeProps)(pressProps, {\n onKeyDown: onKeyDown\n });\n}\nfunction $3dfb0f96be0d6a08$var$findNextSegment(group, fromX, direction) {\n let walker = (0, $7CEvq$getFocusableTreeWalker)(group, {\n tabbable: true\n });\n let node = walker.nextNode();\n let closest = null;\n let closestDistance = Infinity;\n while(node){\n let x = node.getBoundingClientRect().left;\n let distance = x - fromX;\n let absoluteDistance = Math.abs(distance);\n if (Math.sign(distance) === direction && absoluteDistance < closestDistance) {\n closest = node;\n closestDistance = absoluteDistance;\n }\n node = walker.nextNode();\n }\n return closest;\n}\n\n\nexport {$3dfb0f96be0d6a08$export$4a931266a3838b86 as useDatePickerGroup};\n//# sourceMappingURL=useDatePickerGroup.module.js.map\n","import {useLabel as $d191a55c9702f145$export$8467354a121f1b9f} from \"./useLabel.mjs\";\nimport {useSlotId as $2kC82$useSlotId, mergeProps as $2kC82$mergeProps} from \"@react-aria/utils\";\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $2baaea4c71418dea$export$294aa081a6c6f55d(props) {\n let { description: description, errorMessage: errorMessage, isInvalid: isInvalid, validationState: validationState } = props;\n let { labelProps: labelProps, fieldProps: fieldProps } = (0, $d191a55c9702f145$export$8467354a121f1b9f)(props);\n let descriptionId = (0, $2kC82$useSlotId)([\n Boolean(description),\n Boolean(errorMessage),\n isInvalid,\n validationState\n ]);\n let errorMessageId = (0, $2kC82$useSlotId)([\n Boolean(description),\n Boolean(errorMessage),\n isInvalid,\n validationState\n ]);\n fieldProps = (0, $2kC82$mergeProps)(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n return {\n labelProps: labelProps,\n fieldProps: fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n\n\nexport {$2baaea4c71418dea$export$294aa081a6c6f55d as useField};\n//# sourceMappingURL=useField.module.js.map\n","import {setInteractionModality as $9Gacy$setInteractionModality} from \"@react-aria/interactions\";\nimport {useRef as $9Gacy$useRef, useEffect as $9Gacy$useEffect} from \"react\";\nimport {useLayoutEffect as $9Gacy$useLayoutEffect, useEffectEvent as $9Gacy$useEffectEvent} from \"@react-aria/utils\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $e93e671b31057976$export$b8473d3665f3a75a(props, state, ref) {\n let { validationBehavior: validationBehavior, focus: focus } = props;\n // This is a useLayoutEffect so that it runs before the useEffect in useFormValidationState, which commits the validation change.\n (0, $9Gacy$useLayoutEffect)(()=>{\n if (validationBehavior === 'native' && (ref === null || ref === void 0 ? void 0 : ref.current) && !ref.current.disabled) {\n let errorMessage = state.realtimeValidation.isInvalid ? state.realtimeValidation.validationErrors.join(' ') || 'Invalid value.' : '';\n ref.current.setCustomValidity(errorMessage);\n // Prevent default tooltip for validation message.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=605277\n if (!ref.current.hasAttribute('title')) ref.current.title = '';\n if (!state.realtimeValidation.isInvalid) state.updateValidation($e93e671b31057976$var$getNativeValidity(ref.current));\n }\n });\n let isIgnoredReset = (0, $9Gacy$useRef)(false);\n let onReset = (0, $9Gacy$useEffectEvent)(()=>{\n if (!isIgnoredReset.current) state.resetValidation();\n });\n let onInvalid = (0, $9Gacy$useEffectEvent)((e)=>{\n var _ref_current;\n // Only commit validation if we are not already displaying one.\n // This avoids clearing server errors that the user didn't actually fix.\n if (!state.displayValidation.isInvalid) state.commitValidation();\n // Auto focus the first invalid input in a form, unless the error already had its default prevented.\n let form = ref === null || ref === void 0 ? void 0 : (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.form;\n if (!e.defaultPrevented && ref && form && $e93e671b31057976$var$getFirstInvalidInput(form) === ref.current) {\n var _ref_current1;\n if (focus) focus();\n else (_ref_current1 = ref.current) === null || _ref_current1 === void 0 ? void 0 : _ref_current1.focus();\n // Always show focus ring.\n (0, $9Gacy$setInteractionModality)('keyboard');\n }\n // Prevent default browser error UI from appearing.\n e.preventDefault();\n });\n let onChange = (0, $9Gacy$useEffectEvent)(()=>{\n state.commitValidation();\n });\n (0, $9Gacy$useEffect)(()=>{\n let input = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!input) return;\n let form = input.form;\n let reset = form === null || form === void 0 ? void 0 : form.reset;\n if (form) // Try to detect React's automatic form reset behavior so we don't clear\n // validation errors that are returned by server actions.\n // To do this, we ignore programmatic form resets that occur outside a user event.\n // This is best-effort. There may be false positives, e.g. setTimeout.\n form.reset = ()=>{\n // React uses MessageChannel for scheduling, so ignore 'message' events.\n isIgnoredReset.current = !window.event || window.event.type === 'message' && window.event.target instanceof MessagePort;\n reset === null || reset === void 0 ? void 0 : reset.call(form);\n isIgnoredReset.current = false;\n };\n input.addEventListener('invalid', onInvalid);\n input.addEventListener('change', onChange);\n form === null || form === void 0 ? void 0 : form.addEventListener('reset', onReset);\n return ()=>{\n input.removeEventListener('invalid', onInvalid);\n input.removeEventListener('change', onChange);\n form === null || form === void 0 ? void 0 : form.removeEventListener('reset', onReset);\n if (form) // @ts-ignore\n form.reset = reset;\n };\n }, [\n ref,\n onInvalid,\n onChange,\n onReset,\n validationBehavior\n ]);\n}\nfunction $e93e671b31057976$var$getValidity(input) {\n // The native ValidityState object is live, meaning each property is a getter that returns the current state.\n // We need to create a snapshot of the validity state at the time this function is called to avoid unpredictable React renders.\n let validity = input.validity;\n return {\n badInput: validity.badInput,\n customError: validity.customError,\n patternMismatch: validity.patternMismatch,\n rangeOverflow: validity.rangeOverflow,\n rangeUnderflow: validity.rangeUnderflow,\n stepMismatch: validity.stepMismatch,\n tooLong: validity.tooLong,\n tooShort: validity.tooShort,\n typeMismatch: validity.typeMismatch,\n valueMissing: validity.valueMissing,\n valid: validity.valid\n };\n}\nfunction $e93e671b31057976$var$getNativeValidity(input) {\n return {\n isInvalid: !input.validity.valid,\n validationDetails: $e93e671b31057976$var$getValidity(input),\n validationErrors: input.validationMessage ? [\n input.validationMessage\n ] : []\n };\n}\nfunction $e93e671b31057976$var$getFirstInvalidInput(form) {\n for(let i = 0; i < form.elements.length; i++){\n let element = form.elements[i];\n if (!element.validity.valid) return element;\n }\n return null;\n}\n\n\nexport {$e93e671b31057976$export$b8473d3665f3a75a as useFormValidation};\n//# sourceMappingURL=useFormValidation.module.js.map\n","import $7Gzdi$intlStringsmodulejs from \"./intlStrings.mjs\";\nimport {useDatePickerGroup as $3dfb0f96be0d6a08$export$4a931266a3838b86} from \"./useDatePickerGroup.mjs\";\nimport {createFocusManager as $7Gzdi$createFocusManager} from \"@react-aria/focus\";\nimport {useDescription as $7Gzdi$useDescription, mergeProps as $7Gzdi$mergeProps, useFormReset as $7Gzdi$useFormReset, filterDOMProps as $7Gzdi$filterDOMProps} from \"@react-aria/utils\";\nimport {useRef as $7Gzdi$useRef, useMemo as $7Gzdi$useMemo, useEffect as $7Gzdi$useEffect} from \"react\";\nimport {useField as $7Gzdi$useField} from \"@react-aria/label\";\nimport {useFocusWithin as $7Gzdi$useFocusWithin} from \"@react-aria/interactions\";\nimport {useFormValidation as $7Gzdi$useFormValidation} from \"@react-aria/form\";\nimport {useLocalizedStringFormatter as $7Gzdi$useLocalizedStringFormatter} from \"@react-aria/i18n\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\n\nconst $16f0b7bb276bc17e$export$653eddfc964b0f8a = new WeakMap();\nconst $16f0b7bb276bc17e$export$300019f83c56d282 = '__role_' + Date.now();\nconst $16f0b7bb276bc17e$export$7b3062cd49e80452 = '__focusManager_' + Date.now();\nfunction $16f0b7bb276bc17e$export$5591b0b878c1a989(props, state, ref) {\n var _state_value;\n let { isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = state.displayValidation;\n let { labelProps: labelProps, fieldProps: fieldProps, descriptionProps: descriptionProps, errorMessageProps: errorMessageProps } = (0, $7Gzdi$useField)({\n ...props,\n labelElementType: 'span',\n isInvalid: isInvalid,\n errorMessage: props.errorMessage || validationErrors\n });\n let valueOnFocus = (0, $7Gzdi$useRef)(null);\n let { focusWithinProps: focusWithinProps } = (0, $7Gzdi$useFocusWithin)({\n ...props,\n onFocusWithin (e) {\n var _props_onFocus;\n valueOnFocus.current = state.value;\n (_props_onFocus = props.onFocus) === null || _props_onFocus === void 0 ? void 0 : _props_onFocus.call(props, e);\n },\n onBlurWithin: (e)=>{\n var _props_onBlur;\n state.confirmPlaceholder();\n if (state.value !== valueOnFocus.current) state.commitValidation();\n (_props_onBlur = props.onBlur) === null || _props_onBlur === void 0 ? void 0 : _props_onBlur.call(props, e);\n },\n onFocusWithinChange: props.onFocusChange\n });\n let stringFormatter = (0, $7Gzdi$useLocalizedStringFormatter)((0, ($parcel$interopDefault($7Gzdi$intlStringsmodulejs))), '@react-aria/datepicker');\n let message = state.maxGranularity === 'hour' ? 'selectedTimeDescription' : 'selectedDateDescription';\n let field = state.maxGranularity === 'hour' ? 'time' : 'date';\n let description = state.value ? stringFormatter.format(message, {\n [field]: state.formatValue({\n month: 'long'\n })\n }) : '';\n let descProps = (0, $7Gzdi$useDescription)(description);\n // If within a date picker or date range picker, the date field will have role=\"presentation\" and an aria-describedby\n // will be passed in that references the value (e.g. entire range). Otherwise, add the field's value description.\n let describedBy = props[$16f0b7bb276bc17e$export$300019f83c56d282] === 'presentation' ? fieldProps['aria-describedby'] : [\n descProps['aria-describedby'],\n fieldProps['aria-describedby']\n ].filter(Boolean).join(' ') || undefined;\n let propsFocusManager = props[$16f0b7bb276bc17e$export$7b3062cd49e80452];\n let focusManager = (0, $7Gzdi$useMemo)(()=>propsFocusManager || (0, $7Gzdi$createFocusManager)(ref), [\n propsFocusManager,\n ref\n ]);\n let groupProps = (0, $3dfb0f96be0d6a08$export$4a931266a3838b86)(state, ref, props[$16f0b7bb276bc17e$export$300019f83c56d282] === 'presentation');\n // Pass labels and other information to segments.\n $16f0b7bb276bc17e$export$653eddfc964b0f8a.set(state, {\n ariaLabel: props['aria-label'],\n ariaLabelledBy: [\n labelProps.id,\n props['aria-labelledby']\n ].filter(Boolean).join(' ') || undefined,\n ariaDescribedBy: describedBy,\n focusManager: focusManager\n });\n let autoFocusRef = (0, $7Gzdi$useRef)(props.autoFocus);\n // When used within a date picker or date range picker, the field gets role=\"presentation\"\n // rather than role=\"group\". Since the date picker/date range picker already has a role=\"group\"\n // with a label and description, and the segments are already labeled by this as well, this\n // avoids very verbose duplicate announcements.\n let fieldDOMProps;\n if (props[$16f0b7bb276bc17e$export$300019f83c56d282] === 'presentation') fieldDOMProps = {\n role: 'presentation'\n };\n else fieldDOMProps = (0, $7Gzdi$mergeProps)(fieldProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || undefined,\n 'aria-describedby': describedBy\n });\n (0, $7Gzdi$useEffect)(()=>{\n if (autoFocusRef.current) focusManager.focusFirst();\n autoFocusRef.current = false;\n }, [\n focusManager\n ]);\n (0, $7Gzdi$useFormReset)(props.inputRef, state.defaultValue, state.setValue);\n (0, $7Gzdi$useFormValidation)({\n ...props,\n focus () {\n focusManager.focusFirst();\n }\n }, state, props.inputRef);\n let inputProps = {\n type: 'hidden',\n name: props.name,\n form: props.form,\n value: ((_state_value = state.value) === null || _state_value === void 0 ? void 0 : _state_value.toString()) || '',\n disabled: props.isDisabled\n };\n if (props.validationBehavior === 'native') {\n // Use a hidden <input type=\"text\"> rather than <input type=\"hidden\">\n // so that an empty value blocks HTML form submission when the field is required.\n inputProps.type = 'text';\n inputProps.hidden = true;\n inputProps.required = props.isRequired;\n // Ignore react warning.\n inputProps.onChange = ()=>{};\n }\n let domProps = (0, $7Gzdi$filterDOMProps)(props);\n return {\n labelProps: {\n ...labelProps,\n onClick: ()=>{\n focusManager.focusFirst();\n }\n },\n fieldProps: (0, $7Gzdi$mergeProps)(domProps, fieldDOMProps, groupProps, focusWithinProps, {\n onKeyDown (e) {\n if (props.onKeyDown) props.onKeyDown(e);\n },\n onKeyUp (e) {\n if (props.onKeyUp) props.onKeyUp(e);\n },\n style: {\n unicodeBidi: 'isolate'\n }\n }),\n inputProps: inputProps,\n descriptionProps: descriptionProps,\n errorMessageProps: errorMessageProps,\n isInvalid: isInvalid,\n validationErrors: validationErrors,\n validationDetails: validationDetails\n };\n}\nfunction $16f0b7bb276bc17e$export$4c842f6a241dc825(props, state, ref) {\n var _state_timeValue;\n let res = $16f0b7bb276bc17e$export$5591b0b878c1a989(props, state, ref);\n res.inputProps.value = ((_state_timeValue = state.timeValue) === null || _state_timeValue === void 0 ? void 0 : _state_timeValue.toString()) || '';\n return res;\n}\n\n\nexport {$16f0b7bb276bc17e$export$653eddfc964b0f8a as hookData, $16f0b7bb276bc17e$export$300019f83c56d282 as roleSymbol, $16f0b7bb276bc17e$export$7b3062cd49e80452 as focusManagerSymbol, $16f0b7bb276bc17e$export$5591b0b878c1a989 as useDateField, $16f0b7bb276bc17e$export$4c842f6a241dc825 as useTimeField};\n//# sourceMappingURL=useDateField.module.js.map\n","import {createContext as $69F46$createContext, useMemo as $69F46$useMemo, useContext as $69F46$useContext, useState as $69F46$useState, useRef as $69F46$useRef, useEffect as $69F46$useEffect} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $e5be200c675c3b3a$export$aca958c65c314e6c = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valueMissing: false,\n valid: true\n};\nconst $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c,\n customError: true,\n valid: false\n};\nconst $e5be200c675c3b3a$export$dad6ae84456c676a = {\n isInvalid: false,\n validationDetails: $e5be200c675c3b3a$export$aca958c65c314e6c,\n validationErrors: []\n};\nconst $e5be200c675c3b3a$export$571b5131b7e65c11 = (0, $69F46$createContext)({});\nconst $e5be200c675c3b3a$export$a763b9476acd3eb = '__formValidationState' + Date.now();\nfunction $e5be200c675c3b3a$export$fc1a364ae1f3ff10(props) {\n // Private prop for parent components to pass state to children.\n if (props[$e5be200c675c3b3a$export$a763b9476acd3eb]) {\n let { realtimeValidation: realtimeValidation, displayValidation: displayValidation, updateValidation: updateValidation, resetValidation: resetValidation, commitValidation: commitValidation } = props[$e5be200c675c3b3a$export$a763b9476acd3eb];\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation: updateValidation,\n resetValidation: resetValidation,\n commitValidation: commitValidation\n };\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return $e5be200c675c3b3a$var$useFormValidationStateImpl(props);\n}\nfunction $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {\n let { isInvalid: isInvalid, validationState: validationState, name: name, value: value, builtinValidation: builtinValidation, validate: validate, validationBehavior: validationBehavior = 'aria' } = props;\n // backward compatibility.\n if (validationState) isInvalid || (isInvalid = validationState === 'invalid');\n // If the isInvalid prop is controlled, update validation result in realtime.\n let controlledError = isInvalid !== undefined ? {\n isInvalid: isInvalid,\n validationErrors: [],\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n // Perform custom client side validation.\n let clientError = (0, $69F46$useMemo)(()=>{\n if (!validate || value == null) return null;\n let validateErrors = $e5be200c675c3b3a$var$runValidate(validate, value);\n return $e5be200c675c3b3a$var$getValidationResult(validateErrors);\n }, [\n validate,\n value\n ]);\n if (builtinValidation === null || builtinValidation === void 0 ? void 0 : builtinValidation.validationDetails.valid) builtinValidation = undefined;\n // Get relevant server errors from the form.\n let serverErrors = (0, $69F46$useContext)($e5be200c675c3b3a$export$571b5131b7e65c11);\n let serverErrorMessages = (0, $69F46$useMemo)(()=>{\n if (name) return Array.isArray(name) ? name.flatMap((name)=>$e5be200c675c3b3a$var$asArray(serverErrors[name])) : $e5be200c675c3b3a$var$asArray(serverErrors[name]);\n return [];\n }, [\n serverErrors,\n name\n ]);\n // Show server errors when the form gets a new value, and clear when the user changes the value.\n let [lastServerErrors, setLastServerErrors] = (0, $69F46$useState)(serverErrors);\n let [isServerErrorCleared, setServerErrorCleared] = (0, $69F46$useState)(false);\n if (serverErrors !== lastServerErrors) {\n setLastServerErrors(serverErrors);\n setServerErrorCleared(false);\n }\n let serverError = (0, $69F46$useMemo)(()=>$e5be200c675c3b3a$var$getValidationResult(isServerErrorCleared ? [] : serverErrorMessages), [\n isServerErrorCleared,\n serverErrorMessages\n ]);\n // Track the next validation state in a ref until commitValidation is called.\n let nextValidation = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let [currentValidity, setCurrentValidity] = (0, $69F46$useState)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let lastError = (0, $69F46$useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);\n let commitValidation = ()=>{\n if (!commitQueued) return;\n setCommitQueued(false);\n let error = clientError || builtinValidation || nextValidation.current;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n };\n let [commitQueued, setCommitQueued] = (0, $69F46$useState)(false);\n (0, $69F46$useEffect)(commitValidation);\n // realtimeValidation is used to update the native input element's state based on custom validation logic.\n // displayValidation is the currently displayed validation state that the user sees (e.g. on input change/form submit).\n // With validationBehavior=\"aria\", all errors are displayed in realtime rather than on submit.\n let realtimeValidation = controlledError || serverError || clientError || builtinValidation || $e5be200c675c3b3a$export$dad6ae84456c676a;\n let displayValidation = validationBehavior === 'native' ? controlledError || serverError || currentValidity : controlledError || serverError || clientError || builtinValidation || currentValidity;\n return {\n realtimeValidation: realtimeValidation,\n displayValidation: displayValidation,\n updateValidation (value) {\n // If validationBehavior is 'aria', update in realtime. Otherwise, store in a ref until commit.\n if (validationBehavior === 'aria' && !$e5be200c675c3b3a$var$isEqualValidation(currentValidity, value)) setCurrentValidity(value);\n else nextValidation.current = value;\n },\n resetValidation () {\n // Update the currently displayed validation state to valid on form reset,\n // even if the native validity says it isn't. It'll show again on the next form submit.\n let error = $e5be200c675c3b3a$export$dad6ae84456c676a;\n if (!$e5be200c675c3b3a$var$isEqualValidation(error, lastError.current)) {\n lastError.current = error;\n setCurrentValidity(error);\n }\n // Do not commit validation after the next render. This avoids a condition where\n // useSelect calls commitValidation inside an onReset handler.\n if (validationBehavior === 'native') setCommitQueued(false);\n setServerErrorCleared(true);\n },\n commitValidation () {\n // Commit validation state so the user sees it on blur/change/submit. Also clear any server errors.\n // Wait until after the next render to commit so that the latest value has been validated.\n if (validationBehavior === 'native') setCommitQueued(true);\n setServerErrorCleared(true);\n }\n };\n}\nfunction $e5be200c675c3b3a$var$asArray(v) {\n if (!v) return [];\n return Array.isArray(v) ? v : [\n v\n ];\n}\nfunction $e5be200c675c3b3a$var$runValidate(validate, value) {\n if (typeof validate === 'function') {\n let e = validate(value);\n if (e && typeof e !== 'boolean') return $e5be200c675c3b3a$var$asArray(e);\n }\n return [];\n}\nfunction $e5be200c675c3b3a$var$getValidationResult(errors) {\n return errors.length ? {\n isInvalid: true,\n validationErrors: errors,\n validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE\n } : null;\n}\nfunction $e5be200c675c3b3a$var$isEqualValidation(a, b) {\n if (a === b) return true;\n return !!a && !!b && a.isInvalid === b.isInvalid && a.validationErrors.length === b.validationErrors.length && a.validationErrors.every((a, i)=>a === b.validationErrors[i]) && Object.entries(a.validationDetails).every(([k, v])=>b.validationDetails[k] === v);\n}\nfunction $e5be200c675c3b3a$export$75ee7c75d68f5b0e(...results) {\n let errors = new Set();\n let isInvalid = false;\n let validationDetails = {\n ...$e5be200c675c3b3a$export$aca958c65c314e6c\n };\n for (let v of results){\n var _validationDetails, _key;\n for (let e of v.validationErrors)errors.add(e);\n // Only these properties apply for checkboxes.\n isInvalid || (isInvalid = v.isInvalid);\n for(let key in validationDetails)(_validationDetails = validationDetails)[_key = key] || (_validationDetails[_key] = v.validationDetails[key]);\n }\n validationDetails.valid = !isInvalid;\n return {\n isInvalid: isInvalid,\n validationErrors: [\n ...errors\n ],\n validationDetails: validationDetails\n };\n}\n\n\nexport {$e5be200c675c3b3a$export$aca958c65c314e6c as VALID_VALIDITY_STATE, $e5be200c675c3b3a$export$dad6ae84456c676a as DEFAULT_VALIDATION_RESULT, $e5be200c675c3b3a$export$571b5131b7e65c11 as FormValidationContext, $e5be200c675c3b3a$export$a763b9476acd3eb as privateValidationStateProp, $e5be200c675c3b3a$export$fc1a364ae1f3ff10 as useFormValidationState, $e5be200c675c3b3a$export$75ee7c75d68f5b0e as mergeValidation};\n//# sourceMappingURL=useFormValidationState.module.js.map\n","import $jR5iF$intlStringsmodulejs from \"./intlStrings.mjs\";\nimport {useLocale as $jR5iF$useLocale, useLocalizedStringDictionary as $jR5iF$useLocalizedStringDictionary} from \"@react-aria/i18n\";\nimport {useMemo as $jR5iF$useMemo} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // @ts-ignore\n\n\n\nfunction $3aeceb3a64eb8358$export$d42c60378c8168f8() {\n let { locale: locale } = (0, $jR5iF$useLocale)();\n let dictionary = (0, $jR5iF$useLocalizedStringDictionary)((0, ($parcel$interopDefault($jR5iF$intlStringsmodulejs))), '@react-aria/datepicker');\n return (0, $jR5iF$useMemo)(()=>{\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the dateTimeField\n // type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n return new Intl.DisplayNames(locale, {\n type: 'dateTimeField'\n });\n } catch {\n return new $3aeceb3a64eb8358$var$DisplayNamesPolyfill(locale, dictionary);\n }\n }, [\n locale,\n dictionary\n ]);\n}\nclass $3aeceb3a64eb8358$var$DisplayNamesPolyfill {\n of(field) {\n return this.dictionary.getStringForLocale(field, this.locale);\n }\n constructor(locale, dictionary){\n this.locale = locale;\n this.dictionary = dictionary;\n }\n}\n\n\nexport {$3aeceb3a64eb8358$export$d42c60378c8168f8 as useDisplayNames};\n//# sourceMappingURL=useDisplayNames.module.js.map\n","var $ed6aae4e5f766f1e$exports = {};\n$ed6aae4e5f766f1e$exports = {\n \"Empty\": `\\u{641}\\u{627}\\u{631}\\u{63A}`\n};\n\n\nexport {$ed6aae4e5f766f1e$exports as default};\n//# sourceMappingURL=ar-AE.module.js.map\n","var $38854e2b175151fa$exports = {};\n$38854e2b175151fa$exports = {\n \"Empty\": `\\u{418}\\u{437}\\u{43F}\\u{440}\\u{430}\\u{437}\\u{43D}\\u{438}`\n};\n\n\nexport {$38854e2b175151fa$exports as default};\n//# sourceMappingURL=bg-BG.module.js.map\n","var $15b25ab20f3945b2$exports = {};\n$15b25ab20f3945b2$exports = {\n \"Empty\": `Pr\\xe1zdn\\xe9`\n};\n\n\nexport {$15b25ab20f3945b2$exports as default};\n//# sourceMappingURL=cs-CZ.module.js.map\n","var $692a4298b6b649a2$exports = {};\n$692a4298b6b649a2$exports = {\n \"Empty\": `Tom`\n};\n\n\nexport {$692a4298b6b649a2$exports as default};\n//# sourceMappingURL=da-DK.module.js.map\n","var $1c6e1539193f1243$exports = {};\n$1c6e1539193f1243$exports = {\n \"Empty\": `Leer`\n};\n\n\nexport {$1c6e1539193f1243$exports as default};\n//# sourceMappingURL=de-DE.module.js.map\n","var $1e8678632c464b6d$exports = {};\n$1e8678632c464b6d$exports = {\n \"Empty\": `\\u{386}\\u{3B4}\\u{3B5}\\u{3B9}\\u{3BF}`\n};\n\n\nexport {$1e8678632c464b6d$exports as default};\n//# sourceMappingURL=el-GR.module.js.map\n","var $4adc85d9bf5b9eed$exports = {};\n$4adc85d9bf5b9eed$exports = {\n \"Empty\": `Empty`\n};\n\n\nexport {$4adc85d9bf5b9eed$exports as default};\n//# sourceMappingURL=en-US.module.js.map\n","var $41c4b2bb61dafbca$exports = {};\n$41c4b2bb61dafbca$exports = {\n \"Empty\": `Vac\\xedo`\n};\n\n\nexport {$41c4b2bb61dafbca$exports as default};\n//# sourceMappingURL=es-ES.module.js.map\n","var $405f8b24f5dd2a60$exports = {};\n$405f8b24f5dd2a60$exports = {\n \"Empty\": `T\\xfchjenda`\n};\n\n\nexport {$405f8b24f5dd2a60$exports as default};\n//# sourceMappingURL=et-EE.module.js.map\n","var $7efe3ed02b9b9dd4$exports = {};\n$7efe3ed02b9b9dd4$exports = {\n \"Empty\": `Tyhj\\xe4`\n};\n\n\nexport {$7efe3ed02b9b9dd4$exports as default};\n//# sourceMappingURL=fi-FI.module.js.map\n","var $99fc4c101d92daf3$exports = {};\n$99fc4c101d92daf3$exports = {\n \"Empty\": `Vide`\n};\n\n\nexport {$99fc4c101d92daf3$exports as default};\n//# sourceMappingURL=fr-FR.module.js.map\n","var $f9e155e6e8cacaa2$exports = {};\n$f9e155e6e8cacaa2$exports = {\n \"Empty\": `\\u{5E8}\\u{5D9}\\u{5E7}`\n};\n\n\nexport {$f9e155e6e8cacaa2$exports as default};\n//# sourceMappingURL=he-IL.module.js.map\n","var $c31b5e8e9a249fd5$exports = {};\n$c31b5e8e9a249fd5$exports = {\n \"Empty\": `Prazno`\n};\n\n\nexport {$c31b5e8e9a249fd5$exports as default};\n//# sourceMappingURL=hr-HR.module.js.map\n","var $9c5435bc17499bd9$exports = {};\n$9c5435bc17499bd9$exports = {\n \"Empty\": `\\xdcres`\n};\n\n\nexport {$9c5435bc17499bd9$exports as default};\n//# sourceMappingURL=hu-HU.module.js.map\n","var $6d1fc8e84d8165e1$exports = {};\n$6d1fc8e84d8165e1$exports = {\n \"Empty\": `Vuoto`\n};\n\n\nexport {$6d1fc8e84d8165e1$exports as default};\n//# sourceMappingURL=it-IT.module.js.map\n","var $46ea6b3641b83e71$exports = {};\n$46ea6b3641b83e71$exports = {\n \"Empty\": `\\u{7A7A}`\n};\n\n\nexport {$46ea6b3641b83e71$exports as default};\n//# sourceMappingURL=ja-JP.module.js.map\n","var $0e3cc9a288289dc5$exports = {};\n$0e3cc9a288289dc5$exports = {\n \"Empty\": `\\u{BE44}\\u{C5B4} \\u{C788}\\u{C74C}`\n};\n\n\nexport {$0e3cc9a288289dc5$exports as default};\n//# sourceMappingURL=ko-KR.module.js.map\n","var $4ff2bb25c0089ffb$exports = {};\n$4ff2bb25c0089ffb$exports = {\n \"Empty\": `Tu\\u{161}\\u{10D}ias`\n};\n\n\nexport {$4ff2bb25c0089ffb$exports as default};\n//# sourceMappingURL=lt-LT.module.js.map\n","var $6cf33cd4c010a2fb$exports = {};\n$6cf33cd4c010a2fb$exports = {\n \"Empty\": `Tuk\\u{161}s`\n};\n\n\nexport {$6cf33cd4c010a2fb$exports as default};\n//# sourceMappingURL=lv-LV.module.js.map\n","var $5a9f8486f8b8837e$exports = {};\n$5a9f8486f8b8837e$exports = {\n \"Empty\": `Tom`\n};\n\n\nexport {$5a9f8486f8b8837e$exports as default};\n//# sourceMappingURL=nb-NO.module.js.map\n","var $583f94d807f6ecea$exports = {};\n$583f94d807f6ecea$exports = {\n \"Empty\": `Leeg`\n};\n\n\nexport {$583f94d807f6ecea$exports as default};\n//# sourceMappingURL=nl-NL.module.js.map\n","var $cc4dcfeea2b4050d$exports = {};\n$cc4dcfeea2b4050d$exports = {\n \"Empty\": `Pusty`\n};\n\n\nexport {$cc4dcfeea2b4050d$exports as default};\n//# sourceMappingURL=pl-PL.module.js.map\n","var $68ac2954d56e12b4$exports = {};\n$68ac2954d56e12b4$exports = {\n \"Empty\": `Vazio`\n};\n\n\nexport {$68ac2954d56e12b4$exports as default};\n//# sourceMappingURL=pt-BR.module.js.map\n","var $fdb0616f309780b0$exports = {};\n$fdb0616f309780b0$exports = {\n \"Empty\": `Vazio`\n};\n\n\nexport {$fdb0616f309780b0$exports as default};\n//# sourceMappingURL=pt-PT.module.js.map\n","var $fe1eccf4ee1d6f52$exports = {};\n$fe1eccf4ee1d6f52$exports = {\n \"Empty\": `Gol`\n};\n\n\nexport {$fe1eccf4ee1d6f52$exports as default};\n//# sourceMappingURL=ro-RO.module.js.map\n","var $a38b6c4e18725976$exports = {};\n$a38b6c4e18725976$exports = {\n \"Empty\": `\\u{41D}\\u{435} \\u{437}\\u{430}\\u{43F}\\u{43E}\\u{43B}\\u{43D}\\u{435}\\u{43D}\\u{43E}`\n};\n\n\nexport {$a38b6c4e18725976$exports as default};\n//# sourceMappingURL=ru-RU.module.js.map\n","var $6c14ae2b766b652c$exports = {};\n$6c14ae2b766b652c$exports = {\n \"Empty\": `Pr\\xe1zdne`\n};\n\n\nexport {$6c14ae2b766b652c$exports as default};\n//# sourceMappingURL=sk-SK.module.js.map\n","var $8f1c9692e16dc5eb$exports = {};\n$8f1c9692e16dc5eb$exports = {\n \"Empty\": `Prazen`\n};\n\n\nexport {$8f1c9692e16dc5eb$exports as default};\n//# sourceMappingURL=sl-SI.module.js.map\n","var $d2aa7abea627cafa$exports = {};\n$d2aa7abea627cafa$exports = {\n \"Empty\": `Prazno`\n};\n\n\nexport {$d2aa7abea627cafa$exports as default};\n//# sourceMappingURL=sr-SP.module.js.map\n","var $676b82e4b56408e6$exports = {};\n$676b82e4b56408e6$exports = {\n \"Empty\": `Tomt`\n};\n\n\nexport {$676b82e4b56408e6$exports as default};\n//# sourceMappingURL=sv-SE.module.js.map\n","var $14c9042552d7ce08$exports = {};\n$14c9042552d7ce08$exports = {\n \"Empty\": `Bo\\u{15F}`\n};\n\n\nexport {$14c9042552d7ce08$exports as default};\n//# sourceMappingURL=tr-TR.module.js.map\n","var $393254ebcb66c9f5$exports = {};\n$393254ebcb66c9f5$exports = {\n \"Empty\": `\\u{41F}\\u{443}\\u{441}\\u{442}\\u{43E}`\n};\n\n\nexport {$393254ebcb66c9f5$exports as default};\n//# sourceMappingURL=uk-UA.module.js.map\n","var $d49d621f310cf6ce$exports = {};\n$d49d621f310cf6ce$exports = {\n \"Empty\": `\\u{7A7A}`\n};\n\n\nexport {$d49d621f310cf6ce$exports as default};\n//# sourceMappingURL=zh-CN.module.js.map\n","var $94b60c866ca5dfe6$exports = {};\n$94b60c866ca5dfe6$exports = {\n \"Empty\": `\\u{7A7A}\\u{767D}`\n};\n\n\nexport {$94b60c866ca5dfe6$exports as default};\n//# sourceMappingURL=zh-TW.module.js.map\n","import $894vb$arAEmodulejs from \"./ar-AE.mjs\";\nimport $894vb$bgBGmodulejs from \"./bg-BG.mjs\";\nimport $894vb$csCZmodulejs from \"./cs-CZ.mjs\";\nimport $894vb$daDKmodulejs from \"./da-DK.mjs\";\nimport $894vb$deDEmodulejs from \"./de-DE.mjs\";\nimport $894vb$elGRmodulejs from \"./el-GR.mjs\";\nimport $894vb$enUSmodulejs from \"./en-US.mjs\";\nimport $894vb$esESmodulejs from \"./es-ES.mjs\";\nimport $894vb$etEEmodulejs from \"./et-EE.mjs\";\nimport $894vb$fiFImodulejs from \"./fi-FI.mjs\";\nimport $894vb$frFRmodulejs from \"./fr-FR.mjs\";\nimport $894vb$heILmodulejs from \"./he-IL.mjs\";\nimport $894vb$hrHRmodulejs from \"./hr-HR.mjs\";\nimport $894vb$huHUmodulejs from \"./hu-HU.mjs\";\nimport $894vb$itITmodulejs from \"./it-IT.mjs\";\nimport $894vb$jaJPmodulejs from \"./ja-JP.mjs\";\nimport $894vb$koKRmodulejs from \"./ko-KR.mjs\";\nimport $894vb$ltLTmodulejs from \"./lt-LT.mjs\";\nimport $894vb$lvLVmodulejs from \"./lv-LV.mjs\";\nimport $894vb$nbNOmodulejs from \"./nb-NO.mjs\";\nimport $894vb$nlNLmodulejs from \"./nl-NL.mjs\";\nimport $894vb$plPLmodulejs from \"./pl-PL.mjs\";\nimport $894vb$ptBRmodulejs from \"./pt-BR.mjs\";\nimport $894vb$ptPTmodulejs from \"./pt-PT.mjs\";\nimport $894vb$roROmodulejs from \"./ro-RO.mjs\";\nimport $894vb$ruRUmodulejs from \"./ru-RU.mjs\";\nimport $894vb$skSKmodulejs from \"./sk-SK.mjs\";\nimport $894vb$slSImodulejs from \"./sl-SI.mjs\";\nimport $894vb$srSPmodulejs from \"./sr-SP.mjs\";\nimport $894vb$svSEmodulejs from \"./sv-SE.mjs\";\nimport $894vb$trTRmodulejs from \"./tr-TR.mjs\";\nimport $894vb$ukUAmodulejs from \"./uk-UA.mjs\";\nimport $894vb$zhCNmodulejs from \"./zh-CN.mjs\";\nimport $894vb$zhTWmodulejs from \"./zh-TW.mjs\";\n\nvar $a99895ee3dc79e61$exports = {};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$a99895ee3dc79e61$exports = {\n \"ar-AE\": $894vb$arAEmodulejs,\n \"bg-BG\": $894vb$bgBGmodulejs,\n \"cs-CZ\": $894vb$csCZmodulejs,\n \"da-DK\": $894vb$daDKmodulejs,\n \"de-DE\": $894vb$deDEmodulejs,\n \"el-GR\": $894vb$elGRmodulejs,\n \"en-US\": $894vb$enUSmodulejs,\n \"es-ES\": $894vb$esESmodulejs,\n \"et-EE\": $894vb$etEEmodulejs,\n \"fi-FI\": $894vb$fiFImodulejs,\n \"fr-FR\": $894vb$frFRmodulejs,\n \"he-IL\": $894vb$heILmodulejs,\n \"hr-HR\": $894vb$hrHRmodulejs,\n \"hu-HU\": $894vb$huHUmodulejs,\n \"it-IT\": $894vb$itITmodulejs,\n \"ja-JP\": $894vb$jaJPmodulejs,\n \"ko-KR\": $894vb$koKRmodulejs,\n \"lt-LT\": $894vb$ltLTmodulejs,\n \"lv-LV\": $894vb$lvLVmodulejs,\n \"nb-NO\": $894vb$nbNOmodulejs,\n \"nl-NL\": $894vb$nlNLmodulejs,\n \"pl-PL\": $894vb$plPLmodulejs,\n \"pt-BR\": $894vb$ptBRmodulejs,\n \"pt-PT\": $894vb$ptPTmodulejs,\n \"ro-RO\": $894vb$roROmodulejs,\n \"ru-RU\": $894vb$ruRUmodulejs,\n \"sk-SK\": $894vb$skSKmodulejs,\n \"sl-SI\": $894vb$slSImodulejs,\n \"sr-SP\": $894vb$srSPmodulejs,\n \"sv-SE\": $894vb$svSEmodulejs,\n \"tr-TR\": $894vb$trTRmodulejs,\n \"uk-UA\": $894vb$ukUAmodulejs,\n \"zh-CN\": $894vb$zhCNmodulejs,\n \"zh-TW\": $894vb$zhTWmodulejs\n};\n\n\nexport {$a99895ee3dc79e61$exports as default};\n//# sourceMappingURL=intlStrings.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /* Inspired by https://github.com/AlmeroSteyn/react-aria-live */ const $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY = 7000;\nlet $319e236875307eab$var$liveAnnouncer = null;\nfunction $319e236875307eab$export$a9b970dcc4ae71a9(message, assertiveness = 'assertive', timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {\n if (!$319e236875307eab$var$liveAnnouncer) {\n $319e236875307eab$var$liveAnnouncer = new $319e236875307eab$var$LiveAnnouncer();\n // wait for the live announcer regions to be added to the dom, then announce\n // otherwise Safari won't announce the message if it's added too quickly\n // found most times less than 100ms were not consistent when announcing with Safari\n // IS_REACT_ACT_ENVIRONMENT is used by React 18. Previous versions checked for the `jest` global.\n // https://github.com/reactwg/react-18/discussions/102\n // if we're in a test environment, announce without waiting\n // @ts-ignore\n if (!(typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined')) setTimeout(()=>{\n if ($319e236875307eab$var$liveAnnouncer === null || $319e236875307eab$var$liveAnnouncer === void 0 ? void 0 : $319e236875307eab$var$liveAnnouncer.isAttached()) $319e236875307eab$var$liveAnnouncer === null || $319e236875307eab$var$liveAnnouncer === void 0 ? void 0 : $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);\n }, 100);\n else $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);\n } else $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);\n}\nfunction $319e236875307eab$export$d10ae4f68404609a(assertiveness) {\n if ($319e236875307eab$var$liveAnnouncer) $319e236875307eab$var$liveAnnouncer.clear(assertiveness);\n}\nfunction $319e236875307eab$export$d8686216b8b81b2f() {\n if ($319e236875307eab$var$liveAnnouncer) {\n $319e236875307eab$var$liveAnnouncer.destroy();\n $319e236875307eab$var$liveAnnouncer = null;\n }\n}\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass $319e236875307eab$var$LiveAnnouncer {\n isAttached() {\n var _this_node;\n return (_this_node = this.node) === null || _this_node === void 0 ? void 0 : _this_node.isConnected;\n }\n createLog(ariaLive) {\n let node = document.createElement('div');\n node.setAttribute('role', 'log');\n node.setAttribute('aria-live', ariaLive);\n node.setAttribute('aria-relevant', 'additions');\n return node;\n }\n destroy() {\n if (!this.node) return;\n document.body.removeChild(this.node);\n this.node = null;\n }\n announce(message, assertiveness = 'assertive', timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {\n var _this_assertiveLog, _this_politeLog;\n if (!this.node) return;\n let node = document.createElement('div');\n if (typeof message === 'object') {\n // To read an aria-labelledby, the element must have an appropriate role, such as img.\n node.setAttribute('role', 'img');\n node.setAttribute('aria-labelledby', message['aria-labelledby']);\n } else node.textContent = message;\n if (assertiveness === 'assertive') (_this_assertiveLog = this.assertiveLog) === null || _this_assertiveLog === void 0 ? void 0 : _this_assertiveLog.appendChild(node);\n else (_this_politeLog = this.politeLog) === null || _this_politeLog === void 0 ? void 0 : _this_politeLog.appendChild(node);\n if (message !== '') setTimeout(()=>{\n node.remove();\n }, timeout);\n }\n clear(assertiveness) {\n if (!this.node) return;\n if ((!assertiveness || assertiveness === 'assertive') && this.assertiveLog) this.assertiveLog.innerHTML = '';\n if ((!assertiveness || assertiveness === 'polite') && this.politeLog) this.politeLog.innerHTML = '';\n }\n constructor(){\n this.node = null;\n this.assertiveLog = null;\n this.politeLog = null;\n if (typeof document !== 'undefined') {\n this.node = document.createElement('div');\n this.node.dataset.liveAnnouncer = 'true';\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n whiteSpace: 'nowrap'\n });\n this.assertiveLog = this.createLog('assertive');\n this.node.appendChild(this.assertiveLog);\n this.politeLog = this.createLog('polite');\n this.node.appendChild(this.politeLog);\n document.body.prepend(this.node);\n }\n }\n}\n\n\nexport {$319e236875307eab$export$a9b970dcc4ae71a9 as announce, $319e236875307eab$export$d10ae4f68404609a as clearAnnouncer, $319e236875307eab$export$d8686216b8b81b2f as destroyAnnouncer};\n//# sourceMappingURL=LiveAnnouncer.module.js.map\n","import $5rwhf$intlStringsmodulejs from \"./intlStrings.mjs\";\nimport {clearAnnouncer as $5rwhf$clearAnnouncer, announce as $5rwhf$announce} from \"@react-aria/live-announcer\";\nimport {useRef as $5rwhf$useRef, useEffect as $5rwhf$useEffect} from \"react\";\nimport {useEffectEvent as $5rwhf$useEffectEvent, useGlobalListeners as $5rwhf$useGlobalListeners} from \"@react-aria/utils\";\nimport {useLocalizedStringFormatter as $5rwhf$useLocalizedStringFormatter} from \"@react-aria/i18n\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nfunction $d2e8511e6f209edf$export$e908e06f4b8e3402(props) {\n const _async = (0, $5rwhf$useRef)(undefined);\n let { value: value, textValue: textValue, minValue: minValue, maxValue: maxValue, isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired, onIncrement: onIncrement, onIncrementPage: onIncrementPage, onDecrement: onDecrement, onDecrementPage: onDecrementPage, onDecrementToMin: onDecrementToMin, onIncrementToMax: onIncrementToMax } = props;\n const stringFormatter = (0, $5rwhf$useLocalizedStringFormatter)((0, ($parcel$interopDefault($5rwhf$intlStringsmodulejs))), '@react-aria/spinbutton');\n const clearAsync = ()=>clearTimeout(_async.current);\n (0, $5rwhf$useEffect)(()=>{\n return ()=>clearAsync();\n }, []);\n let onKeyDown = (e)=>{\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || isReadOnly || e.nativeEvent.isComposing) return;\n switch(e.key){\n case 'PageUp':\n if (onIncrementPage) {\n e.preventDefault();\n onIncrementPage === null || onIncrementPage === void 0 ? void 0 : onIncrementPage();\n break;\n }\n // fallthrough!\n case 'ArrowUp':\n case 'Up':\n if (onIncrement) {\n e.preventDefault();\n onIncrement === null || onIncrement === void 0 ? void 0 : onIncrement();\n }\n break;\n case 'PageDown':\n if (onDecrementPage) {\n e.preventDefault();\n onDecrementPage === null || onDecrementPage === void 0 ? void 0 : onDecrementPage();\n break;\n }\n // fallthrough\n case 'ArrowDown':\n case 'Down':\n if (onDecrement) {\n e.preventDefault();\n onDecrement === null || onDecrement === void 0 ? void 0 : onDecrement();\n }\n break;\n case 'Home':\n if (onDecrementToMin) {\n e.preventDefault();\n onDecrementToMin === null || onDecrementToMin === void 0 ? void 0 : onDecrementToMin();\n }\n break;\n case 'End':\n if (onIncrementToMax) {\n e.preventDefault();\n onIncrementToMax === null || onIncrementToMax === void 0 ? void 0 : onIncrementToMax();\n }\n break;\n }\n };\n let isFocused = (0, $5rwhf$useRef)(false);\n let onFocus = ()=>{\n isFocused.current = true;\n };\n let onBlur = ()=>{\n isFocused.current = false;\n };\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212).\n // This ensures that macOS VoiceOver announces it as \"minus\" even with other characters between the minus sign\n // and the number (e.g. currency symbol). Otherwise it announces nothing because it assumes the character is a hyphen.\n // In addition, replace the empty string with the word \"Empty\" so that iOS VoiceOver does not read \"50%\" for an empty field.\n let ariaTextValue = textValue === '' ? stringFormatter.format('Empty') : (textValue || `${value}`).replace('-', '\\u2212');\n (0, $5rwhf$useEffect)(()=>{\n if (isFocused.current) {\n (0, $5rwhf$clearAnnouncer)('assertive');\n (0, $5rwhf$announce)(ariaTextValue, 'assertive');\n }\n }, [\n ariaTextValue\n ]);\n const onIncrementPressStart = (0, $5rwhf$useEffectEvent)((initialStepDelay)=>{\n clearAsync();\n onIncrement === null || onIncrement === void 0 ? void 0 : onIncrement();\n // Start spinning after initial delay\n _async.current = window.setTimeout(()=>{\n if (maxValue === undefined || isNaN(maxValue) || value === undefined || isNaN(value) || value < maxValue) onIncrementPressStart(60);\n }, initialStepDelay);\n });\n const onDecrementPressStart = (0, $5rwhf$useEffectEvent)((initialStepDelay)=>{\n clearAsync();\n onDecrement === null || onDecrement === void 0 ? void 0 : onDecrement();\n // Start spinning after initial delay\n _async.current = window.setTimeout(()=>{\n if (minValue === undefined || isNaN(minValue) || value === undefined || isNaN(value) || value > minValue) onDecrementPressStart(60);\n }, initialStepDelay);\n });\n let cancelContextMenu = (e)=>{\n e.preventDefault();\n };\n let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $5rwhf$useGlobalListeners)();\n return {\n spinButtonProps: {\n role: 'spinbutton',\n 'aria-valuenow': value !== undefined && !isNaN(value) ? value : undefined,\n 'aria-valuetext': ariaTextValue,\n 'aria-valuemin': minValue,\n 'aria-valuemax': maxValue,\n 'aria-disabled': isDisabled || undefined,\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur\n },\n incrementButtonProps: {\n onPressStart: ()=>{\n onIncrementPressStart(400);\n addGlobalListener(window, 'contextmenu', cancelContextMenu);\n },\n onPressEnd: ()=>{\n clearAsync();\n removeAllGlobalListeners();\n },\n onFocus: onFocus,\n onBlur: onBlur\n },\n decrementButtonProps: {\n onPressStart: ()=>{\n onDecrementPressStart(400);\n addGlobalListener(window, 'contextmenu', cancelContextMenu);\n },\n onPressEnd: ()=>{\n clearAsync();\n removeAllGlobalListeners();\n },\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\n\n\nexport {$d2e8511e6f209edf$export$e908e06f4b8e3402 as useSpinButton};\n//# sourceMappingURL=useSpinButton.module.js.map\n","import {hookData as $16f0b7bb276bc17e$export$653eddfc964b0f8a} from \"./useDateField.mjs\";\nimport {useDisplayNames as $3aeceb3a64eb8358$export$d42c60378c8168f8} from \"./useDisplayNames.mjs\";\nimport {toCalendar as $4d1jn$toCalendar, CalendarDate as $4d1jn$CalendarDate} from \"@internationalized/date\";\nimport {isMac as $4d1jn$isMac, scrollIntoViewport as $4d1jn$scrollIntoViewport, getScrollParent as $4d1jn$getScrollParent, useEvent as $4d1jn$useEvent, useLayoutEffect as $4d1jn$useLayoutEffect, isIOS as $4d1jn$isIOS, useId as $4d1jn$useId, useLabels as $4d1jn$useLabels, mergeProps as $4d1jn$mergeProps} from \"@react-aria/utils\";\nimport {NumberParser as $4d1jn$NumberParser} from \"@internationalized/number\";\nimport $4d1jn$react, {useRef as $4d1jn$useRef, useMemo as $4d1jn$useMemo} from \"react\";\nimport {useLocale as $4d1jn$useLocale, useDateFormatter as $4d1jn$useDateFormatter, useFilter as $4d1jn$useFilter} from \"@react-aria/i18n\";\nimport {useSpinButton as $4d1jn$useSpinButton} from \"@react-aria/spinbutton\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\nfunction $32489daedd52963e$export$1315d136e6f7581(segment, state, ref) {\n let enteredKeys = (0, $4d1jn$useRef)('');\n let { locale: locale, direction: direction } = (0, $4d1jn$useLocale)();\n let displayNames = (0, $3aeceb3a64eb8358$export$d42c60378c8168f8)();\n let { ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, ariaDescribedBy: ariaDescribedBy, focusManager: focusManager } = (0, $16f0b7bb276bc17e$export$653eddfc964b0f8a).get(state);\n let textValue = segment.isPlaceholder ? '' : segment.text;\n let options = (0, $4d1jn$useMemo)(()=>state.dateFormatter.resolvedOptions(), [\n state.dateFormatter\n ]);\n let monthDateFormatter = (0, $4d1jn$useDateFormatter)({\n month: 'long',\n timeZone: options.timeZone\n });\n let hourDateFormatter = (0, $4d1jn$useDateFormatter)({\n hour: 'numeric',\n hour12: options.hour12,\n timeZone: options.timeZone\n });\n if (segment.type === 'month' && !segment.isPlaceholder) {\n let monthTextValue = monthDateFormatter.format(state.dateValue);\n textValue = monthTextValue !== textValue ? `${textValue} \\u{2013} ${monthTextValue}` : monthTextValue;\n } else if (segment.type === 'hour' && !segment.isPlaceholder) textValue = hourDateFormatter.format(state.dateValue);\n let { spinButtonProps: spinButtonProps } = (0, $4d1jn$useSpinButton)({\n // The ARIA spec says aria-valuenow is optional if there's no value, but aXe seems to require it.\n // This doesn't seem to have any negative effects with real AT since we also use aria-valuetext.\n // https://github.com/dequelabs/axe-core/issues/3505\n value: segment.value,\n textValue: textValue,\n minValue: segment.minValue,\n maxValue: segment.maxValue,\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly || !segment.isEditable,\n isRequired: state.isRequired,\n onIncrement: ()=>{\n enteredKeys.current = '';\n state.increment(segment.type);\n },\n onDecrement: ()=>{\n enteredKeys.current = '';\n state.decrement(segment.type);\n },\n onIncrementPage: ()=>{\n enteredKeys.current = '';\n state.incrementPage(segment.type);\n },\n onDecrementPage: ()=>{\n enteredKeys.current = '';\n state.decrementPage(segment.type);\n },\n onIncrementToMax: ()=>{\n enteredKeys.current = '';\n if (segment.maxValue !== undefined) state.setSegment(segment.type, segment.maxValue);\n },\n onDecrementToMin: ()=>{\n enteredKeys.current = '';\n if (segment.minValue !== undefined) state.setSegment(segment.type, segment.minValue);\n }\n });\n let parser = (0, $4d1jn$useMemo)(()=>new (0, $4d1jn$NumberParser)(locale, {\n maximumFractionDigits: 0\n }), [\n locale\n ]);\n let backspace = ()=>{\n if (segment.text === segment.placeholder) focusManager.focusPrevious();\n if (parser.isValidPartialNumber(segment.text) && !state.isReadOnly && !segment.isPlaceholder) {\n let newValue = segment.text.slice(0, -1);\n let parsed = parser.parse(newValue);\n newValue = parsed === 0 ? '' : newValue;\n if (newValue.length === 0 || parsed === 0) state.clearSegment(segment.type);\n else state.setSegment(segment.type, parsed);\n enteredKeys.current = newValue;\n } else if (segment.type === 'dayPeriod') state.clearSegment(segment.type);\n };\n let onKeyDown = (e)=>{\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1742153\n if (e.key === 'a' && ((0, $4d1jn$isMac)() ? e.metaKey : e.ctrlKey)) e.preventDefault();\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return;\n switch(e.key){\n case 'Backspace':\n case 'Delete':\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n };\n // Safari dayPeriod option doesn't work...\n let { startsWith: startsWith } = (0, $4d1jn$useFilter)({\n sensitivity: 'base'\n });\n let amPmFormatter = (0, $4d1jn$useDateFormatter)({\n hour: 'numeric',\n hour12: true\n });\n let am = (0, $4d1jn$useMemo)(()=>{\n let date = new Date();\n date.setHours(0);\n return amPmFormatter.formatToParts(date).find((part)=>part.type === 'dayPeriod').value;\n }, [\n amPmFormatter\n ]);\n let pm = (0, $4d1jn$useMemo)(()=>{\n let date = new Date();\n date.setHours(12);\n return amPmFormatter.formatToParts(date).find((part)=>part.type === 'dayPeriod').value;\n }, [\n amPmFormatter\n ]);\n // Get a list of formatted era names so users can type the first character to choose one.\n let eraFormatter = (0, $4d1jn$useDateFormatter)({\n year: 'numeric',\n era: 'narrow',\n timeZone: 'UTC'\n });\n let eras = (0, $4d1jn$useMemo)(()=>{\n if (segment.type !== 'era') return [];\n let date = (0, $4d1jn$toCalendar)(new (0, $4d1jn$CalendarDate)(1, 1, 1), state.calendar);\n let eras = state.calendar.getEras().map((era)=>{\n let eraDate = date.set({\n year: 1,\n month: 1,\n day: 1,\n era: era\n }).toDate('UTC');\n let parts = eraFormatter.formatToParts(eraDate);\n let formatted = parts.find((p)=>p.type === 'era').value;\n return {\n era: era,\n formatted: formatted\n };\n });\n // Remove the common prefix from formatted values. This is so that in calendars with eras like\n // ERA0 and ERA1 (e.g. Ethiopic), users can press \"0\" and \"1\" to select an era. In other cases,\n // the first letter is used.\n let prefixLength = $32489daedd52963e$var$commonPrefixLength(eras.map((era)=>era.formatted));\n if (prefixLength) for (let era of eras)era.formatted = era.formatted.slice(prefixLength);\n return eras;\n }, [\n eraFormatter,\n state.calendar,\n segment.type\n ]);\n let onInput = (key)=>{\n if (state.isDisabled || state.isReadOnly) return;\n let newValue = enteredKeys.current + key;\n switch(segment.type){\n case 'dayPeriod':\n if (startsWith(am, key)) state.setSegment('dayPeriod', 0);\n else if (startsWith(pm, key)) state.setSegment('dayPeriod', 12);\n else break;\n focusManager.focusNext();\n break;\n case 'era':\n {\n let matched = eras.find((e)=>startsWith(e.formatted, key));\n if (matched) {\n state.setSegment('era', matched.era);\n focusManager.focusNext();\n }\n break;\n }\n case 'day':\n case 'hour':\n case 'minute':\n case 'second':\n case 'month':\n case 'year':\n {\n if (!parser.isValidPartialNumber(newValue)) return;\n let numberValue = parser.parse(newValue);\n let segmentValue = numberValue;\n let allowsZero = segment.minValue === 0;\n if (segment.type === 'hour' && state.dateFormatter.resolvedOptions().hour12) {\n switch(state.dateFormatter.resolvedOptions().hourCycle){\n case 'h11':\n if (numberValue > 11) segmentValue = parser.parse(key);\n break;\n case 'h12':\n allowsZero = false;\n if (numberValue > 12) segmentValue = parser.parse(key);\n break;\n }\n if (segment.value !== undefined && segment.value >= 12 && numberValue > 1) numberValue += 12;\n } else if (segment.maxValue !== undefined && numberValue > segment.maxValue) segmentValue = parser.parse(key);\n if (isNaN(numberValue)) return;\n let shouldSetValue = segmentValue !== 0 || allowsZero;\n if (shouldSetValue) state.setSegment(segment.type, segmentValue);\n if (segment.maxValue !== undefined && (Number(numberValue + '0') > segment.maxValue || newValue.length >= String(segment.maxValue).length)) {\n enteredKeys.current = '';\n if (shouldSetValue) focusManager.focusNext();\n } else enteredKeys.current = newValue;\n break;\n }\n }\n };\n let onFocus = ()=>{\n enteredKeys.current = '';\n if (ref.current) (0, $4d1jn$scrollIntoViewport)(ref.current, {\n containingElement: (0, $4d1jn$getScrollParent)(ref.current)\n });\n // Collapse selection to start or Chrome won't fire input events.\n let selection = window.getSelection();\n selection === null || selection === void 0 ? void 0 : selection.collapse(ref.current);\n };\n let documentRef = (0, $4d1jn$useRef)(typeof document !== 'undefined' ? document : null);\n (0, $4d1jn$useEvent)(documentRef, 'selectionchange', ()=>{\n var _ref_current;\n // Enforce that the selection is collapsed when inside a date segment.\n // Otherwise, when tapping on a segment in Android Chrome and then entering text,\n // composition events will be fired that break the DOM structure and crash the page.\n let selection = window.getSelection();\n if ((selection === null || selection === void 0 ? void 0 : selection.anchorNode) && ((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.contains(selection === null || selection === void 0 ? void 0 : selection.anchorNode))) selection.collapse(ref.current);\n });\n let compositionRef = (0, $4d1jn$useRef)('');\n (0, $4d1jn$useEvent)(ref, 'beforeinput', (e)=>{\n if (!ref.current) return;\n e.preventDefault();\n switch(e.inputType){\n case 'deleteContentBackward':\n case 'deleteContentForward':\n if (parser.isValidPartialNumber(segment.text) && !state.isReadOnly) backspace();\n break;\n case 'insertCompositionText':\n // insertCompositionText cannot be canceled.\n // Record the current state of the element so we can restore it in the `input` event below.\n compositionRef.current = ref.current.textContent;\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n ref.current.textContent = ref.current.textContent;\n break;\n default:\n if (e.data != null) onInput(e.data);\n break;\n }\n });\n (0, $4d1jn$useEvent)(ref, 'input', (e)=>{\n let { inputType: inputType, data: data } = e;\n switch(inputType){\n case 'insertCompositionText':\n // Reset the DOM to how it was in the beforeinput event.\n if (ref.current) ref.current.textContent = compositionRef.current;\n // Android sometimes fires key presses of letters as composition events. Need to handle am/pm keys here too.\n // Can also happen e.g. with Pinyin keyboard on iOS.\n if (data != null && (startsWith(am, data) || startsWith(pm, data))) onInput(data);\n break;\n }\n });\n (0, $4d1jn$useLayoutEffect)(()=>{\n let element = ref.current;\n return ()=>{\n // If the focused segment is removed, focus the previous one, or the next one if there was no previous one.\n if (document.activeElement === element) {\n let prev = focusManager.focusPrevious();\n if (!prev) focusManager.focusNext();\n }\n };\n }, [\n ref,\n focusManager\n ]);\n // spinbuttons cannot be focused with VoiceOver on iOS.\n let touchPropOverrides = (0, $4d1jn$isIOS)() || segment.type === 'timeZoneName' ? {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuetext': null,\n 'aria-valuenow': null\n } : {};\n // Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being\n // read every time the user navigates to a new segment.\n let firstSegment = (0, $4d1jn$useMemo)(()=>state.segments.find((s)=>s.isEditable), [\n state.segments\n ]);\n if (segment !== firstSegment && !state.isInvalid) ariaDescribedBy = undefined;\n let id = (0, $4d1jn$useId)();\n let isEditable = !state.isDisabled && !state.isReadOnly && segment.isEditable;\n // Prepend the label passed from the field to each segment name.\n // This is needed because VoiceOver on iOS does not announce groups.\n let name = segment.type === 'literal' ? '' : displayNames.of(segment.type);\n let labelProps = (0, $4d1jn$useLabels)({\n 'aria-label': `${name}${ariaLabel ? `, ${ariaLabel}` : ''}${ariaLabelledBy ? ', ' : ''}`,\n 'aria-labelledby': ariaLabelledBy\n });\n // Literal segments should not be visible to screen readers. We don't really need any of the above,\n // but the rules of hooks mean hooks cannot be conditional so we have to put this condition here.\n if (segment.type === 'literal') return {\n segmentProps: {\n 'aria-hidden': true\n }\n };\n let segmentStyle = {\n caretColor: 'transparent'\n };\n if (direction === 'rtl') {\n // While the bidirectional algorithm seems to work properly on inline elements with actual values, it returns different results for placeholder strings. \n // To ensure placeholder render in correct format, we apply the CSS equivalent of LRE (left-to-right embedding). See https://www.unicode.org/reports/tr9/#Explicit_Directional_Embeddings.\n // However, we apply this to both placeholders and date segments with an actual value because the date segments will shift around when deleting otherwise. \n segmentStyle.unicodeBidi = 'embed';\n let format = options[segment.type];\n if (format === 'numeric' || format === '2-digit') segmentStyle.direction = 'ltr';\n }\n return {\n segmentProps: (0, $4d1jn$mergeProps)(spinButtonProps, labelProps, {\n id: id,\n ...touchPropOverrides,\n 'aria-invalid': state.isInvalid ? 'true' : undefined,\n 'aria-describedby': ariaDescribedBy,\n 'aria-readonly': state.isReadOnly || !segment.isEditable ? 'true' : undefined,\n 'data-placeholder': segment.isPlaceholder || undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? 'false' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n // Capitalization was changed in React 17...\n [parseInt((0, $4d1jn$react).version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n inputMode: state.isDisabled || segment.type === 'dayPeriod' || segment.type === 'era' || !isEditable ? undefined : 'numeric',\n tabIndex: state.isDisabled ? undefined : 0,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n style: segmentStyle,\n // Prevent pointer events from reaching useDatePickerGroup, and allow native browser behavior to focus the segment.\n onPointerDown (e) {\n e.stopPropagation();\n },\n onMouseDown (e) {\n e.stopPropagation();\n }\n })\n };\n}\nfunction $32489daedd52963e$var$commonPrefixLength(strings) {\n // Sort the strings, and compare the characters in the first and last to find the common prefix.\n strings.sort();\n let first = strings[0];\n let last = strings[strings.length - 1];\n for(let i = 0; i < first.length; i++){\n if (first[i] !== last[i]) return i;\n }\n return 0;\n}\n\n\nexport {$32489daedd52963e$export$1315d136e6f7581 as useDateSegment};\n//# sourceMappingURL=useDateSegment.module.js.map\n","var $b3427c06585c22a0$exports = {};\n$b3427c06585c22a0$exports = {\n \"rangeOverflow\": (args)=>`\\u{64A}\\u{62C}\\u{628} \\u{623}\\u{646} \\u{62A}\\u{643}\\u{648}\\u{646} \\u{627}\\u{644}\\u{642}\\u{64A}\\u{645}\\u{629} ${args.maxValue} \\u{623}\\u{648} \\u{642}\\u{628}\\u{644} \\u{630}\\u{644}\\u{643}.`,\n \"rangeReversed\": `\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{628}\\u{62F}\\u{621} \\u{64A}\\u{62C}\\u{628} \\u{623}\\u{646} \\u{64A}\\u{643}\\u{648}\\u{646} \\u{642}\\u{628}\\u{644} \\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{627}\\u{646}\\u{62A}\\u{647}\\u{627}\\u{621}.`,\n \"rangeUnderflow\": (args)=>`\\u{64A}\\u{62C}\\u{628} \\u{623}\\u{646} \\u{62A}\\u{643}\\u{648}\\u{646} \\u{627}\\u{644}\\u{642}\\u{64A}\\u{645}\\u{629} ${args.minValue} \\u{623}\\u{648} \\u{628}\\u{639}\\u{62F} \\u{630}\\u{644}\\u{643}.`,\n \"unavailableDate\": `\\u{627}\\u{644}\\u{628}\\u{64A}\\u{627}\\u{646}\\u{627}\\u{62A} \\u{627}\\u{644}\\u{645}\\u{62D}\\u{62F}\\u{62F}\\u{629} \\u{63A}\\u{64A}\\u{631} \\u{645}\\u{62A}\\u{627}\\u{62D}\\u{629}.`\n};\n\n\nexport {$b3427c06585c22a0$exports as default};\n//# sourceMappingURL=ar-AE.module.js.map\n","var $d282528f459122b9$exports = {};\n$d282528f459122b9$exports = {\n \"rangeOverflow\": (args)=>`\\u{421}\\u{442}\\u{43E}\\u{439}\\u{43D}\\u{43E}\\u{441}\\u{442}\\u{442}\\u{430} \\u{442}\\u{440}\\u{44F}\\u{431}\\u{432}\\u{430} \\u{434}\\u{430} \\u{435} ${args.maxValue} \\u{438}\\u{43B}\\u{438} \\u{43F}\\u{43E}-\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{430}.`,\n \"rangeReversed\": `\\u{41D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{43D}\\u{430}\\u{442}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430} \\u{442}\\u{440}\\u{44F}\\u{431}\\u{432}\\u{430} \\u{434}\\u{430} \\u{435} \\u{43F}\\u{440}\\u{435}\\u{434}\\u{438} \\u{43A}\\u{440}\\u{430}\\u{439}\\u{43D}\\u{430}\\u{442}\\u{430}.`,\n \"rangeUnderflow\": (args)=>`\\u{421}\\u{442}\\u{43E}\\u{439}\\u{43D}\\u{43E}\\u{441}\\u{442}\\u{442}\\u{430} \\u{442}\\u{440}\\u{44F}\\u{431}\\u{432}\\u{430} \\u{434}\\u{430} \\u{435} ${args.minValue} \\u{438}\\u{43B}\\u{438} \\u{43F}\\u{43E}-\\u{43A}\\u{44A}\\u{441}\\u{43D}\\u{43E}.`,\n \"unavailableDate\": `\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430}\\u{442}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{435} \\u{435} \\u{43D}\\u{430}\\u{43B}\\u{438}\\u{447}\\u{43D}\\u{430}.`\n};\n\n\nexport {$d282528f459122b9$exports as default};\n//# sourceMappingURL=bg-BG.module.js.map\n","var $2d5eecd634a9ca45$exports = {};\n$2d5eecd634a9ca45$exports = {\n \"rangeOverflow\": (args)=>`Hodnota mus\\xed b\\xfdt ${args.maxValue} nebo d\\u{159}\\xedv\\u{11B}j\\u{161}\\xed.`,\n \"rangeReversed\": `Datum zah\\xe1jen\\xed mus\\xed p\\u{159}edch\\xe1zet datu ukon\\u{10D}en\\xed.`,\n \"rangeUnderflow\": (args)=>`Hodnota mus\\xed b\\xfdt ${args.minValue} nebo pozd\\u{11B}j\\u{161}\\xed.`,\n \"unavailableDate\": `Vybran\\xe9 datum nen\\xed k dispozici.`\n};\n\n\nexport {$2d5eecd634a9ca45$exports as default};\n//# sourceMappingURL=cs-CZ.module.js.map\n","var $c8e2288226c24a67$exports = {};\n$c8e2288226c24a67$exports = {\n \"rangeOverflow\": (args)=>`V\\xe6rdien skal v\\xe6re ${args.maxValue} eller tidligere.`,\n \"rangeReversed\": `Startdatoen skal v\\xe6re f\\xf8r slutdatoen.`,\n \"rangeUnderflow\": (args)=>`V\\xe6rdien skal v\\xe6re ${args.minValue} eller nyere.`,\n \"unavailableDate\": `Den valgte dato er ikke tilg\\xe6ngelig.`\n};\n\n\nexport {$c8e2288226c24a67$exports as default};\n//# sourceMappingURL=da-DK.module.js.map\n","var $6f5745e389c346d7$exports = {};\n$6f5745e389c346d7$exports = {\n \"rangeOverflow\": (args)=>`Der Wert muss ${args.maxValue} oder fr\\xfcher sein.`,\n \"rangeReversed\": `Das Startdatum muss vor dem Enddatum liegen.`,\n \"rangeUnderflow\": (args)=>`Der Wert muss ${args.minValue} oder sp\\xe4ter sein.`,\n \"unavailableDate\": `Das ausgew\\xe4hlte Datum ist nicht verf\\xfcgbar.`\n};\n\n\nexport {$6f5745e389c346d7$exports as default};\n//# sourceMappingURL=de-DE.module.js.map\n","var $8c882ccf4300d1da$exports = {};\n$8c882ccf4300d1da$exports = {\n \"rangeOverflow\": (args)=>`\\u{397} \\u{3C4}\\u{3B9}\\u{3BC}\\u{3AE} \\u{3C0}\\u{3C1}\\u{3AD}\\u{3C0}\\u{3B5}\\u{3B9} \\u{3BD}\\u{3B1} \\u{3B5}\\u{3AF}\\u{3BD}\\u{3B1}\\u{3B9} ${args.maxValue} \\u{3AE} \\u{3C0}\\u{3B1}\\u{3BB}\\u{3B1}\\u{3B9}\\u{3CC}\\u{3C4}\\u{3B5}\\u{3C1}\\u{3B7}.`,\n \"rangeReversed\": `\\u{397} \\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3AD}\\u{3BD}\\u{3B1}\\u{3C1}\\u{3BE}\\u{3B7}\\u{3C2} \\u{3C0}\\u{3C1}\\u{3AD}\\u{3C0}\\u{3B5}\\u{3B9} \\u{3BD}\\u{3B1} \\u{3B5}\\u{3AF}\\u{3BD}\\u{3B1}\\u{3B9} \\u{3C0}\\u{3C1}\\u{3B9}\\u{3BD} \\u{3B1}\\u{3C0}\\u{3CC} \\u{3C4}\\u{3B7}\\u{3BD} \\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3BB}\\u{3AE}\\u{3BE}\\u{3B7}\\u{3C2}.`,\n \"rangeUnderflow\": (args)=>`\\u{397} \\u{3C4}\\u{3B9}\\u{3BC}\\u{3AE} \\u{3C0}\\u{3C1}\\u{3AD}\\u{3C0}\\u{3B5}\\u{3B9} \\u{3BD}\\u{3B1} \\u{3B5}\\u{3AF}\\u{3BD}\\u{3B1}\\u{3B9} ${args.minValue} \\u{3AE} \\u{3BC}\\u{3B5}\\u{3C4}\\u{3B1}\\u{3B3}\\u{3B5}\\u{3BD}\\u{3AD}\\u{3C3}\\u{3C4}\\u{3B5}\\u{3C1}\\u{3B7}.`,\n \"unavailableDate\": `\\u{397} \\u{3B5}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3B7} \\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3B4}\\u{3B5}\\u{3BD} \\u{3B5}\\u{3AF}\\u{3BD}\\u{3B1}\\u{3B9} \\u{3B4}\\u{3B9}\\u{3B1}\\u{3B8}\\u{3AD}\\u{3C3}\\u{3B9}\\u{3BC}\\u{3B7}.`\n};\n\n\nexport {$8c882ccf4300d1da$exports as default};\n//# sourceMappingURL=el-GR.module.js.map\n","var $22195056771860be$exports = {};\n$22195056771860be$exports = {\n \"rangeUnderflow\": (args)=>`Value must be ${args.minValue} or later.`,\n \"rangeOverflow\": (args)=>`Value must be ${args.maxValue} or earlier.`,\n \"rangeReversed\": `Start date must be before end date.`,\n \"unavailableDate\": `Selected date unavailable.`\n};\n\n\nexport {$22195056771860be$exports as default};\n//# sourceMappingURL=en-US.module.js.map\n","var $cedfa43b4e2a5906$exports = {};\n$cedfa43b4e2a5906$exports = {\n \"rangeOverflow\": (args)=>`El valor debe ser ${args.maxValue} o anterior.`,\n \"rangeReversed\": `La fecha de inicio debe ser anterior a la fecha de finalizaci\\xf3n.`,\n \"rangeUnderflow\": (args)=>`El valor debe ser ${args.minValue} o posterior.`,\n \"unavailableDate\": `Fecha seleccionada no disponible.`\n};\n\n\nexport {$cedfa43b4e2a5906$exports as default};\n//# sourceMappingURL=es-ES.module.js.map\n","var $eeeaa8daee3601c7$exports = {};\n$eeeaa8daee3601c7$exports = {\n \"rangeOverflow\": (args)=>`V\\xe4\\xe4rtus peab olema ${args.maxValue} v\\xf5i varasem.`,\n \"rangeReversed\": `Alguskuup\\xe4ev peab olema enne l\\xf5ppkuup\\xe4eva.`,\n \"rangeUnderflow\": (args)=>`V\\xe4\\xe4rtus peab olema ${args.minValue} v\\xf5i hilisem.`,\n \"unavailableDate\": `Valitud kuup\\xe4ev pole saadaval.`\n};\n\n\nexport {$eeeaa8daee3601c7$exports as default};\n//# sourceMappingURL=et-EE.module.js.map\n","var $35e0614a49b3bb40$exports = {};\n$35e0614a49b3bb40$exports = {\n \"rangeOverflow\": (args)=>`Arvon on oltava ${args.maxValue} tai sit\\xe4 aikaisempi.`,\n \"rangeReversed\": `Aloitusp\\xe4iv\\xe4n on oltava ennen lopetusp\\xe4iv\\xe4\\xe4.`,\n \"rangeUnderflow\": (args)=>`Arvon on oltava ${args.minValue} tai sit\\xe4 my\\xf6h\\xe4isempi.`,\n \"unavailableDate\": `Valittu p\\xe4iv\\xe4m\\xe4\\xe4r\\xe4 ei ole k\\xe4ytett\\xe4viss\\xe4.`\n};\n\n\nexport {$35e0614a49b3bb40$exports as default};\n//# sourceMappingURL=fi-FI.module.js.map\n","var $929bc63f7705a78f$exports = {};\n$929bc63f7705a78f$exports = {\n \"rangeOverflow\": (args)=>`La valeur doit \\xeatre ${args.maxValue} ou ant\\xe9rieure.`,\n \"rangeReversed\": `La date de d\\xe9but doit \\xeatre ant\\xe9rieure \\xe0 la date de fin.`,\n \"rangeUnderflow\": (args)=>`La valeur doit \\xeatre ${args.minValue} ou ult\\xe9rieure.`,\n \"unavailableDate\": `La date s\\xe9lectionn\\xe9e n\\u{2019}est pas disponible.`\n};\n\n\nexport {$929bc63f7705a78f$exports as default};\n//# sourceMappingURL=fr-FR.module.js.map\n","var $9a28d073b034d183$exports = {};\n$9a28d073b034d183$exports = {\n \"rangeOverflow\": (args)=>`\\u{5D4}\\u{5E2}\\u{5E8}\\u{5DA} \\u{5D7}\\u{5D9}\\u{5D9}\\u{5D1} \\u{5DC}\\u{5D4}\\u{5D9}\\u{5D5}\\u{5EA} ${args.maxValue} \\u{5D0}\\u{5D5} \\u{5DE}\\u{5D5}\\u{5E7}\\u{5D3}\\u{5DD} \\u{5D9}\\u{5D5}\\u{5EA}\\u{5E8}.`,\n \"rangeReversed\": `\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5D4}\\u{5D4}\\u{5EA}\\u{5D7}\\u{5DC}\\u{5D4} \\u{5D7}\\u{5D9}\\u{5D9}\\u{5D1} \\u{5DC}\\u{5D4}\\u{5D9}\\u{5D5}\\u{5EA} \\u{5DC}\\u{5E4}\\u{5E0}\\u{5D9} \\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5D4}\\u{5E1}\\u{5D9}\\u{5D5}\\u{5DD}.`,\n \"rangeUnderflow\": (args)=>`\\u{5D4}\\u{5E2}\\u{5E8}\\u{5DA} \\u{5D7}\\u{5D9}\\u{5D9}\\u{5D1} \\u{5DC}\\u{5D4}\\u{5D9}\\u{5D5}\\u{5EA} ${args.minValue} \\u{5D0}\\u{5D5} \\u{5DE}\\u{5D0}\\u{5D5}\\u{5D7}\\u{5E8} \\u{5D9}\\u{5D5}\\u{5EA}\\u{5E8}.`,\n \"unavailableDate\": `\\u{5D4}\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5D4}\\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8} \\u{5D0}\\u{5D9}\\u{5E0}\\u{5D5} \\u{5D6}\\u{5DE}\\u{5D9}\\u{5DF}.`\n};\n\n\nexport {$9a28d073b034d183$exports as default};\n//# sourceMappingURL=he-IL.module.js.map\n","var $7743e79780ebcca3$exports = {};\n$7743e79780ebcca3$exports = {\n \"rangeOverflow\": (args)=>`Vrijednost mora biti ${args.maxValue} ili ranije.`,\n \"rangeReversed\": `Datum po\\u{10D}etka mora biti prije datuma zavr\\u{161}etka.`,\n \"rangeUnderflow\": (args)=>`Vrijednost mora biti ${args.minValue} ili kasnije.`,\n \"unavailableDate\": `Odabrani datum nije dostupan.`\n};\n\n\nexport {$7743e79780ebcca3$exports as default};\n//# sourceMappingURL=hr-HR.module.js.map\n","var $3351817a04898858$exports = {};\n$3351817a04898858$exports = {\n \"rangeOverflow\": (args)=>`Az \\xe9rt\\xe9knek ${args.maxValue} vagy kor\\xe1bbinak kell lennie.`,\n \"rangeReversed\": `A kezd\\u{151} d\\xe1tumnak a befejez\\u{151} d\\xe1tumn\\xe1l kor\\xe1bbinak kell lennie.`,\n \"rangeUnderflow\": (args)=>`Az \\xe9rt\\xe9knek ${args.minValue} vagy k\\xe9s\\u{151}bbinek kell lennie.`,\n \"unavailableDate\": `A kiv\\xe1lasztott d\\xe1tum nem \\xe9rhet\\u{151} el.`\n};\n\n\nexport {$3351817a04898858$exports as default};\n//# sourceMappingURL=hu-HU.module.js.map\n","var $4120bdb1d03484db$exports = {};\n$4120bdb1d03484db$exports = {\n \"rangeOverflow\": (args)=>`Il valore deve essere ${args.maxValue} o precedente.`,\n \"rangeReversed\": `La data di inizio deve essere antecedente alla data di fine.`,\n \"rangeUnderflow\": (args)=>`Il valore deve essere ${args.minValue} o successivo.`,\n \"unavailableDate\": `Data selezionata non disponibile.`\n};\n\n\nexport {$4120bdb1d03484db$exports as default};\n//# sourceMappingURL=it-IT.module.js.map\n","var $65e5e1569f34ea4f$exports = {};\n$65e5e1569f34ea4f$exports = {\n \"rangeOverflow\": (args)=>`\\u{5024}\\u{306F} ${args.maxValue} \\u{4EE5}\\u{4E0B}\\u{306B}\\u{3059}\\u{308B}\\u{5FC5}\\u{8981}\\u{304C}\\u{3042}\\u{308A}\\u{307E}\\u{3059}\\u{3002}`,\n \"rangeReversed\": `\\u{958B}\\u{59CB}\\u{65E5}\\u{306F}\\u{7D42}\\u{4E86}\\u{65E5}\\u{3088}\\u{308A}\\u{524D}\\u{306B}\\u{3059}\\u{308B}\\u{5FC5}\\u{8981}\\u{304C}\\u{3042}\\u{308A}\\u{307E}\\u{3059}\\u{3002}`,\n \"rangeUnderflow\": (args)=>`\\u{5024}\\u{306F} ${args.minValue} \\u{4EE5}\\u{4E0A}\\u{306B}\\u{3059}\\u{308B}\\u{5FC5}\\u{8981}\\u{304C}\\u{3042}\\u{308A}\\u{307E}\\u{3059}\\u{3002}`,\n \"unavailableDate\": `\\u{9078}\\u{629E}\\u{3057}\\u{305F}\\u{65E5}\\u{4ED8}\\u{306F}\\u{4F7F}\\u{7528}\\u{3067}\\u{304D}\\u{307E}\\u{305B}\\u{3093}\\u{3002}`\n};\n\n\nexport {$65e5e1569f34ea4f$exports as default};\n//# sourceMappingURL=ja-JP.module.js.map\n","var $d34552a7550967e7$exports = {};\n$d34552a7550967e7$exports = {\n \"rangeOverflow\": (args)=>`\\u{AC12}\\u{C740} ${args.maxValue} \\u{C774}\\u{C804}\\u{C774}\\u{C5B4}\\u{C57C} \\u{D569}\\u{B2C8}\\u{B2E4}.`,\n \"rangeReversed\": `\\u{C2DC}\\u{C791}\\u{C77C}\\u{C740} \\u{C885}\\u{B8CC}\\u{C77C} \\u{C774}\\u{C804}\\u{C774}\\u{C5B4}\\u{C57C} \\u{D569}\\u{B2C8}\\u{B2E4}.`,\n \"rangeUnderflow\": (args)=>`\\u{AC12}\\u{C740} ${args.minValue} \\u{C774}\\u{C0C1}\\u{C774}\\u{C5B4}\\u{C57C} \\u{D569}\\u{B2C8}\\u{B2E4}.`,\n \"unavailableDate\": `\\u{C120}\\u{D0DD}\\u{D55C} \\u{B0A0}\\u{C9DC}\\u{B97C} \\u{C0AC}\\u{C6A9}\\u{D560} \\u{C218} \\u{C5C6}\\u{C2B5}\\u{B2C8}\\u{B2E4}.`\n};\n\n\nexport {$d34552a7550967e7$exports as default};\n//# sourceMappingURL=ko-KR.module.js.map\n","var $8f855bffe63f6eca$exports = {};\n$8f855bffe63f6eca$exports = {\n \"rangeOverflow\": (args)=>`Reik\\u{161}m\\u{117} turi b\\u{16B}ti ${args.maxValue} arba ankstesn\\u{117}.`,\n \"rangeReversed\": `Prad\\u{17E}ios data turi b\\u{16B}ti ankstesn\\u{117} nei pabaigos data.`,\n \"rangeUnderflow\": (args)=>`Reik\\u{161}m\\u{117} turi b\\u{16B}ti ${args.minValue} arba naujesn\\u{117}.`,\n \"unavailableDate\": `Pasirinkta data nepasiekiama.`\n};\n\n\nexport {$8f855bffe63f6eca$exports as default};\n//# sourceMappingURL=lt-LT.module.js.map\n","var $ce40f46d09034645$exports = {};\n$ce40f46d09034645$exports = {\n \"rangeOverflow\": (args)=>`V\\u{113}rt\\u{12B}bai ir j\\u{101}b\\u{16B}t ${args.maxValue} vai agr\\u{101}kai.`,\n \"rangeReversed\": `S\\u{101}kuma datumam ir j\\u{101}b\\u{16B}t pirms beigu datuma.`,\n \"rangeUnderflow\": (args)=>`V\\u{113}rt\\u{12B}bai ir j\\u{101}b\\u{16B}t ${args.minValue} vai v\\u{113}l\\u{101}kai.`,\n \"unavailableDate\": `Atlas\\u{12B}tais datums nav pieejams.`\n};\n\n\nexport {$ce40f46d09034645$exports as default};\n//# sourceMappingURL=lv-LV.module.js.map\n","var $dd1a9a73340c793e$exports = {};\n$dd1a9a73340c793e$exports = {\n \"rangeOverflow\": (args)=>`Verdien m\\xe5 v\\xe6re ${args.maxValue} eller tidligere.`,\n \"rangeReversed\": `Startdatoen m\\xe5 v\\xe6re f\\xf8r sluttdatoen.`,\n \"rangeUnderflow\": (args)=>`Verdien m\\xe5 v\\xe6re ${args.minValue} eller senere.`,\n \"unavailableDate\": `Valgt dato utilgjengelig.`\n};\n\n\nexport {$dd1a9a73340c793e$exports as default};\n//# sourceMappingURL=nb-NO.module.js.map\n","var $4ee1fb3f0cbe6f59$exports = {};\n$4ee1fb3f0cbe6f59$exports = {\n \"rangeOverflow\": (args)=>`Waarde moet ${args.maxValue} of eerder zijn.`,\n \"rangeReversed\": `De startdatum moet voor de einddatum liggen.`,\n \"rangeUnderflow\": (args)=>`Waarde moet ${args.minValue} of later zijn.`,\n \"unavailableDate\": `Geselecteerde datum niet beschikbaar.`\n};\n\n\nexport {$4ee1fb3f0cbe6f59$exports as default};\n//# sourceMappingURL=nl-NL.module.js.map\n","var $c85829aebb0bc94b$exports = {};\n$c85829aebb0bc94b$exports = {\n \"rangeOverflow\": (args)=>`Warto\\u{15B}\\u{107} musi mie\\u{107} warto\\u{15B}\\u{107} ${args.maxValue} lub wcze\\u{15B}niejsz\\u{105}.`,\n \"rangeReversed\": `Data rozpocz\\u{119}cia musi by\\u{107} wcze\\u{15B}niejsza ni\\u{17C} data zako\\u{144}czenia.`,\n \"rangeUnderflow\": (args)=>`Warto\\u{15B}\\u{107} musi mie\\u{107} warto\\u{15B}\\u{107} ${args.minValue} lub p\\xf3\\u{17A}niejsz\\u{105}.`,\n \"unavailableDate\": `Wybrana data jest niedost\\u{119}pna.`\n};\n\n\nexport {$c85829aebb0bc94b$exports as default};\n//# sourceMappingURL=pl-PL.module.js.map\n","var $27f5cd2291ca8a02$exports = {};\n$27f5cd2291ca8a02$exports = {\n \"rangeOverflow\": (args)=>`O valor deve ser ${args.maxValue} ou anterior.`,\n \"rangeReversed\": `A data inicial deve ser anterior \\xe0 data final.`,\n \"rangeUnderflow\": (args)=>`O valor deve ser ${args.minValue} ou posterior.`,\n \"unavailableDate\": `Data selecionada indispon\\xedvel.`\n};\n\n\nexport {$27f5cd2291ca8a02$exports as default};\n//# sourceMappingURL=pt-BR.module.js.map\n","var $e046fdccd69bea8e$exports = {};\n$e046fdccd69bea8e$exports = {\n \"rangeOverflow\": (args)=>`O valor tem de ser ${args.maxValue} ou anterior.`,\n \"rangeReversed\": `A data de in\\xedcio deve ser anterior \\xe0 data de fim.`,\n \"rangeUnderflow\": (args)=>`O valor tem de ser ${args.minValue} ou posterior.`,\n \"unavailableDate\": `Data selecionada indispon\\xedvel.`\n};\n\n\nexport {$e046fdccd69bea8e$exports as default};\n//# sourceMappingURL=pt-PT.module.js.map\n","var $fa5f88e804986547$exports = {};\n$fa5f88e804986547$exports = {\n \"rangeOverflow\": (args)=>`Valoarea trebuie s\\u{103} fie ${args.maxValue} sau anterioar\\u{103}.`,\n \"rangeReversed\": `Data de \\xeenceput trebuie s\\u{103} fie anterioar\\u{103} datei de sf\\xe2r\\u{219}it.`,\n \"rangeUnderflow\": (args)=>`Valoarea trebuie s\\u{103} fie ${args.minValue} sau ulterioar\\u{103}.`,\n \"unavailableDate\": `Data selectat\\u{103} nu este disponibil\\u{103}.`\n};\n\n\nexport {$fa5f88e804986547$exports as default};\n//# sourceMappingURL=ro-RO.module.js.map\n","var $28e4714602d1b568$exports = {};\n$28e4714602d1b568$exports = {\n \"rangeOverflow\": (args)=>`\\u{417}\\u{43D}\\u{430}\\u{447}\\u{435}\\u{43D}\\u{438}\\u{435} \\u{434}\\u{43E}\\u{43B}\\u{436}\\u{43D}\\u{43E} \\u{431}\\u{44B}\\u{442}\\u{44C} \\u{43D}\\u{435} \\u{43F}\\u{43E}\\u{437}\\u{436}\\u{435} ${args.maxValue}.`,\n \"rangeReversed\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{430} \\u{434}\\u{43E}\\u{43B}\\u{436}\\u{43D}\\u{430} \\u{43F}\\u{440}\\u{435}\\u{434}\\u{448}\\u{435}\\u{441}\\u{442}\\u{432}\\u{43E}\\u{432}\\u{430}\\u{442}\\u{44C} \\u{434}\\u{430}\\u{442}\\u{435} \\u{43E}\\u{43A}\\u{43E}\\u{43D}\\u{447}\\u{430}\\u{43D}\\u{438}\\u{44F}.`,\n \"rangeUnderflow\": (args)=>`\\u{417}\\u{43D}\\u{430}\\u{447}\\u{435}\\u{43D}\\u{438}\\u{435} \\u{434}\\u{43E}\\u{43B}\\u{436}\\u{43D}\\u{43E} \\u{431}\\u{44B}\\u{442}\\u{44C} \\u{43D}\\u{435} \\u{440}\\u{430}\\u{43D}\\u{44C}\\u{448}\\u{435} ${args.minValue}.`,\n \"unavailableDate\": `\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{430}\\u{44F} \\u{434}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{435}\\u{434}\\u{43E}\\u{441}\\u{442}\\u{443}\\u{43F}\\u{43D}\\u{430}.`\n};\n\n\nexport {$28e4714602d1b568$exports as default};\n//# sourceMappingURL=ru-RU.module.js.map\n","var $4e3bc8cf783ad569$exports = {};\n$4e3bc8cf783ad569$exports = {\n \"rangeOverflow\": (args)=>`Hodnota mus\\xed by\\u{165} ${args.maxValue} alebo skor\\u{161}ia.`,\n \"rangeReversed\": `D\\xe1tum za\\u{10D}iatku mus\\xed by\\u{165} skor\\u{161}\\xed ako d\\xe1tum konca.`,\n \"rangeUnderflow\": (args)=>`Hodnota mus\\xed by\\u{165} ${args.minValue} alebo neskor\\u{161}ia.`,\n \"unavailableDate\": `Vybrat\\xfd d\\xe1tum je nedostupn\\xfd.`\n};\n\n\nexport {$4e3bc8cf783ad569$exports as default};\n//# sourceMappingURL=sk-SK.module.js.map\n","var $bee07513333bdc15$exports = {};\n$bee07513333bdc15$exports = {\n \"rangeOverflow\": (args)=>`Vrednost mora biti ${args.maxValue} ali starej\\u{161}a.`,\n \"rangeReversed\": `Za\\u{10D}etni datum mora biti pred kon\\u{10D}nim datumom.`,\n \"rangeUnderflow\": (args)=>`Vrednost mora biti ${args.minValue} ali novej\\u{161}a.`,\n \"unavailableDate\": `Izbrani datum ni na voljo.`\n};\n\n\nexport {$bee07513333bdc15$exports as default};\n//# sourceMappingURL=sl-SI.module.js.map\n","var $7ed9c6fad16a15ec$exports = {};\n$7ed9c6fad16a15ec$exports = {\n \"rangeOverflow\": (args)=>`Vrednost mora da bude ${args.maxValue} ili starija.`,\n \"rangeReversed\": `Datum po\\u{10D}etka mora biti pre datuma zavr\\u{161}etka.`,\n \"rangeUnderflow\": (args)=>`Vrednost mora da bude ${args.minValue} ili novija.`,\n \"unavailableDate\": `Izabrani datum nije dostupan.`\n};\n\n\nexport {$7ed9c6fad16a15ec$exports as default};\n//# sourceMappingURL=sr-SP.module.js.map\n","var $8bef6d5a236de86c$exports = {};\n$8bef6d5a236de86c$exports = {\n \"rangeOverflow\": (args)=>`V\\xe4rdet m\\xe5ste vara ${args.maxValue} eller tidigare.`,\n \"rangeReversed\": `Startdatumet m\\xe5ste vara f\\xf6re slutdatumet.`,\n \"rangeUnderflow\": (args)=>`V\\xe4rdet m\\xe5ste vara ${args.minValue} eller senare.`,\n \"unavailableDate\": `Det valda datumet \\xe4r inte tillg\\xe4ngligt.`\n};\n\n\nexport {$8bef6d5a236de86c$exports as default};\n//# sourceMappingURL=sv-SE.module.js.map\n","var $098b9a2d2340cfc5$exports = {};\n$098b9a2d2340cfc5$exports = {\n \"rangeOverflow\": (args)=>`De\\u{11F}er, ${args.maxValue} veya \\xf6ncesi olmal\\u{131}d\\u{131}r.`,\n \"rangeReversed\": `Ba\\u{15F}lang\\u{131}\\xe7 tarihi biti\\u{15F} tarihinden \\xf6nce olmal\\u{131}d\\u{131}r.`,\n \"rangeUnderflow\": (args)=>`De\\u{11F}er, ${args.minValue} veya sonras\\u{131} olmal\\u{131}d\\u{131}r.`,\n \"unavailableDate\": `Se\\xe7ilen tarih kullan\\u{131}lam\\u{131}yor.`\n};\n\n\nexport {$098b9a2d2340cfc5$exports as default};\n//# sourceMappingURL=tr-TR.module.js.map\n","var $54a862ea7fad7419$exports = {};\n$54a862ea7fad7419$exports = {\n \"rangeOverflow\": (args)=>`\\u{417}\\u{43D}\\u{430}\\u{447}\\u{435}\\u{43D}\\u{43D}\\u{44F} \\u{43C}\\u{430}\\u{454} \\u{431}\\u{443}\\u{442}\\u{438} \\u{43D}\\u{435} \\u{43F}\\u{456}\\u{437}\\u{43D}\\u{456}\\u{448}\\u{435} ${args.maxValue}.`,\n \"rangeReversed\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43F}\\u{43E}\\u{447}\\u{430}\\u{442}\\u{43A}\\u{443} \\u{43C}\\u{430}\\u{454} \\u{43F}\\u{435}\\u{440}\\u{435}\\u{434}\\u{443}\\u{432}\\u{430}\\u{442}\\u{438} \\u{434}\\u{430}\\u{442}\\u{456} \\u{437}\\u{430}\\u{432}\\u{435}\\u{440}\\u{448}\\u{435}\\u{43D}\\u{43D}\\u{44F}.`,\n \"rangeUnderflow\": (args)=>`\\u{417}\\u{43D}\\u{430}\\u{447}\\u{435}\\u{43D}\\u{43D}\\u{44F} \\u{43C}\\u{430}\\u{454} \\u{431}\\u{443}\\u{442}\\u{438} \\u{43D}\\u{435} \\u{440}\\u{430}\\u{43D}\\u{456}\\u{448}\\u{435} ${args.minValue}.`,\n \"unavailableDate\": `\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{435}\\u{434}\\u{43E}\\u{441}\\u{442}\\u{443}\\u{43F}\\u{43D}\\u{430}.`\n};\n\n\nexport {$54a862ea7fad7419$exports as default};\n//# sourceMappingURL=uk-UA.module.js.map\n","var $e6cc491d590dfda5$exports = {};\n$e6cc491d590dfda5$exports = {\n \"rangeOverflow\": (args)=>`\\u{503C}\\u{5FC5}\\u{987B}\\u{662F} ${args.maxValue} \\u{6216}\\u{66F4}\\u{65E9}\\u{65E5}\\u{671F}\\u{3002}`,\n \"rangeReversed\": `\\u{5F00}\\u{59CB}\\u{65E5}\\u{671F}\\u{5FC5}\\u{987B}\\u{65E9}\\u{4E8E}\\u{7ED3}\\u{675F}\\u{65E5}\\u{671F}\\u{3002}`,\n \"rangeUnderflow\": (args)=>`\\u{503C}\\u{5FC5}\\u{987B}\\u{662F} ${args.minValue} \\u{6216}\\u{66F4}\\u{665A}\\u{65E5}\\u{671F}\\u{3002}`,\n \"unavailableDate\": `\\u{6240}\\u{9009}\\u{65E5}\\u{671F}\\u{4E0D}\\u{53EF}\\u{7528}\\u{3002}`\n};\n\n\nexport {$e6cc491d590dfda5$exports as default};\n//# sourceMappingURL=zh-CN.module.js.map\n","var $9aebf53181a474bd$exports = {};\n$9aebf53181a474bd$exports = {\n \"rangeOverflow\": (args)=>`\\u{503C}\\u{5FC5}\\u{9808}\\u{662F} ${args.maxValue} \\u{6216}\\u{66F4}\\u{65E9}\\u{3002}`,\n \"rangeReversed\": `\\u{958B}\\u{59CB}\\u{65E5}\\u{671F}\\u{5FC5}\\u{9808}\\u{5728}\\u{7D50}\\u{675F}\\u{65E5}\\u{671F}\\u{4E4B}\\u{524D}\\u{3002}`,\n \"rangeUnderflow\": (args)=>`\\u{503C}\\u{5FC5}\\u{9808}\\u{662F} ${args.minValue} \\u{6216}\\u{66F4}\\u{665A}\\u{3002}`,\n \"unavailableDate\": `\\u{6240}\\u{9078}\\u{65E5}\\u{671F}\\u{7121}\\u{6CD5}\\u{4F7F}\\u{7528}\\u{3002}`\n};\n\n\nexport {$9aebf53181a474bd$exports as default};\n//# sourceMappingURL=zh-TW.module.js.map\n","import $umoiH$arAEmodulejs from \"./ar-AE.mjs\";\nimport $umoiH$bgBGmodulejs from \"./bg-BG.mjs\";\nimport $umoiH$csCZmodulejs from \"./cs-CZ.mjs\";\nimport $umoiH$daDKmodulejs from \"./da-DK.mjs\";\nimport $umoiH$deDEmodulejs from \"./de-DE.mjs\";\nimport $umoiH$elGRmodulejs from \"./el-GR.mjs\";\nimport $umoiH$enUSmodulejs from \"./en-US.mjs\";\nimport $umoiH$esESmodulejs from \"./es-ES.mjs\";\nimport $umoiH$etEEmodulejs from \"./et-EE.mjs\";\nimport $umoiH$fiFImodulejs from \"./fi-FI.mjs\";\nimport $umoiH$frFRmodulejs from \"./fr-FR.mjs\";\nimport $umoiH$heILmodulejs from \"./he-IL.mjs\";\nimport $umoiH$hrHRmodulejs from \"./hr-HR.mjs\";\nimport $umoiH$huHUmodulejs from \"./hu-HU.mjs\";\nimport $umoiH$itITmodulejs from \"./it-IT.mjs\";\nimport $umoiH$jaJPmodulejs from \"./ja-JP.mjs\";\nimport $umoiH$koKRmodulejs from \"./ko-KR.mjs\";\nimport $umoiH$ltLTmodulejs from \"./lt-LT.mjs\";\nimport $umoiH$lvLVmodulejs from \"./lv-LV.mjs\";\nimport $umoiH$nbNOmodulejs from \"./nb-NO.mjs\";\nimport $umoiH$nlNLmodulejs from \"./nl-NL.mjs\";\nimport $umoiH$plPLmodulejs from \"./pl-PL.mjs\";\nimport $umoiH$ptBRmodulejs from \"./pt-BR.mjs\";\nimport $umoiH$ptPTmodulejs from \"./pt-PT.mjs\";\nimport $umoiH$roROmodulejs from \"./ro-RO.mjs\";\nimport $umoiH$ruRUmodulejs from \"./ru-RU.mjs\";\nimport $umoiH$skSKmodulejs from \"./sk-SK.mjs\";\nimport $umoiH$slSImodulejs from \"./sl-SI.mjs\";\nimport $umoiH$srSPmodulejs from \"./sr-SP.mjs\";\nimport $umoiH$svSEmodulejs from \"./sv-SE.mjs\";\nimport $umoiH$trTRmodulejs from \"./tr-TR.mjs\";\nimport $umoiH$ukUAmodulejs from \"./uk-UA.mjs\";\nimport $umoiH$zhCNmodulejs from \"./zh-CN.mjs\";\nimport $umoiH$zhTWmodulejs from \"./zh-TW.mjs\";\n\nvar $452ac34de8c2444e$exports = {};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$452ac34de8c2444e$exports = {\n \"ar-AE\": $umoiH$arAEmodulejs,\n \"bg-BG\": $umoiH$bgBGmodulejs,\n \"cs-CZ\": $umoiH$csCZmodulejs,\n \"da-DK\": $umoiH$daDKmodulejs,\n \"de-DE\": $umoiH$deDEmodulejs,\n \"el-GR\": $umoiH$elGRmodulejs,\n \"en-US\": $umoiH$enUSmodulejs,\n \"es-ES\": $umoiH$esESmodulejs,\n \"et-EE\": $umoiH$etEEmodulejs,\n \"fi-FI\": $umoiH$fiFImodulejs,\n \"fr-FR\": $umoiH$frFRmodulejs,\n \"he-IL\": $umoiH$heILmodulejs,\n \"hr-HR\": $umoiH$hrHRmodulejs,\n \"hu-HU\": $umoiH$huHUmodulejs,\n \"it-IT\": $umoiH$itITmodulejs,\n \"ja-JP\": $umoiH$jaJPmodulejs,\n \"ko-KR\": $umoiH$koKRmodulejs,\n \"lt-LT\": $umoiH$ltLTmodulejs,\n \"lv-LV\": $umoiH$lvLVmodulejs,\n \"nb-NO\": $umoiH$nbNOmodulejs,\n \"nl-NL\": $umoiH$nlNLmodulejs,\n \"pl-PL\": $umoiH$plPLmodulejs,\n \"pt-BR\": $umoiH$ptBRmodulejs,\n \"pt-PT\": $umoiH$ptPTmodulejs,\n \"ro-RO\": $umoiH$roROmodulejs,\n \"ru-RU\": $umoiH$ruRUmodulejs,\n \"sk-SK\": $umoiH$skSKmodulejs,\n \"sl-SI\": $umoiH$slSImodulejs,\n \"sr-SP\": $umoiH$srSPmodulejs,\n \"sv-SE\": $umoiH$svSEmodulejs,\n \"tr-TR\": $umoiH$trTRmodulejs,\n \"uk-UA\": $umoiH$ukUAmodulejs,\n \"zh-CN\": $umoiH$zhCNmodulejs,\n \"zh-TW\": $umoiH$zhTWmodulejs\n};\n\n\nexport {$452ac34de8c2444e$exports as default};\n//# sourceMappingURL=intlStrings.module.js.map\n","import $bUJMr$intlStringsmodulejs from \"./intlStrings.mjs\";\nimport {DateFormatter as $bUJMr$DateFormatter, Time as $bUJMr$Time, toCalendar as $bUJMr$toCalendar, now as $bUJMr$now, getLocalTimeZone as $bUJMr$getLocalTimeZone, toCalendarDate as $bUJMr$toCalendarDate, toCalendarDateTime as $bUJMr$toCalendarDateTime} from \"@internationalized/date\";\nimport {LocalizedStringDictionary as $bUJMr$LocalizedStringDictionary, LocalizedStringFormatter as $bUJMr$LocalizedStringFormatter} from \"@internationalized/string\";\nimport {mergeValidation as $bUJMr$mergeValidation, VALID_VALIDITY_STATE as $bUJMr$VALID_VALIDITY_STATE} from \"@react-stately/form\";\nimport {useState as $bUJMr$useState} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nconst $35a22f14a1f04b11$var$dictionary = new (0, $bUJMr$LocalizedStringDictionary)((0, ($parcel$interopDefault($bUJMr$intlStringsmodulejs))));\nfunction $35a22f14a1f04b11$var$getLocale() {\n // Match browser language setting here, NOT react-aria's I18nProvider, so that we match other browser-provided\n // validation messages, which to not respect our provider's language.\n // @ts-ignore\n let locale = typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';\n try {\n Intl.DateTimeFormat.supportedLocalesOf([\n locale\n ]);\n } catch {\n locale = 'en-US';\n }\n return locale;\n}\nfunction $35a22f14a1f04b11$export$f18627323ab57ac0(value, minValue, maxValue, isDateUnavailable, options) {\n let rangeOverflow = value != null && maxValue != null && value.compare(maxValue) > 0;\n let rangeUnderflow = value != null && minValue != null && value.compare(minValue) < 0;\n let isUnavailable = value != null && (isDateUnavailable === null || isDateUnavailable === void 0 ? void 0 : isDateUnavailable(value)) || false;\n let isInvalid = rangeOverflow || rangeUnderflow || isUnavailable;\n let errors = [];\n if (isInvalid) {\n let locale = $35a22f14a1f04b11$var$getLocale();\n let strings = (0, $bUJMr$LocalizedStringDictionary).getGlobalDictionaryForPackage('@react-stately/datepicker') || $35a22f14a1f04b11$var$dictionary;\n let formatter = new (0, $bUJMr$LocalizedStringFormatter)(locale, strings);\n let dateFormatter = new (0, $bUJMr$DateFormatter)(locale, $35a22f14a1f04b11$export$7e319ea407e63bc0({}, options));\n let timeZone = dateFormatter.resolvedOptions().timeZone;\n if (rangeUnderflow && minValue != null) errors.push(formatter.format('rangeUnderflow', {\n minValue: dateFormatter.format(minValue.toDate(timeZone))\n }));\n if (rangeOverflow && maxValue != null) errors.push(formatter.format('rangeOverflow', {\n maxValue: dateFormatter.format(maxValue.toDate(timeZone))\n }));\n if (isUnavailable) errors.push(formatter.format('unavailableDate'));\n }\n return {\n isInvalid: isInvalid,\n validationErrors: errors,\n validationDetails: {\n badInput: isUnavailable,\n customError: false,\n patternMismatch: false,\n rangeOverflow: rangeOverflow,\n rangeUnderflow: rangeUnderflow,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valueMissing: false,\n valid: !isInvalid\n }\n };\n}\nfunction $35a22f14a1f04b11$export$80ff8fc0ae339c13(value, minValue, maxValue, isDateUnavailable, options) {\n var _value_start;\n let startValidation = $35a22f14a1f04b11$export$f18627323ab57ac0((_value_start = value === null || value === void 0 ? void 0 : value.start) !== null && _value_start !== void 0 ? _value_start : null, minValue, maxValue, isDateUnavailable, options);\n var _value_end;\n let endValidation = $35a22f14a1f04b11$export$f18627323ab57ac0((_value_end = value === null || value === void 0 ? void 0 : value.end) !== null && _value_end !== void 0 ? _value_end : null, minValue, maxValue, isDateUnavailable, options);\n let result = (0, $bUJMr$mergeValidation)(startValidation, endValidation);\n if ((value === null || value === void 0 ? void 0 : value.end) != null && value.start != null && value.end.compare(value.start) < 0) {\n let strings = (0, $bUJMr$LocalizedStringDictionary).getGlobalDictionaryForPackage('@react-stately/datepicker') || $35a22f14a1f04b11$var$dictionary;\n result = (0, $bUJMr$mergeValidation)(result, {\n isInvalid: true,\n validationErrors: [\n strings.getStringForLocale('rangeReversed', $35a22f14a1f04b11$var$getLocale())\n ],\n validationDetails: {\n ...(0, $bUJMr$VALID_VALIDITY_STATE),\n rangeUnderflow: true,\n rangeOverflow: true,\n valid: false\n }\n });\n }\n return result;\n}\nconst $35a22f14a1f04b11$var$DEFAULT_FIELD_OPTIONS = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit'\n};\nconst $35a22f14a1f04b11$var$TWO_DIGIT_FIELD_OPTIONS = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n};\nfunction $35a22f14a1f04b11$export$7e319ea407e63bc0(fieldOptions, options) {\n let defaultFieldOptions = options.shouldForceLeadingZeros ? $35a22f14a1f04b11$var$TWO_DIGIT_FIELD_OPTIONS : $35a22f14a1f04b11$var$DEFAULT_FIELD_OPTIONS;\n fieldOptions = {\n ...defaultFieldOptions,\n ...fieldOptions\n };\n let granularity = options.granularity || 'minute';\n let keys = Object.keys(fieldOptions);\n var _options_maxGranularity;\n let startIdx = keys.indexOf((_options_maxGranularity = options.maxGranularity) !== null && _options_maxGranularity !== void 0 ? _options_maxGranularity : 'year');\n if (startIdx < 0) startIdx = 0;\n let endIdx = keys.indexOf(granularity);\n if (endIdx < 0) endIdx = 2;\n if (startIdx > endIdx) throw new Error('maxGranularity must be greater than granularity');\n let opts = keys.slice(startIdx, endIdx + 1).reduce((opts, key)=>{\n opts[key] = fieldOptions[key];\n return opts;\n }, {});\n if (options.hourCycle != null) opts.hour12 = options.hourCycle === 12;\n opts.timeZone = options.timeZone || 'UTC';\n let hasTime = granularity === 'hour' || granularity === 'minute' || granularity === 'second';\n if (hasTime && options.timeZone && !options.hideTimeZone) opts.timeZoneName = 'short';\n if (options.showEra && startIdx === 0) opts.era = 'short';\n return opts;\n}\nfunction $35a22f14a1f04b11$export$c5221a78ef73c5e9(placeholderValue) {\n if (placeholderValue && 'hour' in placeholderValue) return placeholderValue;\n return new (0, $bUJMr$Time)();\n}\nfunction $35a22f14a1f04b11$export$61a490a80c552550(value, calendar) {\n if (value === null) return null;\n if (!value) return undefined;\n return (0, $bUJMr$toCalendar)(value, calendar);\n}\nfunction $35a22f14a1f04b11$export$66aa2b09de4b1ea5(placeholderValue, granularity, calendar, timeZone) {\n if (placeholderValue) return $35a22f14a1f04b11$export$61a490a80c552550(placeholderValue, calendar);\n let date = (0, $bUJMr$toCalendar)((0, $bUJMr$now)(timeZone !== null && timeZone !== void 0 ? timeZone : (0, $bUJMr$getLocalTimeZone)()).set({\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n }), calendar);\n if (granularity === 'year' || granularity === 'month' || granularity === 'day') return (0, $bUJMr$toCalendarDate)(date);\n if (!timeZone) return (0, $bUJMr$toCalendarDateTime)(date);\n return date;\n}\nfunction $35a22f14a1f04b11$export$2440da353cedad43(v, granularity) {\n // Compute default granularity and time zone from the value. If the value becomes null, keep the last values.\n let defaultTimeZone = v && 'timeZone' in v ? v.timeZone : undefined;\n let defaultGranularity = v && 'minute' in v ? 'minute' : 'day';\n // props.granularity must actually exist in the value if one is provided.\n if (v && granularity && !(granularity in v)) throw new Error('Invalid granularity ' + granularity + ' for value ' + v.toString());\n let [lastValue, setLastValue] = (0, $bUJMr$useState)([\n defaultGranularity,\n defaultTimeZone\n ]);\n // If the granularity or time zone changed, update the last value.\n if (v && (lastValue[0] !== defaultGranularity || lastValue[1] !== defaultTimeZone)) setLastValue([\n defaultGranularity,\n defaultTimeZone\n ]);\n if (!granularity) granularity = v ? defaultGranularity : lastValue[0];\n let timeZone = v ? defaultTimeZone : lastValue[1];\n return [\n granularity,\n timeZone\n ];\n}\n\n\nexport {$35a22f14a1f04b11$export$f18627323ab57ac0 as getValidationResult, $35a22f14a1f04b11$export$7e319ea407e63bc0 as getFormatOptions, $35a22f14a1f04b11$export$80ff8fc0ae339c13 as getRangeValidationResult, $35a22f14a1f04b11$export$c5221a78ef73c5e9 as getPlaceholderTime, $35a22f14a1f04b11$export$61a490a80c552550 as convertValue, $35a22f14a1f04b11$export$66aa2b09de4b1ea5 as createPlaceholderDate, $35a22f14a1f04b11$export$2440da353cedad43 as useDefaultProps};\n//# sourceMappingURL=utils.module.js.map\n","import {LocalizedStringDictionary as $bzTv4$LocalizedStringDictionary} from \"@internationalized/string\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n// These placeholders are based on the strings used by the <input type=\"date\">\n// implementations in Chrome and Firefox. Additional languages are supported\n// here than React Spectrum's typical translations.\nconst $3e3ed55ab2966714$var$placeholders = new (0, $bzTv4$LocalizedStringDictionary)({\n ach: {\n year: 'mwaka',\n month: 'dwe',\n day: 'nino'\n },\n af: {\n year: 'jjjj',\n month: 'mm',\n day: 'dd'\n },\n am: {\n year: \"\\u12D3\\u12D3\\u12D3\\u12D3\",\n month: \"\\u121A\\u121C\",\n day: \"\\u1240\\u1240\"\n },\n an: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n ar: {\n year: \"\\u0633\\u0646\\u0629\",\n month: \"\\u0634\\u0647\\u0631\",\n day: \"\\u064A\\u0648\\u0645\"\n },\n ast: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n az: {\n year: 'iiii',\n month: 'aa',\n day: 'gg'\n },\n be: {\n year: \"\\u0433\\u0433\\u0433\\u0433\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0434\\u0434\"\n },\n bg: {\n year: \"\\u0433\\u0433\\u0433\\u0433\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0434\\u0434\"\n },\n bn: {\n year: 'yyyy',\n month: \"\\u09AE\\u09BF\\u09AE\\u09BF\",\n day: 'dd'\n },\n br: {\n year: 'bbbb',\n month: 'mm',\n day: 'dd'\n },\n bs: {\n year: 'gggg',\n month: 'mm',\n day: 'dd'\n },\n ca: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n cak: {\n year: 'jjjj',\n month: 'ii',\n day: \"q'q'\"\n },\n ckb: {\n year: \"\\u0633\\u0627\\u06B5\",\n month: \"\\u0645\\u0627\\u0646\\u06AF\",\n day: \"\\u0695\\u06C6\\u0698\"\n },\n cs: {\n year: 'rrrr',\n month: 'mm',\n day: 'dd'\n },\n cy: {\n year: 'bbbb',\n month: 'mm',\n day: 'dd'\n },\n da: {\n year: \"\\xe5\\xe5\\xe5\\xe5\",\n month: 'mm',\n day: 'dd'\n },\n de: {\n year: 'jjjj',\n month: 'mm',\n day: 'tt'\n },\n dsb: {\n year: 'llll',\n month: 'mm',\n day: \"\\u017A\\u017A\"\n },\n el: {\n year: \"\\u03B5\\u03B5\\u03B5\\u03B5\",\n month: \"\\u03BC\\u03BC\",\n day: \"\\u03B7\\u03B7\"\n },\n en: {\n year: 'yyyy',\n month: 'mm',\n day: 'dd'\n },\n eo: {\n year: 'jjjj',\n month: 'mm',\n day: 'tt'\n },\n es: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n et: {\n year: 'aaaa',\n month: 'kk',\n day: 'pp'\n },\n eu: {\n year: 'uuuu',\n month: 'hh',\n day: 'ee'\n },\n fa: {\n year: \"\\u0633\\u0627\\u0644\",\n month: \"\\u0645\\u0627\\u0647\",\n day: \"\\u0631\\u0648\\u0632\"\n },\n ff: {\n year: 'hhhh',\n month: 'll',\n day: \"\\xf1\\xf1\"\n },\n fi: {\n year: 'vvvv',\n month: 'kk',\n day: 'pp'\n },\n fr: {\n year: 'aaaa',\n month: 'mm',\n day: 'jj'\n },\n fy: {\n year: 'jjjj',\n month: 'mm',\n day: 'dd'\n },\n ga: {\n year: 'bbbb',\n month: 'mm',\n day: 'll'\n },\n gd: {\n year: 'bbbb',\n month: 'mm',\n day: 'll'\n },\n gl: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n he: {\n year: \"\\u05E9\\u05E0\\u05D4\",\n month: \"\\u05D7\\u05D5\\u05D3\\u05E9\",\n day: \"\\u05D9\\u05D5\\u05DD\"\n },\n hr: {\n year: 'gggg',\n month: 'mm',\n day: 'dd'\n },\n hsb: {\n year: 'llll',\n month: 'mm',\n day: 'dd'\n },\n hu: {\n year: \"\\xe9\\xe9\\xe9\\xe9\",\n month: 'hh',\n day: 'nn'\n },\n ia: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n id: {\n year: 'tttt',\n month: 'bb',\n day: 'hh'\n },\n it: {\n year: 'aaaa',\n month: 'mm',\n day: 'gg'\n },\n ja: {\n year: \"\\u5E74\",\n month: \"\\u6708\",\n day: \"\\u65E5\"\n },\n ka: {\n year: \"\\u10EC\\u10EC\\u10EC\\u10EC\",\n month: \"\\u10D7\\u10D7\",\n day: \"\\u10E0\\u10E0\"\n },\n kk: {\n year: \"\\u0436\\u0436\\u0436\\u0436\",\n month: \"\\u0430\\u0430\",\n day: \"\\u043A\\u043A\"\n },\n kn: {\n year: \"\\u0CB5\\u0CB5\\u0CB5\\u0CB5\",\n month: \"\\u0CAE\\u0CBF\\u0CAE\\u0CC0\",\n day: \"\\u0CA6\\u0CBF\\u0CA6\\u0CBF\"\n },\n ko: {\n year: \"\\uC5F0\\uB3C4\",\n month: \"\\uC6D4\",\n day: \"\\uC77C\"\n },\n lb: {\n year: 'jjjj',\n month: 'mm',\n day: 'dd'\n },\n lo: {\n year: \"\\u0E9B\\u0E9B\\u0E9B\\u0E9B\",\n month: \"\\u0E94\\u0E94\",\n day: \"\\u0EA7\\u0EA7\"\n },\n lt: {\n year: 'mmmm',\n month: 'mm',\n day: 'dd'\n },\n lv: {\n year: 'gggg',\n month: 'mm',\n day: 'dd'\n },\n meh: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n ml: {\n year: \"\\u0D35\\u0D7C\\u0D37\\u0D02\",\n month: \"\\u0D2E\\u0D3E\\u0D38\\u0D02\",\n day: \"\\u0D24\\u0D40\\u0D2F\\u0D24\\u0D3F\"\n },\n ms: {\n year: 'tttt',\n month: 'mm',\n day: 'hh'\n },\n nb: {\n year: \"\\xe5\\xe5\\xe5\\xe5\",\n month: 'mm',\n day: 'dd'\n },\n nl: {\n year: 'jjjj',\n month: 'mm',\n day: 'dd'\n },\n nn: {\n year: \"\\xe5\\xe5\\xe5\\xe5\",\n month: 'mm',\n day: 'dd'\n },\n no: {\n year: \"\\xe5\\xe5\\xe5\\xe5\",\n month: 'mm',\n day: 'dd'\n },\n oc: {\n year: 'aaaa',\n month: 'mm',\n day: 'jj'\n },\n pl: {\n year: 'rrrr',\n month: 'mm',\n day: 'dd'\n },\n pt: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n rm: {\n year: 'oooo',\n month: 'mm',\n day: 'dd'\n },\n ro: {\n year: 'aaaa',\n month: 'll',\n day: 'zz'\n },\n ru: {\n year: \"\\u0433\\u0433\\u0433\\u0433\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0434\\u0434\"\n },\n sc: {\n year: 'aaaa',\n month: 'mm',\n day: 'dd'\n },\n scn: {\n year: 'aaaa',\n month: 'mm',\n day: 'jj'\n },\n sk: {\n year: 'rrrr',\n month: 'mm',\n day: 'dd'\n },\n sl: {\n year: 'llll',\n month: 'mm',\n day: 'dd'\n },\n sr: {\n year: \"\\u0433\\u0433\\u0433\\u0433\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0434\\u0434\"\n },\n sv: {\n year: \"\\xe5\\xe5\\xe5\\xe5\",\n month: 'mm',\n day: 'dd'\n },\n szl: {\n year: 'rrrr',\n month: 'mm',\n day: 'dd'\n },\n tg: {\n year: \"\\u0441\\u0441\\u0441\\u0441\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0440\\u0440\"\n },\n th: {\n year: \"\\u0E1B\\u0E1B\\u0E1B\\u0E1B\",\n month: \"\\u0E14\\u0E14\",\n day: \"\\u0E27\\u0E27\"\n },\n tr: {\n year: 'yyyy',\n month: 'aa',\n day: 'gg'\n },\n uk: {\n year: \"\\u0440\\u0440\\u0440\\u0440\",\n month: \"\\u043C\\u043C\",\n day: \"\\u0434\\u0434\"\n },\n 'zh-CN': {\n year: \"\\u5E74\",\n month: \"\\u6708\",\n day: \"\\u65E5\"\n },\n 'zh-TW': {\n year: \"\\u5E74\",\n month: \"\\u6708\",\n day: \"\\u65E5\"\n }\n}, 'en');\nfunction $3e3ed55ab2966714$export$d3f5c5e0a5023fa0(field, value, locale) {\n // Use the actual placeholder value for the era and day period fields.\n if (field === 'era' || field === 'dayPeriod') return value;\n if (field === 'year' || field === 'month' || field === 'day') return $3e3ed55ab2966714$var$placeholders.getStringForLocale(field, locale);\n // For time fields (e.g. hour, minute, etc.), use two dashes as the placeholder.\n return \"\\u2013\\u2013\";\n}\n\n\nexport {$3e3ed55ab2966714$export$d3f5c5e0a5023fa0 as getPlaceholder};\n//# sourceMappingURL=placeholders.module.js.map\n","import {convertValue as $35a22f14a1f04b11$export$61a490a80c552550, createPlaceholderDate as $35a22f14a1f04b11$export$66aa2b09de4b1ea5, getFormatOptions as $35a22f14a1f04b11$export$7e319ea407e63bc0, getValidationResult as $35a22f14a1f04b11$export$f18627323ab57ac0, useDefaultProps as $35a22f14a1f04b11$export$2440da353cedad43} from \"./utils.mjs\";\nimport {getPlaceholder as $3e3ed55ab2966714$export$d3f5c5e0a5023fa0} from \"./placeholders.mjs\";\nimport {DateFormatter as $g03ag$DateFormatter, isEqualCalendar as $g03ag$isEqualCalendar, toCalendar as $g03ag$toCalendar, GregorianCalendar as $g03ag$GregorianCalendar, getMinimumMonthInYear as $g03ag$getMinimumMonthInYear, getMinimumDayInMonth as $g03ag$getMinimumDayInMonth} from \"@internationalized/date\";\nimport {useFormValidationState as $g03ag$useFormValidationState} from \"@react-stately/form\";\nimport {useControlledState as $g03ag$useControlledState} from \"@react-stately/utils\";\nimport {useMemo as $g03ag$useMemo, useState as $g03ag$useState, useRef as $g03ag$useRef, useEffect as $g03ag$useEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nconst $3c0fc76039f1c516$var$EDITABLE_SEGMENTS = {\n year: true,\n month: true,\n day: true,\n hour: true,\n minute: true,\n second: true,\n dayPeriod: true,\n era: true\n};\nconst $3c0fc76039f1c516$var$PAGE_STEP = {\n year: 5,\n month: 2,\n day: 7,\n hour: 2,\n minute: 15,\n second: 15\n};\nconst $3c0fc76039f1c516$var$TYPE_MAPPING = {\n // Node seems to convert everything to lowercase...\n dayperiod: 'dayPeriod',\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts#named_years\n relatedYear: 'year',\n yearName: 'literal',\n unknown: 'literal'\n};\nfunction $3c0fc76039f1c516$export$60e84778edff6d26(props) {\n let { locale: locale, createCalendar: createCalendar, hideTimeZone: hideTimeZone, isDisabled: isDisabled = false, isReadOnly: isReadOnly = false, isRequired: isRequired = false, minValue: minValue, maxValue: maxValue, isDateUnavailable: isDateUnavailable } = props;\n let v = props.value || props.defaultValue || props.placeholderValue || null;\n let [granularity, defaultTimeZone] = (0, $35a22f14a1f04b11$export$2440da353cedad43)(v, props.granularity);\n let timeZone = defaultTimeZone || 'UTC';\n // props.granularity must actually exist in the value if one is provided.\n if (v && !(granularity in v)) throw new Error('Invalid granularity ' + granularity + ' for value ' + v.toString());\n let defaultFormatter = (0, $g03ag$useMemo)(()=>new (0, $g03ag$DateFormatter)(locale), [\n locale\n ]);\n let calendar = (0, $g03ag$useMemo)(()=>createCalendar(defaultFormatter.resolvedOptions().calendar), [\n createCalendar,\n defaultFormatter\n ]);\n var _props_defaultValue;\n let [value, setDate] = (0, $g03ag$useControlledState)(props.value, (_props_defaultValue = props.defaultValue) !== null && _props_defaultValue !== void 0 ? _props_defaultValue : null, props.onChange);\n let [initialValue] = (0, $g03ag$useState)(value);\n let calendarValue = (0, $g03ag$useMemo)(()=>{\n var _convertValue;\n return (_convertValue = (0, $35a22f14a1f04b11$export$61a490a80c552550)(value, calendar)) !== null && _convertValue !== void 0 ? _convertValue : null;\n }, [\n value,\n calendar\n ]);\n // We keep track of the placeholder date separately in state so that onChange is not called\n // until all segments are set. If the value === null (not undefined), then assume the component\n // is controlled, so use the placeholder as the value until all segments are entered so it doesn't\n // change from uncontrolled to controlled and emit a warning.\n let [placeholderDate, setPlaceholderDate] = (0, $g03ag$useState)(()=>(0, $35a22f14a1f04b11$export$66aa2b09de4b1ea5)(props.placeholderValue, granularity, calendar, defaultTimeZone));\n let val = calendarValue || placeholderDate;\n let showEra = calendar.identifier === 'gregory' && val.era === 'BC';\n let formatOpts = (0, $g03ag$useMemo)(()=>{\n var _props_maxGranularity;\n return {\n granularity: granularity,\n maxGranularity: (_props_maxGranularity = props.maxGranularity) !== null && _props_maxGranularity !== void 0 ? _props_maxGranularity : 'year',\n timeZone: defaultTimeZone,\n hideTimeZone: hideTimeZone,\n hourCycle: props.hourCycle,\n showEra: showEra,\n shouldForceLeadingZeros: props.shouldForceLeadingZeros\n };\n }, [\n props.maxGranularity,\n granularity,\n props.hourCycle,\n props.shouldForceLeadingZeros,\n defaultTimeZone,\n hideTimeZone,\n showEra\n ]);\n let opts = (0, $g03ag$useMemo)(()=>(0, $35a22f14a1f04b11$export$7e319ea407e63bc0)({}, formatOpts), [\n formatOpts\n ]);\n let dateFormatter = (0, $g03ag$useMemo)(()=>new (0, $g03ag$DateFormatter)(locale, opts), [\n locale,\n opts\n ]);\n let resolvedOptions = (0, $g03ag$useMemo)(()=>dateFormatter.resolvedOptions(), [\n dateFormatter\n ]);\n // Determine how many editable segments there are for validation purposes.\n // The result is cached for performance.\n let allSegments = (0, $g03ag$useMemo)(()=>dateFormatter.formatToParts(new Date()).filter((seg)=>$3c0fc76039f1c516$var$EDITABLE_SEGMENTS[seg.type]).reduce((p, seg)=>(p[$3c0fc76039f1c516$var$TYPE_MAPPING[seg.type] || seg.type] = true, p), {}), [\n dateFormatter\n ]);\n let [validSegments, setValidSegments] = (0, $g03ag$useState)(()=>props.value || props.defaultValue ? {\n ...allSegments\n } : {});\n let clearedSegment = (0, $g03ag$useRef)(null);\n // Reset placeholder when calendar changes\n let lastCalendar = (0, $g03ag$useRef)(calendar);\n (0, $g03ag$useEffect)(()=>{\n if (!(0, $g03ag$isEqualCalendar)(calendar, lastCalendar.current)) {\n lastCalendar.current = calendar;\n setPlaceholderDate((placeholder)=>Object.keys(validSegments).length > 0 ? (0, $g03ag$toCalendar)(placeholder, calendar) : (0, $35a22f14a1f04b11$export$66aa2b09de4b1ea5)(props.placeholderValue, granularity, calendar, defaultTimeZone));\n }\n }, [\n calendar,\n granularity,\n validSegments,\n defaultTimeZone,\n props.placeholderValue\n ]);\n // If there is a value prop, and some segments were previously placeholders, mark them all as valid.\n if (value && Object.keys(validSegments).length < Object.keys(allSegments).length) {\n validSegments = {\n ...allSegments\n };\n setValidSegments(validSegments);\n }\n // If the value is set to null and all segments are valid, reset the placeholder.\n if (value == null && Object.keys(validSegments).length === Object.keys(allSegments).length) {\n validSegments = {};\n setValidSegments(validSegments);\n setPlaceholderDate((0, $35a22f14a1f04b11$export$66aa2b09de4b1ea5)(props.placeholderValue, granularity, calendar, defaultTimeZone));\n }\n // If all segments are valid, use the date from state, otherwise use the placeholder date.\n let displayValue = calendarValue && Object.keys(validSegments).length >= Object.keys(allSegments).length ? calendarValue : placeholderDate;\n let setValue = (newValue)=>{\n if (props.isDisabled || props.isReadOnly) return;\n let validKeys = Object.keys(validSegments);\n let allKeys = Object.keys(allSegments);\n // if all the segments are completed or a timefield with everything but am/pm set the time, also ignore when am/pm cleared\n if (newValue == null) {\n setDate(null);\n setPlaceholderDate((0, $35a22f14a1f04b11$export$66aa2b09de4b1ea5)(props.placeholderValue, granularity, calendar, defaultTimeZone));\n setValidSegments({});\n } else if (validKeys.length === 0 && clearedSegment.current == null || validKeys.length >= allKeys.length || validKeys.length === allKeys.length - 1 && allSegments.dayPeriod && !validSegments.dayPeriod && clearedSegment.current !== 'dayPeriod') {\n // If the field was empty (no valid segments) or all segments are completed, commit the new value.\n // When committing from an empty state, mark every segment as valid so value is committed.\n if (validKeys.length === 0) {\n validSegments = {\n ...allSegments\n };\n setValidSegments(validSegments);\n }\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = (0, $g03ag$toCalendar)(newValue, (v === null || v === void 0 ? void 0 : v.calendar) || new (0, $g03ag$GregorianCalendar)());\n setDate(newValue);\n } else setPlaceholderDate(newValue);\n clearedSegment.current = null;\n };\n let dateValue = (0, $g03ag$useMemo)(()=>displayValue.toDate(timeZone), [\n displayValue,\n timeZone\n ]);\n let segments = (0, $g03ag$useMemo)(()=>$3c0fc76039f1c516$var$processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity), [\n dateValue,\n validSegments,\n dateFormatter,\n resolvedOptions,\n displayValue,\n calendar,\n locale,\n granularity\n ]);\n // When the era field appears, mark it valid if the year field is already valid.\n // If the era field disappears, remove it from the valid segments.\n if (allSegments.era && validSegments.year && !validSegments.era) {\n validSegments.era = true;\n setValidSegments({\n ...validSegments\n });\n } else if (!allSegments.era && validSegments.era) {\n delete validSegments.era;\n setValidSegments({\n ...validSegments\n });\n }\n let markValid = (part)=>{\n validSegments[part] = true;\n if (part === 'year' && allSegments.era) validSegments.era = true;\n setValidSegments({\n ...validSegments\n });\n };\n let adjustSegment = (type, amount)=>{\n if (!validSegments[type]) {\n markValid(type);\n let validKeys = Object.keys(validSegments);\n let allKeys = Object.keys(allSegments);\n if (validKeys.length >= allKeys.length || validKeys.length === allKeys.length - 1 && allSegments.dayPeriod && !validSegments.dayPeriod) setValue(displayValue);\n } else setValue($3c0fc76039f1c516$var$addSegment(displayValue, type, amount, resolvedOptions));\n };\n let builtinValidation = (0, $g03ag$useMemo)(()=>(0, $35a22f14a1f04b11$export$f18627323ab57ac0)(value, minValue, maxValue, isDateUnavailable, formatOpts), [\n value,\n minValue,\n maxValue,\n isDateUnavailable,\n formatOpts\n ]);\n let validation = (0, $g03ag$useFormValidationState)({\n ...props,\n value: value,\n builtinValidation: builtinValidation\n });\n let isValueInvalid = validation.displayValidation.isInvalid;\n let validationState = props.validationState || (isValueInvalid ? 'invalid' : null);\n var _props_defaultValue1, _props_maxGranularity;\n return {\n ...validation,\n value: calendarValue,\n defaultValue: (_props_defaultValue1 = props.defaultValue) !== null && _props_defaultValue1 !== void 0 ? _props_defaultValue1 : initialValue,\n dateValue: dateValue,\n calendar: calendar,\n setValue: setValue,\n segments: segments,\n dateFormatter: dateFormatter,\n validationState: validationState,\n isInvalid: isValueInvalid,\n granularity: granularity,\n maxGranularity: (_props_maxGranularity = props.maxGranularity) !== null && _props_maxGranularity !== void 0 ? _props_maxGranularity : 'year',\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isRequired: isRequired,\n increment (part) {\n adjustSegment(part, 1);\n },\n decrement (part) {\n adjustSegment(part, -1);\n },\n incrementPage (part) {\n adjustSegment(part, $3c0fc76039f1c516$var$PAGE_STEP[part] || 1);\n },\n decrementPage (part) {\n adjustSegment(part, -($3c0fc76039f1c516$var$PAGE_STEP[part] || 1));\n },\n setSegment (part, v) {\n markValid(part);\n setValue($3c0fc76039f1c516$var$setSegment(displayValue, part, v, resolvedOptions));\n },\n confirmPlaceholder () {\n if (props.isDisabled || props.isReadOnly) return;\n // Confirm the placeholder if only the day period is not filled in.\n let validKeys = Object.keys(validSegments);\n let allKeys = Object.keys(allSegments);\n if (validKeys.length === allKeys.length - 1 && allSegments.dayPeriod && !validSegments.dayPeriod) {\n validSegments = {\n ...allSegments\n };\n setValidSegments(validSegments);\n setValue(displayValue.copy());\n }\n },\n clearSegment (part) {\n delete validSegments[part];\n clearedSegment.current = part;\n setValidSegments({\n ...validSegments\n });\n let placeholder = (0, $35a22f14a1f04b11$export$66aa2b09de4b1ea5)(props.placeholderValue, granularity, calendar, defaultTimeZone);\n let value = displayValue;\n // Reset day period to default without changing the hour.\n if (part === 'dayPeriod' && 'hour' in displayValue && 'hour' in placeholder) {\n let isPM = displayValue.hour >= 12;\n let shouldBePM = placeholder.hour >= 12;\n if (isPM && !shouldBePM) value = displayValue.set({\n hour: displayValue.hour - 12\n });\n else if (!isPM && shouldBePM) value = displayValue.set({\n hour: displayValue.hour + 12\n });\n } else if (part === 'hour' && 'hour' in displayValue && displayValue.hour >= 12 && validSegments.dayPeriod) value = displayValue.set({\n hour: placeholder['hour'] + 12\n });\n else if (part in displayValue) value = displayValue.set({\n [part]: placeholder[part]\n });\n setDate(null);\n setValue(value);\n },\n formatValue (fieldOptions) {\n if (!calendarValue) return '';\n let formatOptions = (0, $35a22f14a1f04b11$export$7e319ea407e63bc0)(fieldOptions, formatOpts);\n let formatter = new (0, $g03ag$DateFormatter)(locale, formatOptions);\n return formatter.format(dateValue);\n },\n getDateFormatter (locale, formatOptions) {\n let newOptions = {\n ...formatOpts,\n ...formatOptions\n };\n let newFormatOptions = (0, $35a22f14a1f04b11$export$7e319ea407e63bc0)({}, newOptions);\n return new (0, $g03ag$DateFormatter)(locale, newFormatOptions);\n }\n };\n}\nfunction $3c0fc76039f1c516$var$processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity) {\n let timeValue = [\n 'hour',\n 'minute',\n 'second'\n ];\n let segments = dateFormatter.formatToParts(dateValue);\n let processedSegments = [];\n for (let segment of segments){\n let type = $3c0fc76039f1c516$var$TYPE_MAPPING[segment.type] || segment.type;\n let isEditable = $3c0fc76039f1c516$var$EDITABLE_SEGMENTS[type];\n if (type === 'era' && calendar.getEras().length === 1) isEditable = false;\n let isPlaceholder = $3c0fc76039f1c516$var$EDITABLE_SEGMENTS[type] && !validSegments[type];\n let placeholder = $3c0fc76039f1c516$var$EDITABLE_SEGMENTS[type] ? (0, $3e3ed55ab2966714$export$d3f5c5e0a5023fa0)(type, segment.value, locale) : null;\n let dateSegment = {\n type: type,\n text: isPlaceholder ? placeholder : segment.value,\n ...$3c0fc76039f1c516$var$getSegmentLimits(displayValue, type, resolvedOptions),\n isPlaceholder: isPlaceholder,\n placeholder: placeholder,\n isEditable: isEditable\n };\n // There is an issue in RTL languages where time fields render (minute:hour) instead of (hour:minute).\n // To force an LTR direction on the time field since, we wrap the time segments in LRI (left-to-right) isolate unicode. See https://www.w3.org/International/questions/qa-bidi-unicode-controls.\n // These unicode characters will be added to the array of processed segments as literals and will mark the start and end of the embedded direction change.\n if (type === 'hour') {\n // This marks the start of the embedded direction change.\n processedSegments.push({\n type: 'literal',\n text: '\\u2066',\n ...$3c0fc76039f1c516$var$getSegmentLimits(displayValue, 'literal', resolvedOptions),\n isPlaceholder: false,\n placeholder: '',\n isEditable: false\n });\n processedSegments.push(dateSegment);\n // This marks the end of the embedded direction change in the case that the granularity it set to \"hour\".\n if (type === granularity) processedSegments.push({\n type: 'literal',\n text: '\\u2069',\n ...$3c0fc76039f1c516$var$getSegmentLimits(displayValue, 'literal', resolvedOptions),\n isPlaceholder: false,\n placeholder: '',\n isEditable: false\n });\n } else if (timeValue.includes(type) && type === granularity) {\n processedSegments.push(dateSegment);\n // This marks the end of the embedded direction change.\n processedSegments.push({\n type: 'literal',\n text: '\\u2069',\n ...$3c0fc76039f1c516$var$getSegmentLimits(displayValue, 'literal', resolvedOptions),\n isPlaceholder: false,\n placeholder: '',\n isEditable: false\n });\n } else // We only want to \"wrap\" the unicode around segments that are hour, minute, or second. If they aren't, just process as normal.\n processedSegments.push(dateSegment);\n }\n return processedSegments;\n}\nfunction $3c0fc76039f1c516$var$getSegmentLimits(date, type, options) {\n switch(type){\n case 'era':\n {\n let eras = date.calendar.getEras();\n return {\n value: eras.indexOf(date.era),\n minValue: 0,\n maxValue: eras.length - 1\n };\n }\n case 'year':\n return {\n value: date.year,\n minValue: 1,\n maxValue: date.calendar.getYearsInEra(date)\n };\n case 'month':\n return {\n value: date.month,\n minValue: (0, $g03ag$getMinimumMonthInYear)(date),\n maxValue: date.calendar.getMonthsInYear(date)\n };\n case 'day':\n return {\n value: date.day,\n minValue: (0, $g03ag$getMinimumDayInMonth)(date),\n maxValue: date.calendar.getDaysInMonth(date)\n };\n }\n if ('hour' in date) switch(type){\n case 'dayPeriod':\n return {\n value: date.hour >= 12 ? 12 : 0,\n minValue: 0,\n maxValue: 12\n };\n case 'hour':\n if (options.hour12) {\n let isPM = date.hour >= 12;\n return {\n value: date.hour,\n minValue: isPM ? 12 : 0,\n maxValue: isPM ? 23 : 11\n };\n }\n return {\n value: date.hour,\n minValue: 0,\n maxValue: 23\n };\n case 'minute':\n return {\n value: date.minute,\n minValue: 0,\n maxValue: 59\n };\n case 'second':\n return {\n value: date.second,\n minValue: 0,\n maxValue: 59\n };\n }\n return {};\n}\nfunction $3c0fc76039f1c516$var$addSegment(value, part, amount, options) {\n switch(part){\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return value.cycle(part, amount, {\n round: part === 'year'\n });\n }\n if ('hour' in value) switch(part){\n case 'dayPeriod':\n {\n let hours = value.hour;\n let isPM = hours >= 12;\n return value.set({\n hour: isPM ? hours - 12 : hours + 12\n });\n }\n case 'hour':\n case 'minute':\n case 'second':\n return value.cycle(part, amount, {\n round: part !== 'hour',\n hourCycle: options.hour12 ? 12 : 24\n });\n }\n throw new Error('Unknown segment: ' + part);\n}\nfunction $3c0fc76039f1c516$var$setSegment(value, part, segmentValue, options) {\n switch(part){\n case 'day':\n case 'month':\n case 'year':\n case 'era':\n return value.set({\n [part]: segmentValue\n });\n }\n if ('hour' in value && typeof segmentValue === 'number') switch(part){\n case 'dayPeriod':\n {\n let hours = value.hour;\n let wasPM = hours >= 12;\n let isPM = segmentValue >= 12;\n if (isPM === wasPM) return value;\n return value.set({\n hour: wasPM ? hours - 12 : hours + 12\n });\n }\n case 'hour':\n // In 12 hour time, ensure that AM/PM does not change\n if (options.hour12) {\n let hours = value.hour;\n let wasPM = hours >= 12;\n if (!wasPM && segmentValue === 12) segmentValue = 0;\n if (wasPM && segmentValue < 12) segmentValue += 12;\n }\n // fallthrough\n case 'minute':\n case 'second':\n return value.set({\n [part]: segmentValue\n });\n }\n throw new Error('Unknown segment: ' + part);\n}\n\n\nexport {$3c0fc76039f1c516$export$60e84778edff6d26 as useDateFieldState};\n//# sourceMappingURL=useDateFieldState.module.js.map\n","import type { DateValue } from '@internationalized/date';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { type AriaDateFieldProps, useDateField, useDateSegment } from '@react-aria/datepicker';\nimport { useLocale } from '@react-aria/i18n';\nimport { mergeRefs } from '@react-aria/utils';\nimport {\n type DateFieldState,\n type DateSegment as DateSegmentObj,\n type SegmentType,\n useDateFieldState,\n} from '@react-stately/datepicker';\nimport { forwardRef, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { createCalendar } from 'design-system/components/DatePicker/common';\nimport { isFocused, isFocusedVisible, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { focusWithinOutline } from 'design-system/mixins/focus';\nimport inputMixin, { type InputMixinProps, type InputSizes } from 'design-system/mixins/input';\nimport type PseudoClassProps from 'design-system/types/PseudoClassProps';\n\ntype DateSegmentContainerProps = { $isComma?: boolean; $isTimezone?: boolean } & PseudoClassProps;\nconst DateSegmentContainer = styled.div<DateSegmentContainerProps>`\n font-variant-numeric: tabular-nums;\n box-sizing: content-box;\n text-align: end;\n\n ${isFocused} {\n outline: 2px solid ${Color.BorderFocus};\n outline-offset: 1px;\n background-color: ${Color.CorePurple200};\n }\n\n ${({ $isComma, $isTimezone }) =>\n ($isComma || $isTimezone) &&\n css`\n margin-left: 0.25ch;\n margin-right: 0.25ch;\n `}\n\n ${({ $isTimezone }) =>\n $isTimezone &&\n css`\n color: ${Color.TextSecondary};\n pointer-events: none;\n\n &:focus {\n outline: none;\n background-color: transparent;\n }\n `}\n`;\n\ntype DateSegmentPlaceholderProps = { isPlaceholder?: boolean; type: SegmentType };\nconst DateSegmentPlaceholder = styled.span<DateSegmentPlaceholderProps>`\n display: block;\n width: 100%;\n pointer-events: none;\n\n &:focus {\n outline: none;\n }\n\n ${({ isPlaceholder }) =>\n isPlaceholder\n ? css`\n height: 100%;\n color: ${({ theme }) => theme.color.text.tertiary};\n `\n : css`\n visibility: hidden;\n height: 0;\n `}\n ${({ type }) =>\n type === 'literal' &&\n css`\n padding-left: ${Spacing[1]};\n padding-right: ${Spacing[1]};\n `}\n ${({ type, isPlaceholder }) =>\n type === 'month' &&\n isPlaceholder &&\n css`\n width: 3ch;\n `}\n`;\n\ninterface DateSegmentProps {\n segment: DateSegmentObj;\n state: DateFieldState;\n}\n\nfunction DateSegment({ segment, state }: DateSegmentProps) {\n const ref = useRef();\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n let minWidth: string;\n\n switch (segment.type) {\n case 'dayPeriod': {\n minWidth = '2.75ch';\n break;\n }\n default: {\n minWidth = `${segment.maxValue != null && String(segment.maxValue).length + 0.25}ch`;\n break;\n }\n }\n\n const isComma = segment.type === 'literal' && segment.text === ', ';\n const isTimezone = segment.type === 'timeZoneName';\n\n return (\n <DateSegmentContainer\n {...segmentProps}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref={ref}\n style={{\n ...segmentProps.style,\n minWidth,\n }}\n $isComma={isComma}\n $isTimezone={isTimezone}\n {...(isTimezone && { tabIndex: -1, role: 'presentation' })}\n >\n {/* Always reserve space for the placeholder, to prevent layout shift when editing. */}\n {segment.placeholder && (\n <DateSegmentPlaceholder\n aria-hidden='true'\n isPlaceholder={segment.isPlaceholder}\n type={segment.type}\n >\n {segment.placeholder}\n </DateSegmentPlaceholder>\n )}\n {segment.isPlaceholder ? '' : segment.text}\n </DateSegmentContainer>\n );\n}\n\nconst InputBox = styled.div<InputMixinProps & { $inputPosition: 'start' | 'end' }>`\n ${inputMixin};\n display: flex;\n padding-left: ${Spacing[2]};\n padding-right: ${Spacing[2]};\n line-height: 1;\n position: relative;\n\n &${isFocusedVisible}${isNotDisabled} {\n position: relative;\n z-index: 1;\n }\n\n ${focusWithinOutline}\n\n ${({ $inputPosition }) => {\n switch ($inputPosition) {\n case 'start': {\n return css`\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n `;\n }\n case 'end': {\n return css`\n margin-left: -1px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n `;\n }\n }\n }}\n`;\n\ninterface DateFieldProps extends AriaDateFieldProps<DateValue> {\n inputPosition?: 'start' | 'end';\n focused?: boolean;\n readOnly?: boolean;\n value?: DateValue;\n disabled?: boolean;\n size?: InputSizes;\n style?: React.CSSProperties;\n dateFieldProps?: {\n style?: React.CSSProperties;\n };\n hasError?: boolean;\n}\n\nexport const DateField = forwardRef<HTMLDivElement, DateFieldProps>(function DateField(\n props: DateFieldProps,\n forwardedRef,\n) {\n const { locale } = useLocale();\n const state = useDateFieldState({\n ...props,\n locale,\n createCalendar,\n });\n\n const ref = useRef<HTMLDivElement>();\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n const { fieldProps } = useDateField(props, state, ref);\n\n return (\n <InputBox\n {...fieldProps}\n {...(props.dateFieldProps || {})}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref={mergeRefs<HTMLDivElement>(ref, forwardedRef)}\n focused={props.focused}\n disabled={props.disabled}\n aria-label={props['aria-label']}\n $size={props.size ?? 'md'}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n $inputPosition={props.inputPosition}\n hasError={props.hasError}\n >\n {state.segments.map((segment, i) => (\n <DateSegment key={i} segment={segment} state={state} />\n ))}\n </InputBox>\n );\n});\n\nexport default DateField;\n","import type { DateValue } from '@internationalized/date';\nimport type { DatePickerProps as DatePickerBase } from '@react-types/datepicker';\nimport { type RefObject, useCallback, useRef, useState } from 'react';\nimport { mergeProps, useButton, useDatePicker, useFocusWithin, VisuallyHidden } from 'react-aria';\nimport { useDatePickerState } from 'react-stately';\n\nimport Calendar from 'design-system/components/DatePicker/Calendar/Calendar';\nimport DateField from 'design-system/components/DatePicker/DateField';\nimport Popover from 'design-system/components/Popover';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport type { InputSizes } from 'design-system/mixins/input';\n\nexport interface DatePickerProps extends DatePickerBase<DateValue> {\n id?: string;\n dateFieldProps?: {\n style?: React.CSSProperties;\n };\n disabled?: boolean;\n size?: InputSizes;\n useModalZIndex?: boolean;\n}\n\nconst OpenButton = ({ calendarRef }: { calendarRef: RefObject<HTMLElement> }) => {\n const openCalBtnRef = useRef<HTMLButtonElement>(null);\n const { buttonProps } = useButton(\n {\n onPress: () => {\n if (calendarRef.current) {\n (\n calendarRef.current.querySelector('button[aria-label=\"Previous\"]') as HTMLButtonElement\n ).focus();\n }\n },\n },\n openCalBtnRef,\n );\n\n return <button {...buttonProps} ref={openCalBtnRef} aria-label='Open calendar' />;\n};\n\nexport const DatePicker = (props: DatePickerProps) => {\n const state = useDatePickerState(props);\n const ref = useRef<HTMLDivElement>(null);\n const fieldRef = useRef<HTMLDivElement>(null);\n const { groupProps, fieldProps, calendarProps } = useDatePicker(props, state, ref);\n const calendarRef = useRef<HTMLDivElement>(null);\n const [isClosing, setIsClosing] = useState(false);\n\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: () => {\n if (!state.isOpen && !isClosing) {\n state.setOpen(true);\n }\n },\n onBlurWithin: (e) => {\n // Close calendar if next target is not within the calendar\n if (e.relatedTarget && !calendarRef?.current?.contains(e.relatedTarget) && state.isOpen) {\n state.setOpen(false);\n }\n },\n });\n\n const handleOutsideClick = (e: Event) => {\n const target = e.target as Node;\n // Don't close if clicking on the date input itself\n if (ref.current?.contains(target)) {\n return;\n }\n if (state.isOpen) {\n state.setOpen(false);\n }\n };\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' && !state.isOpen) {\n event.preventDefault();\n state.setOpen(true);\n }\n },\n [state],\n );\n\n return (\n <div css={{ display: 'flex', flexDirection: 'column' }}>\n <Popover\n open={state.isOpen}\n modal={false}\n contentProps={{\n style: { zIndex: props.useModalZIndex ? Z_INDICES.modalDropdown : Z_INDICES.dropdown },\n align: 'start',\n 'aria-modal': true,\n onInteractOutside: handleOutsideClick,\n onEscapeKeyDown: () => {\n state.setOpen(false);\n },\n onCloseAutoFocus: (e: Event) => {\n // Prevent Radix's default focus restoration\n e.preventDefault();\n setIsClosing(true);\n\n // Manually restore focus to the date field\n if (fieldRef.current) {\n const firstEditableSegment = fieldRef.current.querySelector('[tabindex=\"0\"]');\n if (firstEditableSegment instanceof HTMLElement) {\n firstEditableSegment.focus();\n }\n }\n\n // Reset flag after focus is done\n requestAnimationFrame(() => setIsClosing(false));\n },\n noPadding: true,\n }}\n >\n <Popover.Trigger asChild>\n <div\n {...mergeProps(groupProps, focusWithinProps)}\n ref={ref}\n css={{ display: 'flex', position: 'relative' }}\n >\n <DateField\n ref={fieldRef}\n id={props.id}\n dateFieldProps={props.dateFieldProps}\n disabled={props.disabled}\n size={props.size}\n {...mergeProps(fieldProps, { onKeyDown: handleKeyDown })}\n value={fieldProps.value ?? undefined}\n />\n <VisuallyHidden>\n <OpenButton calendarRef={calendarRef} />\n </VisuallyHidden>\n </div>\n </Popover.Trigger>\n <Calendar\n {...{ ...calendarProps, autoFocus: undefined }}\n calendarRef={calendarRef}\n id='calendar-popover'\n />\n </Popover>\n </div>\n );\n};\n\nexport default DatePicker;\n","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get isUniversal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nexport function dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID;\n\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map((t) => unitForToken(t, locale)),\n disqualifyingUnit = units.find((t) => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n parseFromTokens,\n explainFromTokens,\n formatOptsToTokens,\n expandMacroTokens,\n} from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n usesLocalWeekValues,\n isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone),\n loc = Locale.fromObject(opts),\n tsNow = Settings.now();\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = zone.offset(tsNow);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = tsNow;\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","import {\n type CalendarDate,\n type DateValue,\n endOfMonth,\n endOfYear,\n startOfMonth,\n startOfYear,\n today,\n} from '@internationalized/date';\nimport { Color } from '@persona/design-tokens';\nimport type { RangeValue } from '@react-types/shared';\nimport { Settings } from 'luxon';\nimport { memo, useRef } from 'react';\nimport { mergeProps, useButton } from 'react-aria';\nimport type { RangeCalendarState } from 'react-stately';\nimport styled, { css } from 'styled-components';\n\nimport { MenuItem, MenuList } from 'design-system/components/Menu';\nimport { isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\n\ninterface DateRangePreset {\n label: string;\n range: RangeValue<CalendarDate>;\n}\n\nconst getDefaultPresets = (tz: string) => {\n const now = today(tz);\n return [\n {\n label: 'Last 7 days',\n range: {\n start: now.subtract({ days: 7 }),\n end: now,\n },\n },\n {\n label: 'Last 14 days',\n range: {\n start: now.subtract({ days: 14 }),\n end: now,\n },\n },\n {\n label: 'Last 30 days',\n range: {\n start: now.subtract({ days: 30 }),\n end: now,\n },\n },\n {\n label: 'This month',\n range: {\n start: startOfMonth(now),\n // Effectively, this should always be today, since we can't look forward\n end: now,\n },\n },\n {\n label: 'Last month',\n range: {\n start: startOfMonth(now.subtract({ months: 1 })),\n end: endOfMonth(now.subtract({ months: 1 })),\n },\n },\n {\n label: 'This year',\n range: {\n start: startOfYear(now),\n end: now,\n },\n },\n {\n label: 'Last year',\n range: {\n start: startOfYear(now.subtract({ years: 1 })),\n end: endOfYear(now.subtract({ years: 1 })),\n },\n },\n ];\n};\n\n/**\n * Compare two date values by year/month/day only, ignoring time components.\n */\nconst datesMatchByDay = (a: CalendarDate, b: DateValue): boolean =>\n a.year === b.year && a.month === b.month && a.day === b.day;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\ninterface PresetButtonProps {\n state: RangeCalendarState;\n preset: DateRangePreset;\n isSelected: boolean;\n setDateMode: (mode: 'start' | 'end' | null) => void;\n}\n\nconst StyledPresetButton = styled(MenuItem)`\n ${({ selected }) =>\n !selected &&\n css`\n &${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {\n background-color: transparent;\n }\n `}\n\n &:focus-visible {\n // MenuItems default to outline: none, so we need to override it here.\n outline: 2px solid ${Color.BorderFocus} !important;\n outline-offset: 1px;\n }\n`;\n\ninterface DateRangePickerPresetsProps {\n presetsFn?: (tz: string) => DateRangePreset[];\n state: RangeCalendarState;\n setDateMode: (mode: 'start' | 'end' | null) => void;\n}\n\nconst PresetButton = ({ state, preset, isSelected, setDateMode, ...props }: PresetButtonProps) => {\n const ref = useRef<HTMLDivElement>();\n const { buttonProps } = useButton(\n {\n onPress: () => {\n state.setValue(preset.range);\n setDateMode(null);\n },\n },\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref,\n );\n\n // Strip aria-current from useButton's props so it doesn't override MenuItem's.\n const { 'aria-current': _ariaCurrent, ...mergedProps } = mergeProps(props, buttonProps);\n\n return (\n <StyledPresetButton\n selected={isSelected}\n {...mergedProps}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref={ref}\n >\n {preset.label}\n </StyledPresetButton>\n );\n};\n\nconst DateRangePickerPresets = ({\n presetsFn = getDefaultPresets,\n state,\n setDateMode,\n ...props\n}: DateRangePickerPresetsProps) => {\n // The reason that we need to do this at render time is because the default timezone for moment is set after\n // the current User's timezone is loaded. Thus we woudln't be getting the right timezone unless if we defer getting\n // the timezone.\n const presets = presetsFn(Settings.defaultZone.name);\n\n // First match wins — prevents multiple presets appearing selected when ranges overlap.\n const { value } = state;\n const selectedPresetIndex = value\n ? presets.findIndex(\n (preset) =>\n datesMatchByDay(preset.range.start, value.start) &&\n datesMatchByDay(preset.range.end, value.end),\n )\n : -1;\n\n return (\n <Container {...props}>\n <MenuList aria-label='Date range presets'>\n {presets.map((preset, i) => (\n <PresetButton\n key={i}\n preset={preset}\n state={state}\n setDateMode={setDateMode}\n isSelected={i === selectedPresetIndex}\n />\n ))}\n </MenuList>\n </Container>\n );\n};\n\n// Memoize to prevent re-renders when irrelevant state properties change\n// Only re-render when the actual selected date range (state.value) changes\nconst arePropsEqual = (\n prevProps: DateRangePickerPresetsProps,\n nextProps: DateRangePickerPresetsProps,\n) => {\n // Only care about the selected date range, not internal calendar state like isInvalid, visibleRange, etc.\n const prevValue = prevProps.state.value;\n const nextValue = nextProps.state.value;\n\n // If both are null/undefined, they're equal\n if (!prevValue && !nextValue) {\n return true;\n }\n // If only one is null/undefined, they're different\n if (!prevValue || !nextValue) {\n return false;\n }\n\n // Compare the actual date values\n return (\n prevValue.start.compare(nextValue.start) === 0 && prevValue.end.compare(nextValue.end) === 0\n );\n};\n\nexport default memo(DateRangePickerPresets, arePropsEqual);\n","import { type CalendarDate, type DateValue, toCalendarDateTime } from '@internationalized/date';\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport { ArrowLeftIcon, ArrowRightIcon } from '@persona/icons';\nimport { range } from 'lodash/fp';\nimport { Settings } from 'luxon';\nimport { type Ref, useRef } from 'react';\nimport {\n type DateRange,\n type RangeCalendarProps as RangeCalendarBaseProps,\n useDateFormatter,\n useLocale,\n useRangeCalendar,\n VisuallyHidden,\n} from 'react-aria';\nimport { type RangeCalendarState, useRangeCalendarState } from 'react-stately';\nimport styled from 'styled-components';\n\nimport Card from 'design-system/components/Card';\nimport {\n CalendarButton,\n CalendarContainer,\n CalendarHeader,\n CalendarHeading,\n} from 'design-system/components/DatePicker/Calendar/CalendarBase';\nimport CalendarGrid from 'design-system/components/DatePicker/Calendar/CalendarGrid';\nimport RangeCalendarPresets from 'design-system/components/DatePicker/Calendar/RangeCalendarPresets';\nimport { createCalendar } from 'design-system/components/DatePicker/common';\n\nconst RangeCalendarHeader = styled(CalendarHeader)`\n gap: ${Spacing[5]};\n`;\n\nconst CalendarHeaderMonth = styled.div`\n display: grid;\n grid-template-columns: minmax(auto, 1fr) auto minmax(auto, 1fr);\n grid-template-areas: 'prev title next';\n width: 266px;\n align-items: center;\n`;\n\nconst CalendarGrids = styled.div`\n display: flex;\n gap: ${Spacing[5]};\n align-items: start;\n`;\n\nconst PrevButton = styled(CalendarButton)`\n grid-area: prev;\n justify-self: start;\n border-radius: ${BorderRadius.Sm};\n`;\n\nconst NextButton = styled(CalendarButton)`\n grid-area: next;\n justify-self: end;\n border-radius: ${BorderRadius.Sm};\n`;\n\nconst RangeCalendarHeading = styled(CalendarHeading)`\n grid-area: title;\n`;\n\nconst RangeCalendarContainer = styled.div`\n display: flex;\n`;\n\nconst PresetsContainer = styled(Card.Body)`\n border-right: 1px solid ${Color.BorderHairline};\n`;\n\nexport interface RangeCalendarProps extends RangeCalendarBaseProps<DateValue> {\n minDate?: RangeCalendarBaseProps<DateValue>['minValue'];\n maxDate?: RangeCalendarBaseProps<DateValue>['maxValue'];\n calendarRef?: Ref<HTMLDivElement>;\n hidePresets?: boolean;\n onSelectDate?: (d: CalendarDate) => void;\n setDateMode: (mode: 'start' | 'end' | null) => void;\n /**\n * From setValue of DateRangePicker\n */\n setValue: (value: DateRange | null) => void;\n granularity: 'day' | 'hour' | 'minute' | 'second';\n}\n\nconst RangeCalendar = ({\n calendarRef,\n onSelectDate,\n minDate,\n maxDate,\n hidePresets,\n setDateMode,\n setValue,\n granularity,\n ...props\n}: RangeCalendarProps) => {\n const visibleMonths = 2;\n const { locale } = useLocale();\n // Must gather the TZ from the user's settings.\n const timezoneName = Settings.defaultZone.name;\n const rangeCalendarState = useRangeCalendarState({\n ...props,\n minValue: minDate,\n maxValue: maxDate,\n visibleDuration: {\n months: visibleMonths,\n },\n locale,\n createCalendar,\n });\n\n const state: RangeCalendarState = {\n ...rangeCalendarState,\n setValue: (value) => {\n if (!value || granularity === 'day') {\n rangeCalendarState.setValue(value);\n return;\n }\n\n setValue({\n start: toCalendarDateTime(value.start),\n end: toCalendarDateTime(value.end),\n });\n },\n selectDate: (date) => {\n if (onSelectDate) {\n onSelectDate(date);\n rangeCalendarState.setAnchorDate(null);\n } else {\n rangeCalendarState.selectDate(date);\n }\n },\n };\n\n const ref = useRef();\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(props, state, ref);\n\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n timeZone: timezoneName,\n });\n\n const monthHeaders = range(0, visibleMonths).map((i) => {\n return (\n <CalendarHeaderMonth key={`calendar-month-${i}`}>\n {i === 0 && (\n <PrevButton {...prevButtonProps}>\n <ArrowLeftIcon />\n </PrevButton>\n )}\n <RangeCalendarHeading aria-hidden>\n {monthDateFormatter.format(\n state.visibleRange.start.add({ months: i }).toDate(timezoneName),\n )}\n </RangeCalendarHeading>\n {i === visibleMonths - 1 && (\n <NextButton {...nextButtonProps}>\n <ArrowRightIcon />\n </NextButton>\n )}\n </CalendarHeaderMonth>\n );\n });\n\n const monthGrids = range(0, visibleMonths).map((i) => {\n return (\n <CalendarGrid\n key={`calendar-grid-${i}`}\n state={state}\n offset={{ months: i }}\n skipFromTabOrder={i > 0}\n />\n );\n });\n\n return (\n <RangeCalendarContainer ref={calendarRef}>\n {!hidePresets && (\n <PresetsContainer padding={Spacing[3]}>\n <RangeCalendarPresets state={state} setDateMode={setDateMode} />\n </PresetsContainer>\n )}\n <Card.Body padding={Spacing[3]}>\n {/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */}\n <CalendarContainer {...calendarProps} ref={ref}>\n {/* Calendar header is separate from grid like this to facilitate a11y. */}\n <RangeCalendarHeader>\n <VisuallyHidden isFocusable={false}>{calendarProps['aria-label']}</VisuallyHidden>\n {monthHeaders}\n </RangeCalendarHeader>\n <CalendarGrids>{monthGrids}</CalendarGrids>\n </CalendarContainer>\n </Card.Body>\n </RangeCalendarContainer>\n );\n};\n\nexport default RangeCalendar;\n","import {\n CalendarDate,\n type DateValue,\n parseAbsolute,\n toCalendarDateTime,\n} from '@internationalized/date';\nimport { Spacing, Typography } from '@persona/design-tokens';\nimport { CircleXInverseIcon } from '@persona/icons';\nimport type { DateRangePickerProps as DateRangePickerBase } from '@react-types/datepicker';\nimport type { AriaLabelingProps, RangeValue } from '@react-types/shared';\nimport { type DateTime, Settings } from 'luxon';\nimport { type MutableRefObject, useCallback, useEffect, useRef, useState } from 'react';\nimport {\n mergeProps,\n useButton,\n useDateRangePicker,\n useFocusWithin,\n usePress,\n VisuallyHidden,\n} from 'react-aria';\nimport { useDateRangePickerState } from 'react-stately';\nimport styled from 'styled-components';\n\nimport RangeCalendar from 'design-system/components/DatePicker/Calendar/RangeCalendar';\nimport DateField from 'design-system/components/DatePicker/DateField';\nimport { FormLabel } from 'design-system/components/FormControl';\nimport { ClearButton } from 'design-system/components/Input';\nimport Popover from 'design-system/components/Popover';\nimport { isDisabled } from 'design-system/lib/pseudoClass';\nimport type { InputSizes } from 'design-system/mixins/input';\n\nconst DateRangeContainer = styled.div`\n display: inline-flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst DateRangeInputs = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst CustomFormLabel = styled(FormLabel)`\n margin-bottom: ${Spacing[2]};\n ${Typography.TextMediumBold};\n`;\n\nexport type DateRange = {\n startDate?: DateTime;\n endDate?: DateTime;\n};\n\nexport interface DateRangePickerProps extends DateRangePickerBase<DateValue>, AriaLabelingProps {\n dateRange: DateRange;\n onChange: (range: RangeValue<DateValue> | null) => void;\n disabled?: boolean;\n size?: InputSizes;\n minDate?: DateValue;\n maxDate?: DateValue;\n label?: string | null;\n dataTest?: string;\n id?: string;\n hidePresets?: boolean;\n className?: string;\n /**\n * Whether or not to display clear button\n */\n showClear?: boolean;\n /**\n * Called when the clear button is clicked/pressed\n */\n onClear?: () => void;\n /**\n * z-index of the calendar popover\n */\n calendarZIndex?: number;\n}\n\nconst OpenButton = ({ calendarRef }: { calendarRef: MutableRefObject<HTMLElement | null> }) => {\n const openCalBtnRef = useRef();\n const { buttonProps } = useButton(\n {\n onPress: () => {\n if (calendarRef.current) {\n (\n calendarRef.current.querySelector('button[aria-label=\"Previous\"]') as HTMLButtonElement\n ).focus();\n }\n },\n },\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n openCalBtnRef,\n );\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return <button {...buttonProps} ref={openCalBtnRef} aria-label='Open calendar' tabIndex={-1} />;\n};\n\nconst ClearRangeButton = styled(ClearButton)`\n height: 16px;\n width: 16px;\n margin-left: ${Spacing[2]};\n\n &${isDisabled}, &:disabled {\n background-color: transparent;\n }\n`;\n\nconst DateRangePicker = ({\n granularity = 'day',\n hideTimeZone = true,\n className,\n calendarZIndex,\n ...props\n}: DateRangePickerProps) => {\n const state = useDateRangePickerState({ granularity, hideTimeZone, ...props });\n const ref = useRef<HTMLDivElement>(null);\n const startFieldRef = useRef<HTMLDivElement>(null);\n const endFieldRef = useRef<HTMLDivElement>(null);\n const [dateMode, setDateMode] = useState<'start' | 'end' | null>(null);\n const { groupProps, startFieldProps, endFieldProps, calendarProps, labelProps } =\n useDateRangePicker({ granularity, hideTimeZone, ...props }, state, ref);\n\n useEffect(() => {\n // If not set, return early\n if (!props.dateRange.startDate || !props.dateRange.endDate) {\n return;\n }\n\n if (!props.dateRange.startDate.isValid || !props.dateRange.endDate.isValid) {\n return;\n }\n\n // Find out the real time by adjusting the date to the user's timezone\n const startDate = props.dateRange.startDate.setZone(Settings.defaultZone);\n const endDate = props.dateRange.endDate.setZone(Settings.defaultZone);\n\n if (!startDate.isValid || !endDate.isValid) {\n return;\n }\n\n // Months are 1-indexed, no translations need to happen to CalendarDates\n const startCalendar = state.hasTime\n ? parseAbsolute(startDate.toISO(), Settings.defaultZone.name)\n : new CalendarDate(startDate.year, startDate.month, startDate.day);\n const endCalendar = state.hasTime\n ? parseAbsolute(endDate.toISO(), Settings.defaultZone.name)\n : new CalendarDate(endDate.year, endDate.month, endDate.day);\n\n const dateRangeV2: RangeValue<DateValue> = {\n start: startCalendar,\n end: endCalendar,\n };\n\n state.setValue(dateRangeV2);\n }, [props.dateRange.startDate, props.dateRange.endDate, granularity]);\n\n // Auto-close overlay when a complete range is selected (e.g., from presets with time enabled)\n const prevValueRef = useRef<RangeValue<DateValue | null> | null>(state.value);\n useEffect(() => {\n const prevValue = prevValueRef.current;\n const currentValue = state.value;\n\n // Update ref for next comparison\n prevValueRef.current = currentValue;\n\n // Close overlay only if BOTH start and end changed simultaneously to DIFFERENT dates (e.g., preset selection)\n // Do not close during manual date selection where:\n // 1. Only one date changes at a time, OR\n // 2. Both dates are set to the same value (initial selection from empty state)\n // Use value comparison (.compare) instead of object identity to handle controlled component re-renders\n const startChanged =\n prevValue?.start && currentValue?.start\n ? prevValue.start.compare(currentValue.start) !== 0\n : prevValue?.start !== currentValue?.start;\n const endChanged =\n prevValue?.end && currentValue?.end\n ? prevValue.end.compare(currentValue.end) !== 0\n : prevValue?.end !== currentValue?.end;\n const datesAreDifferent =\n currentValue?.start &&\n currentValue?.end &&\n currentValue.start.compare(currentValue.end) !== 0;\n\n if (state.isOpen && startChanged && endChanged && datesAreDifferent) {\n state.setOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.value, state.isOpen]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const [isClosing, setIsClosing] = useState(false);\n\n const { focusWithinProps: startFocusWithinProps } = useFocusWithin({\n onFocusWithin: () => {\n setDateMode('start');\n if (!state.isOpen && !isClosing) {\n state.setOpen(true);\n }\n },\n });\n\n const { focusWithinProps: endFocusWithinProps } = useFocusWithin({\n onFocusWithin: () => {\n setDateMode('end');\n if (!state.isOpen && !isClosing) {\n state.setOpen(true);\n }\n },\n });\n\n const { focusWithinProps: containerFocusProps } = useFocusWithin({\n onBlurWithin: (e) => {\n // Clear dateMode when focus leaves the entire date range picker\n // This prevents the blue outline from persisting after Tab\n if (!calendarRef?.current?.contains(e.relatedTarget)) {\n setDateMode(null);\n // Close overlay when focus leaves the component entirely\n // Provides intuitive UX: user tabs away = done with date selection\n if (state.isOpen) {\n state.setOpen(false);\n }\n }\n },\n });\n\n const handleOutsideClick = (e: Event) => {\n const target = e.target as Node;\n // Don't close if clicking on the date inputs themselves\n if (ref.current?.contains(target)) {\n return;\n }\n\n // When there's a click outside of the containers + calendars, reset the highlighted date\n // Only close the calendar if it's open\n // Note: Radix UI's onInteractOutside already ensures the interaction is outside the popover content\n if (state.isOpen) {\n setDateMode(null);\n state.setOpen(false);\n }\n };\n\n const { pressProps: pressClearProps } = usePress({\n onPress: () => {\n state.setValue(null);\n\n if (props.onClear) {\n props.onClear();\n }\n },\n });\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' && !state.isOpen) {\n event.preventDefault(); // Prevent form submission\n state.setOpen(true);\n }\n },\n [state],\n );\n\n const isValueNull = state.value && state.value.start == null && state.value.end == null;\n\n return (\n <DateRangeContainer data-test={props.dataTest} className={className}>\n {props.label && <CustomFormLabel {...labelProps}>{props.label}</CustomFormLabel>}\n <Popover\n open={state.isOpen}\n modal={false}\n contentProps={{\n align: 'start',\n 'aria-modal': true,\n 'aria-label': props['aria-label'] ?? undefined,\n onInteractOutside: handleOutsideClick,\n onEscapeKeyDown: () => {\n state.setOpen(false);\n // Restore focus to the date field for keyboard users\n if (dateMode) {\n const fieldRef = dateMode === 'start' ? startFieldRef : endFieldRef;\n const seg = fieldRef.current?.querySelector('[tabindex=\"0\"]');\n if (seg instanceof HTMLElement) {\n seg.focus();\n }\n }\n },\n onCloseAutoFocus: (e: Event) => {\n // Prevent Radix's default focus restoration — Escape handles its own above.\n e.preventDefault();\n setIsClosing(true);\n requestAnimationFrame(() => setIsClosing(false));\n },\n noPadding: true,\n style: { zIndex: calendarZIndex },\n }}\n >\n <Popover.Trigger asChild>\n <DateRangeInputs {...mergeProps(groupProps, containerFocusProps)} ref={ref}>\n {/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */}\n <DateField\n ref={startFieldRef}\n inputPosition='start'\n focused={dateMode === 'start'}\n disabled={props.disabled}\n size={props.size}\n {...mergeProps(startFieldProps, startFocusWithinProps, { onKeyDown: handleKeyDown })}\n />\n {/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */}\n <DateField\n ref={endFieldRef}\n inputPosition='end'\n focused={dateMode === 'end'}\n disabled={props.disabled}\n size={props.size}\n {...mergeProps(endFieldProps, endFocusWithinProps, { onKeyDown: handleKeyDown })}\n />\n {props.showClear && (\n <ClearRangeButton\n {...pressClearProps}\n disabled={isValueNull}\n aria-label='Clear date range'\n >\n <CircleXInverseIcon />\n </ClearRangeButton>\n )}\n <VisuallyHidden>\n <OpenButton calendarRef={calendarRef} />\n </VisuallyHidden>\n </DateRangeInputs>\n </Popover.Trigger>\n <RangeCalendar\n {...{ ...calendarProps, autoFocus: undefined }}\n calendarRef={calendarRef}\n setDateMode={setDateMode}\n setValue={state.setValue}\n granularity={granularity}\n hidePresets={props.hidePresets}\n onSelectDate={(dateVal) => {\n /**\n * Please use caution when editing the logic below.\n * It is specific to react-aria's date picker and can be brittle.\n */\n if (dateVal) {\n const date = state.hasTime ? toCalendarDateTime(dateVal) : dateVal;\n\n if (dateMode === 'start') {\n // Handle a case where we've deleted both dates\n if (state.value.end == null && state.value.start == null) {\n state.setValue({\n start: date,\n end: date,\n });\n }\n // If end becomes the start\n else if (state.value.end && date.compare(state.value.end) > 0) {\n state.setValue({\n start: state.value.end,\n end: state.value.end.set(dateVal), // Preserve time\n });\n } else {\n state.setValue({\n // if start is not set, set it to the date or date + time value, otherwise set the dateVal to preserve time\n start: state.value.start == null ? date : state.value.start.set(dateVal),\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n\n end: state.value.end,\n });\n }\n setDateMode('end');\n } else {\n // Handle a case where we've deleted both dates\n if (state.value.end == null && state.value.start == null) {\n state.setValue({\n start: date,\n end: date,\n });\n }\n // If start becomes the end\n else if (state.value.start && date.compare(state.value.start) < 0) {\n state.setValue({\n start: state.value.start.set(dateVal),\n end: state.value.start,\n });\n } else {\n state.setValue({\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n start: state.value.start,\n // if end is not set, set it to the date or date + time value, otherwise set the dateVal to preserve time\n end: state.value.end == null ? date : state.value.end.set(dateVal),\n });\n }\n // Close popover and keep focus on end field\n state.setOpen(false);\n }\n }\n }}\n minDate={props.minDate}\n maxDate={props.maxDate}\n />\n </Popover>\n </DateRangeContainer>\n );\n};\n\nexport default DateRangePicker;\n"],"x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAa,oBAAoB,oBAAA,QAAO,GAAG;;;AAI3C,MAAa,iBAAiB,oBAAA,QAAO,GAAG;;;mBAGrBA,uBAAAA,QAAQ,GAAG;;AAG9B,MAAa,kBAAkB,oBAAA,QAAO,GAAG;IACrCC,uBAAAA,WAAW,cAAc;;;;AAK7B,MAAM,uBAAuB,CAAA,GAAA,oBAAA,SAAOC,mBAAAA,WAAW;;;;AAK/C,MAAa,kBAAkB,UAA2B;CACxD,MAAM,OAAA,GAAA,MAAA,SAAc;CAEpB,MAAM,EAAE,iBAAA,GAAA,WAAA,WAA0B,OAAO,IAAI;AAE7C,QAEE,iBAAA,GAAA,kBAAA,KAAC,sBAAD;EAAsB,GAAI;EAAa,WAAW,MAAM;EAAgB;YACrE,MAAM;EACc,CAAA;;;;AC/B3B,MAAM,wBAAwB,kBAAA,QAAO,EAAE;;;;;;AAevC,MAAM,qBAAqB,kBAAA,QAAO,MAA+B;IAC7DC,uBAAAA,WAAW,WAAW;;;;;;;;;KASrB,EAAE,iBACH,cACA,kBAAA,GAAG;oBACaC,uBAAAA,MAAM,cAAc;MAClC;;KAED,EAAE,uBACH,oBACA,kBAAA,GAAG;oBACaA,uBAAAA,MAAM,wBAAwB;eACnCA,uBAAAA,MAAM,YAAY;gCACDC,uBAAAA,aAAa,GAAG;mCACbA,uBAAAA,aAAa,GAAG;MAC7C;;KAED,EAAE,qBACH,kBACA,kBAAA,GAAG;oBACaD,uBAAAA,MAAM,wBAAwB;eACnCA,uBAAAA,MAAM,YAAY;iCACAC,uBAAAA,aAAa,GAAG;oCACbA,uBAAAA,aAAa,GAAG;MAC9C;;KAED,EAAE,iBACH,cACA,kBAAA,GAAG;eACQD,uBAAAA,MAAM,aAAa;MAC5B;;KAED,EAAE,gBACH,aACA,kBAAA,GAAG;oBACaA,uBAAAA,MAAM,uBAAuB;eAClCA,uBAAAA,MAAM,YAAY;MAC3B;;;yBAGmBA,uBAAAA,MAAM,YAAY;;kBAEzBA,uBAAAA,MAAM,aAAa;;;;AAWrC,MAAM,gBAAgB,EAAE,OAAO,MAAM,mBAAsC;CACzE,MAAM,OAAA,GAAA,MAAA,SAAc;CACpB,MAAM,EAAE,WAAW,aAAa,YAAY,WAAW,YAAY,mBAAA,GAAA,WAAA,iBAEjD,EAAE,MAAM,EAAE,OAAO,IAAI;CAEvC,MAAM,mBAAmB,sBAAsB,SAAS,MAAM;CAE9D,MAAM,iBAAiB,EAAA,GAAA,wBAAA,aAAa,cAAc,KAAK;CACvD,MAAM,mBAAmB,oBAAA,GAAA,wBAAA,WAA6B,MAAM,iBAAiB,MAAM,GAAG;CACtF,MAAM,iBAAiB,oBAAA,GAAA,wBAAA,WAA6B,MAAM,iBAAiB,IAAI,GAAG;AAElF,QACE,iBAAA,GAAA,kBAAA,KAAC,uBAAD;EAAuB,GAAI;YACzB,iBAAA,GAAA,kBAAA,KAAC,oBAAD;GACE,GAAI;GACJ,QAAQ;GACI;GACM;GACF;GACL;GACC;GAEP;aAEJ;GACkB,CAAA;EACC,CAAA;;;;ACtG5B,MAAM,wBAAwB,oBAAA,QAAO,KAAK;;;;;;yBAMjBE,uBAAAA,MAAM,YAAY;;;;AAK3C,MAAM,wBAAwB,oBAAA,QAAO,EAAE;IACnCC,uBAAAA,WAAW,WAAW;WACfD,uBAAAA,MAAM,cAAc;;AAS/B,MAAM,gBAAgB,EAAE,OAAO,SAAS,EAAE,EAAE,mBAAmB,YAA+B;CAC5F,MAAM,EAAE,YAAA,GAAA,WAAA,YAAsB;CAC9B,MAAM,YAAY,MAAM,aAAa,MAAM,IAAI,OAAO;CAGtD,MAAM,EAAE,WAAW,aAAa,cAAA,GAAA,WAAA,iBAC9B;EACE;EACA,UAAA,GAAA,wBAAA,YALuB,UAKhB;EACR,EACD,MACD;CAED,MAAM,gBAAA,GAAA,wBAAA,iBAA+B,WAAW,OAAO;AAKvD,QACE,iBAAA,GAAA,kBAAA,MAAC,uBAAD;EAAuB,GAHC,mBAAmB;GAAE,GAAG;GAAW,UAAU;GAAI,GAAG;YAG5E,CACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;GAAO,GAAI;aACT,iBAAA,GAAA,kBAAA,KAAC,MAAD,EAAA,UACG,SAAS,KAAK,KAAK,UAClB,iBAAA,GAAA,kBAAA,KAAC,uBAAD,EAAA,UAAoC,KAA4B,EAApC,MAAoC,CAChE,EACC,CAAA;GACC,CAAA,EACR,iBAAA,GAAA,kBAAA,KAAC,SAAD,EAAA,UACG,CAAC,GAAG,IAAI,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,cACxC,iBAAA,GAAA,kBAAA,KAAC,MAAD,EAAA,UACG,MACE,eAAe,WAAW,UAAU,CACpC,KAAK,MAAM,MACV,OACE,iBAAA,GAAA,kBAAA,KAAC,cAAD;GAA6B;GAAa;GAAM,cAAc;GAAa,EAAxD,EAAwD,GAE3E,iBAAA,GAAA,kBAAA,KAAC,MAAD,EAAc,EAAL,EAAK,CAEjB,EACA,EAVI,UAUJ,CACL,EACI,CAAA,CACc;;;;;ACtE5B,MAAa,uBAAuB,IAAIE,wBAAAA,mBAAmB;;;ACgB3D,MAAM,YAAY,UAAyB;CACzC,MAAM,EAAE,YAAA,GAAA,WAAA,YAAsB;CAC9B,MAAM,SAAA,GAAA,cAAA,kBAAyB;EAAE,GAAG;EAAO;EAAQ;EAAgB,CAAC;CACpE,MAAM,EAAE,eAAe,iBAAiB,iBAAiB,WAAA,GAAA,WAAA,aAAsB,OAAO,MAAM;AAE5F,QACE,iBAAA,GAAA,kBAAA,MAAC,mBAAD;EAAmB,GAAI;EAAe,KAAK,MAAM;YAAjD,CACE,iBAAA,GAAA,kBAAA,MAAC,gBAAD,EAAA,UAAA;GACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;IAAgB,GAAI;cAClB,iBAAA,GAAA,kBAAA,KAACC,eAAAA,eAAD,EAAiB,CAAA;IACF,CAAA;GACjB,iBAAA,GAAA,kBAAA,KAAC,iBAAD,EAAA,UAAkB,OAAwB,CAAA;GAC1C,iBAAA,GAAA,kBAAA,KAAC,gBAAD;IAAgB,GAAI;cAClB,iBAAA,GAAA,kBAAA,KAACC,eAAAA,gBAAD,EAAkB,CAAA;IACH,CAAA;GACF,EAAA,CAAA,EACjB,iBAAA,GAAA,kBAAA,KAAC,cAAD,EAAqB,OAAS,CAAA,CACZ;;;;;ACnCxB,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qEAAqE,KAAK;CAC7G,6BAA6B,SAAO,8HAA8H,KAAK,UAAU,yBAAyB,KAAK;CAC/M,4BAA4B,SAAO,mFAAmF,KAAK;CAC3H,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mFAAmF,KAAK;CAC3H,6BAA6B,SAAO,wGAAwG,KAAK,UAAU,kBAAkB,KAAK;CAClL,4BAA4B,SAAO,0FAA0F,KAAK;CAClI,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,6BAA6B,SAAO,yBAAyB,KAAK,UAAU,YAAY,KAAK;CAC7F,4BAA4B,SAAO,yBAAyB,KAAK;CACjE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,eAAe,KAAK;CACvD,6BAA6B,SAAO,mBAAmB,KAAK,UAAU,OAAO,KAAK;CAClF,4BAA4B,SAAO,oBAAoB,KAAK;CAC5D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,0BAA0B,KAAK;CAClE,6BAA6B,SAAO,4BAA4B,KAAK,UAAU,OAAO,KAAK;CAC3F,4BAA4B,SAAO,wBAAwB,KAAK;CAChE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,kJAAkJ,KAAK;CAC1L,6BAA6B,SAAO,+GAA+G,KAAK,UAAU,yBAAyB,KAAK;CAChM,4BAA4B,SAAO,iGAAiG,KAAK;CACzI,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,OAAO;CACP,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACR,UAAU;CACV,UAAU;CACV,aAAa;CACb,YAAY;CACZ,aAAa;CACb,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,4BAA4B,SAAO,kBAAkB,KAAK;CAC1D,6BAA6B,SAAO,mBAAmB,KAAK,UAAU,MAAM,KAAK;CACjF,4BAA4B,SAAO,kBAAkB,KAAK;CAC7D;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,uBAAuB,KAAK;CAC/D,6BAA6B,SAAO,uBAAuB,KAAK,UAAU,KAAK,KAAK;CACpF,4BAA4B,SAAO,sBAAsB,KAAK;CAC9D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,uBAAuB,KAAK;CAC/D,6BAA6B,SAAO,oBAAoB,KAAK,UAAU,QAAQ,KAAK;CACpF,4BAA4B,SAAO,gBAAgB,KAAK;CACxD,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,sCAAsC,KAAK;CAC9E,6BAA6B,SAAO,wBAAwB,KAAK,UAAU,YAAY,KAAK;CAC5F,4BAA4B,SAAO,iBAAiB,KAAK;CACzD,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,gCAAgC,KAAK;CACxE,6BAA6B,SAAO,iCAAiC,KAAK,UAAU,MAAM,KAAK;CAC/F,4BAA4B,SAAO,sBAAsB,KAAK;CAC9D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qEAAqE,KAAK;CAC7G,6BAA6B,SAAO,8DAA8D,KAAK,UAAU,kBAAkB,KAAK;CACxI,4BAA4B,SAAO,uDAAuD,KAAK;CAC/F,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mBAAmB,KAAK;CAC3D,6BAA6B,SAAO,oBAAoB,KAAK,UAAU,MAAM,KAAK;CAClF,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,yBAAyB,KAAK;CACjE,6BAA6B,SAAO,6BAA6B,KAAK,UAAU,UAAU,KAAK;CAC/F,4BAA4B,SAAO,0BAA0B,KAAK;CAClE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,6BAA6B,SAAO,8BAA8B,KAAK,UAAU,KAAK,KAAK;CAC3F,4BAA4B,SAAO,oBAAoB,KAAK;CAC5D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,sDAAsD,KAAK;CAC9F,6BAA6B,SAAO,sCAAsC,KAAK,UAAU,oBAAoB,KAAK;CAClH,4BAA4B,SAAO,sDAAsD,KAAK;CAC9F,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,sCAAsC,KAAK;CAC9E,6BAA6B,SAAO,sCAAsC,KAAK,UAAU,KAAK,KAAK;CACnG,4BAA4B,SAAO,sCAAsC,KAAK;CAC9E,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,oBAAoB,KAAK;CAC5D,6BAA6B,SAAO,+BAA+B,KAAK,UAAU,OAAO,KAAK;CAC9F,4BAA4B,SAAO,uBAAuB,KAAK;CAC/D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,4BAA4B,KAAK;CACpE,6BAA6B,SAAO,kCAAkC,KAAK,UAAU,cAAc,KAAK;CACxG,4BAA4B,SAAO,2BAA2B,KAAK;CACnE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,eAAe,KAAK;CACvD,6BAA6B,SAAO,oBAAoB,KAAK,UAAU,OAAO,KAAK;CACnF,4BAA4B,SAAO,cAAc,KAAK;CACtD,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,wBAAwB,KAAK;CAChE,6BAA6B,SAAO,wBAAwB,KAAK,UAAU,OAAO,KAAK;CACvF,4BAA4B,SAAO,uBAAuB,KAAK;CAC/D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,iBAAiB,KAAK;CACzD,6BAA6B,SAAO,mBAAmB,KAAK,UAAU,MAAM,KAAK;CACjF,4BAA4B,SAAO,iBAAiB,KAAK;CACzD,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,6BAA6B,SAAO,0BAA0B,KAAK,UAAU,KAAK,KAAK;CACvF,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,6BAA6B,SAAO,0BAA0B,KAAK,UAAU,KAAK,KAAK;CACvF,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,+BAA+B,KAAK;CACvE,6BAA6B,SAAO,4BAA4B,KAAK,UAAU,oBAAoB,KAAK;CACxG,4BAA4B,SAAO,wBAAwB,KAAK;CAChE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,iGAAiG,KAAK;CACzI,6BAA6B,SAAO,qIAAqI,KAAK,UAAU,kBAAkB,KAAK;CAC/M,4BAA4B,SAAO,wGAAwG,KAAK;CAChJ,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,wBAAwB,KAAK;CAChE,6BAA6B,SAAO,yBAAyB,KAAK,UAAU,MAAM,KAAK;CACvF,4BAA4B,SAAO,yBAAyB,KAAK;CACjE,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,kBAAkB,KAAK;CAC1D,6BAA6B,SAAO,0BAA0B,KAAK,UAAU,MAAM,KAAK;CACxF,4BAA4B,SAAO,sBAAsB,KAAK;CAC9D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mBAAmB,KAAK;CAC3D,6BAA6B,SAAO,sBAAsB,KAAK,UAAU,MAAM,KAAK;CACpF,4BAA4B,SAAO,mBAAmB,KAAK;CAC3D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,eAAe,KAAK;CACvD,6BAA6B,SAAO,mBAAmB,KAAK,UAAU,QAAQ,KAAK;CACnF,4BAA4B,SAAO,aAAa,KAAK;CACrD,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,6BAA6B,SAAO,4BAA4B,KAAK,UAAU,KAAK,KAAK;CACzF,4BAA4B,SAAO,qBAAqB,KAAK;CAC7D,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mFAAmF,KAAK;CAC3H,6BAA6B,SAAO,sHAAsH,KAAK,UAAU,YAAY,KAAK;CAC1L,4BAA4B,SAAO,mFAAmF,KAAK;CAC3H,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mDAAmD,KAAK;CAC3F,6BAA6B,SAAO,mDAAmD,KAAK,UAAU,YAAY,KAAK;CACvH,4BAA4B,SAAO,mDAAmD,KAAK;CAC3F,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;AClBD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,YAAY;CACZ,OAAO;CACP,aAAa;CACb,WAAW;CACX,OAAO;CACP,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;CACV,4BAA4B,SAAO,mDAAmD,KAAK;CAC3F,6BAA6B,SAAO,mDAAmD,KAAK,UAAU,YAAY,KAAK;CACvH,4BAA4B,SAAO,mDAAmD,KAAK;CAC3F,aAAa;CACb,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACX;;;ACiBD,IAAI,4BAA4B,EAAE;AAmClC,4BAA4B;CACxB,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACZ;;;ACnGD,IAAM,4CAAN,MAAgD;CAC5C,IAAI,cAAc;AACd,SAAO,KAAK;;CAEhB,IAAI,YAAY,MAAM;AAClB,MAAI,CAAKC,iBAAAA,0CAA2C,KAAK,MAAM,KAAK,CAAE,OAAM,IAAI,MAAM,2EAA2E;EACjK,MAAM,UAAU,EAAE;EAClB,IAAI,UAAU;EACd,IAAI,2BAA2B;AAC/B,OAAK,eAAe;AACpB,SAAM,WAAW,YAAY,KAAK,KAAK,KAAI,QAAQ,aAAa,KAAK,wBAAwB;GACzF,MAAM,aAAa;GACnB,MAAM,SAAS,KAAK,KAAK,iBAAiB,YAAY,KAAK,YAAY,EACnE,YAAY,KAAK,aACpB,CAAC;AACF,WAAQ,KAAK,OAAO;AACpB,UAAO,cAAc;AACrB,QAAK,eAAe,IAAI,OAAO;AAC/B,aAAU,2BAA2B,WAAW;QAC7C,WAAU,QAAQ;EACzB,MAAM,SAAS,KAAK,KAAK,iBAAiB,KAAK,MAAM,KAAK,YAAY,EAClE,YAAY,KAAK,aACpB,CAAC;AACF,UAAQ,KAAK,OAAO;AACpB,SAAO,cAAc;AACrB,OAAK,eAAe,IAAI,OAAO;AAC/B,OAAK,eAAe;;CAExB,IAAI,MAAM;AACN,SAAO,KAAK;;CAEhB,aAAa;EACT,IAAI,cAAc,KAAK;EACvB,IAAI,UAAU,KAAK,UAAU;AAC7B,MAAI,CAAKA,iBAAAA,0CAA2C,aAAa,QAAQ,EAAE;AACvE,QAAK,cAAc;AACnB,UAAO;;AAEX,MAAI,QAAS,MAAK,cAAc;AAChC,SAAO;;CAEX,YAAY;EAER,IAAI,UADS,KAAK,aAAa,GACV,WAAW;AAChC,MAAI,QAAS,MAAK,cAAc;AAChC,SAAO;;CAEX,WAAW;EACP,MAAM,WAAW,KAAK,aAAa,GAAG,UAAU;AAChD,MAAI,UAAU;AAEV,OADmB,SAAS,YACZ;IACZ,IAAI;IACJ,IAAI;AACJ,QAAI,OAAO,KAAK,WAAW,WAAY,cAAa,KAAK,OAAO,SAAS;cAC/D,eAAe,KAAK,YAAY,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,WAAY,cAAa,KAAK,OAAO,WAAW,SAAS;AAC3J,QAAI,eAAe,WAAW,eAAe;AACzC,UAAK,cAAc;AACnB,YAAO;;IAIX,IAAI,UAAU,KAAK,UAAU;AAC7B,QAAI,QAAS,MAAK,cAAc;AAChC,WAAO;;AAEX,OAAI,SAAU,MAAK,cAAc;AACjC,UAAO;aAEH,KAAK,aAAa,SAAS,GAAG;AAC9B,QAAK,aAAa,OAAO;GACzB,IAAI,UAAU,KAAK,UAAU;AAC7B,OAAI,QAAS,MAAK,cAAc;AAChC,UAAO;QACJ,QAAO;;CAGtB,eAAe;EACX,MAAM,gBAAgB,KAAK,aAAa;AACxC,MAAI,cAAc,gBAAgB,cAAc,MAAM;AAClD,OAAI,KAAK,eAAe,IAAI,cAAc,EAAE;AACxC,SAAK,eAAe,OAAO,cAAc;AACzC,QAAI,KAAK,aAAa,SAAS,GAAG;AAC9B,UAAK,aAAa,OAAO;KACzB,IAAI,UAAU,KAAK,cAAc;AACjC,SAAI,QAAS,MAAK,cAAc;AAChC,YAAO;UACJ,QAAO;;AAElB,UAAO;;EAEX,MAAM,eAAe,cAAc,cAAc;AACjD,MAAI,cAAc;AAEd,OADmB,aAAa,YAChB;IACZ,IAAI;IACJ,IAAI;AACJ,QAAI,OAAO,KAAK,WAAW,WAAY,cAAa,KAAK,OAAO,aAAa;cACnE,eAAe,KAAK,YAAY,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,WAAY,cAAa,KAAK,OAAO,WAAW,aAAa;AAC/J,QAAI,eAAe,WAAW,eAAe;AACzC,SAAI,aAAc,MAAK,cAAc;AACrC,YAAO;;IAIX,IAAI,UAAU,KAAK,WAAW;AAC9B,QAAI,QAAS,MAAK,cAAc;AAChC,WAAO;;AAEX,OAAI,aAAc,MAAK,cAAc;AACrC,UAAO;aAEH,KAAK,aAAa,SAAS,GAAG;AAC9B,QAAK,aAAa,OAAO;GACzB,IAAI,UAAU,KAAK,cAAc;AACjC,OAAI,QAAS,MAAK,cAAc;AAChC,UAAO;QACJ,QAAO;;;;IAKlB,cAAc;AAId,SAAO;;;;IAIP,kBAAkB;AAIlB,SAAO;;;;IAIP,aAAa;AAIb,SAAO;;CAEX,YAAY,KAAK,MAAM,YAAY,QAAO;AACtC,OAAK,eAAe,EAAE;AACtB,OAAK,iCAAiB,IAAI,KAAK;AAC/B,OAAK,eAAe,SAAO;AACvB,OAAI,KAAK,aAAa,KAAK,cAAc;IACrC,MAAM,aAAa,KAAK;AACxB,QAAI,YAAY;KACZ,MAAM,SAAS,KAAK,KAAK,iBAAiB,YAAY,KAAK,YAAY,EACnE,YAAY,KAAK,aACpB,CAAC;AACF,UAAK,aAAa,QAAQ,OAAO;AACjC,YAAO,WAAW;WACf;KACH,IAAI;AACJ,SAAI,OAAO,KAAK,WAAW,WAAY,QAAO,KAAK,OAAO,KAAK;eACrD,eAAe,KAAK,YAAY,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,WAAY,QAAO,KAAK,OAAO,WAAW,KAAK;cACxI,KAAK,WAAW,KAAM,QAAO,WAAW;;;AAGzD,UAAO,WAAW;;AAEtB,OAAK,OAAO;AACZ,OAAK,OAAO;AACZ,OAAK,SAAS,WAAW,QAAQ,WAAW,KAAK,IAAI,SAAS;AAC9D,OAAK,aAAa,eAAe,QAAQ,eAAe,KAAK,IAAI,aAAa,WAAW;AACzF,OAAK,eAAe;AACpB,OAAK,aAAa,QAAQ,IAAI,iBAAiB,MAAM,YAAY,KAAK,YAAY,CAAC;EACnF,MAAM,aAAa,KAAK;AACxB,MAAI,YAAY;GACZ,MAAM,SAAS,KAAK,KAAK,iBAAiB,YAAY,KAAK,YAAY,EACnE,YAAY,KAAK,aACpB,CAAC;AACF,QAAK,aAAa,QAAQ,OAAO;;;;AAI7C,SAAS,0CAA0C,KAAK,MAAM,YAAY,QAAQ;AAC9E,KAAQC,iBAAAA,2CAAmB,CAAE,QAAO,IAAI,0CAA0C,KAAK,MAAM,YAAY,OAAO;AAChH,QAAO,IAAI,iBAAiB,MAAM,YAAY,OAAO;;;;AClLrD,MAAM,qCAAqC,IAAI,IAAI,CACnD,KACH,CAAC;AACF,MAAM,2CAA2C,IAAI,IAAI;CACrD;CACA;CACA;CACA;CACH,CAAC;AAEF,MAAM,sCAAsC,IAAI,IAAI;CAChD;CACA;CACA;CACA;CACA;CACA;CACA;CACH,CAAC;AACF,MAAM,oCAAoC,IAAI,IAAI;CAC9C;CACA;CACA;CACA;CACA;CACH,CAAC;AACF,MAAM,qCAAqC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACH,CAAC;AACF,MAAM,+BAA+B;AACrC,SAAS,0CAA0C,OAAO,OAAO,EAAE,EAAE;CACjE,IAAI,EAAa,WAAmB,QAAgB,QAAgB,SAAS,QAAmB,cAAc;CAC9G,IAAI,gBAAgB,EAAE;AACtB,MAAI,MAAM,QAAQ,MAAM,KAAI,OAAO,UAAU,eAAe,KAAK,OAAO,KAAK,KAAK,mCAAmC,IAAI,KAAK,IAAI,aAAa,yCAAyC,IAAI,KAAK,IAAI,UAAU,oCAAoC,IAAI,KAAK,IAAI,UAAU,kCAAkC,IAAI,KAAK,IAAI,UAAU,mCAAmC,IAAI,KAAK,IAAI,KAAK,SAAS,UAAU,IAAI,mCAAmC,IAAI,KAAK,MAAM,GAAG,GAAG,CAAC,KAAK,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,KAAK,6BAA6B,KAAK,KAAK,EAAG,eAAc,QAAQ,MAAM;AACjmB,QAAO;;;;ACzBX,SAAS,0CAA0C,QAAQ,WAAW,aAAa,MAAM;CACrF,IAAI,oBAAoB;CACxB,IAAI,EAAW,SAAkB,SAAiB,QAAkB,aAAa;AAKjF,KAAQC,iBAAAA,2CAA4C,MAAM,gBAAgB,OAAO,WAAW,QAAQ,kBAAkB,KAAK,IAAI,KAAK,KAAK,qBAAqB,cAAc,UAAU,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,WAAW,MAAM,KAAK,OAAO,WAAW,SAC9R,KAAQC,iBAAAA,2CAA4C,CAAE,WAAU;KAC3D,WAAU;CAInB,IAAI,QAAYC,iBAAAA,2CAA4C,IAAQD,iBAAAA,2CAA4C,IAAI,CAAKE,iBAAAA,2CAA4C,IAAI,QAAQ,IAAI,aAAa,SAAS,IAAI,cAAc,WAAW;EACpO,eAAe;EACN;EACA;EACD;EACE;EACb,CAAC,GAAG,IAAI,WAAW,SAAS;EAChB;EACA;EACD;EACE;EACV,SAAS;EACT,YAAY;EACf,CAAC;AACF,2CAA0C,YAAY;AAClDC,kBAAAA,0CAA2C,OAAO;AACtD,QAAO,cAAc,MAAM;AAC3B,2CAA0C,YAAY;;AAG1D,0CAA0C,YAAY;;;AC3ElD,SAAS,0CAA0C,MAAM,kBAAkB;AAC3E,KAAI,CAAC,KAAM,QAAO;CAClB,IAAI,QAAQ,OAAO,iBAAiB,KAAK;CACzC,IAAI,eAAe,gBAAgB,KAAK,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AAC3F,KAAI,gBAAgB,iBAAkB,gBAAe,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,gBAAgB,KAAK;AAC1H,QAAO;;;;ACFX,SAAS,0CAA0C,MAAM,kBAAkB;CACvE,IAAI,iBAAiB;AACrB,KAAQ,0CAA2C,gBAAgB,iBAAiB,CAAE,kBAAiB,eAAe;AACtH,QAAM,kBAAkB,CAAK,0CAA2C,gBAAgB,iBAAiB,CAAC,kBAAiB,eAAe;AAC1I,QAAO,kBAAkB,SAAS,oBAAoB,SAAS;;;;ACJnE,SAAS,0CAA0C,MAAM,kBAAkB;CACvE,MAAM,gBAAgB,EAAE;AACxB,QAAM,QAAQ,SAAS,SAAS,iBAAgB;AAC5C,MAAQ,0CAA2C,MAAM,iBAAiB,CAAE,eAAc,KAAK,KAAK;AACpG,SAAO,KAAK;;AAEhB,QAAO;;;;ACJX,IAAI,sCAAsC;AAC1C,MAAM,yDAAyC,IAAI,KAAK;AACxD,SAAS,0CAA0C,aAAa;CAC5D,IAAI,CAAC,IAAI,UAAA,GAAA,MAAA,WAA+B;AACpCC,kBAAAA,gDAA+C;AAC/C,MAAI,CAAC,YAAa;EAClB,IAAI,OAAO,uCAAuC,IAAI,YAAY;AAClE,MAAI,CAAC,MAAM;GACP,IAAI,KAAK,0BAA0B;AACnC,SAAM,GAAG;GACT,IAAI,OAAO,SAAS,cAAc,MAAM;AACxC,QAAK,KAAK;AACV,QAAK,MAAM,UAAU;AACrB,QAAK,cAAc;AACnB,YAAS,KAAK,YAAY,KAAK;AAC/B,UAAO;IACH,UAAU;IACV,SAAS;IACZ;AACD,0CAAuC,IAAI,aAAa,KAAK;QAC1D,OAAM,KAAK,QAAQ,GAAG;AAC7B,OAAK;AACL,eAAW;AACP,OAAI,QAAQ,EAAE,KAAK,aAAa,GAAG;AAC/B,SAAK,QAAQ,QAAQ;AACrB,2CAAuC,OAAO,YAAY;;;IAGnE,CACC,YACH,CAAC;AACF,QAAO,EACH,oBAAoB,cAAc,KAAK,KAAA,GAC1C;;;;ACjCL,SAAS,0CAA0C,KAAK,OAAO,SAAS,SAAS;CAC7E,IAAI,cAAkBC,iBAAAA,0CAA2C,QAAQ;CACzE,IAAI,aAAa,WAAW;AAC5B,EAAA,GAAA,MAAA,iBAA0B;AACtB,MAAI,cAAc,CAAC,IAAI,QAAS;EAChC,IAAI,UAAU,IAAI;AAClB,UAAQ,iBAAiB,OAAO,aAAa,QAAQ;AACrD,eAAW;AACP,WAAQ,oBAAoB,OAAO,aAAa,QAAQ;;IAE7D;EACC;EACA;EACA;EACA;EACA;EACH,CAAC;;;;AChBN,SAAS,0CAA0C,YAAY,SAAS;CACpE,IAAI,UAAU,qCAAqC,YAAY,SAAS,OAAO;CAC/E,IAAI,UAAU,qCAAqC,YAAY,SAAS,MAAM;CAC9E,IAAI,QAAQ,QAAQ;CACpB,IAAI,SAAS,QAAQ;CACrB,IAAI,IAAI,WAAW;CACnB,IAAI,IAAI,WAAW;CAEnB,IAAI,EAAkB,gBAAiC,iBAAmC,kBAAsC,oBAAyC,qBAAwC,sBAAsB,iBAAiB,WAAW;CAEnQ,IAAI,EAAmB,iBAAoC,mBAAuC,oBAAsC,qBAAqB,iBAAiB,QAAQ;CACtL,IAAI,kBAAkB,IAAI,SAAS,iBAAiB,GAAG;CACvD,IAAI,kBAAkB,IAAI,SAAS,gBAAgB,GAAG;CAEtD,IAAI,OAAO,kBAAkB,WAAW;CACxC,IAAI,OAAO,kBAAkB,WAAW;CAGxC,IAAI,yBAAyB,SAAS,kBAAkB,GAAG,IAAI;CAC/D,IAAI,4BAA4B,SAAS,qBAAqB,GAAG,IAAI;CACrE,IAAI,2BAA2B,SAAS,oBAAoB,GAAG,IAAI;CACnE,IAAI,0BAA0B,SAAS,mBAAmB,GAAG,IAAI;CACjE,IAAI,wBAAwB,SAAS,iBAAiB,GAAG,IAAI;CAC7D,IAAI,2BAA2B,SAAS,oBAAoB,GAAG,IAAI;CACnE,IAAI,0BAA0B,SAAS,mBAAmB,GAAG,IAAI;CAEjE,IAAI,aAAa,WADY,SAAS,kBAAkB,GAAG,IAAI;CAE/D,IAAI,cAAc,UAAU,QAAQ;CACpC,IAAI,YAAY,UAAU;CAC1B,IAAI,eAAe,UAAU,SAAS;CACtC,IAAI,iBAAiB,IAAI,SAAS,iBAAiB,GAAG,GAAG;CACzD,IAAI,kBAAkB,OAAO;CAC7B,IAAI,gBAAgB,IAAI,SAAS,gBAAgB,GAAG,GAAG;CACvD,IAAI,mBAAmB,OAAO;AAC9B,KAAI,aAAa,kBAAkB,cAAc;MACzC,cAAc,IAAI,wBAAyB,KAAI,aAAa,SAAS,iBAAiB,GAAG,GAAG;WACvF,cAAc,OAAO,yBAA0B,MAAK,cAAc,OAAO;;AAEtF,KAAI,YAAY,iBAAiB,eAAe;MACxC,aAAa,kBAAkB,uBAAwB,KAAI,YAAY,SAAS,gBAAgB,GAAG,GAAG;WACjG,eAAe,OAAO,0BAA2B,MAAK,eAAe,OAAO;;AAEzF,KAAI,QAAQ,IAAI,aAAa,QAAQ;AACjC,aAAW,aAAa;AACxB,aAAW,YAAY;AACvB;;AAEJ,YAAW,SAAS;EAChB,MAAM;EACN,KAAK;EACR,CAAC;;;;;GAKF,SAAS,qCAAqC,UAAU,OAAO,MAAM;CACrE,MAAM,OAAO,SAAS,SAAS,eAAe;CAC9C,IAAI,MAAM;AACV,QAAM,MAAM,cAAa;AACrB,SAAO,MAAM;AACb,MAAI,MAAM,iBAAiB,SAAU;WAC5B,MAAM,aAAa,SAAS,SAAS,EAAE;AAI5C,UAAO,SAAS;AAChB;;AAEJ,UAAQ,MAAM;;AAElB,QAAO;;AAEX,SAAS,0CAA0C,eAAe,MAAM;AACpE,KAAI,iBAAiB,SAAS,SAAS,cAAc,EAAE;EACnD,IAAI,OAAO,SAAS,oBAAoB,SAAS;AAIjD,MAAI,EAHoB,OAAO,iBAAiB,KAAK,CAAC,aAAa,aAGzC,CAAKC,iBAAAA,2CAA4C,EAAE;GACzE,IAEA;GACA,IAAI,EAAE,MAAM,cAAc,KAAK,gBAAgB,cAAc,uBAAuB;AACpF,qBAAkB,QAAQ,kBAAkB,KAAK,MAAc,gCAAgC,cAAc,mBAAoB,QAA4D,8BAA8B,KAAK,eAAe,EAC3O,OAAO,WACV,CAAC;GACF,IAAI,EAAE,MAAM,SAAS,KAAK,WAAW,cAAc,uBAAuB;AAE1E,OAAI,KAAK,IAAI,eAAe,QAAQ,GAAG,KAAK,KAAK,IAAI,cAAc,OAAO,GAAG,GAAG;IAC5E,IAAI,wCAAwC,yBAAyB;AACrE,aAAS,QAAQ,SAAS,KAAK,MAAc,0BAA0B,KAAK,sBAAuB,SAAuD,yCAAyC,wBAAwB,mBAAoB,QAAqE,uCAAuC,KAAK,yBAAyB;KACrX,OAAO;KACP,QAAQ;KACX,CAAC;AACF,KAAC,iCAAiC,cAAc,oBAAoB,QAAQ,mCAAmC,KAAK,KAAa,+BAA+B,KAAK,eAAe,EAChL,OAAO,WACV,CAAC;;SAEH;GACH,IAAI,gBAAoB,0CAA2C,cAAc;AAEjF,QAAK,IAAI,gBAAgB,cAAc,2CAA0C,cAAc,cAAc;;;;;;ACvGzH,SAAS,0CAA0C,OAAO,SAAS;CAG/D,IAAI,aAAA,GAAA,MAAA,QAA+B,KAAK;AACxC,KAAI,SAAS,UAAU,WAAW,QAAQ,OAAO,UAAU,QAAQ,CAAE,SAAQ,UAAU;AACvF,WAAU,UAAU;AACpB,QAAO;;;;ACNX,MAAM,4CAAgDC,MAAAA,QAAc,cAAc,EAC9E,gBAAc,IACjB,CAAC;AACF,0CAA0C,cAAc;;;AChBxD,SAAS,4BAA4B,UAAU,YAAY;AACvD,KAAI,WAAW,IAAK,QAAO,WAAW,IAAI,KAAK,SAAS;AAExD,QAAO,WAAW;;;;ACHtB,SAAS,gCAAgC,UAAU,YAAY,QAAQ;AACnE,KAAI,CAAC,WAAW,IAAI,SAAS,CAAE,OAAM,IAAI,UAAU,kBAAkB,SAAS,iCAAiC;AAE/G,QAAO,WAAW,IAAI,SAAS;;;;ACAnC,SAAS,yBAAyB,UAAU,YAAY;AAEpD,QAAO,4BAA4B,UADlB,gCAAgC,UAAU,YAAY,MAChB,CAAC;;;;ACL5D,SAAS,6BAA6B,KAAK,mBAAmB;AAC1D,KAAI,kBAAkB,IAAI,IAAI,CAC1B,OAAM,IAAI,UAAU,iEAAiE;;;;ACA7F,SAAS,0BAA0B,KAAK,YAAY,OAAO;AACvD,8BAA6B,KAAK,WAAW;AAC7C,YAAW,IAAI,KAAK,MAAM;;;;ACJ9B,SAAS,4BAA4B,UAAU,YAAY,OAAO;AAC9D,KAAI,WAAW,IAAK,YAAW,IAAI,KAAK,UAAU,MAAM;MACnD;AACD,MAAI,CAAC,WAAW,SAIZ,OAAM,IAAI,UAAU,2CAA2C;AAEnE,aAAW,QAAQ;;;;;ACN3B,SAAS,yBAAyB,UAAU,YAAY,OAAO;AAE3D,6BAA4B,UADX,gCAAgC,UAAU,YAAY,MACvB,EAAE,MAAM;AACxD,QAAO;;;;AC2BX,SAAS,+CAA+C,OAAO;CAE3D,IAAI,WAAA,GAAA,MAAA,YAAqC,0CAA2C;AACpF,KAAI,SAAS;EACT,IAAI,EAAY,UAAU,GAAG,iBAAiB;AAC9C,UAAYC,iBAAAA,0CAAmB,cAAc,MAAM;AACnD,YAAU;;AAEVC,kBAAAA,0CAAmB,SAAS,MAAM,IAAI;AAC1C,QAAO;;AAEX,IAAI,+DAA6D,IAAI,SAAS;AAC9E,IAAM,mCAAN,MAAuC;CACnC,sBAAsB;AACdC,2BAAW,MAAM,8CAA8C,MAAM;;CAE7E,IAAI,wBAAwB;AACxB,SAAWC,yBAAU,MAAM,6CAA6C;;CAE5E,YAAY,MAAM,aAAa,eAAe,OAAM;AAC5CC,4BAAW,MAAM,8CAA8C;GAC/D,UAAU;GACV,OAAO,KAAK;GACf,CAAC;AACEF,2BAAW,MAAM,8CAA8C,KAAK;EACxE,IAAI;EACJ,IAAI,iBAAiB,gBAAgB,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,YAAY,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,cAAc;EACtK,MAAM,OAAO,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,uBAAuB;EAChH,IAAI,GAAG,IAAI;EACX,IAAI,SAAS,UAAU;AACvB,MAAI,cAAc,WAAW,QAAQ,cAAc,WAAW,MAAM;AAChE,aAAU,cAAc;AACxB,aAAU,cAAc;;AAE5B,MAAI,KACA,KAAI,WAAW,QAAQ,WAAW,MAAM;AACpC,OAAI,UAAU,KAAK;AACnB,OAAI,UAAU,KAAK;SAChB;AACH,OAAI,KAAK,QAAQ;AACjB,OAAI,KAAK,SAAS;;AAG1B,OAAK,OAAO;AACZ,OAAK,cAAc;AACnB,OAAK,SAAS,cAAc;AAC5B,OAAK,WAAW,cAAc;AAC9B,OAAK,UAAU,cAAc;AAC7B,OAAK,UAAU,cAAc;AAC7B,OAAK,SAAS,cAAc;AAC5B,OAAK,IAAI;AACT,OAAK,IAAI;;;AAGjB,MAAM,qCAAqC,OAAO,cAAc;AAChE,MAAM,iCAAiC;AACvC,MAAM,4CAA4C;AAClD,SAAS,0CAA0C,OAAO;CACtD,IAAI,EAAW,SAAwB,eAA6B,cAA0B,YAAuB,WAAoB,SAAqB,YAAY,WAAW,eAAoC,qBAAgD,2BAAsD,2BAA2B,KAAK,QAAQ,GAAG,aAAa,+CAA+C,MAAM;CAC5a,IAAI,CAAC,WAAW,eAAA,GAAA,MAAA,UAAmC,MAAM;CACzD,IAAI,OAAA,GAAA,MAAA,QAAyB;EACzB,WAAW;EACX,2BAA2B;EAC3B,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EACjB,QAAQ;EACR,cAAc;EACd,aAAa;EACb,aAAa,EAAE;EAClB,CAAC;CACF,IAAI,EAAqB,mBAA6C,6BAAiCG,iBAAAA,2CAA4B;CACnI,IAAI,oBAAwBC,iBAAAA,2CAAwB,eAAe,gBAAc;EAC7E,IAAI,QAAQ,IAAI;AAChB,MAAI,cAAc,MAAM,kBAAmB,QAAO;EAClD,IAAI,wBAAwB;AAC5B,QAAM,oBAAoB;AAC1B,MAAI,cAAc;GACd,IAAI,QAAQ,IAAI,iCAAiC,cAAc,aAAa,cAAc;AAC1F,gBAAa,MAAM;AACnB,2BAAwB,MAAM;;AAElC,MAAI,cAAe,eAAc,KAAK;AACtC,QAAM,oBAAoB;AAC1B,QAAM,oBAAoB;AAC1B,aAAW,KAAK;AAChB,SAAO;GACT;CACF,IAAI,kBAAsBA,iBAAAA,2CAAwB,eAAe,aAAa,aAAa,SAAO;EAC9F,IAAI,QAAQ,IAAI;AAChB,MAAI,CAAC,MAAM,kBAAmB,QAAO;AACrC,QAAM,oBAAoB;AAC1B,QAAM,oBAAoB;EAC1B,IAAI,wBAAwB;AAC5B,MAAI,YAAY;GACZ,IAAI,QAAQ,IAAI,iCAAiC,YAAY,aAAa,cAAc;AACxF,cAAW,MAAM;AACjB,2BAAwB,MAAM;;AAElC,MAAI,cAAe,eAAc,MAAM;AACvC,aAAW,MAAM;AACjB,MAAI,WAAW,cAAc,CAAC,YAAY;GACtC,IAAI,QAAQ,IAAI,iCAAiC,SAAS,aAAa,cAAc;AACrF,WAAQ,MAAM;AACd,6BAA0B,wBAAwB,MAAM;;AAE5D,QAAM,oBAAoB;AAC1B,SAAO;GACT;CACF,IAAI,iBAAqBA,iBAAAA,2CAAwB,eAAe,gBAAc;EAC1E,IAAI,QAAQ,IAAI;AAChB,MAAI,WAAY,QAAO;AACvB,MAAI,WAAW;AACX,SAAM,oBAAoB;GAC1B,IAAI,QAAQ,IAAI,iCAAiC,WAAW,aAAa,cAAc;AACvF,aAAU,MAAM;AAChB,SAAM,oBAAoB;AAC1B,UAAO,MAAM;;AAEjB,SAAO;GACT;CACF,IAAI,SAAaA,iBAAAA,2CAAwB,MAAI;EACzC,IAAI,QAAQ,IAAI;AAChB,MAAI,MAAM,aAAa,MAAM,QAAQ;AACjC,OAAI,MAAM,qBAAqB,MAAM,eAAe,KAAM,iBAAgB,kCAAkC,MAAM,QAAQ,EAAE,EAAE,MAAM,aAAa,MAAM;AACvJ,SAAM,YAAY;AAClB,SAAM,eAAe;AACrB,SAAM,kBAAkB;AACxB,SAAM,cAAc;AACpB,6BAA0B;AAC1B,OAAI,CAAC,0BAA+BC,kBAAAA,0CAA2C,MAAM,OAAO;AAC5F,QAAK,IAAI,WAAW,MAAM,YAAY,UAAS;AAC/C,SAAM,cAAc,EAAE;;GAE5B;CACF,IAAI,sBAA0BD,iBAAAA,2CAAwB,MAAI;AACtD,MAAI,0BAA2B,QAAO,EAAE;GAC1C;CACF,IAAI,eAAmBA,iBAAAA,2CAAwB,MAAI;AAC/C,MAAI,WAAY;AAChB,cAAY,QAAQ,YAAY,KAAK,KAAa,QAAQ,EAAE;GAC9D;CACF,IAAI,wBAA4BA,iBAAAA,2CAAwB,GAAG,WAAS;AAChE,MAAI,WAAY;AAMhB,MAAI,SAAS;GACT,IAAI,QAAQ,IAAI,WAAW,SAAS,EAAE;AAClCE,oBAAAA,0CAA2C,OAAO,OAAO;AAC7D,WAAYC,iBAAAA,yCAA0C,MAAM,CAAC;;GAEnE;CACF,IAAI,cAAA,GAAA,MAAA,eAAqC;EACrC,IAAI,QAAQ,IAAI;EAChB,IAAI,aAAa;GACb,UAAW,GAAG;AACV,QAAI,2CAA2C,EAAE,aAAa,EAAE,cAAc,IAAQC,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,EAAE;KACpK,IAAI;AACJ,SAAI,mDAAuDA,iBAAAA,0CAAuB,EAAE,YAAY,EAAE,EAAE,IAAI,CAAE,GAAE,gBAAgB;KAI5H,IAAI,wBAAwB;AAC5B,SAAI,CAAC,MAAM,aAAa,CAAC,EAAE,QAAQ;AAC/B,YAAM,SAAS,EAAE;AACjB,YAAM,YAAY;AAClB,YAAM,cAAc;AACpB,8BAAwB,kBAAkB,GAAG,WAAW;MAIxD,IAAI,iBAAiB,EAAE;MACvB,IAAI,WAAW,MAAI;AACf,WAAI,2CAA2C,GAAG,eAAe,IAAI,CAAC,EAAE,UAAcD,iBAAAA,0CAAqB,gBAAoBC,iBAAAA,0CAAuB,EAAE,CAAC,IAAI,MAAM,OAAQ,gBAAe,kCAAkC,MAAM,QAAQ,EAAE,EAAE,WAAW;;AAE7P,wBAAsBC,iBAAAA,0CAAyB,EAAE,cAAc,EAAE,SAAaC,iBAAAA,0CAAc,SAAS,QAAQ,EAAE,KAAK;;AAExH,SAAI,sBAAuB,GAAE,iBAAiB;AAQ9C,SAAI,EAAE,WAAeC,iBAAAA,2CAAe,CAAE,EAAC,uBAAuB,MAAM,mBAAmB,QAAQ,yBAAyB,KAAK,KAAa,qBAAqB,IAAI,EAAE,KAAK,EAAE,YAAY;eACjL,EAAE,QAAQ,OAAQ,OAAM,gCAAgB,IAAI,KAAK;;GAEhE,QAAS,GAAG;AACR,QAAI,KAAK,CAAKJ,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAChG,QAAI,KAAK,EAAE,WAAW,KAAK,CAAC,MAAM,qBAAqB,CAAKI,0CAAiB,WAAW;KACpF,IAAI,wBAAwB;AAC5B,SAAI,WAAY,GAAE,gBAAgB;AAGlC,SAAI,CAAC,MAAM,6BAA6B,CAAC,MAAM,cAAc,MAAM,gBAAgB,aAAiBC,iBAAAA,0CAAuB,EAAE,YAAY,GAAG;MACxI,IAAI,iBAAiB,kBAAkB,GAAG,UAAU;MACpD,IAAI,cAAc,eAAe,GAAG,UAAU;MAC9C,IAAI,eAAe,gBAAgB,GAAG,UAAU;AAChD,mBAAa,EAAE;AACf,8BAAwB,kBAAkB,eAAe;gBAClD,MAAM,aAAa,MAAM,gBAAgB,YAAY;MAC5D,IAAI,cAAc,MAAM,eAAe,EAAE,YAAY,eAAe;MACpE,IAAI,cAAc,eAAe,kCAAkC,EAAE,eAAe,EAAE,EAAE,YAAY;MACpG,IAAI,eAAe,gBAAgB,kCAAkC,EAAE,eAAe,EAAE,EAAE,aAAa,KAAK;AAC5G,8BAAwB,eAAe;AACvC,YAAM,eAAe;AACrB,mBAAa,EAAE;AACf,aAAO,EAAE;;AAEb,WAAM,4BAA4B;AAClC,SAAI,sBAAuB,GAAE,iBAAiB;;;GAGzD;EACD,IAAI,WAAW,MAAI;GACf,IAAI;AACJ,OAAI,MAAM,aAAa,MAAM,UAAU,2CAA2C,GAAG,MAAM,OAAO,EAAE;IAChG,IAAI;AACJ,QAAI,mDAAuDL,iBAAAA,0CAAuB,EAAE,EAAE,EAAE,IAAI,CAAE,GAAE,gBAAgB;IAChH,IAAI,SAAaA,iBAAAA,0CAAuB,EAAE;IAC1C,IAAI,aAAiBD,iBAAAA,0CAAqB,MAAM,QAAYC,iBAAAA,0CAAuB,EAAE,CAAC;AACtF,oBAAgB,kCAAkC,MAAM,QAAQ,EAAE,EAAE,YAAY,WAAW;AAC3F,QAAI,WAAY,uBAAsB,GAAG,MAAM,OAAO;AACtD,8BAA0B;AAI1B,QAAI,EAAE,QAAQ,WAAW,uCAAuC,MAAM,OAAO,IAAQD,iBAAAA,0CAAqB,MAAM,QAAQ,OAAO,IAAI,CAAC,EAAE,qCAAqC;AAGvK,OAAE,sCAAsC;AACpCK,+CAAiB,MAAM,QAAQ,GAAG,MAAM;;AAEhD,UAAM,YAAY;AAClB,KAAC,wBAAwB,MAAM,mBAAmB,QAAQ,0BAA0B,KAAK,KAAa,sBAAsB,OAAO,EAAE,IAAI;cAClI,EAAE,QAAQ,YAAY,uBAAuB,MAAM,mBAAmB,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB,OAAO;IAC5J,IAAI;IAIJ,IAAI,SAAS,MAAM;AACnB,UAAM,gBAAgB,KAAA;AACtB,SAAK,IAAI,SAAS,OAAO,QAAQ,CAAC,EAAC,gBAAgB,MAAM,YAAY,QAAQ,kBAAkB,KAAK,KAAa,cAAc,cAAc,IAAI,cAAc,SAAS,MAAM,CAAC;;;AAGvL,MAAI,OAAO,iBAAiB,aAAa;AACrC,cAAW,iBAAiB,MAAI;AAE5B,QAAI,EAAE,WAAW,KAAK,CAAKL,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAK7G,QAAQM,iBAAAA,0CAA8B,EAAE,YAAY,EAAE;AAClD,WAAM,cAAc;AACpB;;AAEJ,UAAM,cAAc,EAAE;IACtB,IAAI,wBAAwB;AAC5B,QAAI,CAAC,MAAM,WAAW;AAClB,WAAM,YAAY;AAClB,WAAM,eAAe;AACrB,WAAM,kBAAkB,EAAE;AAC1B,WAAM,SAAS,EAAE;AACjB,SAAI,CAAC,0BAA+BC,kBAAAA,0CAA2C,MAAM,OAAO;AAC5F,6BAAwB,kBAAkB,GAAG,MAAM,YAAY;KAG/D,IAAI,SAAaP,iBAAAA,0CAAuB,EAAE,YAAY;AACtD,SAAI,2BAA2B,OAAQ,QAAO,sBAAsB,EAAE,UAAU;AAChF,uBAAsBC,iBAAAA,0CAAyB,EAAE,cAAc,EAAE,aAAa,aAAa,MAAM;AACjG,uBAAsBA,iBAAAA,0CAAyB,EAAE,cAAc,EAAE,iBAAiB,iBAAiB,MAAM;;AAE7G,QAAI,sBAAuB,GAAE,iBAAiB;;AAElD,cAAW,eAAe,MAAI;AAC1B,QAAI,CAAKF,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,QAAI,EAAE,WAAW,GAAG;AAChB,SAAI,qBAAqB;MACrB,IAAI,UAAcQ,iBAAAA,0CAA2C,EAAE,OAAO;AACtE,UAAI,QAAS,OAAM,YAAY,KAAK,QAAQ;;AAEhD,OAAE,iBAAiB;;;AAG3B,cAAW,eAAe,MAAI;AAE1B,QAAI,CAAKT,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,IAAI,MAAM,gBAAgB,UAAW;AAE9H,QAAI,EAAE,WAAW,KAAK,CAAC,MAAM,UAAW,gBAAe,GAAG,MAAM,eAAe,EAAE,YAAY;;AAEjG,cAAW,kBAAkB,MAAI;AAC7B,QAAI,EAAE,cAAc,MAAM,mBAAmB,MAAM,UAAU,CAAC,MAAM,gBAAgB,MAAM,eAAe,MAAM;AAC3G,WAAM,eAAe;AACrB,uBAAkB,kCAAkC,MAAM,QAAQ,EAAE,EAAE,MAAM,YAAY;;;AAGhG,cAAW,kBAAkB,MAAI;AAC7B,QAAI,EAAE,cAAc,MAAM,mBAAmB,MAAM,UAAU,MAAM,gBAAgB,MAAM,eAAe,MAAM;AAC1G,WAAM,eAAe;AACrB,qBAAgB,kCAAkC,MAAM,QAAQ,EAAE,EAAE,MAAM,aAAa,MAAM;AAC7F,yBAAoB,EAAE;;;GAG9B,IAAI,eAAe,MAAI;AACnB,QAAI,EAAE,cAAc,MAAM,mBAAmB,MAAM,aAAa,EAAE,WAAW,KAAK,MAAM,QAAQ;AAC5F,SAAQD,iBAAAA,0CAAqB,MAAM,QAAYC,iBAAAA,0CAAuB,EAAE,CAAC,IAAI,MAAM,eAAe,MAAM;MAWpG,IAAI,UAAU;MACd,IAAI,UAAU,iBAAe;AACzB,WAAI,MAAM,aAAa,MAAM,kBAAkB,YAC3C,KAAI,QAAS,QAAO,EAAE;YACjB;AACGS,yBAAAA,0CAA8B,MAAM,OAAO;AAC/C,cAAM,OAAO,OAAO;;SAG7B,GAAG;AAGN,wBAAkB,EAAE,eAAe,eAAa,UAAU,MAAM,KAAK;AACrE,YAAM,YAAY,WAAS,aAAa,QAAQ,CAAC;WAC9C,QAAO,EAAE;AAEhB,WAAM,eAAe;;;GAG7B,IAAI,mBAAmB,MAAI;AACvB,WAAO,EAAE;;AAEb,cAAW,eAAe,MAAI;AAC1B,QAAI,CAAKV,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAE3F,WAAO,EAAE;;aAEN,QAAQ,IAAI,aAAa,QAAQ;AAGxC,cAAW,eAAe,MAAI;AAE1B,QAAI,EAAE,WAAW,KAAK,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC7G,QAAI,MAAM,2BAA2B;AACjC,OAAE,iBAAiB;AACnB;;AAEJ,UAAM,YAAY;AAClB,UAAM,eAAe;AACrB,UAAM,SAAS,EAAE;AACjB,UAAM,cAAkBK,iBAAAA,0CAAuB,EAAE,YAAY,GAAG,YAAY;AAG5E,SAAA,GAAA,UAAA,iBADsD,kBAAkB,GAAG,MAAM,YAAY,CACpE,CAAE,GAAE,iBAAiB;AAC9C,QAAI,qBAAqB;KACrB,IAAI,UAAcG,iBAAAA,0CAA2C,EAAE,OAAO;AACtE,SAAI,QAAS,OAAM,YAAY,KAAK,QAAQ;;AAEhD,sBAAsBP,iBAAAA,0CAAyB,EAAE,cAAc,EAAE,WAAW,WAAW,MAAM;;AAEjG,cAAW,gBAAgB,MAAI;AAC3B,QAAI,CAAKF,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;IAC3F,IAAI,wBAAwB;AAC5B,QAAI,MAAM,aAAa,CAAC,MAAM,6BAA6B,MAAM,eAAe,MAAM;AAClF,WAAM,eAAe;AACrB,6BAAwB,kBAAkB,GAAG,MAAM,YAAY;;AAEnE,QAAI,sBAAuB,GAAE,iBAAiB;;AAElD,cAAW,gBAAgB,MAAI;AAC3B,QAAI,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;IAC3F,IAAI,wBAAwB;AAC5B,QAAI,MAAM,aAAa,CAAC,MAAM,6BAA6B,MAAM,eAAe,MAAM;AAClF,WAAM,eAAe;AACrB,6BAAwB,gBAAgB,GAAG,MAAM,aAAa,MAAM;AACpE,yBAAoB,EAAE;;AAE1B,QAAI,sBAAuB,GAAE,iBAAiB;;AAElD,cAAW,aAAa,MAAI;AACxB,QAAI,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,QAAI,CAAC,MAAM,6BAA6B,EAAE,WAAW,KAAK,CAAC,MAAM,UAAW,gBAAe,GAAG,MAAM,eAAe,QAAQ;;GAE/H,IAAI,aAAa,MAAI;AAEjB,QAAI,EAAE,WAAW,EAAG;AACpB,QAAI,MAAM,2BAA2B;AACjC,WAAM,4BAA4B;AAClC;;AAEJ,QAAI,MAAM,UAAU,MAAM,OAAO,SAAS,EAAE,OAAO,IAAI,MAAM,eAAe;QACvE,QAAO,EAAE;AACd,UAAM,eAAe;;AAEzB,cAAW,gBAAgB,MAAI;AAC3B,QAAI,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;IAC3F,IAAI,QAAQ,wCAAwC,EAAE,YAAY;AAClE,QAAI,CAAC,MAAO;AACZ,UAAM,kBAAkB,MAAM;AAC9B,UAAM,4BAA4B;AAClC,UAAM,eAAe;AACrB,UAAM,YAAY;AAClB,UAAM,SAAS,EAAE;AACjB,UAAM,cAAc;AACpB,QAAI,CAAC,0BAA+BO,kBAAAA,0CAA2C,MAAM,OAAO;AAE5F,QAD4B,kBAAkB,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,YACpF,CAAE,GAAE,iBAAiB;AAC9C,sBAAsBG,iBAAAA,0CAAuB,EAAE,cAAc,EAAE,UAAU,UAAU,KAAK;;AAE5F,cAAW,eAAe,MAAI;AAC1B,QAAI,CAAKX,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,QAAI,CAAC,MAAM,WAAW;AAClB,OAAE,iBAAiB;AACnB;;IAEJ,IAAI,QAAQ,mCAAmC,EAAE,aAAa,MAAM,gBAAgB;IACpF,IAAI,wBAAwB;AAC5B,QAAI,SAAS,mCAAmC,OAAO,EAAE,cAAc;SAC/D,CAAC,MAAM,gBAAgB,MAAM,eAAe,MAAM;AAClD,YAAM,eAAe;AACrB,8BAAwB,kBAAkB,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,YAAY;;eAElH,MAAM,gBAAgB,MAAM,eAAe,MAAM;AACxD,WAAM,eAAe;AACrB,6BAAwB,gBAAgB,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,aAAa,MAAM;AAC1H,yBAAoB,uCAAuC,MAAM,QAAQ,EAAE,CAAC;;AAEhF,QAAI,sBAAuB,GAAE,iBAAiB;;AAElD,cAAW,cAAc,MAAI;AACzB,QAAI,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,QAAI,CAAC,MAAM,WAAW;AAClB,OAAE,iBAAiB;AACnB;;IAEJ,IAAI,QAAQ,mCAAmC,EAAE,aAAa,MAAM,gBAAgB;IACpF,IAAI,wBAAwB;AAC5B,QAAI,SAAS,mCAAmC,OAAO,EAAE,cAAc,IAAI,MAAM,eAAe,MAAM;AAClG,oBAAe,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,YAAY;AAC1F,6BAAwB,gBAAgB,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,YAAY;AACnH,2BAAsB,EAAE,aAAa,MAAM,OAAO;eAC3C,MAAM,gBAAgB,MAAM,eAAe,KAAM,yBAAwB,gBAAgB,uCAAuC,MAAM,QAAQ,EAAE,EAAE,MAAM,aAAa,MAAM;AACtL,QAAI,sBAAuB,GAAE,iBAAiB;AAC9C,UAAM,YAAY;AAClB,UAAM,kBAAkB;AACxB,UAAM,eAAe;AACrB,UAAM,4BAA4B;AAClC,QAAI,MAAM,UAAU,CAAC,0BAA+BJ,kBAAAA,0CAA2C,MAAM,OAAO;AAC5G,8BAA0B;;AAE9B,cAAW,iBAAiB,MAAI;AAC5B,QAAI,CAAKG,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,MAAE,iBAAiB;AACnB,QAAI,MAAM,UAAW,QAAO,uCAAuC,MAAM,QAAQ,EAAE,CAAC;;GAExF,IAAI,YAAY,MAAI;AAChB,QAAI,MAAM,aAAiBD,iBAAAA,0CAAyBC,iBAAAA,0CAAuB,EAAE,EAAE,MAAM,OAAO,CAAE,QAAO;KACjG,eAAe,MAAM;KACrB,UAAU;KACV,SAAS;KACT,SAAS;KACT,QAAQ;KACX,CAAC;;AAEN,cAAW,eAAe,MAAI;AAC1B,QAAI,CAAKD,iBAAAA,0CAAqB,EAAE,eAAmBC,iBAAAA,0CAAuB,EAAE,YAAY,CAAC,CAAE;AAC3F,WAAO,EAAE;;;AAGjB,SAAO;IACR;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACH,CAAC;AAEF,EAAA,GAAA,MAAA,iBAA0B;AACtB,MAAI,CAAC,UAAU,QAAQ,IAAI,aAAa,OAAQ;EAChD,MAAM,gBAAoBC,iBAAAA,0CAAyB,OAAO,QAAQ;AAClE,MAAI,CAAC,iBAAiB,CAAC,cAAc,QAAQ,cAAc,eAAe,+BAA+B,CAAE;EAC3G,MAAM,QAAQ,cAAc,cAAc,QAAQ;AAClD,QAAM,KAAK;AAIX,QAAM,cAAc;;KAEvB,0CAA0C;;;;MAIzC,MAAM;AACJ,gBAAc,KAAK,QAAQ,MAAM;IAClC,CACC,OACH,CAAC;AAEF,EAAA,GAAA,MAAA,iBAA0B;EACtB,IAAI,QAAQ,IAAI;AAChB,eAAW;GACP,IAAI;AACJ,OAAI,CAAC,0BAA+BL,kBAAAA,2CAA4C,gBAAgB,MAAM,YAAY,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,KAAA,EAAU;AAC/K,QAAK,IAAI,WAAW,MAAM,YAAY,UAAS;AAC/C,SAAM,cAAc,EAAE;;IAE3B,CACC,0BACH,CAAC;AACF,QAAO;EACH,WAAW,iBAAiB;EAC5B,YAAgBP,iBAAAA,0CAAmB,UAAU,YAAY,GACpD,4CAA4C,MAChD,CAAC;EACL;;AAEL,SAAS,uCAAuC,QAAQ;AACpD,QAAO,OAAO,YAAY,OAAO,OAAO,aAAa,OAAO;;AAEhE,SAAS,2CAA2C,OAAO,eAAe;CACtE,MAAM,EAAO,KAAW,SAAS;CACjC,MAAM,UAAU;CAChB,MAAM,OAAO,QAAQ,aAAa,OAAO;AAGzC,SAAQ,QAAQ,WAAW,QAAQ,OAAO,QAAQ,cAAc,SAAS,YAAY,EAAE,mBAAuBqB,iBAAAA,0CAAuB,QAAQ,CAAC,oBAAoB,CAAC,sCAAsC,SAAS,IAAI,IAAI,mBAAuBA,iBAAAA,0CAAuB,QAAQ,CAAC,uBAAuB,QAAQ,sBAChT,GAAG,SAAS,UAAU,CAAC,QAAQ,uCAAuC,QAAQ,KAAK,QAAQ;;AAE/F,SAAS,wCAAwC,OAAO;CACpD,MAAM,EAAiB,kBAAkB;AACzC,KAAI,cAAc,SAAS,EAAG,QAAO,cAAc;AACnD,QAAO;;AAEX,SAAS,mCAAmC,OAAO,WAAW;CAC1D,MAAM,iBAAiB,MAAM;AAC7B,MAAI,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAI;EAC1C,MAAM,QAAQ,eAAe;AAC7B,MAAI,MAAM,eAAe,UAAW,QAAO;;AAE/C,QAAO;;AAEX,SAAS,uCAAuC,QAAQ,GAAG;CACvD,IAAI,UAAU;CACd,IAAI,UAAU;AACd,KAAI,EAAE,iBAAiB,EAAE,cAAc,WAAW,GAAG;AACjD,YAAU,EAAE,cAAc,GAAG;AAC7B,YAAU,EAAE,cAAc,GAAG;;AAEjC,QAAO;EACH,eAAe;EACf,UAAU,EAAE;EACZ,SAAS,EAAE;EACX,SAAS,EAAE;EACX,QAAQ,EAAE;EACD;EACA;EACZ;;AAEL,SAAS,kCAAkC,QAAQ,GAAG;CAClD,IAAI,UAAU,EAAE;CAChB,IAAI,UAAU,EAAE;AAChB,QAAO;EACH,eAAe;EACf,UAAU,EAAE;EACZ,SAAS,EAAE;EACX,SAAS,EAAE;EACX,QAAQ,EAAE;EACD;EACA;EACZ;;AAEL,SAAS,yCAAyC,OAAO;CACrD,IAAI,UAAU;CACd,IAAI,UAAU;AACd,KAAI,MAAM,UAAU,KAAA,EAAW,WAAU,MAAM,QAAQ;UAC9C,MAAM,YAAY,KAAA,EAAW,WAAU,MAAM;AACtD,KAAI,MAAM,WAAW,KAAA,EAAW,WAAU,MAAM,SAAS;UAChD,MAAM,YAAY,KAAA,EAAW,WAAU,MAAM;AACtD,QAAO;EACH,KAAK,MAAM,UAAU;EACrB,OAAO,MAAM,UAAU;EACvB,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,UAAU;EACzB;;AAEL,SAAS,+CAA+C,GAAG,GAAG;AAE1D,KAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAO,QAAO;AAEjD,KAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAQ,QAAO;AACjD,QAAO;;AAEX,SAAS,mCAAmC,OAAO,QAAQ;AAGvD,QAAO,+CAFI,OAAO,uBAEwC,EAD1C,yCAAyC,MACY,CAAC;;AAE1E,SAAS,6CAA6C,QAAQ;AAC1D,KAAI,kBAAkB,iBAAkB,QAAO;AAC/C,KAAI,kBAAkB,kBAAmB,QAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAC5F,KAAI,uCAAuC,OAAO,CAAE,QAAO;AAC3D,QAAO;;AAEX,SAAS,mDAAmD,QAAQ,KAAK;AACrE,KAAI,kBAAkB,iBAAkB,QAAO,CAAC,sCAAsC,QAAQ,IAAI;AAClG,QAAO,6CAA6C,OAAO;;AAE/D,MAAM,0CAA0C,IAAI,IAAI;CACpD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACH,CAAC;AACF,SAAS,sCAAsC,QAAQ,KAAK;AAExD,QAAO,OAAO,SAAS,cAAc,OAAO,SAAS,UAAU,QAAQ,MAAM,wCAAwC,IAAI,OAAO,KAAK;;;;AC7czI,SAAS,sCAAsC,SAAS;AACpD,KAAI,QAAQ,QAAS,QAAO;CAC5B,IAAI,SAAS,EAAE;AACf,KAAI,CAAC,QAAQ,KAAM,UAAS,CACxB,GAAOC,iBAAAA,0CAAyB,QAAQ,CAAC,iBAAiB,6BAA6B,IAAI,OAAO,QAAQ,KAAK,CAAC,IAAI,CACvH,CAAC,QAAQ,UAAQ,CAAC,MAAM,KAAK;MACzB;EACD,IAAI,wBAAwB;EAC5B,IAAI,aAAa,gBAAgB,QAAQ,UAAU,QAAQ,kBAAkB,KAAK,IAAI,KAAK,KAAK,yBAAyB,cAAc,cAAc,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,UAAU,QAAQ,KAAK;AACxP,WAAS,CACL,GAAG,cAAc,QAAQ,cAAc,KAAK,IAAI,YAAY,EAAE,CACjE;;AAEL,KAAI,CAAC,OAAQ,QAAO;AAEpB,QAAO,CADU,OAAO,MAAM,UAAQ,MAAM,QAC1B;;AAiGtB,SAAS,uCAAuC,SAAS,OAAO;AAC5D,KAAI,CAAC,QAAS,QAAO;AACrB,KAAI,CAAC,MAAO,QAAO;AACnB,QAAO,MAAM,MAAM,SAAO,KAAK,SAAS,QAAQ,CAAC;;AAwBrD,SAAS,mCAAmC,SAAS,SAAS,OAAO;AACjE,KAAI,WAAW,QAAQ,CAAC,OAAQ,KAAI;AAC5BC,mBAAAA,0CAAoB,QAAQ;SAC3B;UAGA,WAAW,KAAM,KAAI;AAC1B,UAAQ,OAAO;SACV;;AA8Mb,SAAS,0CAA0C,MAAM,MAAM,OAAO;CAClE,IAAI,UAAU,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,YAAgBC,iBAAAA,4CAAyBC,iBAAAA;CAIxG,IAAI,MAAUH,iBAAAA,2CAFK,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,cAAc,KAAK,eAAe,OAAO,KAE1D;CAEnD,IAAI,SAAaI,0CAA+B,KAAK,QAAQ,KAAK,WAAW,cAAc,EACvF,WAAY,MAAM;EACd,IAAI;AAEJ,MAAI,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,KAAK,aAAa,KAAK,UAAU,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,SAAS,KAAK,CAAE,QAAO,WAAW;AACnK,OAAK,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,aAAa,KAAK,YAAY,WAAW,KAAK,aAAa,OAAO,KAAK,SAAS;AAElI,OAAI,CAAC,sCAAsC,KAAK,CAAE,QAAO,WAAW;AAEpE,OAAI,OAAO,YAAY,YAAY,WAAW,OAAO,YAAY,SAAS,WAAW,OAAO,YAAY,SAAS,KAAK,KAAM,QAAO,WAAW;;AAElJ,MAAI,OAAO,KAAK,KAAK,CAAC,SAAS,uCAAuC,MAAM,MAAM,MAAM,EAAE,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,WAAW,KAAK,OAAO,KAAK,EAAG,QAAO,WAAW;AAC5L,SAAO,WAAW;IAEzB,CAAC;AACF,KAAI,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,KAAM,QAAO,cAAc,KAAK;AACrF,QAAO;;AAEX,SAAS,yCAAyC,KAAK,iBAAiB,EAAE,EAAE;AACxE,QAAO;EACH,UAAW,OAAO,EAAE,EAAE;GAClB,IAAI,OAAO,IAAI;AACf,OAAI,CAAC,KAAM,QAAO;GAClB,IAAI,EAAQ,MAAgB,WAAW,eAAe,UAAgB,OAAO,eAAe,MAAc,SAAS,eAAe,WAAW;GAC7I,IAAI,OAAO,QAAYC,iBAAAA,0CAA6BL,iBAAAA,0CAAyB,KAAK,CAAC;GACnF,IAAI,SAAS,0CAA0C,MAAM;IAC/C;IACF;IACX,CAAC;AACF,OAAI,KAAK,SAAS,KAAK,CAAE,QAAO,cAAc;GAC9C,IAAI,WAAW,OAAO,UAAU;AAChC,OAAI,CAAC,YAAY,MAAM;AACnB,WAAO,cAAc;AACrB,eAAW,OAAO,UAAU;;AAEhC,OAAI,SAAU,oCAAmC,UAAU,KAAK;AAChE,UAAO;;EAEX,cAAe,OAAO,gBAAgB;GAClC,IAAI,OAAO,IAAI;AACf,OAAI,CAAC,KAAM,QAAO;GAClB,IAAI,EAAQ,MAAgB,WAAW,eAAe,UAAgB,OAAO,eAAe,MAAc,SAAS,eAAe,WAAW;GAC7I,IAAI,OAAO,QAAYK,iBAAAA,0CAA6BL,iBAAAA,0CAAyB,KAAK,CAAC;GACnF,IAAI,SAAS,0CAA0C,MAAM;IAC/C;IACF;IACX,CAAC;AACF,OAAI,KAAK,SAAS,KAAK,CAAE,QAAO,cAAc;QACzC;IACD,IAAI,OAAO,2BAA2B,OAAO;AAC7C,QAAI,KAAM,oCAAmC,MAAM,KAAK;AACxD,WAAO,SAAS,QAAQ,SAAS,KAAK,IAAI,OAAO;;GAErD,IAAI,eAAe,OAAO,cAAc;AACxC,OAAI,CAAC,gBAAgB,MAAM;AACvB,WAAO,cAAc;IACrB,IAAI,WAAW,2BAA2B,OAAO;AACjD,QAAI,CAAC,SACL,QAAO;AACP,mBAAe;;AAEnB,OAAI,aAAc,oCAAmC,cAAc,KAAK;AACxE,UAAO,iBAAiB,QAAQ,iBAAiB,KAAK,IAAI,eAAe;;EAE7E,WAAY,OAAO,gBAAgB;GAC/B,IAAI,OAAO,IAAI;AACf,OAAI,CAAC,KAAM,QAAO;GAClB,IAAI,EAAY,WAAW,eAAe,UAAkB,SAAS,eAAe,WAAW;GAK/F,IAAI,WAJS,0CAA0C,MAAM;IAC/C;IACF;IACX,CACoB,CAAC,UAAU;AAChC,OAAI,SAAU,oCAAmC,UAAU,KAAK;AAChE,UAAO;;EAEX,UAAW,OAAO,gBAAgB;GAC9B,IAAI,OAAO,IAAI;AACf,OAAI,CAAC,KAAM,QAAO;GAClB,IAAI,EAAY,WAAW,eAAe,UAAkB,SAAS,eAAe,WAAW;GAK/F,IAAI,OAAO,2BAJE,0CAA0C,MAAM;IAC/C;IACF;IACX,CAC2C,CAAC;AAC7C,OAAI,KAAM,oCAAmC,MAAM,KAAK;AACxD,UAAO,SAAS,QAAQ,SAAS,KAAK,IAAI,OAAO;;EAExD;;AAEL,SAAS,2BAA2B,QAAQ;CACxC,IAAI,OAAO,KAAA;CACX,IAAI;AACJ,IAAG;AACC,SAAO,OAAO,WAAW;AACzB,MAAI,KAAM,QAAO;UACb;AACR,QAAO;;AAEX,IAAM,6BAAN,MAAM,2BAA2B;CAC7B,IAAI,OAAO;AACP,SAAO,KAAK,QAAQ;;CAExB,YAAY,MAAM;AACd,SAAO,KAAK,QAAQ,IAAI,KAAK;;CAEjC,YAAY,UAAU,QAAQ,eAAe;EACzC,IAAI,aAAa,KAAK,QAAQ,IAAI,WAAW,QAAQ,WAAW,KAAK,IAAI,SAAS,KAAK;AACvF,MAAI,CAAC,WAAY;EACjB,IAAI,OAAO,IAAI,+BAA+B,EAChC,UACb,CAAC;AACF,aAAW,SAAS,KAAK;AACzB,OAAK,SAAS;AACd,OAAK,QAAQ,IAAI,UAAU,KAAK;AAChC,MAAI,cAAe,MAAK,gBAAgB;;CAE5C,QAAQ,MAAM;AACV,OAAK,QAAQ,IAAI,KAAK,UAAU,KAAK;;CAEzC,eAAe,UAAU;AAErB,MAAI,aAAa,KAAM;EACvB,IAAI,OAAO,KAAK,QAAQ,IAAI,SAAS;AACrC,MAAI,CAAC,KAAM;EACX,IAAI,aAAa,KAAK;AAGtB,OAAK,IAAI,WAAW,KAAK,UAAU,CAAC,KAAI,YAAY,QAAQ,KAAK,iBAAiB,QAAQ,iBAAiB,KAAK,YAAY,KAAK,SAAS,WAAW,uCAAuC,QAAQ,eAAe,KAAK,SAAS,QAAQ,CAAE,SAAQ,gBAAgB,KAAK;EACxQ,IAAI,WAAW,KAAK;AACpB,MAAI,YAAY;AACZ,cAAW,YAAY,KAAK;AAC5B,OAAI,SAAS,OAAO,EAAG,UAAS,SAAS,UAAQ,cAAc,WAAW,SAAS,MAAM,CAAC;;AAE9F,OAAK,QAAQ,OAAO,KAAK,SAAS;;CAGtC,CAAC,SAAS,OAAO,KAAK,MAAM;AACxB,MAAI,KAAK,YAAY,KAAM,OAAM;AACjC,MAAI,KAAK,SAAS,OAAO,EAAG,MAAK,IAAI,SAAS,KAAK,SAAS,QAAO,KAAK,SAAS,MAAM;;CAE3F,QAAQ;EACJ,IAAI;EACJ,IAAI,UAAU,IAAI,4BAA4B;EAC9C,IAAI;AACJ,OAAK,IAAI,QAAQ,KAAK,UAAU,CAAC,SAAQ,YAAY,KAAK,WAAW,yBAAyB,eAAe,KAAK,YAAY,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,cAAc,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,MAAM,KAAK,cAAc;AAChS,SAAO;;CAEX,cAAa;AACT,OAAK,0BAAU,IAAI,KAAK;AACxB,OAAK,OAAO,IAAI,+BAA+B,EAC3C,UAAU,MACb,CAAC;AACF,OAAK,QAAQ,IAAI,MAAM,KAAK,KAAK;;;AAGzC,IAAM,iCAAN,MAAqC;CACjC,SAAS,MAAM;AACX,OAAK,SAAS,IAAI,KAAK;AACvB,OAAK,SAAS;;CAElB,YAAY,MAAM;AACd,OAAK,SAAS,OAAO,KAAK;AAC1B,OAAK,SAAS,KAAA;;CAElB,YAAY,OAAM;AACd,OAAK,2BAAW,IAAI,KAAK;AACzB,OAAK,UAAU;AACf,OAAK,WAAW,MAAM;;;AAGkB,IAAI,4BAA4B;;;AC5tB5E,MAAM,qCAAqC,OAAO,IAAI,yBAAyB;AACnF,MAAM,sCAAsC,OAAO,IAAI,0BAA0B;AACjF,IAAI,4CAA4C,KAAA;AAChD,IAAM,4CAAN,MAAM,0CAA0C;iEACoB,mBAAmB,KAAK,QAAQ;EAE5F,IAAI,SADU,KAAK,oBAAoB,OACnB,CAAC;AACrB,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,+BAA+B,IAAI,MAAM,OAAO,SAAS;AACtF,SAAO;;4DAEgD,oBAAoB,QAAQ;EACnF,IAAI,UAAU,KAAK,QAAQ;AAC3B,MAAI,CAAC,SAAS;AACV,aAAU,0CAA0C,QAAQ,KAAK,SAAS,KAAK,cAAc;AAC7F,QAAK,QAAQ,UAAU;;AAE3B,SAAO;;CAEX,OAAO,8BAA8B,aAAa;AAC9C,MAAI,OAAO,WAAW,YAAa,QAAO;EAC1C,IAAI,SAAS,OAAO;AACpB,MAAI,8CAA8C,KAAA,GAAW;GACzD,IAAI,gBAAgB,OAAO;AAC3B,OAAI,CAAC,cAAe,QAAO;AAC3B,+CAA4C,EAAE;AAC9C,QAAI,IAAI,OAAO,cAAc,2CAA0C,OAAO,IAAI,0CAA0C,GACvH,SAAS,cAAc,MAC3B,EAAE,OAAO;;EAEd,IAAI,aAAa,8CAA8C,QAAQ,8CAA8C,KAAK,IAAI,KAAK,IAAI,0CAA0C;AACjL,MAAI,CAAC,WAAY,OAAM,IAAI,MAAM,wBAAwB,YAAY,sHAAsH;AAC3L,SAAO;;CAEX,YAAY,UAAU,gBAAgB,SAAQ;AAG1C,OAAK,UAAU,OAAO,YAAY,OAAO,QAAQ,SAAS,CAAC,QAAQ,GAAG,OAAK,EAAE,CAAC;AAC9E,OAAK,gBAAgB;;;AAG7B,SAAS,0CAA0C,QAAQ,SAAS,gBAAgB,SAAS;AAEzF,KAAI,QAAQ,QAAS,QAAO,QAAQ;CAMpC,IAAI,WAAW,kCAAkC,OAAO;AACxD,KAAI,QAAQ,UAAW,QAAO,QAAQ;AACtC,MAAI,IAAI,OAAO,QACX,KAAI,IAAI,WAAW,WAAW,IAAI,CAAE,QAAO,QAAQ;AAGvD,QAAO,QAAQ;;AAEnB,SAAS,kCAAkC,QAAQ;AAE/C,KAAI,KAAK,OACT,QAAO,IAAI,KAAK,OAAO,OAAO,CAAC;AAC/B,QAAO,OAAO,MAAM,IAAI,CAAC;;;;AC5DzB,MAAM,yDAAyC,IAAI,KAAK;AAC5D,MAAM,0DAA0C,IAAI,KAAK;AACzD,IAAM,4CAAN,MAAgD;kFACqC,OAAO,KAAK,WAAW;EACpG,IAAI,UAAU,KAAK,QAAQ,mBAAmB,KAAK,KAAK,OAAO;AAC/D,SAAO,OAAO,YAAY,aAAa,QAAQ,WAAW,KAAK,GAAG;;CAEtE,OAAO,OAAO,SAAS,OAAO,YAAY;EACtC,IAAI,MAAM,QAAQ,MAAM;AACxB,MAAI,IAAK,QAAO,OAAO,QAAQ,aAAa,KAAK,GAAG;EACpD,IAAI,MAAM,KAAK,SAAS,MAAM;EAC9B,IAAI,cAAc,uCAAuC,IAAI,IAAI;AACjE,MAAI,CAAC,aAAa;AACd,iBAAc,IAAI,KAAK,YAAY,KAAK,QAAQ,EACtC,MACT,CAAC;AACF,0CAAuC,IAAI,KAAK,YAAY;;AAGhE,QAAM,QADS,YAAY,OAAO,MACZ,KAAK,QAAQ;AACnC,SAAO,OAAO,QAAQ,aAAa,KAAK,GAAG;;CAE/C,OAAO,OAAO;EACV,IAAI,eAAe,wCAAwC,IAAI,KAAK,OAAO;AAC3E,MAAI,CAAC,cAAc;AACf,kBAAe,IAAI,KAAK,aAAa,KAAK,OAAO;AACjD,2CAAwC,IAAI,KAAK,QAAQ,aAAa;;AAE1E,SAAO,aAAa,OAAO,MAAM;;CAErC,OAAO,SAAS,OAAO;EACnB,IAAI,MAAM,QAAQ,UAAU,QAAQ;AACpC,SAAO,OAAO,QAAQ,aAAa,KAAK,GAAG;;CAE/C,YAAY,QAAQ,SAAQ;AACxB,OAAK,SAAS;AACd,OAAK,UAAU;;;;;AC7BvB,MAAM,8CAA8B,IAAI,SAAS;AACjD,SAAS,0CAA0C,SAAS;CACxD,IAAI,aAAa,4BAA4B,IAAI,QAAQ;AACzD,KAAI,CAAC,YAAY;AACb,eAAa,IAAQM,0CAAkC,QAAQ;AAC/D,8BAA4B,IAAI,SAAS,WAAW;;AAExD,QAAO;;AAEX,SAAS,0CAA0C,SAAS,aAAa;AACrE,QAAO,eAAmBA,0CAAkC,8BAA8B,YAAY,IAAI,0CAA0C,QAAQ;;AAEhK,SAAS,0CAA0C,SAAS,aAAa;CACrE,IAAI,EAAU,WAAeC,iBAAAA,2CAA4C;CACzE,IAAI,aAAa,0CAA0C,SAAS,YAAY;AAChF,SAAA,GAAA,MAAA,eAA+B,IAAQC,0CAAiC,QAAQ,WAAW,EAAE,CACzF,QACA,WACH,CAAC;;;;AChBN,SAAS,0CAA0C,SAAS;AAExD,WAAcC,0CAAoB,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU,EAAE,EAAE,8BAA8B;CACvH,IAAI,EAAU,WAAeC,iBAAAA,2CAA4C;AACzE,SAAA,GAAA,MAAA,eAA+B,IAAQC,wBAAAA,cAAsB,QAAQ,QAAQ,EAAE,CAC3E,QACA,QACH,CAAC;;AAEN,SAAS,8BAA8B,GAAG,GAAG;AACzC,KAAI,MAAM,EAAG,QAAO;CACpB,IAAI,QAAQ,OAAO,KAAK,EAAE;CAC1B,IAAI,QAAQ,OAAO,KAAK,EAAE;AAC1B,KAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,MAAK,IAAI,OAAO,MACZ,KAAI,EAAE,SAAS,EAAE,KAAM,QAAO;AAElC,QAAO;;;;ACvBX,MAAM,4DAA4C,IAAI,OAAO,iBAAiB;AAC9E,MAAM,0CAA0C;CAC5C;CACA;CACA;CACA;CACA;CACA;CACH;AACD,IAAM,4CAAN,MAAgD;;;IAG1C,MAAM,OAAO;AACX,SAAO,0CAA0C,KAAK,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,MAAM;;;;;;IAMjG,qBAAqB,OAAO,UAAU,UAAU;AAC9C,SAAO,0CAA0C,KAAK,QAAQ,KAAK,SAAS,MAAM,CAAC,qBAAqB,OAAO,UAAU,SAAS;;;;;;IAMpI,mBAAmB,OAAO;AACxB,SAAO,0CAA0C,KAAK,QAAQ,KAAK,SAAS,MAAM,CAAC,QAAQ;;CAE/F,YAAY,QAAQ,UAAU,EAAE,EAAC;AAC7B,OAAK,SAAS;AACd,OAAK,UAAU;;;AAGvB,MAAM,0DAA0C,IAAI,KAAK;AACzD,SAAS,0CAA0C,QAAQ,SAAS,OAAO;CAEvE,IAAI,gBAAgB,4CAA4C,QAAQ,QAAQ;AAGhF,KAAI,CAAC,OAAO,SAAS,OAAO,IAAI,CAAC,cAAc,qBAAqB,MAAM;OACjE,IAAI,mBAAmB,wCAAwC,KAAI,oBAAoB,cAAc,QAAQ,iBAAiB;GAC/H,IAAI,SAAS,4CAA4C,UAAU,OAAO,SAAS,MAAM,GAAG,SAAS,YAAY,iBAAiB,QAAQ;AAC1I,OAAI,OAAO,qBAAqB,MAAM,CAAE,QAAO;;;AAGvD,QAAO;;AAEX,SAAS,4CAA4C,QAAQ,SAAS;CAClE,IAAI,WAAW,UAAU,UAAU,OAAO,QAAQ,QAAQ,CAAC,MAAM,GAAG,MAAI,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,MAAM,GAAG;CACvG,IAAI,SAAS,wCAAwC,IAAI,SAAS;AAClE,KAAI,CAAC,QAAQ;AACT,WAAS,IAAI,uCAAuC,QAAQ,QAAQ;AACpE,0CAAwC,IAAI,UAAU,OAAO;;AAEjE,QAAO;;AAIX,IAAM,yCAAN,MAA6C;CACzC,MAAM,OAAO;EAET,IAAI,sBAAsB,KAAK,SAAS,MAAM;AAC9C,MAAI,KAAK,QAAQ,MACjB,uBAAsB,iCAAiC,qBAAqB,KAAK,QAAQ,OAAO,GAAG;AACnG,MAAI,KAAK,QAAQ,QAAS,uBAAsB,oBAAoB,QAAQ,KAAK,QAAQ,SAAS,IAAI;AACtG,MAAI,KAAK,QAAQ,UAAW,uBAAsB,oBAAoB,QAAQ,KAAK,QAAQ,WAAW,IAAI;AAC1G,wBAAsB,oBAAoB,QAAQ,KAAK,QAAQ,SAAS,KAAK,QAAQ,MAAM;AAC3F,MAAI,KAAK,QAAQ,UAAU,WAAW;GAElC,IAAI,aAAa,oBAAoB,QAAQ,IAAI;AACjD,yBAAsB,oBAAoB,QAAQ,KAAK,GAAG;AAC1D,yBAAsB,oBAAoB,QAAQ,KAAK,GAAG;GAC1D,IAAI,QAAQ,oBAAoB,QAAQ,IAAI;AAC5C,OAAI,UAAU,GAAI,SAAQ,oBAAoB;AAC9C,yBAAsB,oBAAoB,QAAQ,KAAK,GAAG;AAC1D,OAAI,QAAQ,MAAM,EAAG,uBAAsB,KAAK;YACvC,QAAQ,MAAM,GAAI,uBAAsB,MAAM;YAC9C,QAAQ,MAAM,GAAI,uBAAsB;OAC5C,uBAAsB,GAAG,oBAAoB,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,oBAAoB,MAAM,QAAQ,EAAE;AAC7G,OAAI,aAAa,GAAI,uBAAsB,IAAI;;EAEnD,IAAI,WAAW,sBAAsB,CAAC,sBAAsB;AAC5D,MAAI,MAAM,SAAS,CAAE,QAAO;AAC5B,MAAI,KAAK,QAAQ,UAAU,WAAW;GAClC,IAAI,qCAAqC;GAEzC,IAAI,UAAU;IACV,GAAG,KAAK;IACR,OAAO;IACP,uBAAuB,KAAK,MAAM,sCAAsC,KAAK,QAAQ,2BAA2B,QAAQ,wCAAwC,KAAK,IAAI,sCAAsC,KAAK,GAAG,GAAG;IAC1N,uBAAuB,KAAK,MAAM,sCAAsC,KAAK,QAAQ,2BAA2B,QAAQ,wCAAwC,KAAK,IAAI,sCAAsC,KAAK,GAAG,GAAG;IAC7N;AACD,UAAO,IAAI,0CAA0C,KAAK,QAAQ,QAAQ,CAAC,MAAM,IAAQC,iBAAAA,0CAA2C,KAAK,QAAQ,QAAQ,CAAC,OAAO,SAAS,CAAC;;AAG/K,MAAI,KAAK,QAAQ,iBAAiB,gBAAgB,0CAA0C,KAAK,MAAM,CAAE,YAAW,KAAK;AACzH,SAAO;;CAEX,SAAS,OAAO;AAEZ,UAAQ,MAAM,QAAQ,KAAK,QAAQ,UAAU,GAAG;AAGhD,MAAI,KAAK,QAAQ,UAAW,SAAQ,MAAM,QAAQ,KAAK,KAAK,QAAQ,UAAU;AAG9E,MAAI,KAAK,QAAQ,oBAAoB,QAAQ;AACzC,OAAI,KAAK,QAAQ,SAAS;AACtB,YAAQ,MAAM,QAAQ,KAAK,KAAK,QAAQ,QAAQ;AAChD,YAAQ,MAAM,QAAQ,OAAO,aAAa,KAAK,EAAE,KAAK,QAAQ,QAAQ;;AAE1E,OAAI,KAAK,QAAQ,MAAO,SAAQ,iCAAiC,OAAO,KAAK,KAAK,QAAQ,MAAM;;AAIpG,MAAI,KAAK,QAAQ,UAAU,OAAY,MAAM,SAAS,IAAI,CAAE,SAAQ,iCAAiC,OAAO,KAAK,KAAK,QAAQ,MAAM;AAGpI,MAAI,KAAK,QAAQ,WAAW,WAAW,KAAK,QAAQ,OAAO;AACvD,WAAQ,iCAAiC,OAAO,KAAK,KAAK,QAAQ,MAAM;AACxE,WAAQ,iCAAiC,OAAO,WAAW,KAAK,QAAQ,MAAM;;AAElF,SAAO;;CAEX,qBAAqB,OAAO,WAAW,WAAW,WAAW,UAAU;AACnE,UAAQ,KAAK,SAAS,MAAM;AAE5B,MAAI,KAAK,QAAQ,aAAa,MAAM,WAAW,KAAK,QAAQ,UAAU,IAAI,WAAW,EAAG,SAAQ,MAAM,MAAM,KAAK,QAAQ,UAAU,OAAO;WACjI,KAAK,QAAQ,YAAY,MAAM,WAAW,KAAK,QAAQ,SAAS,IAAI,WAAW,EAAG,SAAQ,MAAM,MAAM,KAAK,QAAQ,SAAS,OAAO;AAE5I,MAAI,KAAK,QAAQ,SAAS,MAAM,WAAW,KAAK,QAAQ,MAAM,CAAE,QAAO;AAEvE,MAAI,KAAK,QAAQ,WAAW,MAAM,QAAQ,KAAK,QAAQ,QAAQ,GAAG,MAAM,KAAK,QAAQ,0BAA0B,EAAG,QAAO;AAEzH,MAAI,KAAK,QAAQ,MAAO,SAAQ,iCAAiC,OAAO,KAAK,QAAQ,OAAO,GAAG;AAC/F,UAAQ,MAAM,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAC/C,MAAI,KAAK,QAAQ,QAAS,SAAQ,MAAM,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAEzE,SAAO,MAAM,WAAW;;CAE5B,YAAY,QAAQ,UAAU,EAAE,EAAC;AAC7B,OAAK,SAAS;AAGd,MAAI,QAAQ,sBAAsB,KAAK,QAAQ,qBAAqB;OAC5D,QAAQ,yBAAyB,QAAQ,QAAQ,yBAAyB,MAAM;AAChF,YAAQ,wBAAwB;AAChC,YAAQ,wBAAwB;cACzB,QAAQ,yBAAyB,KAAM,SAAQ,wBAAwB,QAAQ;YACjF,QAAQ,yBAAyB,KAAM,SAAQ,wBAAwB,QAAQ;;AAG5F,OAAK,YAAY,IAAI,KAAK,aAAa,QAAQ,QAAQ;AACvD,OAAK,UAAU,KAAK,UAAU,iBAAiB;AAC/C,OAAK,UAAU,iCAAiC,QAAQ,KAAK,WAAW,KAAK,SAAS,QAAQ;EAC9F,IAAI,qCAAqC;AACzC,MAAI,KAAK,QAAQ,UAAU,gBAAgB,sCAAsC,KAAK,QAAQ,2BAA2B,QAAQ,wCAAwC,KAAK,IAAI,sCAAsC,KAAK,QAAQ,sCAAsC,KAAK,QAAQ,2BAA2B,QAAQ,wCAAwC,KAAK,IAAI,sCAAsC,KAAK,IAAK,SAAQ,KAAK,wHAAwH;;;AAGziB,MAAM,wCAAwC,IAAI,IAAI;CAClD;CACA;CACA;CACA;CACA;CACA;CACH,CAAC;AAIF,MAAM,sCAAsC;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACH;AACD,SAAS,iCAAiC,QAAQ,WAAW,aAAa,iBAAiB;CACvF,IAAI,gBAAgB,mBAAmB,oBAAoB;CAE3D,IAAI,kBAAkB,IAAI,KAAK,aAAa,QAAQ;EAChD,GAAG;EAEH,0BAA0B;EAC1B,0BAA0B;EAC1B,mBAAmB;EACnB,kBAAkB;EAClB,cAAc;EACjB,CAAC;CAEF,IAAI,WAAW,gBAAgB,cAAc,WAAW;CACxD,IAAI,cAAc,gBAAgB,cAAc,UAAU;CAC1D,IAAI,cAAc,oCAAoC,KAAK,MAAI,gBAAgB,cAAc,EAAE,CAAC;CAChG,IAAI;CACJ,IAAI,aAAa,wBAAwB,iBAAiB,SAAS,MAAM,MAAI,EAAE,SAAS,YAAY,MAAM,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,WAAW,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB;CAClP,IAAI,YAAY,oBAAoB,YAAY,MAAM,MAAI,EAAE,SAAS,WAAW,MAAM,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB;AAGxJ,KAAI,CAAC,cAAc,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,iBAAiB,iBAAiB,oBAAoB,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,iBAAiB,UAAW,YAAW;CAQhQ,IAAI,WAAW,qBALI,IAAI,KAAK,aAAa,QAAQ;EAC7C,GAAG;EACH,uBAAuB;EACvB,uBAAuB;EAC1B,CAAC,CAAC,cAAc,KAC+B,CAAC,MAAM,MAAI,EAAE,SAAS,UAAU,MAAM,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB;CAC1J,IAAI,SAAS,kBAAkB,SAAS,MAAM,MAAI,EAAE,SAAS,QAAQ,MAAM,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;CAGzI,IAAI,mBAAmB,SAAS,QAAQ,MAAI,CAAC,sCAAsC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,MAAI,kCAAkC,EAAE,MAAM,CAAC;CACpJ,IAAI,sBAAsB,YAAY,SAAS,MAAI,EAAE,QAAQ,MAAI,CAAC,sCAAsC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,MAAI,kCAAkC,EAAE,MAAM,CAAC,CAAC;CAC1K,IAAI,iBAAiB,CACjB,GAAG,IAAI,IAAI,CACP,GAAG,kBACH,GAAG,oBACN,CAAC,CACL,CAAC,MAAM,GAAG,MAAI,EAAE,SAAS,EAAE,OAAO;CACnC,IAAI,WAAW,eAAe,WAAW,oBAAI,IAAI,OAAO,sBAAsB,KAAK,GAAG,IAAI,OAAO,GAAG,eAAe,KAAK,IAAI,CAAC,sBAAsB,KAAK;CAExJ,IAAI,WAAW,CACX,GAAG,IAAI,KAAK,aAAa,YAAY,QAAQ,EACzC,aAAa,OAChB,CAAC,CAAC,OAAO,WAAW,CACxB,CAAC,SAAS;CACX,IAAI,UAAU,IAAI,IAAI,SAAS,KAAK,GAAG,MAAI,CACnC,GACA,EACH,CAAC,CAAC;CACP,IAAI,UAAU,IAAI,OAAO,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,IAAI;CACvD,IAAI,SAAS,MAAI,OAAO,QAAQ,IAAI,EAAE,CAAC;AACvC,QAAO;EACQ;EACD;EACD;EACF;EACG;EACD;EACF;EACV;;AAEL,SAAS,iCAAiC,KAAK,MAAM,SAAS;AAC1D,KAAI,IAAI,WAAY,QAAO,IAAI,WAAW,MAAM,QAAQ;AACxD,QAAO,IAAI,MAAM,KAAK,CAAC,KAAK,QAAQ;;AAExC,SAAS,kCAAkC,QAAQ;AAC/C,QAAO,OAAO,QAAQ,uBAAuB,OAAO;;;;AC9PxD,IAAI,8CAA8B,IAAI,KAAK;AAC3C,SAAS,0CAA0C,SAAS;CACxD,IAAI,EAAU,WAAeC,iBAAAA,2CAA4C;CACzE,IAAI,WAAW,UAAU,UAAU,OAAO,QAAQ,QAAQ,CAAC,MAAM,GAAG,MAAI,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,MAAM,GAAG;AACvG,KAAI,4BAA4B,IAAI,SAAS,CAAE,QAAO,4BAA4B,IAAI,SAAS;CAC/F,IAAI,YAAY,IAAI,KAAK,SAAS,QAAQ,QAAQ;AAClD,6BAA4B,IAAI,UAAU,UAAU;AACpD,QAAO;;;;ACLX,SAAS,yCAAyC,SAAS;CACvD,IAAI,WAAe,0CAA2C;EAC1D,OAAO;EACP,GAAG;EACN,CAAC;CAEF,IAAI,cAAA,GAAA,MAAA,cAAsC,QAAQ,cAAY;AAC1D,MAAI,UAAU,WAAW,EAAG,QAAO;AAGnC,WAAS,OAAO,UAAU,MAAM;AAChC,cAAY,UAAU,UAAU,MAAM;AACtC,SAAO,SAAS,QAAQ,OAAO,MAAM,GAAG,UAAU,OAAO,EAAE,UAAU,KAAK;IAC3E,CACC,SACH,CAAC;CACF,IAAI,YAAA,GAAA,MAAA,cAAoC,QAAQ,cAAY;AACxD,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,WAAS,OAAO,UAAU,MAAM;AAChC,cAAY,UAAU,UAAU,MAAM;AACtC,SAAO,SAAS,QAAQ,OAAO,MAAM,CAAC,UAAU,OAAO,EAAE,UAAU,KAAK;IACzE,CACC,SACH,CAAC;CACF,IAAI,YAAA,GAAA,MAAA,cAAoC,QAAQ,cAAY;AACxD,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,WAAS,OAAO,UAAU,MAAM;AAChC,cAAY,UAAU,UAAU,MAAM;EACtC,IAAI,OAAO;EACX,IAAI,WAAW,UAAU;AACzB,SAAM,OAAO,YAAY,OAAO,QAAQ,QAAO;GAC3C,IAAI,QAAQ,OAAO,MAAM,MAAM,OAAO,SAAS;AAC/C,OAAI,SAAS,QAAQ,WAAW,MAAM,KAAK,EAAG,QAAO;;AAEzD,SAAO;IACR,CACC,SACH,CAAC;AACF,SAAA,GAAA,MAAA,gBAAgC;EACZ;EACF;EACA;EACb,GAAG;EACJ;EACA;EACA;EACH,CAAC;;;;AClDN,SAAS,0CAA0C,OAAO,KAAK,wBAAwB;CACnF,IAAI,EAAa,cAAkBC,iBAAAA,2CAAmB;CACtD,IAAI,gBAAA,GAAA,MAAA,eAA2CC,yCAA2B,IAAI,EAAE,CAC5E,IACH,CAAC;CAEF,IAAI,aAAa,MAAI;AACjB,MAAI,CAAC,EAAE,cAAc,SAAS,EAAE,OAAO,CAAE;AACzC,MAAI,EAAE,WAAW,EAAE,QAAQ,eAAe,EAAE,QAAQ,cAAc,aAAa,OAAO;AAClF,KAAE,gBAAgB;AAClB,KAAE,iBAAiB;AACnB,SAAM,QAAQ,KAAK;;AAEvB,MAAI,uBAAwB;AAC5B,UAAO,EAAE,KAAT;GACI,KAAK;AACD,MAAE,gBAAgB;AAClB,MAAE,iBAAiB;AACnB,QAAI,cAAc;SACV,IAAI,SAAS;MACb,IAAI,SAAS,EAAE;MACf,IAAI,OAAO,sCAAsC,IAAI,SAAS,OAAO,uBAAuB,CAAC,MAAM,GAAG;AACtG,UAAI,KAAM,MAAK,OAAO;;UAEvB,cAAa,eAAe;AACnC;GACJ,KAAK;AACD,MAAE,gBAAgB;AAClB,MAAE,iBAAiB;AACnB,QAAI,cAAc;SACV,IAAI,SAAS;MACb,IAAI,SAAS,EAAE;MACf,IAAI,OAAO,sCAAsC,IAAI,SAAS,OAAO,uBAAuB,CAAC,MAAM,EAAE;AACrG,UAAI,KAAM,MAAK,OAAO;;UAEvB,cAAa,WAAW;AAC/B;;;CAIZ,IAAI,kBAAgB;EAChB,IAAI;AACJ,MAAI,CAAC,IAAI,QAAS;EAElB,IAAI,UAAU,gBAAgB,OAAO,WAAW,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc;EAC1G,IAAI,SAAaC,0CAA+B,IAAI,SAAS,EACzD,UAAU,MACb,CAAC;AACF,MAAI,QAAQ;AACR,UAAO,cAAc;AACrB,YAAS,OAAO,cAAc;;AAGlC,MAAI,CAAC,QAAQ;GACT,IAAI;AACJ,MAAG;AACC,WAAO,OAAO,WAAW;AACzB,QAAI,KAAM,UAAS;YACf;;AAGZ,SAAM,WAAW,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,aAAa,mBAAmB,EAAC;GAC1F,IAAI,OAAO,OAAO,cAAc;AAChC,OAAI,QAAQ,KAAK,aAAa,mBAAmB,CAAE,UAAS;OACvD;;AAET,MAAI,OAAQ,QAAO,OAAO;;CAE9B,IAAI,EAAc,eAAmBC,0CAAiB;EAClD,qBAAqB;EACrB,2BAA2B;EAC3B,aAAc,GAAG;AACb,OAAI,EAAE,gBAAgB,QAAS,YAAW;;EAE9C,QAAS,GAAG;AACR,OAAI,EAAE,gBAAgB,WAAW,EAAE,gBAAgB,MAAO,YAAW;;EAE5E,CAAC;AACF,QAAWC,iBAAAA,0CAAmB,YAAY,EAC3B,WACd,CAAC;;AAEN,SAAS,sCAAsC,OAAO,OAAO,WAAW;CACpE,IAAI,SAAaF,0CAA+B,OAAO,EACnD,UAAU,MACb,CAAC;CACF,IAAI,OAAO,OAAO,UAAU;CAC5B,IAAI,UAAU;CACd,IAAI,kBAAkB;AACtB,QAAM,MAAK;EAEP,IAAI,WADI,KAAK,uBAAuB,CAAC,OAClB;EACnB,IAAI,mBAAmB,KAAK,IAAI,SAAS;AACzC,MAAI,KAAK,KAAK,SAAS,KAAK,aAAa,mBAAmB,iBAAiB;AACzE,aAAU;AACV,qBAAkB;;AAEtB,SAAO,OAAO,UAAU;;AAE5B,QAAO;;;;AC/FX,SAAS,0CAA0C,OAAO;CACtD,IAAI,EAAe,aAA2B,cAAyB,WAA4B,oBAAoB;CACvH,IAAI,EAAc,YAAwB,eAAmBG,iBAAAA,0CAA2C,MAAM;CAC9G,IAAI,gBAAoBC,iBAAAA,0CAAkB;EACtC,QAAQ,YAAY;EACpB,QAAQ,aAAa;EACrB;EACA;EACH,CAAC;CACF,IAAI,iBAAqBA,iBAAAA,0CAAkB;EACvC,QAAQ,YAAY;EACpB,QAAQ,aAAa;EACrB;EACA;EACH,CAAC;AACF,cAAiBC,iBAAAA,0CAAmB,YAAY,EAC5C,oBAAoB;EAChB;EAEA;EACA,MAAM;EACT,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,IAAI,KAAA,GAClC,CAAC;AACF,QAAO;EACS;EACA;EACZ,kBAAkB,EACd,IAAI,eACP;EACD,mBAAmB,EACf,IAAI,gBACP;EACJ;;;;AC9BL,SAAS,0CAA0C,OAAO,OAAO,KAAK;CAClE,IAAI,EAAsB,oBAA2B,UAAU;AAE3DC,kBAAAA,gDAA4B;AAC5B,MAAI,uBAAuB,aAAa,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,QAAQ,UAAU;GACrH,IAAI,eAAe,MAAM,mBAAmB,YAAY,MAAM,mBAAmB,iBAAiB,KAAK,IAAI,IAAI,mBAAmB;AAClI,OAAI,QAAQ,kBAAkB,aAAa;AAG3C,OAAI,CAAC,IAAI,QAAQ,aAAa,QAAQ,CAAE,KAAI,QAAQ,QAAQ;AAC5D,OAAI,CAAC,MAAM,mBAAmB,UAAW,OAAM,iBAAiB,wCAAwC,IAAI,QAAQ,CAAC;;GAE3H;CACF,IAAI,kBAAA,GAAA,MAAA,QAAoC,MAAM;CAC9C,IAAI,UAAcC,iBAAAA,gDAA2B;AACzC,MAAI,CAAC,eAAe,QAAS,OAAM,iBAAiB;GACtD;CACF,IAAI,YAAgBA,iBAAAA,2CAAwB,MAAI;EAC5C,IAAI;AAGJ,MAAI,CAAC,MAAM,kBAAkB,UAAW,OAAM,kBAAkB;EAEhE,IAAI,OAAO,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,KAAK,eAAe,IAAI,aAAa,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa;AAC9I,MAAI,CAAC,EAAE,oBAAoB,OAAO,QAAQ,2CAA2C,KAAK,KAAK,IAAI,SAAS;GACxG,IAAI;AACJ,OAAI,MAAO,QAAO;OACb,EAAC,gBAAgB,IAAI,aAAa,QAAQ,kBAAkB,KAAK,KAAa,cAAc,OAAO;AAEpGC,oBAAAA,0CAA+B,WAAW;;AAGlD,IAAE,gBAAgB;GACpB;CACF,IAAI,WAAeD,iBAAAA,gDAA2B;AAC1C,QAAM,kBAAkB;GAC1B;AACF,EAAA,GAAA,MAAA,iBAA0B;EACtB,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI;AAC1D,MAAI,CAAC,MAAO;EACZ,IAAI,OAAO,MAAM;EACjB,IAAI,QAAQ,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK;AAC7D,MAAI,KAIJ,MAAK,cAAY;AAEb,kBAAe,UAAU,CAAC,OAAO,SAAS,OAAO,MAAM,SAAS,aAAa,OAAO,MAAM,kBAAkB;AAC5G,aAAU,QAAQ,UAAU,KAAK,KAAa,MAAM,KAAK,KAAK;AAC9D,kBAAe,UAAU;;AAE7B,QAAM,iBAAiB,WAAW,UAAU;AAC5C,QAAM,iBAAiB,UAAU,SAAS;AAC1C,WAAS,QAAQ,SAAS,KAAK,KAAa,KAAK,iBAAiB,SAAS,QAAQ;AACnF,eAAW;AACP,SAAM,oBAAoB,WAAW,UAAU;AAC/C,SAAM,oBAAoB,UAAU,SAAS;AAC7C,YAAS,QAAQ,SAAS,KAAK,KAAa,KAAK,oBAAoB,SAAS,QAAQ;AACtF,OAAI,KACJ,MAAK,QAAQ;;IAElB;EACC;EACA;EACA;EACA;EACA;EACH,CAAC;;AAEN,SAAS,kCAAkC,OAAO;CAG9C,IAAI,WAAW,MAAM;AACrB,QAAO;EACH,UAAU,SAAS;EACnB,aAAa,SAAS;EACtB,iBAAiB,SAAS;EAC1B,eAAe,SAAS;EACxB,gBAAgB,SAAS;EACzB,cAAc,SAAS;EACvB,SAAS,SAAS;EAClB,UAAU,SAAS;EACnB,cAAc,SAAS;EACvB,cAAc,SAAS;EACvB,OAAO,SAAS;EACnB;;AAEL,SAAS,wCAAwC,OAAO;AACpD,QAAO;EACH,WAAW,CAAC,MAAM,SAAS;EAC3B,mBAAmB,kCAAkC,MAAM;EAC3D,kBAAkB,MAAM,oBAAoB,CACxC,MAAM,kBACT,GAAG,EAAE;EACT;;AAEL,SAAS,2CAA2C,MAAM;AACtD,MAAI,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAI;EACzC,IAAI,UAAU,KAAK,SAAS;AAC5B,MAAI,CAAC,QAAQ,SAAS,MAAO,QAAO;;AAExC,QAAO;;;;AC5GX,SAASE,yBAAuB,GAAG;AACjC,QAAO,KAAK,EAAE,aAAa,EAAE,UAAU;;AAqBzC,MAAM,4DAA4C,IAAI,SAAS;AAC/D,MAAM,4CAA4C,YAAY,KAAK,KAAK;AACxE,MAAM,4CAA4C,oBAAoB,KAAK,KAAK;AAChF,SAAS,0CAA0C,OAAO,OAAO,KAAK;CAClE,IAAI;CACJ,IAAI,EAAa,WAA6B,kBAAqC,sBAAsB,MAAM;CAC/G,IAAI,EAAc,YAAwB,YAA8B,kBAAqC,sBAA0BC,0CAAiB;EACpJ,GAAG;EACH,kBAAkB;EACP;EACX,cAAc,MAAM,gBAAgB;EACvC,CAAC;CACF,IAAI,gBAAA,GAAA,MAAA,QAAkC,KAAK;CAC3C,IAAI,EAAoB,qBAAyBC,iBAAAA,0CAAuB;EACpE,GAAG;EACH,cAAe,GAAG;GACd,IAAI;AACJ,gBAAa,UAAU,MAAM;AAC7B,IAAC,iBAAiB,MAAM,aAAa,QAAQ,mBAAmB,KAAK,KAAa,eAAe,KAAK,OAAO,EAAE;;EAEnH,eAAe,MAAI;GACf,IAAI;AACJ,SAAM,oBAAoB;AAC1B,OAAI,MAAM,UAAU,aAAa,QAAS,OAAM,kBAAkB;AAClE,IAAC,gBAAgB,MAAM,YAAY,QAAQ,kBAAkB,KAAK,KAAa,cAAc,KAAK,OAAO,EAAE;;EAE/G,qBAAqB,MAAM;EAC9B,CAAC;CACF,IAAI,kBAAsBC,0CAAyCH,yBAAuBI,0BAA2B,EAAI,yBAAyB;CAClJ,IAAI,UAAU,MAAM,mBAAmB,SAAS,4BAA4B;CAC5E,IAAI,QAAQ,MAAM,mBAAmB,SAAS,SAAS;CAMvD,IAAI,YAAgBC,0CALF,MAAM,QAAQ,gBAAgB,OAAO,SAAS,GAC3D,QAAQ,MAAM,YAAY,EACvB,OAAO,QACV,CAAC,EACL,CAAC,GAAG,GACkD;CAGvD,IAAI,cAAc,MAAM,+CAA+C,iBAAiB,WAAW,sBAAsB,CACrH,UAAU,qBACV,WAAW,oBACd,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,IAAI,KAAA;CAC/B,IAAI,oBAAoB,MAAM;CAC9B,IAAI,gBAAA,GAAA,MAAA,eAAuC,qBAAyBC,yCAA2B,IAAI,EAAE,CACjG,mBACA,IACH,CAAC;CACF,IAAI,aAAiB,0CAA2C,OAAO,KAAK,MAAM,+CAA+C,eAAe;AAEhJ,2CAA0C,IAAI,OAAO;EACjD,WAAW,MAAM;EACjB,gBAAgB,CACZ,WAAW,IACX,MAAM,mBACT,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,IAAI,KAAA;EAC/B,iBAAiB;EACH;EACjB,CAAC;CACF,IAAI,gBAAA,GAAA,MAAA,QAAkC,MAAM,UAAU;CAKtD,IAAI;AACJ,KAAI,MAAM,+CAA+C,eAAgB,iBAAgB,EACrF,MAAM,gBACT;KACI,iBAAoBC,iBAAAA,0CAAmB,YAAY;EACpD,MAAM;EACN,iBAAiB,MAAM,cAAc,KAAA;EACrC,oBAAoB;EACvB,CAAC;AACF,EAAA,GAAA,MAAA,iBAA0B;AACtB,MAAI,aAAa,QAAS,cAAa,YAAY;AACnD,eAAa,UAAU;IACxB,CACC,aACH,CAAC;AACEC,kBAAAA,0CAAqB,MAAM,UAAU,MAAM,cAAc,MAAM,SAAS;AACxEC,2CAA0B;EAC1B,GAAG;EACH,QAAS;AACL,gBAAa,YAAY;;EAEhC,EAAE,OAAO,MAAM,SAAS;CACzB,IAAI,aAAa;EACb,MAAM;EACN,MAAM,MAAM;EACZ,MAAM,MAAM;EACZ,SAAS,eAAe,MAAM,WAAW,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,UAAU,KAAK;EAChH,UAAU,MAAM;EACnB;AACD,KAAI,MAAM,uBAAuB,UAAU;AAGvC,aAAW,OAAO;AAClB,aAAW,SAAS;AACpB,aAAW,WAAW,MAAM;AAE5B,aAAW,iBAAe;;CAE9B,IAAI,WAAeC,0CAAuB,MAAM;AAChD,QAAO;EACH,YAAY;GACR,GAAG;GACH,eAAa;AACT,iBAAa,YAAY;;GAEhC;EACD,YAAgBH,iBAAAA,0CAAmB,UAAU,eAAe,YAAY,kBAAkB;GACtF,UAAW,GAAG;AACV,QAAI,MAAM,UAAW,OAAM,UAAU,EAAE;;GAE3C,QAAS,GAAG;AACR,QAAI,MAAM,QAAS,OAAM,QAAQ,EAAE;;GAEvC,OAAO,EACH,aAAa,WAChB;GACJ,CAAC;EACU;EACM;EACC;EACR;EACO;EACC;EACtB;;;;ACnJL,MAAM,4CAA4C;CAC9C,UAAU;CACV,aAAa;CACb,iBAAiB;CACjB,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,SAAS;CACT,UAAU;CACV,cAAc;CACd,cAAc;CACd,OAAO;CACV;AACD,MAAM,8CAA8C;CAChD,GAAG;CACH,aAAa;CACb,OAAO;CACV;AACD,MAAM,4CAA4C;CAC9C,WAAW;CACX,mBAAmB;CACnB,kBAAkB,EAAE;CACvB;AACD,MAAM,6CAAA,GAAA,MAAA,eAAsE,EAAE,CAAC;AAC/E,MAAM,2CAA2C,0BAA0B,KAAK,KAAK;AACrF,SAAS,0CAA0C,OAAO;AAEtD,KAAI,MAAM,2CAA2C;EACjD,IAAI,EAAsB,oBAAuC,mBAAqC,kBAAmC,iBAAmC,qBAAqB,MAAM;AACvM,SAAO;GACiB;GACD;GACD;GACD;GACC;GACrB;;AAGL,QAAO,iDAAiD,MAAM;;AAElE,SAAS,iDAAiD,OAAO;CAC7D,IAAI,EAAa,WAA4B,iBAAuB,MAAa,OAA0B,mBAA6B,UAA8B,qBAAqB,WAAW;AAEtM,KAAI,gBAAiB,eAAc,YAAY,oBAAoB;CAEnE,IAAI,kBAAkB,cAAc,KAAA,IAAY;EACjC;EACX,kBAAkB,EAAE;EACpB,mBAAmB;EACtB,GAAG;CAEJ,IAAI,eAAA,GAAA,MAAA,eAAsC;AACtC,MAAI,CAAC,YAAY,SAAS,KAAM,QAAO;AAEvC,SAAO,0CADc,kCAAkC,UAAU,MACF,CAAC;IACjE,CACC,UACA,MACH,CAAC;AACF,KAAI,sBAAsB,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,kBAAkB,MAAO,qBAAoB,KAAA;CAEzI,IAAI,gBAAA,GAAA,MAAA,YAAsC,0CAA0C;CACpF,IAAI,uBAAA,GAAA,MAAA,eAA8C;AAC9C,MAAI,KAAM,QAAO,MAAM,QAAQ,KAAK,GAAG,KAAK,SAAS,SAAO,8BAA8B,aAAa,MAAM,CAAC,GAAG,8BAA8B,aAAa,MAAM;AAClK,SAAO,EAAE;IACV,CACC,cACA,KACH,CAAC;CAEF,IAAI,CAAC,kBAAkB,wBAAA,GAAA,MAAA,UAA4C,aAAa;CAChF,IAAI,CAAC,sBAAsB,0BAAA,GAAA,MAAA,UAA8C,MAAM;AAC/E,KAAI,iBAAiB,kBAAkB;AACnC,sBAAoB,aAAa;AACjC,wBAAsB,MAAM;;CAEhC,IAAI,eAAA,GAAA,MAAA,eAAsC,0CAA0C,uBAAuB,EAAE,GAAG,oBAAoB,EAAE,CAClI,sBACA,oBACH,CAAC;CAEF,IAAI,kBAAA,GAAA,MAAA,QAAoC,0CAA0C;CAClF,IAAI,CAAC,iBAAiB,uBAAA,GAAA,MAAA,UAA2C,0CAA0C;CAC3G,IAAI,aAAA,GAAA,MAAA,QAA+B,0CAA0C;CAC7E,IAAI,yBAAuB;AACvB,MAAI,CAAC,aAAc;AACnB,kBAAgB,MAAM;EACtB,IAAI,QAAQ,eAAe,qBAAqB,eAAe;AAC/D,MAAI,CAAC,wCAAwC,OAAO,UAAU,QAAQ,EAAE;AACpE,aAAU,UAAU;AACpB,sBAAmB,MAAM;;;CAGjC,IAAI,CAAC,cAAc,oBAAA,GAAA,MAAA,UAAwC,MAAM;AACjE,EAAA,GAAA,MAAA,WAAsB,iBAAiB;AAMvC,QAAO;EACH,oBAHqB,mBAAmB,eAAe,eAAe,qBAAqB;EAI3F,mBAHoB,uBAAuB,WAAW,mBAAmB,eAAe,kBAAkB,mBAAmB,eAAe,eAAe,qBAAqB;EAIhL,iBAAkB,OAAO;AAErB,OAAI,uBAAuB,UAAU,CAAC,wCAAwC,iBAAiB,MAAM,CAAE,oBAAmB,MAAM;OAC3H,gBAAe,UAAU;;EAElC,kBAAmB;GAGf,IAAI,QAAQ;AACZ,OAAI,CAAC,wCAAwC,OAAO,UAAU,QAAQ,EAAE;AACpE,cAAU,UAAU;AACpB,uBAAmB,MAAM;;AAI7B,OAAI,uBAAuB,SAAU,iBAAgB,MAAM;AAC3D,yBAAsB,KAAK;;EAE/B,mBAAoB;AAGhB,OAAI,uBAAuB,SAAU,iBAAgB,KAAK;AAC1D,yBAAsB,KAAK;;EAElC;;AAEL,SAAS,8BAA8B,GAAG;AACtC,KAAI,CAAC,EAAG,QAAO,EAAE;AACjB,QAAO,MAAM,QAAQ,EAAE,GAAG,IAAI,CAC1B,EACH;;AAEL,SAAS,kCAAkC,UAAU,OAAO;AACxD,KAAI,OAAO,aAAa,YAAY;EAChC,IAAI,IAAI,SAAS,MAAM;AACvB,MAAI,KAAK,OAAO,MAAM,UAAW,QAAO,8BAA8B,EAAE;;AAE5E,QAAO,EAAE;;AAEb,SAAS,0CAA0C,QAAQ;AACvD,QAAO,OAAO,SAAS;EACnB,WAAW;EACX,kBAAkB;EAClB,mBAAmB;EACtB,GAAG;;AAER,SAAS,wCAAwC,GAAG,GAAG;AACnD,KAAI,MAAM,EAAG,QAAO;AACpB,QAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,WAAW,EAAE,iBAAiB,UAAU,EAAE,iBAAiB,OAAO,GAAG,MAAI,MAAM,EAAE,iBAAiB,GAAG,IAAI,OAAO,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAK,EAAE,kBAAkB,OAAO,EAAE;;;;AC/JrQ,SAASI,yBAAuB,GAAG;AACjC,QAAO,KAAK,EAAE,aAAa,EAAE,UAAU;;AAgBzC,SAAS,4CAA4C;CACjD,IAAI,EAAU,WAAeC,iBAAAA,2CAAmB;CAChD,IAAI,aAAiBC,0CAA0CF,yBAAuBG,0BAA2B,EAAI,yBAAyB;AAC9I,SAAA,GAAA,MAAA,eAA+B;AAG3B,MAAI;AACA,UAAO,IAAI,KAAK,aAAa,QAAQ,EACjC,MAAM,iBACT,CAAC;UACG;AACL,UAAO,IAAI,2CAA2C,QAAQ,WAAW;;IAE9E,CACC,QACA,WACH,CAAC;;AAEN,IAAM,6CAAN,MAAiD;CAC7C,GAAG,OAAO;AACN,SAAO,KAAK,WAAW,mBAAmB,OAAO,KAAK,OAAO;;CAEjE,YAAY,QAAQ,YAAW;AAC3B,OAAK,SAAS;AACd,OAAK,aAAa;;;;;AC9C1B,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,gCACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,4DACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,iBACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,OACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,QACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,uCACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,SACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,YACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,eACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,YACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,QACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,yBACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,UACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,WACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,SACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,YACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,qCACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,uBACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,eACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,OACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,QACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,SACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,SACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,SACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,OACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,kFACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,cACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,UACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,UACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,QACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,aACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,uCACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,YACZ;;;ACHD,IAAI,4BAA4B,EAAE;AAClC,4BAA4B,EACxB,SAAS,oBACZ;;;ACgCD,IAAI,4BAA4B,EAAE;AAmClC,4BAA4B;CACxB,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACZ;;;AC/FoE,MAAM,iDAAiD;AAC5H,IAAI,sCAAsC;AAC1C,SAAS,0CAA0C,SAAS,gBAAgB,aAAa,UAAU,gDAAgD;AAC/I,KAAI,CAAC,qCAAqC;AACtC,wCAAsC,IAAI,qCAAqC;AAQ/E,MAAI,EAAE,OAAO,6BAA6B,YAAY,2BAA2B,OAAO,SAAS,aAAc,kBAAe;AAC1H,OAAI,wCAAwC,QAAQ,wCAAwC,KAAK,IAAI,KAAK,IAAI,oCAAoC,YAAY,CAAE,yCAAwC,QAAQ,wCAAwC,KAAK,KAAa,oCAAoC,SAAS,SAAS,eAAe,QAAQ;KACxV,IAAI;MACF,qCAAoC,SAAS,SAAS,eAAe,QAAQ;OAC/E,qCAAoC,SAAS,SAAS,eAAe,QAAQ;;AAExF,SAAS,0CAA0C,eAAe;AAC9D,KAAI,oCAAqC,qCAAoC,MAAM,cAAc;;AAcrG,IAAM,sCAAN,MAA0C;CACtC,aAAa;EACT,IAAI;AACJ,UAAQ,aAAa,KAAK,UAAU,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW;;CAE5F,UAAU,UAAU;EAChB,IAAI,OAAO,SAAS,cAAc,MAAM;AACxC,OAAK,aAAa,QAAQ,MAAM;AAChC,OAAK,aAAa,aAAa,SAAS;AACxC,OAAK,aAAa,iBAAiB,YAAY;AAC/C,SAAO;;CAEX,UAAU;AACN,MAAI,CAAC,KAAK,KAAM;AAChB,WAAS,KAAK,YAAY,KAAK,KAAK;AACpC,OAAK,OAAO;;CAEhB,SAAS,SAAS,gBAAgB,aAAa,UAAU,gDAAgD;EACrG,IAAI,oBAAoB;AACxB,MAAI,CAAC,KAAK,KAAM;EAChB,IAAI,OAAO,SAAS,cAAc,MAAM;AACxC,MAAI,OAAO,YAAY,UAAU;AAE7B,QAAK,aAAa,QAAQ,MAAM;AAChC,QAAK,aAAa,mBAAmB,QAAQ,mBAAmB;QAC7D,MAAK,cAAc;AAC1B,MAAI,kBAAkB,YAAa,EAAC,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,KAAK,KAAa,mBAAmB,YAAY,KAAK;MAChK,EAAC,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,KAAK,KAAa,gBAAgB,YAAY,KAAK;AAC3H,MAAI,YAAY,GAAI,kBAAe;AAC/B,QAAK,QAAQ;KACd,QAAQ;;CAEf,MAAM,eAAe;AACjB,MAAI,CAAC,KAAK,KAAM;AAChB,OAAK,CAAC,iBAAiB,kBAAkB,gBAAgB,KAAK,aAAc,MAAK,aAAa,YAAY;AAC1G,OAAK,CAAC,iBAAiB,kBAAkB,aAAa,KAAK,UAAW,MAAK,UAAU,YAAY;;CAErG,cAAa;AACT,OAAK,OAAO;AACZ,OAAK,eAAe;AACpB,OAAK,YAAY;AACjB,MAAI,OAAO,aAAa,aAAa;AACjC,QAAK,OAAO,SAAS,cAAc,MAAM;AACzC,QAAK,KAAK,QAAQ,gBAAgB;AAElC,UAAO,OAAO,KAAK,KAAK,OAAO;IAC3B,QAAQ;IACR,MAAM;IACN,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,UAAU;IACV,OAAO;IACP,YAAY;IACf,CAAC;AACF,QAAK,eAAe,KAAK,UAAU,YAAY;AAC/C,QAAK,KAAK,YAAY,KAAK,aAAa;AACxC,QAAK,YAAY,KAAK,UAAU,SAAS;AACzC,QAAK,KAAK,YAAY,KAAK,UAAU;AACrC,YAAS,KAAK,QAAQ,KAAK,KAAK;;;;;;ACjG5C,SAASC,yBAAuB,GAAG;AACjC,QAAO,KAAK,EAAE,aAAa,EAAE,UAAU;;AAiBzC,SAAS,0CAA0C,OAAO;CACtD,MAAM,UAAA,GAAA,MAAA,QAA4B,KAAA,EAAU;CAC5C,IAAI,EAAS,OAAkB,WAAqB,UAAoB,UAAsB,YAAwB,YAAwB,YAAyB,aAA8B,iBAA8B,aAA8B,iBAAmC,kBAAoC,qBAAqB;CAC7V,MAAM,kBAAsBC,0CAAyCD,yBAAuBE,0BAA2B,EAAI,yBAAyB;CACpJ,MAAM,mBAAiB,aAAa,OAAO,QAAQ;AACnD,EAAA,GAAA,MAAA,iBAA0B;AACtB,eAAW,YAAY;IACxB,EAAE,CAAC;CACN,IAAI,aAAa,MAAI;AACjB,MAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,cAAc,EAAE,YAAY,YAAa;AACjG,UAAO,EAAE,KAAT;GACI,KAAK,SACD,KAAI,iBAAiB;AACjB,MAAE,gBAAgB;AAClB,wBAAoB,QAAQ,oBAAoB,KAAK,KAAa,iBAAiB;AACnF;;GAGR,KAAK;GACL,KAAK;AACD,QAAI,aAAa;AACb,OAAE,gBAAgB;AAClB,qBAAgB,QAAQ,gBAAgB,KAAK,KAAa,aAAa;;AAE3E;GACJ,KAAK,WACD,KAAI,iBAAiB;AACjB,MAAE,gBAAgB;AAClB,wBAAoB,QAAQ,oBAAoB,KAAK,KAAa,iBAAiB;AACnF;;GAGR,KAAK;GACL,KAAK;AACD,QAAI,aAAa;AACb,OAAE,gBAAgB;AAClB,qBAAgB,QAAQ,gBAAgB,KAAK,KAAa,aAAa;;AAE3E;GACJ,KAAK;AACD,QAAI,kBAAkB;AAClB,OAAE,gBAAgB;AAClB,0BAAqB,QAAQ,qBAAqB,KAAK,KAAa,kBAAkB;;AAE1F;GACJ,KAAK;AACD,QAAI,kBAAkB;AAClB,OAAE,gBAAgB;AAClB,0BAAqB,QAAQ,qBAAqB,KAAK,KAAa,kBAAkB;;AAE1F;;;CAGZ,IAAI,aAAA,GAAA,MAAA,QAA+B,MAAM;CACzC,IAAI,gBAAc;AACd,YAAU,UAAU;;CAExB,IAAI,eAAa;AACb,YAAU,UAAU;;CAMxB,IAAI,gBAAgB,cAAc,KAAK,gBAAgB,OAAO,QAAQ,IAAI,aAAa,GAAG,SAAS,QAAQ,KAAK,IAAS;AACzH,EAAA,GAAA,MAAA,iBAA0B;AACtB,MAAI,UAAU,SAAS;AACfC,6CAAuB,YAAY;AACnCC,6CAAiB,eAAe,YAAY;;IAErD,CACC,cACH,CAAC;CACF,MAAM,wBAA4BC,iBAAAA,2CAAwB,qBAAmB;AACzE,cAAY;AACZ,kBAAgB,QAAQ,gBAAgB,KAAK,KAAa,aAAa;AAEvE,SAAO,UAAU,OAAO,iBAAe;AACnC,OAAI,aAAa,KAAA,KAAa,MAAM,SAAS,IAAI,UAAU,KAAA,KAAa,MAAM,MAAM,IAAI,QAAQ,SAAU,uBAAsB,GAAG;KACpI,iBAAiB;GACtB;CACF,MAAM,wBAA4BA,iBAAAA,2CAAwB,qBAAmB;AACzE,cAAY;AACZ,kBAAgB,QAAQ,gBAAgB,KAAK,KAAa,aAAa;AAEvE,SAAO,UAAU,OAAO,iBAAe;AACnC,OAAI,aAAa,KAAA,KAAa,MAAM,SAAS,IAAI,UAAU,KAAA,KAAa,MAAM,MAAM,IAAI,QAAQ,SAAU,uBAAsB,GAAG;KACpI,iBAAiB;GACtB;CACF,IAAI,qBAAqB,MAAI;AACzB,IAAE,gBAAgB;;CAEtB,IAAI,EAAqB,mBAA6C,6BAAiCC,iBAAAA,2CAA4B;AACnI,QAAO;EACH,iBAAiB;GACb,MAAM;GACN,iBAAiB,UAAU,KAAA,KAAa,CAAC,MAAM,MAAM,GAAG,QAAQ,KAAA;GAChE,kBAAkB;GAClB,iBAAiB;GACjB,iBAAiB;GACjB,iBAAiB,cAAc,KAAA;GAC/B,iBAAiB,cAAc,KAAA;GAC/B,iBAAiB,cAAc,KAAA;GACpB;GACF;GACD;GACX;EACD,sBAAsB;GAClB,oBAAkB;AACd,0BAAsB,IAAI;AAC1B,sBAAkB,QAAQ,eAAe,kBAAkB;;GAE/D,kBAAgB;AACZ,gBAAY;AACZ,8BAA0B;;GAErB;GACD;GACX;EACD,sBAAsB;GAClB,oBAAkB;AACd,0BAAsB,IAAI;AAC1B,sBAAkB,QAAQ,eAAe,kBAAkB;;GAE/D,kBAAgB;AACZ,gBAAY;AACZ,8BAA0B;;GAErB;GACD;GACX;EACJ;;;;ACjIL,SAAS,yCAAyC,SAAS,OAAO,KAAK;CACnE,IAAI,eAAA,GAAA,MAAA,QAAiC,GAAG;CACxC,IAAI,EAAU,QAAmB,cAAkBC,iBAAAA,2CAAmB;CACtE,IAAI,eAAmB,2CAA4C;CACnE,IAAI,EAAa,WAA2B,gBAAiC,iBAA+B,iBAAqB,0CAA2C,IAAI,MAAM;CACtL,IAAI,YAAY,QAAQ,gBAAgB,KAAK,QAAQ;CACrD,IAAI,WAAA,GAAA,MAAA,eAAkC,MAAM,cAAc,iBAAiB,EAAE,CACzE,MAAM,cACT,CAAC;CACF,IAAI,qBAAyBC,0CAAyB;EAClD,OAAO;EACP,UAAU,QAAQ;EACrB,CAAC;CACF,IAAI,oBAAwBA,0CAAyB;EACjD,MAAM;EACN,QAAQ,QAAQ;EAChB,UAAU,QAAQ;EACrB,CAAC;AACF,KAAI,QAAQ,SAAS,WAAW,CAAC,QAAQ,eAAe;EACpD,IAAI,iBAAiB,mBAAmB,OAAO,MAAM,UAAU;AAC/D,cAAY,mBAAmB,YAAY,GAAG,UAAU,YAAY,mBAAmB;YAChF,QAAQ,SAAS,UAAU,CAAC,QAAQ,cAAe,aAAY,kBAAkB,OAAO,MAAM,UAAU;CACnH,IAAI,EAAmB,oBAAwBC,0CAAsB;EAIjE,OAAO,QAAQ;EACJ;EACX,UAAU,QAAQ;EAClB,UAAU,QAAQ;EAClB,YAAY,MAAM;EAClB,YAAY,MAAM,cAAc,CAAC,QAAQ;EACzC,YAAY,MAAM;EAClB,mBAAiB;AACb,eAAY,UAAU;AACtB,SAAM,UAAU,QAAQ,KAAK;;EAEjC,mBAAiB;AACb,eAAY,UAAU;AACtB,SAAM,UAAU,QAAQ,KAAK;;EAEjC,uBAAqB;AACjB,eAAY,UAAU;AACtB,SAAM,cAAc,QAAQ,KAAK;;EAErC,uBAAqB;AACjB,eAAY,UAAU;AACtB,SAAM,cAAc,QAAQ,KAAK;;EAErC,wBAAsB;AAClB,eAAY,UAAU;AACtB,OAAI,QAAQ,aAAa,KAAA,EAAW,OAAM,WAAW,QAAQ,MAAM,QAAQ,SAAS;;EAExF,wBAAsB;AAClB,eAAY,UAAU;AACtB,OAAI,QAAQ,aAAa,KAAA,EAAW,OAAM,WAAW,QAAQ,MAAM,QAAQ,SAAS;;EAE3F,CAAC;CACF,IAAI,UAAA,GAAA,MAAA,eAAiC,IAAQC,0CAAqB,QAAQ,EAClE,uBAAuB,GAC1B,CAAC,EAAE,CACJ,OACH,CAAC;CACF,IAAI,kBAAgB;AAChB,MAAI,QAAQ,SAAS,QAAQ,YAAa,cAAa,eAAe;AACtE,MAAI,OAAO,qBAAqB,QAAQ,KAAK,IAAI,CAAC,MAAM,cAAc,CAAC,QAAQ,eAAe;GAC1F,IAAI,WAAW,QAAQ,KAAK,MAAM,GAAG,GAAG;GACxC,IAAI,SAAS,OAAO,MAAM,SAAS;AACnC,cAAW,WAAW,IAAI,KAAK;AAC/B,OAAI,SAAS,WAAW,KAAK,WAAW,EAAG,OAAM,aAAa,QAAQ,KAAK;OACtE,OAAM,WAAW,QAAQ,MAAM,OAAO;AAC3C,eAAY,UAAU;aACf,QAAQ,SAAS,YAAa,OAAM,aAAa,QAAQ,KAAK;;CAE7E,IAAI,aAAa,MAAI;AAGjB,MAAI,EAAE,QAAQ,QAAYC,iBAAAA,2CAAe,GAAG,EAAE,UAAU,EAAE,SAAU,GAAE,gBAAgB;AACtF,MAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAQ;AACtD,UAAO,EAAE,KAAT;GACI,KAAK;GACL,KAAK;AAED,MAAE,gBAAgB;AAClB,MAAE,iBAAiB;AACnB,eAAW;AACX;;;CAIZ,IAAI,EAAc,eAAmBC,yCAAkB,EACnD,aAAa,QAChB,CAAC;CACF,IAAI,gBAAoBJ,0CAAyB;EAC7C,MAAM;EACN,QAAQ;EACX,CAAC;CACF,IAAI,MAAA,GAAA,MAAA,eAA6B;EAC7B,IAAI,uBAAO,IAAI,MAAM;AACrB,OAAK,SAAS,EAAE;AAChB,SAAO,cAAc,cAAc,KAAK,CAAC,MAAM,SAAO,KAAK,SAAS,YAAY,CAAC;IAClF,CACC,cACH,CAAC;CACF,IAAI,MAAA,GAAA,MAAA,eAA6B;EAC7B,IAAI,uBAAO,IAAI,MAAM;AACrB,OAAK,SAAS,GAAG;AACjB,SAAO,cAAc,cAAc,KAAK,CAAC,MAAM,SAAO,KAAK,SAAS,YAAY,CAAC;IAClF,CACC,cACH,CAAC;CAEF,IAAI,eAAmBA,0CAAyB;EAC5C,MAAM;EACN,KAAK;EACL,UAAU;EACb,CAAC;CACF,IAAI,QAAA,GAAA,MAAA,eAA+B;AAC/B,MAAI,QAAQ,SAAS,MAAO,QAAO,EAAE;EACrC,IAAI,QAAA,GAAA,wBAAA,YAA8B,IAAQK,wBAAAA,aAAqB,GAAG,GAAG,EAAE,EAAE,MAAM,SAAS;EACxF,IAAI,OAAO,MAAM,SAAS,SAAS,CAAC,KAAK,QAAM;GAC3C,IAAI,UAAU,KAAK,IAAI;IACnB,MAAM;IACN,OAAO;IACP,KAAK;IACA;IACR,CAAC,CAAC,OAAO,MAAM;AAGhB,UAAO;IACE;IACL,WAJQ,aAAa,cAAc,QAClB,CAAC,MAAM,MAAI,EAAE,SAAS,MAAM,CAAC;IAIjD;IACH;EAIF,IAAI,eAAe,yCAAyC,KAAK,KAAK,QAAM,IAAI,UAAU,CAAC;AAC3F,MAAI,aAAc,MAAK,IAAI,OAAO,KAAK,KAAI,YAAY,IAAI,UAAU,MAAM,aAAa;AACxF,SAAO;IACR;EACC;EACA,MAAM;EACN,QAAQ;EACX,CAAC;CACF,IAAI,WAAW,QAAM;AACjB,MAAI,MAAM,cAAc,MAAM,WAAY;EAC1C,IAAI,WAAW,YAAY,UAAU;AACrC,UAAO,QAAQ,MAAf;GACI,KAAK;AACD,QAAI,WAAW,IAAI,IAAI,CAAE,OAAM,WAAW,aAAa,EAAE;aAChD,WAAW,IAAI,IAAI,CAAE,OAAM,WAAW,aAAa,GAAG;QAC1D;AACL,iBAAa,WAAW;AACxB;GACJ,KAAK,OACD;IACI,IAAI,UAAU,KAAK,MAAM,MAAI,WAAW,EAAE,WAAW,IAAI,CAAC;AAC1D,QAAI,SAAS;AACT,WAAM,WAAW,OAAO,QAAQ,IAAI;AACpC,kBAAa,WAAW;;AAE5B;;GAER,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,QACD;AACI,QAAI,CAAC,OAAO,qBAAqB,SAAS,CAAE;IAC5C,IAAI,cAAc,OAAO,MAAM,SAAS;IACxC,IAAI,eAAe;IACnB,IAAI,aAAa,QAAQ,aAAa;AACtC,QAAI,QAAQ,SAAS,UAAU,MAAM,cAAc,iBAAiB,CAAC,QAAQ;AACzE,aAAO,MAAM,cAAc,iBAAiB,CAAC,WAA7C;MACI,KAAK;AACD,WAAI,cAAc,GAAI,gBAAe,OAAO,MAAM,IAAI;AACtD;MACJ,KAAK;AACD,oBAAa;AACb,WAAI,cAAc,GAAI,gBAAe,OAAO,MAAM,IAAI;AACtD;;AAER,SAAI,QAAQ,UAAU,KAAA,KAAa,QAAQ,SAAS,MAAM,cAAc,EAAG,gBAAe;eACnF,QAAQ,aAAa,KAAA,KAAa,cAAc,QAAQ,SAAU,gBAAe,OAAO,MAAM,IAAI;AAC7G,QAAI,MAAM,YAAY,CAAE;IACxB,IAAI,iBAAiB,iBAAiB,KAAK;AAC3C,QAAI,eAAgB,OAAM,WAAW,QAAQ,MAAM,aAAa;AAChE,QAAI,QAAQ,aAAa,KAAA,MAAc,OAAO,cAAc,IAAI,GAAG,QAAQ,YAAY,SAAS,UAAU,OAAO,QAAQ,SAAS,CAAC,SAAS;AACxI,iBAAY,UAAU;AACtB,SAAI,eAAgB,cAAa,WAAW;UACzC,aAAY,UAAU;AAC7B;;;;CAIhB,IAAI,gBAAc;AACd,cAAY,UAAU;AACtB,MAAI,IAAI,QAAaC,2CAA2B,IAAI,SAAS,EACzD,mBAAuBC,0CAAwB,IAAI,QAAQ,EAC9D,CAAC;EAEF,IAAI,YAAY,OAAO,cAAc;AACrC,gBAAc,QAAQ,cAAc,KAAK,KAAa,UAAU,SAAS,IAAI,QAAQ;;AAGrFC,4CAAAA,GAAAA,MAAAA,QADiC,OAAO,aAAa,cAAc,WAAW,KAClD,EAAE,yBAAuB;EACrD,IAAI;EAIJ,IAAI,YAAY,OAAO,cAAc;AACrC,OAAK,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,iBAAiB,eAAe,IAAI,aAAa,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,SAAS,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,WAAW,EAAG,WAAU,SAAS,IAAI,QAAQ;GACtS;CACF,IAAI,kBAAA,GAAA,MAAA,QAAoC,GAAG;AACvCA,2CAAiB,KAAK,gBAAgB,MAAI;AAC1C,MAAI,CAAC,IAAI,QAAS;AAClB,IAAE,gBAAgB;AAClB,UAAO,EAAE,WAAT;GACI,KAAK;GACL,KAAK;AACD,QAAI,OAAO,qBAAqB,QAAQ,KAAK,IAAI,CAAC,MAAM,WAAY,YAAW;AAC/E;GACJ,KAAK;AAGD,mBAAe,UAAU,IAAI,QAAQ;AAGrC,QAAI,QAAQ,cAAc,IAAI,QAAQ;AACtC;GACJ;AACI,QAAI,EAAE,QAAQ,KAAM,SAAQ,EAAE,KAAK;AACnC;;GAEV;AACEA,2CAAiB,KAAK,UAAU,MAAI;EACpC,IAAI,EAAa,WAAiB,SAAS;AAC3C,UAAO,WAAP;GACI,KAAK;AAED,QAAI,IAAI,QAAS,KAAI,QAAQ,cAAc,eAAe;AAG1D,QAAI,QAAQ,SAAS,WAAW,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAG,SAAQ,KAAK;AACjF;;GAEV;AACEC,kBAAAA,gDAA4B;EAC5B,IAAI,UAAU,IAAI;AAClB,eAAW;AAEP,OAAI,SAAS,kBAAkB;QAEvB,CADO,aAAa,eACf,CAAE,cAAa,WAAW;;;IAG5C,CACC,KACA,aACH,CAAC;CAEF,IAAI,qBAAyBC,iBAAAA,2CAAe,IAAI,QAAQ,SAAS,iBAAiB;EAC9E,MAAM;EACN,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB;EAClB,iBAAiB;EACpB,GAAG,EAAE;AAMN,KAAI,aAAA,GAAA,MAAA,eAHuC,MAAM,SAAS,MAAM,MAAI,EAAE,WAAW,EAAE,CAC/E,MAAM,SACT,CAC2B,IAAI,CAAC,MAAM,UAAW,mBAAkB,KAAA;CACpE,IAAI,KAASC,iBAAAA,2CAAe;CAC5B,IAAI,aAAa,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,QAAQ;CAInE,IAAI,aAAiBC,iBAAAA,0CAAkB;EACnC,cAAc,GAFP,QAAQ,SAAS,YAAY,KAAK,aAAa,GAAG,QAAQ,KAAK,GAE9C,YAAY,KAAK,cAAc,KAAK,iBAAiB,OAAO;EACpF,mBAAmB;EACtB,CAAC;AAGF,KAAI,QAAQ,SAAS,UAAW,QAAO,EACnC,cAAc,EACV,eAAe,MAClB,EACJ;CACD,IAAI,eAAe,EACf,YAAY,eACf;AACD,KAAI,cAAc,OAAO;AAIrB,eAAa,cAAc;EAC3B,IAAI,SAAS,QAAQ,QAAQ;AAC7B,MAAI,WAAW,aAAa,WAAW,UAAW,cAAa,YAAY;;AAE/E,QAAO,EACH,cAAkBC,iBAAAA,0CAAmB,iBAAiB,YAAY;EAC1D;EACJ,GAAG;EACH,gBAAgB,MAAM,YAAY,SAAS,KAAA;EAC3C,oBAAoB;EACpB,iBAAiB,MAAM,cAAc,CAAC,QAAQ,aAAa,SAAS,KAAA;EACpE,oBAAoB,QAAQ,iBAAiB,KAAA;EAC7C,iBAAiB;EACjB,gCAAgC;EAChC,YAAY,aAAa,UAAU,KAAA;EACnC,aAAa,aAAa,QAAQ,KAAA;GAEjC,SAAaC,MAAAA,QAAc,SAAS,GAAG,IAAI,KAAK,iBAAiB,iBAAiB,aAAa,SAAS,KAAA;EACzG,WAAW,MAAM,cAAc,QAAQ,SAAS,eAAe,QAAQ,SAAS,SAAS,CAAC,aAAa,KAAA,IAAY;EACnH,UAAU,MAAM,aAAa,KAAA,IAAY;EAC9B;EACF;EACT,OAAO;EAEP,cAAe,GAAG;AACd,KAAE,iBAAiB;;EAEvB,YAAa,GAAG;AACZ,KAAE,iBAAiB;;EAE1B,CAAC,EACL;;AAEL,SAAS,yCAAyC,SAAS;AAEvD,SAAQ,MAAM;CACd,IAAI,QAAQ,QAAQ;CACpB,IAAI,OAAO,QAAQ,QAAQ,SAAS;AACpC,MAAI,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAC7B,KAAI,MAAM,OAAO,KAAK,GAAI,QAAO;AAErC,QAAO;;;;AChXX,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,gHAAgH,KAAK,SAAS;CACvJ,iBAAiB;CACjB,mBAAmB,SAAO,gHAAgH,KAAK,SAAS;CACxJ,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,4IAA4I,KAAK,SAAS;CACnL,iBAAiB;CACjB,mBAAmB,SAAO,4IAA4I,KAAK,SAAS;CACpL,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,0BAA0B,KAAK,SAAS;CACjE,iBAAiB;CACjB,mBAAmB,SAAO,0BAA0B,KAAK,SAAS;CAClE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,2BAA2B,KAAK,SAAS;CAClE,iBAAiB;CACjB,mBAAmB,SAAO,2BAA2B,KAAK,SAAS;CACnE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,iBAAiB,KAAK,SAAS;CACxD,iBAAiB;CACjB,mBAAmB,SAAO,iBAAiB,KAAK,SAAS;CACzD,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,sIAAsI,KAAK,SAAS;CAC7K,iBAAiB;CACjB,mBAAmB,SAAO,sIAAsI,KAAK,SAAS;CAC9K,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,mBAAmB,SAAO,iBAAiB,KAAK,SAAS;CACzD,kBAAkB,SAAO,iBAAiB,KAAK,SAAS;CACxD,iBAAiB;CACjB,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,qBAAqB,KAAK,SAAS;CAC5D,iBAAiB;CACjB,mBAAmB,SAAO,qBAAqB,KAAK,SAAS;CAC7D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,4BAA4B,KAAK,SAAS;CACnE,iBAAiB;CACjB,mBAAmB,SAAO,4BAA4B,KAAK,SAAS;CACpE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,mBAAmB,KAAK,SAAS;CAC1D,iBAAiB;CACjB,mBAAmB,SAAO,mBAAmB,KAAK,SAAS;CAC3D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,0BAA0B,KAAK,SAAS;CACjE,iBAAiB;CACjB,mBAAmB,SAAO,0BAA0B,KAAK,SAAS;CAClE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,iGAAiG,KAAK,SAAS;CACxI,iBAAiB;CACjB,mBAAmB,SAAO,iGAAiG,KAAK,SAAS;CACzI,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,wBAAwB,KAAK,SAAS;CAC/D,iBAAiB;CACjB,mBAAmB,SAAO,wBAAwB,KAAK,SAAS;CAChE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,qBAAqB,KAAK,SAAS;CAC5D,iBAAiB;CACjB,mBAAmB,SAAO,qBAAqB,KAAK,SAAS;CAC7D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,yBAAyB,KAAK,SAAS;CAChE,iBAAiB;CACjB,mBAAmB,SAAO,yBAAyB,KAAK,SAAS;CACjE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,oBAAoB,KAAK,SAAS;CAC3D,iBAAiB;CACjB,mBAAmB,SAAO,oBAAoB,KAAK,SAAS;CAC5D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,oBAAoB,KAAK,SAAS;CAC3D,iBAAiB;CACjB,mBAAmB,SAAO,oBAAoB,KAAK,SAAS;CAC5D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,uCAAuC,KAAK,SAAS;CAC9E,iBAAiB;CACjB,mBAAmB,SAAO,uCAAuC,KAAK,SAAS;CAC/E,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,6CAA6C,KAAK,SAAS;CACpF,iBAAiB;CACjB,mBAAmB,SAAO,6CAA6C,KAAK,SAAS;CACrF,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,yBAAyB,KAAK,SAAS;CAChE,iBAAiB;CACjB,mBAAmB,SAAO,yBAAyB,KAAK,SAAS;CACjE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,eAAe,KAAK,SAAS;CACtD,iBAAiB;CACjB,mBAAmB,SAAO,eAAe,KAAK,SAAS;CACvD,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,2DAA2D,KAAK,SAAS;CAClG,iBAAiB;CACjB,mBAAmB,SAAO,2DAA2D,KAAK,SAAS;CACnG,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,oBAAoB,KAAK,SAAS;CAC3D,iBAAiB;CACjB,mBAAmB,SAAO,oBAAoB,KAAK,SAAS;CAC5D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,sBAAsB,KAAK,SAAS;CAC7D,iBAAiB;CACjB,mBAAmB,SAAO,sBAAsB,KAAK,SAAS;CAC9D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,iCAAiC,KAAK,SAAS;CACxE,iBAAiB;CACjB,mBAAmB,SAAO,iCAAiC,KAAK,SAAS;CACzE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,uLAAuL,KAAK,SAAS;CAC9N,iBAAiB;CACjB,mBAAmB,SAAO,8LAA8L,KAAK,SAAS;CACtO,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,6BAA6B,KAAK,SAAS;CACpE,iBAAiB;CACjB,mBAAmB,SAAO,6BAA6B,KAAK,SAAS;CACrE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,sBAAsB,KAAK,SAAS;CAC7D,iBAAiB;CACjB,mBAAmB,SAAO,sBAAsB,KAAK,SAAS;CAC9D,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,yBAAyB,KAAK,SAAS;CAChE,iBAAiB;CACjB,mBAAmB,SAAO,yBAAyB,KAAK,SAAS;CACjE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,2BAA2B,KAAK,SAAS;CAClE,iBAAiB;CACjB,mBAAmB,SAAO,2BAA2B,KAAK,SAAS;CACnE,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,gBAAgB,KAAK,SAAS;CACvD,iBAAiB;CACjB,mBAAmB,SAAO,gBAAgB,KAAK,SAAS;CACxD,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,gLAAgL,KAAK,SAAS;CACvN,iBAAiB;CACjB,mBAAmB,SAAO,yKAAyK,KAAK,SAAS;CACjN,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,oCAAoC,KAAK,SAAS;CAC3E,iBAAiB;CACjB,mBAAmB,SAAO,oCAAoC,KAAK,SAAS;CAC5E,mBAAmB;CACtB;;;ACND,IAAI,4BAA4B,EAAE;AAClC,4BAA4B;CACxB,kBAAkB,SAAO,oCAAoC,KAAK,SAAS;CAC3E,iBAAiB;CACjB,mBAAmB,SAAO,oCAAoC,KAAK,SAAS;CAC5E,mBAAmB;CACtB;;;AC6BD,IAAI,4BAA4B,EAAE;AAmClC,4BAA4B;CACxB,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACT,SAASC;CACZ;;;AClGD,SAAS,uBAAuB,GAAG;AACjC,QAAO,KAAK,EAAE,aAAa,EAAE,UAAU;;AAiBzC,MAAM,mCAAmC,IAAQC,0CAAuC,uBAAuBC,0BAA2B,CAAG;AAC7I,SAAS,kCAAkC;CAIvC,IAAI,SAAS,OAAO,cAAc,gBAAgB,UAAU,YAAY,UAAU,iBAAiB;AACnG,KAAI;AACA,OAAK,eAAe,mBAAmB,CACnC,OACH,CAAC;SACG;AACL,WAAS;;AAEb,QAAO;;AAEX,SAAS,0CAA0C,OAAO,UAAU,UAAU,mBAAmB,SAAS;CACtG,IAAI,gBAAgB,SAAS,QAAQ,YAAY,QAAQ,MAAM,QAAQ,SAAS,GAAG;CACnF,IAAI,iBAAiB,SAAS,QAAQ,YAAY,QAAQ,MAAM,QAAQ,SAAS,GAAG;CACpF,IAAI,gBAAgB,SAAS,SAAS,sBAAsB,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,MAAM,KAAK;CACzI,IAAI,YAAY,iBAAiB,kBAAkB;CACnD,IAAI,SAAS,EAAE;AACf,KAAI,WAAW;EACX,IAAI,SAAS,iCAAiC;EAE9C,IAAI,YAAY,IAAQC,0CAAiC,QADvCF,0CAAkC,8BAA8B,4BAA4B,IAAI,iCACzC;EACzE,IAAI,gBAAgB,IAAQG,wBAAAA,cAAsB,QAAQ,0CAA0C,EAAE,EAAE,QAAQ,CAAC;EACjH,IAAI,WAAW,cAAc,iBAAiB,CAAC;AAC/C,MAAI,kBAAkB,YAAY,KAAM,QAAO,KAAK,UAAU,OAAO,kBAAkB,EACnF,UAAU,cAAc,OAAO,SAAS,OAAO,SAAS,CAAC,EAC5D,CAAC,CAAC;AACH,MAAI,iBAAiB,YAAY,KAAM,QAAO,KAAK,UAAU,OAAO,iBAAiB,EACjF,UAAU,cAAc,OAAO,SAAS,OAAO,SAAS,CAAC,EAC5D,CAAC,CAAC;AACH,MAAI,cAAe,QAAO,KAAK,UAAU,OAAO,kBAAkB,CAAC;;AAEvE,QAAO;EACQ;EACX,kBAAkB;EAClB,mBAAmB;GACf,UAAU;GACV,aAAa;GACb,iBAAiB;GACF;GACC;GAChB,cAAc;GACd,SAAS;GACT,UAAU;GACV,cAAc;GACd,cAAc;GACd,OAAO,CAAC;GACX;EACJ;;AAyBL,MAAM,8CAA8C;CAChD,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACX;AACD,MAAM,gDAAgD;CAClD,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACX;AACD,SAAS,0CAA0C,cAAc,SAAS;AAEtE,gBAAe;EACX,GAFsB,QAAQ,0BAA0B,gDAAgD;EAGxG,GAAG;EACN;CACD,IAAI,cAAc,QAAQ,eAAe;CACzC,IAAI,OAAO,OAAO,KAAK,aAAa;CACpC,IAAI;CACJ,IAAI,WAAW,KAAK,SAAS,0BAA0B,QAAQ,oBAAoB,QAAQ,4BAA4B,KAAK,IAAI,0BAA0B,OAAO;AACjK,KAAI,WAAW,EAAG,YAAW;CAC7B,IAAI,SAAS,KAAK,QAAQ,YAAY;AACtC,KAAI,SAAS,EAAG,UAAS;AACzB,KAAI,WAAW,OAAQ,OAAM,IAAI,MAAM,kDAAkD;CACzF,IAAI,OAAO,KAAK,MAAM,UAAU,SAAS,EAAE,CAAC,QAAQ,MAAM,QAAM;AAC5D,OAAK,OAAO,aAAa;AACzB,SAAO;IACR,EAAE,CAAC;AACN,KAAI,QAAQ,aAAa,KAAM,MAAK,SAAS,QAAQ,cAAc;AACnE,MAAK,WAAW,QAAQ,YAAY;AAEpC,MADc,gBAAgB,UAAU,gBAAgB,YAAY,gBAAgB,aACrE,QAAQ,YAAY,CAAC,QAAQ,aAAc,MAAK,eAAe;AAC9E,KAAI,QAAQ,WAAW,aAAa,EAAG,MAAK,MAAM;AAClD,QAAO;;AAMX,SAAS,0CAA0C,OAAO,UAAU;AAChE,KAAI,UAAU,KAAM,QAAO;AAC3B,KAAI,CAAC,MAAO,QAAO,KAAA;AACnB,SAAA,GAAA,wBAAA,YAA8B,OAAO,SAAS;;AAElD,SAAS,0CAA0C,kBAAkB,aAAa,UAAU,UAAU;AAClG,KAAI,iBAAkB,QAAO,0CAA0C,kBAAkB,SAAS;CAClG,IAAI,QAAA,GAAA,wBAAA,aAAA,GAAA,wBAAA,KAA8C,aAAa,QAAQ,aAAa,KAAK,IAAI,YAAA,GAAA,wBAAA,mBAAyC,CAAC,CAAC,IAAI;EACxI,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,aAAa;EAChB,CAAC,EAAE,SAAS;AACb,KAAI,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,MAAO,SAAA,GAAA,wBAAA,gBAAkC,KAAK;AACvH,KAAI,CAAC,SAAU,SAAA,GAAA,wBAAA,oBAAsC,KAAK;AAC1D,QAAO;;AAEX,SAAS,0CAA0C,GAAG,aAAa;CAE/D,IAAI,kBAAkB,KAAK,cAAc,IAAI,EAAE,WAAW,KAAA;CAC1D,IAAI,qBAAqB,KAAK,YAAY,IAAI,WAAW;AAEzD,KAAI,KAAK,eAAe,EAAE,eAAe,GAAI,OAAM,IAAI,MAAM,yBAAyB,cAAc,gBAAgB,EAAE,UAAU,CAAC;CACjI,IAAI,CAAC,WAAW,iBAAA,GAAA,MAAA,UAAqC,CACjD,oBACA,gBACH,CAAC;AAEF,KAAI,MAAM,UAAU,OAAO,sBAAsB,UAAU,OAAO,iBAAkB,cAAa,CAC7F,oBACA,gBACH,CAAC;AACF,KAAI,CAAC,YAAa,eAAc,IAAI,qBAAqB,UAAU;CACnE,IAAI,WAAW,IAAI,kBAAkB,UAAU;AAC/C,QAAO,CACH,aACA,SACH;;;;ACvKL,MAAM,qCAAqC,IAAQC,0CAAkC;CACjF,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,KAAK;EACD,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,IAAI;EACA,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,SAAS;EACL,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACD,SAAS;EACL,MAAM;EACN,OAAO;EACP,KAAK;EACR;CACJ,EAAE,KAAK;AACR,SAAS,0CAA0C,OAAO,OAAO,QAAQ;AAErE,KAAI,UAAU,SAAS,UAAU,YAAa,QAAO;AACrD,KAAI,UAAU,UAAU,UAAU,WAAW,UAAU,MAAO,QAAO,mCAAmC,mBAAmB,OAAO,OAAO;AAEzI,QAAO;;;;AC5XX,MAAM,0CAA0C;CAC5C,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,KAAK;CACR;AACD,MAAM,kCAAkC;CACpC,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACX;AACD,MAAM,qCAAqC;CAEvC,WAAW;CAEX,aAAa;CACb,UAAU;CACV,SAAS;CACZ;AACD,SAAS,0CAA0C,OAAO;CACtD,IAAI,EAAU,QAAwB,gBAA8B,cAA0B,aAAa,OAAmB,aAAa,OAAmB,aAAa,OAAiB,UAAoB,UAA6B,sBAAsB;CACnQ,IAAI,IAAI,MAAM,SAAS,MAAM,gBAAgB,MAAM,oBAAoB;CACvE,IAAI,CAAC,aAAa,mBAAuB,0CAA2C,GAAG,MAAM,YAAY;CACzG,IAAI,WAAW,mBAAmB;AAElC,KAAI,KAAK,EAAE,eAAe,GAAI,OAAM,IAAI,MAAM,yBAAyB,cAAc,gBAAgB,EAAE,UAAU,CAAC;CAClH,IAAI,oBAAA,GAAA,MAAA,eAA2C,IAAQC,wBAAAA,cAAsB,OAAO,EAAE,CAClF,OACH,CAAC;CACF,IAAI,YAAA,GAAA,MAAA,eAAmC,eAAe,iBAAiB,iBAAiB,CAAC,SAAS,EAAE,CAChG,gBACA,iBACH,CAAC;CACF,IAAI;CACJ,IAAI,CAAC,OAAO,WAAeC,iBAAAA,0CAA2B,MAAM,QAAQ,sBAAsB,MAAM,kBAAkB,QAAQ,wBAAwB,KAAK,IAAI,sBAAsB,MAAM,MAAM,SAAS;CACtM,IAAI,CAAC,iBAAA,GAAA,MAAA,UAAqC,MAAM;CAChD,IAAI,iBAAA,GAAA,MAAA,eAAwC;EACxC,IAAI;AACJ,UAAQ,gBAAoB,0CAA2C,OAAO,SAAS,MAAM,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB;IACjJ,CACC,OACA,SACH,CAAC;CAKF,IAAI,CAAC,iBAAiB,uBAAA,GAAA,MAAA,gBAAmD,0CAA2C,MAAM,kBAAkB,aAAa,UAAU,gBAAgB,CAAC;CACpL,IAAI,MAAM,iBAAiB;CAC3B,IAAI,UAAU,SAAS,eAAe,aAAa,IAAI,QAAQ;CAC/D,IAAI,cAAA,GAAA,MAAA,eAAqC;EACrC,IAAI;AACJ,SAAO;GACU;GACb,iBAAiB,wBAAwB,MAAM,oBAAoB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;GACtI,UAAU;GACI;GACd,WAAW,MAAM;GACR;GACT,yBAAyB,MAAM;GAClC;IACF;EACC,MAAM;EACN;EACA,MAAM;EACN,MAAM;EACN;EACA;EACA;EACH,CAAC;CACF,IAAI,QAAA,GAAA,MAAA,eAAmC,0CAA2C,EAAE,EAAE,WAAW,EAAE,CAC/F,WACH,CAAC;CACF,IAAI,iBAAA,GAAA,MAAA,eAAwC,IAAQD,wBAAAA,cAAsB,QAAQ,KAAK,EAAE,CACrF,QACA,KACH,CAAC;CACF,IAAI,mBAAA,GAAA,MAAA,eAA0C,cAAc,iBAAiB,EAAE,CAC3E,cACH,CAAC;CAGF,IAAI,eAAA,GAAA,MAAA,eAAsC,cAAc,8BAAc,IAAI,MAAM,CAAC,CAAC,QAAQ,QAAM,wCAAwC,IAAI,MAAM,CAAC,QAAQ,GAAG,SAAO,EAAE,mCAAmC,IAAI,SAAS,IAAI,QAAQ,MAAM,IAAI,EAAE,CAAC,EAAE,CAC9O,cACH,CAAC;CACF,IAAI,CAAC,eAAe,qBAAA,GAAA,MAAA,gBAA6C,MAAM,SAAS,MAAM,eAAe,EAC7F,GAAG,aACN,GAAG,EAAE,CAAC;CACX,IAAI,kBAAA,GAAA,MAAA,QAAoC,KAAK;CAE7C,IAAI,gBAAA,GAAA,MAAA,QAAkC,SAAS;AAC/C,EAAA,GAAA,MAAA,iBAA0B;AACtB,MAAI,EAAA,GAAA,wBAAA,iBAA6B,UAAU,aAAa,QAAQ,EAAE;AAC9D,gBAAa,UAAU;AACvB,uBAAoB,gBAAc,OAAO,KAAK,cAAc,CAAC,SAAS,KAAA,GAAA,wBAAA,YAA2B,aAAa,SAAS,GAAO,0CAA2C,MAAM,kBAAkB,aAAa,UAAU,gBAAgB,CAAC;;IAE9O;EACC;EACA;EACA;EACA;EACA,MAAM;EACT,CAAC;AAEF,KAAI,SAAS,OAAO,KAAK,cAAc,CAAC,SAAS,OAAO,KAAK,YAAY,CAAC,QAAQ;AAC9E,kBAAgB,EACZ,GAAG,aACN;AACD,mBAAiB,cAAc;;AAGnC,KAAI,SAAS,QAAQ,OAAO,KAAK,cAAc,CAAC,WAAW,OAAO,KAAK,YAAY,CAAC,QAAQ;AACxF,kBAAgB,EAAE;AAClB,mBAAiB,cAAc;AAC/B,qBAAuB,0CAA2C,MAAM,kBAAkB,aAAa,UAAU,gBAAgB,CAAC;;CAGtI,IAAI,eAAe,iBAAiB,OAAO,KAAK,cAAc,CAAC,UAAU,OAAO,KAAK,YAAY,CAAC,SAAS,gBAAgB;CAC3H,IAAI,YAAY,aAAW;AACvB,MAAI,MAAM,cAAc,MAAM,WAAY;EAC1C,IAAI,YAAY,OAAO,KAAK,cAAc;EAC1C,IAAI,UAAU,OAAO,KAAK,YAAY;AAEtC,MAAI,YAAY,MAAM;AAClB,WAAQ,KAAK;AACb,sBAAuB,0CAA2C,MAAM,kBAAkB,aAAa,UAAU,gBAAgB,CAAC;AAClI,oBAAiB,EAAE,CAAC;aACb,UAAU,WAAW,KAAK,eAAe,WAAW,QAAQ,UAAU,UAAU,QAAQ,UAAU,UAAU,WAAW,QAAQ,SAAS,KAAK,YAAY,aAAa,CAAC,cAAc,aAAa,eAAe,YAAY,aAAa;AAGjP,OAAI,UAAU,WAAW,GAAG;AACxB,oBAAgB,EACZ,GAAG,aACN;AACD,qBAAiB,cAAc;;AAInC,eAAA,GAAA,wBAAA,YAAkC,WAAW,MAAM,QAAQ,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,aAAa,IAAQE,wBAAAA,mBAA2B,CAAC;AACtI,WAAQ,SAAS;QACd,oBAAmB,SAAS;AACnC,iBAAe,UAAU;;CAE7B,IAAI,aAAA,GAAA,MAAA,eAAoC,aAAa,OAAO,SAAS,EAAE,CACnE,cACA,SACH,CAAC;CACF,IAAI,YAAA,GAAA,MAAA,eAAmC,sCAAsC,WAAW,eAAe,eAAe,iBAAiB,cAAc,UAAU,QAAQ,YAAY,EAAE;EACjL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACH,CAAC;AAGF,KAAI,YAAY,OAAO,cAAc,QAAQ,CAAC,cAAc,KAAK;AAC7D,gBAAc,MAAM;AACpB,mBAAiB,EACb,GAAG,eACN,CAAC;YACK,CAAC,YAAY,OAAO,cAAc,KAAK;AAC9C,SAAO,cAAc;AACrB,mBAAiB,EACb,GAAG,eACN,CAAC;;CAEN,IAAI,aAAa,SAAO;AACpB,gBAAc,QAAQ;AACtB,MAAI,SAAS,UAAU,YAAY,IAAK,eAAc,MAAM;AAC5D,mBAAiB,EACb,GAAG,eACN,CAAC;;CAEN,IAAI,iBAAiB,MAAM,WAAS;AAChC,MAAI,CAAC,cAAc,OAAO;AACtB,aAAU,KAAK;GACf,IAAI,YAAY,OAAO,KAAK,cAAc;GAC1C,IAAI,UAAU,OAAO,KAAK,YAAY;AACtC,OAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,WAAW,QAAQ,SAAS,KAAK,YAAY,aAAa,CAAC,cAAc,UAAW,UAAS,aAAa;QAC3J,UAAS,iCAAiC,cAAc,MAAM,QAAQ,gBAAgB,CAAC;;CAElG,IAAI,qBAAA,GAAA,MAAA,eAAgD,0CAA2C,OAAO,UAAU,UAAU,mBAAmB,WAAW,EAAE;EACtJ;EACA;EACA;EACA;EACA;EACH,CAAC;CACF,IAAI,aAAiBC,0CAA+B;EAChD,GAAG;EACI;EACY;EACtB,CAAC;CACF,IAAI,iBAAiB,WAAW,kBAAkB;CAClD,IAAI,kBAAkB,MAAM,oBAAoB,iBAAiB,YAAY;CAC7E,IAAI,sBAAsB;AAC1B,QAAO;EACH,GAAG;EACH,OAAO;EACP,eAAe,uBAAuB,MAAM,kBAAkB,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB;EACpH;EACD;EACA;EACA;EACK;EACE;EACjB,WAAW;EACE;EACb,iBAAiB,wBAAwB,MAAM,oBAAoB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB;EAC1H;EACA;EACA;EACZ,UAAW,MAAM;AACb,iBAAc,MAAM,EAAE;;EAE1B,UAAW,MAAM;AACb,iBAAc,MAAM,GAAG;;EAE3B,cAAe,MAAM;AACjB,iBAAc,MAAM,gCAAgC,SAAS,EAAE;;EAEnE,cAAe,MAAM;AACjB,iBAAc,MAAM,EAAE,gCAAgC,SAAS,GAAG;;EAEtE,WAAY,MAAM,GAAG;AACjB,aAAU,KAAK;AACf,YAAS,iCAAiC,cAAc,MAAM,GAAG,gBAAgB,CAAC;;EAEtF,qBAAsB;AAClB,OAAI,MAAM,cAAc,MAAM,WAAY;GAE1C,IAAI,YAAY,OAAO,KAAK,cAAc;GAC1C,IAAI,UAAU,OAAO,KAAK,YAAY;AACtC,OAAI,UAAU,WAAW,QAAQ,SAAS,KAAK,YAAY,aAAa,CAAC,cAAc,WAAW;AAC9F,oBAAgB,EACZ,GAAG,aACN;AACD,qBAAiB,cAAc;AAC/B,aAAS,aAAa,MAAM,CAAC;;;EAGrC,aAAc,MAAM;AAChB,UAAO,cAAc;AACrB,kBAAe,UAAU;AACzB,oBAAiB,EACb,GAAG,eACN,CAAC;GACF,IAAI,cAAkB,0CAA2C,MAAM,kBAAkB,aAAa,UAAU,gBAAgB;GAChI,IAAI,QAAQ;AAEZ,OAAI,SAAS,eAAe,UAAU,gBAAgB,UAAU,aAAa;IACzE,IAAI,OAAO,aAAa,QAAQ;IAChC,IAAI,aAAa,YAAY,QAAQ;AACrC,QAAI,QAAQ,CAAC,WAAY,SAAQ,aAAa,IAAI,EAC9C,MAAM,aAAa,OAAO,IAC7B,CAAC;aACO,CAAC,QAAQ,WAAY,SAAQ,aAAa,IAAI,EACnD,MAAM,aAAa,OAAO,IAC7B,CAAC;cACK,SAAS,UAAU,UAAU,gBAAgB,aAAa,QAAQ,MAAM,cAAc,UAAW,SAAQ,aAAa,IAAI,EACjI,MAAM,YAAY,UAAU,IAC/B,CAAC;YACO,QAAQ,aAAc,SAAQ,aAAa,IAAI,GACnD,OAAO,YAAY,OACvB,CAAC;AACF,WAAQ,KAAK;AACb,YAAS,MAAM;;EAEnB,YAAa,cAAc;AACvB,OAAI,CAAC,cAAe,QAAO;AAG3B,UAAO,IADiBH,wBAAAA,cAAsB,QADtB,0CAA2C,cAAc,WACd,CACnD,CAAC,OAAO,UAAU;;EAEtC,iBAAkB,QAAQ,eAAe;AAMrC,UAAO,IAAQA,wBAAAA,cAAsB,QADV,0CAA2C,EAAE,EAAE;IAHtE,GAAG;IACH,GAAG;IAE6E,CACvB,CAAC;;EAErE;;AAEL,SAAS,sCAAsC,WAAW,eAAe,eAAe,iBAAiB,cAAc,UAAU,QAAQ,aAAa;CAClJ,IAAI,YAAY;EACZ;EACA;EACA;EACH;CACD,IAAI,WAAW,cAAc,cAAc,UAAU;CACrD,IAAI,oBAAoB,EAAE;AAC1B,MAAK,IAAI,WAAW,UAAS;EACzB,IAAI,OAAO,mCAAmC,QAAQ,SAAS,QAAQ;EACvE,IAAI,aAAa,wCAAwC;AACzD,MAAI,SAAS,SAAS,SAAS,SAAS,CAAC,WAAW,EAAG,cAAa;EACpE,IAAI,gBAAgB,wCAAwC,SAAS,CAAC,cAAc;EACpF,IAAI,cAAc,wCAAwC,QAAY,0CAA2C,MAAM,QAAQ,OAAO,OAAO,GAAG;EAChJ,IAAI,cAAc;GACR;GACN,MAAM,gBAAgB,cAAc,QAAQ;GAC5C,GAAG,uCAAuC,cAAc,MAAM,gBAAgB;GAC/D;GACF;GACD;GACf;AAID,MAAI,SAAS,QAAQ;AAEjB,qBAAkB,KAAK;IACnB,MAAM;IACN,MAAM;IACN,GAAG,uCAAuC,cAAc,WAAW,gBAAgB;IACnF,eAAe;IACf,aAAa;IACb,YAAY;IACf,CAAC;AACF,qBAAkB,KAAK,YAAY;AAEnC,OAAI,SAAS,YAAa,mBAAkB,KAAK;IAC7C,MAAM;IACN,MAAM;IACN,GAAG,uCAAuC,cAAc,WAAW,gBAAgB;IACnF,eAAe;IACf,aAAa;IACb,YAAY;IACf,CAAC;aACK,UAAU,SAAS,KAAK,IAAI,SAAS,aAAa;AACzD,qBAAkB,KAAK,YAAY;AAEnC,qBAAkB,KAAK;IACnB,MAAM;IACN,MAAM;IACN,GAAG,uCAAuC,cAAc,WAAW,gBAAgB;IACnF,eAAe;IACf,aAAa;IACb,YAAY;IACf,CAAC;QAEN,mBAAkB,KAAK,YAAY;;AAEvC,QAAO;;AAEX,SAAS,uCAAuC,MAAM,MAAM,SAAS;AACjE,SAAO,MAAP;EACI,KAAK,OACD;GACI,IAAI,OAAO,KAAK,SAAS,SAAS;AAClC,UAAO;IACH,OAAO,KAAK,QAAQ,KAAK,IAAI;IAC7B,UAAU;IACV,UAAU,KAAK,SAAS;IAC3B;;EAET,KAAK,OACD,QAAO;GACH,OAAO,KAAK;GACZ,UAAU;GACV,UAAU,KAAK,SAAS,cAAc,KAAK;GAC9C;EACL,KAAK,QACD,QAAO;GACH,OAAO,KAAK;GACZ,WAAA,GAAA,wBAAA,uBAA4C,KAAK;GACjD,UAAU,KAAK,SAAS,gBAAgB,KAAK;GAChD;EACL,KAAK,MACD,QAAO;GACH,OAAO,KAAK;GACZ,WAAA,GAAA,wBAAA,sBAA2C,KAAK;GAChD,UAAU,KAAK,SAAS,eAAe,KAAK;GAC/C;;AAET,KAAI,UAAU,KAAM,SAAO,MAAP;EAChB,KAAK,YACD,QAAO;GACH,OAAO,KAAK,QAAQ,KAAK,KAAK;GAC9B,UAAU;GACV,UAAU;GACb;EACL,KAAK;AACD,OAAI,QAAQ,QAAQ;IAChB,IAAI,OAAO,KAAK,QAAQ;AACxB,WAAO;KACH,OAAO,KAAK;KACZ,UAAU,OAAO,KAAK;KACtB,UAAU,OAAO,KAAK;KACzB;;AAEL,UAAO;IACH,OAAO,KAAK;IACZ,UAAU;IACV,UAAU;IACb;EACL,KAAK,SACD,QAAO;GACH,OAAO,KAAK;GACZ,UAAU;GACV,UAAU;GACb;EACL,KAAK,SACD,QAAO;GACH,OAAO,KAAK;GACZ,UAAU;GACV,UAAU;GACb;;AAET,QAAO,EAAE;;AAEb,SAAS,iCAAiC,OAAO,MAAM,QAAQ,SAAS;AACpE,SAAO,MAAP;EACI,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,MACD,QAAO,MAAM,MAAM,MAAM,QAAQ,EAC7B,OAAO,SAAS,QACnB,CAAC;;AAEV,KAAI,UAAU,MAAO,SAAO,MAAP;EACjB,KAAK,aACD;GACI,IAAI,QAAQ,MAAM;GAClB,IAAI,OAAO,SAAS;AACpB,UAAO,MAAM,IAAI,EACb,MAAM,OAAO,QAAQ,KAAK,QAAQ,IACrC,CAAC;;EAEV,KAAK;EACL,KAAK;EACL,KAAK,SACD,QAAO,MAAM,MAAM,MAAM,QAAQ;GAC7B,OAAO,SAAS;GAChB,WAAW,QAAQ,SAAS,KAAK;GACpC,CAAC;;AAEV,OAAM,IAAI,MAAM,sBAAsB,KAAK;;AAE/C,SAAS,iCAAiC,OAAO,MAAM,cAAc,SAAS;AAC1E,SAAO,MAAP;EACI,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,MACD,QAAO,MAAM,IAAI,GACZ,OAAO,cACX,CAAC;;AAEV,KAAI,UAAU,SAAS,OAAO,iBAAiB,SAAU,SAAO,MAAP;EACrD,KAAK,aACD;GACI,IAAI,QAAQ,MAAM;GAClB,IAAI,QAAQ,SAAS;AAErB,OADW,gBAAgB,OACd,MAAO,QAAO;AAC3B,UAAO,MAAM,IAAI,EACb,MAAM,QAAQ,QAAQ,KAAK,QAAQ,IACtC,CAAC;;EAEV,KAAK,OAED,KAAI,QAAQ,QAAQ;GAEhB,IAAI,QADQ,MAAM,QACG;AACrB,OAAI,CAAC,SAAS,iBAAiB,GAAI,gBAAe;AAClD,OAAI,SAAS,eAAe,GAAI,iBAAgB;;EAGxD,KAAK;EACL,KAAK,SACD,QAAO,MAAM,IAAI,GACZ,OAAO,cACX,CAAC;;AAEV,OAAM,IAAI,MAAM,sBAAsB,KAAK;;;;ACze/C,MAAM,uBAAuB,kBAAA,QAAO,GAA8B;;;;;IAK9DI,wBAAAA,UAAU;yBACWC,uBAAAA,MAAM,YAAY;;wBAEnBA,uBAAAA,MAAM,cAAc;;;KAGvC,EAAE,UAAU,mBACZ,YAAY,gBACb,kBAAA,GAAG;;;MAGD;;KAED,EAAE,kBACH,eACA,kBAAA,GAAG;eACQA,uBAAAA,MAAM,cAAc;;;;;;;MAO7B;;AAIN,MAAM,yBAAyB,kBAAA,QAAO,IAAiC;;;;;;;;;KASlE,EAAE,oBACH,gBACI,kBAAA,GAAG;;oBAES,EAAE,YAAY,MAAM,MAAM,KAAK,SAAS;YAEpD,kBAAA,GAAG;;;UAGD;KACL,EAAE,WACH,SAAS,aACT,kBAAA,GAAG;sBACeC,uBAAAA,QAAQ,GAAG;uBACVA,uBAAAA,QAAQ,GAAG;MAC5B;KACD,EAAE,MAAM,oBACT,SAAS,WACT,iBACA,kBAAA,GAAG;;MAED;;AAQN,SAAS,YAAY,EAAE,SAAS,SAA2B;CACzD,MAAM,OAAA,GAAA,MAAA,SAAc;CAEpB,MAAM,EAAE,iBAAiBC,yCAAe,SAAS,OAAO,IAAI;CAE5D,IAAI;AAEJ,SAAQ,QAAQ,MAAhB;EACE,KAAK;AACH,cAAW;AACX;EAEF;AACE,cAAW,GAAG,QAAQ,YAAY,QAAQ,OAAO,QAAQ,SAAS,CAAC,SAAS,IAAK;AACjF;;CAIJ,MAAM,UAAU,QAAQ,SAAS,aAAa,QAAQ,SAAS;CAC/D,MAAM,aAAa,QAAQ,SAAS;AAEpC,QACE,iBAAA,GAAA,kBAAA,MAAC,sBAAD;EACE,GAAI;EAEC;EACL,OAAO;GACL,GAAG,aAAa;GAChB;GACD;EACD,UAAU;EACV,aAAa;EACb,GAAK,cAAc;GAAE,UAAU;GAAI,MAAM;GAAgB;YAV3D,CAaG,QAAQ,eACP,iBAAA,GAAA,kBAAA,KAAC,wBAAD;GACE,eAAY;GACZ,eAAe,QAAQ;GACvB,MAAM,QAAQ;aAEb,QAAQ;GACc,CAAA,EAE1B,QAAQ,gBAAgB,KAAK,QAAQ,KACjB;;;AAI3B,MAAM,WAAW,kBAAA,QAAO,GAA0D;IAC9EC,qBAAW;;kBAEGF,uBAAAA,QAAQ,GAAG;mBACVA,uBAAAA,QAAQ,GAAG;;;;KAIzBG,wBAAAA,mBAAmBC,wBAAAA,cAAc;;;;;IAKlCC,qBAAAA,mBAAmB;;KAElB,EAAE,qBAAqB;AACxB,SAAQ,gBAAR;EACE,KAAK,QACH,QAAO,kBAAA,GAAG;;;;EAKZ,KAAK,MACH,QAAO,kBAAA,GAAG;;;;;;EAOd;;AAiBJ,MAAa,aAAA,GAAA,MAAA,YAAuD,SAAS,UAC3E,OACA,cACA;CACA,MAAM,EAAE,WAAWC,iBAAAA,2CAAW;CAC9B,MAAM,QAAQC,0CAAkB;EAC9B,GAAG;EACH;EACA;EACD,CAAC;CAEF,MAAM,OAAA,GAAA,MAAA,SAA8B;CAEpC,MAAM,EAAE,eAAeC,0CAAa,OAAO,OAAO,IAAI;AAEtD,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;EACE,GAAI;EACJ,GAAK,MAAM,kBAAkB,EAAE;EAE/B,KAAKC,kBAAAA,0CAA0B,KAAK,aAAa;EACjD,SAAS,MAAM;EACf,UAAU,MAAM;EAChB,cAAY,MAAM;EAClB,OAAO,MAAM,QAAQ;EAErB,gBAAgB,MAAM;EACtB,UAAU,MAAM;YAEf,MAAM,SAAS,KAAK,SAAS,MAC5B,iBAAA,GAAA,kBAAA,KAAC,aAAD;GAA8B;GAAgB;GAAS,EAArC,EAAqC,CACvD;EACO,CAAA;EAEb;;;ACxMF,MAAMC,gBAAc,EAAE,kBAA2D;CAC/E,MAAM,iBAAA,GAAA,MAAA,QAA0C,KAAK;CACrD,MAAM,EAAE,iBAAA,GAAA,WAAA,WACN,EACE,eAAe;AACb,MAAI,YAAY,QAEZ,aAAY,QAAQ,cAAc,kCAAgC,CAClE,OAAO;IAGd,EACD,cACD;AAED,QAAO,iBAAA,GAAA,kBAAA,KAAC,UAAD;EAAQ,GAAI;EAAa,KAAK;EAAe,cAAW;EAAkB,CAAA;;AAGnF,MAAa,cAAc,UAA2B;CACpD,MAAM,SAAA,GAAA,cAAA,oBAA2B,MAAM;CACvC,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CACxC,MAAM,YAAA,GAAA,MAAA,QAAkC,KAAK;CAC7C,MAAM,EAAE,YAAY,YAAY,mBAAA,GAAA,WAAA,eAAgC,OAAO,OAAO,IAAI;CAClF,MAAM,eAAA,GAAA,MAAA,QAAqC,KAAK;CAChD,MAAM,CAAC,WAAW,iBAAA,GAAA,MAAA,UAAyB,MAAM;CAEjD,MAAM,EAAE,sBAAA,GAAA,WAAA,gBAAoC;EAC1C,qBAAqB;AACnB,OAAI,CAAC,MAAM,UAAU,CAAC,UACpB,OAAM,QAAQ,KAAK;;EAGvB,eAAe,MAAM;AAEnB,OAAI,EAAE,iBAAiB,CAAC,aAAa,SAAS,SAAS,EAAE,cAAc,IAAI,MAAM,OAC/E,OAAM,QAAQ,MAAM;;EAGzB,CAAC;CAEF,MAAM,sBAAsB,MAAa;EACvC,MAAM,SAAS,EAAE;AAEjB,MAAI,IAAI,SAAS,SAAS,OAAO,CAC/B;AAEF,MAAI,MAAM,OACR,OAAM,QAAQ,MAAM;;CAIxB,MAAM,iBAAA,GAAA,MAAA,cACH,UAA+B;AAC9B,MAAI,MAAM,QAAQ,WAAW,CAAC,MAAM,QAAQ;AAC1C,SAAM,gBAAgB;AACtB,SAAM,QAAQ,KAAK;;IAGvB,CAAC,MAAM,CACR;AAED,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,KAAK;GAAE,SAAS;GAAQ,eAAe;GAAU;YACpD,iBAAA,GAAA,kBAAA,MAACC,gBAAAA,iBAAD;GACE,MAAM,MAAM;GACZ,OAAO;GACP,cAAc;IACZ,OAAO,EAAE,QAAQ,MAAM,iBAAiBC,mBAAAA,UAAU,gBAAgBA,mBAAAA,UAAU,UAAU;IACtF,OAAO;IACP,cAAc;IACd,mBAAmB;IACnB,uBAAuB;AACrB,WAAM,QAAQ,MAAM;;IAEtB,mBAAmB,MAAa;AAE9B,OAAE,gBAAgB;AAClB,kBAAa,KAAK;AAGlB,SAAI,SAAS,SAAS;MACpB,MAAM,uBAAuB,SAAS,QAAQ,cAAc,mBAAiB;AAC7E,UAAI,gCAAgC,YAClC,sBAAqB,OAAO;;AAKhC,iCAA4B,aAAa,MAAM,CAAC;;IAElD,WAAW;IACZ;aA5BH,CA8BE,iBAAA,GAAA,kBAAA,KAACD,gBAAAA,gBAAQ,SAAT;IAAiB,SAAA;cACf,iBAAA,GAAA,kBAAA,MAAC,OAAD;KACE,IAAA,GAAA,WAAA,YAAe,YAAY,iBAAiB;KACvC;KACL,KAAK;MAAE,SAAS;MAAQ,UAAU;MAAY;eAHhD,CAKE,iBAAA,GAAA,kBAAA,KAAC,WAAD;MACE,KAAK;MACL,IAAI,MAAM;MACV,gBAAgB,MAAM;MACtB,UAAU,MAAM;MAChB,MAAM,MAAM;MACZ,IAAA,GAAA,WAAA,YAAe,YAAY,EAAE,WAAW,eAAe,CAAC;MACxD,OAAO,WAAW,SAAS,KAAA;MAC3B,CAAA,EACF,iBAAA,GAAA,kBAAA,KAACE,WAAAA,gBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACH,cAAD,EAAyB,aAAe,CAAA,EACzB,CAAA,CACb;;IACU,CAAA,EAClB,iBAAA,GAAA,kBAAA,KAAC,UAAD;IACQ,GAAG;IAAe,WAAW,KAAA;IACtB;IACb,IAAG;IACH,CAAA,CACM;;EACN,CAAA;;;;;;;ACxIV,IAAM,aAAN,cAAyB,MAAM;;;;AAK/B,IAAa,uBAAb,cAA0C,WAAW;CACnD,YAAY,QAAQ;AAClB,QAAM,qBAAqB,OAAO,WAAW,GAAG;;;;;;AAOpD,IAAa,uBAAb,cAA0C,WAAW;CACnD,YAAY,QAAQ;AAClB,QAAM,qBAAqB,OAAO,WAAW,GAAG;;;;;;AAOpD,IAAa,uBAAb,cAA0C,WAAW;CACnD,YAAY,QAAQ;AAClB,QAAM,qBAAqB,OAAO,WAAW,GAAG;;;;;;AAOpD,IAAa,gCAAb,cAAmD,WAAW;;;;AAK9D,IAAa,mBAAb,cAAsC,WAAW;CAC/C,YAAY,MAAM;AAChB,QAAM,gBAAgB,OAAO;;;;;;AAOjC,IAAa,uBAAb,cAA0C,WAAW;;;;AAKrD,IAAa,sBAAb,cAAyC,WAAW;CAClD,cAAc;AACZ,QAAM,4BAA4B;;;;;;;;ACtDtC,MAAM,IAAI,WACR,IAAI,SACJ,IAAI;AAEN,MAAa,aAAa;CACxB,MAAM;CACN,OAAO;CACP,KAAK;CACN;AAED,MAAa,WAAW;CACtB,MAAM;CACN,OAAO;CACP,KAAK;CACN;AAED,MAAa,wBAAwB;CACnC,MAAM;CACN,OAAO;CACP,KAAK;CACL,SAAS;CACV;AAED,MAAa,YAAY;CACvB,MAAM;CACN,OAAO;CACP,KAAK;CACN;AAED,MAAa,YAAY;CACvB,MAAM;CACN,OAAO;CACP,KAAK;CACL,SAAS;CACV;AAED,MAAa,cAAc;CACzB,MAAM;CACN,QAAQ;CACT;AAED,MAAa,oBAAoB;CAC/B,MAAM;CACN,QAAQ;CACR,QAAQ;CACT;AAED,MAAa,yBAAyB;CACpC,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,cAAc;CACf;AAED,MAAa,wBAAwB;CACnC,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,cAAc;CACf;AAED,MAAa,iBAAiB;CAC5B,MAAM;CACN,QAAQ;CACR,WAAW;CACZ;AAED,MAAa,uBAAuB;CAClC,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACZ;AAED,MAAa,4BAA4B;CACvC,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,cAAc;CACf;AAED,MAAa,2BAA2B;CACtC,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,cAAc;CACf;AAED,MAAa,iBAAiB;CAC5B,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACT;AAED,MAAa,8BAA8B;CACzC,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACT;AAED,MAAa,eAAe;CAC1B,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACT;AAED,MAAa,4BAA4B;CACvC,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACT;AAED,MAAa,4BAA4B;CACvC,MAAM;CACN,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM;CACN,QAAQ;CACT;AAED,MAAa,gBAAgB;CAC3B,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,cAAc;CACf;AAED,MAAa,6BAA6B;CACxC,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,cAAc;CACf;AAED,MAAa,gBAAgB;CAC3B,MAAM;CACN,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM;CACN,QAAQ;CACR,cAAc;CACf;AAED,MAAa,6BAA6B;CACxC,MAAM;CACN,OAAO;CACP,KAAK;CACL,SAAS;CACT,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,cAAc;CACf;;;;;;AC1KD,IAAqB,OAArB,MAA0B;;;;;;CAMxB,IAAI,OAAO;AACT,QAAM,IAAI,qBAAqB;;;;;;;CAQjC,IAAI,OAAO;AACT,QAAM,IAAI,qBAAqB;;CAGjC,IAAI,WAAW;AACb,SAAO,KAAK;;;;;;;CAQd,IAAI,cAAc;AAChB,QAAM,IAAI,qBAAqB;;;;;;;;;;;CAYjC,WAAW,IAAI,MAAM;AACnB,QAAM,IAAI,qBAAqB;;;;;;;;;;CAWjC,aAAa,IAAI,QAAQ;AACvB,QAAM,IAAI,qBAAqB;;;;;;;;CASjC,OAAO,IAAI;AACT,QAAM,IAAI,qBAAqB;;;;;;;;CASjC,OAAO,WAAW;AAChB,QAAM,IAAI,qBAAqB;;;;;;;CAQjC,IAAI,UAAU;AACZ,QAAM,IAAI,qBAAqB;;;;;ACrFnC,IAAII,cAAY;;;;;AAMhB,IAAqB,aAArB,MAAqB,mBAAmB,KAAK;;;;;CAK3C,WAAW,WAAW;AACpB,MAAIA,gBAAc,KAChB,eAAY,IAAI,YAAY;AAE9B,SAAOA;;;CAIT,IAAI,OAAO;AACT,SAAO;;;CAIT,IAAI,OAAO;AACT,SAAO,IAAI,KAAK,gBAAgB,CAAC,iBAAiB,CAAC;;;CAIrD,IAAI,cAAc;AAChB,SAAO;;;CAIT,WAAW,IAAI,EAAE,QAAQ,UAAU;AACjC,SAAO,cAAc,IAAI,QAAQ,OAAO;;;CAI1C,aAAa,IAAI,QAAQ;AACvB,SAAO,aAAa,KAAK,OAAO,GAAG,EAAE,OAAO;;;CAI9C,OAAO,IAAI;AACT,SAAO,CAAC,IAAI,KAAK,GAAG,CAAC,mBAAmB;;;CAI1C,OAAO,WAAW;AAChB,SAAO,UAAU,SAAS;;;CAI5B,IAAI,UAAU;AACZ,SAAO;;;;;ACvDX,IAAI,WAAW,EAAE;AACjB,SAAS,QAAQ,MAAM;AACrB,KAAI,CAAC,SAAS,MACZ,UAAS,QAAQ,IAAI,KAAK,eAAe,SAAS;EAChD,QAAQ;EACR,UAAU;EACV,MAAM;EACN,OAAO;EACP,KAAK;EACL,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,KAAK;EACN,CAAC;AAEJ,QAAO,SAAS;;AAGlB,MAAM,YAAY;CAChB,MAAM;CACN,OAAO;CACP,KAAK;CACL,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACT;AAED,SAAS,YAAY,KAAK,MAAM;CAC9B,MAAM,YAAY,IAAI,OAAO,KAAK,CAAC,QAAQ,WAAW,GAAG,EAEvD,GAAG,QAAQ,MAAM,OAAO,SAAS,OAAO,SAAS,WADxC,kDAAkD,KAAK,UACE;AACpE,QAAO;EAAC;EAAO;EAAQ;EAAM;EAAS;EAAO;EAAS;EAAQ;;AAGhE,SAAS,YAAY,KAAK,MAAM;CAC9B,MAAM,YAAY,IAAI,cAAc,KAAK;CACzC,MAAM,SAAS,EAAE;AACjB,MAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EACzC,MAAM,EAAE,MAAM,UAAU,UAAU;EAClC,MAAM,MAAM,UAAU;AAEtB,MAAI,SAAS,MACX,QAAO,OAAO;WACL,CAAC,YAAY,IAAI,CAC1B,QAAO,OAAO,SAAS,OAAO,GAAG;;AAGrC,QAAO;;AAGT,IAAI,gBAAgB,EAAE;;;;;AAKtB,IAAqB,WAArB,MAAqB,iBAAiB,KAAK;;;;;CAKzC,OAAO,OAAO,MAAM;AAClB,MAAI,CAAC,cAAc,MACjB,eAAc,QAAQ,IAAI,SAAS,KAAK;AAE1C,SAAO,cAAc;;;;;;CAOvB,OAAO,aAAa;AAClB,kBAAgB,EAAE;AAClB,aAAW,EAAE;;;;;;;;;;CAWf,OAAO,iBAAiB,GAAG;AACzB,SAAO,KAAK,YAAY,EAAE;;;;;;;;;;CAW5B,OAAO,YAAY,MAAM;AACvB,MAAI,CAAC,KACH,QAAO;AAET,MAAI;AACF,OAAI,KAAK,eAAe,SAAS,EAAE,UAAU,MAAM,CAAC,CAAC,QAAQ;AAC7D,UAAO;WACA,GAAG;AACV,UAAO;;;CAIX,YAAY,MAAM;AAChB,SAAO;;AAEP,OAAK,WAAW;;AAEhB,OAAK,QAAQ,SAAS,YAAY,KAAK;;;CAIzC,IAAI,OAAO;AACT,SAAO;;;CAIT,IAAI,OAAO;AACT,SAAO,KAAK;;;CAId,IAAI,cAAc;AAChB,SAAO;;;CAIT,WAAW,IAAI,EAAE,QAAQ,UAAU;AACjC,SAAO,cAAc,IAAI,QAAQ,QAAQ,KAAK,KAAK;;;CAIrD,aAAa,IAAI,QAAQ;AACvB,SAAO,aAAa,KAAK,OAAO,GAAG,EAAE,OAAO;;;CAI9C,OAAO,IAAI;EACT,MAAM,OAAO,IAAI,KAAK,GAAG;AAEzB,MAAI,MAAM,KAAK,CAAE,QAAO;EAExB,MAAM,MAAM,QAAQ,KAAK,KAAK;EAC9B,IAAI,CAAC,MAAM,OAAO,KAAK,QAAQ,MAAM,QAAQ,UAAU,IAAI,gBACvD,YAAY,KAAK,KAAK,GACtB,YAAY,KAAK,KAAK;AAE1B,MAAI,WAAW,KACb,QAAO,CAAC,KAAK,IAAI,KAAK,GAAG;EAM3B,MAAM,QAAQ,aAAa;GACzB;GACA;GACA;GACA,MANmB,SAAS,KAAK,IAAI;GAOrC;GACA;GACA,aAAa;GACd,CAAC;EAEF,IAAI,OAAO,CAAC;EACZ,MAAM,OAAO,OAAO;AACpB,UAAQ,QAAQ,IAAI,OAAO,MAAO;AAClC,UAAQ,QAAQ,SAAS,KAAK;;;CAIhC,OAAO,WAAW;AAChB,SAAO,UAAU,SAAS,UAAU,UAAU,SAAS,KAAK;;;CAI9D,IAAI,UAAU;AACZ,SAAO,KAAK;;;;;AClLhB,IAAI,cAAc,EAAE;AACpB,SAAS,YAAY,WAAW,OAAO,EAAE,EAAE;CACzC,MAAM,MAAM,KAAK,UAAU,CAAC,WAAW,KAAK,CAAC;CAC7C,IAAI,MAAM,YAAY;AACtB,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,KAAK,WAAW,WAAW,KAAK;AAC1C,cAAY,OAAO;;AAErB,QAAO;;AAGT,IAAI,cAAc,EAAE;AACpB,SAAS,aAAa,WAAW,OAAO,EAAE,EAAE;CAC1C,MAAM,MAAM,KAAK,UAAU,CAAC,WAAW,KAAK,CAAC;CAC7C,IAAI,MAAM,YAAY;AACtB,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,KAAK,eAAe,WAAW,KAAK;AAC9C,cAAY,OAAO;;AAErB,QAAO;;AAGT,IAAI,eAAe,EAAE;AACrB,SAAS,aAAa,WAAW,OAAO,EAAE,EAAE;CAC1C,MAAM,MAAM,KAAK,UAAU,CAAC,WAAW,KAAK,CAAC;CAC7C,IAAI,MAAM,aAAa;AACvB,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,KAAK,aAAa,WAAW,KAAK;AAC5C,eAAa,OAAO;;AAEtB,QAAO;;AAGT,IAAI,eAAe,EAAE;AACrB,SAAS,aAAa,WAAW,OAAO,EAAE,EAAE;CAC1C,MAAM,EAAE,MAAM,GAAG,iBAAiB;CAClC,MAAM,MAAM,KAAK,UAAU,CAAC,WAAW,aAAa,CAAC;CACrD,IAAI,MAAM,aAAa;AACvB,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,KAAK,mBAAmB,WAAW,KAAK;AAClD,eAAa,OAAO;;AAEtB,QAAO;;AAGT,IAAI,iBAAiB;AACrB,SAAS,eAAe;AACtB,KAAI,eACF,QAAO;MACF;AACL,mBAAiB,IAAI,KAAK,gBAAgB,CAAC,iBAAiB,CAAC;AAC7D,SAAO;;;AAIX,IAAI,gBAAgB,EAAE;AACtB,SAAS,kBAAkB,WAAW;CACpC,IAAI,OAAO,cAAc;AACzB,KAAI,CAAC,MAAM;EACT,MAAM,SAAS,IAAI,KAAK,OAAO,UAAU;AAEzC,SAAO,iBAAiB,SAAS,OAAO,aAAa,GAAG,OAAO;AAC/D,gBAAc,aAAa;;AAE7B,QAAO;;AAGT,SAAS,kBAAkB,WAAW;CAYpC,MAAM,SAAS,UAAU,QAAQ,MAAM;AACvC,KAAI,WAAW,GACb,aAAY,UAAU,UAAU,GAAG,OAAO;CAG5C,MAAM,SAAS,UAAU,QAAQ,MAAM;AACvC,KAAI,WAAW,GACb,QAAO,CAAC,UAAU;MACb;EACL,IAAI;EACJ,IAAI;AACJ,MAAI;AACF,aAAU,aAAa,UAAU,CAAC,iBAAiB;AACnD,iBAAc;WACP,GAAG;GACV,MAAM,UAAU,UAAU,UAAU,GAAG,OAAO;AAC9C,aAAU,aAAa,QAAQ,CAAC,iBAAiB;AACjD,iBAAc;;EAGhB,MAAM,EAAE,iBAAiB,aAAa;AACtC,SAAO;GAAC;GAAa;GAAiB;GAAS;;;AAInD,SAAS,iBAAiB,WAAW,iBAAiB,gBAAgB;AACpE,KAAI,kBAAkB,iBAAiB;AACrC,MAAI,CAAC,UAAU,SAAS,MAAM,CAC5B,cAAa;AAGf,MAAI,eACF,cAAa,OAAO;AAGtB,MAAI,gBACF,cAAa,OAAO;AAEtB,SAAO;OAEP,QAAO;;AAIX,SAAS,UAAU,GAAG;CACpB,MAAM,KAAK,EAAE;AACb,MAAK,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK;EAC5B,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,EAAE;AACnC,KAAG,KAAK,EAAE,GAAG,CAAC;;AAEhB,QAAO;;AAGT,SAAS,YAAY,GAAG;CACtB,MAAM,KAAK,EAAE;AACb,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,KAAK,EAAE;AACzC,KAAG,KAAK,EAAE,GAAG,CAAC;;AAEhB,QAAO;;AAGT,SAAS,UAAU,KAAK,QAAQ,WAAW,QAAQ;CACjD,MAAM,OAAO,IAAI,aAAa;AAE9B,KAAI,SAAS,QACX,QAAO;UACE,SAAS,KAClB,QAAO,UAAU,OAAO;KAExB,QAAO,OAAO,OAAO;;AAIzB,SAAS,oBAAoB,KAAK;AAChC,KAAI,IAAI,mBAAmB,IAAI,oBAAoB,OACjD,QAAO;KAEP,QACE,IAAI,oBAAoB,UACxB,CAAC,IAAI,UACL,IAAI,OAAO,WAAW,KAAK,IAC3B,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,iBAAiB,CAAC,oBAAoB;;;;;AAS9E,IAAM,sBAAN,MAA0B;CACxB,YAAY,MAAM,aAAa,MAAM;AACnC,OAAK,QAAQ,KAAK,SAAS;AAC3B,OAAK,QAAQ,KAAK,SAAS;EAE3B,MAAM,EAAE,OAAO,OAAO,GAAG,cAAc;AAEvC,MAAI,CAAC,eAAe,OAAO,KAAK,UAAU,CAAC,SAAS,GAAG;GACrD,MAAM,WAAW;IAAE,aAAa;IAAO,GAAG;IAAM;AAChD,OAAI,KAAK,QAAQ,EAAG,UAAS,uBAAuB,KAAK;AACzD,QAAK,MAAM,aAAa,MAAM,SAAS;;;CAI3C,OAAO,GAAG;AACR,MAAI,KAAK,KAAK;GACZ,MAAM,QAAQ,KAAK,QAAQ,KAAK,MAAM,EAAE,GAAG;AAC3C,UAAO,KAAK,IAAI,OAAO,MAAM;QAI7B,QAAO,SADO,KAAK,QAAQ,KAAK,MAAM,EAAE,GAAG,QAAQ,GAAG,EAAE,EACjC,KAAK,MAAM;;;;;;AASxC,IAAM,oBAAN,MAAwB;CACtB,YAAY,IAAI,MAAM,MAAM;AAC1B,OAAK,OAAO;AACZ,OAAK,eAAe,KAAA;EAEpB,IAAI,IAAI,KAAA;AACR,MAAI,KAAK,KAAK,SAEZ,MAAK,KAAK;WACD,GAAG,KAAK,SAAS,SAAS;GAOnC,MAAM,YAAY,MAAM,GAAG,SAAS;GACpC,MAAM,UAAU,aAAa,IAAI,WAAW,cAAc,UAAU;AACpE,OAAI,GAAG,WAAW,KAAK,SAAS,OAAO,QAAQ,CAAC,OAAO;AACrD,QAAI;AACJ,SAAK,KAAK;UACL;AAGL,QAAI;AACJ,SAAK,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,QAAQ,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;AAC/E,SAAK,eAAe,GAAG;;aAEhB,GAAG,KAAK,SAAS,SAC1B,MAAK,KAAK;WACD,GAAG,KAAK,SAAS,QAAQ;AAClC,QAAK,KAAK;AACV,OAAI,GAAG,KAAK;SACP;AAGL,OAAI;AACJ,QAAK,KAAK,GAAG,QAAQ,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;AACxD,QAAK,eAAe,GAAG;;EAGzB,MAAM,WAAW,EAAE,GAAG,KAAK,MAAM;AACjC,WAAS,WAAW,SAAS,YAAY;AACzC,OAAK,MAAM,aAAa,MAAM,SAAS;;CAGzC,SAAS;AACP,MAAI,KAAK,aAGP,QAAO,KAAK,eAAe,CACxB,KAAK,EAAE,YAAY,MAAM,CACzB,KAAK,GAAG;AAEb,SAAO,KAAK,IAAI,OAAO,KAAK,GAAG,UAAU,CAAC;;CAG5C,gBAAgB;EACd,MAAM,QAAQ,KAAK,IAAI,cAAc,KAAK,GAAG,UAAU,CAAC;AACxD,MAAI,KAAK,aACP,QAAO,MAAM,KAAK,SAAS;AACzB,OAAI,KAAK,SAAS,gBAAgB;IAChC,MAAM,aAAa,KAAK,aAAa,WAAW,KAAK,GAAG,IAAI;KAC1D,QAAQ,KAAK,GAAG;KAChB,QAAQ,KAAK,KAAK;KACnB,CAAC;AACF,WAAO;KACL,GAAG;KACH,OAAO;KACR;SAED,QAAO;IAET;AAEJ,SAAO;;CAGT,kBAAkB;AAChB,SAAO,KAAK,IAAI,iBAAiB;;;;;;AAOrC,IAAM,mBAAN,MAAuB;CACrB,YAAY,MAAM,WAAW,MAAM;AACjC,OAAK,OAAO;GAAE,OAAO;GAAQ,GAAG;GAAM;AACtC,MAAI,CAAC,aAAa,aAAa,CAC7B,MAAK,MAAM,aAAa,MAAM,KAAK;;CAIvC,OAAO,OAAO,MAAM;AAClB,MAAI,KAAK,IACP,QAAO,KAAK,IAAI,OAAO,OAAO,KAAK;MAEnC,QAAOC,mBAA2B,MAAM,OAAO,KAAK,KAAK,SAAS,KAAK,KAAK,UAAU,OAAO;;CAIjG,cAAc,OAAO,MAAM;AACzB,MAAI,KAAK,IACP,QAAO,KAAK,IAAI,cAAc,OAAO,KAAK;MAE1C,QAAO,EAAE;;;AAKf,MAAM,uBAAuB;CAC3B,UAAU;CACV,aAAa;CACb,SAAS,CAAC,GAAG,EAAE;CAChB;;;;AAMD,IAAqB,SAArB,MAAqB,OAAO;CAC1B,OAAO,SAAS,MAAM;AACpB,SAAO,OAAO,OACZ,KAAK,QACL,KAAK,iBACL,KAAK,gBACL,KAAK,cACL,KAAK,YACN;;CAGH,OAAO,OAAO,QAAQ,iBAAiB,gBAAgB,cAAc,cAAc,OAAO;EACxF,MAAM,kBAAkB,UAAU,SAAS;AAM3C,SAAO,IAAI,OAJK,oBAAoB,cAAc,UAAU,cAAc,GACjD,mBAAmB,SAAS,wBAC7B,kBAAkB,SAAS,uBAC7B,qBAAqB,aAAa,IAAI,SAAS,qBACQ,gBAAgB;;CAG/F,OAAO,aAAa;AAClB,mBAAiB;AACjB,gBAAc,EAAE;AAChB,iBAAe,EAAE;AACjB,iBAAe,EAAE;;CAGnB,OAAO,WAAW,EAAE,QAAQ,iBAAiB,gBAAgB,iBAAiB,EAAE,EAAE;AAChF,SAAO,OAAO,OAAO,QAAQ,iBAAiB,gBAAgB,aAAa;;CAG7E,YAAY,QAAQ,WAAW,gBAAgB,cAAc,iBAAiB;EAC5E,MAAM,CAAC,cAAc,uBAAuB,wBAAwB,kBAAkB,OAAO;AAE7F,OAAK,SAAS;AACd,OAAK,kBAAkB,aAAa,yBAAyB;AAC7D,OAAK,iBAAiB,kBAAkB,wBAAwB;AAChE,OAAK,eAAe;AACpB,OAAK,OAAO,iBAAiB,KAAK,QAAQ,KAAK,iBAAiB,KAAK,eAAe;AAEpF,OAAK,gBAAgB;GAAE,QAAQ,EAAE;GAAE,YAAY,EAAE;GAAE;AACnD,OAAK,cAAc;GAAE,QAAQ,EAAE;GAAE,YAAY,EAAE;GAAE;AACjD,OAAK,gBAAgB;AACrB,OAAK,WAAW,EAAE;AAElB,OAAK,kBAAkB;AACvB,OAAK,oBAAoB;;CAG3B,IAAI,cAAc;AAChB,MAAI,KAAK,qBAAqB,KAC5B,MAAK,oBAAoB,oBAAoB,KAAK;AAGpD,SAAO,KAAK;;CAGd,cAAc;EACZ,MAAM,eAAe,KAAK,WAAW;EACrC,MAAM,kBACH,KAAK,oBAAoB,QAAQ,KAAK,oBAAoB,YAC1D,KAAK,mBAAmB,QAAQ,KAAK,mBAAmB;AAC3D,SAAO,gBAAgB,iBAAiB,OAAO;;CAGjD,MAAM,MAAM;AACV,MAAI,CAAC,QAAQ,OAAO,oBAAoB,KAAK,CAAC,WAAW,EACvD,QAAO;MAEP,QAAO,OAAO,OACZ,KAAK,UAAU,KAAK,iBACpB,KAAK,mBAAmB,KAAK,iBAC7B,KAAK,kBAAkB,KAAK,gBAC5B,qBAAqB,KAAK,aAAa,IAAI,KAAK,cAChD,KAAK,eAAe,MACrB;;CAIL,cAAc,OAAO,EAAE,EAAE;AACvB,SAAO,KAAK,MAAM;GAAE,GAAG;GAAM,aAAa;GAAM,CAAC;;CAGnD,kBAAkB,OAAO,EAAE,EAAE;AAC3B,SAAO,KAAK,MAAM;GAAE,GAAG;GAAM,aAAa;GAAO,CAAC;;CAGpD,OAAO,QAAQ,SAAS,OAAO;AAC7B,SAAO,UAAU,MAAM,QAAQC,cAAsB;GACnD,MAAM,OAAO,SAAS;IAAE,OAAO;IAAQ,KAAK;IAAW,GAAG,EAAE,OAAO,QAAQ,EACzE,YAAY,SAAS,WAAW;AAClC,OAAI,CAAC,KAAK,YAAY,WAAW,QAC/B,MAAK,YAAY,WAAW,UAAU,WAAW,OAAO,KAAK,QAAQ,IAAI,MAAM,QAAQ,CAAC;AAE1F,UAAO,KAAK,YAAY,WAAW;IACnC;;CAGJ,SAAS,QAAQ,SAAS,OAAO;AAC/B,SAAO,UAAU,MAAM,QAAQC,gBAAwB;GACrD,MAAM,OAAO,SACP;IAAE,SAAS;IAAQ,MAAM;IAAW,OAAO;IAAQ,KAAK;IAAW,GACnE,EAAE,SAAS,QAAQ,EACvB,YAAY,SAAS,WAAW;AAClC,OAAI,CAAC,KAAK,cAAc,WAAW,QACjC,MAAK,cAAc,WAAW,UAAU,aAAa,OACnD,KAAK,QAAQ,IAAI,MAAM,UAAU,CAClC;AAEH,UAAO,KAAK,cAAc,WAAW;IACrC;;CAGJ,YAAY;AACV,SAAO,UACL,MACA,KAAA,SACMC,iBACA;AAGJ,OAAI,CAAC,KAAK,eAAe;IACvB,MAAM,OAAO;KAAE,MAAM;KAAW,WAAW;KAAO;AAClD,SAAK,gBAAgB,CAAC,SAAS,IAAI,MAAM,IAAI,IAAI,EAAE,EAAE,SAAS,IAAI,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,KAClF,OAAO,KAAK,QAAQ,IAAI,MAAM,YAAY,CAC5C;;AAGH,UAAO,KAAK;IAEf;;CAGH,KAAK,QAAQ;AACX,SAAO,UAAU,MAAM,QAAQC,YAAoB;GACjD,MAAM,OAAO,EAAE,KAAK,QAAQ;AAI5B,OAAI,CAAC,KAAK,SAAS,QACjB,MAAK,SAAS,UAAU,CAAC,SAAS,IAAI,KAAK,GAAG,EAAE,EAAE,SAAS,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,OAC/E,KAAK,QAAQ,IAAI,MAAM,MAAM,CAC9B;AAGH,UAAO,KAAK,SAAS;IACrB;;CAGJ,QAAQ,IAAI,UAAU,OAAO;EAC3B,MAEE,WAFS,KAAK,YAAY,IAAI,SAClB,CAAC,eACK,CAAC,MAAM,MAAM,EAAE,KAAK,aAAa,KAAK,MAAM;AAChE,SAAO,WAAW,SAAS,QAAQ;;CAGrC,gBAAgB,OAAO,EAAE,EAAE;AAGzB,SAAO,IAAI,oBAAoB,KAAK,MAAM,KAAK,eAAe,KAAK,aAAa,KAAK;;CAGvF,YAAY,IAAI,WAAW,EAAE,EAAE;AAC7B,SAAO,IAAI,kBAAkB,IAAI,KAAK,MAAM,SAAS;;CAGvD,aAAa,OAAO,EAAE,EAAE;AACtB,SAAO,IAAI,iBAAiB,KAAK,MAAM,KAAK,WAAW,EAAE,KAAK;;CAGhE,cAAc,OAAO,EAAE,EAAE;AACvB,SAAO,YAAY,KAAK,MAAM,KAAK;;CAGrC,YAAY;AACV,SACE,KAAK,WAAW,QAChB,KAAK,OAAO,aAAa,KAAK,WAC9B,IAAI,KAAK,eAAe,KAAK,KAAK,CAAC,iBAAiB,CAAC,OAAO,WAAW,QAAQ;;CAInF,kBAAkB;AAChB,MAAI,KAAK,aACP,QAAO,KAAK;WACH,CAAC,mBAAmB,CAC7B,QAAO;MAEP,QAAO,kBAAkB,KAAK,OAAO;;CAIzC,iBAAiB;AACf,SAAO,KAAK,iBAAiB,CAAC;;CAGhC,wBAAwB;AACtB,SAAO,KAAK,iBAAiB,CAAC;;CAGhC,iBAAiB;AACf,SAAO,KAAK,iBAAiB,CAAC;;CAGhC,OAAO,OAAO;AACZ,SACE,KAAK,WAAW,MAAM,UACtB,KAAK,oBAAoB,MAAM,mBAC/B,KAAK,mBAAmB,MAAM;;;;;ACvhBpC,IAAI,YAAY;;;;;AAMhB,IAAqB,kBAArB,MAAqB,wBAAwB,KAAK;;;;;CAKhD,WAAW,cAAc;AACvB,MAAI,cAAc,KAChB,aAAY,IAAI,gBAAgB,EAAE;AAEpC,SAAO;;;;;;;CAQT,OAAO,SAAS,QAAQ;AACtB,SAAO,WAAW,IAAI,gBAAgB,cAAc,IAAI,gBAAgB,OAAO;;;;;;;;;;CAWjF,OAAO,eAAe,GAAG;AACvB,MAAI,GAAG;GACL,MAAM,IAAI,EAAE,MAAM,wCAAwC;AAC1D,OAAI,EACF,QAAO,IAAI,gBAAgB,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC;;AAGxD,SAAO;;CAGT,YAAY,QAAQ;AAClB,SAAO;;AAEP,OAAK,QAAQ;;;CAIf,IAAI,OAAO;AACT,SAAO;;;CAIT,IAAI,OAAO;AACT,SAAO,KAAK,UAAU,IAAI,QAAQ,MAAM,aAAa,KAAK,OAAO,SAAS;;CAG5E,IAAI,WAAW;AACb,MAAI,KAAK,UAAU,EACjB,QAAO;MAEP,QAAO,UAAU,aAAa,CAAC,KAAK,OAAO,SAAS;;;CAKxD,aAAa;AACX,SAAO,KAAK;;;CAId,aAAa,IAAI,QAAQ;AACvB,SAAO,aAAa,KAAK,OAAO,OAAO;;;CAIzC,IAAI,cAAc;AAChB,SAAO;;;CAIT,SAAS;AACP,SAAO,KAAK;;;CAId,OAAO,WAAW;AAChB,SAAO,UAAU,SAAS,WAAW,UAAU,UAAU,KAAK;;;CAIhE,IAAI,UAAU;AACZ,SAAO;;;;;;;;;AC7FX,IAAqB,cAArB,cAAyC,KAAK;CAC5C,YAAY,UAAU;AACpB,SAAO;;AAEP,OAAK,WAAW;;;CAIlB,IAAI,OAAO;AACT,SAAO;;;CAIT,IAAI,OAAO;AACT,SAAO,KAAK;;;CAId,IAAI,cAAc;AAChB,SAAO;;;CAIT,aAAa;AACX,SAAO;;;CAIT,eAAe;AACb,SAAO;;;CAIT,SAAS;AACP,SAAO;;;CAIT,SAAS;AACP,SAAO;;;CAIT,IAAI,UAAU;AACZ,SAAO;;;;;;;;ACtCX,SAAgB,cAAc,OAAO,aAAa;AAEhD,KAAI,YAAY,MAAM,IAAI,UAAU,KAClC,QAAO;UACE,iBAAiB,KAC1B,QAAO;UACE,SAAS,MAAM,EAAE;EAC1B,MAAM,UAAU,MAAM,aAAa;AACnC,MAAI,YAAY,UAAW,QAAO;WACzB,YAAY,WAAW,YAAY,SAAU,QAAO,WAAW;WAC/D,YAAY,SAAS,YAAY,MAAO,QAAO,gBAAgB;MACnE,QAAO,gBAAgB,eAAe,QAAQ,IAAI,SAAS,OAAO,MAAM;YACpE,SAAS,MAAM,CACxB,QAAO,gBAAgB,SAAS,MAAM;UAC7B,OAAO,UAAU,YAAY,YAAY,SAAS,OAAO,MAAM,WAAW,WAGnF,QAAO;KAEP,QAAO,IAAI,YAAY,MAAM;;;;ACxBjC,IAAI,YAAY,KAAK,KAAK,EACxB,cAAc,UACd,gBAAgB,MAChB,yBAAyB,MACzB,wBAAwB,MACxB,qBAAqB,IACrB,gBACA,sBAAsB;;;;AAKxB,IAAqB,WAArB,MAA8B;;;;;CAK5B,WAAW,MAAM;AACf,SAAO;;;;;;;;;CAUT,WAAW,IAAI,GAAG;AAChB,QAAM;;;;;;;CAQR,WAAW,YAAY,MAAM;AAC3B,gBAAc;;;;;;;CAQhB,WAAW,cAAc;AACvB,SAAO,cAAc,aAAa,WAAW,SAAS;;;;;;CAOxD,WAAW,gBAAgB;AACzB,SAAO;;;;;;CAOT,WAAW,cAAc,QAAQ;AAC/B,kBAAgB;;;;;;CAOlB,WAAW,yBAAyB;AAClC,SAAO;;;;;;CAOT,WAAW,uBAAuB,iBAAiB;AACjD,2BAAyB;;;;;;CAO3B,WAAW,wBAAwB;AACjC,SAAO;;;;;;CAOT,WAAW,sBAAsB,gBAAgB;AAC/C,0BAAwB;;;;;;;;;;;CAa1B,WAAW,sBAAsB;AAC/B,SAAO;;;;;;;;;CAUT,WAAW,oBAAoB,cAAc;AAC3C,wBAAsB,qBAAqB,aAAa;;;;;;CAO1D,WAAW,qBAAqB;AAC9B,SAAO;;;;;;;;;;CAWT,WAAW,mBAAmB,YAAY;AACxC,uBAAqB,aAAa;;;;;;CAOpC,WAAW,iBAAiB;AAC1B,SAAO;;;;;;CAOT,WAAW,eAAe,GAAG;AAC3B,mBAAiB;;;;;;CAOnB,OAAO,cAAc;AACnB,SAAO,YAAY;AACnB,WAAS,YAAY;;;;;AC5KzB,IAAqB,UAArB,MAA6B;CAC3B,YAAY,QAAQ,aAAa;AAC/B,OAAK,SAAS;AACd,OAAK,cAAc;;CAGrB,YAAY;AACV,MAAI,KAAK,YACP,QAAO,GAAG,KAAK,OAAO,IAAI,KAAK;MAE/B,QAAO,KAAK;;;;;ACGlB,MAAM,gBAAgB;CAAC;CAAG;CAAI;CAAI;CAAI;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI,EAC3E,aAAa;CAAC;CAAG;CAAI;CAAI;CAAI;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI;AAEtE,SAAS,eAAe,MAAM,OAAO;AACnC,QAAO,IAAI,QACT,qBACA,iBAAiB,MAAM,YAAY,OAAO,MAAM,SAAS,KAAK,oBAC/D;;AAGH,SAAgB,UAAU,MAAM,OAAO,KAAK;CAC1C,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAElD,KAAI,OAAO,OAAO,QAAQ,EACxB,GAAE,eAAe,EAAE,gBAAgB,GAAG,KAAK;CAG7C,MAAM,KAAK,EAAE,WAAW;AAExB,QAAO,OAAO,IAAI,IAAI;;AAGxB,SAAS,eAAe,MAAM,OAAO,KAAK;AACxC,QAAO,OAAO,WAAW,KAAK,GAAG,aAAa,eAAe,QAAQ;;AAGvE,SAAS,iBAAiB,MAAM,SAAS;CACvC,MAAM,QAAQ,WAAW,KAAK,GAAG,aAAa,eAC5C,SAAS,MAAM,WAAW,MAAM,IAAI,QAAQ,EAC5C,MAAM,UAAU,MAAM;AACxB,QAAO;EAAE,OAAO,SAAS;EAAG;EAAK;;AAGnC,SAAgB,kBAAkB,YAAY,aAAa;AACzD,SAAS,aAAa,cAAc,KAAK,IAAK;;;;;AAOhD,SAAgB,gBAAgB,SAAS,qBAAqB,GAAG,cAAc,GAAG;CAChF,MAAM,EAAE,MAAM,OAAO,QAAQ,SAC3B,UAAU,eAAe,MAAM,OAAO,IAAI,EAC1C,UAAU,kBAAkB,UAAU,MAAM,OAAO,IAAI,EAAE,YAAY;CAEvE,IAAI,aAAa,KAAK,OAAO,UAAU,UAAU,KAAK,sBAAsB,EAAE,EAC5E;AAEF,KAAI,aAAa,GAAG;AAClB,aAAW,OAAO;AAClB,eAAa,gBAAgB,UAAU,oBAAoB,YAAY;YAC9D,aAAa,gBAAgB,MAAM,oBAAoB,YAAY,EAAE;AAC9E,aAAW,OAAO;AAClB,eAAa;OAEb,YAAW;AAGb,QAAO;EAAE;EAAU;EAAY;EAAS,GAAG,WAAW,QAAQ;EAAE;;AAGlE,SAAgB,gBAAgB,UAAU,qBAAqB,GAAG,cAAc,GAAG;CACjF,MAAM,EAAE,UAAU,YAAY,YAAY,UACxC,gBAAgB,kBAAkB,UAAU,UAAU,GAAG,mBAAmB,EAAE,YAAY,EAC1F,aAAa,WAAW,SAAS;CAEnC,IAAI,UAAU,aAAa,IAAI,UAAU,gBAAgB,IAAI,oBAC3D;AAEF,KAAI,UAAU,GAAG;AACf,SAAO,WAAW;AAClB,aAAW,WAAW,KAAK;YAClB,UAAU,YAAY;AAC/B,SAAO,WAAW;AAClB,aAAW,WAAW,SAAS;OAE/B,QAAO;CAGT,MAAM,EAAE,OAAO,QAAQ,iBAAiB,MAAM,QAAQ;AACtD,QAAO;EAAE;EAAM;EAAO;EAAK,GAAG,WAAW,SAAS;EAAE;;AAGtD,SAAgB,mBAAmB,UAAU;CAC3C,MAAM,EAAE,MAAM,OAAO,QAAQ;AAE7B,QAAO;EAAE;EAAM,SADC,eAAe,MAAM,OAAO,IACtB;EAAE,GAAG,WAAW,SAAS;EAAE;;AAGnD,SAAgB,mBAAmB,aAAa;CAC9C,MAAM,EAAE,MAAM,YAAY;CAC1B,MAAM,EAAE,OAAO,QAAQ,iBAAiB,MAAM,QAAQ;AACtD,QAAO;EAAE;EAAM;EAAO;EAAK,GAAG,WAAW,YAAY;EAAE;;;;;;;;AASzD,SAAgB,oBAAoB,KAAK,KAAK;AAK5C,KAHE,CAAC,YAAY,IAAI,aAAa,IAC9B,CAAC,YAAY,IAAI,gBAAgB,IACjC,CAAC,YAAY,IAAI,cAAc,EACV;AAIrB,MAFE,CAAC,YAAY,IAAI,QAAQ,IAAI,CAAC,YAAY,IAAI,WAAW,IAAI,CAAC,YAAY,IAAI,SAAS,CAGvF,OAAM,IAAI,8BACR,iEACD;AAEH,MAAI,CAAC,YAAY,IAAI,aAAa,CAAE,KAAI,UAAU,IAAI;AACtD,MAAI,CAAC,YAAY,IAAI,gBAAgB,CAAE,KAAI,aAAa,IAAI;AAC5D,MAAI,CAAC,YAAY,IAAI,cAAc,CAAE,KAAI,WAAW,IAAI;AACxD,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO;GACL,oBAAoB,IAAI,uBAAuB;GAC/C,aAAa,IAAI,gBAAgB;GAClC;OAED,QAAO;EAAE,oBAAoB;EAAG,aAAa;EAAG;;AAIpD,SAAgB,mBAAmB,KAAK,qBAAqB,GAAG,cAAc,GAAG;CAC/E,MAAM,YAAY,UAAU,IAAI,SAAS,EACvC,YAAY,eACV,IAAI,YACJ,GACA,gBAAgB,IAAI,UAAU,oBAAoB,YAAY,CAC/D,EACD,eAAe,eAAe,IAAI,SAAS,GAAG,EAAE;AAElD,KAAI,CAAC,UACH,QAAO,eAAe,YAAY,IAAI,SAAS;UACtC,CAAC,UACV,QAAO,eAAe,QAAQ,IAAI,WAAW;UACpC,CAAC,aACV,QAAO,eAAe,WAAW,IAAI,QAAQ;KACxC,QAAO;;AAGhB,SAAgB,sBAAsB,KAAK;CACzC,MAAM,YAAY,UAAU,IAAI,KAAK,EACnC,eAAe,eAAe,IAAI,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC;AAErE,KAAI,CAAC,UACH,QAAO,eAAe,QAAQ,IAAI,KAAK;UAC9B,CAAC,aACV,QAAO,eAAe,WAAW,IAAI,QAAQ;KACxC,QAAO;;AAGhB,SAAgB,wBAAwB,KAAK;CAC3C,MAAM,YAAY,UAAU,IAAI,KAAK,EACnC,aAAa,eAAe,IAAI,OAAO,GAAG,GAAG,EAC7C,WAAW,eAAe,IAAI,KAAK,GAAG,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC;AAEzE,KAAI,CAAC,UACH,QAAO,eAAe,QAAQ,IAAI,KAAK;UAC9B,CAAC,WACV,QAAO,eAAe,SAAS,IAAI,MAAM;UAChC,CAAC,SACV,QAAO,eAAe,OAAO,IAAI,IAAI;KAChC,QAAO;;AAGhB,SAAgB,mBAAmB,KAAK;CACtC,MAAM,EAAE,MAAM,QAAQ,QAAQ,gBAAgB;CAC9C,MAAM,YACF,eAAe,MAAM,GAAG,GAAG,IAC1B,SAAS,MAAM,WAAW,KAAK,WAAW,KAAK,gBAAgB,GAClE,cAAc,eAAe,QAAQ,GAAG,GAAG,EAC3C,cAAc,eAAe,QAAQ,GAAG,GAAG,EAC3C,mBAAmB,eAAe,aAAa,GAAG,IAAI;AAExD,KAAI,CAAC,UACH,QAAO,eAAe,QAAQ,KAAK;UAC1B,CAAC,YACV,QAAO,eAAe,UAAU,OAAO;UAC9B,CAAC,YACV,QAAO,eAAe,UAAU,OAAO;UAC9B,CAAC,iBACV,QAAO,eAAe,eAAe,YAAY;KAC5C,QAAO;;;;;;;AC5LhB,SAAgB,YAAY,GAAG;AAC7B,QAAO,OAAO,MAAM;;AAGtB,SAAgB,SAAS,GAAG;AAC1B,QAAO,OAAO,MAAM;;AAGtB,SAAgB,UAAU,GAAG;AAC3B,QAAO,OAAO,MAAM,YAAY,IAAI,MAAM;;AAG5C,SAAgB,SAAS,GAAG;AAC1B,QAAO,OAAO,MAAM;;AAGtB,SAAgB,OAAO,GAAG;AACxB,QAAO,OAAO,UAAU,SAAS,KAAK,EAAE,KAAK;;AAK/C,SAAgB,cAAc;AAC5B,KAAI;AACF,SAAO,OAAO,SAAS,eAAe,CAAC,CAAC,KAAK;UACtC,GAAG;AACV,SAAO;;;AAIX,SAAgB,oBAAoB;AAClC,KAAI;AACF,SACE,OAAO,SAAS,eAChB,CAAC,CAAC,KAAK,WACN,cAAc,KAAK,OAAO,aAAa,iBAAiB,KAAK,OAAO;UAEhE,GAAG;AACV,SAAO;;;AAMX,SAAgB,WAAW,OAAO;AAChC,QAAO,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;;AAG/C,SAAgB,OAAO,KAAK,IAAI,SAAS;AACvC,KAAI,IAAI,WAAW,EACjB;AAEF,QAAO,IAAI,QAAQ,MAAM,SAAS;EAChC,MAAM,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK;AAC7B,MAAI,CAAC,KACH,QAAO;WACE,QAAQ,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,GAC5C,QAAO;MAEP,QAAO;IAER,KAAK,CAAC;;AAGX,SAAgB,KAAK,KAAK,MAAM;AAC9B,QAAO,KAAK,QAAQ,GAAG,MAAM;AAC3B,IAAE,KAAK,IAAI;AACX,SAAO;IACN,EAAE,CAAC;;AAGR,SAAgB,eAAe,KAAK,MAAM;AACxC,QAAO,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK;;AAGxD,SAAgB,qBAAqB,UAAU;AAC7C,KAAI,YAAY,KACd,QAAO;UACE,OAAO,aAAa,SAC7B,OAAM,IAAI,qBAAqB,kCAAkC;MAC5D;AACL,MACE,CAAC,eAAe,SAAS,UAAU,GAAG,EAAE,IACxC,CAAC,eAAe,SAAS,aAAa,GAAG,EAAE,IAC3C,CAAC,MAAM,QAAQ,SAAS,QAAQ,IAChC,SAAS,QAAQ,MAAM,MAAM,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,CAEtD,OAAM,IAAI,qBAAqB,wBAAwB;AAEzD,SAAO;GACL,UAAU,SAAS;GACnB,aAAa,SAAS;GACtB,SAAS,MAAM,KAAK,SAAS,QAAQ;GACtC;;;AAML,SAAgB,eAAe,OAAO,QAAQ,KAAK;AACjD,QAAO,UAAU,MAAM,IAAI,SAAS,UAAU,SAAS;;AAIzD,SAAgB,SAAS,GAAG,GAAG;AAC7B,QAAO,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE;;AAGlC,SAAgB,SAAS,OAAO,IAAI,GAAG;CACrC,MAAM,QAAQ,QAAQ;CACtB,IAAI;AACJ,KAAI,MACF,UAAS,OAAO,KAAK,CAAC,OAAO,SAAS,GAAG,IAAI;KAE7C,WAAU,KAAK,OAAO,SAAS,GAAG,IAAI;AAExC,QAAO;;AAGT,SAAgB,aAAa,QAAQ;AACnC,KAAI,YAAY,OAAO,IAAI,WAAW,QAAQ,WAAW,GACvD;KAEA,QAAO,SAAS,QAAQ,GAAG;;AAI/B,SAAgB,cAAc,QAAQ;AACpC,KAAI,YAAY,OAAO,IAAI,WAAW,QAAQ,WAAW,GACvD;KAEA,QAAO,WAAW,OAAO;;AAI7B,SAAgB,YAAY,UAAU;AAEpC,KAAI,YAAY,SAAS,IAAI,aAAa,QAAQ,aAAa,GAC7D;MACK;EACL,MAAM,IAAI,WAAW,OAAO,SAAS,GAAG;AACxC,SAAO,KAAK,MAAM,EAAE;;;AAIxB,SAAgB,QAAQ,QAAQ,QAAQ,aAAa,OAAO;CAC1D,MAAM,SAAS,MAAM;AAErB,SADY,aAAa,KAAK,QAAQ,KAAK,OAC5B,SAAS,OAAO,GAAG;;AAKpC,SAAgB,WAAW,MAAM;AAC/B,QAAO,OAAO,MAAM,MAAM,OAAO,QAAQ,KAAK,OAAO,QAAQ;;AAG/D,SAAgB,WAAW,MAAM;AAC/B,QAAO,WAAW,KAAK,GAAG,MAAM;;AAGlC,SAAgB,YAAY,MAAM,OAAO;CACvC,MAAM,WAAW,SAAS,QAAQ,GAAG,GAAG,GAAG,GACzC,UAAU,QAAQ,QAAQ,YAAY;AAExC,KAAI,aAAa,EACf,QAAO,WAAW,QAAQ,GAAG,KAAK;KAElC,QAAO;EAAC;EAAI;EAAM;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG,CAAC,WAAW;;AAKzE,SAAgB,aAAa,KAAK;CAChC,IAAI,IAAI,KAAK,IACX,IAAI,MACJ,IAAI,QAAQ,GACZ,IAAI,KACJ,IAAI,MACJ,IAAI,QACJ,IAAI,QACJ,IAAI,YACL;AAGD,KAAI,IAAI,OAAO,OAAO,IAAI,QAAQ,GAAG;AACnC,MAAI,IAAI,KAAK,EAAE;AAIf,IAAE,eAAe,IAAI,MAAM,IAAI,QAAQ,GAAG,IAAI,IAAI;;AAEpD,QAAO,CAAC;;AAIV,SAAS,gBAAgB,MAAM,oBAAoB,aAAa;AAE9D,QAAO,CADO,kBAAkB,UAAU,MAAM,GAAG,mBAAmB,EAAE,YAC3D,GAAG,qBAAqB;;AAGvC,SAAgB,gBAAgB,UAAU,qBAAqB,GAAG,cAAc,GAAG;CACjF,MAAM,aAAa,gBAAgB,UAAU,oBAAoB,YAAY;CAC7E,MAAM,iBAAiB,gBAAgB,WAAW,GAAG,oBAAoB,YAAY;AACrF,SAAQ,WAAW,SAAS,GAAG,aAAa,kBAAkB;;AAGhE,SAAgB,eAAe,MAAM;AACnC,KAAI,OAAO,GACT,QAAO;KACF,QAAO,OAAO,SAAS,qBAAqB,OAAO,OAAO,MAAO;;AAK1E,SAAgB,cAAc,IAAI,cAAc,QAAQ,WAAW,MAAM;CACvE,MAAM,OAAO,IAAI,KAAK,GAAG,EACvB,WAAW;EACT,WAAW;EACX,MAAM;EACN,OAAO;EACP,KAAK;EACL,MAAM;EACN,QAAQ;EACT;AAEH,KAAI,SACF,UAAS,WAAW;CAGtB,MAAM,WAAW;EAAE,cAAc;EAAc,GAAG;EAAU;CAE5D,MAAM,SAAS,IAAI,KAAK,eAAe,QAAQ,SAAS,CACrD,cAAc,KAAK,CACnB,MAAM,MAAM,EAAE,KAAK,aAAa,KAAK,eAAe;AACvD,QAAO,SAAS,OAAO,QAAQ;;AAIjC,SAAgB,aAAa,YAAY,cAAc;CACrD,IAAI,UAAU,SAAS,YAAY,GAAG;AAGtC,KAAI,OAAO,MAAM,QAAQ,CACvB,WAAU;CAGZ,MAAM,SAAS,SAAS,cAAc,GAAG,IAAI,GAC3C,eAAe,UAAU,KAAK,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC,SAAS;AACnE,QAAO,UAAU,KAAK;;AAKxB,SAAgB,SAAS,OAAO;CAC9B,MAAM,eAAe,OAAO,MAAM;AAClC,KAAI,OAAO,UAAU,aAAa,UAAU,MAAM,OAAO,MAAM,aAAa,CAC1E,OAAM,IAAI,qBAAqB,sBAAsB,QAAQ;AAC/D,QAAO;;AAGT,SAAgB,gBAAgB,KAAK,YAAY;CAC/C,MAAM,aAAa,EAAE;AACrB,MAAK,MAAM,KAAK,IACd,KAAI,eAAe,KAAK,EAAE,EAAE;EAC1B,MAAM,IAAI,IAAI;AACd,MAAI,MAAM,KAAA,KAAa,MAAM,KAAM;AACnC,aAAW,WAAW,EAAE,IAAI,SAAS,EAAE;;AAG3C,QAAO;;AAGT,SAAgB,aAAa,QAAQ,QAAQ;CAC3C,MAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,SAAS,GAAG,CAAC,EAC7C,UAAU,KAAK,MAAM,KAAK,IAAI,SAAS,GAAG,CAAC,EAC3C,OAAO,UAAU,IAAI,MAAM;AAE7B,SAAQ,QAAR;EACE,KAAK,QACH,QAAO,GAAG,OAAO,SAAS,OAAO,EAAE,CAAC,GAAG,SAAS,SAAS,EAAE;EAC7D,KAAK,SACH,QAAO,GAAG,OAAO,QAAQ,UAAU,IAAI,IAAI,YAAY;EACzD,KAAK,SACH,QAAO,GAAG,OAAO,SAAS,OAAO,EAAE,GAAG,SAAS,SAAS,EAAE;EAC5D,QACE,OAAM,IAAI,WAAW,gBAAgB,OAAO,sCAAsC;;;AAIxF,SAAgB,WAAW,KAAK;AAC9B,QAAO,KAAK,KAAK;EAAC;EAAQ;EAAU;EAAU;EAAc,CAAC;;;;;;;ACxS/D,MAAa,aAAa;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,eAAe;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI;AAExF,SAAgB,OAAO,QAAQ;AAC7B,SAAQ,QAAR;EACE,KAAK,SACH,QAAO,CAAC,GAAG,aAAa;EAC1B,KAAK,QACH,QAAO,CAAC,GAAG,YAAY;EACzB,KAAK,OACH,QAAO,CAAC,GAAG,WAAW;EACxB,KAAK,UACH,QAAO;GAAC;GAAK;GAAK;GAAK;GAAK;GAAK;GAAK;GAAK;GAAK;GAAK;GAAM;GAAM;GAAK;EACxE,KAAK,UACH,QAAO;GAAC;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAK;EACjF,QACE,QAAO;;;AAIb,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,gBAAgB;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAM;AAE9E,MAAa,iBAAiB;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAI;AAEjE,SAAgB,SAAS,QAAQ;AAC/B,SAAQ,QAAR;EACE,KAAK,SACH,QAAO,CAAC,GAAG,eAAe;EAC5B,KAAK,QACH,QAAO,CAAC,GAAG,cAAc;EAC3B,KAAK,OACH,QAAO,CAAC,GAAG,aAAa;EAC1B,KAAK,UACH,QAAO;GAAC;GAAK;GAAK;GAAK;GAAK;GAAK;GAAK;GAAI;EAC5C,QACE,QAAO;;;AAIb,MAAa,YAAY,CAAC,MAAM,KAAK;AAErC,MAAa,WAAW,CAAC,iBAAiB,cAAc;AAExD,MAAa,YAAY,CAAC,MAAM,KAAK;AAErC,MAAa,aAAa,CAAC,KAAK,IAAI;AAEpC,SAAgB,KAAK,QAAQ;AAC3B,SAAQ,QAAR;EACE,KAAK,SACH,QAAO,CAAC,GAAG,WAAW;EACxB,KAAK,QACH,QAAO,CAAC,GAAG,UAAU;EACvB,KAAK,OACH,QAAO,CAAC,GAAG,SAAS;EACtB,QACE,QAAO;;;AAIb,SAAgB,oBAAoB,IAAI;AACtC,QAAO,UAAU,GAAG,OAAO,KAAK,IAAI;;AAGtC,SAAgB,mBAAmB,IAAI,QAAQ;AAC7C,QAAO,SAAS,OAAO,CAAC,GAAG,UAAU;;AAGvC,SAAgB,iBAAiB,IAAI,QAAQ;AAC3C,QAAO,OAAO,OAAO,CAAC,GAAG,QAAQ;;AAGnC,SAAgB,eAAe,IAAI,QAAQ;AACzC,QAAO,KAAK,OAAO,CAAC,GAAG,OAAO,IAAI,IAAI;;AAGxC,SAAgB,mBAAmB,MAAM,OAAO,UAAU,UAAU,SAAS,OAAO;CAClF,MAAM,QAAQ;EACZ,OAAO,CAAC,QAAQ,MAAM;EACtB,UAAU,CAAC,WAAW,OAAO;EAC7B,QAAQ,CAAC,SAAS,MAAM;EACxB,OAAO,CAAC,QAAQ,MAAM;EACtB,MAAM;GAAC;GAAO;GAAO;GAAO;EAC5B,OAAO,CAAC,QAAQ,MAAM;EACtB,SAAS,CAAC,UAAU,OAAO;EAC3B,SAAS,CAAC,UAAU,OAAO;EAC5B;CAED,MAAM,WAAW;EAAC;EAAS;EAAW;EAAU,CAAC,QAAQ,KAAK,KAAK;AAEnE,KAAI,YAAY,UAAU,UAAU;EAClC,MAAM,QAAQ,SAAS;AACvB,UAAQ,OAAR;GACE,KAAK,EACH,QAAO,QAAQ,aAAa,QAAQ,MAAM,MAAM;GAClD,KAAK,GACH,QAAO,QAAQ,cAAc,QAAQ,MAAM,MAAM;GACnD,KAAK,EACH,QAAO,QAAQ,UAAU,QAAQ,MAAM,MAAM;GAC/C;;;CAIJ,MAAM,WAAW,OAAO,GAAG,OAAO,GAAG,IAAI,QAAQ,GAC/C,WAAW,KAAK,IAAI,MAAM,EAC1B,WAAW,aAAa,GACxB,WAAW,MAAM,OACjB,UAAU,SACN,WACE,SAAS,KACT,SAAS,MAAM,SAAS,KAC1B,WACA,MAAM,MAAM,KACZ;AACN,QAAO,WAAW,GAAG,SAAS,GAAG,QAAQ,QAAQ,MAAM,SAAS,GAAG;;;;AChKrE,SAAS,gBAAgB,QAAQ,eAAe;CAC9C,IAAI,IAAI;AACR,MAAK,MAAM,SAAS,OAClB,KAAI,MAAM,QACR,MAAK,MAAM;KAEX,MAAK,cAAc,MAAM,IAAI;AAGjC,QAAO;;AAGT,MAAM,yBAAyB;CAC7B,GAAGC;CACH,IAAIC;CACJ,KAAKC;CACL,MAAMC;CACN,GAAGC;CACH,IAAIC;CACJ,KAAKC;CACL,MAAMC;CACN,GAAGC;CACH,IAAIC;CACJ,KAAKC;CACL,MAAMC;CACN,GAAGC;CACH,IAAIC;CACJ,KAAKC;CACL,MAAMC;CACN,GAAGC;CACH,IAAIC;CACJ,KAAKC;CACL,MAAMC;CACP;;;;AAMD,IAAqB,YAArB,MAAqB,UAAU;CAC7B,OAAO,OAAO,QAAQ,OAAO,EAAE,EAAE;AAC/B,SAAO,IAAI,UAAU,QAAQ,KAAK;;CAGpC,OAAO,YAAY,KAAK;EAItB,IAAI,UAAU,MACZ,cAAc,IACd,YAAY;EACd,MAAM,SAAS,EAAE;AACjB,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACnC,MAAM,IAAI,IAAI,OAAO,EAAE;AACvB,OAAI,MAAM,KAAK;AACb,QAAI,YAAY,SAAS,EACvB,QAAO,KAAK;KAAE,SAAS,aAAa,QAAQ,KAAK,YAAY;KAAE,KAAK;KAAa,CAAC;AAEpF,cAAU;AACV,kBAAc;AACd,gBAAY,CAAC;cACJ,UACT,gBAAe;YACN,MAAM,QACf,gBAAe;QACV;AACL,QAAI,YAAY,SAAS,EACvB,QAAO,KAAK;KAAE,SAAS,QAAQ,KAAK,YAAY;KAAE,KAAK;KAAa,CAAC;AAEvE,kBAAc;AACd,cAAU;;;AAId,MAAI,YAAY,SAAS,EACvB,QAAO,KAAK;GAAE,SAAS,aAAa,QAAQ,KAAK,YAAY;GAAE,KAAK;GAAa,CAAC;AAGpF,SAAO;;CAGT,OAAO,uBAAuB,OAAO;AACnC,SAAO,uBAAuB;;CAGhC,YAAY,QAAQ,YAAY;AAC9B,OAAK,OAAO;AACZ,OAAK,MAAM;AACX,OAAK,YAAY;;CAGnB,wBAAwB,IAAI,MAAM;AAChC,MAAI,KAAK,cAAc,KACrB,MAAK,YAAY,KAAK,IAAI,mBAAmB;AAG/C,SADW,KAAK,UAAU,YAAY,IAAI;GAAE,GAAG,KAAK;GAAM,GAAG;GAAM,CAC1D,CAAC,QAAQ;;CAGpB,YAAY,IAAI,OAAO,EAAE,EAAE;AACzB,SAAO,KAAK,IAAI,YAAY,IAAI;GAAE,GAAG,KAAK;GAAM,GAAG;GAAM,CAAC;;CAG5D,eAAe,IAAI,MAAM;AACvB,SAAO,KAAK,YAAY,IAAI,KAAK,CAAC,QAAQ;;CAG5C,oBAAoB,IAAI,MAAM;AAC5B,SAAO,KAAK,YAAY,IAAI,KAAK,CAAC,eAAe;;CAGnD,eAAe,UAAU,MAAM;AAE7B,SADW,KAAK,YAAY,SAAS,OAAO,KACnC,CAAC,IAAI,YAAY,SAAS,MAAM,UAAU,EAAE,SAAS,IAAI,UAAU,CAAC;;CAG/E,gBAAgB,IAAI,MAAM;AACxB,SAAO,KAAK,YAAY,IAAI,KAAK,CAAC,iBAAiB;;CAGrD,IAAI,GAAG,IAAI,GAAG;AAEZ,MAAI,KAAK,KAAK,YACZ,QAAO,SAAS,GAAG,EAAE;EAGvB,MAAM,OAAO,EAAE,GAAG,KAAK,MAAM;AAE7B,MAAI,IAAI,EACN,MAAK,QAAQ;AAGf,SAAO,KAAK,IAAI,gBAAgB,KAAK,CAAC,OAAO,EAAE;;CAGjD,yBAAyB,IAAI,KAAK;EAChC,MAAM,eAAe,KAAK,IAAI,aAAa,KAAK,MAC9C,uBAAuB,KAAK,IAAI,kBAAkB,KAAK,IAAI,mBAAmB,WAC9E,UAAU,MAAM,YAAY,KAAK,IAAI,QAAQ,IAAI,MAAM,QAAQ,EAC/D,gBAAgB,SAAS;AACvB,OAAI,GAAG,iBAAiB,GAAG,WAAW,KAAK,KAAK,OAC9C,QAAO;AAGT,UAAO,GAAG,UAAU,GAAG,KAAK,aAAa,GAAG,IAAI,KAAK,OAAO,GAAG;KAEjE,iBACE,eACIC,oBAA4B,GAAG,GAC/B,OAAO;GAAE,MAAM;GAAW,WAAW;GAAO,EAAE,YAAY,EAChE,SAAS,QAAQ,eACf,eACIC,iBAAyB,IAAI,OAAO,GACpC,OAAO,aAAa,EAAE,OAAO,QAAQ,GAAG;GAAE,OAAO;GAAQ,KAAK;GAAW,EAAE,QAAQ,EACzF,WAAW,QAAQ,eACjB,eACIC,mBAA2B,IAAI,OAAO,GACtC,OACE,aAAa,EAAE,SAAS,QAAQ,GAAG;GAAE,SAAS;GAAQ,OAAO;GAAQ,KAAK;GAAW,EACrF,UACD,EACP,cAAc,UAAU;GACtB,MAAM,aAAa,UAAU,uBAAuB,MAAM;AAC1D,OAAI,WACF,QAAO,KAAK,wBAAwB,IAAI,WAAW;OAEnD,QAAO;KAGX,OAAO,WACL,eAAeC,eAAuB,IAAI,OAAO,GAAG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EACpF,iBAAiB,UAAU;AAEzB,WAAQ,OAAR;IAEE,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,YAAY;IACjC,KAAK;IAEL,KAAK,MACH,QAAO,KAAK,IAAI,GAAG,aAAa,EAAE;IAEpC,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,OAAO;IAC5B,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,QAAQ,EAAE;IAE/B,KAAK,KACH,QAAO,KAAK,IAAI,KAAK,MAAM,GAAG,cAAc,GAAG,EAAE,EAAE;IACrD,KAAK,MACH,QAAO,KAAK,IAAI,KAAK,MAAM,GAAG,cAAc,IAAI,CAAC;IAEnD,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,OAAO;IAC5B,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,QAAQ,EAAE;IAE/B,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,OAAO,OAAO,IAAI,KAAK,GAAG,OAAO,GAAG;IACzD,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,OAAO,OAAO,IAAI,KAAK,GAAG,OAAO,IAAI,EAAE;IAC5D,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,KAAK;IAC1B,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,MAAM,EAAE;IAE7B,KAAK,IAEH,QAAO,aAAa;KAAE,QAAQ;KAAU,QAAQ,KAAK,KAAK;KAAQ,CAAC;IACrE,KAAK,KAEH,QAAO,aAAa;KAAE,QAAQ;KAAS,QAAQ,KAAK,KAAK;KAAQ,CAAC;IACpE,KAAK,MAEH,QAAO,aAAa;KAAE,QAAQ;KAAU,QAAQ,KAAK,KAAK;KAAQ,CAAC;IACrE,KAAK,OAEH,QAAO,GAAG,KAAK,WAAW,GAAG,IAAI;KAAE,QAAQ;KAAS,QAAQ,KAAK,IAAI;KAAQ,CAAC;IAChF,KAAK,QAEH,QAAO,GAAG,KAAK,WAAW,GAAG,IAAI;KAAE,QAAQ;KAAQ,QAAQ,KAAK,IAAI;KAAQ,CAAC;IAE/E,KAAK,IAEH,QAAO,GAAG;IAEZ,KAAK,IACH,QAAO,UAAU;IAEnB,KAAK,IACH,QAAO,uBAAuB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,GAAG,KAAK,IAAI,GAAG,IAAI;IACpF,KAAK,KACH,QAAO,uBAAuB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,EAAE;IAEvF,KAAK,IAEH,QAAO,KAAK,IAAI,GAAG,QAAQ;IAC7B,KAAK,MAEH,QAAO,QAAQ,SAAS,KAAK;IAC/B,KAAK,OAEH,QAAO,QAAQ,QAAQ,KAAK;IAC9B,KAAK,QAEH,QAAO,QAAQ,UAAU,KAAK;IAEhC,KAAK,IAEH,QAAO,KAAK,IAAI,GAAG,QAAQ;IAC7B,KAAK,MAEH,QAAO,QAAQ,SAAS,MAAM;IAChC,KAAK,OAEH,QAAO,QAAQ,QAAQ,MAAM;IAC/B,KAAK,QAEH,QAAO,QAAQ,UAAU,MAAM;IAEjC,KAAK,IAEH,QAAO,uBACH,OAAO;KAAE,OAAO;KAAW,KAAK;KAAW,EAAE,QAAQ,GACrD,KAAK,IAAI,GAAG,MAAM;IACxB,KAAK,KAEH,QAAO,uBACH,OAAO;KAAE,OAAO;KAAW,KAAK;KAAW,EAAE,QAAQ,GACrD,KAAK,IAAI,GAAG,OAAO,EAAE;IAC3B,KAAK,MAEH,QAAO,MAAM,SAAS,KAAK;IAC7B,KAAK,OAEH,QAAO,MAAM,QAAQ,KAAK;IAC5B,KAAK,QAEH,QAAO,MAAM,UAAU,KAAK;IAE9B,KAAK,IAEH,QAAO,uBACH,OAAO,EAAE,OAAO,WAAW,EAAE,QAAQ,GACrC,KAAK,IAAI,GAAG,MAAM;IACxB,KAAK,KAEH,QAAO,uBACH,OAAO,EAAE,OAAO,WAAW,EAAE,QAAQ,GACrC,KAAK,IAAI,GAAG,OAAO,EAAE;IAC3B,KAAK,MAEH,QAAO,MAAM,SAAS,MAAM;IAC9B,KAAK,OAEH,QAAO,MAAM,QAAQ,MAAM;IAC7B,KAAK,QAEH,QAAO,MAAM,UAAU,MAAM;IAE/B,KAAK,IAEH,QAAO,uBAAuB,OAAO,EAAE,MAAM,WAAW,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK;IACvF,KAAK,KAEH,QAAO,uBACH,OAAO,EAAE,MAAM,WAAW,EAAE,OAAO,GACnC,KAAK,IAAI,GAAG,KAAK,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE;IAC/C,KAAK,OAEH,QAAO,uBACH,OAAO,EAAE,MAAM,WAAW,EAAE,OAAO,GACnC,KAAK,IAAI,GAAG,MAAM,EAAE;IAC1B,KAAK,SAEH,QAAO,uBACH,OAAO,EAAE,MAAM,WAAW,EAAE,OAAO,GACnC,KAAK,IAAI,GAAG,MAAM,EAAE;IAE1B,KAAK,IAEH,QAAO,IAAI,QAAQ;IACrB,KAAK,KAEH,QAAO,IAAI,OAAO;IACpB,KAAK,QACH,QAAO,IAAI,SAAS;IACtB,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,SAAS,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE;IACtD,KAAK,OACH,QAAO,KAAK,IAAI,GAAG,UAAU,EAAE;IACjC,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,WAAW;IAChC,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,YAAY,EAAE;IACnC,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,gBAAgB;IACrC,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,iBAAiB,EAAE;IACxC,KAAK,KACH,QAAO,KAAK,IAAI,GAAG,cAAc,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE;IAC3D,KAAK,OACH,QAAO,KAAK,IAAI,GAAG,eAAe,EAAE;IACtC,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,QAAQ;IAC7B,KAAK,MACH,QAAO,KAAK,IAAI,GAAG,SAAS,EAAE;IAChC,KAAK,IAEH,QAAO,KAAK,IAAI,GAAG,QAAQ;IAC7B,KAAK,KAEH,QAAO,KAAK,IAAI,GAAG,SAAS,EAAE;IAChC,KAAK,IACH,QAAO,KAAK,IAAI,KAAK,MAAM,GAAG,KAAK,IAAK,CAAC;IAC3C,KAAK,IACH,QAAO,KAAK,IAAI,GAAG,GAAG;IACxB,QACE,QAAO,WAAW,MAAM;;;AAIhC,SAAO,gBAAgB,UAAU,YAAY,IAAI,EAAE,cAAc;;CAGnE,yBAAyB,KAAK,KAAK;EACjC,MAAM,gBAAgB,UAAU;AAC5B,WAAQ,MAAM,IAAd;IACE,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,KAAK,IACH,QAAO;IACT,QACE,QAAO;;KAGb,iBAAiB,YAAY,UAAU;GACrC,MAAM,SAAS,aAAa,MAAM;AAClC,OAAI,OACF,QAAO,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,MAAM,OAAO;OAEjD,QAAO;KAGX,SAAS,UAAU,YAAY,IAAI,EACnC,aAAa,OAAO,QACjB,OAAO,EAAE,SAAS,UAAW,UAAU,QAAQ,MAAM,OAAO,IAAI,EACjE,EAAE,CACH;AAEH,SAAO,gBAAgB,QAAQ,cADjB,IAAI,QAAQ,GAAG,WAAW,IAAI,aAAa,CAAC,QAAQ,MAAM,EAAE,CACpB,CAAC,CAAC;;;;;AChY5D,MAAM,YAAY;AAElB,SAAS,eAAe,GAAG,SAAS;CAClC,MAAM,OAAO,QAAQ,QAAQ,GAAG,MAAM,IAAI,EAAE,QAAQ,GAAG;AACvD,QAAO,OAAO,IAAI,KAAK,GAAG;;AAG5B,SAAS,kBAAkB,GAAG,YAAY;AACxC,SAAQ,MACN,WACG,QACE,CAAC,YAAY,YAAY,SAAS,OAAO;EACxC,MAAM,CAAC,KAAK,MAAM,QAAQ,GAAG,GAAG,OAAO;AACvC,SAAO;GAAC;IAAE,GAAG;IAAY,GAAG;IAAK;GAAE,QAAQ;GAAY;GAAK;IAE9D;EAAC,EAAE;EAAE;EAAM;EAAE,CACd,CACA,MAAM,GAAG,EAAE;;AAGlB,SAAS,MAAM,GAAG,GAAG,UAAU;AAC7B,KAAI,KAAK,KACP,QAAO,CAAC,MAAM,KAAK;AAGrB,MAAK,MAAM,CAAC,OAAO,cAAc,UAAU;EACzC,MAAM,IAAI,MAAM,KAAK,EAAE;AACvB,MAAI,EACF,QAAO,UAAU,EAAE;;AAGvB,QAAO,CAAC,MAAM,KAAK;;AAGrB,SAAS,YAAY,GAAG,MAAM;AAC5B,SAAQ,OAAO,WAAW;EACxB,MAAM,MAAM,EAAE;EACd,IAAI;AAEJ,OAAK,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC3B,KAAI,KAAK,MAAM,aAAa,MAAM,SAAS,GAAG;AAEhD,SAAO;GAAC;GAAK;GAAM,SAAS;GAAE;;;AAKlC,MAAM,cAAc;AACpB,MAAM,kBAAkB,MAAM,YAAY,OAAO,UAAU,UAAU,OAAO;AAC5E,MAAM,mBAAmB;AACzB,MAAM,eAAe,OAAO,GAAG,iBAAiB,SAAS,kBAAkB;AAC3E,MAAM,wBAAwB,OAAO,OAAO,aAAa,OAAO,IAAI;AACpE,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,kBAAkB;AACxB,MAAM,qBAAqB,YAAY,YAAY,cAAc,UAAU;AAC3E,MAAM,wBAAwB,YAAY,QAAQ,UAAU;AAC5D,MAAM,cAAc;AACpB,MAAM,eAAe,OACnB,GAAG,iBAAiB,OAAO,OAAO,YAAY,OAAO,IAAI,UAAU,OAAO,KAC3E;AACD,MAAM,wBAAwB,OAAO,OAAO,aAAa,OAAO,IAAI;AAEpE,SAAS,IAAI,OAAO,KAAK,UAAU;CACjC,MAAM,IAAI,MAAM;AAChB,QAAO,YAAY,EAAE,GAAG,WAAW,aAAa,EAAE;;AAGpD,SAAS,cAAc,OAAO,QAAQ;AAOpC,QAAO;EAAC;GALN,MAAM,IAAI,OAAO,OAAO;GACxB,OAAO,IAAI,OAAO,SAAS,GAAG,EAAE;GAChC,KAAK,IAAI,OAAO,SAAS,GAAG,EAAE;GAGpB;EAAE;EAAM,SAAS;EAAE;;AAGjC,SAAS,eAAe,OAAO,QAAQ;AAQrC,QAAO;EAAC;GANN,OAAO,IAAI,OAAO,QAAQ,EAAE;GAC5B,SAAS,IAAI,OAAO,SAAS,GAAG,EAAE;GAClC,SAAS,IAAI,OAAO,SAAS,GAAG,EAAE;GAClC,cAAc,YAAY,MAAM,SAAS,GAAG;GAGlC;EAAE;EAAM,SAAS;EAAE;;AAGjC,SAAS,iBAAiB,OAAO,QAAQ;CACvC,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,MAAM,SAAS,IAC9C,aAAa,aAAa,MAAM,SAAS,IAAI,MAAM,SAAS,GAAG;AAEjE,QAAO;EAAC,EAAE;EADD,QAAQ,OAAO,gBAAgB,SAAS,WAAW;EAC1C,SAAS;EAAE;;AAG/B,SAAS,gBAAgB,OAAO,QAAQ;AAEtC,QAAO;EAAC,EAAE;EADG,MAAM,UAAU,SAAS,OAAO,MAAM,QAAQ,GAAG;EAC5C,SAAS;EAAE;;AAK/B,MAAM,cAAc,OAAO,MAAM,iBAAiB,OAAO,GAAG;AAI5D,MAAM,cACJ;AAEF,SAAS,mBAAmB,OAAO;CACjC,MAAM,CAAC,GAAG,SAAS,UAAU,SAAS,QAAQ,SAAS,WAAW,WAAW,mBAC3E;CAEF,MAAM,oBAAoB,EAAE,OAAO;CACnC,MAAM,kBAAkB,aAAa,UAAU,OAAO;CAEtD,MAAM,eAAe,KAAK,QAAQ,UAChC,QAAQ,KAAA,MAAc,SAAU,OAAO,qBAAsB,CAAC,MAAM;AAEtE,QAAO,CACL;EACE,OAAO,YAAY,cAAc,QAAQ,CAAC;EAC1C,QAAQ,YAAY,cAAc,SAAS,CAAC;EAC5C,OAAO,YAAY,cAAc,QAAQ,CAAC;EAC1C,MAAM,YAAY,cAAc,OAAO,CAAC;EACxC,OAAO,YAAY,cAAc,QAAQ,CAAC;EAC1C,SAAS,YAAY,cAAc,UAAU,CAAC;EAC9C,SAAS,YAAY,cAAc,UAAU,EAAE,cAAc,KAAK;EAClE,cAAc,YAAY,YAAY,gBAAgB,EAAE,gBAAgB;EACzE,CACF;;AAMH,MAAM,aAAa;CACjB,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACN;AAED,SAAS,YAAY,YAAY,SAAS,UAAU,QAAQ,SAAS,WAAW,WAAW;CACzF,MAAM,SAAS;EACb,MAAM,QAAQ,WAAW,IAAI,eAAe,aAAa,QAAQ,CAAC,GAAG,aAAa,QAAQ;EAC1F,OAAA,YAA2B,QAAQ,SAAS,GAAG;EAC/C,KAAK,aAAa,OAAO;EACzB,MAAM,aAAa,QAAQ;EAC3B,QAAQ,aAAa,UAAU;EAChC;AAED,KAAI,UAAW,QAAO,SAAS,aAAa,UAAU;AACtD,KAAI,WACF,QAAO,UACL,WAAW,SAAS,IAAA,aACK,QAAQ,WAAW,GAAG,IAAA,cACrB,QAAQ,WAAW,GAAG;AAGpD,QAAO;;AAIT,MAAM,UACJ;AAEF,SAAS,eAAe,OAAO;CAC7B,MAAM,GAEF,YACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,WACA,YACA,gBACE,OACJ,SAAS,YAAY,YAAY,SAAS,UAAU,QAAQ,SAAS,WAAW,UAAU;CAE5F,IAAI;AACJ,KAAI,UACF,UAAS,WAAW;UACX,UACT,UAAS;KAET,UAAS,aAAa,YAAY,aAAa;AAGjD,QAAO,CAAC,QAAQ,IAAI,gBAAgB,OAAO,CAAC;;AAG9C,SAAS,kBAAkB,GAAG;AAE5B,QAAO,EACJ,QAAQ,sBAAsB,IAAI,CAClC,QAAQ,YAAY,IAAI,CACxB,MAAM;;AAKX,MAAM,UACF,8HACF,SACE,0JACF,QACE;AAEJ,SAAS,oBAAoB,OAAO;CAClC,MAAM,GAAG,YAAY,QAAQ,UAAU,SAAS,SAAS,WAAW,aAAa;AAEjF,QAAO,CADI,YAAY,YAAY,SAAS,UAAU,QAAQ,SAAS,WAAW,UACpE,EAAE,gBAAgB,YAAY;;AAG9C,SAAS,aAAa,OAAO;CAC3B,MAAM,GAAG,YAAY,UAAU,QAAQ,SAAS,WAAW,WAAW,WAAW;AAEjF,QAAO,CADI,YAAY,YAAY,SAAS,UAAU,QAAQ,SAAS,WAAW,UACpE,EAAE,gBAAgB,YAAY;;AAG9C,MAAM,+BAA+B,eAAe,aAAa,sBAAsB;AACvF,MAAM,gCAAgC,eAAe,cAAc,sBAAsB;AACzF,MAAM,mCAAmC,eAAe,iBAAiB,sBAAsB;AAC/F,MAAM,uBAAuB,eAAe,aAAa;AAEzD,MAAM,6BAA6B,kBACjC,eACA,gBACA,kBACA,gBACD;AACD,MAAM,8BAA8B,kBAClC,oBACA,gBACA,kBACA,gBACD;AACD,MAAM,+BAA+B,kBACnC,uBACA,gBACA,kBACA,gBACD;AACD,MAAM,0BAA0B,kBAC9B,gBACA,kBACA,gBACD;AAMD,SAAgB,aAAa,GAAG;AAC9B,QAAO,MACL,GACA,CAAC,8BAA8B,2BAA2B,EAC1D,CAAC,+BAA+B,4BAA4B,EAC5D,CAAC,kCAAkC,6BAA6B,EAChE,CAAC,sBAAsB,wBAAwB,CAChD;;AAGH,SAAgB,iBAAiB,GAAG;AAClC,QAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,SAAS,eAAe,CAAC;;AAG/D,SAAgB,cAAc,GAAG;AAC/B,QAAO,MACL,GACA,CAAC,SAAS,oBAAoB,EAC9B,CAAC,QAAQ,oBAAoB,EAC7B,CAAC,OAAO,aAAa,CACtB;;AAGH,SAAgB,iBAAiB,GAAG;AAClC,QAAO,MAAM,GAAG,CAAC,aAAa,mBAAmB,CAAC;;AAGpD,MAAM,qBAAqB,kBAAkB,eAAe;AAE5D,SAAgB,iBAAiB,GAAG;AAClC,QAAO,MAAM,GAAG,CAAC,aAAa,mBAAmB,CAAC;;AAGpD,MAAM,+BAA+B,eAAe,aAAa,sBAAsB;AACvF,MAAM,uBAAuB,eAAe,aAAa;AAEzD,MAAM,kCAAkC,kBACtC,gBACA,kBACA,gBACD;AAED,SAAgB,SAAS,GAAG;AAC1B,QAAO,MACL,GACA,CAAC,8BAA8B,2BAA2B,EAC1D,CAAC,sBAAsB,gCAAgC,CACxD;;;;AC7TH,MAAMC,YAAU;AAGhB,MAAa,iBAAiB;CAC1B,OAAO;EACL,MAAM;EACN,OAAO;EACP,SAAS;EACT,SAAS,QAAc;EACvB,cAAc,QAAc,KAAK;EAClC;CACD,MAAM;EACJ,OAAO;EACP,SAAS;EACT,SAAS,OAAU;EACnB,cAAc,OAAU,KAAK;EAC9B;CACD,OAAO;EAAE,SAAS;EAAI,SAAS;EAAS,cAAc,OAAU;EAAM;CACtE,SAAS;EAAE,SAAS;EAAI,cAAc,KAAK;EAAM;CACjD,SAAS,EAAE,cAAc,KAAM;CAChC;MACD,eAAe;CACb,OAAO;EACL,UAAU;EACV,QAAQ;EACR,OAAO;EACP,MAAM;EACN,OAAO,MAAM;EACb,SAAS,MAAM,KAAK;EACpB,SAAS,MAAM,KAAK,KAAK;EACzB,cAAc,MAAM,KAAK,KAAK,KAAK;EACpC;CACD,UAAU;EACR,QAAQ;EACR,OAAO;EACP,MAAM;EACN,OAAO;EACP,SAAS,OAAU;EACnB,SAAS,OAAU,KAAK;EACxB,cAAc,OAAU,KAAK,KAAK;EACnC;CACD,QAAQ;EACN,OAAO;EACP,MAAM;EACN,OAAO;EACP,SAAS,MAAU;EACnB,SAAS,MAAU,KAAK;EACxB,cAAc,MAAU,KAAK,KAAK;EACnC;CAED,GAAG;CACJ;MACD,qBAAqB,SAAW;MAChC,sBAAsB,SAAW;MACjC,iBAAiB;CACf,OAAO;EACL,UAAU;EACV,QAAQ;EACR,OAAO,qBAAqB;EAC5B,MAAM;EACN,OAAO,qBAAqB;EAC5B,SAAS,qBAAqB,KAAK;EACnC,SAAS,qBAAqB,KAAK,KAAK;EACxC,cAAc,qBAAqB,KAAK,KAAK,KAAK;EACnD;CACD,UAAU;EACR,QAAQ;EACR,OAAO,qBAAqB;EAC5B,MAAM,qBAAqB;EAC3B,OAAQ,qBAAqB,KAAM;EACnC,SAAU,qBAAqB,KAAK,KAAM;EAC1C,SAAU,qBAAqB,KAAK,KAAK,KAAM;EAC/C,cAAe,qBAAqB,KAAK,KAAK,KAAK,MAAQ;EAC5D;CACD,QAAQ;EACN,OAAO,sBAAsB;EAC7B,MAAM;EACN,OAAO,sBAAsB;EAC7B,SAAS,sBAAsB,KAAK;EACpC,SAAS,sBAAsB,KAAK,KAAK;EACzC,cAAc,sBAAsB,KAAK,KAAK,KAAK;EACpD;CACD,GAAG;CACJ;AAGH,MAAMC,iBAAe;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,eAAeA,eAAa,MAAM,EAAE,CAAC,SAAS;AAGpD,SAASC,QAAM,KAAK,MAAM,QAAQ,OAAO;AAQvC,QAAO,IAAI,SAAS;EALlB,QAAQ,QAAQ,KAAK,SAAS;GAAE,GAAG,IAAI;GAAQ,GAAI,KAAK,UAAU,EAAE;GAAG;EACvE,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI;EAC5B,oBAAoB,KAAK,sBAAsB,IAAI;EACnD,QAAQ,KAAK,UAAU,IAAI;EAEL,CAAC;;AAG3B,SAAS,iBAAiB,QAAQ,MAAM;CACtC,IAAI,MAAM,KAAK,gBAAgB;AAC/B,MAAK,MAAM,QAAQ,aAAa,MAAM,EAAE,CACtC,KAAI,KAAK,MACP,QAAO,KAAK,QAAQ,OAAO,MAAM;AAGrC,QAAO;;AAIT,SAAS,gBAAgB,QAAQ,MAAM;CAGrC,MAAM,SAAS,iBAAiB,QAAQ,KAAK,GAAG,IAAI,KAAK;AAEzD,gBAAa,aAAa,UAAU,YAAY;AAC9C,MAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AAC/B,OAAI,UAAU;IACZ,MAAM,cAAc,KAAK,YAAY;IACrC,MAAM,OAAO,OAAO,SAAS;IAiB7B,MAAM,SAAS,KAAK,MAAM,cAAc,KAAK;AAC7C,SAAK,YAAY,SAAS;AAC1B,SAAK,aAAa,SAAS,OAAO;;AAEpC,UAAO;QAEP,QAAO;IAER,KAAK;AAIR,gBAAa,QAAQ,UAAU,YAAY;AACzC,MAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AAC/B,OAAI,UAAU;IACZ,MAAM,WAAW,KAAK,YAAY;AAClC,SAAK,aAAa;AAClB,SAAK,YAAY,WAAW,OAAO,UAAU;;AAE/C,UAAO;QAEP,QAAO;IAER,KAAK;;AAIV,SAAS,aAAa,MAAM;CAC1B,MAAM,UAAU,EAAE;AAClB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,CAC7C,KAAI,UAAU,EACZ,SAAQ,OAAO;AAGnB,QAAO;;;;;;;;;;;;;;;AAgBT,IAAqB,WAArB,MAAqB,SAAS;;;;CAI5B,YAAY,QAAQ;EAClB,MAAM,WAAW,OAAO,uBAAuB,cAAc;EAC7D,IAAI,SAAS,WAAW,iBAAiB;AAEzC,MAAI,OAAO,OACT,UAAS,OAAO;;;;AAMlB,OAAK,SAAS,OAAO;;;;AAIrB,OAAK,MAAM,OAAO,OAAO,OAAO,QAAQ;;;;AAIxC,OAAK,qBAAqB,WAAW,aAAa;;;;AAIlD,OAAK,UAAU,OAAO,WAAW;;;;AAIjC,OAAK,SAAS;;;;AAId,OAAK,kBAAkB;;;;;;;;;;;CAYzB,OAAO,WAAW,OAAO,MAAM;AAC7B,SAAO,SAAS,WAAW,EAAE,cAAc,OAAO,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;CAuB3D,OAAO,WAAW,KAAK,OAAO,EAAE,EAAE;AAChC,MAAI,OAAO,QAAQ,OAAO,QAAQ,SAChC,OAAM,IAAI,qBACR,+DACE,QAAQ,OAAO,SAAS,OAAO,MAElC;AAGH,SAAO,IAAI,SAAS;GAClB,QAAQ,gBAAgB,KAAK,SAAS,cAAc;GACpD,KAAK,OAAO,WAAW,KAAK;GAC5B,oBAAoB,KAAK;GACzB,QAAQ,KAAK;GACd,CAAC;;;;;;;;;;;;CAaJ,OAAO,iBAAiB,cAAc;AACpC,MAAI,SAAS,aAAa,CACxB,QAAO,SAAS,WAAW,aAAa;WAC/B,SAAS,WAAW,aAAa,CAC1C,QAAO;WACE,OAAO,iBAAiB,SACjC,QAAO,SAAS,WAAW,aAAa;MAExC,OAAM,IAAI,qBACR,6BAA6B,aAAa,WAAW,OAAO,eAC7D;;;;;;;;;;;;;;;;CAkBL,OAAO,QAAQ,MAAM,MAAM;EACzB,MAAM,CAAC,UAAU,iBAAiB,KAAK;AACvC,MAAI,OACF,QAAO,SAAS,WAAW,QAAQ,KAAK;MAExC,QAAO,SAAS,QAAQ,cAAc,cAAc,KAAK,+BAA+B;;;;;;;;;;;;;;;;;;CAoB5F,OAAO,YAAY,MAAM,MAAM;EAC7B,MAAM,CAAC,UAAU,iBAAiB,KAAK;AACvC,MAAI,OACF,QAAO,SAAS,WAAW,QAAQ,KAAK;MAExC,QAAO,SAAS,QAAQ,cAAc,cAAc,KAAK,+BAA+B;;;;;;;;CAU5F,OAAO,QAAQ,QAAQ,cAAc,MAAM;AACzC,MAAI,CAAC,OACH,OAAM,IAAI,qBAAqB,mDAAmD;EAGpF,MAAM,UAAU,kBAAkB,UAAU,SAAS,IAAI,QAAQ,QAAQ,YAAY;AAErF,MAAI,SAAS,eACX,OAAM,IAAI,qBAAqB,QAAQ;MAEvC,QAAO,IAAI,SAAS,EAAE,SAAS,CAAC;;;;;CAOpC,OAAO,cAAc,MAAM;EACzB,MAAM,aAAa;GACjB,MAAM;GACN,OAAO;GACP,SAAS;GACT,UAAU;GACV,OAAO;GACP,QAAQ;GACR,MAAM;GACN,OAAO;GACP,KAAK;GACL,MAAM;GACN,MAAM;GACN,OAAO;GACP,QAAQ;GACR,SAAS;GACT,QAAQ;GACR,SAAS;GACT,aAAa;GACb,cAAc;GACf,CAAC,OAAO,KAAK,aAAa,GAAG;AAE9B,MAAI,CAAC,WAAY,OAAM,IAAI,iBAAiB,KAAK;AAEjD,SAAO;;;;;;;CAQT,OAAO,WAAW,GAAG;AACnB,SAAQ,KAAK,EAAE,mBAAoB;;;;;;CAOrC,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,KAAK,IAAI,SAAS;;;;;;;CAQ1C,IAAI,kBAAkB;AACpB,SAAO,KAAK,UAAU,KAAK,IAAI,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;CAyBnD,SAAS,KAAK,OAAO,EAAE,EAAE;EAEvB,MAAM,UAAU;GACd,GAAG;GACH,OAAO,KAAK,UAAU,SAAS,KAAK,UAAU;GAC/C;AACD,SAAO,KAAK,UACR,UAAU,OAAO,KAAK,KAAK,QAAQ,CAAC,yBAAyB,MAAM,IAAI,GACvEF;;;;;;;;;;;;;;;;CAiBN,QAAQ,OAAO,EAAE,EAAE;AACjB,MAAI,CAAC,KAAK,QAAS,QAAOA;EAE1B,MAAM,IAAIC,eACP,KAAK,SAAS;GACb,MAAM,MAAM,KAAK,OAAO;AACxB,OAAI,YAAY,IAAI,CAClB,QAAO;AAET,UAAO,KAAK,IACT,gBAAgB;IAAE,OAAO;IAAQ,aAAa;IAAQ,GAAG;IAAM,MAAM,KAAK,MAAM,GAAG,GAAG;IAAE,CAAC,CACzF,OAAO,IAAI;IACd,CACD,QAAQ,MAAM,EAAE;AAEnB,SAAO,KAAK,IACT,cAAc;GAAE,MAAM;GAAe,OAAO,KAAK,aAAa;GAAU,GAAG;GAAM,CAAC,CAClF,OAAO,EAAE;;;;;;;CAQd,WAAW;AACT,MAAI,CAAC,KAAK,QAAS,QAAO,EAAE;AAC5B,SAAO,EAAE,GAAG,KAAK,QAAQ;;;;;;;;;;;;CAa3B,QAAQ;AAEN,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,IAAI,IAAI;AACR,MAAI,KAAK,UAAU,EAAG,MAAK,KAAK,QAAQ;AACxC,MAAI,KAAK,WAAW,KAAK,KAAK,aAAa,EAAG,MAAK,KAAK,SAAS,KAAK,WAAW,IAAI;AACrF,MAAI,KAAK,UAAU,EAAG,MAAK,KAAK,QAAQ;AACxC,MAAI,KAAK,SAAS,EAAG,MAAK,KAAK,OAAO;AACtC,MAAI,KAAK,UAAU,KAAK,KAAK,YAAY,KAAK,KAAK,YAAY,KAAK,KAAK,iBAAiB,EACxF,MAAK;AACP,MAAI,KAAK,UAAU,EAAG,MAAK,KAAK,QAAQ;AACxC,MAAI,KAAK,YAAY,EAAG,MAAK,KAAK,UAAU;AAC5C,MAAI,KAAK,YAAY,KAAK,KAAK,iBAAiB,EAG9C,MAAK,QAAQ,KAAK,UAAU,KAAK,eAAe,KAAM,EAAE,GAAG;AAC7D,MAAI,MAAM,IAAK,MAAK;AACpB,SAAO;;;;;;;;;;;;;;;;;;CAmBT,UAAU,OAAO,EAAE,EAAE;AACnB,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,SAAS,KAAK,UAAU;AAC9B,MAAI,SAAS,KAAK,UAAU,MAAU,QAAO;AAE7C,SAAO;GACL,sBAAsB;GACtB,iBAAiB;GACjB,eAAe;GACf,QAAQ;GACR,GAAG;GACH,eAAe;GAChB;AAGD,SADiB,SAAS,WAAW,QAAQ,EAAE,MAAM,OAAO,CAC7C,CAAC,UAAU,KAAK;;;;;;CAOjC,SAAS;AACP,SAAO,KAAK,OAAO;;;;;;CAOrB,WAAW;AACT,SAAO,KAAK,OAAO;;;;;;CAOrB,CAAC,OAAO,IAAI,6BAA6B,IAAI;AAC3C,MAAI,KAAK,QACP,QAAO,sBAAsB,KAAK,UAAU,KAAK,OAAO,CAAC;MAEzD,QAAO,+BAA+B,KAAK,cAAc;;;;;;CAQ7D,WAAW;AACT,MAAI,CAAC,KAAK,QAAS,QAAO;AAE1B,SAAO,iBAAiB,KAAK,QAAQ,KAAK,OAAO;;;;;;CAOnD,UAAU;AACR,SAAO,KAAK,UAAU;;;;;;;CAQxB,KAAK,UAAU;AACb,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,MAAM,SAAS,iBAAiB,SAAS,EAC7C,SAAS,EAAE;AAEb,OAAK,MAAM,KAAKA,eACd,KAAI,eAAe,IAAI,QAAQ,EAAE,IAAI,eAAe,KAAK,QAAQ,EAAE,CACjE,QAAO,KAAK,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE;AAIxC,SAAOC,QAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,KAAK;;;;;;;CAQ9C,MAAM,UAAU;AACd,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,MAAM,SAAS,iBAAiB,SAAS;AAC/C,SAAO,KAAK,KAAK,IAAI,QAAQ,CAAC;;;;;;;;;CAUhC,SAAS,IAAI;AACX,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,SAAS,EAAE;AACjB,OAAK,MAAM,KAAK,OAAO,KAAK,KAAK,OAAO,CACtC,QAAO,KAAK,SAAS,GAAG,KAAK,OAAO,IAAI,EAAE,CAAC;AAE7C,SAAOA,QAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,KAAK;;;;;;;;;;CAW9C,IAAI,MAAM;AACR,SAAO,KAAK,SAAS,cAAc,KAAK;;;;;;;;;CAU1C,IAAI,QAAQ;AACV,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,QAAQ;GAAE,GAAG,KAAK;GAAQ,GAAG,gBAAgB,QAAQ,SAAS,cAAc;GAAE;AACpF,SAAOA,QAAM,MAAM,EAAE,QAAQ,OAAO,CAAC;;;;;;;CAQvC,YAAY,EAAE,QAAQ,iBAAiB,oBAAoB,WAAW,EAAE,EAAE;EAExE,MAAM,OAAO;GAAE,KADH,KAAK,IAAI,MAAM;IAAE;IAAQ;IAAiB,CACpC;GAAE;GAAQ;GAAoB;AAChD,SAAOA,QAAM,MAAM,KAAK;;;;;;;;;;CAW1B,GAAG,MAAM;AACP,SAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,IAAI,KAAK,GAAG;;;;;;;;;;;;;;;;;CAkBvD,YAAY;AACV,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,OAAO,KAAK,UAAU;AAC5B,kBAAgB,KAAK,QAAQ,KAAK;AAClC,SAAOA,QAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,KAAK;;;;;;;CAQ5C,UAAU;AACR,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,OAAO,aAAa,KAAK,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;AACnE,SAAOA,QAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,KAAK;;;;;;;CAQ5C,QAAQ,GAAG,OAAO;AAChB,MAAI,CAAC,KAAK,QAAS,QAAO;AAE1B,MAAI,MAAM,WAAW,EACnB,QAAO;AAGT,UAAQ,MAAM,KAAK,MAAM,SAAS,cAAc,EAAE,CAAC;EAEnD,MAAM,QAAQ,EAAE,EACd,cAAc,EAAE,EAChB,OAAO,KAAK,UAAU;EACxB,IAAI;AAEJ,OAAK,MAAM,KAAKD,eACd,KAAI,MAAM,QAAQ,EAAE,IAAI,GAAG;AACzB,cAAW;GAEX,IAAI,MAAM;AAGV,QAAK,MAAM,MAAM,aAAa;AAC5B,WAAO,KAAK,OAAO,IAAI,KAAK,YAAY;AACxC,gBAAY,MAAM;;AAIpB,OAAI,SAAS,KAAK,GAAG,CACnB,QAAO,KAAK;GAKd,MAAM,IAAI,KAAK,MAAM,IAAI;AACzB,SAAM,KAAK;AACX,eAAY,MAAM,MAAM,MAAO,IAAI,OAAQ;aAGlC,SAAS,KAAK,GAAG,CAC1B,aAAY,KAAK,KAAK;AAM1B,OAAK,MAAM,OAAO,YAChB,KAAI,YAAY,SAAS,EACvB,OAAM,aACJ,QAAQ,WAAW,YAAY,OAAO,YAAY,OAAO,KAAK,OAAO,UAAU;AAIrF,kBAAgB,KAAK,QAAQ,MAAM;AACnC,SAAOC,QAAM,MAAM,EAAE,QAAQ,OAAO,EAAE,KAAK;;;;;;;CAQ7C,aAAa;AACX,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,KAAK,QACV,SACA,UACA,SACA,QACA,SACA,WACA,WACA,eACD;;;;;;;CAQH,SAAS;AACP,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,UAAU,EAAE;AAClB,OAAK,MAAM,KAAK,OAAO,KAAK,KAAK,OAAO,CACtC,SAAQ,KAAK,KAAK,OAAO,OAAO,IAAI,IAAI,CAAC,KAAK,OAAO;AAEvD,SAAOA,QAAM,MAAM,EAAE,QAAQ,SAAS,EAAE,KAAK;;;;;;CAO/C,IAAI,QAAQ;AACV,SAAO,KAAK,UAAU,KAAK,OAAO,SAAS,IAAI;;;;;;CAOjD,IAAI,WAAW;AACb,SAAO,KAAK,UAAU,KAAK,OAAO,YAAY,IAAI;;;;;;CAOpD,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,KAAK,OAAO,UAAU,IAAI;;;;;;CAOlD,IAAI,QAAQ;AACV,SAAO,KAAK,UAAU,KAAK,OAAO,SAAS,IAAI;;;;;;CAOjD,IAAI,OAAO;AACT,SAAO,KAAK,UAAU,KAAK,OAAO,QAAQ,IAAI;;;;;;CAOhD,IAAI,QAAQ;AACV,SAAO,KAAK,UAAU,KAAK,OAAO,SAAS,IAAI;;;;;;CAOjD,IAAI,UAAU;AACZ,SAAO,KAAK,UAAU,KAAK,OAAO,WAAW,IAAI;;;;;;CAOnD,IAAI,UAAU;AACZ,SAAO,KAAK,UAAU,KAAK,OAAO,WAAW,IAAI;;;;;;CAOnD,IAAI,eAAe;AACjB,SAAO,KAAK,UAAU,KAAK,OAAO,gBAAgB,IAAI;;;;;;;CAQxD,IAAI,UAAU;AACZ,SAAO,KAAK,YAAY;;;;;;CAO1B,IAAI,gBAAgB;AAClB,SAAO,KAAK,UAAU,KAAK,QAAQ,SAAS;;;;;;CAO9C,IAAI,qBAAqB;AACvB,SAAO,KAAK,UAAU,KAAK,QAAQ,cAAc;;;;;;;;CASnD,OAAO,OAAO;AACZ,MAAI,CAAC,KAAK,WAAW,CAAC,MAAM,QAC1B,QAAO;AAGT,MAAI,CAAC,KAAK,IAAI,OAAO,MAAM,IAAI,CAC7B,QAAO;EAGT,SAAS,GAAG,IAAI,IAAI;AAElB,OAAI,OAAO,KAAA,KAAa,OAAO,EAAG,QAAO,OAAO,KAAA,KAAa,OAAO;AACpE,UAAO,OAAO;;AAGhB,OAAK,MAAM,KAAKD,eACd,KAAI,CAAC,GAAG,KAAK,OAAO,IAAI,MAAM,OAAO,GAAG,CACtC,QAAO;AAGX,SAAO;;;;;ACn9BX,MAAME,YAAU;AAGhB,SAAS,iBAAiB,OAAO,KAAK;AACpC,KAAI,CAAC,SAAS,CAAC,MAAM,QACnB,QAAO,SAAS,QAAQ,2BAA2B;UAC1C,CAAC,OAAO,CAAC,IAAI,QACtB,QAAO,SAAS,QAAQ,yBAAyB;UACxC,MAAM,MACf,QAAO,SAAS,QACd,oBACA,qEAAqE,MAAM,OAAO,CAAC,WAAW,IAAI,OAAO,GAC1G;KAED,QAAO;;;;;;;;;;;;;;AAgBX,IAAqB,WAArB,MAAqB,SAAS;;;;CAI5B,YAAY,QAAQ;;;;AAIlB,OAAK,IAAI,OAAO;;;;AAIhB,OAAK,IAAI,OAAO;;;;AAIhB,OAAK,UAAU,OAAO,WAAW;;;;AAIjC,OAAK,kBAAkB;;;;;;;;CASzB,OAAO,QAAQ,QAAQ,cAAc,MAAM;AACzC,MAAI,CAAC,OACH,OAAM,IAAI,qBAAqB,mDAAmD;EAGpF,MAAM,UAAU,kBAAkB,UAAU,SAAS,IAAI,QAAQ,QAAQ,YAAY;AAErF,MAAI,SAAS,eACX,OAAM,IAAI,qBAAqB,QAAQ;MAEvC,QAAO,IAAI,SAAS,EAAE,SAAS,CAAC;;;;;;;;CAUpC,OAAO,cAAc,OAAO,KAAK;EAC/B,MAAM,aAAa,iBAAiB,MAAM,EACxC,WAAW,iBAAiB,IAAI;EAElC,MAAM,gBAAgB,iBAAiB,YAAY,SAAS;AAE5D,MAAI,iBAAiB,KACnB,QAAO,IAAI,SAAS;GAClB,OAAO;GACP,KAAK;GACN,CAAC;MAEF,QAAO;;;;;;;;CAUX,OAAO,MAAM,OAAO,UAAU;EAC5B,MAAM,MAAM,SAAS,iBAAiB,SAAS,EAC7C,KAAK,iBAAiB,MAAM;AAC9B,SAAO,SAAS,cAAc,IAAI,GAAG,KAAK,IAAI,CAAC;;;;;;;;CASjD,OAAO,OAAO,KAAK,UAAU;EAC3B,MAAM,MAAM,SAAS,iBAAiB,SAAS,EAC7C,KAAK,iBAAiB,IAAI;AAC5B,SAAO,SAAS,cAAc,GAAG,MAAM,IAAI,EAAE,GAAG;;;;;;;;;;CAWlD,OAAO,QAAQ,MAAM,MAAM;EACzB,MAAM,CAAC,GAAG,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE;AACzC,MAAI,KAAK,GAAG;GACV,IAAI,OAAO;AACX,OAAI;AACF,YAAQ,SAAS,QAAQ,GAAG,KAAK;AACjC,mBAAe,MAAM;YACd,GAAG;AACV,mBAAe;;GAGjB,IAAI,KAAK;AACT,OAAI;AACF,UAAM,SAAS,QAAQ,GAAG,KAAK;AAC/B,iBAAa,IAAI;YACV,GAAG;AACV,iBAAa;;AAGf,OAAI,gBAAgB,WAClB,QAAO,SAAS,cAAc,OAAO,IAAI;AAG3C,OAAI,cAAc;IAChB,MAAM,MAAM,SAAS,QAAQ,GAAG,KAAK;AACrC,QAAI,IAAI,QACN,QAAO,SAAS,MAAM,OAAO,IAAI;cAE1B,YAAY;IACrB,MAAM,MAAM,SAAS,QAAQ,GAAG,KAAK;AACrC,QAAI,IAAI,QACN,QAAO,SAAS,OAAO,KAAK,IAAI;;;AAItC,SAAO,SAAS,QAAQ,cAAc,cAAc,KAAK,+BAA+B;;;;;;;CAQ1F,OAAO,WAAW,GAAG;AACnB,SAAQ,KAAK,EAAE,mBAAoB;;;;;;CAOrC,IAAI,QAAQ;AACV,SAAO,KAAK,UAAU,KAAK,IAAI;;;;;;CAOjC,IAAI,MAAM;AACR,SAAO,KAAK,UAAU,KAAK,IAAI;;;;;;CAOjC,IAAI,UAAU;AACZ,SAAO,KAAK,kBAAkB;;;;;;CAOhC,IAAI,gBAAgB;AAClB,SAAO,KAAK,UAAU,KAAK,QAAQ,SAAS;;;;;;CAO9C,IAAI,qBAAqB;AACvB,SAAO,KAAK,UAAU,KAAK,QAAQ,cAAc;;;;;;;CAQnD,OAAO,OAAO,gBAAgB;AAC5B,SAAO,KAAK,UAAU,KAAK,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG;;;;;;;;;;;CAY/D,MAAM,OAAO,gBAAgB,MAAM;AACjC,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,QAAQ,KAAK,MAAM,QAAQ,MAAM,KAAK;EAC5C,IAAI;AACJ,MAAI,MAAM,eACR,OAAM,KAAK,IAAI,YAAY,EAAE,QAAQ,MAAM,QAAQ,CAAC;MAEpD,OAAM,KAAK;AAEb,QAAM,IAAI,QAAQ,MAAM,KAAK;AAC7B,SAAO,KAAK,MAAM,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS;;;;;;;CAQ5F,QAAQ,MAAM;AACZ,SAAO,KAAK,UAAU,KAAK,SAAS,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,KAAK,GAAG,KAAK,GAAG;;;;;;CAOlF,UAAU;AACR,SAAO,KAAK,EAAE,SAAS,KAAK,KAAK,EAAE,SAAS;;;;;;;CAQ9C,QAAQ,UAAU;AAChB,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,KAAK,IAAI;;;;;;;CAQlB,SAAS,UAAU;AACjB,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,KAAK,KAAK;;;;;;;CAQnB,SAAS,UAAU;AACjB,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,KAAK,KAAK,YAAY,KAAK,IAAI;;;;;;;;;CAUxC,IAAI,EAAE,OAAO,QAAQ,EAAE,EAAE;AACvB,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,SAAS,cAAc,SAAS,KAAK,GAAG,OAAO,KAAK,EAAE;;;;;;;CAQ/D,QAAQ,GAAG,WAAW;AACpB,MAAI,CAAC,KAAK,QAAS,QAAO,EAAE;EAC5B,MAAM,SAAS,UACV,IAAI,iBAAiB,CACrB,QAAQ,MAAM,KAAK,SAAS,EAAE,CAAC,CAC/B,MAAM,GAAG,MAAM,EAAE,UAAU,GAAG,EAAE,UAAU,CAAC,EAC9C,UAAU,EAAE;EACd,IAAI,EAAE,MAAM,MACV,IAAI;AAEN,SAAO,IAAI,KAAK,GAAG;GACjB,MAAM,QAAQ,OAAO,MAAM,KAAK,GAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,IAAI;AACrC,WAAQ,KAAK,SAAS,cAAc,GAAG,KAAK,CAAC;AAC7C,OAAI;AACJ,QAAK;;AAGP,SAAO;;;;;;;;CAST,QAAQ,UAAU;EAChB,MAAM,MAAM,SAAS,iBAAiB,SAAS;AAE/C,MAAI,CAAC,KAAK,WAAW,CAAC,IAAI,WAAW,IAAI,GAAG,eAAe,KAAK,EAC9D,QAAO,EAAE;EAGX,IAAI,EAAE,MAAM,MACV,MAAM,GACN;EAEF,MAAM,UAAU,EAAE;AAClB,SAAO,IAAI,KAAK,GAAG;GACjB,MAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,UAAU,MAAM,IAAI,IAAI,CAAC;AAC3D,UAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,IAAI;AACnC,WAAQ,KAAK,SAAS,cAAc,GAAG,KAAK,CAAC;AAC7C,OAAI;AACJ,UAAO;;AAGT,SAAO;;;;;;;CAQT,cAAc,eAAe;AAC3B,MAAI,CAAC,KAAK,QAAS,QAAO,EAAE;AAC5B,SAAO,KAAK,QAAQ,KAAK,QAAQ,GAAG,cAAc,CAAC,MAAM,GAAG,cAAc;;;;;;;CAQ5E,SAAS,OAAO;AACd,SAAO,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM;;;;;;;CAQ5C,WAAW,OAAO;AAChB,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,CAAC,KAAK,MAAM,CAAC,MAAM;;;;;;;CAQ5B,SAAS,OAAO;AACd,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,CAAC,MAAM,MAAM,CAAC,KAAK;;;;;;;CAQ5B,QAAQ,OAAO;AACb,MAAI,CAAC,KAAK,QAAS,QAAO;AAC1B,SAAO,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM;;;;;;;CAQ9C,OAAO,OAAO;AACZ,MAAI,CAAC,KAAK,WAAW,CAAC,MAAM,QAC1B,QAAO;AAGT,SAAO,KAAK,EAAE,OAAO,MAAM,EAAE,IAAI,KAAK,EAAE,OAAO,MAAM,EAAE;;;;;;;;;CAUzD,aAAa,OAAO;AAClB,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,GAC1C,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;AAExC,MAAI,KAAK,EACP,QAAO;MAEP,QAAO,SAAS,cAAc,GAAG,EAAE;;;;;;;;CAUvC,MAAM,OAAO;AACX,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,GAC1C,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;AACxC,SAAO,SAAS,cAAc,GAAG,EAAE;;;;;;;;CASrC,OAAO,MAAM,WAAW;EACtB,MAAM,CAAC,OAAO,SAAS,UACpB,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,CACzB,QACE,CAAC,OAAO,UAAU,SAAS;AAC1B,OAAI,CAAC,QACH,QAAO,CAAC,OAAO,KAAK;YACX,QAAQ,SAAS,KAAK,IAAI,QAAQ,WAAW,KAAK,CAC3D,QAAO,CAAC,OAAO,QAAQ,MAAM,KAAK,CAAC;OAEnC,QAAO,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK;KAG1C,CAAC,EAAE,EAAE,KAAK,CACX;AACH,MAAI,MACF,OAAM,KAAK,MAAM;AAEnB,SAAO;;;;;;;CAQT,OAAO,IAAI,WAAW;EACpB,IAAI,QAAQ,MACV,eAAe;EACjB,MAAM,UAAU,EAAE,EAChB,OAAO,UAAU,KAAK,MAAM,CAC1B;GAAE,MAAM,EAAE;GAAG,MAAM;GAAK,EACxB;GAAE,MAAM,EAAE;GAAG,MAAM;GAAK,CACzB,CAAC,EAEF,MADY,MAAM,UAAU,OAAO,GAAG,KACvB,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK;AAEjD,OAAK,MAAM,KAAK,KAAK;AACnB,mBAAgB,EAAE,SAAS,MAAM,IAAI;AAErC,OAAI,iBAAiB,EACnB,SAAQ,EAAE;QACL;AACL,QAAI,SAAS,CAAC,UAAU,CAAC,EAAE,KACzB,SAAQ,KAAK,SAAS,cAAc,OAAO,EAAE,KAAK,CAAC;AAGrD,YAAQ;;;AAIZ,SAAO,SAAS,MAAM,QAAQ;;;;;;;CAQhC,WAAW,GAAG,WAAW;AACvB,SAAO,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAC1C,KAAK,MAAM,KAAK,aAAa,EAAE,CAAC,CAChC,QAAQ,MAAM,KAAK,CAAC,EAAE,SAAS,CAAC;;;;;;CAOrC,WAAW;AACT,MAAI,CAAC,KAAK,QAAS,QAAOA;AAC1B,SAAO,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,EAAE,OAAO,CAAC;;;;;;CAOhD,CAAC,OAAO,IAAI,6BAA6B,IAAI;AAC3C,MAAI,KAAK,QACP,QAAO,qBAAqB,KAAK,EAAE,OAAO,CAAC,SAAS,KAAK,EAAE,OAAO,CAAC;MAEnE,QAAO,+BAA+B,KAAK,cAAc;;;;;;;;;;;;;;;;;;;;CAsB7D,eAAe,aAAaC,YAAoB,OAAO,EAAE,EAAE;AACzD,SAAO,KAAK,UACR,UAAU,OAAO,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE,WAAW,CAAC,eAAe,KAAK,GACzED;;;;;;;;CASN,MAAM,MAAM;AACV,MAAI,CAAC,KAAK,QAAS,QAAOA;AAC1B,SAAO,GAAG,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,KAAK;;;;;;;;CASpD,YAAY;AACV,MAAI,CAAC,KAAK,QAAS,QAAOA;AAC1B,SAAO,GAAG,KAAK,EAAE,WAAW,CAAC,GAAG,KAAK,EAAE,WAAW;;;;;;;;;CAUpD,UAAU,MAAM;AACd,MAAI,CAAC,KAAK,QAAS,QAAOA;AAC1B,SAAO,GAAG,KAAK,EAAE,UAAU,KAAK,CAAC,GAAG,KAAK,EAAE,UAAU,KAAK;;;;;;;;;;;;;CAc5D,SAAS,YAAY,EAAE,YAAY,UAAU,EAAE,EAAE;AAC/C,MAAI,CAAC,KAAK,QAAS,QAAOA;AAC1B,SAAO,GAAG,KAAK,EAAE,SAAS,WAAW,GAAG,YAAY,KAAK,EAAE,SAAS,WAAW;;;;;;;;;;;;;;CAejF,WAAW,MAAM,MAAM;AACrB,MAAI,CAAC,KAAK,QACR,QAAO,SAAS,QAAQ,KAAK,cAAc;AAE7C,SAAO,KAAK,EAAE,KAAK,KAAK,GAAG,MAAM,KAAK;;;;;;;;;CAUxC,aAAa,OAAO;AAClB,SAAO,SAAS,cAAc,MAAM,KAAK,EAAE,EAAE,MAAM,KAAK,EAAE,CAAC;;;;;;;;ACnoB/D,IAAqB,OAArB,MAA0B;;;;;;CAMxB,OAAO,OAAO,OAAO,SAAS,aAAa;EACzC,MAAM,QAAQ,SAAS,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AAE7D,SAAO,CAAC,KAAK,eAAe,MAAM,WAAW,MAAM,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;;;;;;;CAQvE,OAAO,gBAAgB,MAAM;AAC3B,SAAO,SAAS,YAAY,KAAK;;;;;;;;;;;;;;;;CAiBnC,OAAO,cAAc,OAAO;AAC1B,SAAO,cAAc,OAAO,SAAS,YAAY;;;;;;;;;CAUnD,OAAO,eAAe,EAAE,SAAS,MAAM,SAAS,SAAS,EAAE,EAAE;AAC3D,UAAQ,UAAU,OAAO,OAAO,OAAO,EAAE,gBAAgB;;;;;;;;;;CAW3D,OAAO,0BAA0B,EAAE,SAAS,MAAM,SAAS,SAAS,EAAE,EAAE;AACtE,UAAQ,UAAU,OAAO,OAAO,OAAO,EAAE,uBAAuB;;;;;;;;;CAUlE,OAAO,mBAAmB,EAAE,SAAS,MAAM,SAAS,SAAS,EAAE,EAAE;AAE/D,UAAQ,UAAU,OAAO,OAAO,OAAO,EAAE,gBAAgB,CAAC,OAAO;;;;;;;;;;;;;;;;;;;CAoBnE,OAAO,OACL,SAAS,QACT,EAAE,SAAS,MAAM,kBAAkB,MAAM,SAAS,MAAM,iBAAiB,cAAc,EAAE,EACzF;AACA,UAAQ,UAAU,OAAO,OAAO,QAAQ,iBAAiB,eAAe,EAAE,OAAO,OAAO;;;;;;;;;;;;;;;CAgB1F,OAAO,aACL,SAAS,QACT,EAAE,SAAS,MAAM,kBAAkB,MAAM,SAAS,MAAM,iBAAiB,cAAc,EAAE,EACzF;AACA,UAAQ,UAAU,OAAO,OAAO,QAAQ,iBAAiB,eAAe,EAAE,OAAO,QAAQ,KAAK;;;;;;;;;;;;;;;;CAiBhG,OAAO,SAAS,SAAS,QAAQ,EAAE,SAAS,MAAM,kBAAkB,MAAM,SAAS,SAAS,EAAE,EAAE;AAC9F,UAAQ,UAAU,OAAO,OAAO,QAAQ,iBAAiB,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;CAelF,OAAO,eACL,SAAS,QACT,EAAE,SAAS,MAAM,kBAAkB,MAAM,SAAS,SAAS,EAAE,EAC7D;AACA,UAAQ,UAAU,OAAO,OAAO,QAAQ,iBAAiB,KAAK,EAAE,SAAS,QAAQ,KAAK;;;;;;;;;;CAWxF,OAAO,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE;AACvC,SAAO,OAAO,OAAO,OAAO,CAAC,WAAW;;;;;;;;;;;;CAa1C,OAAO,KAAK,SAAS,SAAS,EAAE,SAAS,SAAS,EAAE,EAAE;AACpD,SAAO,OAAO,OAAO,QAAQ,MAAM,UAAU,CAAC,KAAK,OAAO;;;;;;;;;;;CAY5D,OAAO,WAAW;AAChB,SAAO;GAAE,UAAU,aAAa;GAAE,YAAY,mBAAmB;GAAE;;;;;ACxMvE,SAAS,QAAQ,SAAS,OAAO;CAC/B,MAAM,eAAe,OAAO,GAAG,MAAM,GAAG,EAAE,eAAe,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,SAAS,EACvF,KAAK,YAAY,MAAM,GAAG,YAAY,QAAQ;AAChD,QAAO,KAAK,MAAM,SAAS,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC;;AAGvD,SAAS,eAAe,QAAQ,OAAO,OAAO;CAC5C,MAAM,UAAU;EACd,CAAC,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK;EACpC,CAAC,aAAa,GAAG,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE;EACrE,CAAC,WAAW,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG;EAChE,CACE,UACC,GAAG,MAAM;GACR,MAAM,OAAO,QAAQ,GAAG,EAAE;AAC1B,WAAQ,OAAQ,OAAO,KAAM;IAEhC;EACD,CAAC,QAAQ,QAAQ;EAClB;CAED,MAAM,UAAU,EAAE;CAClB,MAAM,UAAU;CAChB,IAAI,aAAa;AAUjB,MAAK,MAAM,CAAC,MAAM,WAAW,QAC3B,KAAI,MAAM,QAAQ,KAAK,IAAI,GAAG;AAC5B,gBAAc;AAEd,UAAQ,QAAQ,OAAO,QAAQ,MAAM;AACrC,cAAY,QAAQ,KAAK,QAAQ;AAEjC,MAAI,YAAY,OAAO;AAErB,WAAQ;AACR,YAAS,QAAQ,KAAK,QAAQ;AAK9B,OAAI,SAAS,OAAO;AAElB,gBAAY;AAEZ,YAAQ;AACR,aAAS,QAAQ,KAAK,QAAQ;;QAGhC,UAAS;;AAKf,QAAO;EAAC;EAAQ;EAAS;EAAW;EAAY;;AAGlD,SAAA,aAAyB,SAAS,OAAO,OAAO,MAAM;CACpD,IAAI,CAAC,QAAQ,SAAS,WAAW,eAAe,eAAe,SAAS,OAAO,MAAM;CAErF,MAAM,kBAAkB,QAAQ;CAEhC,MAAM,kBAAkB,MAAM,QAC3B,MAAM;EAAC;EAAS;EAAW;EAAW;EAAe,CAAC,QAAQ,EAAE,IAAI,EACtE;AAED,KAAI,gBAAgB,WAAW,GAAG;AAChC,MAAI,YAAY,MACd,aAAY,OAAO,KAAK,GAAG,cAAc,GAAG,CAAC;AAG/C,MAAI,cAAc,OAChB,SAAQ,gBAAgB,QAAQ,gBAAgB,KAAK,mBAAmB,YAAY;;CAIxF,MAAM,WAAW,SAAS,WAAW,SAAS,KAAK;AAEnD,KAAI,gBAAgB,SAAS,EAC3B,QAAO,SAAS,WAAW,iBAAiB,KAAK,CAC9C,QAAQ,GAAG,gBAAgB,CAC3B,KAAK,SAAS;KAEjB,QAAO;;;;AC5FX,MAAM,mBAAmB;CACvB,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,MAAM;CACN,UAAU;CACV,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,SAAS;CACT,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACP;AAED,MAAM,wBAAwB;CAC5B,MAAM,CAAC,MAAM,KAAK;CAClB,SAAS,CAAC,MAAM,KAAK;CACrB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,UAAU,CAAC,OAAO,MAAM;CACxB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,SAAS,CAAC,MAAM,KAAK;CACrB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CAClB,MAAM,CAAC,MAAM,KAAK;CACnB;AAED,MAAM,eAAe,iBAAiB,QAAQ,QAAQ,YAAY,GAAG,CAAC,MAAM,GAAG;AAE/E,SAAgB,YAAY,KAAK;CAC/B,IAAI,QAAQ,SAAS,KAAK,GAAG;AAC7B,KAAI,MAAM,MAAM,EAAE;AAChB,UAAQ;AACR,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACnC,MAAM,OAAO,IAAI,WAAW,EAAE;AAE9B,OAAI,IAAI,GAAG,OAAO,iBAAiB,QAAQ,KAAK,GAC9C,UAAS,aAAa,QAAQ,IAAI,GAAG;OAErC,MAAK,MAAM,OAAO,uBAAuB;IACvC,MAAM,CAAC,KAAK,OAAO,sBAAsB;AACzC,QAAI,QAAQ,OAAO,QAAQ,IACzB,UAAS,OAAO;;;AAKxB,SAAO,SAAS,OAAO,GAAG;OAE1B,QAAO;;AAIX,SAAgB,WAAW,EAAE,mBAAmB,SAAS,IAAI;AAC3D,QAAO,IAAI,OAAO,GAAG,iBAAiB,mBAAmB,UAAU,SAAS;;;;ACjE9E,MAAM,cAAc;AAEpB,SAAS,QAAQ,OAAO,QAAQ,MAAM,GAAG;AACvC,QAAO;EAAE;EAAO,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;EAAE;;AAIxD,MAAM,cAAc,KADP,OAAO,aAAa,IACJ,CAAC;AAC9B,MAAM,oBAAoB,IAAI,OAAO,aAAa,IAAI;AAEtD,SAAS,aAAa,GAAG;AAGvB,QAAO,EAAE,QAAQ,OAAO,OAAO,CAAC,QAAQ,mBAAmB,YAAY;;AAGzE,SAAS,qBAAqB,GAAG;AAC/B,QAAO,EACJ,QAAQ,OAAO,GAAG,CAClB,QAAQ,mBAAmB,IAAI,CAC/B,aAAa;;AAGlB,SAAS,MAAM,SAAS,YAAY;AAClC,KAAI,YAAY,KACd,QAAO;KAEP,QAAO;EACL,OAAO,OAAO,QAAQ,IAAI,aAAa,CAAC,KAAK,IAAI,CAAC;EAClD,QAAQ,CAAC,OACP,QAAQ,WAAW,MAAM,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,CAAC,GAAG;EACnF;;AAIL,SAAS,OAAO,OAAO,QAAQ;AAC7B,QAAO;EAAE;EAAO,QAAQ,GAAG,GAAG,OAAO,aAAa,GAAG,EAAE;EAAE;EAAQ;;AAGnE,SAAS,OAAO,OAAO;AACrB,QAAO;EAAE;EAAO,QAAQ,CAAC,OAAO;EAAG;;AAGrC,SAAS,YAAY,OAAO;AAC1B,QAAO,MAAM,QAAQ,+BAA+B,OAAO;;;;;;AAO7D,SAAS,aAAa,OAAO,KAAK;CAChC,MAAM,MAAM,WAAW,IAAI,EACzB,MAAM,WAAW,KAAK,MAAM,EAC5B,QAAQ,WAAW,KAAK,MAAM,EAC9B,OAAO,WAAW,KAAK,MAAM,EAC7B,MAAM,WAAW,KAAK,MAAM,EAC5B,WAAW,WAAW,KAAK,QAAQ,EACnC,aAAa,WAAW,KAAK,QAAQ,EACrC,WAAW,WAAW,KAAK,QAAQ,EACnC,YAAY,WAAW,KAAK,QAAQ,EACpC,YAAY,WAAW,KAAK,QAAQ,EACpC,YAAY,WAAW,KAAK,QAAQ,EACpC,WAAW,OAAO;EAAE,OAAO,OAAO,YAAY,EAAE,IAAI,CAAC;EAAE,QAAQ,CAAC,OAAO;EAAG,SAAS;EAAM,GACzF,WAAW,MAAM;AACf,MAAI,MAAM,QACR,QAAO,QAAQ,EAAE;AAEnB,UAAQ,EAAE,KAAV;GAEE,KAAK,IACH,QAAO,MAAM,IAAI,KAAK,QAAQ,EAAE,EAAE;GACpC,KAAK,KACH,QAAO,MAAM,IAAI,KAAK,OAAO,EAAE,EAAE;GAEnC,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,WAAW,eAAe;GAC3C,KAAK,OACH,QAAO,QAAQ,KAAK;GACtB,KAAK,QACH,QAAO,QAAQ,UAAU;GAC3B,KAAK,SACH,QAAO,QAAQ,IAAI;GAErB,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,MACH,QAAO,MAAM,IAAI,OAAO,SAAS,KAAK,EAAE,EAAE;GAC5C,KAAK,OACH,QAAO,MAAM,IAAI,OAAO,QAAQ,KAAK,EAAE,EAAE;GAC3C,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,MACH,QAAO,MAAM,IAAI,OAAO,SAAS,MAAM,EAAE,EAAE;GAC7C,KAAK,OACH,QAAO,MAAM,IAAI,OAAO,QAAQ,MAAM,EAAE,EAAE;GAE5C,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GAErB,KAAK,IACH,QAAO,QAAQ,WAAW;GAC5B,KAAK,MACH,QAAO,QAAQ,MAAM;GAEvB,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GACrB,KAAK,IACH,QAAO,QAAQ,WAAW;GAC5B,KAAK,MACH,QAAO,QAAQ,MAAM;GACvB,KAAK,IACH,QAAO,OAAO,UAAU;GAC1B,KAAK,KACH,QAAO,OAAO,SAAS;GACzB,KAAK,MACH,QAAO,QAAQ,IAAI;GAErB,KAAK,IACH,QAAO,MAAM,IAAI,WAAW,EAAE,EAAE;GAElC,KAAK,OACH,QAAO,QAAQ,KAAK;GACtB,KAAK,KACH,QAAO,QAAQ,WAAW,eAAe;GAE3C,KAAK,IACH,QAAO,QAAQ,SAAS;GAC1B,KAAK,KACH,QAAO,QAAQ,IAAI;GAErB,KAAK;GACL,KAAK,IACH,QAAO,QAAQ,IAAI;GACrB,KAAK,MACH,QAAO,MAAM,IAAI,SAAS,SAAS,MAAM,EAAE,EAAE;GAC/C,KAAK,OACH,QAAO,MAAM,IAAI,SAAS,QAAQ,MAAM,EAAE,EAAE;GAC9C,KAAK,MACH,QAAO,MAAM,IAAI,SAAS,SAAS,KAAK,EAAE,EAAE;GAC9C,KAAK,OACH,QAAO,MAAM,IAAI,SAAS,QAAQ,KAAK,EAAE,EAAE;GAE7C,KAAK;GACL,KAAK,KACH,QAAO,OAAO,IAAI,OAAO,QAAQ,SAAS,OAAO,QAAQ,IAAI,OAAO,KAAK,EAAE,EAAE;GAC/E,KAAK,MACH,QAAO,OAAO,IAAI,OAAO,QAAQ,SAAS,OAAO,IAAI,IAAI,OAAO,IAAI,EAAE,EAAE;GAG1E,KAAK,IACH,QAAO,OAAO,qBAAqB;GAGrC,KAAK,IACH,QAAO,OAAO,YAAY;GAC5B,QACE,QAAO,QAAQ,EAAE;;;CAIzB,MAAM,OAAO,QAAQ,MAAM,IAAI,EAC7B,eAAe,aAChB;AAED,MAAK,QAAQ;AAEb,QAAO;;AAGT,MAAM,0BAA0B;CAC9B,MAAM;EACJ,WAAW;EACX,SAAS;EACV;CACD,OAAO;EACL,SAAS;EACT,WAAW;EACX,OAAO;EACP,MAAM;EACP;CACD,KAAK;EACH,SAAS;EACT,WAAW;EACZ;CACD,SAAS;EACP,OAAO;EACP,MAAM;EACP;CACD,WAAW;CACX,WAAW;CACX,QAAQ;EACN,SAAS;EACT,WAAW;EACZ;CACD,QAAQ;EACN,SAAS;EACT,WAAW;EACZ;CACD,QAAQ;EACN,SAAS;EACT,WAAW;EACZ;CACD,QAAQ;EACN,SAAS;EACT,WAAW;EACZ;CACD,cAAc;EACZ,MAAM;EACN,OAAO;EACR;CACF;AAED,SAAS,aAAa,MAAM,YAAY,cAAc;CACpD,MAAM,EAAE,MAAM,UAAU;AAExB,KAAI,SAAS,WAAW;EACtB,MAAM,UAAU,QAAQ,KAAK,MAAM;AACnC,SAAO;GACL,SAAS,CAAC;GACV,KAAK,UAAU,MAAM;GACtB;;CAGH,MAAM,QAAQ,WAAW;CAKzB,IAAI,aAAa;AACjB,KAAI,SAAS,OACX,KAAI,WAAW,UAAU,KACvB,cAAa,WAAW,SAAS,WAAW;UACnC,WAAW,aAAa,KACjC,KAAI,WAAW,cAAc,SAAS,WAAW,cAAc,MAC7D,cAAa;KAEb,cAAa;KAKf,cAAa,aAAa,SAAS,WAAW;CAGlD,IAAI,MAAM,wBAAwB;AAClC,KAAI,OAAO,QAAQ,SACjB,OAAM,IAAI;AAGZ,KAAI,IACF,QAAO;EACL,SAAS;EACT;EACD;;AAML,SAAS,WAAW,OAAO;AAEzB,QAAO,CAAC,IADG,MAAM,KAAK,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,IAAI,GAC7D,CAAC,IAAI,MAAM;;AAG3B,SAAS,MAAM,OAAO,OAAO,UAAU;CACrC,MAAM,UAAU,MAAM,MAAM,MAAM;AAElC,KAAI,SAAS;EACX,MAAM,MAAM,EAAE;EACd,IAAI,aAAa;AACjB,OAAK,MAAM,KAAK,SACd,KAAI,eAAe,UAAU,EAAE,EAAE;GAC/B,MAAM,IAAI,SAAS,IACjB,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI;AACrC,OAAI,CAAC,EAAE,WAAW,EAAE,MAClB,KAAI,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,MAAM,YAAY,aAAa,OAAO,CAAC;AAE/E,iBAAc;;AAGlB,SAAO,CAAC,SAAS,IAAI;OAErB,QAAO,CAAC,SAAS,EAAE,CAAC;;AAIxB,SAAS,oBAAoB,SAAS;CACpC,MAAM,WAAW,UAAU;AACzB,UAAQ,OAAR;GACE,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK;GACL,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK;GACL,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK;GACL,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,KAAK,IACH,QAAO;GACT,QACE,QAAO;;;CAIb,IAAI,OAAO;CACX,IAAI;AACJ,KAAI,CAAC,YAAY,QAAQ,EAAE,CACzB,QAAO,SAAS,OAAO,QAAQ,EAAE;AAGnC,KAAI,CAAC,YAAY,QAAQ,EAAE,EAAE;AAC3B,MAAI,CAAC,KACH,QAAO,IAAI,gBAAgB,QAAQ,EAAE;AAEvC,mBAAiB,QAAQ;;AAG3B,KAAI,CAAC,YAAY,QAAQ,EAAE,CACzB,SAAQ,KAAK,QAAQ,IAAI,KAAK,IAAI;AAGpC,KAAI,CAAC,YAAY,QAAQ,EAAE;MACrB,QAAQ,IAAI,MAAM,QAAQ,MAAM,EAClC,SAAQ,KAAK;WACJ,QAAQ,MAAM,MAAM,QAAQ,MAAM,EAC3C,SAAQ,IAAI;;AAIhB,KAAI,QAAQ,MAAM,KAAK,QAAQ,EAC7B,SAAQ,IAAI,CAAC,QAAQ;AAGvB,KAAI,CAAC,YAAY,QAAQ,EAAE,CACzB,SAAQ,IAAI,YAAY,QAAQ,EAAE;AAYpC,QAAO;EATM,OAAO,KAAK,QAAQ,CAAC,QAAQ,GAAG,MAAM;GACjD,MAAM,IAAI,QAAQ,EAAE;AACpB,OAAI,EACF,GAAE,KAAK,QAAQ;AAGjB,UAAO;KACN,EAAE,CAEO;EAAE;EAAM;EAAe;;AAGrC,IAAI,qBAAqB;AAEzB,SAAS,mBAAmB;AAC1B,KAAI,CAAC,mBACH,sBAAqB,SAAS,WAAW,cAAc;AAGzD,QAAO;;AAGT,SAAS,sBAAsB,OAAO,QAAQ;AAC5C,KAAI,MAAM,QACR,QAAO;CAIT,MAAM,SAAS,mBADI,UAAU,uBAAuB,MAAM,IACd,EAAE,OAAO;AAErD,KAAI,UAAU,QAAQ,OAAO,SAAS,KAAA,EAAU,CAC9C,QAAO;AAGT,QAAO;;AAGT,SAAgB,kBAAkB,QAAQ,QAAQ;AAChD,QAAO,MAAM,UAAU,OAAO,GAAG,OAAO,KAAK,MAAM,sBAAsB,GAAG,OAAO,CAAC,CAAC;;;;;AAOvF,SAAgB,kBAAkB,QAAQ,OAAO,QAAQ;CACvD,MAAM,SAAS,kBAAkB,UAAU,YAAY,OAAO,EAAE,OAAO,EACrE,QAAQ,OAAO,KAAK,MAAM,aAAa,GAAG,OAAO,CAAC,EAClD,oBAAoB,MAAM,MAAM,MAAM,EAAE,cAAc;AAExD,KAAI,kBACF,QAAO;EAAE;EAAO;EAAQ,eAAe,kBAAkB;EAAe;MACnE;EACL,MAAM,CAAC,aAAa,YAAY,WAAW,MAAM,EAC/C,QAAQ,OAAO,aAAa,IAAI,EAChC,CAAC,YAAY,WAAW,MAAM,OAAO,OAAO,SAAS,EACrD,CAAC,QAAQ,MAAM,kBAAkB,UAC7B,oBAAoB,QAAQ,GAC5B;GAAC;GAAM;GAAM,KAAA;GAAU;AAC7B,MAAI,eAAe,SAAS,IAAI,IAAI,eAAe,SAAS,IAAI,CAC9D,OAAM,IAAI,8BACR,wDACD;AAEH,SAAO;GAAE;GAAO;GAAQ;GAAO;GAAY;GAAS;GAAQ;GAAM;GAAgB;;;AAItF,SAAgB,gBAAgB,QAAQ,OAAO,QAAQ;CACrD,MAAM,EAAE,QAAQ,MAAM,gBAAgB,kBAAkB,kBAAkB,QAAQ,OAAO,OAAO;AAChG,QAAO;EAAC;EAAQ;EAAM;EAAgB;EAAc;;AAGtD,SAAgB,mBAAmB,YAAY,QAAQ;AACrD,KAAI,CAAC,WACH,QAAO;CAIT,MAAM,KADY,UAAU,OAAO,QAAQ,WACvB,CAAC,YAAY,kBAAkB,CAAC;CACpD,MAAM,QAAQ,GAAG,eAAe;CAChC,MAAM,eAAe,GAAG,iBAAiB;AACzC,QAAO,MAAM,KAAK,MAAM,aAAa,GAAG,YAAY,aAAa,CAAC;;;;ACnapE,MAAM,UAAU;AAChB,MAAM,WAAW;AAEjB,SAAS,gBAAgB,MAAM;AAC7B,QAAO,IAAI,QAAQ,oBAAoB,aAAa,KAAK,KAAK,oBAAoB;;;;;AAOpF,SAAS,uBAAuB,IAAI;AAClC,KAAI,GAAG,aAAa,KAClB,IAAG,WAAW,gBAAgB,GAAG,EAAE;AAErC,QAAO,GAAG;;;;;AAMZ,SAAS,4BAA4B,IAAI;AACvC,KAAI,GAAG,kBAAkB,KACvB,IAAG,gBAAgB,gBACjB,GAAG,GACH,GAAG,IAAI,uBAAuB,EAC9B,GAAG,IAAI,gBAAgB,CACxB;AAEH,QAAO,GAAG;;AAKZ,SAAS,MAAM,MAAM,MAAM;CACzB,MAAM,UAAU;EACd,IAAI,KAAK;EACT,MAAM,KAAK;EACX,GAAG,KAAK;EACR,GAAG,KAAK;EACR,KAAK,KAAK;EACV,SAAS,KAAK;EACf;AACD,QAAO,IAAI,SAAS;EAAE,GAAG;EAAS,GAAG;EAAM,KAAK;EAAS,CAAC;;AAK5D,SAAS,UAAU,SAAS,GAAG,IAAI;CAEjC,IAAI,WAAW,UAAU,IAAI,KAAK;CAGlC,MAAM,KAAK,GAAG,OAAO,SAAS;AAG9B,KAAI,MAAM,GACR,QAAO,CAAC,UAAU,EAAE;AAItB,cAAa,KAAK,KAAK,KAAK;CAG5B,MAAM,KAAK,GAAG,OAAO,SAAS;AAC9B,KAAI,OAAO,GACT,QAAO,CAAC,UAAU,GAAG;AAIvB,QAAO,CAAC,UAAU,KAAK,IAAI,IAAI,GAAG,GAAG,KAAK,KAAM,KAAK,IAAI,IAAI,GAAG,CAAC;;AAInE,SAAS,QAAQ,IAAI,QAAQ;AAC3B,OAAM,SAAS,KAAK;CAEpB,MAAM,IAAI,IAAI,KAAK,GAAG;AAEtB,QAAO;EACL,MAAM,EAAE,gBAAgB;EACxB,OAAO,EAAE,aAAa,GAAG;EACzB,KAAK,EAAE,YAAY;EACnB,MAAM,EAAE,aAAa;EACrB,QAAQ,EAAE,eAAe;EACzB,QAAQ,EAAE,eAAe;EACzB,aAAa,EAAE,oBAAoB;EACpC;;AAIH,SAAS,QAAQ,KAAK,QAAQ,MAAM;AAClC,QAAO,UAAU,aAAa,IAAI,EAAE,QAAQ,KAAK;;AAInD,SAAS,WAAW,MAAM,KAAK;CAC7B,MAAM,OAAO,KAAK,GAChB,OAAO,KAAK,EAAE,OAAO,KAAK,MAAM,IAAI,MAAM,EAC1C,QAAQ,KAAK,EAAE,QAAQ,KAAK,MAAM,IAAI,OAAO,GAAG,KAAK,MAAM,IAAI,SAAS,GAAG,GAC3E,IAAI;EACF,GAAG,KAAK;EACR;EACA;EACA,KACE,KAAK,IAAI,KAAK,EAAE,KAAK,YAAY,MAAM,MAAM,CAAC,GAC9C,KAAK,MAAM,IAAI,KAAK,GACpB,KAAK,MAAM,IAAI,MAAM,GAAG;EAC3B,EACD,cAAc,SAAS,WAAW;EAChC,OAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM;EACxC,UAAU,IAAI,WAAW,KAAK,MAAM,IAAI,SAAS;EACjD,QAAQ,IAAI,SAAS,KAAK,MAAM,IAAI,OAAO;EAC3C,OAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM;EACxC,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,KAAK;EACrC,OAAO,IAAI;EACX,SAAS,IAAI;EACb,SAAS,IAAI;EACb,cAAc,IAAI;EACnB,CAAC,CAAC,GAAG,eAAe;CAGvB,IAAI,CAAC,IAAI,KAAK,UAFF,aAAa,EAEM,EAAE,MAAM,KAAK,KAAK;AAEjD,KAAI,gBAAgB,GAAG;AACrB,QAAM;AAEN,MAAI,KAAK,KAAK,OAAO,GAAG;;AAG1B,QAAO;EAAE;EAAI;EAAG;;AAKlB,SAAS,oBAAoB,QAAQ,YAAY,MAAM,QAAQ,MAAM,gBAAgB;CACnF,MAAM,EAAE,SAAS,SAAS;AAC1B,KAAK,UAAU,OAAO,KAAK,OAAO,CAAC,WAAW,KAAM,YAAY;EAC9D,MAAM,qBAAqB,cAAc,MACvC,OAAO,SAAS,WAAW,QAAQ;GACjC,GAAG;GACH,MAAM;GACN;GACD,CAAC;AACJ,SAAO,UAAU,OAAO,KAAK,QAAQ,KAAK;OAE1C,QAAO,SAAS,QACd,IAAI,QAAQ,cAAc,cAAc,KAAK,uBAAuB,SAAS,CAC9E;;AAML,SAAS,aAAa,IAAI,QAAQ,SAAS,MAAM;AAC/C,QAAO,GAAG,UACN,UAAU,OAAO,OAAO,OAAO,QAAQ,EAAE;EACvC;EACA,aAAa;EACd,CAAC,CAAC,yBAAyB,IAAI,OAAO,GACvC;;AAGN,SAAS,UAAU,GAAG,UAAU;CAC9B,MAAM,aAAa,EAAE,EAAE,OAAO,QAAQ,EAAE,EAAE,OAAO;CACjD,IAAI,IAAI;AACR,KAAI,cAAc,EAAE,EAAE,QAAQ,EAAG,MAAK;AACtC,MAAK,SAAS,EAAE,EAAE,MAAM,aAAa,IAAI,EAAE;AAE3C,KAAI,UAAU;AACZ,OAAK;AACL,OAAK,SAAS,EAAE,EAAE,MAAM;AACxB,OAAK;AACL,OAAK,SAAS,EAAE,EAAE,IAAI;QACjB;AACL,OAAK,SAAS,EAAE,EAAE,MAAM;AACxB,OAAK,SAAS,EAAE,EAAE,IAAI;;AAExB,QAAO;;AAGT,SAAS,UACP,GACA,UACA,iBACA,sBACA,eACA,cACA;CACA,IAAI,IAAI,SAAS,EAAE,EAAE,KAAK;AAC1B,KAAI,UAAU;AACZ,OAAK;AACL,OAAK,SAAS,EAAE,EAAE,OAAO;AACzB,MAAI,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAAE,WAAW,KAAK,CAAC,gBAChD,MAAK;OAGP,MAAK,SAAS,EAAE,EAAE,OAAO;AAG3B,KAAI,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAAE,WAAW,KAAK,CAAC,iBAAiB;AACjE,OAAK,SAAS,EAAE,EAAE,OAAO;AAEzB,MAAI,EAAE,EAAE,gBAAgB,KAAK,CAAC,sBAAsB;AAClD,QAAK;AACL,QAAK,SAAS,EAAE,EAAE,aAAa,EAAE;;;AAIrC,KAAI,cACF,KAAI,EAAE,iBAAiB,EAAE,WAAW,KAAK,CAAC,aACxC,MAAK;UACI,EAAE,IAAI,GAAG;AAClB,OAAK;AACL,OAAK,SAAS,KAAK,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC;AACpC,OAAK;AACL,OAAK,SAAS,KAAK,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC;QAC/B;AACL,OAAK;AACL,OAAK,SAAS,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC;AACnC,OAAK;AACL,OAAK,SAAS,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC;;AAIvC,KAAI,aACF,MAAK,MAAM,EAAE,KAAK,WAAW;AAE/B,QAAO;;AAIT,MAAM,oBAAoB;CACtB,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,aAAa;CACd,EACD,wBAAwB;CACtB,YAAY;CACZ,SAAS;CACT,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,aAAa;CACd,EACD,2BAA2B;CACzB,SAAS;CACT,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,aAAa;CACd;AAGH,MAAM,eAAe;CAAC;CAAQ;CAAS;CAAO;CAAQ;CAAU;CAAU;CAAc,EACtF,mBAAmB;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EACD,sBAAsB;CAAC;CAAQ;CAAW;CAAQ;CAAU;CAAU;CAAc;AAGtF,SAAS,cAAc,MAAM;CAC3B,MAAM,aAAa;EACjB,MAAM;EACN,OAAO;EACP,OAAO;EACP,QAAQ;EACR,KAAK;EACL,MAAM;EACN,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,SAAS;EACT,UAAU;EACV,QAAQ;EACR,SAAS;EACT,aAAa;EACb,cAAc;EACd,SAAS;EACT,UAAU;EACV,YAAY;EACZ,aAAa;EACb,aAAa;EACb,UAAU;EACV,WAAW;EACX,SAAS;EACV,CAAC,KAAK,aAAa;AAEpB,KAAI,CAAC,WAAY,OAAM,IAAI,iBAAiB,KAAK;AAEjD,QAAO;;AAGT,SAAS,4BAA4B,MAAM;AACzC,SAAQ,KAAK,aAAa,EAA1B;EACE,KAAK;EACL,KAAK,gBACH,QAAO;EACT,KAAK;EACL,KAAK,mBACH,QAAO;EACT,KAAK;EACL,KAAK,iBACH,QAAO;EACT,QACE,QAAO,cAAc,KAAK;;;AAOhC,SAAS,QAAQ,KAAK,MAAM;CAC1B,MAAM,OAAO,cAAc,KAAK,MAAM,SAAS,YAAY,EACzD,MAAM,OAAO,WAAW,KAAK,EAC7B,QAAQ,SAAS,KAAK;CAExB,IAAI,IAAI;AAGR,KAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC1B,OAAK,MAAM,KAAK,aACd,KAAI,YAAY,IAAI,GAAG,CACrB,KAAI,KAAK,kBAAkB;EAI/B,MAAM,UAAU,wBAAwB,IAAI,IAAI,mBAAmB,IAAI;AACvE,MAAI,QACF,QAAO,SAAS,QAAQ,QAAQ;EAGlC,MAAM,eAAe,KAAK,OAAO,MAAM;AACvC,GAAC,IAAI,KAAK,QAAQ,KAAK,cAAc,KAAK;OAE1C,MAAK;AAGP,QAAO,IAAI,SAAS;EAAE;EAAI;EAAM;EAAK;EAAG,CAAC;;AAG3C,SAAS,aAAa,OAAO,KAAK,MAAM;CACtC,MAAM,QAAQ,YAAY,KAAK,MAAM,GAAG,OAAO,KAAK,OAClD,UAAU,GAAG,SAAS;AACpB,MAAI,QAAQ,GAAG,SAAS,KAAK,YAAY,IAAI,GAAG,KAAK;AAErD,SADkB,IAAI,IAAI,MAAM,KAAK,CAAC,aAAa,KACnC,CAAC,OAAO,GAAG,KAAK;IAElC,UAAU,SAAS;AACjB,MAAI,KAAK,UACP,KAAI,CAAC,IAAI,QAAQ,OAAO,KAAK,CAC3B,QAAO,IAAI,QAAQ,KAAK,CAAC,KAAK,MAAM,QAAQ,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK;MAC7D,QAAO;MAEd,QAAO,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,KAAK;;AAI5C,KAAI,KAAK,KACP,QAAO,OAAO,OAAO,KAAK,KAAK,EAAE,KAAK,KAAK;AAG7C,MAAK,MAAM,QAAQ,KAAK,OAAO;EAC7B,MAAM,QAAQ,OAAO,KAAK;AAC1B,MAAI,KAAK,IAAI,MAAM,IAAI,EACrB,QAAO,OAAO,OAAO,KAAK;;AAG9B,QAAO,OAAO,QAAQ,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,MAAM,SAAS,GAAG;;AAGxE,SAAS,SAAS,SAAS;CACzB,IAAI,OAAO,EAAE,EACX;AACF,KAAI,QAAQ,SAAS,KAAK,OAAO,QAAQ,QAAQ,SAAS,OAAO,UAAU;AACzE,SAAO,QAAQ,QAAQ,SAAS;AAChC,SAAO,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,QAAQ,SAAS,EAAE;OAEvD,QAAO,MAAM,KAAK,QAAQ;AAE5B,QAAO,CAAC,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;AAuBrB,IAAqB,WAArB,MAAqB,SAAS;;;;CAI5B,YAAY,QAAQ;EAClB,MAAM,OAAO,OAAO,QAAQ,SAAS;EAErC,IAAI,UACF,OAAO,YACN,OAAO,MAAM,OAAO,GAAG,GAAG,IAAI,QAAQ,gBAAgB,GAAG,UACzD,CAAC,KAAK,UAAU,gBAAgB,KAAK,GAAG;;;;AAI3C,OAAK,KAAK,YAAY,OAAO,GAAG,GAAG,SAAS,KAAK,GAAG,OAAO;EAE3D,IAAI,IAAI,MACN,IAAI;AACN,MAAI,CAAC,QAGH,KAFkB,OAAO,OAAO,OAAO,IAAI,OAAO,KAAK,MAAM,OAAO,IAAI,KAAK,OAAO,KAAK,CAGvF,EAAC,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,OAAO,IAAI,EAAE;OAChC;GACL,MAAM,KAAK,KAAK,OAAO,KAAK,GAAG;AAC/B,OAAI,QAAQ,KAAK,IAAI,GAAG;AACxB,aAAU,OAAO,MAAM,EAAE,KAAK,GAAG,IAAI,QAAQ,gBAAgB,GAAG;AAChE,OAAI,UAAU,OAAO;AACrB,OAAI,UAAU,OAAO;;;;;AAOzB,OAAK,QAAQ;;;;AAIb,OAAK,MAAM,OAAO,OAAO,OAAO,QAAQ;;;;AAIxC,OAAK,UAAU;;;;AAIf,OAAK,WAAW;;;;AAIhB,OAAK,gBAAgB;;;;AAIrB,OAAK,IAAI;;;;AAIT,OAAK,IAAI;;;;AAIT,OAAK,kBAAkB;;;;;;;;;CAYzB,OAAO,MAAM;AACX,SAAO,IAAI,SAAS,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,OAAO,QAAQ;EACb,MAAM,CAAC,MAAM,QAAQ,SAAS,UAAU,EACtC,CAAC,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,eAAe;AAC1D,SAAO,QAAQ;GAAE;GAAM;GAAO;GAAK;GAAM;GAAQ;GAAQ;GAAa,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B/E,OAAO,MAAM;EACX,MAAM,CAAC,MAAM,QAAQ,SAAS,UAAU,EACtC,CAAC,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,eAAe;AAE1D,OAAK,OAAO,gBAAgB;AAC5B,SAAO,QAAQ;GAAE;GAAM;GAAO;GAAK;GAAM;GAAQ;GAAQ;GAAa,EAAE,KAAK;;;;;;;;;CAU/E,OAAO,WAAW,MAAM,UAAU,EAAE,EAAE;EACpC,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK,SAAS,GAAG;AAC3C,MAAI,OAAO,MAAM,GAAG,CAClB,QAAO,SAAS,QAAQ,gBAAgB;EAG1C,MAAM,YAAY,cAAc,QAAQ,MAAM,SAAS,YAAY;AACnE,MAAI,CAAC,UAAU,QACb,QAAO,SAAS,QAAQ,gBAAgB,UAAU,CAAC;AAGrD,SAAO,IAAI,SAAS;GACd;GACJ,MAAM;GACN,KAAK,OAAO,WAAW,QAAQ;GAChC,CAAC;;;;;;;;;;;;CAaJ,OAAO,WAAW,cAAc,UAAU,EAAE,EAAE;AAC5C,MAAI,CAAC,SAAS,aAAa,CACzB,OAAM,IAAI,qBACR,yDAAyD,OAAO,aAAa,cAAc,eAC5F;WACQ,eAAe,CAAC,YAAY,eAAe,SAEpD,QAAO,SAAS,QAAQ,yBAAyB;MAEjD,QAAO,IAAI,SAAS;GAClB,IAAI;GACJ,MAAM,cAAc,QAAQ,MAAM,SAAS,YAAY;GACvD,KAAK,OAAO,WAAW,QAAQ;GAChC,CAAC;;;;;;;;;;;;CAcN,OAAO,YAAY,SAAS,UAAU,EAAE,EAAE;AACxC,MAAI,CAAC,SAAS,QAAQ,CACpB,OAAM,IAAI,qBAAqB,yCAAyC;MAExE,QAAO,IAAI,SAAS;GAClB,IAAI,UAAU;GACd,MAAM,cAAc,QAAQ,MAAM,SAAS,YAAY;GACvD,KAAK,OAAO,WAAW,QAAQ;GAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCN,OAAO,WAAW,KAAK,OAAO,EAAE,EAAE;AAChC,QAAM,OAAO,EAAE;EACf,MAAM,YAAY,cAAc,KAAK,MAAM,SAAS,YAAY;AAChE,MAAI,CAAC,UAAU,QACb,QAAO,SAAS,QAAQ,gBAAgB,UAAU,CAAC;EAGrD,MAAM,MAAM,OAAO,WAAW,KAAK;EACnC,MAAM,aAAa,gBAAgB,KAAK,4BAA4B;EACpE,MAAM,EAAE,oBAAoB,gBAAgB,oBAAoB,YAAY,IAAI;EAEhF,MAAM,QAAQ,SAAS,KAAK,EAC1B,eAAe,CAAC,YAAY,KAAK,eAAe,GAC5C,KAAK,iBACL,UAAU,OAAO,MAAM,EAC3B,kBAAkB,CAAC,YAAY,WAAW,QAAQ,EAClD,qBAAqB,CAAC,YAAY,WAAW,KAAK,EAClD,mBAAmB,CAAC,YAAY,WAAW,MAAM,IAAI,CAAC,YAAY,WAAW,IAAI,EACjF,iBAAiB,sBAAsB,kBACvC,kBAAkB,WAAW,YAAY,WAAW;AAQtD,OAAK,kBAAkB,oBAAoB,gBACzC,OAAM,IAAI,8BACR,sEACD;AAGH,MAAI,oBAAoB,gBACtB,OAAM,IAAI,8BAA8B,yCAAyC;EAGnF,MAAM,cAAc,mBAAoB,WAAW,WAAW,CAAC;EAG/D,IAAI,OACF,eACA,SAAS,QAAQ,OAAO,aAAa;AACvC,MAAI,aAAa;AACf,WAAQ;AACR,mBAAgB;AAChB,YAAS,gBAAgB,QAAQ,oBAAoB,YAAY;aACxD,iBAAiB;AAC1B,WAAQ;AACR,mBAAgB;AAChB,YAAS,mBAAmB,OAAO;SAC9B;AACL,WAAQ;AACR,mBAAgB;;EAIlB,IAAI,aAAa;AACjB,OAAK,MAAM,KAAK,OAAO;GACrB,MAAM,IAAI,WAAW;AACrB,OAAI,CAAC,YAAY,EAAE,CACjB,cAAa;YACJ,WACT,YAAW,KAAK,cAAc;OAE9B,YAAW,KAAK,OAAO;;EAK3B,MAKE,WALyB,cACrB,mBAAmB,YAAY,oBAAoB,YAAY,GAC/D,kBACA,sBAAsB,WAAW,GACjC,wBAAwB,WAAW,KACP,mBAAmB,WAAW;AAEhE,MAAI,QACF,QAAO,SAAS,QAAQ,QAAQ;EAIlC,MAKE,CAAC,SAAS,eAAe,QALT,cACZ,gBAAgB,YAAY,oBAAoB,YAAY,GAC5D,kBACA,mBAAmB,WAAW,GAC9B,YACwC,cAAc,UAAU,EACpE,OAAO,IAAI,SAAS;GAClB,IAAI;GACJ,MAAM;GACN,GAAG;GACH;GACD,CAAC;AAGJ,MAAI,WAAW,WAAW,kBAAkB,IAAI,YAAY,KAAK,QAC/D,QAAO,SAAS,QACd,sBACA,uCAAuC,WAAW,QAAQ,iBAAiB,KAAK,OAAO,GACxF;AAGH,SAAO;;;;;;;;;;;;;;;;;;CAmBT,OAAO,QAAQ,MAAM,OAAO,EAAE,EAAE;EAC9B,MAAM,CAAC,MAAM,cAAc,aAAa,KAAK;AAC7C,SAAO,oBAAoB,MAAM,YAAY,MAAM,YAAY,KAAK;;;;;;;;;;;;;;;;CAiBtE,OAAO,YAAY,MAAM,OAAO,EAAE,EAAE;EAClC,MAAM,CAAC,MAAM,cAAc,iBAAiB,KAAK;AACjD,SAAO,oBAAoB,MAAM,YAAY,MAAM,YAAY,KAAK;;;;;;;;;;;;;;;;;CAkBtE,OAAO,SAAS,MAAM,OAAO,EAAE,EAAE;EAC/B,MAAM,CAAC,MAAM,cAAc,cAAc,KAAK;AAC9C,SAAO,oBAAoB,MAAM,YAAY,MAAM,QAAQ,KAAK;;;;;;;;;;;;;;;CAgBlE,OAAO,WAAW,MAAM,KAAK,OAAO,EAAE,EAAE;AACtC,MAAI,YAAY,KAAK,IAAI,YAAY,IAAI,CACvC,OAAM,IAAI,qBAAqB,mDAAmD;EAGpF,MAAM,EAAE,SAAS,MAAM,kBAAkB,SAAS,MAMhD,CAAC,MAAM,YAAY,gBAAgB,WAAW,gBALhC,OAAO,SAAS;GAC5B;GACA;GACA,aAAa;GACd,CACwE,EAAE,MAAM,IAAI;AACvF,MAAI,QACF,QAAO,SAAS,QAAQ,QAAQ;MAEhC,QAAO,oBAAoB,MAAM,YAAY,MAAM,UAAU,OAAO,MAAM,eAAe;;;;;CAO7F,OAAO,WAAW,MAAM,KAAK,OAAO,EAAE,EAAE;AACtC,SAAO,SAAS,WAAW,MAAM,KAAK,KAAK;;;;;;;;;;;;;;;;;;;;;;CAuB7C,OAAO,QAAQ,MAAM,OAAO,EAAE,EAAE;EAC9B,MAAM,CAAC,MAAM,cAAc,SAAS,KAAK;AACzC,SAAO,oBAAoB,MAAM,YAAY,MAAM,OAAO,KAAK;;;;;;;;CASjE,OAAO,QAAQ,QAAQ,cAAc,MAAM;AACzC,MAAI,CAAC,OACH,OAAM,IAAI,qBAAqB,mDAAmD;EAGpF,MAAM,UAAU,kBAAkB,UAAU,SAAS,IAAI,QAAQ,QAAQ,YAAY;AAErF,MAAI,SAAS,eACX,OAAM,IAAI,qBAAqB,QAAQ;MAEvC,QAAO,IAAI,SAAS,EAAE,SAAS,CAAC;;;;;;;CASpC,OAAO,WAAW,GAAG;AACnB,SAAQ,KAAK,EAAE,mBAAoB;;;;;;;;CASrC,OAAO,mBAAmB,YAAY,aAAa,EAAE,EAAE;EACrD,MAAM,YAAY,mBAAmB,YAAY,OAAO,WAAW,WAAW,CAAC;AAC/E,SAAO,CAAC,YAAY,OAAO,UAAU,KAAK,MAAO,IAAI,EAAE,MAAM,KAAM,CAAC,KAAK,GAAG;;;;;;;;;CAU9E,OAAO,aAAa,KAAK,aAAa,EAAE,EAAE;AAExC,SADiB,kBAAkB,UAAU,YAAY,IAAI,EAAE,OAAO,WAAW,WAAW,CAC7E,CAAC,KAAK,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG;;;;;;;;;CAY5C,IAAI,MAAM;AACR,SAAO,KAAK;;;;;;;;CASd,IAAI,UAAU;AACZ,SAAO,KAAK,YAAY;;;;;;CAO1B,IAAI,gBAAgB;AAClB,SAAO,KAAK,UAAU,KAAK,QAAQ,SAAS;;;;;;CAO9C,IAAI,qBAAqB;AACvB,SAAO,KAAK,UAAU,KAAK,QAAQ,cAAc;;;;;;;CAQnD,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,KAAK,IAAI,SAAS;;;;;;;CAQ1C,IAAI,kBAAkB;AACpB,SAAO,KAAK,UAAU,KAAK,IAAI,kBAAkB;;;;;;;CAQnD,IAAI,iBAAiB;AACnB,SAAO,KAAK,UAAU,KAAK,IAAI,iBAAiB;;;;;;CAOlD,IAAI,OAAO;AACT,SAAO,KAAK;;;;;;CAOd,IAAI,WAAW;AACb,SAAO,KAAK,UAAU,KAAK,KAAK,OAAO;;;;;;;CAQzC,IAAI,OAAO;AACT,SAAO,KAAK,UAAU,KAAK,EAAE,OAAO;;;;;;;CAQtC,IAAI,UAAU;AACZ,SAAO,KAAK,UAAU,KAAK,KAAK,KAAK,EAAE,QAAQ,EAAE,GAAG;;;;;;;CAQtD,IAAI,QAAQ;AACV,SAAO,KAAK,UAAU,KAAK,EAAE,QAAQ;;;;;;;CAQvC,IAAI,MAAM;AACR,SAAO,KAAK,UAAU,KAAK,EAAE,MAAM;;;;;;;CAQrC,IAAI,OAAO;AACT,SAAO,KAAK,UAAU,KAAK,EAAE,OAAO;;;;;;;CAQtC,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,KAAK,EAAE,SAAS;;;;;;;CAQxC,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,KAAK,EAAE,SAAS;;;;;;;CAQxC,IAAI,cAAc;AAChB,SAAO,KAAK,UAAU,KAAK,EAAE,cAAc;;;;;;;;CAS7C,IAAI,WAAW;AACb,SAAO,KAAK,UAAU,uBAAuB,KAAK,CAAC,WAAW;;;;;;;;CAShE,IAAI,aAAa;AACf,SAAO,KAAK,UAAU,uBAAuB,KAAK,CAAC,aAAa;;;;;;;;;CAUlE,IAAI,UAAU;AACZ,SAAO,KAAK,UAAU,uBAAuB,KAAK,CAAC,UAAU;;;;;;CAO/D,IAAI,YAAY;AACd,SAAO,KAAK,WAAW,KAAK,IAAI,gBAAgB,CAAC,SAAS,KAAK,QAAQ;;;;;;;;CASzE,IAAI,eAAe;AACjB,SAAO,KAAK,UAAU,4BAA4B,KAAK,CAAC,UAAU;;;;;;;;CASpE,IAAI,kBAAkB;AACpB,SAAO,KAAK,UAAU,4BAA4B,KAAK,CAAC,aAAa;;;;;;;CAQvE,IAAI,gBAAgB;AAClB,SAAO,KAAK,UAAU,4BAA4B,KAAK,CAAC,WAAW;;;;;;;CAQrE,IAAI,UAAU;AACZ,SAAO,KAAK,UAAU,mBAAmB,KAAK,EAAE,CAAC,UAAU;;;;;;;;CAS7D,IAAI,aAAa;AACf,SAAO,KAAK,UAAU,KAAK,OAAO,SAAS,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,QAAQ,KAAK;;;;;;;;CASrF,IAAI,YAAY;AACd,SAAO,KAAK,UAAU,KAAK,OAAO,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,QAAQ,KAAK;;;;;;;;CASpF,IAAI,eAAe;AACjB,SAAO,KAAK,UAAU,KAAK,SAAS,SAAS,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,UAAU,KAAK;;;;;;;;CASzF,IAAI,cAAc;AAChB,SAAO,KAAK,UAAU,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,UAAU,KAAK;;;;;;;;CASxF,IAAI,SAAS;AACX,SAAO,KAAK,UAAU,CAAC,KAAK,IAAI;;;;;;;CAQlC,IAAI,kBAAkB;AACpB,MAAI,KAAK,QACP,QAAO,KAAK,KAAK,WAAW,KAAK,IAAI;GACnC,QAAQ;GACR,QAAQ,KAAK;GACd,CAAC;MAEF,QAAO;;;;;;;CASX,IAAI,iBAAiB;AACnB,MAAI,KAAK,QACP,QAAO,KAAK,KAAK,WAAW,KAAK,IAAI;GACnC,QAAQ;GACR,QAAQ,KAAK;GACd,CAAC;MAEF,QAAO;;;;;;CAQX,IAAI,gBAAgB;AAClB,SAAO,KAAK,UAAU,KAAK,KAAK,cAAc;;;;;;CAOhD,IAAI,UAAU;AACZ,MAAI,KAAK,cACP,QAAO;MAEP,QACE,KAAK,SAAS,KAAK,IAAI;GAAE,OAAO;GAAG,KAAK;GAAG,CAAC,CAAC,UAC7C,KAAK,SAAS,KAAK,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;;;;;;;;;CAY3C,qBAAqB;AACnB,MAAI,CAAC,KAAK,WAAW,KAAK,cACxB,QAAO,CAAC,KAAK;EAEf,MAAM,QAAQ;EACd,MAAM,WAAW;EACjB,MAAM,UAAU,aAAa,KAAK,EAAE;EACpC,MAAM,WAAW,KAAK,KAAK,OAAO,UAAU,MAAM;EAClD,MAAM,SAAS,KAAK,KAAK,OAAO,UAAU,MAAM;EAEhD,MAAM,KAAK,KAAK,KAAK,OAAO,UAAU,WAAW,SAAS;EAC1D,MAAM,KAAK,KAAK,KAAK,OAAO,UAAU,SAAS,SAAS;AACxD,MAAI,OAAO,GACT,QAAO,CAAC,KAAK;EAEf,MAAM,MAAM,UAAU,KAAK;EAC3B,MAAM,MAAM,UAAU,KAAK;EAC3B,MAAM,KAAK,QAAQ,KAAK,GAAG;EAC3B,MAAM,KAAK,QAAQ,KAAK,GAAG;AAC3B,MACE,GAAG,SAAS,GAAG,QACf,GAAG,WAAW,GAAG,UACjB,GAAG,WAAW,GAAG,UACjB,GAAG,gBAAgB,GAAG,YAEtB,QAAO,CAAC,MAAM,MAAM,EAAE,IAAI,KAAK,CAAC,EAAE,MAAM,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC;AAE7D,SAAO,CAAC,KAAK;;;;;;;;CASf,IAAI,eAAe;AACjB,SAAO,WAAW,KAAK,KAAK;;;;;;;;CAS9B,IAAI,cAAc;AAChB,SAAO,YAAY,KAAK,MAAM,KAAK,MAAM;;;;;;;;CAS3C,IAAI,aAAa;AACf,SAAO,KAAK,UAAU,WAAW,KAAK,KAAK,GAAG;;;;;;;;;CAUhD,IAAI,kBAAkB;AACpB,SAAO,KAAK,UAAU,gBAAgB,KAAK,SAAS,GAAG;;;;;;;;CASzD,IAAI,uBAAuB;AACzB,SAAO,KAAK,UACR,gBACE,KAAK,eACL,KAAK,IAAI,uBAAuB,EAChC,KAAK,IAAI,gBAAgB,CAC1B,GACD;;;;;;;;CASN,sBAAsB,OAAO,EAAE,EAAE;EAC/B,MAAM,EAAE,QAAQ,iBAAiB,aAAa,UAAU,OACtD,KAAK,IAAI,MAAM,KAAK,EACpB,KACD,CAAC,gBAAgB,KAAK;AACvB,SAAO;GAAE;GAAQ;GAAiB,gBAAgB;GAAU;;;;;;;;;;CAa9D,MAAM,SAAS,GAAG,OAAO,EAAE,EAAE;AAC3B,SAAO,KAAK,QAAQ,gBAAgB,SAAS,OAAO,EAAE,KAAK;;;;;;;;CAS7D,UAAU;AACR,SAAO,KAAK,QAAQ,SAAS,YAAY;;;;;;;;;;;CAY3C,QAAQ,MAAM,EAAE,gBAAgB,OAAO,mBAAmB,UAAU,EAAE,EAAE;AACtE,SAAO,cAAc,MAAM,SAAS,YAAY;AAChD,MAAI,KAAK,OAAO,KAAK,KAAK,CACxB,QAAO;WACE,CAAC,KAAK,QACf,QAAO,SAAS,QAAQ,gBAAgB,KAAK,CAAC;OACzC;GACL,IAAI,QAAQ,KAAK;AACjB,OAAI,iBAAiB,kBAAkB;IACrC,MAAM,cAAc,KAAK,OAAO,KAAK,GAAG;IACxC,MAAM,QAAQ,KAAK,UAAU;AAC7B,KAAC,SAAS,QAAQ,OAAO,aAAa,KAAK;;AAE7C,UAAO,MAAM,MAAM;IAAE,IAAI;IAAO;IAAM,CAAC;;;;;;;;;CAU3C,YAAY,EAAE,QAAQ,iBAAiB,mBAAmB,EAAE,EAAE;EAC5D,MAAM,MAAM,KAAK,IAAI,MAAM;GAAE;GAAQ;GAAiB;GAAgB,CAAC;AACvE,SAAO,MAAM,MAAM,EAAE,KAAK,CAAC;;;;;;;;CAS7B,UAAU,QAAQ;AAChB,SAAO,KAAK,YAAY,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;CAgBrC,IAAI,QAAQ;AACV,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,aAAa,gBAAgB,QAAQ,4BAA4B;EACvE,MAAM,EAAE,oBAAoB,gBAAgB,oBAAoB,YAAY,KAAK,IAAI;EAErF,MAAM,mBACF,CAAC,YAAY,WAAW,SAAS,IACjC,CAAC,YAAY,WAAW,WAAW,IACnC,CAAC,YAAY,WAAW,QAAQ,EAClC,kBAAkB,CAAC,YAAY,WAAW,QAAQ,EAClD,qBAAqB,CAAC,YAAY,WAAW,KAAK,EAClD,mBAAmB,CAAC,YAAY,WAAW,MAAM,IAAI,CAAC,YAAY,WAAW,IAAI,EACjF,iBAAiB,sBAAsB,kBACvC,kBAAkB,WAAW,YAAY,WAAW;AAEtD,OAAK,kBAAkB,oBAAoB,gBACzC,OAAM,IAAI,8BACR,sEACD;AAGH,MAAI,oBAAoB,gBACtB,OAAM,IAAI,8BAA8B,yCAAyC;EAGnF,IAAI;AACJ,MAAI,iBACF,SAAQ,gBACN;GAAE,GAAG,gBAAgB,KAAK,GAAG,oBAAoB,YAAY;GAAE,GAAG;GAAY,EAC9E,oBACA,YACD;WACQ,CAAC,YAAY,WAAW,QAAQ,CACzC,SAAQ,mBAAmB;GAAE,GAAG,mBAAmB,KAAK,EAAE;GAAE,GAAG;GAAY,CAAC;OACvE;AACL,WAAQ;IAAE,GAAG,KAAK,UAAU;IAAE,GAAG;IAAY;AAI7C,OAAI,YAAY,WAAW,IAAI,CAC7B,OAAM,MAAM,KAAK,IAAI,YAAY,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI;;EAIzE,MAAM,CAAC,IAAI,KAAK,QAAQ,OAAO,KAAK,GAAG,KAAK,KAAK;AACjD,SAAO,MAAM,MAAM;GAAE;GAAI;GAAG,CAAC;;;;;;;;;;;;;;;CAgB/B,KAAK,UAAU;AACb,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,MAAM,SAAS,iBAAiB,SAAS;AAC/C,SAAO,MAAM,MAAM,WAAW,MAAM,IAAI,CAAC;;;;;;;;CAS3C,MAAM,UAAU;AACd,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,MAAM,SAAS,iBAAiB,SAAS,CAAC,QAAQ;AACxD,SAAO,MAAM,MAAM,WAAW,MAAM,IAAI,CAAC;;;;;;;;;;;;;;CAe3C,QAAQ,MAAM,EAAE,iBAAiB,UAAU,EAAE,EAAE;AAC7C,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,IAAI,EAAE,EACV,iBAAiB,SAAS,cAAc,KAAK;AAC/C,UAAQ,gBAAR;GACE,KAAK,QACH,GAAE,QAAQ;GAEZ,KAAK;GACL,KAAK,SACH,GAAE,MAAM;GAEV,KAAK;GACL,KAAK,OACH,GAAE,OAAO;GAEX,KAAK,QACH,GAAE,SAAS;GAEb,KAAK,UACH,GAAE,SAAS;GAEb,KAAK;AACH,MAAE,cAAc;AAChB;GACF,KAAK,eACH;;AAIJ,MAAI,mBAAmB,QACrB,KAAI,gBAAgB;GAClB,MAAM,cAAc,KAAK,IAAI,gBAAgB;GAC7C,MAAM,EAAE,YAAY;AACpB,OAAI,UAAU,YACZ,GAAE,aAAa,KAAK,aAAa;AAEnC,KAAE,UAAU;QAEZ,GAAE,UAAU;AAIhB,MAAI,mBAAmB,WAErB,GAAE,SADQ,KAAK,KAAK,KAAK,QAAQ,EACrB,GAAG,KAAK,IAAI;AAG1B,SAAO,KAAK,IAAI,EAAE;;;;;;;;;;;;;;CAepB,MAAM,MAAM,MAAM;AAChB,SAAO,KAAK,UACR,KAAK,KAAK,GAAG,OAAO,GAAG,CAAC,CACrB,QAAQ,MAAM,KAAK,CACnB,MAAM,EAAE,GACX;;;;;;;;;;;;;;CAiBN,SAAS,KAAK,OAAO,EAAE,EAAE;AACvB,SAAO,KAAK,UACR,UAAU,OAAO,KAAK,IAAI,cAAc,KAAK,CAAC,CAAC,yBAAyB,MAAM,IAAI,GAClF;;;;;;;;;;;;;;;;;;;;;CAsBN,eAAe,aAAaE,YAAoB,OAAO,EAAE,EAAE;AACzD,SAAO,KAAK,UACR,UAAU,OAAO,KAAK,IAAI,MAAM,KAAK,EAAE,WAAW,CAAC,eAAe,KAAK,GACvE;;;;;;;;;;;;;;;CAgBN,cAAc,OAAO,EAAE,EAAE;AACvB,SAAO,KAAK,UACR,UAAU,OAAO,KAAK,IAAI,MAAM,KAAK,EAAE,KAAK,CAAC,oBAAoB,KAAK,GACtE,EAAE;;;;;;;;;;;;;;;;CAiBR,MAAM,EACJ,SAAS,YACT,kBAAkB,OAClB,uBAAuB,OACvB,gBAAgB,MAChB,eAAe,UACb,EAAE,EAAE;AACN,MAAI,CAAC,KAAK,QACR,QAAO;EAGT,MAAM,MAAM,WAAW;EAEvB,IAAI,IAAI,UAAU,MAAM,IAAI;AAC5B,OAAK;AACL,OAAK,UAAU,MAAM,KAAK,iBAAiB,sBAAsB,eAAe,aAAa;AAC7F,SAAO;;;;;;;;;;CAWT,UAAU,EAAE,SAAS,eAAe,EAAE,EAAE;AACtC,MAAI,CAAC,KAAK,QACR,QAAO;AAGT,SAAO,UAAU,MAAM,WAAW,WAAW;;;;;;;CAQ/C,gBAAgB;AACd,SAAO,aAAa,MAAM,eAAe;;;;;;;;;;;;;;;;;CAkB3C,UAAU,EACR,uBAAuB,OACvB,kBAAkB,OAClB,gBAAgB,MAChB,gBAAgB,OAChB,eAAe,OACf,SAAS,eACP,EAAE,EAAE;AACN,MAAI,CAAC,KAAK,QACR,QAAO;AAIT,UADQ,gBAAgB,MAAM,MAG5B,UACE,MACA,WAAW,YACX,iBACA,sBACA,eACA,aACD;;;;;;;;CAUL,YAAY;AACV,SAAO,aAAa,MAAM,iCAAiC,MAAM;;;;;;;;;;CAWnE,SAAS;AACP,SAAO,aAAa,KAAK,OAAO,EAAE,kCAAkC;;;;;;;CAQtE,YAAY;AACV,MAAI,CAAC,KAAK,QACR,QAAO;AAET,SAAO,UAAU,MAAM,KAAK;;;;;;;;;;;;;;CAe9B,UAAU,EAAE,gBAAgB,MAAM,cAAc,OAAO,qBAAqB,SAAS,EAAE,EAAE;EACvF,IAAI,MAAM;AAEV,MAAI,eAAe,eAAe;AAChC,OAAI,mBACF,QAAO;AAET,OAAI,YACF,QAAO;YACE,cACT,QAAO;;AAIX,SAAO,aAAa,MAAM,KAAK,KAAK;;;;;;;;;;;;;;CAetC,MAAM,OAAO,EAAE,EAAE;AACf,MAAI,CAAC,KAAK,QACR,QAAO;AAGT,SAAO,GAAG,KAAK,WAAW,CAAC,GAAG,KAAK,UAAU,KAAK;;;;;;CAOpD,WAAW;AACT,SAAO,KAAK,UAAU,KAAK,OAAO,GAAG;;;;;;CAOvC,CAAC,OAAO,IAAI,6BAA6B,IAAI;AAC3C,MAAI,KAAK,QACP,QAAO,kBAAkB,KAAK,OAAO,CAAC,UAAU,KAAK,KAAK,KAAK,YAAY,KAAK,OAAO;MAEvF,QAAO,+BAA+B,KAAK,cAAc;;;;;;CAQ7D,UAAU;AACR,SAAO,KAAK,UAAU;;;;;;CAOxB,WAAW;AACT,SAAO,KAAK,UAAU,KAAK,KAAK;;;;;;CAOlC,YAAY;AACV,SAAO,KAAK,UAAU,KAAK,KAAK,MAAO;;;;;;CAOzC,gBAAgB;AACd,SAAO,KAAK,UAAU,KAAK,MAAM,KAAK,KAAK,IAAK,GAAG;;;;;;CAOrD,SAAS;AACP,SAAO,KAAK,OAAO;;;;;;CAOrB,SAAS;AACP,SAAO,KAAK,UAAU;;;;;;;;;CAUxB,SAAS,OAAO,EAAE,EAAE;AAClB,MAAI,CAAC,KAAK,QAAS,QAAO,EAAE;EAE5B,MAAM,OAAO,EAAE,GAAG,KAAK,GAAG;AAE1B,MAAI,KAAK,eAAe;AACtB,QAAK,iBAAiB,KAAK;AAC3B,QAAK,kBAAkB,KAAK,IAAI;AAChC,QAAK,SAAS,KAAK,IAAI;;AAEzB,SAAO;;;;;;CAOT,WAAW;AACT,SAAO,IAAI,KAAK,KAAK,UAAU,KAAK,KAAK,IAAI;;;;;;;;;;;;;;;;;CAoB/C,KAAK,eAAe,OAAO,gBAAgB,OAAO,EAAE,EAAE;AACpD,MAAI,CAAC,KAAK,WAAW,CAAC,cAAc,QAClC,QAAO,SAAS,QAAQ,yCAAyC;EAGnE,MAAM,UAAU;GAAE,QAAQ,KAAK;GAAQ,iBAAiB,KAAK;GAAiB,GAAG;GAAM;EAEvF,MAAM,QAAQ,WAAW,KAAK,CAAC,IAAI,SAAS,cAAc,EACxD,eAAe,cAAc,SAAS,GAAG,KAAK,SAAS,EAGvD,SAASC,aAFC,eAAe,OAAO,eACxB,eAAe,gBAAgB,MACT,OAAO,QAAQ;AAE/C,SAAO,eAAe,OAAO,QAAQ,GAAG;;;;;;;;;;CAW1C,QAAQ,OAAO,gBAAgB,OAAO,EAAE,EAAE;AACxC,SAAO,KAAK,KAAK,SAAS,KAAK,EAAE,MAAM,KAAK;;;;;;;CAQ9C,MAAM,eAAe;AACnB,SAAO,KAAK,UAAU,SAAS,cAAc,MAAM,cAAc,GAAG;;;;;;;;;;;;;CActE,QAAQ,eAAe,MAAM,MAAM;AACjC,MAAI,CAAC,KAAK,QAAS,QAAO;EAE1B,MAAM,UAAU,cAAc,SAAS;EACvC,MAAM,iBAAiB,KAAK,QAAQ,cAAc,MAAM,EAAE,eAAe,MAAM,CAAC;AAChF,SACE,eAAe,QAAQ,MAAM,KAAK,IAAI,WAAW,WAAW,eAAe,MAAM,MAAM,KAAK;;;;;;;;;CAWhG,OAAO,OAAO;AACZ,SACE,KAAK,WACL,MAAM,WACN,KAAK,SAAS,KAAK,MAAM,SAAS,IAClC,KAAK,KAAK,OAAO,MAAM,KAAK,IAC5B,KAAK,IAAI,OAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;CAsB9B,WAAW,UAAU,EAAE,EAAE;AACvB,MAAI,CAAC,KAAK,QAAS,QAAO;EAC1B,MAAM,OAAO,QAAQ,QAAQ,SAAS,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,EACvE,UAAU,QAAQ,UAAW,OAAO,OAAO,CAAC,QAAQ,UAAU,QAAQ,UAAW;EACnF,IAAI,QAAQ;GAAC;GAAS;GAAU;GAAQ;GAAS;GAAW;GAAU;EACtE,IAAI,OAAO,QAAQ;AACnB,MAAI,MAAM,QAAQ,QAAQ,KAAK,EAAE;AAC/B,WAAQ,QAAQ;AAChB,UAAO,KAAA;;AAET,SAAO,aAAa,MAAM,KAAK,KAAK,QAAQ,EAAE;GAC5C,GAAG;GACH,SAAS;GACT;GACA;GACD,CAAC;;;;;;;;;;;;;;;CAgBJ,mBAAmB,UAAU,EAAE,EAAE;AAC/B,MAAI,CAAC,KAAK,QAAS,QAAO;AAE1B,SAAO,aAAa,QAAQ,QAAQ,SAAS,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,MAAM;GACtF,GAAG;GACH,SAAS;GACT,OAAO;IAAC;IAAS;IAAU;IAAO;GAClC,WAAW;GACZ,CAAC;;;;;;;CAQJ,OAAO,IAAI,GAAG,WAAW;AACvB,MAAI,CAAC,UAAU,MAAM,SAAS,WAAW,CACvC,OAAM,IAAI,qBAAqB,0CAA0C;AAE3E,SAAO,OAAO,YAAY,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI;;;;;;;CAQxD,OAAO,IAAI,GAAG,WAAW;AACvB,MAAI,CAAC,UAAU,MAAM,SAAS,WAAW,CACvC,OAAM,IAAI,qBAAqB,0CAA0C;AAE3E,SAAO,OAAO,YAAY,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI;;;;;;;;;CAYxD,OAAO,kBAAkB,MAAM,KAAK,UAAU,EAAE,EAAE;EAChD,MAAM,EAAE,SAAS,MAAM,kBAAkB,SAAS;AAMlD,SAAO,kBALS,OAAO,SAAS;GAC5B;GACA;GACA,aAAa;GACd,CACiC,EAAE,MAAM,IAAI;;;;;CAMlD,OAAO,kBAAkB,MAAM,KAAK,UAAU,EAAE,EAAE;AAChD,SAAO,SAAS,kBAAkB,MAAM,KAAK,QAAQ;;;;;;CASvD,WAAW,aAAa;AACtB,SAAOD;;;;;;CAOT,WAAW,WAAW;AACpB,SAAOE;;;;;;CAOT,WAAW,wBAAwB;AACjC,SAAOC;;;;;;CAOT,WAAW,YAAY;AACrB,SAAOC;;;;;;CAOT,WAAW,YAAY;AACrB,SAAOC;;;;;;CAOT,WAAW,cAAc;AACvB,SAAOC;;;;;;CAOT,WAAW,oBAAoB;AAC7B,SAAOC;;;;;;CAOT,WAAW,yBAAyB;AAClC,SAAOC;;;;;;CAOT,WAAW,wBAAwB;AACjC,SAAOC;;;;;;CAOT,WAAW,iBAAiB;AAC1B,SAAOC;;;;;;CAOT,WAAW,uBAAuB;AAChC,SAAOC;;;;;;CAOT,WAAW,4BAA4B;AACrC,SAAOC;;;;;;CAOT,WAAW,2BAA2B;AACpC,SAAOC;;;;;;CAOT,WAAW,iBAAiB;AAC1B,SAAOC;;;;;;CAOT,WAAW,8BAA8B;AACvC,SAAOC;;;;;;CAOT,WAAW,eAAe;AACxB,SAAOC;;;;;;CAOT,WAAW,4BAA4B;AACrC,SAAOC;;;;;;CAOT,WAAW,4BAA4B;AACrC,SAAOC;;;;;;CAOT,WAAW,gBAAgB;AACzB,SAAOC;;;;;;CAOT,WAAW,6BAA6B;AACtC,SAAOC;;;;;;CAOT,WAAW,gBAAgB;AACzB,SAAOC;;;;;;CAOT,WAAW,6BAA6B;AACtC,SAAOC;;;;;;AAOX,SAAgB,iBAAiB,aAAa;AAC5C,KAAI,SAAS,WAAW,YAAY,CAClC,QAAO;UACE,eAAe,YAAY,WAAW,SAAS,YAAY,SAAS,CAAC,CAC9E,QAAO,SAAS,WAAW,YAAY;UAC9B,eAAe,OAAO,gBAAgB,SAC/C,QAAO,SAAS,WAAW,YAAY;KAEvC,OAAM,IAAI,qBACR,8BAA8B,YAAY,YAAY,OAAO,cAC9D;;;;AC11EL,MAAM,qBAAqB,OAAe;CACxC,MAAM,OAAA,GAAA,wBAAA,OAAY,GAAG;AACrB,QAAO;EACL;GACE,OAAO;GACP,OAAO;IACL,OAAO,IAAI,SAAS,EAAE,MAAM,GAAG,CAAC;IAChC,KAAK;IACN;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,OAAO,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;IACjC,KAAK;IACN;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,OAAO,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;IACjC,KAAK;IACN;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,QAAA,GAAA,wBAAA,cAAoB,IAAI;IAExB,KAAK;IACN;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,QAAA,GAAA,wBAAA,cAAoB,IAAI,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC;IAChD,MAAA,GAAA,wBAAA,YAAgB,IAAI,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC;IAC7C;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,QAAA,GAAA,wBAAA,aAAmB,IAAI;IACvB,KAAK;IACN;GACF;EACD;GACE,OAAO;GACP,OAAO;IACL,QAAA,GAAA,wBAAA,aAAmB,IAAI,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;IAC9C,MAAA,GAAA,wBAAA,WAAe,IAAI,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;IAC3C;GACF;EACF;;;;;AAMH,MAAM,mBAAmB,GAAiB,MACxC,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;AAE1D,MAAM,YAAY,oBAAA,QAAO,GAAG;;;;AAY5B,MAAM,qBAAqB,CAAA,GAAA,oBAAA,SAAOC,aAAAA,SAAS;KACtC,EAAE,eACH,CAAC,YACD,oBAAA,GAAG;SACEC,wBAAAA,gBAAgBC,wBAAAA,UAAU,KAAKD,wBAAAA,gBAAgBE,wBAAAA,UAAU;;;MAG5D;;;;yBAImBC,uBAAAA,MAAM,YAAY;;;;AAW3C,MAAM,gBAAgB,EAAE,OAAO,QAAQ,YAAY,aAAa,GAAG,YAA+B;CAChG,MAAM,OAAA,GAAA,MAAA,SAA8B;CACpC,MAAM,EAAE,iBAAA,GAAA,WAAA,WACN,EACE,eAAe;AACb,QAAM,SAAS,OAAO,MAAM;AAC5B,cAAY,KAAK;IAEpB,EAED,IACD;CAGD,MAAM,EAAE,gBAAgB,cAAc,GAAG,iBAAA,GAAA,WAAA,YAA2B,OAAO,YAAY;AAEvF,QACE,iBAAA,GAAA,kBAAA,KAAC,oBAAD;EACE,UAAU;EACV,GAAI;EAEC;YAEJ,OAAO;EACW,CAAA;;AAIzB,MAAM,0BAA0B,EAC9B,YAAY,mBACZ,OACA,aACA,GAAG,YAC8B;CAIjC,MAAM,UAAU,UAAU,SAAS,YAAY,KAAK;CAGpD,MAAM,EAAE,UAAU;CAClB,MAAM,sBAAsB,QACxB,QAAQ,WACL,WACC,gBAAgB,OAAO,MAAM,OAAO,MAAM,MAAM,IAChD,gBAAgB,OAAO,MAAM,KAAK,MAAM,IAAI,CAC/C,GACD;AAEJ,QACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EAAW,GAAI;YACb,iBAAA,GAAA,kBAAA,KAACC,aAAAA,UAAD;GAAU,cAAW;aAClB,QAAQ,KAAK,QAAQ,MACpB,iBAAA,GAAA,kBAAA,KAAC,cAAD;IAEU;IACD;IACM;IACb,YAAY,MAAM;IAClB,EALK,EAKL,CACF;GACO,CAAA;EACD,CAAA;;AAMhB,MAAM,iBACJ,WACA,cACG;CAEH,MAAM,YAAY,UAAU,MAAM;CAClC,MAAM,YAAY,UAAU,MAAM;AAGlC,KAAI,CAAC,aAAa,CAAC,UACjB,QAAO;AAGT,KAAI,CAAC,aAAa,CAAC,UACjB,QAAO;AAIT,QACE,UAAU,MAAM,QAAQ,UAAU,MAAM,KAAK,KAAK,UAAU,IAAI,QAAQ,UAAU,IAAI,KAAK;;AAI/F,IAAA,gCAAA,GAAA,MAAA,MAAoB,wBAAwB,cAAc;;;ACxL1D,MAAM,sBAAsB,CAAA,GAAA,oBAAA,SAAO,eAAe;SACzCC,uBAAAA,QAAQ,GAAG;;AAGpB,MAAM,sBAAsB,oBAAA,QAAO,GAAG;;;;;;;AAQtC,MAAM,gBAAgB,oBAAA,QAAO,GAAG;;SAEvBA,uBAAAA,QAAQ,GAAG;;;AAIpB,MAAM,aAAa,CAAA,GAAA,oBAAA,SAAO,eAAe;;;mBAGtBC,uBAAAA,aAAa,GAAG;;AAGnC,MAAM,aAAa,CAAA,GAAA,oBAAA,SAAO,eAAe;;;mBAGtBA,uBAAAA,aAAa,GAAG;;AAGnC,MAAM,uBAAuB,CAAA,GAAA,oBAAA,SAAO,gBAAgB;;;AAIpD,MAAM,yBAAyB,oBAAA,QAAO,GAAG;;;AAIzC,MAAM,mBAAmB,CAAA,GAAA,oBAAA,SAAOC,aAAAA,aAAK,KAAK;4BACdC,uBAAAA,MAAM,eAAe;;AAiBjD,MAAM,iBAAiB,EACrB,aACA,cACA,SACA,SACA,aACA,aACA,UACA,aACA,GAAG,YACqB;CACxB,MAAM,gBAAgB;CACtB,MAAM,EAAE,YAAA,GAAA,WAAA,YAAsB;CAE9B,MAAM,eAAe,SAAS,YAAY;CAC1C,MAAM,sBAAA,GAAA,cAAA,uBAA2C;EAC/C,GAAG;EACH,UAAU;EACV,UAAU;EACV,iBAAiB,EACf,QAAQ,eACT;EACD;EACA;EACD,CAAC;CAEF,MAAM,QAA4B;EAChC,GAAG;EACH,WAAW,UAAU;AACnB,OAAI,CAAC,SAAS,gBAAgB,OAAO;AACnC,uBAAmB,SAAS,MAAM;AAClC;;AAGF,YAAS;IACP,QAAA,GAAA,wBAAA,oBAA0B,MAAM,MAAM;IACtC,MAAA,GAAA,wBAAA,oBAAwB,MAAM,IAAI;IACnC,CAAC;;EAEJ,aAAa,SAAS;AACpB,OAAI,cAAc;AAChB,iBAAa,KAAK;AAClB,uBAAmB,cAAc,KAAK;SAEtC,oBAAmB,WAAW,KAAK;;EAGxC;CAED,MAAM,OAAA,GAAA,MAAA,SAAc;CAGpB,MAAM,EAAE,eAAe,iBAAiB,qBAAA,GAAA,WAAA,kBAAqC,OAAO,OAAO,IAAI;CAE/F,MAAM,sBAAA,GAAA,WAAA,kBAAsC;EAC1C,OAAO;EACP,MAAM;EACN,UAAU;EACX,CAAC;CAEF,MAAM,gBAAA,GAAA,aAAA,OAAqB,GAAG,cAAc,CAAC,KAAK,MAAM;AACtD,SACE,iBAAA,GAAA,kBAAA,MAAC,qBAAD,EAAA,UAAA;GACG,MAAM,KACL,iBAAA,GAAA,kBAAA,KAAC,YAAD;IAAY,GAAI;cACd,iBAAA,GAAA,kBAAA,KAACC,eAAAA,eAAD,EAAiB,CAAA;IACN,CAAA;GAEf,iBAAA,GAAA,kBAAA,KAAC,sBAAD;IAAsB,eAAA;cACnB,mBAAmB,OAClB,MAAM,aAAa,MAAM,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC,OAAO,aAAa,CACjE;IACoB,CAAA;GACtB,MAAM,gBAAgB,KACrB,iBAAA,GAAA,kBAAA,KAAC,YAAD;IAAY,GAAI;cACd,iBAAA,GAAA,kBAAA,KAACC,eAAAA,gBAAD,EAAkB,CAAA;IACP,CAAA;GAEK,EAAA,EAhBI,kBAAkB,IAgBtB;GAExB;CAEF,MAAM,cAAA,GAAA,aAAA,OAAmB,GAAG,cAAc,CAAC,KAAK,MAAM;AACpD,SACE,iBAAA,GAAA,kBAAA,KAAC,cAAD;GAES;GACP,QAAQ,EAAE,QAAQ,GAAG;GACrB,kBAAkB,IAAI;GACtB,EAJK,iBAAiB,IAItB;GAEJ;AAEF,QACE,iBAAA,GAAA,kBAAA,MAAC,wBAAD;EAAwB,KAAK;YAA7B,CACG,CAAC,eACA,iBAAA,GAAA,kBAAA,KAAC,kBAAD;GAAkB,SAASL,uBAAAA,QAAQ;aACjC,iBAAA,GAAA,kBAAA,KAACM,8BAAD;IAA6B;IAAoB;IAAe,CAAA;GAC/C,CAAA,EAErB,iBAAA,GAAA,kBAAA,KAACJ,aAAAA,aAAK,MAAN;GAAW,SAASF,uBAAAA,QAAQ;aAE1B,iBAAA,GAAA,kBAAA,MAAC,mBAAD;IAAmB,GAAI;IAAoB;cAA3C,CAEE,iBAAA,GAAA,kBAAA,MAAC,qBAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAACO,WAAAA,gBAAD;KAAgB,aAAa;eAAQ,cAAc;KAA+B,CAAA,EACjF,aACmB,EAAA,CAAA,EACtB,iBAAA,GAAA,kBAAA,KAAC,eAAD,EAAA,UAAgB,YAA2B,CAAA,CACzB;;GACV,CAAA,CACW;;;;;ACpK7B,MAAM,qBAAqB,kBAAA,QAAO,GAAG;;;;;AAMrC,MAAM,kBAAkB,kBAAA,QAAO,GAAG;;;;AAKlC,MAAM,kBAAkB,CAAA,GAAA,kBAAA,SAAOC,oBAAAA,UAAU;mBACtBC,uBAAAA,QAAQ,GAAG;IAC1BC,uBAAAA,WAAW,eAAe;;AAkC9B,MAAM,cAAc,EAAE,kBAAyE;CAC7F,MAAM,iBAAA,GAAA,MAAA,SAAwB;CAC9B,MAAM,EAAE,iBAAA,GAAA,WAAA,WACN,EACE,eAAe;AACb,MAAI,YAAY,QAEZ,aAAY,QAAQ,cAAc,kCAAgC,CAClE,OAAO;IAGd,EAED,cACD;AAGD,QAAO,iBAAA,GAAA,kBAAA,KAAC,UAAD;EAAQ,GAAI;EAAa,KAAK;EAAe,cAAW;EAAgB,UAAU;EAAM,CAAA;;AAGjG,MAAM,mBAAmB,CAAA,GAAA,kBAAA,SAAOC,cAAAA,YAAY;;;iBAG3BF,uBAAAA,QAAQ,GAAG;;KAEvBG,wBAAAA,WAAW;;;;AAKhB,MAAM,mBAAmB,EACvB,cAAc,OACd,eAAe,MACf,WACA,gBACA,GAAG,YACuB;CAC1B,MAAM,SAAA,GAAA,cAAA,yBAAgC;EAAE;EAAa;EAAc,GAAG;EAAO,CAAC;CAC9E,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CACxC,MAAM,iBAAA,GAAA,MAAA,QAAuC,KAAK;CAClD,MAAM,eAAA,GAAA,MAAA,QAAqC,KAAK;CAChD,MAAM,CAAC,UAAU,gBAAA,GAAA,MAAA,UAAgD,KAAK;CACtE,MAAM,EAAE,YAAY,iBAAiB,eAAe,eAAe,gBAAA,GAAA,WAAA,oBAC9C;EAAE;EAAa;EAAc,GAAG;EAAO,EAAE,OAAO,IAAI;AAEzE,EAAA,GAAA,MAAA,iBAAgB;AAEd,MAAI,CAAC,MAAM,UAAU,aAAa,CAAC,MAAM,UAAU,QACjD;AAGF,MAAI,CAAC,MAAM,UAAU,UAAU,WAAW,CAAC,MAAM,UAAU,QAAQ,QACjE;EAIF,MAAM,YAAY,MAAM,UAAU,UAAU,QAAQ,SAAS,YAAY;EACzE,MAAM,UAAU,MAAM,UAAU,QAAQ,QAAQ,SAAS,YAAY;AAErE,MAAI,CAAC,UAAU,WAAW,CAAC,QAAQ,QACjC;EAWF,MAAM,cAAqC;GACzC,OARoB,MAAM,WAAA,GAAA,wBAAA,eACV,UAAU,OAAO,EAAE,SAAS,YAAY,KAAK,GAC3D,IAAIC,wBAAAA,aAAa,UAAU,MAAM,UAAU,OAAO,UAAU,IAAI;GAOlE,KANkB,MAAM,WAAA,GAAA,wBAAA,eACR,QAAQ,OAAO,EAAE,SAAS,YAAY,KAAK,GACzD,IAAIA,wBAAAA,aAAa,QAAQ,MAAM,QAAQ,OAAO,QAAQ,IAAI;GAK7D;AAED,QAAM,SAAS,YAAY;IAC1B;EAAC,MAAM,UAAU;EAAW,MAAM,UAAU;EAAS;EAAY,CAAC;CAGrE,MAAM,gBAAA,GAAA,MAAA,QAA2D,MAAM,MAAM;AAC7E,EAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,YAAY,aAAa;EAC/B,MAAM,eAAe,MAAM;AAG3B,eAAa,UAAU;EAOvB,MAAM,eACJ,WAAW,SAAS,cAAc,QAC9B,UAAU,MAAM,QAAQ,aAAa,MAAM,KAAK,IAChD,WAAW,UAAU,cAAc;EACzC,MAAM,aACJ,WAAW,OAAO,cAAc,MAC5B,UAAU,IAAI,QAAQ,aAAa,IAAI,KAAK,IAC5C,WAAW,QAAQ,cAAc;EACvC,MAAM,oBACJ,cAAc,SACd,cAAc,OACd,aAAa,MAAM,QAAQ,aAAa,IAAI,KAAK;AAEnD,MAAI,MAAM,UAAU,gBAAgB,cAAc,kBAChD,OAAM,QAAQ,MAAM;IAGrB,CAAC,MAAM,OAAO,MAAM,OAAO,CAAC;CAE/B,MAAM,eAAA,GAAA,MAAA,QAAqC,KAAK;CAChD,MAAM,CAAC,WAAW,iBAAA,GAAA,MAAA,UAAyB,MAAM;CAEjD,MAAM,EAAE,kBAAkB,2BAAA,GAAA,WAAA,gBAAyC,EACjE,qBAAqB;AACnB,cAAY,QAAQ;AACpB,MAAI,CAAC,MAAM,UAAU,CAAC,UACpB,OAAM,QAAQ,KAAK;IAGxB,CAAC;CAEF,MAAM,EAAE,kBAAkB,yBAAA,GAAA,WAAA,gBAAuC,EAC/D,qBAAqB;AACnB,cAAY,MAAM;AAClB,MAAI,CAAC,MAAM,UAAU,CAAC,UACpB,OAAM,QAAQ,KAAK;IAGxB,CAAC;CAEF,MAAM,EAAE,kBAAkB,yBAAA,GAAA,WAAA,gBAAuC,EAC/D,eAAe,MAAM;AAGnB,MAAI,CAAC,aAAa,SAAS,SAAS,EAAE,cAAc,EAAE;AACpD,eAAY,KAAK;AAGjB,OAAI,MAAM,OACR,OAAM,QAAQ,MAAM;;IAI3B,CAAC;CAEF,MAAM,sBAAsB,MAAa;EACvC,MAAM,SAAS,EAAE;AAEjB,MAAI,IAAI,SAAS,SAAS,OAAO,CAC/B;AAMF,MAAI,MAAM,QAAQ;AAChB,eAAY,KAAK;AACjB,SAAM,QAAQ,MAAM;;;CAIxB,MAAM,EAAE,YAAY,qBAAA,GAAA,WAAA,UAA6B,EAC/C,eAAe;AACb,QAAM,SAAS,KAAK;AAEpB,MAAI,MAAM,QACR,OAAM,SAAS;IAGpB,CAAC;CAEF,MAAM,iBAAA,GAAA,MAAA,cACH,UAA+B;AAC9B,MAAI,MAAM,QAAQ,WAAW,CAAC,MAAM,QAAQ;AAC1C,SAAM,gBAAgB;AACtB,SAAM,QAAQ,KAAK;;IAGvB,CAAC,MAAM,CACR;CAED,MAAM,cAAc,MAAM,SAAS,MAAM,MAAM,SAAS,QAAQ,MAAM,MAAM,OAAO;AAEnF,QACE,iBAAA,GAAA,kBAAA,MAAC,oBAAD;EAAoB,aAAW,MAAM;EAAqB;YAA1D,CACG,MAAM,SAAS,iBAAA,GAAA,kBAAA,KAAC,iBAAD;GAAiB,GAAI;aAAa,MAAM;GAAwB,CAAA,EAChF,iBAAA,GAAA,kBAAA,MAACC,gBAAAA,iBAAD;GACE,MAAM,MAAM;GACZ,OAAO;GACP,cAAc;IACZ,OAAO;IACP,cAAc;IACd,cAAc,MAAM,iBAAiB,KAAA;IACrC,mBAAmB;IACnB,uBAAuB;AACrB,WAAM,QAAQ,MAAM;AAEpB,SAAI,UAAU;MAEZ,MAAM,OADW,aAAa,UAAU,gBAAgB,aACnC,SAAS,cAAc,mBAAiB;AAC7D,UAAI,eAAe,YACjB,KAAI,OAAO;;;IAIjB,mBAAmB,MAAa;AAE9B,OAAE,gBAAgB;AAClB,kBAAa,KAAK;AAClB,iCAA4B,aAAa,MAAM,CAAC;;IAElD,WAAW;IACX,OAAO,EAAE,QAAQ,gBAAgB;IAClC;aA3BH,CA6BE,iBAAA,GAAA,kBAAA,KAACA,gBAAAA,gBAAQ,SAAT;IAAiB,SAAA;cACf,iBAAA,GAAA,kBAAA,MAAC,iBAAD;KAAiB,IAAA,GAAA,WAAA,YAAe,YAAY,oBAAoB;KAAO;eAAvE;MAEE,iBAAA,GAAA,kBAAA,KAAC,WAAD;OACE,KAAK;OACL,eAAc;OACd,SAAS,aAAa;OACtB,UAAU,MAAM;OAChB,MAAM,MAAM;OACZ,IAAA,GAAA,WAAA,YAAe,iBAAiB,uBAAuB,EAAE,WAAW,eAAe,CAAC;OACpF,CAAA;MAEF,iBAAA,GAAA,kBAAA,KAAC,WAAD;OACE,KAAK;OACL,eAAc;OACd,SAAS,aAAa;OACtB,UAAU,MAAM;OAChB,MAAM,MAAM;OACZ,IAAA,GAAA,WAAA,YAAe,eAAe,qBAAqB,EAAE,WAAW,eAAe,CAAC;OAChF,CAAA;MACD,MAAM,aACL,iBAAA,GAAA,kBAAA,KAAC,kBAAD;OACE,GAAI;OACJ,UAAU;OACV,cAAW;iBAEX,iBAAA,GAAA,kBAAA,KAACC,eAAAA,oBAAD,EAAsB,CAAA;OACL,CAAA;MAErB,iBAAA,GAAA,kBAAA,KAACC,WAAAA,gBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAC,YAAD,EAAyB,aAAe,CAAA,EACzB,CAAA;MACD;;IACF,CAAA,EAClB,iBAAA,GAAA,kBAAA,KAAC,eAAD;IACQ,GAAG;IAAe,WAAW,KAAA;IACtB;IACA;IACb,UAAU,MAAM;IACH;IACb,aAAa,MAAM;IACnB,eAAe,YAAY;;;;;AAKzB,SAAI,SAAS;MACX,MAAM,OAAO,MAAM,WAAA,GAAA,wBAAA,oBAA6B,QAAQ,GAAG;AAE3D,UAAI,aAAa,SAAS;AAExB,WAAI,MAAM,MAAM,OAAO,QAAQ,MAAM,MAAM,SAAS,KAClD,OAAM,SAAS;QACb,OAAO;QACP,KAAK;QACN,CAAC;gBAGK,MAAM,MAAM,OAAO,KAAK,QAAQ,MAAM,MAAM,IAAI,GAAG,EAC1D,OAAM,SAAS;QACb,OAAO,MAAM,MAAM;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,QAAQ;QAClC,CAAC;WAEF,OAAM,SAAS;QAEb,OAAO,MAAM,MAAM,SAAS,OAAO,OAAO,MAAM,MAAM,MAAM,IAAI,QAAQ;QAGxE,KAAK,MAAM,MAAM;QAClB,CAAC;AAEJ,mBAAY,MAAM;aACb;AAEL,WAAI,MAAM,MAAM,OAAO,QAAQ,MAAM,MAAM,SAAS,KAClD,OAAM,SAAS;QACb,OAAO;QACP,KAAK;QACN,CAAC;gBAGK,MAAM,MAAM,SAAS,KAAK,QAAQ,MAAM,MAAM,MAAM,GAAG,EAC9D,OAAM,SAAS;QACb,OAAO,MAAM,MAAM,MAAM,IAAI,QAAQ;QACrC,KAAK,MAAM,MAAM;QAClB,CAAC;WAEF,OAAM,SAAS;QAEb,OAAO,MAAM,MAAM;QAEnB,KAAK,MAAM,MAAM,OAAO,OAAO,OAAO,MAAM,MAAM,IAAI,IAAI,QAAQ;QACnE,CAAC;AAGJ,aAAM,QAAQ,MAAM;;;;IAI1B,SAAS,MAAM;IACf,SAAS,MAAM;IACf,CAAA,CACM;KACS"}