@g4rcez/components 3.0.2 → 4.0.0

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 (145) hide show
  1. package/dist/CaretDown.es-Cj7klWI3.js +33 -0
  2. package/dist/CaretDown.es-Cj7klWI3.js.map +1 -0
  3. package/dist/CaretRight.es-0-M8D9y8.js +33 -0
  4. package/dist/CaretRight.es-0-M8D9y8.js.map +1 -0
  5. package/dist/CheckCircle.es-C6QWLfk_.js +33 -0
  6. package/dist/CheckCircle.es-C6QWLfk_.js.map +1 -0
  7. package/dist/File.es-CA-vuPED.js +33 -0
  8. package/dist/File.es-CA-vuPED.js.map +1 -0
  9. package/dist/IconBase.es-DJ1oCtpo.js +50 -0
  10. package/dist/IconBase.es-DJ1oCtpo.js.map +1 -0
  11. package/dist/Info.es-CrZKs4q4.js +33 -0
  12. package/dist/Info.es-CrZKs4q4.js.map +1 -0
  13. package/dist/MotionConfigContext-C7MqlSdv.js.map +1 -1
  14. package/dist/Warning.es-D_eI6tLe.js +39 -0
  15. package/dist/Warning.es-D_eI6tLe.js.map +1 -0
  16. package/dist/X.es-BJ1O93El.js +39 -0
  17. package/dist/X.es-BJ1O93El.js.map +1 -0
  18. package/dist/ai/docs/Alert.md +1 -1
  19. package/dist/ai/docs/AnimatedList.md +3 -3
  20. package/dist/ai/docs/Button.md +1 -1
  21. package/dist/ai/docs/CommandPalette.md +7 -7
  22. package/dist/ai/docs/Dropdown.md +4 -4
  23. package/dist/ai/docs/Empty.md +9 -9
  24. package/dist/ai/docs/Expand.md +1 -1
  25. package/dist/ai/docs/FileUpload.md +2 -2
  26. package/dist/ai/docs/Input.md +2 -2
  27. package/dist/ai/docs/InputField.md +2 -2
  28. package/dist/ai/docs/List.md +3 -3
  29. package/dist/ai/docs/Menu.md +3 -3
  30. package/dist/ai/docs/MultiSelect.md +1 -1
  31. package/dist/ai/docs/PageCalendar.md +1 -1
  32. package/dist/ai/docs/Select.md +1 -1
  33. package/dist/ai/docs/Slot.md +1 -1
  34. package/dist/ai/docs/Stats.md +11 -11
  35. package/dist/ai/docs/Table.md +1 -1
  36. package/dist/ai/docs/Tag.md +2 -2
  37. package/dist/ai/docs/Timeline.md +5 -5
  38. package/dist/ai/docs/Toolbar.md +2 -2
  39. package/dist/ai/docs/Tooltip.md +3 -3
  40. package/dist/ai/docs/TransferList.md +2 -2
  41. package/dist/{autocomplete-Boida9R7.js → autocomplete-Cn9Z2hLq.js} +48 -48
  42. package/dist/autocomplete-Cn9Z2hLq.js.map +1 -0
  43. package/dist/{calendar-BswV66Nx.js → calendar-B5lSd0ID.js} +599 -571
  44. package/dist/calendar-B5lSd0ID.js.map +1 -0
  45. package/dist/components/display/alert.js +18 -18
  46. package/dist/components/display/alert.js.map +1 -1
  47. package/dist/components/display/calendar.js +4 -4
  48. package/dist/components/display/card.d.ts +2 -2
  49. package/dist/components/display/card.d.ts.map +1 -1
  50. package/dist/components/display/card.js +6 -6
  51. package/dist/components/display/card.js.map +1 -1
  52. package/dist/components/display/empty.d.ts +2 -2
  53. package/dist/components/display/empty.d.ts.map +1 -1
  54. package/dist/components/display/list.js +15 -15
  55. package/dist/components/display/list.js.map +1 -1
  56. package/dist/components/display/notifications.js +5 -5
  57. package/dist/components/display/tabs.js +1 -1
  58. package/dist/components/floating/command-palette.d.ts +3 -3
  59. package/dist/components/floating/command-palette.d.ts.map +1 -1
  60. package/dist/components/floating/dropdown.js +1 -1
  61. package/dist/components/floating/expand.js +1 -1
  62. package/dist/components/floating/menu.d.ts +2 -2
  63. package/dist/components/floating/menu.d.ts.map +1 -1
  64. package/dist/components/floating/menu.js +31 -31
  65. package/dist/components/floating/menu.js.map +1 -1
  66. package/dist/components/floating/modal.js +35 -35
  67. package/dist/components/floating/modal.js.map +1 -1
  68. package/dist/components/floating/tooltip.js +1 -1
  69. package/dist/components/form/autocomplete.js +5 -5
  70. package/dist/components/form/date-picker.js +3 -3
  71. package/dist/components/form/file-upload.d.ts.map +1 -1
  72. package/dist/components/form/file-upload.js +3 -3
  73. package/dist/components/form/input-field.d.ts.map +1 -1
  74. package/dist/components/form/input.js +1 -1
  75. package/dist/components/form/select.js +29 -29
  76. package/dist/components/form/select.js.map +1 -1
  77. package/dist/components/form/task-list.js.map +1 -1
  78. package/dist/components/form/transfer-list.js +15 -15
  79. package/dist/components/form/transfer-list.js.map +1 -1
  80. package/dist/components/page-calendar/calendar-header.d.ts.map +1 -1
  81. package/dist/components/table/table.js +3 -3
  82. package/dist/config/context.d.ts +2 -0
  83. package/dist/config/context.d.ts.map +1 -1
  84. package/dist/context-BFXNJVn2.js.map +1 -1
  85. package/dist/{date-picker-BxPTdZPy.js → date-picker-DwNo22lx.js} +316 -288
  86. package/dist/date-picker-DwNo22lx.js.map +1 -0
  87. package/dist/{file-upload-BB6BdGcE.js → file-upload-Brf2NkLr.js} +1103 -976
  88. package/dist/file-upload-Brf2NkLr.js.map +1 -0
  89. package/dist/{floating-ui.react-DycKASR0.js → floating-ui.react-QNHG9W4N.js} +205 -205
  90. package/dist/{floating-ui.react-DycKASR0.js.map → floating-ui.react-QNHG9W4N.js.map} +1 -1
  91. package/dist/hooks/use-components-provider.d.ts.map +1 -1
  92. package/dist/index-0YMC-_Lt.js.map +1 -1
  93. package/dist/index-BelDtX5M.js +1821 -0
  94. package/dist/index-BelDtX5M.js.map +1 -0
  95. package/dist/{index-BtlhELJ3.js → index-C-PuFUZi.js} +136 -136
  96. package/dist/index-C-PuFUZi.js.map +1 -0
  97. package/dist/index-Z-fZHxfJ.js +335 -0
  98. package/dist/index-Z-fZHxfJ.js.map +1 -0
  99. package/dist/index-t1qLJTt5.js.map +1 -1
  100. package/dist/index.js +2404 -2328
  101. package/dist/index.js.map +1 -1
  102. package/dist/{input-CoJoHIhd.js → input-CrGrSnUt.js} +2 -2
  103. package/dist/{input-CoJoHIhd.js.map → input-CrGrSnUt.js.map} +1 -1
  104. package/dist/input-field-5vYcz5tT.js +166 -0
  105. package/dist/input-field-5vYcz5tT.js.map +1 -0
  106. package/dist/notifications-cUdVPs-B.js +2786 -0
  107. package/dist/notifications-cUdVPs-B.js.map +1 -0
  108. package/dist/proxy-BZcQiBrp.js.map +1 -1
  109. package/dist/{slot-CQW8ZzBb.js → slot-CRyweuj0.js} +5 -5
  110. package/dist/{slot-CQW8ZzBb.js.map → slot-CRyweuj0.js.map} +1 -1
  111. package/dist/{tabs-ccIA7vMo.js → tabs-S00a8qq8.js} +5 -5
  112. package/dist/{tabs-ccIA7vMo.js.map → tabs-S00a8qq8.js.map} +1 -1
  113. package/dist/use-motion-value-eGwNuWuw.js.map +1 -1
  114. package/package.json +2 -2
  115. package/dist/autocomplete-Boida9R7.js.map +0 -1
  116. package/dist/calendar-BswV66Nx.js.map +0 -1
  117. package/dist/chevron-down-BBFYYzZq.js +0 -6
  118. package/dist/chevron-down-BBFYYzZq.js.map +0 -1
  119. package/dist/chevron-right-DvXGOiS_.js +0 -6
  120. package/dist/chevron-right-DvXGOiS_.js.map +0 -1
  121. package/dist/circle-check-big-3M5lhTxx.js +0 -9
  122. package/dist/circle-check-big-3M5lhTxx.js.map +0 -1
  123. package/dist/createLucideIcon-CP-mMPfa.js +0 -76
  124. package/dist/createLucideIcon-CP-mMPfa.js.map +0 -1
  125. package/dist/date-picker-BxPTdZPy.js.map +0 -1
  126. package/dist/file-CBCP85VI.js +0 -15
  127. package/dist/file-CBCP85VI.js.map +0 -1
  128. package/dist/file-upload-BB6BdGcE.js.map +0 -1
  129. package/dist/index-BJ1ayTam.js +0 -126
  130. package/dist/index-BJ1ayTam.js.map +0 -1
  131. package/dist/index-BtlhELJ3.js.map +0 -1
  132. package/dist/index-ChfR6F8d.js +0 -1590
  133. package/dist/index-ChfR6F8d.js.map +0 -1
  134. package/dist/index-DE4shK8D.js +0 -215
  135. package/dist/index-DE4shK8D.js.map +0 -1
  136. package/dist/info-N5jWZg2A.js +0 -10
  137. package/dist/info-N5jWZg2A.js.map +0 -1
  138. package/dist/input-field-DTeIrwpK.js +0 -146
  139. package/dist/input-field-DTeIrwpK.js.map +0 -1
  140. package/dist/notifications-NPuFDsBp.js +0 -2550
  141. package/dist/notifications-NPuFDsBp.js.map +0 -1
  142. package/dist/triangle-alert-CHMhQ6yd.js +0 -16
  143. package/dist/triangle-alert-CHMhQ6yd.js.map +0 -1
  144. package/dist/x-B9bYxG31.js +0 -9
  145. package/dist/x-B9bYxG31.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-ChfR6F8d.js","sources":["../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/arrow-down-0-1.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/arrow-up-0-1.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/arrow-up-down.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/grip-vertical.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/list-filter.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/plus.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/search-check.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/search-x.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/trash-2.js","../../../node_modules/.pnpm/lucide-react@0.575.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/ungroup.js","../../../node_modules/.pnpm/motion-dom@12.34.3/node_modules/motion-dom/dist/es/utils/transform.mjs","../../../node_modules/.pnpm/motion-dom@12.34.3/node_modules/motion-dom/dist/es/projection/node/group.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/value/use-combine-values.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/value/use-computed.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/value/use-transform.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/context/ReorderContext.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/Reorder/utils/auto-scroll.mjs","../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs","../../../node_modules/.pnpm/linq-arrays@3.2.5/node_modules/linq-arrays/dist/index.mjs","../src/components/display/empty.tsx","../src/components/table/pagination.tsx","../src/components/table/row.tsx","../../../node_modules/.pnpm/storage-manager-js@4.2.6-5/node_modules/storage-manager-js/dist/index.js","../src/components/table/table-lib.ts","../src/components/table/sort.tsx","../src/components/table/table.context.tsx","../src/components/table/filter.tsx","../src/components/table/thead.tsx","../src/components/table/inner-table.tsx","../src/components/table/group.tsx","../src/components/table/metadata.tsx","../src/components/table/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m3 16 4 4 4-4\", key: \"1co6wj\" }],\n [\"path\", { d: \"M7 20V4\", key: \"1yoxec\" }],\n [\"rect\", { x: \"15\", y: \"4\", width: \"4\", height: \"6\", ry: \"2\", key: \"1bwicg\" }],\n [\"path\", { d: \"M17 20v-6h-2\", key: \"1qp1so\" }],\n [\"path\", { d: \"M15 20h4\", key: \"1j968p\" }]\n];\nconst ArrowDown01 = createLucideIcon(\"arrow-down-0-1\", __iconNode);\n\nexport { __iconNode, ArrowDown01 as default };\n//# sourceMappingURL=arrow-down-0-1.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }],\n [\"rect\", { x: \"15\", y: \"4\", width: \"4\", height: \"6\", ry: \"2\", key: \"1bwicg\" }],\n [\"path\", { d: \"M17 20v-6h-2\", key: \"1qp1so\" }],\n [\"path\", { d: \"M15 20h4\", key: \"1j968p\" }]\n];\nconst ArrowUp01 = createLucideIcon(\"arrow-up-0-1\", __iconNode);\n\nexport { __iconNode, ArrowUp01 as default };\n//# sourceMappingURL=arrow-up-0-1.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 16-4 4-4-4\", key: \"f6ql7i\" }],\n [\"path\", { d: \"M17 20V4\", key: \"1ejh1v\" }],\n [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }]\n];\nconst ArrowUpDown = createLucideIcon(\"arrow-up-down\", __iconNode);\n\nexport { __iconNode, ArrowUpDown as default };\n//# sourceMappingURL=arrow-up-down.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode);\n\nexport { __iconNode, GripVertical as default };\n//# sourceMappingURL=grip-vertical.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M2 5h20\", key: \"1fs1ex\" }],\n [\"path\", { d: \"M6 12h12\", key: \"8npq4p\" }],\n [\"path\", { d: \"M9 19h6\", key: \"456am0\" }]\n];\nconst ListFilter = createLucideIcon(\"list-filter\", __iconNode);\n\nexport { __iconNode, ListFilter as default };\n//# sourceMappingURL=list-filter.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m8 11 2 2 4-4\", key: \"1sed1v\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n];\nconst SearchCheck = createLucideIcon(\"search-check\", __iconNode);\n\nexport { __iconNode, SearchCheck as default };\n//# sourceMappingURL=search-check.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m13.5 8.5-5 5\", key: \"1cs55j\" }],\n [\"path\", { d: \"m8.5 8.5 5 5\", key: \"a8mexj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n];\nconst SearchX = createLucideIcon(\"search-x\", __iconNode);\n\nexport { __iconNode, SearchX as default };\n//# sourceMappingURL=search-x.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 11v6\", key: \"nco0om\" }],\n [\"path\", { d: \"M14 11v6\", key: \"outv1u\" }],\n [\"path\", { d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\", key: \"miytrc\" }],\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\", key: \"e791ji\" }]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode);\n\nexport { __iconNode, Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n","/**\n * @license lucide-react v0.575.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"8\", height: \"6\", x: \"5\", y: \"4\", rx: \"1\", key: \"nzclkv\" }],\n [\"rect\", { width: \"8\", height: \"6\", x: \"11\", y: \"14\", rx: \"1\", key: \"4tytwb\" }]\n];\nconst Ungroup = createLucideIcon(\"ungroup\", __iconNode);\n\nexport { __iconNode, Ungroup as default };\n//# sourceMappingURL=ungroup.js.map\n","import { interpolate } from './interpolate.mjs';\n\nfunction transform(...args) {\n const useImmediate = !Array.isArray(args[0]);\n const argOffset = useImmediate ? 0 : -1;\n const inputValue = args[0 + argOffset];\n const inputRange = args[1 + argOffset];\n const outputRange = args[2 + argOffset];\n const options = args[3 + argOffset];\n const interpolator = interpolate(inputRange, outputRange, options);\n return useImmediate ? interpolator(inputValue) : interpolator;\n}\n\nexport { transform };\n//# sourceMappingURL=transform.mjs.map\n","const notify = (node) => !node.isLayoutDirty && node.willUpdate(false);\nfunction nodeGroup() {\n const nodes = new Set();\n const subscriptions = new WeakMap();\n const dirtyAll = () => nodes.forEach(notify);\n return {\n add: (node) => {\n nodes.add(node);\n subscriptions.set(node, node.addEventListener(\"willUpdate\", dirtyAll));\n },\n remove: (node) => {\n nodes.delete(node);\n const unsubscribe = subscriptions.get(node);\n if (unsubscribe) {\n unsubscribe();\n subscriptions.delete(node);\n }\n dirtyAll();\n },\n dirty: dirtyAll,\n };\n}\n\nexport { nodeGroup };\n//# sourceMappingURL=group.mjs.map\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Note: Still used by components generated by old versions of Framer\n *\n * @deprecated\n */\nconst DeprecatedLayoutGroupContext = createContext(null);\n\nexport { DeprecatedLayoutGroupContext };\n//# sourceMappingURL=DeprecatedLayoutGroupContext.mjs.map\n","\"use client\";\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n//# sourceMappingURL=use-is-mounted.mjs.map\n","\"use client\";\nimport { frame } from 'motion-dom';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n//# sourceMappingURL=use-force-update.mjs.map\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useContext, useRef, useMemo } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { DeprecatedLayoutGroupContext } from '../../context/DeprecatedLayoutGroupContext.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { nodeGroup } from 'motion-dom';\n\nconst shouldInheritGroup = (inherit) => inherit === true;\nconst shouldInheritId = (inherit) => shouldInheritGroup(inherit === true) || inherit === \"id\";\nconst LayoutGroup = ({ children, id, inherit = true }) => {\n const layoutGroupContext = useContext(LayoutGroupContext);\n const deprecatedLayoutGroupContext = useContext(DeprecatedLayoutGroupContext);\n const [forceRender, key] = useForceUpdate();\n const context = useRef(null);\n const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext;\n if (context.current === null) {\n if (shouldInheritId(inherit) && upstreamId) {\n id = id ? upstreamId + \"-\" + id : upstreamId;\n }\n context.current = {\n id,\n group: shouldInheritGroup(inherit)\n ? layoutGroupContext.group || nodeGroup()\n : nodeGroup(),\n };\n }\n const memoizedContext = useMemo(() => ({ ...context.current, forceRender }), [key]);\n return (jsx(LayoutGroupContext.Provider, { value: memoizedContext, children: children }));\n};\n\nexport { LayoutGroup };\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nimport { cancelFrame, frame } from 'motion-dom';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\n\nfunction useCombineMotionValues(values, combineValues) {\n /**\n * Initialise the returned motion value. This remains the same between renders.\n */\n const value = useMotionValue(combineValues());\n /**\n * Create a function that will update the template motion value with the latest values.\n * This is pre-bound so whenever a motion value updates it can schedule its\n * execution in Framesync. If it's already been scheduled it won't be fired twice\n * in a single frame.\n */\n const updateValue = () => value.set(combineValues());\n /**\n * Synchronously update the motion value with the latest values during the render.\n * This ensures that within a React render, the styles applied to the DOM are up-to-date.\n */\n updateValue();\n /**\n * Subscribe to all motion values found within the template. Whenever any of them change,\n * schedule an update.\n */\n useIsomorphicLayoutEffect(() => {\n const scheduleUpdate = () => frame.preRender(updateValue, false, true);\n const subscriptions = values.map((v) => v.on(\"change\", scheduleUpdate));\n return () => {\n subscriptions.forEach((unsubscribe) => unsubscribe());\n cancelFrame(updateValue);\n };\n });\n return value;\n}\n\nexport { useCombineMotionValues };\n//# sourceMappingURL=use-combine-values.mjs.map\n","\"use client\";\nimport { collectMotionValues } from 'motion-dom';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\n\nfunction useComputed(compute) {\n /**\n * Open session of collectMotionValues. Any MotionValue that calls get()\n * will be saved into this array.\n */\n collectMotionValues.current = [];\n compute();\n const value = useCombineMotionValues(collectMotionValues.current, compute);\n /**\n * Synchronously close session of collectMotionValues.\n */\n collectMotionValues.current = undefined;\n return value;\n}\n\nexport { useComputed };\n//# sourceMappingURL=use-computed.mjs.map\n","\"use client\";\nimport { transform } from 'motion-dom';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\nimport { useComputed } from './use-computed.mjs';\n\nfunction useTransform(input, inputRangeOrTransformer, outputRangeOrMap, options) {\n if (typeof input === \"function\") {\n return useComputed(input);\n }\n /**\n * Detect if outputRangeOrMap is an output map (object with keys)\n * rather than an output range (array).\n */\n const isOutputMap = outputRangeOrMap !== undefined &&\n !Array.isArray(outputRangeOrMap) &&\n typeof inputRangeOrTransformer !== \"function\";\n if (isOutputMap) {\n return useMapTransform(input, inputRangeOrTransformer, outputRangeOrMap, options);\n }\n const outputRange = outputRangeOrMap;\n const transformer = typeof inputRangeOrTransformer === \"function\"\n ? inputRangeOrTransformer\n : transform(inputRangeOrTransformer, outputRange, options);\n const result = Array.isArray(input)\n ? useListTransform(input, transformer)\n : useListTransform([input], ([latest]) => transformer(latest));\n const inputAccelerate = !Array.isArray(input)\n ? input.accelerate\n : undefined;\n if (inputAccelerate &&\n !inputAccelerate.isTransformed &&\n typeof inputRangeOrTransformer !== \"function\" &&\n Array.isArray(outputRangeOrMap) &&\n options?.clamp !== false) {\n result.accelerate = {\n ...inputAccelerate,\n times: inputRangeOrTransformer,\n keyframes: outputRangeOrMap,\n isTransformed: true,\n ...(options?.ease ? { ease: options.ease } : {}),\n };\n }\n return result;\n}\nfunction useListTransform(values, transformer) {\n const latest = useConstant(() => []);\n return useCombineMotionValues(values, () => {\n latest.length = 0;\n const numValues = values.length;\n for (let i = 0; i < numValues; i++) {\n latest[i] = values[i].get();\n }\n return transformer(latest);\n });\n}\nfunction useMapTransform(inputValue, inputRange, outputMap, options) {\n /**\n * Capture keys once to ensure hooks are called in consistent order.\n */\n const keys = useConstant(() => Object.keys(outputMap));\n const output = useConstant(() => ({}));\n for (const key of keys) {\n output[key] = useTransform(inputValue, inputRange, outputMap[key], options);\n }\n return output;\n}\n\nexport { useTransform };\n//# sourceMappingURL=use-transform.mjs.map\n","import { useConstant } from '../../utils/use-constant.mjs';\n\n/**\n * Can manually trigger a drag gesture on one or more `drag`-enabled `motion` components.\n *\n * ```jsx\n * const dragControls = useDragControls()\n *\n * function startDrag(event) {\n * dragControls.start(event, { snapToCursor: true })\n * }\n *\n * return (\n * <>\n * <div onPointerDown={startDrag} />\n * <motion.div drag=\"x\" dragControls={dragControls} />\n * </>\n * )\n * ```\n *\n * @public\n */\nclass DragControls {\n constructor() {\n this.componentControls = new Set();\n }\n /**\n * Subscribe a component's internal `VisualElementDragControls` to the user-facing API.\n *\n * @internal\n */\n subscribe(controls) {\n this.componentControls.add(controls);\n return () => this.componentControls.delete(controls);\n }\n /**\n * Start a drag gesture on every `motion` component that has this set of drag controls\n * passed into it via the `dragControls` prop.\n *\n * ```jsx\n * dragControls.start(e, {\n * snapToCursor: true\n * })\n * ```\n *\n * @param event - PointerEvent\n * @param options - Options\n *\n * @public\n */\n start(event, options) {\n this.componentControls.forEach((controls) => {\n controls.start(event.nativeEvent || event, options);\n });\n }\n /**\n * Cancels a drag gesture.\n *\n * ```jsx\n * dragControls.cancel()\n * ```\n *\n * @public\n */\n cancel() {\n this.componentControls.forEach((controls) => {\n controls.cancel();\n });\n }\n /**\n * Stops a drag gesture.\n *\n * ```jsx\n * dragControls.stop()\n * ```\n *\n * @public\n */\n stop() {\n this.componentControls.forEach((controls) => {\n controls.stop();\n });\n }\n}\nconst createDragControls = () => new DragControls();\n/**\n * Usually, dragging is initiated by pressing down on a `motion` component with a `drag` prop\n * and moving it. For some use-cases, for instance clicking at an arbitrary point on a video scrubber, we\n * might want to initiate that dragging from a different component than the draggable one.\n *\n * By creating a `dragControls` using the `useDragControls` hook, we can pass this into\n * the draggable component's `dragControls` prop. It exposes a `start` method\n * that can start dragging from pointer events on other components.\n *\n * ```jsx\n * const dragControls = useDragControls()\n *\n * function startDrag(event) {\n * dragControls.start(event, { snapToCursor: true })\n * }\n *\n * return (\n * <>\n * <div onPointerDown={startDrag} />\n * <motion.div drag=\"x\" dragControls={dragControls} />\n * </>\n * )\n * ```\n *\n * @public\n */\nfunction useDragControls() {\n return useConstant(createDragControls);\n}\n\nexport { DragControls, useDragControls };\n//# sourceMappingURL=use-drag-controls.mjs.map\n","\"use client\";\nimport { createContext } from 'react';\n\nconst ReorderContext = createContext(null);\n\nexport { ReorderContext };\n//# sourceMappingURL=ReorderContext.mjs.map\n","import { mixNumber } from 'motion-dom';\nimport { moveItem } from 'motion-utils';\n\nfunction checkReorder(order, value, offset, velocity) {\n if (!velocity)\n return order;\n const index = order.findIndex((item) => item.value === value);\n if (index === -1)\n return order;\n const nextOffset = velocity > 0 ? 1 : -1;\n const nextItem = order[index + nextOffset];\n if (!nextItem)\n return order;\n const item = order[index];\n const nextLayout = nextItem.layout;\n const nextItemCenter = mixNumber(nextLayout.min, nextLayout.max, 0.5);\n if ((nextOffset === 1 && item.layout.max + offset > nextItemCenter) ||\n (nextOffset === -1 && item.layout.min + offset < nextItemCenter)) {\n return moveItem(order, index, index + nextOffset);\n }\n return order;\n}\n\nexport { checkReorder };\n//# sourceMappingURL=check-reorder.mjs.map\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { invariant } from 'motion-utils';\nimport { forwardRef, useRef, useEffect } from 'react';\nimport { ReorderContext } from '../../context/ReorderContext.mjs';\nimport { motion } from '../../render/components/motion/proxy.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { checkReorder } from './utils/check-reorder.mjs';\n\nfunction ReorderGroupComponent({ children, as = \"ul\", axis = \"y\", onReorder, values, ...props }, externalRef) {\n const Component = useConstant(() => motion[as]);\n const order = [];\n const isReordering = useRef(false);\n const groupRef = useRef(null);\n invariant(Boolean(values), \"Reorder.Group must be provided a values prop\", \"reorder-values\");\n const context = {\n axis,\n groupRef,\n registerItem: (value, layout) => {\n // If the entry was already added, update it rather than adding it again\n const idx = order.findIndex((entry) => value === entry.value);\n if (idx !== -1) {\n order[idx].layout = layout[axis];\n }\n else {\n order.push({ value: value, layout: layout[axis] });\n }\n order.sort(compareMin);\n },\n updateOrder: (item, offset, velocity) => {\n if (isReordering.current)\n return;\n const newOrder = checkReorder(order, item, offset, velocity);\n if (order !== newOrder) {\n isReordering.current = true;\n onReorder(newOrder\n .map(getValue)\n .filter((value) => values.indexOf(value) !== -1));\n }\n },\n };\n useEffect(() => {\n isReordering.current = false;\n });\n // Combine refs if external ref is provided\n const setRef = (element) => {\n groupRef.current = element;\n if (typeof externalRef === \"function\") {\n externalRef(element);\n }\n else if (externalRef) {\n externalRef.current = element;\n }\n };\n /**\n * Disable browser scroll anchoring on the group container.\n * When items reorder, scroll anchoring can cause the browser to adjust\n * the scroll position, which interferes with drag position calculations.\n */\n const groupStyle = {\n overflowAnchor: \"none\",\n ...props.style,\n };\n return (jsx(Component, { ...props, style: groupStyle, ref: setRef, ignoreStrict: true, children: jsx(ReorderContext.Provider, { value: context, children: children }) }));\n}\nconst ReorderGroup = /*@__PURE__*/ forwardRef(ReorderGroupComponent);\nfunction getValue(item) {\n return item.value;\n}\nfunction compareMin(a, b) {\n return a.layout.min - b.layout.min;\n}\n\nexport { ReorderGroup, ReorderGroupComponent };\n//# sourceMappingURL=Group.mjs.map\n","const threshold = 50;\nconst maxSpeed = 25;\nconst overflowStyles = new Set([\"auto\", \"scroll\"]);\n// Track initial scroll limits per scrollable element (Bug 1 fix)\nconst initialScrollLimits = new WeakMap();\nconst activeScrollEdge = new WeakMap();\n// Track which group element is currently dragging to clear state on end\nlet currentGroupElement = null;\nfunction resetAutoScrollState() {\n if (currentGroupElement) {\n const scrollableAncestor = findScrollableAncestor(currentGroupElement, \"y\");\n if (scrollableAncestor) {\n activeScrollEdge.delete(scrollableAncestor);\n initialScrollLimits.delete(scrollableAncestor);\n }\n // Also try x axis\n const scrollableAncestorX = findScrollableAncestor(currentGroupElement, \"x\");\n if (scrollableAncestorX && scrollableAncestorX !== scrollableAncestor) {\n activeScrollEdge.delete(scrollableAncestorX);\n initialScrollLimits.delete(scrollableAncestorX);\n }\n currentGroupElement = null;\n }\n}\nfunction isScrollableElement(element, axis) {\n const style = getComputedStyle(element);\n const overflow = axis === \"x\" ? style.overflowX : style.overflowY;\n const isDocumentScroll = element === document.body ||\n element === document.documentElement;\n return overflowStyles.has(overflow) || isDocumentScroll;\n}\nfunction findScrollableAncestor(element, axis) {\n let current = element?.parentElement;\n while (current) {\n if (isScrollableElement(current, axis)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\nfunction getScrollAmount(pointerPosition, scrollElement, axis) {\n const rect = scrollElement.getBoundingClientRect();\n const start = axis === \"x\" ? Math.max(0, rect.left) : Math.max(0, rect.top);\n const end = axis === \"x\" ? Math.min(window.innerWidth, rect.right) : Math.min(window.innerHeight, rect.bottom);\n const distanceFromStart = pointerPosition - start;\n const distanceFromEnd = end - pointerPosition;\n if (distanceFromStart < threshold) {\n const intensity = 1 - distanceFromStart / threshold;\n return { amount: -maxSpeed * intensity * intensity, edge: \"start\" };\n }\n else if (distanceFromEnd < threshold) {\n const intensity = 1 - distanceFromEnd / threshold;\n return { amount: maxSpeed * intensity * intensity, edge: \"end\" };\n }\n return { amount: 0, edge: null };\n}\nfunction autoScrollIfNeeded(groupElement, pointerPosition, axis, velocity) {\n if (!groupElement)\n return;\n // Track the group element for cleanup\n currentGroupElement = groupElement;\n const scrollableAncestor = findScrollableAncestor(groupElement, axis);\n if (!scrollableAncestor)\n return;\n // Convert pointer position from page coordinates to viewport coordinates.\n // The gesture system uses pageX/pageY but getBoundingClientRect() returns\n // viewport-relative coordinates, so we need to account for page scroll.\n const viewportPointerPosition = pointerPosition - (axis === \"x\" ? window.scrollX : window.scrollY);\n const { amount: scrollAmount, edge } = getScrollAmount(viewportPointerPosition, scrollableAncestor, axis);\n // If not in any threshold zone, clear all state\n if (edge === null) {\n activeScrollEdge.delete(scrollableAncestor);\n initialScrollLimits.delete(scrollableAncestor);\n return;\n }\n const currentActiveEdge = activeScrollEdge.get(scrollableAncestor);\n const isDocumentScroll = scrollableAncestor === document.body ||\n scrollableAncestor === document.documentElement;\n // If not currently scrolling this edge, check velocity to see if we should start\n if (currentActiveEdge !== edge) {\n // Only start scrolling if velocity is towards the edge\n const shouldStart = (edge === \"start\" && velocity < 0) ||\n (edge === \"end\" && velocity > 0);\n if (!shouldStart)\n return;\n // Activate this edge\n activeScrollEdge.set(scrollableAncestor, edge);\n // Record initial scroll limit (prevents infinite scroll)\n const maxScroll = axis === \"x\"\n ? scrollableAncestor.scrollWidth - (isDocumentScroll ? window.innerWidth : scrollableAncestor.clientWidth)\n : scrollableAncestor.scrollHeight - (isDocumentScroll ? window.innerHeight : scrollableAncestor.clientHeight);\n initialScrollLimits.set(scrollableAncestor, maxScroll);\n }\n // Cap scrolling at initial limit (prevents infinite scroll)\n if (scrollAmount > 0) {\n const initialLimit = initialScrollLimits.get(scrollableAncestor);\n const currentScroll = axis === \"x\"\n ? (isDocumentScroll ? window.scrollX : scrollableAncestor.scrollLeft)\n : (isDocumentScroll ? window.scrollY : scrollableAncestor.scrollTop);\n if (currentScroll >= initialLimit)\n return;\n }\n // Apply scroll\n if (axis === \"x\") {\n if (isDocumentScroll) {\n window.scrollBy({ left: scrollAmount });\n }\n else {\n scrollableAncestor.scrollLeft += scrollAmount;\n }\n }\n else {\n if (isDocumentScroll) {\n window.scrollBy({ top: scrollAmount });\n }\n else {\n scrollableAncestor.scrollTop += scrollAmount;\n }\n }\n}\n\nexport { autoScrollIfNeeded, resetAutoScrollState };\n//# sourceMappingURL=auto-scroll.mjs.map\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { isMotionValue } from 'motion-dom';\nimport { invariant } from 'motion-utils';\nimport { forwardRef, useContext } from 'react';\nimport { ReorderContext } from '../../context/ReorderContext.mjs';\nimport { motion } from '../../render/components/motion/proxy.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useMotionValue } from '../../value/use-motion-value.mjs';\nimport { useTransform } from '../../value/use-transform.mjs';\nimport { autoScrollIfNeeded, resetAutoScrollState } from './utils/auto-scroll.mjs';\n\nfunction useDefaultMotionValue(value, defaultValue = 0) {\n return isMotionValue(value) ? value : useMotionValue(defaultValue);\n}\nfunction ReorderItemComponent({ children, style = {}, value, as = \"li\", onDrag, onDragEnd, layout = true, ...props }, externalRef) {\n const Component = useConstant(() => motion[as]);\n const context = useContext(ReorderContext);\n const point = {\n x: useDefaultMotionValue(style.x),\n y: useDefaultMotionValue(style.y),\n };\n const zIndex = useTransform([point.x, point.y], ([latestX, latestY]) => latestX || latestY ? 1 : \"unset\");\n invariant(Boolean(context), \"Reorder.Item must be a child of Reorder.Group\", \"reorder-item-child\");\n const { axis, registerItem, updateOrder, groupRef } = context;\n return (jsx(Component, { drag: axis, ...props, dragSnapToOrigin: true, style: { ...style, x: point.x, y: point.y, zIndex }, layout: layout, onDrag: (event, gesturePoint) => {\n const { velocity, point: pointerPoint } = gesturePoint;\n const offset = point[axis].get();\n // Always attempt to update order - checkReorder handles the logic\n updateOrder(value, offset, velocity[axis]);\n autoScrollIfNeeded(groupRef.current, pointerPoint[axis], axis, velocity[axis]);\n onDrag && onDrag(event, gesturePoint);\n }, onDragEnd: (event, gesturePoint) => {\n resetAutoScrollState();\n onDragEnd && onDragEnd(event, gesturePoint);\n }, onLayoutMeasure: (measured) => {\n registerItem(value, measured);\n }, ref: externalRef, ignoreStrict: true, children: children }));\n}\nconst ReorderItem = /*@__PURE__*/ forwardRef(ReorderItemComponent);\n\nexport { ReorderItem, ReorderItemComponent };\n//# sourceMappingURL=Item.mjs.map\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// src/methods/any.ts\nvar any = (array, callback) => {\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const includes = callback(array[index], index, array);\n if (includes) {\n return true;\n }\n }\n return false;\n};\nvar anyLikeWhere = (array, args, symbol, value) => whereSymbol(any, array, args, symbol, value);\n\n// src/methods/utils.ts\nvar isObject = (a) => typeof a === \"object\";\nvar equals = (a, b) => {\n if (a === b) {\n return true;\n }\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n if (!a || !b || !isObject(a) && !isObject(b)) {\n return a === b;\n }\n if (a.prototype !== b.prototype) {\n return false;\n }\n const keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every((k) => equals(a[k], b[k]));\n};\nvar getKey = (obj, key) => {\n if ((isObject(obj) || Array.isArray(obj)) && !!key) {\n return obj[key];\n }\n return obj;\n};\nvar sortBy = (key) => (a, b) => {\n if (a[key] === b[key]) {\n return 0;\n }\n return a[key] > b[key] ? 1 : -1;\n};\nvar isNumber = (a) => /[0-9.]+/.test(a);\nvar isNumberOrString = (o) => [\"string\", \"number\"].includes(typeof o);\n\n// src/symbols.ts\nvar isEmpty = (v) => v === void 0 || v === null || (v == null ? void 0 : v.length) === 0 || v === \"\";\nvar symbolMap = {\n eq: equals,\n is: Object.is,\n \"!=\": (v, c) => v != c,\n \"!==\": (v, c) => v !== c,\n \"<\": (v, c) => v < c,\n \"<=\": (v, c) => v <= c,\n \"==\": (v, c) => v == c,\n \"===\": (v, c) => v === c,\n \">\": (v, c) => v > c,\n \">=\": (v, c) => v >= c,\n includes: (v, c) => `${v}`.includes(c),\n notIncludes: (v, c) => !`${v}`.includes(c),\n startsWith: (v, c) => `${v}`.startsWith(c),\n endsWith: (v, c) => `${v}`.endsWith(c),\n like: (v, c) => new RegExp(`.*${c}.*`, \"gi\").test(`${v}`),\n alphabetical: (v, c) => v.toString().localeCompare(c.toString()),\n empty: isEmpty,\n notEmpty: (x) => !isEmpty(x),\n in: (v, c) => any(c, (x) => equals(v, x)),\n notIn: (v, c) => all(c, (x) => !equals(v, x))\n};\nvar GetOperationFromSymbol = (symbol) => {\n if (symbol in symbolMap)\n return symbolMap[symbol];\n throw new Error(\"Linq - Symbol not found\");\n};\n\n// src/methods/filter.ts\nvar filter = (array, callback) => {\n const mappedArray = [];\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const includes = callback(array[index], index, array);\n if (includes) {\n mappedArray.push(array[index]);\n }\n }\n return mappedArray;\n};\n\n// src/methods/where.ts\nvar whereSymbol = (func, array, args, symbol, value) => {\n if (typeof args === \"function\")\n return func(array, args);\n const op = GetOperationFromSymbol(symbol);\n if (!!args && !!symbol && value !== void 0)\n return func(array, (x) => op(x[args], value));\n return func(array, (x) => op(x, value));\n};\nvar where = (array, args, symbol, value) => whereSymbol(filter, array, args, symbol, value);\n\n// src/methods/all.ts\nvar all = (array, callback) => {\n for (let index = 0; index < array.length; index++) {\n const includes = callback(array[index], index, array);\n if (!includes) {\n return false;\n }\n }\n return true;\n};\nvar allLikeWhere = (array, args, symbol, value) => whereSymbol(all, array, args, symbol, value);\n\n// src/methods/clone.ts\nvar deepClone = (obj) => {\n if (obj === null) {\n return null;\n }\n const clone = __spreadValues({}, obj);\n Object.keys(clone).forEach((key) => clone[key] = isObject(obj[key]) ? deepClone(obj[key]) : obj[key]);\n return Array.isArray(obj) && obj.length ? (clone.length = obj.length) && Array.from(clone) : Array.isArray(obj) ? Array.from(obj) : clone;\n};\n\n// src/methods/contains.ts\nvar contains = (array, element) => {\n if (isObject(element)) {\n for (let index = 0; index < array.length; index++) {\n const current = array[index];\n if (equals(element, current)) {\n return true;\n }\n }\n return false;\n }\n for (let index = 0; index < array.length; index++) {\n const current = array[index];\n if (equals(element, current)) {\n return true;\n }\n }\n return false;\n};\n\n// src/methods/dict.ts\nvar dict = (array, key) => {\n const map2 = new Map(array.map((x) => [x[key], x]));\n return Object.fromEntries(map2.entries());\n};\n\n// src/methods/distinct.ts\nvar distinct = (array) => filter(\n array,\n (el, index, array2) => isObject(el) ? index === array2.findIndex((obj) => equals(obj, el)) : index === array2.indexOf(el)\n);\n\n// src/methods/find.ts\nvar find = (array, callback) => {\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const includes = callback(array[index], index, array);\n if (includes) {\n return array[index];\n }\n }\n return void 0;\n};\n\n// src/methods/group-by.ts\nvar groupWith = (array, func) => {\n const map2 = /* @__PURE__ */ new Map();\n array.forEach((x) => {\n const k = func(x);\n const item = map2.get(k) || [];\n item.push(x);\n map2.set(k, item);\n });\n return Object.fromEntries(map2.entries());\n};\nvar groupBy = (array, key) => groupWith(array, (item) => item[key]);\n\n// src/methods/map.ts\nvar map = (array, callback) => {\n const mappedArray = [];\n let index = 0;\n const len = array.length;\n for (index; index < len; index++) {\n const transform = callback(array[index], index, array);\n mappedArray.push(transform);\n }\n return mappedArray;\n};\n\n// src/methods/range.ts\nvar getInSequence = (a, b) => {\n let x = Number.parseInt(a, 10);\n let y = Number.parseInt(b, 10);\n return x > y ? [y, x] : [x, y];\n};\nvar individualChars = (charA, charZ, jumps = 1) => {\n const a = [];\n let i = charA.charCodeAt(0);\n const j = charZ.charCodeAt(0);\n for (; i <= j; i += jumps) {\n a.push(String.fromCharCode(i));\n }\n if (isNumber(charA) && isNumber(charZ)) {\n return a.map((x) => Number.parseInt(x));\n }\n return a;\n};\nvar createChars = (charA, charZ, jumps = 1) => {\n let abs = Math.abs(jumps);\n if (charA.length > 1 || charZ.length > 1) {\n if (isNumber(charA) && isNumber(charZ)) {\n const a = [];\n const [first2, second] = getInSequence(charA, charZ);\n for (let i = first2; i <= second; i += abs) {\n a.push(i);\n }\n return a;\n }\n }\n return individualChars(charA, charZ, abs);\n};\nvar range = (firstOrLength, secondOrSteps, jumps = 1) => {\n if (secondOrSteps === void 0) {\n const [x, y, jp] = firstOrLength.split(\"..\");\n if (jp === void 0) {\n return createChars(x, y, 1);\n }\n return createChars(x, jp, Number.parseInt(y, 10));\n }\n if (isNumberOrString(firstOrLength) && isNumberOrString(secondOrSteps)) {\n return createChars(`${firstOrLength}`, `${secondOrSteps}`, jumps);\n }\n return Array.from({ length: firstOrLength }, (_, i) => i * Math.abs(secondOrSteps));\n};\n\n// src/methods/reduce.ts\nvar reduce = (callback, initial, array) => {\n let accumulator = initial;\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const element = array[index];\n accumulator = callback(accumulator, element, index, array);\n }\n return accumulator;\n};\n\n// src/methods/reverse.ts\nvar reverse = (a) => {\n const array = Array.from(a.values());\n let left = null;\n let right = null;\n let length = array.length;\n for (left = 0; left < length / 2; left += 1) {\n right = length - 1 - left;\n let temporary = array[left];\n array[left] = array[right];\n array[right] = temporary;\n }\n return array;\n};\n\n// src/methods/skip.ts\nvar skip = (array, jumps) => {\n if (typeof jumps === \"number\") {\n return array.slice(jumps);\n }\n let len = array.length;\n for (let index = 0; index < len; index++) {\n const element = array[index];\n const assertion = jumps(element, index, array);\n if (assertion) {\n return array.slice(index);\n }\n }\n return array.slice(0);\n};\nvar skipLikeWhere = (array, args, symbol, value) => whereSymbol(skip, array, args, symbol, value);\n\n// src/methods/sort.ts\nvar selectTuple = (key, a, b) => {\n const valA = a[key];\n const valB = b[key];\n return [valA, valB];\n};\nvar isNil = (key) => key === void 0 || key === null;\nvar sortString = (key, reverse2 = false) => {\n if (reverse2) {\n return (a, b) => {\n if (isNil(key)) {\n return b.localeCompare(a);\n }\n const [valA, valB] = selectTuple(key, a, b);\n return valA.localeCompare(valB);\n };\n }\n return (a, b) => {\n if (isNil(key)) {\n return a.localeCompare(b);\n }\n const [valA, valB] = selectTuple(a, b, key);\n return valA.localeCompare(valB) * -1;\n };\n};\nvar sortNumber = (key, reverse2 = false) => {\n if (reverse2) {\n return (a, b) => {\n if (isNil(key)) {\n return b - a;\n }\n const [valA, valB] = selectTuple(key, a, b);\n return valB - valA;\n };\n }\n return (a, b) => {\n if (isNil(key)) {\n return a - b;\n }\n const [valA, valB] = selectTuple(a, b, key);\n return valA - valB;\n };\n};\nvar sortDate = (key, reverse2 = false) => {\n if (reverse2) {\n return (a, b) => {\n if (isNil(key)) {\n return Date.parse(b) - Date.parse(a);\n }\n const [valA, valB] = selectTuple(a, b, key);\n return Date.parse(valB.toISOString()) - Date.parse(valA.toISOString());\n };\n }\n return (a, b) => {\n if (isNil(key)) {\n return Date.parse(a) - Date.parse(b);\n }\n const [valA, valB] = selectTuple(a, b, key);\n return Date.parse(valA.toISOString()) - Date.parse(valB.toISOString());\n };\n};\nvar sort = (array, sorter) => {\n const shallowCopy = [...array];\n if (sorter === void 0)\n return shallowCopy.sort();\n if (typeof sorter === \"function\")\n return shallowCopy.toSorted(sorter);\n return shallowCopy.toSorted(sortBy(sorter));\n};\nvar Order = /* @__PURE__ */ ((Order2) => {\n Order2[\"Asc\"] = \"asc\";\n Order2[\"Desc\"] = \"desc\";\n return Order2;\n})(Order || {});\nvar createSorter = (fields) => (a, b) => fields.reduce((acc, x) => {\n const reverse2 = x.type === \"desc\" ? -1 : 1;\n const property = x.key;\n const p = a[property] > b[property] ? reverse2 : a[property] < b[property] ? -reverse2 : 0;\n return acc !== 0 ? acc : p;\n}, 0);\nvar multiSort = (array, fields) => array.sort(createSorter(fields));\n\n// src/methods/unique.ts\nvar unique = (array, key) => {\n if (key === void 0) {\n return [...new Set(array).values()];\n }\n const seen = /* @__PURE__ */ new Set();\n if (Array.isArray(key)) {\n return [...new Set(key)];\n }\n return filter(array, (el) => {\n const duplicate = key ? seen.has(el[key]) : seen.has(key);\n if (!!key) {\n if (!duplicate) {\n seen.add(el[key]);\n }\n }\n return !duplicate;\n });\n};\n\n// src/linq.ts\nvar Linq = class _Linq {\n constructor(array = []) {\n this.array = array;\n }\n static Range(...args) {\n return range(...args);\n }\n static New(array) {\n return new _Linq(array);\n }\n Where(args, symbol, value) {\n this.array = where(this.array, args, symbol, value);\n return this;\n }\n Some(args, symbol, value) {\n return anyLikeWhere(this.array, args, symbol, value);\n }\n All(args, symbol, value) {\n return allLikeWhere(this.array, args, symbol, value);\n }\n Reverse() {\n this.array = reverse(this.array);\n return this;\n }\n Add(el) {\n this.array = Array.isArray(el) ? this.array.concat(el) : this.array.concat([el]);\n return this;\n }\n Prepend(el) {\n this.array = Array.isArray(el) ? el.concat(this.array) : [el].concat(this.array);\n return this;\n }\n Select(transform) {\n return transform === void 0 ? this.array : this.array.map(transform);\n }\n Take(init, end) {\n if (end !== void 0) {\n this.array = this.array.slice(init, Math.max(0, end));\n } else {\n this.array = this.array.slice(init);\n }\n return this;\n }\n Head() {\n return this.array[0];\n }\n Tail() {\n return this.Skip(1);\n }\n Skip(args, symbol, value) {\n this.array = skipLikeWhere(this.array, args, symbol, value);\n return this;\n }\n Distinct() {\n this.array = distinct(this.array);\n return this;\n }\n First(predicate) {\n return predicate === void 0 ? this.array[0] : find(this.array, predicate) || null;\n }\n Last(predicate) {\n const len = this.array.length;\n if (predicate === void 0) {\n return this.array[len - 1];\n }\n for (let index = len; index !== 0; index--) {\n const includes = predicate(this.array[index], index, this.array);\n if (includes) {\n return this.array[index];\n }\n }\n return void 0;\n }\n Sum(key) {\n return key === void 0 ? reduce((acc, el) => acc + el, 0, this.array) : reduce((acc, el) => acc + getKey(el, key), 0, this.array);\n }\n Average(key) {\n return this.Sum(key) / this.array.length;\n }\n GroupBy(key) {\n return groupBy(this.array, key);\n }\n GroupWith(func) {\n return groupWith(this.array, func);\n }\n Except(exceptions) {\n return filter(this.array, (x) => !contains(exceptions, x));\n }\n Intersect(commons) {\n return filter(this.array, (x) => contains(commons, x));\n }\n OrderBy(key, order) {\n let array;\n array = !!key ? sort(this.array, key) : this.array.toSorted();\n this.array = order === \"desc\" ? reverse(array) : array;\n return this;\n }\n Includes(object) {\n return any(this.array, (x) => equals(x, object));\n }\n In(array) {\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const element = array[index];\n const includesElement = this.Includes(element);\n if (includesElement)\n return true;\n }\n return false;\n }\n Reduce(fn, firstValue) {\n return reduce(fn, firstValue != null ? firstValue : this.array[0], this.array);\n }\n Empty() {\n return this.array.length === 0;\n }\n ToMap(key) {\n return new Map(map(this.array, (item) => [key, item]));\n }\n Zip(array, fn) {\n return map(this.array, (item, index) => fn(item, array[index]));\n }\n Count(predicate) {\n return predicate === void 0 ? this.array.length : filter(this.array, predicate).length;\n }\n Get(n) {\n return this.array[n];\n }\n Clone() {\n return new _Linq(deepClone(this.array));\n }\n ToObject(key) {\n return dict(this.array, key);\n }\n Sort(sorter) {\n return Array.isArray(sorter) ? multiSort(this.array, sorter) : sort(this.array, sorter);\n }\n Unique(k) {\n return unique(this.array, k);\n }\n};\n\n// src/methods/chunk.ts\nvar chunk = (array, size) => reduce(\n (arr, item, index) => index % size === 0 ? [...arr, [item]] : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]],\n [],\n array\n);\n\n// src/methods/compact.ts\nvar compact = (array) => {\n const mappedArray = [];\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const element = array[index];\n if (Boolean(element)) {\n mappedArray.push(array[index]);\n }\n }\n return mappedArray;\n};\n\n// src/methods/get.ts\nvar first = (array) => array[0];\nvar last = (array) => array[array.length - 1];\nvar tail = (array) => skip(array, 1);\n\n// src/methods/numbers.ts\nvar MathMinMax = (fn, key, array) => Array.isArray(key) ? reduce((acc, el) => fn(acc, el), 0, key) : reduce((acc, el) => fn(acc, el[key]), 0, array);\nvar max = (array, key) => MathMinMax(Math.max, key, array);\nvar min = (array, key) => MathMinMax(Math.min, key, array);\nvar sum = (array, key) => MathMinMax((a, b) => a + b, key, array);\nvar diff = (array, key) => MathMinMax((a, b) => a - b, key, array);\n\n// src/methods/random.ts\nvar random = (array) => {\n const len = array.length;\n const i = Math.floor(Math.random() * len);\n return array[i];\n};\n\n// src/methods/repeat.ts\nvar repeat = (element, repeat2) => {\n const array = [];\n for (let index = 0; index < repeat2; index++) {\n array.push(element);\n }\n return array;\n};\n\n// src/methods/to-map.ts\nvar toMap = (array, key) => {\n const map2 = /* @__PURE__ */ new Map();\n const len = array.length;\n for (let index = 0; index < len; index++) {\n const element = array[index];\n const elementKey = element[key];\n map2.set(elementKey, element);\n }\n return map2;\n};\n\n// src/index.ts\nvar src_default = Linq;\n\nexport { Linq, Order, all, any, chunk, compact, contains, deepClone, src_default as default, dict, diff, distinct, filter, find, first, groupBy, last, map, max, min, multiSort, random, range, reduce, repeat, reverse, skip, sort, sortDate, sortNumber, sortString, sum, tail, toMap, unique, where };\n","import { type LucideProps, FileIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\n\nexport type EmptyProps = { Icon?: React.FC<LucideProps>; message?: string };\n\nexport const Empty = (props: EmptyProps) => {\n const Icon = props.Icon ?? FileIcon;\n const translate = useTranslations();\n return (\n <div className=\"flex w-full flex-col items-center justify-center gap-4 px-8 py-12\">\n <Icon size={64} className=\"text-disabled\" />\n <p className=\"text-disabled\">{props.message ?? translate.emptyDataMessage}</p>\n </div>\n );\n};\n","import { Fragment, useId, useMemo } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { Polymorph } from \"../core/polymorph\";\nimport { TablePagination } from \"./table-lib\";\n\nfunction createPaginationItems(current: number, max: number) {\n if (!current || !max) return [];\n const items: Array<string | number> = [1];\n if (current === 1 && max === 1) return items;\n if (current > 4) items.push(\"-\");\n const r = 2;\n const r1 = current - r;\n const r2 = current + r;\n for (let i = r1 > 2 ? r1 : 2; i <= Math.min(max, r2); i++) items.push(i);\n const p2 = max - 2;\n if (r2 + 1 !== p2) {\n if (r2 + 1 < max) items.push(\"_\");\n }\n if (r2 < max) {\n items.push(max - 2);\n items.push(max - 1);\n items.push(max);\n }\n return Array.from(new Set(items));\n}\n\nexport const Pagination = (pagination: TablePagination) => {\n const id = useId();\n const translation = useTranslations();\n const pageNavigation = useMemo(() => createPaginationItems(pagination.current, pagination.pages), [pagination.current, pagination.pages]);\n const hasNext = pagination.current < pagination.pages;\n\n return (\n <footer className=\"flex flex-wrap items-center justify-center gap-4 border-t-muted p-3 text-sm lg:flex-nowrap lg:justify-between\">\n <p>\n <translation.tablePaginationFooter\n {...pagination}\n sizes={pagination.sizes}\n select={\n pagination.onChangeSize && Array.isArray(pagination.sizes) ? (\n <Fragment>\n <label htmlFor={id}>{translation.tablePaginationSelectLabel}</label>\n <select\n id={id}\n value={pagination.size}\n className=\"cursor-pointer bg-transparent\"\n onChange={(e) => {\n pagination.onChangeSize?.(Number(e.target.value));\n }}\n >\n {pagination.sizes.map((value) => (\n <option key={`pagination-opt-${value}`} value={value}>\n {value}\n </option>\n ))}\n </select>{\" \"}\n </Fragment>\n ) : null\n }\n />\n </p>\n <nav>\n <ul className=\"flex items-center gap-2\">\n {pagination.current > 1 ? (\n <li>\n <Polymorph as={pagination.asLink || (\"button\" as any)} href=\"previous\" className=\"\">\n {translation.tablePaginationPrevious}\n </Polymorph>\n </li>\n ) : null}\n {pageNavigation.map((x) => {\n if (x === null) return null;\n return (\n <Fragment key={`pagination-${x}`}>\n {typeof x === \"string\" ? (\n <li>...</li>\n ) : (\n <li>\n <Polymorph\n href={x}\n as={pagination.asLink || (\"button\" as any)}\n className={`cursor-pointer border-b-2 px-3 py-1 proportional-nums transition-colors hover:border-primary-subtle hover:text-primary-subtle ${x === pagination.current ? \"border-primary text-primary\" : \"border-transparent\"}`}\n >\n {x}\n </Polymorph>\n </li>\n )}\n </Fragment>\n );\n })}\n {hasNext ? (\n <li>\n <Polymorph as={pagination.asLink || (\"button\" as any)} href=\"next\" className=\"\">\n {translation.tablePaginationNext}\n </Polymorph>\n </li>\n ) : null}\n </ul>\n </nav>\n </footer>\n );\n};\n","import React, { Fragment, PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport { Is } from \"sidekicker\";\nimport { path } from \"../../lib/fns\";\nimport { Any } from \"../../types\";\nimport { SkeletonCell } from \"../display/skeleton\";\nimport { CellAsideElement, CellPropsElement, Col, ColMatrix } from \"./table-lib\";\n\ntype ItemContentContext = {\n cols: Col<Any>[];\n loading?: boolean;\n loadingMore?: boolean;\n Aside?: React.FC<CellAsideElement<any>>;\n};\n\nconst RowAside = (props: PropsWithChildren) => {\n const parentRef = useRef<HTMLDivElement>(null);\n const ref = useRef<HTMLDivElement>(null);\n const [className, setClassName] = useState(\"opacity-0\");\n const ariaHidden = className === \"opacity-0\";\n\n const onLeave = () => setClassName(\"opacity-0\");\n\n const callback = () => {\n const child = ref.current;\n const parent = parentRef.current;\n if (child === null || parent === null) return;\n parent.style.left = `-${child.getBoundingClientRect().width + 4}px`;\n };\n\n const onEnter = () => setClassName(\"opacity-100\");\n\n useEffect(() => {\n const child = ref.current;\n if (child === null || parent === null) return;\n callback();\n const observer = new IntersectionObserver((entries) => entries.forEach(callback), { root: document.documentElement });\n observer.observe(child);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n ref={parentRef}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n data-component=\"cell-aside\"\n inert={ariaHidden ? true : undefined}\n tabIndex={ariaHidden ? -1 : undefined}\n className={`group-table-cell-aside absolute inset-0 top-0 flex h-full w-full items-stretch transition-opacity duration-300 ease-in-out ${className}`}\n >\n <div ref={ref} className=\"isolate block\">\n {props.children}\n </div>\n </div>\n );\n};\n\nexport const Row = (index: number, row: any, context: ItemContentContext) => {\n const cols = context.cols;\n const loading = context.loading;\n return (\n <Fragment>\n {cols.map((col, colIndex) => {\n const matrix: ColMatrix = `${colIndex},${index}`;\n const value: any = path(row, col.id as any);\n const Component: React.FC<CellPropsElement<any, any>> = col.Element as any;\n const className = col.cellProps?.className || \"\";\n const exposeAside = colIndex === 0 && context.Aside && loading === false;\n const Aside = context.Aside!;\n return (\n <td\n {...col.cellProps}\n role=\"cell\"\n data-matrix={matrix}\n key={`accessor-${index}-${colIndex}`}\n className={`typography group-table-cell flex border-collapse flex-col whitespace-pre-wrap border border-y border-b border-table-border p-[var(--table-cell-padding)] md:table-cell md:border-b-0 md:border-r md:border-l-transparent md:last:border-r-transparent ${className}`}\n >\n {exposeAside ? (\n <RowAside>\n <Aside col={col} row={row} rowIndex={index} />\n </RowAside>\n ) : null}\n <span className=\"block text-sm font-bold leading-tight md:hidden\">{col.thead}</span>\n <span className=\"relative\">\n {loading ? (\n SkeletonCell\n ) : Component ? (\n <Fragment>\n <Component row={row} matrix={matrix} col={col} rowIndex={index} value={value} />\n </Fragment>\n ) : (\n <Fragment>{Is.nil(value) ? \"\" : value}</Fragment>\n )}\n </span>\n </td>\n );\n })}\n </Fragment>\n );\n};\n","\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const k=(e,t)=>{try{Object.keys(e).forEach(t)}catch(o){window.console.log(o)}},i=e=>e==null,w=e=>{const t=typeof e;return t===\"string\"||t===\"number\"||t===\"boolean\"||i(e)},h=(e,t)=>{const o=t.getItem(e);try{return JSON.parse(o)}catch{return o??null}},u=e=>Object.keys(e).reduce((t,o)=>({...t,[o]:h(o,e)}),{}),p=e=>e instanceof Date?e:typeof e==\"number\"?new Date(new Date*1+e*864e5):e,d=\"1969-12-31T23:59:59.000Z\",S=()=>document.cookie===\"\"?{}:document.cookie.split(\"; \").map(t=>t.split(\"=\")).reduce((t,o)=>(t[decodeURIComponent(o[0].trim())]=decodeURIComponent(o[1].trim()),t),{}),c=new Set,a=()=>{const e=S();c.forEach(t=>t(e))},y=[{name:\"expires\",parse:e=>`expires=${p(e.expires??d)}`},{name:\"maxAge\",parse:e=>e.maxAge?`max-age=${p(e.expires??d)}`:\"\"},{name:\"path\",parse:e=>`path=${e.path??\"/\"}`},{name:\"sameSite\",parse:e=>`samesite=${e.sameSite??\"strict\"}`},{name:\"useSecure\",parse:e=>`${e.useSecure??!0?\"secure\":\"\"}`},{name:\"domain\",parse:e=>{const t=e.domain??\"\";return t===\"\"?\"\":`domain=${e.multiDomain?\".\":\"\"}${t}`}},{name:\"partitioned\",parse:e=>e.partitioned?\"Partitioned\":\"\"}],f={json:S,listener:e=>(c.add(e),()=>c.delete(e)),clearListeners:()=>c.clear(),has:e=>document.cookie.split(\";\").some(t=>t.trim().startsWith(`${e}=`)),deleteAll:()=>{document.cookie.split(\";\").forEach(e=>{document.cookie=e.replace(/^ +/,\"\").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}),a()},get:e=>{const t=f.json()[e];if(i(t))return null;try{return JSON.parse(decodeURIComponent(t))}catch{return t}},delete:e=>{document.cookie=`${encodeURIComponent(e)}=;expires=${new Date().toUTCString()}`,a()},set:(e,t,o={})=>{const n=w(t)?t:encodeURIComponent(JSON.stringify(t)),s=y.reduce((r,$)=>{const m=$.parse(o);return m===\"\"?r:r.concat(m)},[`${encodeURIComponent(e)}=${n}`]).join(\";\");document.cookie=s,a()}},l=e=>{const t=new Set,o=n=>{e().removeItem(n);const s=u(e());t.forEach(r=>r(s))};return{delete:o,listener:n=>(t.add(n),()=>t.delete(n)),clearListeners:()=>t.clear(),json:(n=!1)=>n?u(e()):e(),has:n=>{const s=e().getItem(n);return!i(s)},deleteAll:()=>{k(e(),o),t.forEach(n=>n(e()))},get:n=>h(n,e()),set:(n,s)=>{e().setItem(n,JSON.stringify(s)),t.forEach(r=>r(e()))}}},I=l(()=>window.sessionStorage),C=l(()=>window.localStorage);exports.Cookie=f;exports.LocalStorage=C;exports.SessionStorage=I;exports.createStorage=l;\n//# sourceMappingURL=index.js.map\n","\"use client\";\nimport React, { useCallback, useRef } from \"react\";\nimport { AllPaths } from \"sidekicker\";\nimport { LocalStorage } from \"storage-manager-js\";\nimport { useReducer } from \"use-typed-reducer\";\nimport { useStableRef } from \"../../hooks/use-stable-ref\";\nimport { isSsr } from \"../../lib/fns\";\nimport { Any, POJO, SetState } from \"../../types\";\nimport { OptionProps } from \"../form/select\";\nimport { FilterConfig } from \"./filter\";\nimport { GroupItem } from \"./group\";\nimport { Sorter } from \"./sort\";\n\nexport const getLabel = <T extends POJO>(col: Col<T>) => col.headerLabel ?? col.thead ?? (col.id as string);\n\nexport type TableConfiguration<T extends POJO, M extends POJO = Any> = M & {\n cols: Col<T>[];\n options: OptionProps[];\n};\n\nexport const createOptionCols = <T extends POJO>(cols: Col<T>[]): OptionProps[] =>\n cols.map((opt) => ({\n value: opt.id as string,\n label: (opt.thead ?? opt.headerLabel ?? (opt.id as string)) as string,\n }));\n\nexport enum ColType {\n Boolean = \"boolean\",\n Number = \"number\",\n Select = \"select\",\n Text = \"text\",\n}\n\nexport const valueFromType = (input: HTMLInputElement) => (input.type === \"number\" ? input.valueAsNumber : input.value);\n\ntype THead = React.ReactElement | React.ReactNode;\n\nexport type ColMatrix = `${number},${number}`;\n\n// ref: https://github.com/gvergnaud/hotscript/blob/main/src/internals/objects/impl/objects.ts\ntype ParsePath<path, output extends string[] = [], currentChunk extends string = \"\"> = path extends number\n ? [`${path}`]\n : path extends `${infer first}${infer rest}`\n ? first extends \".\" | \"[\" | \"]\"\n ? ParsePath<rest, [...output, ...(currentChunk extends \"\" ? [] : [currentChunk])], \"\">\n : ParsePath<rest, output, `${currentChunk}${first}`>\n : [...output, ...(currentChunk extends \"\" ? [] : [currentChunk])];\n\ntype RecursiveGet<Obj, pathList> = Obj extends any\n ? pathList extends [infer first, ...infer rest]\n ? first extends keyof Obj\n ? RecursiveGet<Obj[first], rest>\n : [first, Obj] extends [`${number}` | \"number\", readonly any[]]\n ? RecursiveGet<Extract<Obj, any[]>[number], rest>\n : undefined\n : Obj\n : never;\n\ntype GetFromPath<Obj, path> = RecursiveGet<Obj, ParsePath<path>>;\n\nexport type CellAsideElement<T extends POJO> = {\n row: T;\n rowIndex: number;\n col: ColOptions<T, AllPaths<T>>;\n};\n\nexport type CellPropsElement<T extends POJO, K extends AllPaths<T>> = {\n row: T;\n value: GetFromPath<T, K>;\n rowIndex: number;\n matrix: ColMatrix;\n col: ColOptions<T, K> & { id: K; thead: THead };\n};\n\ntype ColOptions<T extends POJO, K extends AllPaths<T>> = Partial<{\n type: ColType;\n allowSort: boolean;\n headerLabel: string;\n allowFilter: boolean;\n Element: React.FC<CellPropsElement<T, K>>;\n thProps: React.HTMLAttributes<HTMLTableCellElement>;\n cellProps: React.HTMLAttributes<HTMLTableCellElement>;\n}>;\n\nexport type ColConstructor<T extends POJO> = {\n getAll: () => Col<T>[];\n remove: <K extends AllPaths<T>>(id: K) => void;\n filter: (c: (c: Col<T>) => boolean) => Col<T>[];\n add: <K extends AllPaths<T>>(id: K, thead: THead, props?: ColOptions<T, K>) => void;\n};\n\nconst cols =\n <T extends POJO>() =>\n <K extends AllPaths<T>>(id: K, thead: THead, options: ColOptions<T, K>) => ({ ...options, id, thead });\n\nexport type Col<T extends POJO> = ReturnType<ReturnType<typeof cols<T>>>;\n\nexport type TablePagination = {\n size: number;\n pages: number;\n current: number;\n hasNext: boolean;\n sizes?: number[];\n totalItems: number;\n hasPrevious: boolean;\n onChangeSize?: (size: number) => void;\n asLink?: React.FC<React.PropsWithChildren<{ href: number | \"previous\" | \"next\"; className: string }>>;\n};\n\ntype TableGetters<T extends POJO> = {\n rows: T[];\n cols: Col<T>[];\n sorters: Sorter<T>[];\n groups: GroupItem<T>[];\n filters: FilterConfig<T>[];\n pagination: TablePagination | null;\n};\n\ntype TableSetters<T extends POJO> = {\n setCols: SetState<Col<T>[]>;\n setSorters: SetState<Sorter<T>[]>;\n setGroups: SetState<GroupItem<T>[]>;\n setFilters: SetState<FilterConfig<T>[]>;\n};\n\nexport type TableOperationProps<T extends POJO> = TableConfiguration<\n T,\n TableSetters<T> &\n TableGetters<T> & {\n set?: (v: TableGetters<T>) => void;\n } & {\n inlineSorter: boolean;\n inlineFilter: boolean;\n }\n>;\n\nexport const createColumns = <T extends POJO>(callback: (o: ColConstructor<T>) => void) => {\n let items: Col<T>[] = [];\n const add: ColConstructor<T>[\"add\"] = (id, thead, options) => items.push({ ...options, id, thead } as any);\n const remove: ColConstructor<T>[\"remove\"] = (id) => (items = items.filter((x) => x.id !== id));\n const getAll: ColConstructor<T>[\"getAll\"] = () => Array.from(items);\n const filter: ColConstructor<T>[\"filter\"] = (c) => (items = Array.from(items.filter(c)));\n callback({ add, remove, getAll, filter });\n return items;\n};\n\ntype TablePreferenceState<T extends POJO> = {\n name: string;\n cols: Col<T>[];\n groups: GroupItem<T>[];\n sorters: Sorter<T>[];\n filters: FilterConfig<T>[];\n};\n\nconst noop = {};\n\nconst mergeCols = <T extends POJO>(cols: Col<T>[], saved?: Col<T>[]) => {\n if (!Array.isArray(saved)) return cols;\n const savedSet = new Set(saved.map((x) => x.id));\n if (!cols.every((x) => savedSet.has(x.id))) {\n return cols;\n }\n const map = new Map(cols.map((x) => [x.id, x]));\n return saved.map((mock, index) => {\n const original = map.get(mock.id);\n if (original === undefined) return cols[index];\n return original;\n });\n};\n\nexport const useTablePreferences = <T extends POJO>(name: string, cols: Col<T>[], options: Partial<TableGetters<T>> = noop) => {\n const init: TableGetters<T> | null = isSsr() ? null : (LocalStorage.get(`@components/table-${name}`) as TableGetters<T>) || null;\n const [state, dispatch] = useReducer(\n {\n name,\n groups: options.groups || init?.groups || [],\n sorters: options.sorters || init?.sorters || [],\n filters: options.filters || init?.filters || [],\n cols: mergeCols(cols, init?.cols),\n } as Omit<TableGetters<T>, \"rows\"> & { name: string },\n (get) => {\n const intercept = (partial: Partial<TablePreferenceState<T>>) => {\n const prev = get.state();\n const result = { ...prev, ...partial };\n if (!isSsr()) LocalStorage.set(`@components/table-${prev.name}`, result);\n return result;\n };\n intercept(get.state());\n return {\n set: (getters: TableGetters<T>) => intercept(getters),\n };\n }\n );\n return { ...state, ...dispatch, name };\n};\n\nexport const useWidthControl = <T extends object>(reorder: (c: Col<T>[]) => void) => {\n const stableRef = useStableRef(reorder);\n const ref = useRef<HTMLTableRowElement>(null);\n const onChange = useCallback(\n (cols: Col<T>[]) => {\n stableRef.current(cols);\n cols.forEach((x) => {\n const c = ref.current!.querySelector(`th[data-tableheader=\"${x.id}\"]`) as HTMLElement | null;\n if (!c) return;\n c.style.width = \"auto\";\n });\n },\n [stableRef]\n );\n return [ref, onChange] as const;\n};\n\nexport const getModalScrollerRef = () => (isSsr() ? undefined : (document.querySelector(`[data-component=\"modal-body\"]`) as HTMLElement));\n","\"use client\";\nimport { ArrowDown01Icon, ArrowUp01Icon, ArrowUpDownIcon, PlusIcon, Trash2Icon } from \"lucide-react\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { uuid } from \"../../lib/fns\";\nimport { Any, Label } from \"../../types\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { OptionProps, Select } from \"../form/select\";\nimport { Col, getLabel, TableConfiguration, TableOperationProps } from \"./table-lib\";\n\ntype Keyof<T extends Any> = keyof T extends infer R extends string ? R : never;\n\nenum Order {\n Asc = \"asc\",\n Desc = \"desc\",\n Undefined = \"undefined\",\n}\n\nexport type Sorter<T extends Any> = { value: Keyof<T>; type: Order; label: Label; id: string };\n\nconst createSorterFn =\n <T extends Any>(fields: Sorter<T>[]) =>\n (a: any, b: any) =>\n fields.reduce<number>((acc, x) => {\n const reverse = x.type === \"desc\" ? -1 : 1;\n const property = x.value;\n const p = a[property] > b[property] ? reverse : a[property] < b[property] ? -reverse : 0;\n return acc !== 0 ? acc : p;\n }, 0);\n\nexport const multiSort = <T extends Any>(array: T[], fields: Sorter<T>[]) => array.toSorted(createSorterFn(fields));\n\ntype Props<T extends Any> = TableConfiguration<\n T,\n {\n cols: Col<T>[];\n sorters: Sorter<T>[];\n set: React.Dispatch<React.SetStateAction<Sorter<T>[]>>;\n }\n>;\n\nconst createSorter = <T extends Any>(col: Col<T>, label: string, order: Order): Sorter<T> => ({\n label,\n id: uuid(),\n type: order,\n value: col.id as any,\n});\n\nexport const Sort = <T extends Any>(props: Props<T>) => {\n const translation = useTranslations();\n\n const orders = {\n asc: { label: translation.tableSortAsc, value: Order.Asc },\n desc: { label: translation.tableSortDesc, value: Order.Desc },\n } satisfies Omit<Record<Order, OptionProps>, Order.Undefined>;\n\n const orderOptions: OptionProps[] = [orders.asc, orders.desc];\n\n const onAddSorter = () => {\n const col = props.cols[0];\n if (col) props.set((prev) => [...prev, createSorter(col, orders.asc.label, orders.asc.value)]);\n };\n\n const onSetSorter = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, value: value as Keyof<T> } : x)));\n };\n\n const onSortOrderType = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const type = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, type: type as Order } : x)));\n };\n\n const onDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n const id = e.currentTarget.dataset.id || \"\";\n props.set((prev) => prev.filter((x) => x.id !== id));\n };\n\n return (\n <Fragment>\n <Dropdown\n title={translation.tableSortDropdownTitle}\n trigger={\n <span className=\"flex items-center gap-1 proportional-nums\">\n <ArrowUpDownIcon size={14} />\n {translation.tableSortOrderByLabel} {props.sorters.length === 0 ? \"\" : ` (${props.sorters.length})`}\n </span>\n }\n >\n <ul className=\"mt-4 space-y-2\">\n {props.sorters.map((sorter) => {\n return (\n <li key={`sorter-select-${sorter.id}`} className=\"flex flex-nowrap gap-3\">\n <Select\n options={props.options}\n value={sorter.value as string}\n onChange={onSetSorter(sorter.id)}\n title={translation.tableSortOrderInputTitle}\n placeholder={translation.tableSortOrderInputPlaceholder}\n />\n <Select\n onChange={onSortOrderType(sorter.id)}\n value={sorter.type}\n options={orderOptions}\n title={translation.tableSortTypeInputTitle}\n placeholder={translation.tableSortTypeInputPlaceholder}\n />\n <button className=\"mt-4\" data-id={sorter.id} onClick={onDelete}>\n <Trash2Icon className=\"text-danger\" size={14} />\n </button>\n </li>\n );\n })}\n <li>\n <button type=\"button\" onClick={onAddSorter} className=\"flex items-center gap-1 text-primary\">\n <PlusIcon size={14} /> {translation.tableSortAddButton}\n </button>\n </li>\n </ul>\n </Dropdown>\n </Fragment>\n );\n};\n\ntype SorterHeadProps<T extends Any> = Pick<TableOperationProps<T>, \"sorters\" | \"setSorters\"> & { col: Col<T> };\n\nexport const SorterHead = <T extends Any>(props: SorterHeadProps<T>) => {\n const translations = useTranslations();\n const [status, setStatus] = useState(() => {\n const sorter = props.sorters.find((sort) => sort.value === props.col.id);\n return sorter ? sorter.type : Order.Undefined;\n });\n\n const onClick = () => setStatus((prev) => (prev === Order.Undefined ? Order.Asc : prev === Order.Asc ? Order.Desc : Order.Undefined));\n\n useEffect(() => {\n props.setSorters((prev) => {\n if (status === Order.Undefined) return prev.filter((x) => x.value !== props.col.id);\n const findIndex = prev.findIndex((p) => (p.value as string) === props.col.id);\n const sorter = createSorter(props.col, status, status);\n if (findIndex === -1) return [...prev, sorter];\n prev[findIndex] = sorter;\n return [...prev];\n });\n }, [status, props.col]);\n\n const labelId = `${props.col.id}-sorter-id`;\n\n const label = getLabel(props.col);\n\n return (\n <button aria-labelledby={labelId} className=\"isolate flex items-center\" onClick={onClick} type=\"button\">\n <span id={labelId} className=\"sr-only\">\n {translations.tableSortDropdownTitle} {label}\n </span>\n {status === Order.Asc ? <ArrowUp01Icon size={14} /> : null}\n {status === Order.Desc ? <ArrowDown01Icon size={14} /> : null}\n {status === Order.Undefined ? <ArrowUpDownIcon size={14} /> : null}\n </button>\n );\n};\n","import { createContext, useContext } from \"react\";\n\nexport type TableContextProps = Partial<{ sticky: number }>;\n\nconst TableContext = createContext<TableContextProps>({});\n\nexport const TableProvider = TableContext.Provider;\n\nexport const useTable = () => useContext(TableContext);\n","import { Symbols } from \"linq-arrays\";\nimport { ListFilterIcon, PlusIcon, Trash2Icon } from \"lucide-react\";\nimport React, { Fragment, useMemo } from \"react\";\nimport { AllPaths } from \"sidekicker\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { uuid } from \"../../lib/fns\";\nimport { Any, Label } from \"../../types\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { Input, InputTypes } from \"../form/input\";\nimport { OptionProps, Select } from \"../form/select\";\nimport { Col, ColType, getLabel, TableConfiguration, valueFromType } from \"./table-lib\";\n\ntype Operators = { value: string; label: string; symbol: string; \"data-default\"?: string };\n\ntype OperatorTypes = \"contains\" | \"is\" | \"isNot\" | \"notContains\" | \"lessThan\" | \"greaterThan\" | \"startsWith\" | \"endsWith\";\n\ntype Operations = Record<OperatorTypes, Operators>;\n\ntype OperationOptions = Partial<Record<ColType, OptionProps[]>>;\n\ntype FilterValue = string | number | string[] | boolean;\n\nexport type FilterConfig<T extends object = object> = {\n id: string;\n label: Label;\n name: AllPaths<T>;\n type: ColType;\n operation: Operators;\n value: FilterValue;\n};\n\ntype Props<T extends object> = TableConfiguration<\n T,\n {\n cols: Col<T>[];\n filters: FilterConfig<T>[];\n set: React.Dispatch<React.SetStateAction<FilterConfig<T>[]>>;\n }\n>;\n\nexport const createFilterFromCol = <T extends Any>(\n f: Col<T>,\n options: OperationOptions,\n operations: Operations,\n rest: Partial<FilterConfig<T>> = {}\n): FilterConfig<T> => {\n const name = f.id;\n const type = f.type ?? ColType.Text;\n const typeOptions = options[type] ?? [];\n const operatorId = (typeOptions.find((x) => x[\"data-default\"])?.value ?? typeOptions[0]?.value) as OperatorTypes;\n const operation = operations[operatorId];\n return { id: uuid(), operation, label: getLabel(f), name, type, value: \"\", ...rest };\n};\n\nexport const useOperators = () => {\n const translation = useTranslations();\n const operations = useMemo(\n (): Operations =>\n ({\n contains: {\n value: \"contains\",\n label: translation.tableFilterTypeContains,\n symbol: \"includes\",\n \"data-default\": \"true\",\n },\n is: { value: \"is\", label: translation.tableFilterTypeIs, symbol: \"is\" },\n isNot: { value: \"isNot\", label: translation.tableFilterTypeIsNot, symbol: \"!==\" },\n notContains: {\n value: \"notContains\",\n label: translation.tableFilterTypeNotContains,\n symbol: \"notIncludes\",\n },\n lessThan: { value: \"lessThan\", label: translation.tableFilterTypeLessThan, symbol: \"<=\" },\n greaterThan: { value: \"greaterThan\", label: translation.tableFilterTypeGreaterThan, symbol: \">=\" },\n startsWith: { value: \"startsWith\", label: translation.tableFilterTypeStartsWith, symbol: \"startsWith\" },\n endsWith: { value: \"endsWith\", label: translation.tableFilterTypeEndsWith, symbol: \"endsWith\" },\n }) satisfies Record<string, OptionProps & { symbol: Symbols }>,\n [translation]\n );\n\n const options = useMemo(\n (): OperationOptions => ({\n [ColType.Text]: [\n operations.is,\n operations.isNot,\n operations.contains,\n operations.notContains,\n operations.startsWith,\n operations.endsWith,\n ],\n [ColType.Boolean]: [operations.is, operations.isNot],\n [ColType.Number]: [operations.is, operations.isNot, operations.greaterThan, operations.lessThan],\n }),\n [operations]\n );\n return { options, operations };\n};\n\nexport const Filter = <T extends object>(props: Props<T>) => {\n const translation = useTranslations();\n const operators = useOperators();\n\n const onAddFilter = () => {\n const col = props.cols.at(0)!;\n props.set((prev) => [...prev, createFilterFromCol(col, operators.options, operators.operations)]);\n };\n\n const onSelectProperty = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const changedId = e.target.dataset.id || \"\";\n const newId = e.target.value;\n props.set((prev) =>\n prev.map((x) => {\n if (changedId !== x.id) return x;\n const col = props.cols.find((x) => newId === x.id)!;\n return createFilterFromCol(col, operators.options, operators.operations, { value: \"\" });\n })\n );\n };\n\n const onSelectOperation = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const id = e.target.dataset.id || \"\";\n const operator = e.target.value;\n props.set((prev) =>\n prev.map((x) =>\n x.id === id\n ? {\n ...x,\n operation: operators.operations[operator as OperatorTypes],\n }\n : x\n )\n );\n };\n\n const onDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n const id = e.currentTarget.dataset.id || \"\";\n props.set((prev) => prev.filter((x) => x.id !== id));\n };\n\n const onChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n const id = e.target.dataset.id || \"\";\n const value = valueFromType(e.target);\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, value } : x)));\n };\n\n return (\n <Fragment>\n <Dropdown\n arrow\n title={translation.tableFilterDropdownTitle}\n trigger={\n <span className=\"flex items-center gap-1 proportional-nums\">\n <ListFilterIcon size={14} />\n {translation.tableFilterLabel} {props.filters.length === 0 ? \"\" : ` (${props.filters.length})`}\n </span>\n }\n >\n <ul className=\"mt-4 space-y-2\">\n {props.filters.map((filter) => {\n const options = operators.options[filter.type]!;\n return (\n <li key={`filter-select-${filter.id}`} className=\"flex flex-nowrap gap-3\">\n <Select\n options={props.options}\n title={translation.tableFilterColumnTitle}\n placeholder={translation.tableFilterColumnPlaceholder}\n value={filter.name as string}\n data-id={filter.id}\n onChange={onSelectProperty}\n />\n <Select\n data-id={filter.id}\n onChange={onSelectOperation}\n value={filter.operation.value}\n options={options}\n title={translation.tableFilterOperatorTitle}\n placeholder={translation.tableFilterOperatorPlaceholder}\n />\n <Input\n optionalText=\"\"\n data-id={filter.id}\n onChange={onChangeValue}\n value={filter.value as string}\n type={filter.type as InputTypes}\n title={translation.tableFilterValueTitle}\n placeholder={translation.tableFilterValuePlaceholder}\n />\n <div className=\"mt-5 flex items-center justify-center\">\n <button data-id={filter.id} type=\"button\" onClick={onDelete}>\n <Trash2Icon className=\"text-danger\" size={16} />\n </button>\n </div>\n </li>\n );\n })}\n <li>\n <button type=\"button\" onClick={onAddFilter} className=\"flex items-center gap-1 text-primary\">\n <PlusIcon size={14} /> {translation.tableFilterNewFilter}\n </button>\n </li>\n </ul>\n </Dropdown>\n </Fragment>\n );\n};\n\ntype ColumnHeaderFilterProps<T extends object> = {\n filter: FilterConfig<T>;\n onDelete: (e: React.MouseEvent<HTMLButtonElement>) => void;\n set: React.Dispatch<React.SetStateAction<FilterConfig<T>[]>>;\n};\n\nexport const ColumnHeaderFilter = <T extends object>({ filter, onDelete, set }: ColumnHeaderFilterProps<T>) => {\n const translation = useTranslations();\n const operators = useOperators();\n\n const onSelectOperation = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const operator = e.target.value;\n const id = e.target.dataset.id || \"\";\n set((prev) =>\n prev.map((x) =>\n x.id === id\n ? {\n ...x,\n operation: operators.operations[operator as OperatorTypes],\n }\n : x\n )\n );\n };\n\n const onChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n const id = e.target.dataset.id || \"\";\n const value = valueFromType(e.target);\n set((prev) => prev.map((x) => (x.id === id ? { ...x, value } : x)));\n };\n\n return (\n <div className=\"flex flex-nowrap items-center gap-4 py-2\">\n <Select\n data-id={filter.id}\n onChange={onSelectOperation}\n value={filter.operation.value}\n options={operators.options[filter.type]!}\n title={translation.tableFilterColumnTitle}\n placeholder={translation.tableFilterColumnPlaceholder}\n />\n <Input\n optionalText=\" \"\n data-id={filter.id}\n onChange={onChangeValue}\n value={filter.value as string}\n type={filter.type as InputTypes}\n title={translation.tableFilterValueTitle}\n placeholder={translation.tableFilterValueTitle}\n />\n <button onClick={onDelete} data-id={filter.id} type=\"button\" className=\"mt-4\">\n <Trash2Icon className=\"text-danger\" size={14} />\n </button>\n </div>\n );\n};\n","\"use client\";\nimport { AnimatePresence, motion, PanInfo, Reorder } from \"motion/react\";\nimport { Order } from \"linq-arrays\";\nimport { PlusIcon, SearchCheckIcon, SearchXIcon } from \"lucide-react\";\nimport React, { Fragment, useCallback, useRef } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { useTweaks } from \"../../hooks/use-tweaks\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { ColumnHeaderFilter, createFilterFromCol, useOperators } from \"./filter\";\nimport { SorterHead } from \"./sort\";\nimport { Col, getLabel, TableOperationProps, useWidthControl } from \"./table-lib\";\n\nconst dragConstraints = { top: 0, left: 0, right: 0, bottom: -1 };\n\ntype TableHeaderProps<T extends object> = {\n loading: boolean;\n headers: Col<T>[];\n} & Pick<TableOperationProps<T>, \"filters\" | \"setFilters\" | \"setCols\" | \"setSorters\" | \"sorters\" | \"inlineSorter\" | \"inlineFilter\">;\n\ntype HeaderChildProps<T extends object> = {\n index: number;\n isLast: boolean;\n header: Col<T>;\n loading: boolean;\n} & Pick<TableOperationProps<T>, \"filters\" | \"setFilters\" | \"sorters\" | \"setSorters\" | \"inlineFilter\" | \"inlineSorter\">;\n\nconst HeaderChild = <T extends object>(props: HeaderChildProps<T>) => {\n const tweaks = useTweaks();\n const translation = useTranslations();\n const ownFilters = props.filters.filter((x) => x.name === props.header.id);\n const hasFilters = ownFilters.length > 0;\n const defaultAllowSort = props.header.allowSort ?? tweaks.table.sorters ?? true;\n const defaultAllowFilter = props.header.allowFilter ?? tweaks.table.filters ?? true;\n const operators = useOperators();\n const FilterIcon = hasFilters ? SearchCheckIcon : SearchXIcon;\n const th = useRef<HTMLTableCellElement | null>(null);\n\n const onDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n const id = e.currentTarget.dataset.id || \"\";\n return props.setFilters((prev) => prev.filter((x) => x.id !== id));\n };\n\n const dragRef = useCallback((dom: HTMLTableCellElement | null) => {\n if (dom === null) return;\n th.current = dom;\n const controller = new AbortController();\n dom.addEventListener(\n \"pointerdown\",\n (e) => {\n const target = e.target as HTMLButtonElement;\n if (target.dataset.type === \"resizer\") {\n e.stopPropagation();\n return e.stopImmediatePropagation();\n }\n },\n { signal: controller.signal }\n );\n return () => controller.abort();\n }, []);\n\n const ownSorter = props.sorters.find((x) => props.header.id === x.value);\n\n const ariaSort = !ownSorter?.type ? \"none\" : ownSorter.type === Order.Asc ? \"ascending\" : \"descending\";\n\n const label = getLabel(props.header);\n\n return (\n <Reorder.Item\n {...(props.header.thProps as object)}\n as=\"th\"\n ref={dragRef}\n initial={false}\n dragSnapToOrigin\n dragDirectionLock\n role=\"columnheader\"\n aria-sort={ariaSort}\n value={props.header}\n aria-busy={props.loading}\n data-tableheader={props.header.id}\n whileDrag={{ cursor: \"grabbing\" }}\n className={`typography bg-table-header first:rounded-tl-lg last:rounded-tr-lg overflow-clip last:border-r-transparent border-table-border border-r-[1px] relative min-w-0 cursor-grab font-medium md:h-14 ${props.header.thProps?.className ?? \"\"}`}\n >\n <span\n className={`flex h-full items-center justify-between bg-table-header p-[var(--table-cell-padding)] ${props.isLast ? \"rounded-tr-lg\" : \"\"} ${props.index === 0 ? \"rounded-tl-lg\" : \"\"}`}\n >\n <span className=\"flex items-center gap-1\">\n {props.inlineFilter && defaultAllowFilter ? (\n <Dropdown\n arrow\n trigger={\n <span>\n <span id={`${props.header.id}-filter-dropdown-button`} className=\"sr-only\">\n {translation.tableFilterDropdownTitleUnique} {label}\n </span>\n <FilterIcon aria-labelledby={`${props.header.id}-filter-dropdown-button`} size={14} />\n </span>\n }\n title={\n <span className=\"text-lg\">\n {translation.tableFilterDropdownTitleUnique} <span className=\"font-medium\">{label}</span>\n </span>\n }\n >\n <ul className=\"font-medium\">\n {ownFilters.length === 0 ? null : (\n <Fragment>\n {ownFilters.map((filter) => (\n <li key={`thead-filter-${filter.id}`} className=\"my-1\">\n <ColumnHeaderFilter onDelete={onDelete} filter={filter} set={props.setFilters} />\n </li>\n ))}\n </Fragment>\n )}\n <li>\n <button\n type=\"button\"\n className=\"flex items-center gap-1 text-primary\"\n onClick={() =>\n props.setFilters((prev) =>\n prev.concat(createFilterFromCol(props.header, operators.options, operators.operations))\n )\n }\n >\n <PlusIcon size={14} /> {translation.tableFilterNewFilter}\n </button>\n </li>\n </ul>\n </Dropdown>\n ) : null}\n <span className=\"pointer-events-auto text-balance text-base\">{props.header.thead}</span>\n {props.inlineSorter && defaultAllowSort ? (\n <SorterHead col={props.header} setSorters={props.setSorters} sorters={props.sorters} />\n ) : null}\n </span>\n </span>\n {props.isLast ? null : (\n <motion.button\n drag=\"x\"\n draggable\n dragListener\n dragMomentum\n type=\"button\"\n animate={false}\n dragElastic={0}\n dragPropagation\n initial={false}\n dragSnapToOrigin\n dragDirectionLock\n data-type=\"resizer\"\n title={props.header.id}\n dragConstraints={dragConstraints}\n className=\"absolute -right-[0.5px] top-0 z-calendar block h-full w-[1px] cursor-col-resize bg-transparent hover:w-1.5 hover:bg-primary active:w-1.5 active:bg-primary\"\n onClick={(e) => void e.currentTarget.focus()}\n onKeyDown={(e) => {\n if (e.key === \"ArrowLeft\" || e.key === \"ArrowRight\") {\n if (th.current === null) return;\n th.current.setAttribute(\"data-resized\", \"true\");\n const v = th.current.getBoundingClientRect().width;\n const move = e.shiftKey ? 50 : 10;\n const delta = move * (e.key === \"ArrowLeft\" ? -1 : 1);\n th.current.style.width = `${Math.abs(v + delta)}px`;\n }\n }}\n onDoubleClick={() => {\n if (th.current === null) return;\n th.current.style.width = \"auto\";\n }}\n onDrag={(_: never, info: PanInfo) => {\n if (th.current === null) return;\n th.current.setAttribute(\"data-resized\", \"true\");\n const v = th.current.getBoundingClientRect().width;\n const delta = info.delta.x;\n th.current.style.width = `${Math.abs(v + delta)}px`;\n }}\n />\n )}\n </Reorder.Item>\n );\n};\n\nexport const TableHeader = <T extends object>(props: TableHeaderProps<T>) => {\n const [ref, onChange] = useWidthControl(props.setCols);\n return (\n <Reorder.Group layout as=\"tr\" axis=\"x\" drag=\"x\" ref={ref} layoutRoot role=\"row\" layoutScroll onReorder={onChange} values={props.headers}>\n <AnimatePresence>\n {props.headers.map((header, index) => (\n <HeaderChild<T>\n index={index}\n header={header}\n filters={props.filters}\n loading={props.loading}\n sorters={props.sorters}\n setFilters={props.setFilters}\n setSorters={props.setSorters}\n inlineFilter={props.inlineFilter}\n inlineSorter={props.inlineSorter}\n isLast={index === props.headers.length - 1}\n key={`header-child-item-${header.id as string}`}\n />\n ))}\n </AnimatePresence>\n </Reorder.Group>\n );\n};\n","import Linq from \"linq-arrays\";\nimport { AnimatePresence } from \"motion/react\";\nimport React, { ComponentProps, CSSProperties, Fragment, HTMLAttributes, useEffect, useMemo, useRef, useState } from \"react\";\nimport { TableBodyProps, TableVirtuoso } from \"react-virtuoso\";\nimport { Is } from \"sidekicker\";\nimport { useStableRef } from \"../../hooks/use-stable-ref\";\nimport { Any } from \"../../types\";\nimport { Empty } from \"../display/empty\";\nimport { SkeletonCell } from \"../display/skeleton\";\nimport { OptionProps } from \"../form/select\";\nimport { FilterConfig } from \"./filter\";\nimport { GroupItem } from \"./group\";\nimport { Pagination } from \"./pagination\";\nimport { Row } from \"./row\";\nimport { multiSort, Sorter } from \"./sort\";\nimport { CellAsideElement, Col, TableOperationProps } from \"./table-lib\";\nimport { useTable } from \"./table.context\";\nimport { TableHeader } from \"./thead\";\n\nexport type InnerTableProps<T extends Any> = HTMLAttributes<HTMLTableElement> &\n TableOperationProps<T> & {\n rows: T[];\n index: number;\n cols: Col<T>[];\n border?: boolean;\n loading?: boolean;\n group?: GroupItem<T>;\n useControl?: boolean;\n loadingMore?: boolean;\n sorters?: Sorter<T>[];\n showMetadata?: boolean;\n groups?: GroupItem<T>[];\n onScrollEnd?: () => void;\n optionCols: OptionProps[];\n filters?: FilterConfig<T>[];\n Aside?: React.FC<CellAsideElement<T>>;\n getScrollRef?: () => HTMLElement | undefined;\n getRowProps?: (_: T) => ComponentProps<\"tr\">;\n setGroups: React.Dispatch<React.SetStateAction<GroupItem<T>[]>>;\n };\n\nconst TableBody = React.forwardRef(\n (\n {\n context,\n className = \"\",\n ...props\n }: TableBodyProps & {\n context: any;\n },\n ref: any\n ) => {\n return (\n <tbody {...(props as any)} role=\"rowgroup\" className={`divide-y divide-table-border ${className}`} ref={ref}>\n <AnimatePresence>{props.children}</AnimatePresence>\n </tbody>\n );\n }\n);\n\nconst VirtualTable = React.forwardRef(({ context, className = \"\", ...props }: any, ref) => (\n <table\n {...props}\n role=\"table\"\n ref={ref as any}\n style={{ ...props.style, \"--table-cell-padding\": \"0.75rem\" } as CSSProperties}\n className={`table w-full table-fixed border-separate border-spacing-0 text-left ${className ?? \"\"}`}\n />\n));\n\nconst Thead = React.forwardRef(({ context, ...props }: any, ref: any) => {\n const ctx = useTable();\n const style = {\n ...(props as any)?.style,\n top: Is.number(ctx.sticky) ? `${ctx.sticky}px` : undefined,\n };\n return <thead {...props} ref={ref} style={style} role=\"rowgroup\" className=\"group:sticky top-0 hidden bg-transparent md:table-header-group\" />;\n});\n\nconst TRow = React.forwardRef(({ context, item, ...props }: any, ref: any) => {\n const contextProps = context?.getRowProps?.(item);\n const innerProps = { ...props, ...contextProps };\n return (\n <tr\n {...innerProps}\n role=\"row\"\n ref={ref}\n className={`group-table-row flex h-fit flex-col flex-wrap justify-center gap-1 pb-4 md:table-row ${[props?.className, contextProps?.className].filter(Boolean).join(\" \")}`}\n />\n );\n});\n\nconst TFoot = React.forwardRef((props: any, ref: any) => {\n if (props.context.loadingMore) {\n return (\n <tfoot {...props} ref={ref} className=\"bg-card-background\">\n <tr role=\"row\" className=\"bg-card-background\">\n <td colSpan={999} className=\"h-14 bg-card-background px-2\">\n <span className=\"block h-2 w-full animate-pulse rounded bg-foreground opacity-60\" />\n </td>\n </tr>\n </tfoot>\n );\n }\n return null;\n});\n\nconst components = {\n TableRow: TRow as any,\n TableFoot: TFoot as any,\n TableHead: Thead as any,\n Table: VirtualTable as any,\n TableBody: TableBody as any,\n};\n\nconst loadingArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nconst EmptyContent = (props: { loading?: boolean }) => (\n <div className=\"flex h-48 w-full items-center justify-center px-2\">{props.loading ? SkeletonCell : <Empty />}</div>\n);\n\nconst EmptyCell = () => <Fragment />;\n\nconst emptyRows: any[] = [];\n\nexport const InnerTable = <T extends Any>({\n cols,\n filters,\n setCols,\n sorters,\n setFilters,\n setSorters,\n onScrollEnd,\n getScrollRef,\n pagination = null,\n useControl = false,\n ...props\n}: InnerTableProps<T>) => {\n const ref = useRef<HTMLDivElement | null>(null);\n const [, setShowLoadingFooter] = useState(false);\n const onScrollEndRef = useStableRef(onScrollEnd);\n const loadingMoreRef = useStableRef(props.loadingMore);\n\n const rows = useMemo(() => {\n if (props.loading) return loadingArray as any as T[];\n if (useControl) return props.rows;\n const linq = new Linq(props.rows);\n if (filters.length > 0) {\n filters.forEach((x) =>\n x.value === \"\" || Number.isNaN(x.value) ? undefined : linq.Where(x.name as any, x.operation.symbol as any, x.value)\n );\n }\n if (sorters.length === 0) return linq.Select();\n return multiSort(linq.Select(), sorters);\n }, [props.loading, props.rows, useControl, filters, sorters]);\n\n useEffect(() => {\n if (ref.current === null) return () => {};\n const div = ref.current;\n const observer = new IntersectionObserver((entries) => {\n const endOfPage = entries[entries.length - 1];\n const condition = endOfPage.isIntersecting && loadingMoreRef.current;\n if (condition) {\n onScrollEndRef.current?.();\n return void setShowLoadingFooter(true);\n }\n return setShowLoadingFooter(false);\n });\n observer.observe(div);\n return () => observer.disconnect();\n }, [loadingMoreRef, onScrollEndRef]);\n\n const empty = rows.length === 0;\n\n const context = {\n cols: cols,\n Aside: props.Aside,\n loading: props.loading,\n getRowProps: props.getRowProps,\n loadingMore: props.loadingMore,\n };\n\n return (\n <div className=\"group bg-table-background relative flex w-full flex-col whitespace-nowrap rounded-lg\">\n <TableVirtuoso\n components={components}\n context={context as any}\n totalCount={rows.length}\n itemContent={empty ? EmptyCell : Row}\n data={empty ? (emptyRows as T[]) : rows}\n useWindowScroll={getScrollRef ? false : true}\n customScrollParent={getScrollRef ? getScrollRef() : undefined}\n fixedHeaderContent={() => (\n <TableHeader<T>\n headers={cols}\n filters={filters}\n setCols={setCols}\n sorters={sorters}\n setFilters={setFilters}\n setSorters={setSorters}\n loading={!!props.loading}\n inlineFilter={props.inlineFilter}\n inlineSorter={props.inlineSorter}\n />\n )}\n />\n {empty ? <EmptyContent loading={props.loading} /> : null}\n <div aria-hidden=\"true\" ref={ref} className=\"h-0.5 w-full\" />\n {pagination !== null ? <Pagination {...pagination} /> : null}\n </div>\n );\n};\n","\"use client\";\nimport { LayoutGroup, Reorder, useDragControls, useMotionValue } from \"motion/react\";\nimport Linq from \"linq-arrays\";\nimport { GripVerticalIcon, Trash2Icon, UngroupIcon } from \"lucide-react\";\nimport React, { Fragment, useState } from \"react\";\nimport { keys } from \"sidekicker\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { uuid } from \"../../lib/fns\";\nimport { Button } from \"../core/button\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { Select } from \"../form/select\";\nimport { Col, createOptionCols, TableConfiguration } from \"./table-lib\";\n\nexport type GroupItem<T extends object> = Col<T> & {\n rows: T[];\n index: number;\n groupId: string;\n groupName: string;\n groupKey: keyof T;\n};\n\ntype Props<T extends object> = TableConfiguration<\n T,\n {\n rows: T[];\n groups: GroupItem<T>[];\n setGroups: React.Dispatch<React.SetStateAction<GroupItem<T>[]>>;\n }\n>;\n\nconst Item = ({ item, onPointerDown }: { item: GroupItem<any>; onPointerDown: any }) => {\n const y = useMotionValue(0);\n return (\n <Reorder.Item\n onPointerDown={onPointerDown}\n id={item.groupId}\n className=\"flex flex-row items-center gap-2\"\n key={item.groupId}\n value={item}\n style={{ y }}\n >\n <button type=\"button\" className=\"cursor-grab\">\n <GripVerticalIcon size={14} />\n </button>\n <span>{item.groupName}</span>\n </Reorder.Item>\n );\n};\n\nexport const Group = <T extends object>(props: Props<T>) => {\n const translations = useTranslations();\n const options = createOptionCols(props.cols);\n const controls = useDragControls();\n const [group, setGroup] = useState((props.groups[0]?.thead as string) || \"\");\n\n const onChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const select = e.target;\n const key = select.value as keyof T;\n const index = select.options.selectedIndex;\n const label = select.options.item(index)?.label || \"\";\n setGroup(label);\n const groupBy = new Linq(props.rows).GroupBy(key);\n const col = props.cols.find((x) => x.id === key)!;\n props.setGroups(\n keys(groupBy).map((groupName, index): GroupItem<T> => {\n const rows = groupBy[groupName];\n return { ...col, groupId: uuid(), groupKey: key, index, rows, groupName: groupName as string };\n })\n );\n };\n\n const onDelete = () => props.setGroups([]);\n\n return (\n <Fragment>\n <Dropdown\n arrow={false}\n title={translations.tableGroupLabel}\n trigger={\n <span className=\"flex items-center gap-1 proportional-nums\">\n <UngroupIcon size={14} />\n {translations.tableGroupLabelWithCount}\n {props.groups.length > 0 ? ` - ${group}(${props.groups.length})` : \"\"}\n </span>\n }\n >\n <div className=\"flex flex-nowrap items-center\">\n <Select value={group} title=\"Tipo de agrupamento\" onChange={onChange} options={options} placeholder=\"Agrupar por...\" />\n <Button className=\"mt-4\" onClick={onDelete} theme=\"raw\" data-id={group}>\n <Trash2Icon size={16} className=\"text-danger\" />\n </Button>\n </div>\n {props.groups.length > 0 ? (\n <section className=\"my-4\">\n <header>\n <h2 className=\"text-xl font-medium\">Order groups</h2>\n </header>\n <LayoutGroup>\n <Reorder.Group\n axis=\"y\"\n className=\"relative space-y-2\"\n drag\n dragControls={controls}\n dragListener={false}\n layoutScroll\n onReorder={props.setGroups}\n values={props.groups}\n >\n {props.groups.map((item) => (\n <Item\n key={item.groupId}\n item={item as any}\n onPointerDown={(e: any) => {\n controls.start(e);\n props.setGroups([...props.groups]);\n }}\n />\n ))}\n </Reorder.Group>\n </LayoutGroup>\n </section>\n ) : null}\n </Dropdown>\n </Fragment>\n );\n};\n","import { Any } from \"../../types\";\nimport { Filter } from \"./filter\";\nimport { Group } from \"./group\";\nimport { Sort } from \"./sort\";\nimport { TableOperationProps, valueFromType } from \"./table-lib\";\n\nexport const Metadata = <T extends Any>(props: TableOperationProps<T>) => (\n <header className=\"mb-1 min-w-full\">\n <div className=\"flex min-w-full flex-wrap items-center justify-between gap-x-4 gap-y-1\">\n <div className=\"items-centeend flex w-fit gap-4 whitespace-nowrap py-2\">\n <span>\n <Filter cols={props.cols} options={props.options} filters={props.filters} set={props.setFilters} />\n </span>\n <span>\n <Sort options={props.options} cols={props.cols} sorters={props.sorters} set={props.setSorters} />\n </span>\n <span>\n <Group rows={props.rows} groups={props.groups} setGroups={props.setGroups} options={props.options} cols={props.cols} />\n </span>\n </div>\n <ul className=\"flex w-full flex-1 flex-grow flex-row flex-wrap items-center gap-4 md:justify-end\">\n {props.filters.map((x) => (\n <li key={`filter-table-${x.id}`} className=\"flex items-center gap-1 rounded-xl border border-card-border px-4 py-0.5\">\n <span>\n <span className=\"mr-2 inline-block aspect-square size-3 rounded-full bg-primary\" aria-hidden=\"true\" />\n {x.label} {x.operation.label.toLowerCase()}:\n </span>\n <div className=\"relative w-min min-w-[1ch]\">\n <span aria-hidden=\"true\" className=\"invisible whitespace-pre p-0\">\n {x.value || \" \"}\n </span>\n <input\n type={x.type}\n value={x.value as string}\n className=\"absolute left-0 top-0 m-0 inline-block w-full bg-transparent p-0 placeholder-primary/70 outline-none [appearance:textfield] after:empty:text-primary/70 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n onChange={(e) => {\n const value = valueFromType(e.target);\n props.setFilters((prev) => prev.map((item) => (x.id === item.id ? { ...item, value } : item)));\n }}\n />\n </div>\n </li>\n ))}\n </ul>\n </div>\n </header>\n);\n","\"use client\";\nimport { AnimatePresence } from \"motion/react\";\nimport { ComponentProps, useEffect, useMemo } from \"react\";\nimport { useReducer } from \"use-typed-reducer\";\nimport { useTweaks } from \"../../hooks/use-tweaks\";\nimport { Any } from \"../../types\";\nimport { FilterConfig } from \"./filter\";\nimport { GroupItem } from \"./group\";\nimport { InnerTable, InnerTableProps } from \"./inner-table\";\nimport { Metadata } from \"./metadata\";\nimport { Sorter } from \"./sort\";\nimport { Col, createOptionCols, TableOperationProps } from \"./table-lib\";\nimport { TableContextProps, TableProvider } from \"./table.context\";\n\nexport type TableProps<T extends Any> = Pick<InnerTableProps<T>, \"cols\" | \"rows\" | \"loadingMore\" | \"border\" | \"Aside\"> & {\n name: string;\n} & Partial<\n TableOperationProps<T> & {\n loading: boolean;\n reference: keyof T;\n operations: boolean;\n useControl: boolean;\n inlineFilter: boolean;\n inlineSorter: boolean;\n sticky: number | null;\n onScrollEnd: () => void;\n getScrollRef?: () => HTMLElement | undefined;\n getRowProps: (row: T) => ComponentProps<\"tr\">;\n }\n >;\n\nconst dispatcherFun = <Prev extends Any, T extends Prev | ((prev: Prev) => Prev)>(prev: Prev, setter: T) =>\n typeof setter === \"function\" ? setter(prev) : setter;\n\ntype DispatcherFun<T extends Any> = T | ((prev: T) => T);\n\nconst compareAndExec = <T extends any[]>(prev: T, state: T, exec?: (t: T) => void) => (prev === state ? undefined : exec?.(state));\n\nexport const Table = <T extends Any>(props: TableProps<T>) => {\n const tweaks = useTweaks();\n const contextState = useMemo(\n (): TableContextProps => ({\n sticky: props.sticky === undefined ? (tweaks.table.sticky ?? undefined) : (props.sticky ?? undefined),\n }),\n [props.sticky, tweaks.table.sticky]\n );\n const operations = props.operations ?? tweaks.table.operations ?? true;\n const optionCols = useMemo(() => createOptionCols(props.cols), [props.cols]);\n const [state, dispatch] = useReducer(\n {\n cols: props.cols as Col<T>[],\n sorters: (props.sorters ?? []) as Sorter<T>[],\n groups: (props.groups ?? []) as GroupItem<T>[],\n filters: (props.filters ?? []) as FilterConfig<T>[],\n },\n (get) => {\n const create =\n <T extends Any>(key: string) =>\n (arg: T) => {\n const state = get.state();\n return { ...state, [key]: dispatcherFun(state[key as keyof typeof state], arg as any) };\n };\n return {\n cols: create<DispatcherFun<Col<T>[]>>(\"cols\"),\n sorters: create<DispatcherFun<Sorter<T>[]>>(\"sorters\"),\n groups: create<DispatcherFun<GroupItem<T>[]>>(\"groups\"),\n filters: create<DispatcherFun<FilterConfig<T>[]>>(\"filters\"),\n };\n },\n {\n postMiddleware: [\n (state, prev) => {\n props.set?.(state as any);\n compareAndExec(prev?.filters ?? [], state.filters ?? [], props.setFilters);\n compareAndExec(prev?.sorters ?? [], state.sorters ?? [], props.setSorters);\n compareAndExec(prev?.groups ?? [], state.groups ?? [], props.setGroups);\n compareAndExec(prev?.cols ?? [], state.cols ?? [], props.setCols);\n return state;\n },\n ],\n }\n );\n\n useEffect(() => {\n dispatch.cols(props.cols);\n }, [props.cols]);\n\n return (\n <TableProvider value={contextState}>\n <AnimatePresence propagate initial={false}>\n {operations ? (\n <Metadata\n cols={state.cols}\n rows={props.rows}\n options={optionCols}\n groups={state.groups}\n filters={state.filters}\n setCols={dispatch.cols}\n sorters={state.sorters}\n setGroups={dispatch.groups}\n setFilters={dispatch.filters}\n setSorters={dispatch.sorters}\n pagination={props.pagination ?? null}\n inlineFilter={props.inlineFilter ?? true}\n inlineSorter={props.inlineSorter ?? true}\n />\n ) : null}\n {state.groups.length === 0 ? (\n <InnerTable\n {...props}\n index={0}\n cols={state.cols}\n options={optionCols}\n groups={state.groups}\n filters={state.filters}\n optionCols={optionCols}\n setCols={dispatch.cols}\n sorters={state.sorters}\n setGroups={dispatch.groups}\n setFilters={dispatch.filters}\n setSorters={dispatch.sorters}\n onScrollEnd={props.onScrollEnd}\n pagination={props.pagination ?? null}\n inlineFilter={props.inlineFilter ?? true}\n inlineSorter={props.inlineSorter ?? true}\n />\n ) : (\n <div className=\"flex flex-wrap gap-4\">\n {state.groups.map((group, index) => (\n <div className=\"min-w-full\" key={`group-${group.groupId}`}>\n <InnerTable\n {...props}\n group={group}\n index={index}\n cols={state.cols}\n pagination={null}\n rows={group.rows}\n options={optionCols}\n groups={state.groups}\n filters={state.filters}\n optionCols={optionCols}\n setCols={dispatch.cols}\n sorters={state.sorters}\n setGroups={dispatch.groups}\n setFilters={dispatch.filters}\n setSorters={dispatch.sorters}\n onScrollEnd={props.onScrollEnd}\n inlineFilter={props.inlineFilter ?? true}\n inlineSorter={props.inlineSorter ?? true}\n />\n </div>\n ))}\n </div>\n )}\n </AnimatePresence>\n </TableProvider>\n );\n};\n"],"names":["__iconNode","ArrowDown01","createLucideIcon","ArrowUp01","ArrowUpDown","GripVertical","ListFilter","Plus","SearchCheck","SearchX","Trash2","Ungroup","transform","args","useImmediate","argOffset","inputValue","inputRange","outputRange","options","interpolator","interpolate","notify","node","nodeGroup","nodes","subscriptions","dirtyAll","unsubscribe","DeprecatedLayoutGroupContext","createContext","useIsMounted","isMounted","useRef","useIsomorphicLayoutEffect","useForceUpdate","forcedRenderCount","setForcedRenderCount","useState","forceRender","useCallback","frame","shouldInheritGroup","inherit","shouldInheritId","LayoutGroup","children","id","layoutGroupContext","useContext","LayoutGroupContext","deprecatedLayoutGroupContext","key","context","upstreamId","memoizedContext","useMemo","jsx","useCombineMotionValues","values","combineValues","value","useMotionValue","updateValue","scheduleUpdate","v","cancelFrame","useComputed","compute","collectMotionValues","useTransform","input","inputRangeOrTransformer","outputRangeOrMap","transformer","result","useListTransform","latest","inputAccelerate","useConstant","numValues","i","DragControls","controls","event","createDragControls","useDragControls","ReorderContext","checkReorder","order","offset","velocity","index","item","nextOffset","nextItem","nextLayout","nextItemCenter","mixNumber","moveItem","ReorderGroupComponent","as","axis","onReorder","props","externalRef","Component","motion","isReordering","groupRef","invariant","layout","idx","entry","compareMin","newOrder","getValue","useEffect","setRef","element","groupStyle","ReorderGroup","forwardRef","a","b","threshold","maxSpeed","overflowStyles","initialScrollLimits","activeScrollEdge","currentGroupElement","resetAutoScrollState","scrollableAncestor","findScrollableAncestor","scrollableAncestorX","isScrollableElement","style","overflow","isDocumentScroll","current","getScrollAmount","pointerPosition","scrollElement","rect","start","end","distanceFromStart","distanceFromEnd","intensity","autoScrollIfNeeded","groupElement","viewportPointerPosition","scrollAmount","edge","currentActiveEdge","maxScroll","initialLimit","useDefaultMotionValue","defaultValue","isMotionValue","ReorderItemComponent","onDrag","onDragEnd","point","zIndex","latestX","latestY","registerItem","updateOrder","gesturePoint","pointerPoint","measured","ReorderItem","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","__spreadValues","prop","any","array","callback","len","anyLikeWhere","symbol","whereSymbol","isObject","equals","keys","k","getKey","sortBy","isNumber","isNumberOrString","o","isEmpty","symbolMap","c","x","all","GetOperationFromSymbol","filter","mappedArray","func","op","where","allLikeWhere","deepClone","clone","contains","dict","map2","distinct","el","array2","find","groupWith","groupBy","map","getInSequence","y","individualChars","charA","charZ","jumps","j","createChars","abs","first2","second","range","firstOrLength","secondOrSteps","jp","_","reduce","initial","accumulator","reverse","left","right","length","temporary","skip","skipLikeWhere","sort","sorter","shallowCopy","Order","Order2","createSorter","fields","acc","reverse2","property","p","multiSort","unique","seen","duplicate","Linq","_Linq","init","predicate","exceptions","commons","object","fn","firstValue","n","src_default","Empty","Icon","FileIcon","translate","useTranslations","jsxs","createPaginationItems","max","items","r","r1","r2","p2","Pagination","pagination","useId","translation","pageNavigation","hasNext","Fragment","e","Polymorph","RowAside","parentRef","ref","className","setClassName","ariaHidden","onLeave","child","parent","onEnter","observer","entries","Row","row","cols","loading","col","colIndex","matrix","path","exposeAside","Aside","createElement","SkeletonCell","Is","exports","t","w","h","u","d","S","f","s","$","m","l","I","C","getLabel","createOptionCols","opt","ColType","valueFromType","createColumns","thead","noop","mergeCols","saved","savedSet","mock","original","useTablePreferences","name","isSsr","LocalStorage","state","dispatch","useReducer","get","intercept","partial","prev","getters","useWidthControl","reorder","stableRef","useStableRef","onChange","getModalScrollerRef","createSorterFn","label","uuid","Sort","orders","orderOptions","onAddSorter","onSetSorter","onSortOrderType","type","onDelete","Dropdown","ArrowUpDownIcon","Select","Trash2Icon","PlusIcon","SorterHead","translations","status","setStatus","onClick","findIndex","labelId","ArrowUp01Icon","ArrowDown01Icon","TableContext","TableProvider","useTable","createFilterFromCol","operations","rest","typeOptions","operatorId","operation","useOperators","Filter","operators","onAddFilter","onSelectProperty","changedId","newId","onSelectOperation","operator","onChangeValue","ListFilterIcon","Input","ColumnHeaderFilter","set","dragConstraints","HeaderChild","tweaks","useTweaks","ownFilters","hasFilters","defaultAllowSort","defaultAllowFilter","FilterIcon","SearchCheckIcon","SearchXIcon","th","dragRef","dom","controller","ownSorter","ariaSort","Reorder.Item","delta","info","TableHeader","Reorder.Group","AnimatePresence","header","TableBody","React","VirtualTable","Thead","ctx","TRow","contextProps","innerProps","TFoot","components","loadingArray","EmptyContent","EmptyCell","emptyRows","InnerTable","filters","setCols","sorters","setFilters","setSorters","onScrollEnd","getScrollRef","useControl","setShowLoadingFooter","onScrollEndRef","loadingMoreRef","rows","linq","div","empty","TableVirtuoso","Item","onPointerDown","GripVerticalIcon","Group","group","setGroup","select","groupName","UngroupIcon","Button","Metadata","dispatcherFun","setter","compareAndExec","exec","Table","contextState","optionCols","create","arg"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAAA,EAC9C,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,KAAK,KAAK,SAAQ,CAAE;AAAA,EAC7E,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE;AAAA,EAC7C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMC,KAAcC,EAAiB,kBAAkBF,EAAU;ACPjE,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE;AAAA,EAC7C,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,KAAK,OAAO,KAAK,QAAQ,KAAK,IAAI,KAAK,KAAK,SAAQ,CAAE;AAAA,EAC7E,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE;AAAA,EAC7C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMG,KAAYD,EAAiB,gBAAgBF,EAAU;ACP7D,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE;AAAA,EAC7C,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAC1C,GACMI,KAAcF,EAAiB,iBAAiBF,EAAU;ACNhE,MAAMA,KAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACvD,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,UAAU;AAAA,EACtD,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACvD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,KAAK,GAAG,KAAK,KAAK,UAAU;AAAA,EACvD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,SAAQ,CAAE;AAC1D,GACMK,KAAeH,EAAiB,iBAAiBF,EAAU;ACRjE,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAC1C,GACMM,KAAaJ,EAAiB,eAAeF,EAAU;ACL7D,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMO,KAAOL,EAAiB,QAAQF,EAAU;ACJhD,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAAA,EAC9C,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,GACMQ,KAAcN,EAAiB,gBAAgBF,EAAU;ACL/D,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAAA,EAC9C,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE;AAAA,EAC7C,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,GACMS,KAAUP,EAAiB,YAAYF,EAAU;ACNvD,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,4CAA4C,KAAK,SAAQ,CAAE;AAAA,EACzE,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,0CAA0C,KAAK,SAAQ,CAAE;AACzE,GACMU,IAASR,EAAiB,WAAWF,EAAU;ACPrD,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,OAAO,KAAK,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,SAAQ,CAAE;AAAA,EAC5E,CAAC,QAAQ,EAAE,OAAO,KAAK,QAAQ,KAAK,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,KAAK,SAAQ,CAAE;AAChF,GACMW,KAAUT,EAAiB,WAAWF,EAAU;ACXtD,SAASY,MAAaC,GAAM;AACxB,QAAMC,IAAe,CAAC,MAAM,QAAQD,EAAK,CAAC,CAAC,GACrCE,IAAYD,IAAe,IAAI,IAC/BE,IAAaH,EAAK,IAAIE,CAAS,GAC/BE,IAAaJ,EAAK,IAAIE,CAAS,GAC/BG,IAAcL,EAAK,IAAIE,CAAS,GAChCI,IAAUN,EAAK,IAAIE,CAAS,GAC5BK,IAAeC,GAAYJ,GAAYC,GAAaC,CAAO;AACjE,SAAOL,IAAeM,EAAaJ,CAAU,IAAII;AACrD;ACXA,MAAME,KAAS,CAACC,MAAS,CAACA,EAAK,iBAAiBA,EAAK,WAAW,EAAK;AACrE,SAASC,KAAY;AACjB,QAAMC,IAAQ,oBAAI,IAAG,GACfC,IAAgB,oBAAI,QAAO,GAC3BC,IAAW,MAAMF,EAAM,QAAQH,EAAM;AAC3C,SAAO;AAAA,IACH,KAAK,CAACC,MAAS;AACX,MAAAE,EAAM,IAAIF,CAAI,GACdG,EAAc,IAAIH,GAAMA,EAAK,iBAAiB,cAAcI,CAAQ,CAAC;AAAA,IACjF;AAAA,IACQ,QAAQ,CAACJ,MAAS;AACd,MAAAE,EAAM,OAAOF,CAAI;AACjB,YAAMK,IAAcF,EAAc,IAAIH,CAAI;AAC1C,MAAIK,MACAA,EAAW,GACXF,EAAc,OAAOH,CAAI,IAE7BI,EAAQ;AAAA,IACpB;AAAA,IACQ,OAAOA;AAAA,EACf;AACA;ACbA,MAAME,KAA+BC,GAAc,IAAI;ACJvD,SAASC,KAAe;AACpB,QAAMC,IAAYC,EAAO,EAAK;AAC9B,SAAAC,GAA0B,OACtBF,EAAU,UAAU,IACb,MAAM;AACT,IAAAA,EAAU,UAAU;AAAA,EAChC,IACO,EAAE,GACEA;AACX;ACRA,SAASG,KAAiB;AACtB,QAAMH,IAAYD,GAAY,GACxB,CAACK,GAAmBC,CAAoB,IAAIC,EAAS,CAAC,GACtDC,IAAcC,EAAY,MAAM;AAClC,IAAAR,EAAU,WAAWK,EAAqBD,IAAoB,CAAC;AAAA,EACvE,GAAO,CAACA,CAAiB,CAAC;AAMtB,SAAO,CADqBI,EAAY,MAAMC,GAAM,WAAWF,CAAW,GAAG,CAACA,CAAW,CAAC,GAC7DH,CAAiB;AAClD;ACTA,MAAMM,KAAqB,CAACC,MAAYA,MAAY,IAC9CC,KAAkB,CAACD,MAAYD,GAAmBC,MAAY,EAAI,KAAKA,MAAY,MACnFE,KAAc,CAAC,EAAE,UAAAC,GAAU,IAAAC,GAAI,SAAAJ,IAAU,GAAI,MAAO;AACtD,QAAMK,IAAqBC,EAAWC,EAAkB,GAClDC,IAA+BF,EAAWpB,EAA4B,GACtE,CAACU,GAAaa,CAAG,IAAIjB,GAAc,GACnCkB,IAAUpB,EAAO,IAAI,GACrBqB,IAAaN,EAAmB,MAAMG;AAC5C,EAAIE,EAAQ,YAAY,SAChBT,GAAgBD,CAAO,KAAKW,MAC5BP,IAAKA,IAAKO,IAAa,MAAMP,IAAKO,IAEtCD,EAAQ,UAAU;AAAA,IACd,IAAAN;AAAA,IACA,OAAOL,GAAmBC,CAAO,KAC3BK,EAAmB,SAASxB,GAAS;AAAA,EAEvD;AAEI,QAAM+B,IAAkBC,EAAQ,OAAO,EAAE,GAAGH,EAAQ,SAAS,aAAAd,EAAW,IAAK,CAACa,CAAG,CAAC;AAClF,SAAQK,EAAIP,GAAmB,UAAU,EAAE,OAAOK,GAAiB,UAAUT,GAAU;AAC3F;ACxBA,SAASY,GAAuBC,GAAQC,GAAe;AAInD,QAAMC,IAAQC,GAAeF,GAAe,GAOtCG,IAAc,MAAMF,EAAM,IAAID,EAAa,CAAE;AAKnD,SAAAG,EAAW,GAKX7B,GAA0B,MAAM;AAC5B,UAAM8B,IAAiB,MAAMvB,GAAM,UAAUsB,GAAa,IAAO,EAAI,GAC/DrC,IAAgBiC,EAAO,IAAI,CAACM,MAAMA,EAAE,GAAG,UAAUD,CAAc,CAAC;AACtE,WAAO,MAAM;AACT,MAAAtC,EAAc,QAAQ,CAACE,MAAgBA,EAAW,CAAE,GACpDsC,GAAYH,CAAW;AAAA,IACnC;AAAA,EACA,CAAK,GACMF;AACX;AC/BA,SAASM,GAAYC,GAAS;AAK1B,EAAAC,EAAoB,UAAU,CAAA,GAC9BD,EAAO;AACP,QAAMP,IAAQH,GAAuBW,EAAoB,SAASD,CAAO;AAIzE,SAAAC,EAAoB,UAAU,QACvBR;AACX;ACXA,SAASS,GAAaC,GAAOC,GAAyBC,GAAkBtD,GAAS;AAC7E,MAAI,OAAOoD,KAAU;AACjB,WAAOJ,GAAYI,CAAK;AAa5B,QAAMG,IAAc,OAAOF,KAA4B,aACjDA,IACA5D,GAAU4D,GAHIC,GAGkCtD,CAAO,GACvDwD,IAAS,MAAM,QAAQJ,CAAK,IAC5BK,GAAiBL,GAAOG,CAAW,IACnCE,GAAiB,CAACL,CAAK,GAAG,CAAC,CAACM,CAAM,MAAMH,EAAYG,CAAM,CAAC,GAC3DC,IAAmB,MAAM,QAAQP,CAAK,IAEtC,SADAA,EAAM;AAEZ,SAAIO,KACA,CAACA,EAAgB,iBACjB,OAAON,KAA4B,cACnC,MAAM,QAAQC,CAAgB,KAC9BtD,GAAS,UAAU,OACnBwD,EAAO,aAAa;AAAA,IAChB,GAAGG;AAAA,IACH,OAAON;AAAA,IACP,WAAWC;AAAA,IACX,eAAe;AAAA,EAE3B,IAEWE;AACX;AACA,SAASC,GAAiBjB,GAAQe,GAAa;AAC3C,QAAMG,IAASE,EAAY,MAAM,EAAE;AACnC,SAAOrB,GAAuBC,GAAQ,MAAM;AACxC,IAAAkB,EAAO,SAAS;AAChB,UAAMG,IAAYrB,EAAO;AACzB,aAASsB,IAAI,GAAGA,IAAID,GAAWC;AAC3B,MAAAJ,EAAOI,CAAC,IAAItB,EAAOsB,CAAC,EAAE,IAAG;AAE7B,WAAOP,EAAYG,CAAM;AAAA,EACjC,CAAK;AACL;ACjCA,MAAMK,GAAa;AAAA,EACf,cAAc;AACV,SAAK,oBAAoB,oBAAI,IAAG;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,UAAUC,GAAU;AAChB,gBAAK,kBAAkB,IAAIA,CAAQ,GAC5B,MAAM,KAAK,kBAAkB,OAAOA,CAAQ;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBI,MAAMC,GAAOjE,GAAS;AAClB,SAAK,kBAAkB,QAAQ,CAACgE,MAAa;AACzC,MAAAA,EAAS,MAAMC,EAAM,eAAeA,GAAOjE,CAAO;AAAA,IAC9D,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUI,SAAS;AACL,SAAK,kBAAkB,QAAQ,CAACgE,MAAa;AACzC,MAAAA,EAAS,OAAM;AAAA,IAC3B,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUI,OAAO;AACH,SAAK,kBAAkB,QAAQ,CAACA,MAAa;AACzC,MAAAA,EAAS,KAAI;AAAA,IACzB,CAAS;AAAA,EACT;AACA;AACA,MAAME,KAAqB,MAAM,IAAIH,GAAY;AA2BjD,SAASI,KAAkB;AACvB,SAAOP,EAAYM,EAAkB;AACzC;AC9GA,MAAME,KAAiBzD,GAAc,IAAI;ACAzC,SAAS0D,GAAaC,GAAO5B,GAAO6B,GAAQC,GAAU;AAClD,MAAI,CAACA;AACD,WAAOF;AACX,QAAMG,IAAQH,EAAM,UAAU,CAACI,MAASA,EAAK,UAAUhC,CAAK;AAC5D,MAAI+B,MAAU;AACV,WAAOH;AACX,QAAMK,IAAaH,IAAW,IAAI,IAAI,IAChCI,IAAWN,EAAMG,IAAQE,CAAU;AACzC,MAAI,CAACC;AACD,WAAON;AACX,QAAMI,IAAOJ,EAAMG,CAAK,GAClBI,IAAaD,EAAS,QACtBE,IAAiBC,GAAUF,EAAW,KAAKA,EAAW,KAAK,GAAG;AACpE,SAAKF,MAAe,KAAKD,EAAK,OAAO,MAAMH,IAASO,KAC/CH,MAAe,MAAMD,EAAK,OAAO,MAAMH,IAASO,IAC1CE,GAASV,GAAOG,GAAOA,IAAQE,CAAU,IAE7CL;AACX;ACZA,SAASW,GAAsB,EAAE,UAAAtD,GAAU,IAAAuD,IAAK,MAAM,MAAAC,IAAO,KAAK,WAAAC,GAAW,QAAA5C,GAAQ,GAAG6C,EAAK,GAAIC,GAAa;AAC1G,QAAMC,IAAY3B,EAAY,MAAM4B,GAAON,CAAE,CAAC,GACxCZ,IAAQ,CAAA,GACRmB,IAAe3E,EAAO,EAAK,GAC3B4E,IAAW5E,EAAO,IAAI;AAC5B,EAAA6E,GAAU,EAAQnD,GAAS,gDAAgD,gBAAgB;AAC3F,QAAMN,IAAU;AAAA,IACZ,MAAAiD;AAAA,IACA,UAAAO;AAAA,IACA,cAAc,CAAChD,GAAOkD,MAAW;AAE7B,YAAMC,IAAMvB,EAAM,UAAU,CAACwB,MAAUpD,MAAUoD,EAAM,KAAK;AAC5D,MAAID,MAAQ,KACRvB,EAAMuB,CAAG,EAAE,SAASD,EAAOT,CAAI,IAG/Bb,EAAM,KAAK,EAAE,OAAO5B,GAAO,QAAQkD,EAAOT,CAAI,GAAG,GAErDb,EAAM,KAAKyB,EAAU;AAAA,IACjC;AAAA,IACQ,aAAa,CAACrB,GAAMH,GAAQC,MAAa;AACrC,UAAIiB,EAAa;AACb;AACJ,YAAMO,IAAW3B,GAAaC,GAAOI,GAAMH,GAAQC,CAAQ;AAC3D,MAAIF,MAAU0B,MACVP,EAAa,UAAU,IACvBL,EAAUY,EACL,IAAIC,EAAQ,EACZ,OAAO,CAACvD,MAAUF,EAAO,QAAQE,CAAK,MAAM,EAAE,CAAC;AAAA,IAEpE;AAAA,EACA;AACI,EAAAwD,EAAU,MAAM;AACZ,IAAAT,EAAa,UAAU;AAAA,EAC/B,CAAK;AAED,QAAMU,IAAS,CAACC,MAAY;AACxB,IAAAV,EAAS,UAAUU,GACf,OAAOd,KAAgB,aACvBA,EAAYc,CAAO,IAEdd,MACLA,EAAY,UAAUc;AAAA,EAElC,GAMUC,IAAa;AAAA,IACf,gBAAgB;AAAA,IAChB,GAAGhB,EAAM;AAAA,EACjB;AACI,SAAQ/C,EAAIiD,GAAW,EAAE,GAAGF,GAAO,OAAOgB,GAAY,KAAKF,GAAQ,cAAc,IAAM,UAAU7D,EAAI8B,GAAe,UAAU,EAAE,OAAOlC,GAAS,UAAUP,EAAQ,CAAE,GAAG;AAC3K;AACA,MAAM2E,KAA6B,gBAAAC,GAAWtB,EAAqB;AACnE,SAASgB,GAASvB,GAAM;AACpB,SAAOA,EAAK;AAChB;AACA,SAASqB,GAAWS,GAAGC,GAAG;AACtB,SAAOD,EAAE,OAAO,MAAMC,EAAE,OAAO;AACnC;ACvEA,MAAMC,IAAY,IACZC,KAAW,IACXC,KAAiB,oBAAI,IAAI,CAAC,QAAQ,QAAQ,CAAC,GAE3CC,IAAsB,oBAAI,QAAO,GACjCC,IAAmB,oBAAI,QAAO;AAEpC,IAAIC,IAAsB;AAC1B,SAASC,KAAuB;AAC5B,MAAID,GAAqB;AACrB,UAAME,IAAqBC,GAAuBH,GAAqB,GAAG;AAC1E,IAAIE,MACAH,EAAiB,OAAOG,CAAkB,GAC1CJ,EAAoB,OAAOI,CAAkB;AAGjD,UAAME,IAAsBD,GAAuBH,GAAqB,GAAG;AAC3E,IAAII,KAAuBA,MAAwBF,MAC/CH,EAAiB,OAAOK,CAAmB,GAC3CN,EAAoB,OAAOM,CAAmB,IAElDJ,IAAsB;AAAA,EAC9B;AACA;AACA,SAASK,GAAoBhB,GAASjB,GAAM;AACxC,QAAMkC,IAAQ,iBAAiBjB,CAAO,GAChCkB,IAAWnC,MAAS,MAAMkC,EAAM,YAAYA,EAAM,WAClDE,IAAmBnB,MAAY,SAAS,QAC1CA,MAAY,SAAS;AACzB,SAAOQ,GAAe,IAAIU,CAAQ,KAAKC;AAC3C;AACA,SAASL,GAAuBd,GAASjB,GAAM;AAC3C,MAAIqC,IAAUpB,GAAS;AACvB,SAAOoB,KAAS;AACZ,QAAIJ,GAAoBI,GAASrC,CAAI;AACjC,aAAOqC;AAEX,IAAAA,IAAUA,EAAQ;AAAA,EAC1B;AACI,SAAO;AACX;AACA,SAASC,GAAgBC,GAAiBC,GAAexC,GAAM;AAC3D,QAAMyC,IAAOD,EAAc,sBAAqB,GAC1CE,IAAQ1C,MAAS,MAAM,KAAK,IAAI,GAAGyC,EAAK,IAAI,IAAI,KAAK,IAAI,GAAGA,EAAK,GAAG,GACpEE,IAAM3C,MAAS,MAAM,KAAK,IAAI,OAAO,YAAYyC,EAAK,KAAK,IAAI,KAAK,IAAI,OAAO,aAAaA,EAAK,MAAM,GACvGG,IAAoBL,IAAkBG,GACtCG,IAAkBF,IAAMJ;AAC9B,MAAIK,IAAoBrB,GAAW;AAC/B,UAAMuB,IAAY,IAAIF,IAAoBrB;AAC1C,WAAO,EAAE,QAAQ,CAACC,KAAWsB,IAAYA,GAAW,MAAM,QAAO;AAAA,EACzE,WACaD,IAAkBtB,GAAW;AAClC,UAAMuB,IAAY,IAAID,IAAkBtB;AACxC,WAAO,EAAE,QAAQC,KAAWsB,IAAYA,GAAW,MAAM,MAAK;AAAA,EACtE;AACI,SAAO,EAAE,QAAQ,GAAG,MAAM,KAAI;AAClC;AACA,SAASC,GAAmBC,GAAcT,GAAiBvC,GAAMX,GAAU;AACvE,MAAI,CAAC2D;AACD;AAEJ,EAAApB,IAAsBoB;AACtB,QAAMlB,IAAqBC,GAAuBiB,GAAchD,CAAI;AACpE,MAAI,CAAC8B;AACD;AAIJ,QAAMmB,IAA0BV,KAAmBvC,MAAS,MAAM,OAAO,UAAU,OAAO,UACpF,EAAE,QAAQkD,GAAc,MAAAC,EAAI,IAAKb,GAAgBW,GAAyBnB,GAAoB9B,CAAI;AAExG,MAAImD,MAAS,MAAM;AACf,IAAAxB,EAAiB,OAAOG,CAAkB,GAC1CJ,EAAoB,OAAOI,CAAkB;AAC7C;AAAA,EACR;AACI,QAAMsB,IAAoBzB,EAAiB,IAAIG,CAAkB,GAC3DM,IAAmBN,MAAuB,SAAS,QACrDA,MAAuB,SAAS;AAEpC,MAAIsB,MAAsBD,GAAM;AAI5B,QAAI,EAFiBA,MAAS,WAAW9D,IAAW,KAC/C8D,MAAS,SAAS9D,IAAW;AAE9B;AAEJ,IAAAsC,EAAiB,IAAIG,GAAoBqB,CAAI;AAE7C,UAAME,IAAYrD,MAAS,MACrB8B,EAAmB,eAAeM,IAAmB,OAAO,aAAaN,EAAmB,eAC5FA,EAAmB,gBAAgBM,IAAmB,OAAO,cAAcN,EAAmB;AACpG,IAAAJ,EAAoB,IAAII,GAAoBuB,CAAS;AAAA,EAC7D;AAEI,MAAIH,IAAe,GAAG;AAClB,UAAMI,IAAe5B,EAAoB,IAAII,CAAkB;AAI/D,SAHsB9B,MAAS,MACxBoC,IAAmB,OAAO,UAAUN,EAAmB,aACvDM,IAAmB,OAAO,UAAUN,EAAmB,cACzCwB;AACjB;AAAA,EACZ;AAEI,EAAItD,MAAS,MACLoC,IACA,OAAO,SAAS,EAAE,MAAMc,EAAY,CAAE,IAGtCpB,EAAmB,cAAcoB,IAIjCd,IACA,OAAO,SAAS,EAAE,KAAKc,EAAY,CAAE,IAGrCpB,EAAmB,aAAaoB;AAG5C;AC5GA,SAASK,GAAsBhG,GAAOiG,IAAe,GAAG;AACpD,SAAOC,GAAclG,CAAK,IAAIA,IAAQC,GAAegG,CAAY;AACrE;AACA,SAASE,GAAqB,EAAE,UAAAlH,GAAU,OAAA0F,IAAQ,CAAA,GAAI,OAAA3E,GAAO,IAAAwC,IAAK,MAAM,QAAA4D,GAAQ,WAAAC,GAAW,QAAAnD,IAAS,IAAM,GAAGP,EAAK,GAAIC,GAAa;AAC/H,QAAMC,IAAY3B,EAAY,MAAM4B,GAAON,CAAE,CAAC,GACxChD,IAAUJ,EAAWsC,EAAc,GACnC4E,IAAQ;AAAA,IACV,GAAGN,GAAsBrB,EAAM,CAAC;AAAA,IAChC,GAAGqB,GAAsBrB,EAAM,CAAC;AAAA,EACxC,GACU4B,IAAS9F,GAAa,CAAC6F,EAAM,GAAGA,EAAM,CAAC,GAAG,CAAC,CAACE,GAASC,CAAO,MAAMD,KAAWC,IAAU,IAAI,OAAO;AACxG,EAAAxD,GAAU,EAAQzD,GAAU,iDAAiD,oBAAoB;AACjG,QAAM,EAAE,MAAAiD,GAAM,cAAAiE,GAAc,aAAAC,GAAa,UAAA3D,EAAQ,IAAKxD;AACtD,SAAQI,EAAIiD,GAAW,EAAE,MAAMJ,GAAM,GAAGE,GAAO,kBAAkB,IAAM,OAAO,EAAE,GAAGgC,GAAO,GAAG2B,EAAM,GAAG,GAAGA,EAAM,GAAG,QAAAC,EAAM,GAAI,QAAQrD,GAAQ,QAAQ,CAAC3B,GAAOqF,MAAiB;AACrK,UAAM,EAAE,UAAA9E,GAAU,OAAO+E,EAAY,IAAKD,GACpC/E,IAASyE,EAAM7D,CAAI,EAAE,IAAG;AAE9B,IAAAkE,EAAY3G,GAAO6B,GAAQC,EAASW,CAAI,CAAC,GACzC+C,GAAmBxC,EAAS,SAAS6D,EAAapE,CAAI,GAAGA,GAAMX,EAASW,CAAI,CAAC,GAC7E2D,KAAUA,EAAO7E,GAAOqF,CAAY;AAAA,EAChD,GAAW,WAAW,CAACrF,GAAOqF,MAAiB;AACnC,IAAAtC,GAAoB,GACpB+B,KAAaA,EAAU9E,GAAOqF,CAAY;AAAA,EACtD,GAAW,iBAAiB,CAACE,MAAa;AAC9B,IAAAJ,EAAa1G,GAAO8G,CAAQ;AAAA,EACxC,GAAW,KAAKlE,GAAa,cAAc,IAAM,UAAU3D,GAAU;AACrE;AACA,MAAM8H,KAA4B,gBAAAlD,GAAWsC,EAAoB;ACvCjE,IAAIa,KAAY,OAAO,gBACnBC,KAAsB,OAAO,uBAC7BC,KAAe,OAAO,UAAU,gBAChCC,KAAe,OAAO,UAAU,sBAChCC,KAAkB,CAACC,GAAK9H,GAAKS,MAAUT,KAAO8H,IAAML,GAAUK,GAAK9H,GAAK,EAAE,YAAY,IAAM,cAAc,IAAM,UAAU,IAAM,OAAAS,EAAK,CAAE,IAAIqH,EAAI9H,CAAG,IAAIS,GACtJsH,KAAiB,CAACxD,GAAGC,MAAM;AAC7B,WAASwD,KAAQxD,MAAMA,IAAI,CAAA;AACzB,IAAImD,GAAa,KAAKnD,GAAGwD,CAAI,KAC3BH,GAAgBtD,GAAGyD,GAAMxD,EAAEwD,CAAI,CAAC;AACpC,MAAIN;AACF,aAASM,KAAQN,GAAoBlD,CAAC;AACpC,MAAIoD,GAAa,KAAKpD,GAAGwD,CAAI,KAC3BH,GAAgBtD,GAAGyD,GAAMxD,EAAEwD,CAAI,CAAC;AAEtC,SAAOzD;AACT,GAGI0D,KAAM,CAACC,GAAOC,MAAa;AAC7B,QAAMC,IAAMF,EAAM;AAClB,WAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F;AAE/B,QADiB2F,EAASD,EAAM1F,CAAK,GAAGA,GAAO0F,CAAK;AAElD,aAAO;AAGX,SAAO;AACT,GACIG,KAAe,CAACH,GAAOzK,GAAM6K,GAAQ7H,MAAU8H,EAAYN,IAAKC,GAAOzK,GAAM6K,GAAQ7H,CAAK,GAG1F+H,IAAW,CAACjE,MAAM,OAAOA,KAAM,UAC/BkE,IAAS,CAAClE,GAAGC,MAAM;AACrB,MAAID,MAAMC;AACR,WAAO;AAET,MAAID,aAAa,QAAQC,aAAa;AACpC,WAAOD,EAAE,cAAcC,EAAE,QAAO;AAElC,MAAI,CAACD,KAAK,CAACC,KAAK,CAACgE,EAASjE,CAAC,KAAK,CAACiE,EAAShE,CAAC;AACzC,WAAOD,MAAMC;AAEf,MAAID,EAAE,cAAcC,EAAE;AACpB,WAAO;AAET,QAAMkE,IAAO,OAAO,KAAKnE,CAAC;AAC1B,SAAImE,EAAK,WAAW,OAAO,KAAKlE,CAAC,EAAE,SAC1B,KAEFkE,EAAK,MAAM,CAACC,MAAMF,EAAOlE,EAAEoE,CAAC,GAAGnE,EAAEmE,CAAC,CAAC,CAAC;AAC7C,GACIC,KAAS,CAACd,GAAK9H,OACZwI,EAASV,CAAG,KAAK,MAAM,QAAQA,CAAG,MAAQ9H,IACtC8H,EAAI9H,CAAG,IAET8H,GAELe,KAAS,CAAC7I,MAAQ,CAACuE,GAAGC,MACpBD,EAAEvE,CAAG,MAAMwE,EAAExE,CAAG,IACX,IAEFuE,EAAEvE,CAAG,IAAIwE,EAAExE,CAAG,IAAI,IAAI,IAE3B8I,IAAW,CAACvE,MAAM,UAAU,KAAKA,CAAC,GAClCwE,KAAmB,CAACC,MAAM,CAAC,UAAU,QAAQ,EAAE,SAAS,OAAOA,CAAC,GAGhEC,KAAU,CAACpI,MAAsBA,KAAM,QAA8BA,GAAE,WAAY,KAAKA,MAAM,IAC9FqI,KAAY;AAAA,EACd,IAAIT;AAAA,EACJ,IAAI,OAAO;AAAA,EACX,MAAM,CAAC5H,GAAGsI,MAAMtI,KAAKsI;AAAA,EACrB,OAAO,CAACtI,GAAGsI,MAAMtI,MAAMsI;AAAA,EACvB,KAAK,CAACtI,GAAGsI,MAAMtI,IAAIsI;AAAA,EACnB,MAAM,CAACtI,GAAGsI,MAAMtI,KAAKsI;AAAA,EACrB,MAAM,CAACtI,GAAGsI,MAAMtI,KAAKsI;AAAA,EACrB,OAAO,CAACtI,GAAGsI,MAAMtI,MAAMsI;AAAA,EACvB,KAAK,CAACtI,GAAGsI,MAAMtI,IAAIsI;AAAA,EACnB,MAAM,CAACtI,GAAGsI,MAAMtI,KAAKsI;AAAA,EACrB,UAAU,CAACtI,GAAGsI,MAAM,GAAGtI,CAAC,GAAG,SAASsI,CAAC;AAAA,EACrC,aAAa,CAACtI,GAAGsI,MAAM,CAAC,GAAGtI,CAAC,GAAG,SAASsI,CAAC;AAAA,EACzC,YAAY,CAACtI,GAAGsI,MAAM,GAAGtI,CAAC,GAAG,WAAWsI,CAAC;AAAA,EACzC,UAAU,CAACtI,GAAGsI,MAAM,GAAGtI,CAAC,GAAG,SAASsI,CAAC;AAAA,EACrC,MAAM,CAACtI,GAAGsI,MAAM,IAAI,OAAO,KAAKA,CAAC,MAAM,IAAI,EAAE,KAAK,GAAGtI,CAAC,EAAE;AAAA,EACxD,cAAc,CAACA,GAAGsI,MAAMtI,EAAE,SAAQ,EAAG,cAAcsI,EAAE,UAAU;AAAA,EAC/D,OAAOF;AAAA,EACP,UAAU,CAACG,MAAM,CAACH,GAAQG,CAAC;AAAA,EAC3B,IAAI,CAACvI,GAAGsI,MAAMlB,GAAIkB,GAAG,CAACC,MAAMX,EAAO5H,GAAGuI,CAAC,CAAC;AAAA,EACxC,OAAO,CAACvI,GAAGsI,MAAME,GAAIF,GAAG,CAACC,MAAM,CAACX,EAAO5H,GAAGuI,CAAC,CAAC;AAC9C,GACIE,KAAyB,CAAChB,MAAW;AACvC,MAAIA,KAAUY;AACZ,WAAOA,GAAUZ,CAAM;AACzB,QAAM,IAAI,MAAM,yBAAyB;AAC3C,GAGIiB,IAAS,CAACrB,GAAOC,MAAa;AAChC,QAAMqB,IAAc,CAAA,GACdpB,IAAMF,EAAM;AAClB,WAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F;AAE/B,IADiB2F,EAASD,EAAM1F,CAAK,GAAGA,GAAO0F,CAAK,KAElDsB,EAAY,KAAKtB,EAAM1F,CAAK,CAAC;AAGjC,SAAOgH;AACT,GAGIjB,IAAc,CAACkB,GAAMvB,GAAOzK,GAAM6K,GAAQ7H,MAAU;AACtD,MAAI,OAAOhD,KAAS;AAClB,WAAOgM,EAAKvB,GAAOzK,CAAI;AACzB,QAAMiM,IAAKJ,GAAuBhB,CAAM;AACxC,SAAM7K,KAAU6K,KAAU7H,MAAU,SAC3BgJ,EAAKvB,GAAO,CAACkB,MAAMM,EAAGN,EAAE3L,CAAI,GAAGgD,CAAK,CAAC,IACvCgJ,EAAKvB,GAAO,CAACkB,MAAMM,EAAGN,GAAG3I,CAAK,CAAC;AACxC,GACIkJ,KAAQ,CAACzB,GAAOzK,GAAM6K,GAAQ7H,MAAU8H,EAAYgB,GAAQrB,GAAOzK,GAAM6K,GAAQ7H,CAAK,GAGtF4I,KAAM,CAACnB,GAAOC,MAAa;AAC7B,WAAS3F,IAAQ,GAAGA,IAAQ0F,EAAM,QAAQ1F;AAExC,QAAI,CADa2F,EAASD,EAAM1F,CAAK,GAAGA,GAAO0F,CAAK;AAElD,aAAO;AAGX,SAAO;AACT,GACI0B,KAAe,CAAC1B,GAAOzK,GAAM6K,GAAQ7H,MAAU8H,EAAYc,IAAKnB,GAAOzK,GAAM6K,GAAQ7H,CAAK,GAG1FoJ,KAAY,CAAC/B,MAAQ;AACvB,MAAIA,MAAQ;AACV,WAAO;AAET,QAAMgC,IAAQ/B,GAAe,CAAA,GAAID,CAAG;AACpC,gBAAO,KAAKgC,CAAK,EAAE,QAAQ,CAAC9J,MAAQ8J,EAAM9J,CAAG,IAAIwI,EAASV,EAAI9H,CAAG,CAAC,IAAI6J,GAAU/B,EAAI9H,CAAG,CAAC,IAAI8H,EAAI9H,CAAG,CAAC,GAC7F,MAAM,QAAQ8H,CAAG,KAAKA,EAAI,UAAUgC,EAAM,SAAShC,EAAI,WAAW,MAAM,KAAKgC,CAAK,IAAI,MAAM,QAAQhC,CAAG,IAAI,MAAM,KAAKA,CAAG,IAAIgC;AACtI,GAGIC,KAAW,CAAC7B,GAAO/D,MAAY;AACjC,MAAIqE,EAASrE,CAAO,GAAG;AACrB,aAAS3B,IAAQ,GAAGA,IAAQ0F,EAAM,QAAQ1F,KAAS;AACjD,YAAM+C,IAAU2C,EAAM1F,CAAK;AAC3B,UAAIiG,EAAOtE,GAASoB,CAAO;AACzB,eAAO;AAAA,IAEf;AACI,WAAO;AAAA,EACX;AACE,WAAS/C,IAAQ,GAAGA,IAAQ0F,EAAM,QAAQ1F,KAAS;AACjD,UAAM+C,IAAU2C,EAAM1F,CAAK;AAC3B,QAAIiG,EAAOtE,GAASoB,CAAO;AACzB,aAAO;AAAA,EAEb;AACE,SAAO;AACT,GAGIyE,KAAO,CAAC9B,GAAOlI,MAAQ;AACzB,QAAMiK,IAAO,IAAI,IAAI/B,EAAM,IAAI,CAACkB,MAAM,CAACA,EAAEpJ,CAAG,GAAGoJ,CAAC,CAAC,CAAC;AAClD,SAAO,OAAO,YAAYa,EAAK,QAAO,CAAE;AAC1C,GAGIC,KAAW,CAAChC,MAAUqB;AAAA,EACxBrB;AAAA,EACA,CAACiC,GAAI3H,GAAO4H,MAAW5B,EAAS2B,CAAE,IAAI3H,MAAU4H,EAAO,UAAU,CAACtC,MAAQW,EAAOX,GAAKqC,CAAE,CAAC,IAAI3H,MAAU4H,EAAO,QAAQD,CAAE;AAC1H,GAGIE,KAAO,CAACnC,GAAOC,MAAa;AAC9B,QAAMC,IAAMF,EAAM;AAClB,WAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F;AAE/B,QADiB2F,EAASD,EAAM1F,CAAK,GAAGA,GAAO0F,CAAK;AAElD,aAAOA,EAAM1F,CAAK;AAIxB,GAGI8H,KAAY,CAACpC,GAAOuB,MAAS;AAC/B,QAAMQ,IAAuB,oBAAI,IAAG;AACpC,SAAA/B,EAAM,QAAQ,CAACkB,MAAM;AACnB,UAAMT,IAAIc,EAAKL,CAAC,GACV3G,IAAOwH,EAAK,IAAItB,CAAC,KAAK,CAAA;AAC5B,IAAAlG,EAAK,KAAK2G,CAAC,GACXa,EAAK,IAAItB,GAAGlG,CAAI;AAAA,EACpB,CAAG,GACM,OAAO,YAAYwH,EAAK,QAAO,CAAE;AAC1C,GACIM,KAAU,CAACrC,GAAOlI,MAAQsK,GAAUpC,GAAO,CAACzF,MAASA,EAAKzC,CAAG,CAAC,GAG9DwK,KAAM,CAACtC,GAAOC,MAAa;AAC7B,QAAMqB,IAAc,CAAA;AACpB,MAAIhH,IAAQ;AACZ,QAAM4F,IAAMF,EAAM;AAClB,OAAK1F,GAAOA,IAAQ4F,GAAK5F,KAAS;AAChC,UAAMhF,IAAY2K,EAASD,EAAM1F,CAAK,GAAGA,GAAO0F,CAAK;AACrD,IAAAsB,EAAY,KAAKhM,CAAS;AAAA,EAC9B;AACE,SAAOgM;AACT,GAGIiB,KAAgB,CAAClG,GAAGC,MAAM;AAC5B,MAAI4E,IAAI,OAAO,SAAS7E,GAAG,EAAE,GACzBmG,IAAI,OAAO,SAASlG,GAAG,EAAE;AAC7B,SAAO4E,IAAIsB,IAAI,CAACA,GAAGtB,CAAC,IAAI,CAACA,GAAGsB,CAAC;AAC/B,GACIC,KAAkB,CAACC,GAAOC,GAAOC,IAAQ,MAAM;AACjD,QAAMvG,IAAI,CAAA;AACV,MAAI1C,IAAI+I,EAAM,WAAW,CAAC;AAC1B,QAAMG,IAAIF,EAAM,WAAW,CAAC;AAC5B,SAAOhJ,KAAKkJ,GAAGlJ,KAAKiJ;AAClB,IAAAvG,EAAE,KAAK,OAAO,aAAa1C,CAAC,CAAC;AAE/B,SAAIiH,EAAS8B,CAAK,KAAK9B,EAAS+B,CAAK,IAC5BtG,EAAE,IAAI,CAAC6E,MAAM,OAAO,SAASA,CAAC,CAAC,IAEjC7E;AACT,GACIyG,IAAc,CAACJ,GAAOC,GAAOC,IAAQ,MAAM;AAC7C,MAAIG,IAAM,KAAK,IAAIH,CAAK;AACxB,OAAIF,EAAM,SAAS,KAAKC,EAAM,SAAS,MACjC/B,EAAS8B,CAAK,KAAK9B,EAAS+B,CAAK,GAAG;AACtC,UAAMtG,IAAI,CAAA,GACJ,CAAC2G,GAAQC,CAAM,IAAIV,GAAcG,GAAOC,CAAK;AACnD,aAAShJ,IAAIqJ,GAAQrJ,KAAKsJ,GAAQtJ,KAAKoJ;AACrC,MAAA1G,EAAE,KAAK1C,CAAC;AAEV,WAAO0C;AAAA,EACb;AAEE,SAAOoG,GAAgBC,GAAOC,GAAOI,CAAG;AAC1C,GACIG,KAAQ,CAACC,GAAeC,GAAeR,IAAQ,MAAM;AACvD,MAAIQ,MAAkB,QAAQ;AAC5B,UAAM,CAAClC,GAAGsB,GAAGa,CAAE,IAAIF,EAAc,MAAM,IAAI;AAC3C,WAAIE,MAAO,SACFP,EAAY5B,GAAGsB,GAAG,CAAC,IAErBM,EAAY5B,GAAGmC,GAAI,OAAO,SAASb,GAAG,EAAE,CAAC;AAAA,EACpD;AACE,SAAI3B,GAAiBsC,CAAa,KAAKtC,GAAiBuC,CAAa,IAC5DN,EAAY,GAAGK,CAAa,IAAI,GAAGC,CAAa,IAAIR,CAAK,IAE3D,MAAM,KAAK,EAAE,QAAQO,EAAa,GAAI,CAACG,GAAG3J,MAAMA,IAAI,KAAK,IAAIyJ,CAAa,CAAC;AACpF,GAGIG,IAAS,CAACtD,GAAUuD,GAASxD,MAAU;AACzC,MAAIyD,IAAcD;AAClB,QAAMtD,IAAMF,EAAM;AAClB,WAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F,KAAS;AACxC,UAAM2B,IAAU+D,EAAM1F,CAAK;AAC3B,IAAAmJ,IAAcxD,EAASwD,GAAaxH,GAAS3B,GAAO0F,CAAK;AAAA,EAC7D;AACE,SAAOyD;AACT,GAGIC,KAAU,CAACrH,MAAM;AACnB,QAAM2D,IAAQ,MAAM,KAAK3D,EAAE,OAAM,CAAE;AACnC,MAAIsH,IAAO,MACPC,IAAQ,MACRC,IAAS7D,EAAM;AACnB,OAAK2D,IAAO,GAAGA,IAAOE,IAAS,GAAGF,KAAQ,GAAG;AAC3C,IAAAC,IAAQC,IAAS,IAAIF;AACrB,QAAIG,IAAY9D,EAAM2D,CAAI;AAC1B,IAAA3D,EAAM2D,CAAI,IAAI3D,EAAM4D,CAAK,GACzB5D,EAAM4D,CAAK,IAAIE;AAAA,EACnB;AACE,SAAO9D;AACT,GAGI+D,KAAO,CAAC/D,GAAO4C,MAAU;AAC3B,MAAI,OAAOA,KAAU;AACnB,WAAO5C,EAAM,MAAM4C,CAAK;AAE1B,MAAI1C,IAAMF,EAAM;AAChB,WAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F,KAAS;AACxC,UAAM2B,IAAU+D,EAAM1F,CAAK;AAE3B,QADkBsI,EAAM3G,GAAS3B,GAAO0F,CAAK;AAE3C,aAAOA,EAAM,MAAM1F,CAAK;AAAA,EAE9B;AACE,SAAO0F,EAAM,MAAM,CAAC;AACtB,GACIgE,KAAgB,CAAChE,GAAOzK,GAAM6K,GAAQ7H,MAAU8H,EAAY0D,IAAM/D,GAAOzK,GAAM6K,GAAQ7H,CAAK,GA+D5F0L,KAAO,CAACjE,GAAOkE,MAAW;AAC5B,QAAMC,IAAc,CAAC,GAAGnE,CAAK;AAC7B,SAAIkE,MAAW,SACNC,EAAY,KAAI,IACrB,OAAOD,KAAW,aACbC,EAAY,SAASD,CAAM,IAC7BC,EAAY,SAASxD,GAAOuD,CAAM,CAAC;AAC5C,GACIE,KAAyB,kBAACC,OAC5BA,EAAO,MAAS,OAChBA,EAAO,OAAU,QACVA,IACND,MAAS,CAAA,CAAE,GACVE,KAAe,CAACC,MAAW,CAAClI,GAAGC,MAAMiI,EAAO,OAAO,CAACC,GAAKtD,MAAM;AACjE,QAAMuD,IAAWvD,EAAE,SAAS,SAAS,KAAK,GACpCwD,IAAWxD,EAAE,KACbyD,IAAItI,EAAEqI,CAAQ,IAAIpI,EAAEoI,CAAQ,IAAID,IAAWpI,EAAEqI,CAAQ,IAAIpI,EAAEoI,CAAQ,IAAI,CAACD,IAAW;AACzF,SAAOD,MAAQ,IAAIA,IAAMG;AAC3B,GAAG,CAAC,GACAC,KAAY,CAAC5E,GAAOuE,MAAWvE,EAAM,KAAKsE,GAAaC,CAAM,CAAC,GAG9DM,KAAS,CAAC7E,GAAOlI,MAAQ;AAC3B,MAAIA,MAAQ;AACV,WAAO,CAAC,GAAG,IAAI,IAAIkI,CAAK,EAAE,OAAM,CAAE;AAEpC,QAAM8E,IAAuB,oBAAI,IAAG;AACpC,SAAI,MAAM,QAAQhN,CAAG,IACZ,CAAC,GAAG,IAAI,IAAIA,CAAG,CAAC,IAElBuJ,EAAOrB,GAAO,CAACiC,MAAO;AAC3B,UAAM8C,IAAYjN,IAAMgN,EAAK,IAAI7C,EAAGnK,CAAG,CAAC,IAAIgN,EAAK,IAAIhN,CAAG;AACxD,WAAMA,MACCiN,KACHD,EAAK,IAAI7C,EAAGnK,CAAG,CAAC,IAGb,CAACiN;AAAA,EACZ,CAAG;AACH,GAGIC,KAAO,MAAMC,GAAM;AAAA,EACrB,YAAYjF,IAAQ,IAAI;AACtB,SAAK,QAAQA;AAAA,EACjB;AAAA,EACE,OAAO,SAASzK,GAAM;AACpB,WAAO2N,GAAM,GAAG3N,CAAI;AAAA,EACxB;AAAA,EACE,OAAO,IAAIyK,GAAO;AAChB,WAAO,IAAIiF,GAAMjF,CAAK;AAAA,EAC1B;AAAA,EACE,MAAMzK,GAAM6K,GAAQ7H,GAAO;AACzB,gBAAK,QAAQkJ,GAAM,KAAK,OAAOlM,GAAM6K,GAAQ7H,CAAK,GAC3C;AAAA,EACX;AAAA,EACE,KAAKhD,GAAM6K,GAAQ7H,GAAO;AACxB,WAAO4H,GAAa,KAAK,OAAO5K,GAAM6K,GAAQ7H,CAAK;AAAA,EACvD;AAAA,EACE,IAAIhD,GAAM6K,GAAQ7H,GAAO;AACvB,WAAOmJ,GAAa,KAAK,OAAOnM,GAAM6K,GAAQ7H,CAAK;AAAA,EACvD;AAAA,EACE,UAAU;AACR,gBAAK,QAAQmL,GAAQ,KAAK,KAAK,GACxB;AAAA,EACX;AAAA,EACE,IAAIzB,GAAI;AACN,gBAAK,QAAQ,MAAM,QAAQA,CAAE,IAAI,KAAK,MAAM,OAAOA,CAAE,IAAI,KAAK,MAAM,OAAO,CAACA,CAAE,CAAC,GACxE;AAAA,EACX;AAAA,EACE,QAAQA,GAAI;AACV,gBAAK,QAAQ,MAAM,QAAQA,CAAE,IAAIA,EAAG,OAAO,KAAK,KAAK,IAAI,CAACA,CAAE,EAAE,OAAO,KAAK,KAAK,GACxE;AAAA,EACX;AAAA,EACE,OAAO3M,GAAW;AAChB,WAAOA,MAAc,SAAS,KAAK,QAAQ,KAAK,MAAM,IAAIA,CAAS;AAAA,EACvE;AAAA,EACE,KAAK4P,GAAMvH,GAAK;AACd,WAAIA,MAAQ,SACV,KAAK,QAAQ,KAAK,MAAM,MAAMuH,GAAM,KAAK,IAAI,GAAGvH,CAAG,CAAC,IAEpD,KAAK,QAAQ,KAAK,MAAM,MAAMuH,CAAI,GAE7B;AAAA,EACX;AAAA,EACE,OAAO;AACL,WAAO,KAAK,MAAM,CAAC;AAAA,EACvB;AAAA,EACE,OAAO;AACL,WAAO,KAAK,KAAK,CAAC;AAAA,EACtB;AAAA,EACE,KAAK3P,GAAM6K,GAAQ7H,GAAO;AACxB,gBAAK,QAAQyL,GAAc,KAAK,OAAOzO,GAAM6K,GAAQ7H,CAAK,GACnD;AAAA,EACX;AAAA,EACE,WAAW;AACT,gBAAK,QAAQyJ,GAAS,KAAK,KAAK,GACzB;AAAA,EACX;AAAA,EACE,MAAMmD,GAAW;AACf,WAAOA,MAAc,SAAS,KAAK,MAAM,CAAC,IAAIhD,GAAK,KAAK,OAAOgD,CAAS,KAAK;AAAA,EACjF;AAAA,EACE,KAAKA,GAAW;AACd,UAAMjF,IAAM,KAAK,MAAM;AACvB,QAAIiF,MAAc;AAChB,aAAO,KAAK,MAAMjF,IAAM,CAAC;AAE3B,aAAS5F,IAAQ4F,GAAK5F,MAAU,GAAGA;AAEjC,UADiB6K,EAAU,KAAK,MAAM7K,CAAK,GAAGA,GAAO,KAAK,KAAK;AAE7D,eAAO,KAAK,MAAMA,CAAK;AAAA,EAI/B;AAAA,EACE,IAAIxC,GAAK;AACP,WAAOA,MAAQ,SAASyL,EAAO,CAACiB,GAAKvC,MAAOuC,IAAMvC,GAAI,GAAG,KAAK,KAAK,IAAIsB,EAAO,CAACiB,GAAKvC,MAAOuC,IAAM9D,GAAOuB,GAAInK,CAAG,GAAG,GAAG,KAAK,KAAK;AAAA,EACnI;AAAA,EACE,QAAQA,GAAK;AACX,WAAO,KAAK,IAAIA,CAAG,IAAI,KAAK,MAAM;AAAA,EACtC;AAAA,EACE,QAAQA,GAAK;AACX,WAAOuK,GAAQ,KAAK,OAAOvK,CAAG;AAAA,EAClC;AAAA,EACE,UAAUyJ,GAAM;AACd,WAAOa,GAAU,KAAK,OAAOb,CAAI;AAAA,EACrC;AAAA,EACE,OAAO6D,GAAY;AACjB,WAAO/D,EAAO,KAAK,OAAO,CAACH,MAAM,CAACW,GAASuD,GAAYlE,CAAC,CAAC;AAAA,EAC7D;AAAA,EACE,UAAUmE,GAAS;AACjB,WAAOhE,EAAO,KAAK,OAAO,CAACH,MAAMW,GAASwD,GAASnE,CAAC,CAAC;AAAA,EACzD;AAAA,EACE,QAAQpJ,GAAKqC,GAAO;AAClB,QAAI6F;AACJ,WAAAA,IAAUlI,IAAMmM,GAAK,KAAK,OAAOnM,CAAG,IAAI,KAAK,MAAM,SAAQ,GAC3D,KAAK,QAAQqC,MAAU,SAASuJ,GAAQ1D,CAAK,IAAIA,GAC1C;AAAA,EACX;AAAA,EACE,SAASsF,GAAQ;AACf,WAAOvF,GAAI,KAAK,OAAO,CAACmB,MAAMX,EAAOW,GAAGoE,CAAM,CAAC;AAAA,EACnD;AAAA,EACE,GAAGtF,GAAO;AACR,UAAME,IAAMF,EAAM;AAClB,aAAS1F,IAAQ,GAAGA,IAAQ4F,GAAK5F,KAAS;AACxC,YAAM2B,IAAU+D,EAAM1F,CAAK;AAE3B,UADwB,KAAK,SAAS2B,CAAO;AAE3C,eAAO;AAAA,IACf;AACI,WAAO;AAAA,EACX;AAAA,EACE,OAAOsJ,GAAIC,GAAY;AACrB,WAAOjC,EAAOgC,GAAIC,KAAkC,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK;AAAA,EACjF;AAAA,EACE,QAAQ;AACN,WAAO,KAAK,MAAM,WAAW;AAAA,EACjC;AAAA,EACE,MAAM1N,GAAK;AACT,WAAO,IAAI,IAAIwK,GAAI,KAAK,OAAO,CAAC/H,MAAS,CAACzC,GAAKyC,CAAI,CAAC,CAAC;AAAA,EACzD;AAAA,EACE,IAAIyF,GAAOuF,GAAI;AACb,WAAOjD,GAAI,KAAK,OAAO,CAAC/H,GAAMD,MAAUiL,EAAGhL,GAAMyF,EAAM1F,CAAK,CAAC,CAAC;AAAA,EAClE;AAAA,EACE,MAAM6K,GAAW;AACf,WAAOA,MAAc,SAAS,KAAK,MAAM,SAAS9D,EAAO,KAAK,OAAO8D,CAAS,EAAE;AAAA,EACpF;AAAA,EACE,IAAIM,GAAG;AACL,WAAO,KAAK,MAAMA,CAAC;AAAA,EACvB;AAAA,EACE,QAAQ;AACN,WAAO,IAAIR,GAAMtD,GAAU,KAAK,KAAK,CAAC;AAAA,EAC1C;AAAA,EACE,SAAS7J,GAAK;AACZ,WAAOgK,GAAK,KAAK,OAAOhK,CAAG;AAAA,EAC/B;AAAA,EACE,KAAKoM,GAAQ;AACX,WAAO,MAAM,QAAQA,CAAM,IAAIU,GAAU,KAAK,OAAOV,CAAM,IAAID,GAAK,KAAK,OAAOC,CAAM;AAAA,EAC1F;AAAA,EACE,OAAOzD,GAAG;AACR,WAAOoE,GAAO,KAAK,OAAOpE,CAAC;AAAA,EAC/B;AACA,GA+DIiF,KAAcV;ACxlBX,MAAMW,KAAQ,CAACzK,MAAsB;AACxC,QAAM0K,IAAO1K,EAAM,QAAQ2K,IACrBC,IAAYC,EAAA;AAClB,SACI,gBAAAC,EAAC,OAAA,EAAI,WAAU,qEACX,UAAA;AAAA,IAAA,gBAAA7N,EAACyN,GAAA,EAAK,MAAM,IAAI,WAAU,iBAAgB;AAAA,sBACzC,KAAA,EAAE,WAAU,iBAAiB,UAAA1K,EAAM,WAAW4K,EAAU,iBAAA,CAAiB;AAAA,EAAA,GAC9E;AAER;ACVA,SAASG,GAAsB5I,GAAiB6I,GAAa;AACzD,MAAI,CAAC7I,KAAW,CAAC6I,UAAY,CAAA;AAC7B,QAAMC,IAAgC,CAAC,CAAC;AACxC,MAAI9I,MAAY,KAAK6I,MAAQ,EAAG,QAAOC;AACvC,EAAI9I,IAAU,KAAG8I,EAAM,KAAK,GAAG;AAC/B,QAAMC,IAAI,GACJC,IAAKhJ,IAAU+I,GACfE,IAAKjJ,IAAU+I;AACrB,WAASzM,IAAI0M,IAAK,IAAIA,IAAK,GAAG1M,KAAK,KAAK,IAAIuM,GAAKI,CAAE,GAAG3M,IAAK,CAAAwM,EAAM,KAAKxM,CAAC;AACvE,QAAM4M,IAAKL,IAAM;AACjB,SAAII,IAAK,MAAMC,KACPD,IAAK,IAAIJ,KAAKC,EAAM,KAAK,GAAG,GAEhCG,IAAKJ,MACLC,EAAM,KAAKD,IAAM,CAAC,GAClBC,EAAM,KAAKD,IAAM,CAAC,GAClBC,EAAM,KAAKD,CAAG,IAEX,MAAM,KAAK,IAAI,IAAIC,CAAK,CAAC;AACpC;AAEO,MAAMK,KAAa,CAACC,MAAgC;AACvD,QAAMhP,IAAKiP,GAAA,GACLC,IAAcZ,EAAA,GACda,IAAiB1O,EAAQ,MAAM+N,GAAsBQ,EAAW,SAASA,EAAW,KAAK,GAAG,CAACA,EAAW,SAASA,EAAW,KAAK,CAAC,GAClII,IAAUJ,EAAW,UAAUA,EAAW;AAEhD,SACI,gBAAAT,EAAC,UAAA,EAAO,WAAU,iHACd,UAAA;AAAA,IAAA,gBAAA7N,EAAC,KAAA,EACG,UAAA,gBAAAA;AAAA,MAACwO,EAAY;AAAA,MAAZ;AAAA,QACI,GAAGF;AAAA,QACJ,OAAOA,EAAW;AAAA,QAClB,QACIA,EAAW,gBAAgB,MAAM,QAAQA,EAAW,KAAK,IACrD,gBAAAT,EAACc,GAAA,EACG,UAAA;AAAA,UAAA,gBAAA3O,EAAC,SAAA,EAAM,SAASV,GAAK,UAAAkP,EAAY,4BAA2B;AAAA,UAC5D,gBAAAxO;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,IAAAV;AAAA,cACA,OAAOgP,EAAW;AAAA,cAClB,WAAU;AAAA,cACV,UAAU,CAACM,MAAM;AACb,gBAAAN,EAAW,eAAe,OAAOM,EAAE,OAAO,KAAK,CAAC;AAAA,cAAA;AAAA,cAGnD,UAAAN,EAAW,MAAM,IAAI,CAAClO,MACnB,gBAAAJ,EAAC,UAAA,EAAuC,OAAAI,GACnC,UAAAA,EAAA,GADQ,kBAAkBA,CAAK,EAEpC,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UACK;AAAA,QAAA,EAAA,CACd,IACA;AAAA,MAAA;AAAA,IAAA,GAGhB;AAAA,IACA,gBAAAJ,EAAC,OAAA,EACG,UAAA,gBAAA6N,EAAC,MAAA,EAAG,WAAU,2BACT,UAAA;AAAA,MAAAS,EAAW,UAAU,IAClB,gBAAAtO,EAAC,MAAA,EACG,UAAA,gBAAAA,EAAC6O,KAAU,IAAIP,EAAW,UAAW,UAAkB,MAAK,YAAW,WAAU,IAC5E,UAAAE,EAAY,wBAAA,CACjB,GACJ,IACA;AAAA,MACHC,EAAe,IAAI,CAAC1F,MACbA,MAAM,OAAa,OAEnB,gBAAA/I,EAAC2O,GAAA,EACI,UAAA,OAAO5F,KAAM,6BACT,MAAA,EAAG,UAAA,OAAG,IAEP,gBAAA/I,EAAC,MAAA,EACG,UAAA,gBAAAA;AAAA,QAAC6O;AAAA,QAAA;AAAA,UACG,MAAM9F;AAAA,UACN,IAAIuF,EAAW,UAAW;AAAA,UAC1B,WAAW,iIAAiIvF,MAAMuF,EAAW,UAAU,gCAAgC,oBAAoB;AAAA,UAE1N,UAAAvF;AAAA,QAAA;AAAA,MAAA,EACL,CACJ,EAAA,GAZO,cAAcA,CAAC,EAc9B,CAEP;AAAA,MACA2F,IACG,gBAAA1O,EAAC,MAAA,EACG,UAAA,gBAAAA,EAAC6O,GAAA,EAAU,IAAIP,EAAW,UAAW,UAAkB,MAAK,QAAO,WAAU,IACxE,UAAAE,EAAY,qBACjB,GACJ,IACA;AAAA,IAAA,EAAA,CACR,EAAA,CACJ;AAAA,EAAA,GACJ;AAER,GCvFMM,KAAW,CAAC/L,MAA6B;AAC3C,QAAMgM,IAAYvQ,EAAuB,IAAI,GACvCwQ,IAAMxQ,EAAuB,IAAI,GACjC,CAACyQ,GAAWC,CAAY,IAAIrQ,EAAS,WAAW,GAChDsQ,IAAaF,MAAc,aAE3BG,IAAU,MAAMF,EAAa,WAAW,GAExCpH,IAAW,MAAM;AACnB,UAAMuH,IAAQL,EAAI,SACZM,IAASP,EAAU;AACzB,IAAIM,MAAU,QAAQC,MAAW,SACjCA,EAAO,MAAM,OAAO,IAAID,EAAM,wBAAwB,QAAQ,CAAC;AAAA,EAAA,GAG7DE,IAAU,MAAML,EAAa,aAAa;AAEhD,SAAAtL,EAAU,MAAM;AACZ,UAAMyL,IAAQL,EAAI;AAClB,QAAIK,MAAU,QAAQ,WAAW,KAAM;AACvC,IAAAvH,EAAA;AACA,UAAM0H,IAAW,IAAI,qBAAqB,CAACC,MAAYA,EAAQ,QAAQ3H,CAAQ,GAAG,EAAE,MAAM,SAAS,iBAAiB;AACpH,WAAA0H,EAAS,QAAQH,CAAK,GACf,MAAMG,EAAS,WAAA;AAAA,EAAW,GAClC,EAAE,GAGD,gBAAAxP;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAK+O;AAAA,MACL,cAAcQ;AAAA,MACd,cAAcH;AAAA,MACd,kBAAe;AAAA,MACf,OAAOD,IAAa,KAAO;AAAA,MAC3B,UAAUA,IAAa,KAAK;AAAA,MAC5B,WAAW,8HAA8HF,CAAS;AAAA,MAElJ,4BAAC,OAAA,EAAI,KAAAD,GAAU,WAAU,iBACpB,YAAM,SAAA,CACX;AAAA,IAAA;AAAA,EAAA;AAGZ,GAEaU,KAAM,CAACvN,GAAewN,GAAU/P,MAAgC;AACzE,QAAMgQ,IAAOhQ,EAAQ,MACfiQ,IAAUjQ,EAAQ;AACxB,2BACK+O,GAAA,EACI,UAAAiB,EAAK,IAAI,CAACE,GAAKC,MAAa;AACzB,UAAMC,IAAoB,GAAGD,CAAQ,IAAI5N,CAAK,IACxC/B,IAAa6P,GAAKN,GAAKG,EAAI,EAAS,GACpC7M,IAAkD6M,EAAI,SACtDb,IAAYa,EAAI,WAAW,aAAa,IACxCI,IAAcH,MAAa,KAAKnQ,EAAQ,SAASiQ,MAAY,IAC7DM,IAAQvQ,EAAQ;AACtB,WACI,gBAAAwQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGN,EAAI;AAAA,QACR,MAAK;AAAA,QACL,eAAaE;AAAA,QACb,KAAK,YAAY7N,CAAK,IAAI4N,CAAQ;AAAA,QAClC,WAAW,yPAAyPd,CAAS;AAAA,MAAA;AAAA,MAE5QiB,IACG,gBAAAlQ,EAAC8O,IAAA,EACG,UAAA,gBAAA9O,EAACmQ,GAAA,EAAM,KAAAL,GAAU,KAAAH,GAAU,UAAUxN,EAAA,CAAO,EAAA,CAChD,IACA;AAAA,MACJ,gBAAAnC,EAAC,QAAA,EAAK,WAAU,mDAAmD,YAAI,OAAM;AAAA,MAC7E,gBAAAA,EAAC,QAAA,EAAK,WAAU,YACX,UAAA6P,IACGQ,KACApN,IACA,gBAAAjD,EAAC2O,GAAA,EACG,UAAA,gBAAA3O,EAACiD,GAAA,EAAU,KAAA0M,GAAU,QAAAK,GAAgB,KAAAF,GAAU,UAAU3N,GAAO,OAAA/B,EAAA,CAAc,EAAA,CAClF,IAEA,gBAAAJ,EAAC2O,GAAA,EAAU,UAAA2B,GAAG,IAAIlQ,CAAK,IAAI,KAAKA,EAAA,CAAM,EAAA,CAE9C;AAAA,IAAA;AAAA,EACJ,CAEP,GACL;AAER;;;;ACnGa,WAAO,eAAemQ,GAAQ,OAAO,aAAY,EAAC,OAAM,SAAQ,CAAC;AAAE,UAAMjI,IAAE,CAACsG,GAAE4B,MAAI;AAAC,UAAG;AAAC,eAAO,KAAK5B,CAAC,EAAE,QAAQ4B,CAAC;AAAA,MAAC,SAAO7H,GAAE;AAAC,eAAO,QAAQ,IAAIA,CAAC;AAAA,MAAC;AAAA,IAAC,GAAEnH,IAAE,CAAAoN,MAAGA,KAAG,MAAK6B,IAAE,CAAA7B,MAAG;AAAC,YAAM4B,IAAE,OAAO5B;AAAE,aAAO4B,MAAI,YAAUA,MAAI,YAAUA,MAAI,aAAWhP,EAAEoN,CAAC;AAAA,IAAC,GAAE8B,IAAE,CAAC9B,GAAE4B,MAAI;AAAC,YAAM7H,IAAE6H,EAAE,QAAQ5B,CAAC;AAAE,UAAG;AAAC,eAAO,KAAK,MAAMjG,CAAC;AAAA,MAAC,QAAM;AAAC,eAAOA,KAAG;AAAA,MAAI;AAAA,IAAC,GAAEgI,IAAE,CAAA/B,MAAG,OAAO,KAAKA,CAAC,EAAE,OAAO,CAAC4B,GAAE7H,OAAK,EAAC,GAAG6H,GAAE,CAAC7H,CAAC,GAAE+H,EAAE/H,GAAEiG,CAAC,EAAC,IAAG,CAAA,CAAE,GAAEpC,IAAE,CAAAoC,MAAGA,aAAa,OAAKA,IAAE,OAAOA,KAAG,WAAS,IAAI,KAAK,oBAAI,SAAK,IAAEA,IAAE,KAAK,IAAEA,GAAEgC,IAAE,4BAA2BC,IAAE,MAAI,SAAS,WAAS,KAAG,CAAA,IAAG,SAAS,OAAO,MAAM,IAAI,EAAE,IAAI,CAAAL,MAAGA,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,CAACA,GAAE7H,OAAK6H,EAAE,mBAAmB7H,EAAE,CAAC,EAAE,KAAI,CAAE,CAAC,IAAE,mBAAmBA,EAAE,CAAC,EAAE,KAAI,CAAE,GAAE6H,IAAG,CAAA,CAAE,GAAE1H,IAAE,oBAAI,OAAI5E,IAAE,MAAI;AAAC,YAAM0K,IAAEiC,EAAC;AAAG,MAAA/H,EAAE,QAAQ,CAAA0H,MAAGA,EAAE5B,CAAC,CAAC;AAAA,IAAC,GAAEvE,IAAE,CAAC,EAAC,MAAK,WAAU,OAAM,CAAAuE,MAAG,WAAWpC,EAAEoC,EAAE,WAASgC,CAAC,CAAC,GAAE,GAAE,EAAC,MAAK,UAAS,OAAM,CAAAhC,MAAGA,EAAE,SAAO,WAAWpC,EAAEoC,EAAE,WAASgC,CAAC,CAAC,KAAG,GAAE,GAAE,EAAC,MAAK,QAAO,OAAM,CAAAhC,MAAG,QAAQA,EAAE,QAAM,GAAG,GAAE,GAAE,EAAC,MAAK,YAAW,OAAM,CAAAA,MAAG,YAAYA,EAAE,YAAU,QAAQ,GAAE,GAAE,EAAC,MAAK,aAAY,OAAM,CAAAA,MAAG,GAAGA,EAAE,aAAW,KAAG,WAAS,EAAE,GAAE,GAAE,EAAC,MAAK,UAAS,OAAM,CAAAA,MAAG;AAAC,YAAM4B,IAAE5B,EAAE,UAAQ;AAAG,aAAO4B,MAAI,KAAG,KAAG,UAAU5B,EAAE,cAAY,MAAI,EAAE,GAAG4B,CAAC;AAAA,IAAE,EAAC,GAAE,EAAC,MAAK,eAAc,OAAM,CAAA5B,MAAGA,EAAE,cAAY,gBAAc,GAAE,CAAC,GAAEkC,IAAE,EAAC,MAAKD,GAAE,UAAS,CAAAjC,OAAI9F,EAAE,IAAI8F,CAAC,GAAE,MAAI9F,EAAE,OAAO8F,CAAC,IAAG,gBAAe,MAAI9F,EAAE,MAAK,GAAG,KAAI,CAAA8F,MAAG,SAAS,OAAO,MAAM,GAAG,EAAE,KAAK,CAAA4B,MAAGA,EAAE,KAAI,EAAG,WAAW,GAAG5B,CAAC,GAAG,CAAC,GAAE,WAAU,MAAI;AAAC,eAAS,OAAO,MAAM,GAAG,EAAE,QAAQ,CAAAA,MAAG;AAAC,iBAAS,SAAOA,EAAE,QAAQ,OAAM,EAAE,EAAE,QAAQ,OAAM,cAAa,oBAAI,KAAI,GAAG,YAAW,CAAE,SAAS;AAAA,MAAC,CAAC,GAAE1K,EAAC;AAAA,IAAE,GAAE,KAAI,CAAA0K,MAAG;AAAC,YAAM4B,IAAEM,EAAE,KAAI,EAAGlC,CAAC;AAAE,UAAGpN,EAAEgP,CAAC,EAAE,QAAO;AAAK,UAAG;AAAC,eAAO,KAAK,MAAM,mBAAmBA,CAAC,CAAC;AAAA,MAAC,QAAM;AAAC,eAAOA;AAAA,MAAC;AAAA,IAAC,GAAE,QAAO,CAAA5B,MAAG;AAAC,eAAS,SAAO,GAAG,mBAAmBA,CAAC,CAAC,cAAa,oBAAI,KAAI,GAAG,YAAW,CAAE,IAAG1K,EAAC;AAAA,IAAE,GAAE,KAAI,CAAC0K,GAAE4B,GAAE7H,IAAE,CAAA,MAAK;AAAC,YAAM2E,IAAEmD,EAAED,CAAC,IAAEA,IAAE,mBAAmB,KAAK,UAAUA,CAAC,CAAC,GAAEO,IAAE1G,EAAE,OAAO,CAAC4D,GAAE+C,OAAI;AAAC,cAAMC,KAAED,GAAE,MAAMrI,CAAC;AAAE,eAAOsI,OAAI,KAAGhD,IAAEA,EAAE,OAAOgD,EAAC;AAAA,MAAC,GAAE,CAAC,GAAG,mBAAmBrC,CAAC,CAAC,IAAItB,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG;AAAE,eAAS,SAAOyD,GAAE7M,EAAC;AAAA,IAAE,EAAC,GAAEgN,IAAE,CAAAtC,MAAG;AAAC,YAAM4B,IAAE,oBAAI,OAAI7H,IAAE,CAAA2E,MAAG;AAAC,QAAAsB,EAAC,EAAG,WAAWtB,CAAC;AAAE,cAAMyD,IAAEJ,EAAE/B,EAAC,CAAE;AAAE,QAAA4B,EAAE,QAAQ,CAAAvC,MAAGA,EAAE8C,CAAC,CAAC;AAAA,MAAC;AAAE,aAAM,EAAC,QAAOpI,GAAE,UAAS,CAAA2E,OAAIkD,EAAE,IAAIlD,CAAC,GAAE,MAAIkD,EAAE,OAAOlD,CAAC,IAAG,gBAAe,MAAIkD,EAAE,MAAK,GAAG,MAAK,CAAClD,IAAE,OAAKA,IAAEqD,EAAE/B,EAAC,CAAE,IAAEA,EAAC,GAAG,KAAI,CAAAtB,MAAG;AAAC,cAAMyD,IAAEnC,EAAC,EAAG,QAAQtB,CAAC;AAAE,eAAM,CAAC9L,EAAEuP,CAAC;AAAA,MAAC,GAAE,WAAU,MAAI;AAAC,QAAAzI,EAAEsG,EAAC,GAAGjG,CAAC,GAAE6H,EAAE,QAAQ,CAAAlD,MAAGA,EAAEsB,EAAC,CAAE,CAAC;AAAA,MAAC,GAAE,KAAI,CAAAtB,MAAGoD,EAAEpD,GAAEsB,EAAC,CAAE,GAAE,KAAI,CAACtB,GAAEyD,MAAI;AAAC,QAAAnC,EAAC,EAAG,QAAQtB,GAAE,KAAK,UAAUyD,CAAC,CAAC,GAAEP,EAAE,QAAQ,CAAAvC,MAAGA,EAAEW,EAAC,CAAE,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC,GAAEuC,IAAED,EAAE,MAAI,OAAO,cAAc,GAAEE,IAAEF,EAAE,MAAI,OAAO,YAAY;AAAE,IAAAX,EAAA,SAAeO,GAAEP,EAAA,eAAqBa,GAAEb,EAAA,iBAAuBY,GAAEZ,EAAA,gBAAsBW;AAAA;;;ACax1E,MAAMG,KAAW,CAAiBvB,MAAgBA,EAAI,eAAeA,EAAI,SAAUA,EAAI,IAOjFwB,KAAmB,CAAiB1B,MAC7CA,EAAK,IAAI,CAAC2B,OAAS;AAAA,EACf,OAAOA,EAAI;AAAA,EACX,OAAQA,EAAI,SAASA,EAAI,eAAgBA,EAAI;AACjD,EAAE;AAEC,IAAKC,sBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,SAAS,UACTA,EAAA,OAAO,QAJCA,IAAAA,KAAA,CAAA,CAAA;AAOL,MAAMC,KAAgB,CAAC3Q,MAA6BA,EAAM,SAAS,WAAWA,EAAM,gBAAgBA,EAAM,OAuGpG4Q,KAAgB,CAAiB5J,MAA6C;AACvF,MAAIkG,IAAkB,CAAA;AAKtB,SAAAlG,EAAS,EAAE,KAJ2B,CAACxI,GAAIqS,GAAOjU,MAAYsQ,EAAM,KAAK,EAAE,GAAGtQ,GAAS,IAAA4B,GAAI,OAAAqS,EAAA,CAAc,GAIzF,QAH4B,CAACrS,MAAQ0O,IAAQA,EAAM,OAAO,CAACjF,MAAMA,EAAE,OAAOzJ,CAAE,GAGpE,QAFoB,MAAM,MAAM,KAAK0O,CAAK,GAElC,QADY,CAAClF,MAAOkF,IAAQ,MAAM,KAAKA,EAAM,OAAOlF,CAAC,CAAC,GAC9C,GACjCkF;AACX,GAUM4D,KAAO,CAAA,GAEPC,KAAY,CAAiBjC,GAAgBkC,MAAqB;AACpE,MAAI,CAAC,MAAM,QAAQA,CAAK,EAAG,QAAOlC;AAClC,QAAMmC,IAAW,IAAI,IAAID,EAAM,IAAI,CAAC/I,MAAMA,EAAE,EAAE,CAAC;AAC/C,MAAI,CAAC6G,EAAK,MAAM,CAAC7G,MAAMgJ,EAAS,IAAIhJ,EAAE,EAAE,CAAC;AACrC,WAAO6G;AAEX,QAAMzF,IAAM,IAAI,IAAIyF,EAAK,IAAI,CAAC7G,MAAM,CAACA,EAAE,IAAIA,CAAC,CAAC,CAAC;AAC9C,SAAO+I,EAAM,IAAI,CAACE,GAAM7P,MAAU;AAC9B,UAAM8P,IAAW9H,EAAI,IAAI6H,EAAK,EAAE;AAChC,WAAIC,MAAa,SAAkBrC,EAAKzN,CAAK,IACtC8P;AAAA,EAAA,CACV;AACL,GAEaC,KAAsB,CAAiBC,GAAcvC,GAAgBlS,IAAoCkU,OAAS;AAC3H,QAAM7E,IAA+BqF,OAAU,OAAQC,GAAAA,aAAa,IAAI,qBAAqBF,CAAI,EAAE,KAAyB,MACtH,CAACG,GAAOC,CAAQ,IAAIC;AAAA,IACtB;AAAA,MACI,MAAAL;AAAA,MACA,QAAQzU,EAAQ,UAAUqP,GAAM,UAAU,CAAA;AAAA,MAC1C,SAASrP,EAAQ,WAAWqP,GAAM,WAAW,CAAA;AAAA,MAC7C,SAASrP,EAAQ,WAAWqP,GAAM,WAAW,CAAA;AAAA,MAC7C,MAAM8E,GAAUjC,GAAM7C,GAAM,IAAI;AAAA,IAAA;AAAA,IAEpC,CAAC0F,MAAQ;AACL,YAAMC,IAAY,CAACC,MAA8C;AAC7D,cAAMC,IAAOH,EAAI,MAAA,GACXvR,IAAS,EAAE,GAAG0R,GAAM,GAAGD,EAAA;AAC7B,eAAKP,QAASC,GAAAA,aAAa,IAAI,qBAAqBO,EAAK,IAAI,IAAI1R,CAAM,GAChEA;AAAA,MAAA;AAEX,aAAAwR,EAAUD,EAAI,OAAO,GACd;AAAA,QACH,KAAK,CAACI,MAA6BH,EAAUG,CAAO;AAAA,MAAA;AAAA,IACxD;AAAA,EACJ;AAEJ,SAAO,EAAE,GAAGP,GAAO,GAAGC,GAAU,MAAAJ,EAAA;AACpC,GAEaW,KAAkB,CAAmBC,MAAmC;AACjF,QAAMC,IAAYC,GAAaF,CAAO,GAChC/D,IAAMxQ,EAA4B,IAAI,GACtC0U,IAAWnU;AAAA,IACb,CAAC6Q,MAAmB;AAChB,MAAAoD,EAAU,QAAQpD,CAAI,GACtBA,EAAK,QAAQ,CAAC7G,MAAM;AAChB,cAAMD,IAAIkG,EAAI,QAAS,cAAc,wBAAwBjG,EAAE,EAAE,IAAI;AACrE,QAAKD,MACLA,EAAE,MAAM,QAAQ;AAAA,MAAA,CACnB;AAAA,IAAA;AAAA,IAEL,CAACkK,CAAS;AAAA,EAAA;AAEd,SAAO,CAAChE,GAAKkE,CAAQ;AACzB,GAEaC,KAAsB,MAAOf,OAAU,SAAa,SAAS,cAAc,+BAA+B,GCjMjHgB,KACF,CAAgBhH,MAChB,CAAClI,GAAQC,MACLiI,EAAO,OAAe,CAACC,GAAKtD,MAAM;AAC9B,QAAMwC,IAAUxC,EAAE,SAAS,SAAS,KAAK,GACnCwD,IAAWxD,EAAE,OACbyD,IAAItI,EAAEqI,CAAQ,IAAIpI,EAAEoI,CAAQ,IAAIhB,IAAUrH,EAAEqI,CAAQ,IAAIpI,EAAEoI,CAAQ,IAAI,CAAChB,IAAU;AACvF,SAAOc,MAAQ,IAAIA,IAAMG;AAC7B,GAAG,CAAC,GAECC,KAAY,CAAgB5E,GAAYuE,MAAwBvE,EAAM,SAASuL,GAAehH,CAAM,CAAC,GAW5GD,KAAe,CAAgB2D,GAAauD,GAAerR,OAA6B;AAAA,EAC1F,OAAAqR;AAAA,EACA,IAAIC,GAAA;AAAA,EACJ,MAAMtR;AAAA,EACN,OAAO8N,EAAI;AACf,IAEayD,KAAO,CAAgBxQ,MAAoB;AACpD,QAAMyL,IAAcZ,EAAA,GAEd4F,IAAS;AAAA,IACX,KAAK;AAAA,MAAE,OAAOhF,EAAY;AAAA,MAAc,OAAO;AAAA;AAAA,IAAA;AAAA,IAC/C,MAAM;AAAA,MAAE,OAAOA,EAAY;AAAA,MAAe,OAAO;AAAA;AAAA,IAAA;AAAA,EAAW,GAG1DiF,IAA8B,CAACD,EAAO,KAAKA,EAAO,IAAI,GAEtDE,IAAc,MAAM;AACtB,UAAM5D,IAAM/M,EAAM,KAAK,CAAC;AACxB,IAAI+M,KAAK/M,EAAM,IAAI,CAAC6P,MAAS,CAAC,GAAGA,GAAMzG,GAAa2D,GAAK0D,EAAO,IAAI,OAAOA,EAAO,IAAI,KAAK,CAAC,CAAC;AAAA,EAAA,GAG3FG,IAAc,CAACrU,MAAe,CAACsP,MAA4C;AAC7E,UAAMxO,IAAQwO,EAAE,OAAO;AACvB,IAAA7L,EAAM,IAAI,CAAC6P,MAASA,EAAK,IAAI,CAAC7J,MAAOA,EAAE,OAAOzJ,IAAK,EAAE,GAAGyJ,GAAG,OAAA3I,EAAA,IAA6B2I,CAAE,CAAC;AAAA,EAAA,GAGzF6K,IAAkB,CAACtU,MAAe,CAACsP,MAA4C;AACjF,UAAMiF,IAAOjF,EAAE,OAAO;AACtB,IAAA7L,EAAM,IAAI,CAAC6P,MAASA,EAAK,IAAI,CAAC7J,MAAOA,EAAE,OAAOzJ,IAAK,EAAE,GAAGyJ,GAAG,MAAA8K,EAAA,IAAwB9K,CAAE,CAAC;AAAA,EAAA,GAGpF+K,IAAW,CAAClF,MAA2C;AACzD,UAAMtP,IAAKsP,EAAE,cAAc,QAAQ,MAAM;AACzC,IAAA7L,EAAM,IAAI,CAAC6P,MAASA,EAAK,OAAO,CAAC7J,MAAMA,EAAE,OAAOzJ,CAAE,CAAC;AAAA,EAAA;AAGvD,2BACKqP,GAAA,EACG,UAAA,gBAAA3O;AAAA,IAAC+T;AAAA,IAAA;AAAA,MACG,OAAOvF,EAAY;AAAA,MACnB,SACI,gBAAAX,EAAC,QAAA,EAAK,WAAU,6CACZ,UAAA;AAAA,QAAA,gBAAA7N,EAACgU,IAAA,EAAgB,MAAM,GAAA,CAAI;AAAA,QAC1BxF,EAAY;AAAA,QAAsB;AAAA,QAAEzL,EAAM,QAAQ,WAAW,IAAI,KAAK,KAAKA,EAAM,QAAQ,MAAM;AAAA,MAAA,GACpG;AAAA,MAGJ,UAAA,gBAAA8K,EAAC,MAAA,EAAG,WAAU,kBACT,UAAA;AAAA,QAAA9K,EAAM,QAAQ,IAAI,CAACgJ,MAEZ,gBAAA8B,EAAC,MAAA,EAAsC,WAAU,0BAC7C,UAAA;AAAA,UAAA,gBAAA7N;AAAA,YAACiU;AAAA,YAAA;AAAA,cACG,SAASlR,EAAM;AAAA,cACf,OAAOgJ,EAAO;AAAA,cACd,UAAU4H,EAAY5H,EAAO,EAAE;AAAA,cAC/B,OAAOyC,EAAY;AAAA,cACnB,aAAaA,EAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAE7B,gBAAAxO;AAAA,YAACiU;AAAA,YAAA;AAAA,cACG,UAAUL,EAAgB7H,EAAO,EAAE;AAAA,cACnC,OAAOA,EAAO;AAAA,cACd,SAAS0H;AAAA,cACT,OAAOjF,EAAY;AAAA,cACnB,aAAaA,EAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAE7B,gBAAAxO,EAAC,UAAA,EAAO,WAAU,QAAO,WAAS+L,EAAO,IAAI,SAAS+H,GAClD,4BAACI,GAAA,EAAW,WAAU,eAAc,MAAM,IAAI,EAAA,CAClD;AAAA,QAAA,EAAA,GAjBK,iBAAiBnI,EAAO,EAAE,EAkBnC,CAEP;AAAA,QACD,gBAAA/L,EAAC,QACG,UAAA,gBAAA6N,EAAC,UAAA,EAAO,MAAK,UAAS,SAAS6F,GAAa,WAAU,wCAClD,UAAA;AAAA,UAAA,gBAAA1T,EAACmU,IAAA,EAAS,MAAM,GAAA,CAAI;AAAA,UAAE;AAAA,UAAE3F,EAAY;AAAA,QAAA,EAAA,CACxC,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA,GAER;AAER,GAIa4F,KAAa,CAAgBrR,MAA8B;AACpE,QAAMsR,IAAezG,EAAA,GACf,CAAC0G,GAAQC,CAAS,IAAI1V,EAAS,MAAM;AACvC,UAAMkN,IAAShJ,EAAM,QAAQ,KAAK,CAAC+I,MAASA,EAAK,UAAU/I,EAAM,IAAI,EAAE;AACvE,WAAOgJ,IAASA,EAAO,OAAO;AAAA,EAAA,CACjC,GAEKyI,IAAU,MAAMD;AAAA,IAAU,CAAC3B,MAAUA,MAAS,cAAkB,QAAYA,MAAS,QAAY,SAAa;AAAA;AAAA,EAAA;AAEpH,EAAAhP,EAAU,MAAM;AACZ,IAAAb,EAAM,WAAW,CAAC6P,MAAS;AACvB,UAAI0B,MAAW,YAAiB,QAAO1B,EAAK,OAAO,CAAC7J,MAAMA,EAAE,UAAUhG,EAAM,IAAI,EAAE;AAClF,YAAM0R,IAAY7B,EAAK,UAAU,CAACpG,MAAOA,EAAE,UAAqBzJ,EAAM,IAAI,EAAE,GACtEgJ,IAASI,GAAapJ,EAAM,KAAKuR,GAAQA,CAAM;AACrD,aAAIG,MAAc,KAAW,CAAC,GAAG7B,GAAM7G,CAAM,KAC7C6G,EAAK6B,CAAS,IAAI1I,GACX,CAAC,GAAG6G,CAAI;AAAA,IAAA,CAClB;AAAA,EAAA,GACF,CAAC0B,GAAQvR,EAAM,GAAG,CAAC;AAEtB,QAAM2R,IAAU,GAAG3R,EAAM,IAAI,EAAE,cAEzBsQ,IAAQhC,GAAStO,EAAM,GAAG;AAEhC,SACI,gBAAA8K,EAAC,YAAO,mBAAiB6G,GAAS,WAAU,6BAA4B,SAAAF,GAAkB,MAAK,UAC3F,UAAA;AAAA,IAAA,gBAAA3G,EAAC,QAAA,EAAK,IAAI6G,GAAS,WAAU,WACxB,UAAA;AAAA,MAAAL,EAAa;AAAA,MAAuB;AAAA,MAAEhB;AAAA,IAAA,GAC3C;AAAA,IACCiB,MAAW,QAAY,gBAAAtU,EAAC2U,IAAA,EAAc,MAAM,IAAI,IAAK;AAAA,IACrDL,MAAW,SAAa,gBAAAtU,EAAC4U,IAAA,EAAgB,MAAM,IAAI,IAAK;AAAA,IACxDN,MAAW,cAAkB,gBAAAtU,EAACgU,IAAA,EAAgB,MAAM,IAAI,IAAK;AAAA,EAAA,GAClE;AAER,GC5JMa,KAAexW,GAAiC,EAAE,GAE3CyW,KAAgBD,GAAa,UAE7BE,KAAW,MAAMvV,EAAWqV,EAAY,GCgCxCG,KAAsB,CAC/BlE,GACApT,GACAuX,GACAC,IAAiC,CAAA,MACf;AAClB,QAAM/C,IAAOrB,EAAE,IACT+C,IAAO/C,EAAE,QAAQU,EAAQ,MACzB2D,IAAczX,EAAQmW,CAAI,KAAK,CAAA,GAC/BuB,IAAcD,EAAY,KAAK,CAACpM,MAAMA,EAAE,cAAc,CAAC,GAAG,SAASoM,EAAY,CAAC,GAAG,OACnFE,IAAYJ,EAAWG,CAAU;AACvC,SAAO,EAAE,IAAI9B,GAAA,GAAQ,WAAA+B,GAAW,OAAOhE,GAASP,CAAC,GAAG,MAAAqB,GAAM,MAAA0B,GAAM,OAAO,IAAI,GAAGqB,EAAA;AAClF,GAEaI,KAAe,MAAM;AAC9B,QAAM9G,IAAcZ,EAAA,GACdqH,IAAalV;AAAA,IACf,OACK;AAAA,MACG,UAAU;AAAA,QACN,OAAO;AAAA,QACP,OAAOyO,EAAY;AAAA,QACnB,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAAA;AAAA,MAEpB,IAAI,EAAE,OAAO,MAAM,OAAOA,EAAY,mBAAmB,QAAQ,KAAA;AAAA,MACjE,OAAO,EAAE,OAAO,SAAS,OAAOA,EAAY,sBAAsB,QAAQ,MAAA;AAAA,MAC1E,aAAa;AAAA,QACT,OAAO;AAAA,QACP,OAAOA,EAAY;AAAA,QACnB,QAAQ;AAAA,MAAA;AAAA,MAEZ,UAAU,EAAE,OAAO,YAAY,OAAOA,EAAY,yBAAyB,QAAQ,KAAA;AAAA,MACnF,aAAa,EAAE,OAAO,eAAe,OAAOA,EAAY,4BAA4B,QAAQ,KAAA;AAAA,MAC5F,YAAY,EAAE,OAAO,cAAc,OAAOA,EAAY,2BAA2B,QAAQ,aAAA;AAAA,MACzF,UAAU,EAAE,OAAO,YAAY,OAAOA,EAAY,yBAAyB,QAAQ,WAAA;AAAA,IAAW;AAAA,IAEtG,CAACA,CAAW;AAAA,EAAA;AAkBhB,SAAO,EAAE,SAfOzO;AAAA,IACZ,OAAyB;AAAA,MACrB,CAACyR,EAAQ,IAAI,GAAG;AAAA,QACZyD,EAAW;AAAA,QACXA,EAAW;AAAA,QACXA,EAAW;AAAA,QACXA,EAAW;AAAA,QACXA,EAAW;AAAA,QACXA,EAAW;AAAA,MAAA;AAAA,MAEf,CAACzD,EAAQ,OAAO,GAAG,CAACyD,EAAW,IAAIA,EAAW,KAAK;AAAA,MACnD,CAACzD,EAAQ,MAAM,GAAG,CAACyD,EAAW,IAAIA,EAAW,OAAOA,EAAW,aAAaA,EAAW,QAAQ;AAAA,IAAA;AAAA,IAEnG,CAACA,CAAU;AAAA,EAAA,GAEG,YAAAA,EAAA;AACtB,GAEaM,KAAS,CAAmBxS,MAAoB;AACzD,QAAMyL,IAAcZ,EAAA,GACd4H,IAAYF,GAAA,GAEZG,IAAc,MAAM;AACtB,UAAM3F,IAAM/M,EAAM,KAAK,GAAG,CAAC;AAC3B,IAAAA,EAAM,IAAI,CAAC6P,MAAS,CAAC,GAAGA,GAAMoC,GAAoBlF,GAAK0F,EAAU,SAASA,EAAU,UAAU,CAAC,CAAC;AAAA,EAAA,GAG9FE,IAAmB,CAAC9G,MAA4C;AAClE,UAAM+G,IAAY/G,EAAE,OAAO,QAAQ,MAAM,IACnCgH,IAAQhH,EAAE,OAAO;AACvB,IAAA7L,EAAM;AAAA,MAAI,CAAC6P,MACPA,EAAK,IAAI,CAAC7J,MAAM;AACZ,YAAI4M,MAAc5M,EAAE,GAAI,QAAOA;AAC/B,cAAM+G,IAAM/M,EAAM,KAAK,KAAK,CAACgG,MAAM6M,MAAU7M,EAAE,EAAE;AACjD,eAAOiM,GAAoBlF,GAAK0F,EAAU,SAASA,EAAU,YAAY,EAAE,OAAO,IAAI;AAAA,MAAA,CACzF;AAAA,IAAA;AAAA,EACL,GAGEK,IAAoB,CAACjH,MAA4C;AACnE,UAAMtP,IAAKsP,EAAE,OAAO,QAAQ,MAAM,IAC5BkH,IAAWlH,EAAE,OAAO;AAC1B,IAAA7L,EAAM;AAAA,MAAI,CAAC6P,MACPA,EAAK;AAAA,QAAI,CAAC7J,MACNA,EAAE,OAAOzJ,IACH;AAAA,UACI,GAAGyJ;AAAA,UACH,WAAWyM,EAAU,WAAWM,CAAyB;AAAA,QAAA,IAE7D/M;AAAA,MAAA;AAAA,IACV;AAAA,EACJ,GAGE+K,IAAW,CAAClF,MAA2C;AACzD,UAAMtP,IAAKsP,EAAE,cAAc,QAAQ,MAAM;AACzC,IAAA7L,EAAM,IAAI,CAAC6P,MAASA,EAAK,OAAO,CAAC7J,MAAMA,EAAE,OAAOzJ,CAAE,CAAC;AAAA,EAAA,GAGjDyW,IAAgB,CAACnH,MAA2C;AAC9D,UAAMtP,IAAKsP,EAAE,OAAO,QAAQ,MAAM,IAC5BxO,IAAQqR,GAAc7C,EAAE,MAAM;AACpC,IAAA7L,EAAM,IAAI,CAAC6P,MAASA,EAAK,IAAI,CAAC7J,MAAOA,EAAE,OAAOzJ,IAAK,EAAE,GAAGyJ,GAAG,OAAA3I,EAAA,IAAU2I,CAAE,CAAC;AAAA,EAAA;AAG5E,2BACK4F,GAAA,EACG,UAAA,gBAAA3O;AAAA,IAAC+T;AAAA,IAAA;AAAA,MACG,OAAK;AAAA,MACL,OAAOvF,EAAY;AAAA,MACnB,SACI,gBAAAX,EAAC,QAAA,EAAK,WAAU,6CACZ,UAAA;AAAA,QAAA,gBAAA7N,EAACgW,IAAA,EAAe,MAAM,GAAA,CAAI;AAAA,QACzBxH,EAAY;AAAA,QAAiB;AAAA,QAAEzL,EAAM,QAAQ,WAAW,IAAI,KAAK,KAAKA,EAAM,QAAQ,MAAM;AAAA,MAAA,GAC/F;AAAA,MAGJ,UAAA,gBAAA8K,EAAC,MAAA,EAAG,WAAU,kBACT,UAAA;AAAA,QAAA9K,EAAM,QAAQ,IAAI,CAACmG,MAAW;AAC3B,gBAAMxL,IAAU8X,EAAU,QAAQtM,EAAO,IAAI;AAC7C,iBACI,gBAAA2E,EAAC,MAAA,EAAsC,WAAU,0BAC7C,UAAA;AAAA,YAAA,gBAAA7N;AAAA,cAACiU;AAAA,cAAA;AAAA,gBACG,SAASlR,EAAM;AAAA,gBACf,OAAOyL,EAAY;AAAA,gBACnB,aAAaA,EAAY;AAAA,gBACzB,OAAOtF,EAAO;AAAA,gBACd,WAASA,EAAO;AAAA,gBAChB,UAAUwM;AAAA,cAAA;AAAA,YAAA;AAAA,YAEd,gBAAA1V;AAAA,cAACiU;AAAA,cAAA;AAAA,gBACG,WAAS/K,EAAO;AAAA,gBAChB,UAAU2M;AAAA,gBACV,OAAO3M,EAAO,UAAU;AAAA,gBACxB,SAAAxL;AAAA,gBACA,OAAO8Q,EAAY;AAAA,gBACnB,aAAaA,EAAY;AAAA,cAAA;AAAA,YAAA;AAAA,YAE7B,gBAAAxO;AAAA,cAACiW;AAAA,cAAA;AAAA,gBACG,cAAa;AAAA,gBACb,WAAS/M,EAAO;AAAA,gBAChB,UAAU6M;AAAA,gBACV,OAAO7M,EAAO;AAAA,gBACd,MAAMA,EAAO;AAAA,gBACb,OAAOsF,EAAY;AAAA,gBACnB,aAAaA,EAAY;AAAA,cAAA;AAAA,YAAA;AAAA,YAE7B,gBAAAxO,EAAC,SAAI,WAAU,yCACX,4BAAC,UAAA,EAAO,WAASkJ,EAAO,IAAI,MAAK,UAAS,SAAS4K,GAC/C,4BAACI,GAAA,EAAW,WAAU,eAAc,MAAM,GAAA,CAAI,GAClD,EAAA,CACJ;AAAA,UAAA,EAAA,GA9BK,iBAAiBhL,EAAO,EAAE,EA+BnC;AAAA,QAAA,CAEP;AAAA,QACD,gBAAAlJ,EAAC,QACG,UAAA,gBAAA6N,EAAC,UAAA,EAAO,MAAK,UAAS,SAAS4H,GAAa,WAAU,wCAClD,UAAA;AAAA,UAAA,gBAAAzV,EAACmU,IAAA,EAAS,MAAM,GAAA,CAAI;AAAA,UAAE;AAAA,UAAE3F,EAAY;AAAA,QAAA,EAAA,CACxC,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA,GAER;AAER,GAQa0H,KAAqB,CAAmB,EAAE,QAAAhN,GAAQ,UAAA4K,GAAU,KAAAqC,QAAsC;AAC3G,QAAM3H,IAAcZ,EAAA,GACd4H,IAAYF,GAAA,GAEZO,IAAoB,CAACjH,MAA4C;AACnE,UAAMkH,IAAWlH,EAAE,OAAO,OACpBtP,IAAKsP,EAAE,OAAO,QAAQ,MAAM;AAClC,IAAAuH;AAAA,MAAI,CAACvD,MACDA,EAAK;AAAA,QAAI,CAAC7J,MACNA,EAAE,OAAOzJ,IACH;AAAA,UACI,GAAGyJ;AAAA,UACH,WAAWyM,EAAU,WAAWM,CAAyB;AAAA,QAAA,IAE7D/M;AAAA,MAAA;AAAA,IACV;AAAA,EACJ,GAGEgN,IAAgB,CAACnH,MAA2C;AAC9D,UAAMtP,IAAKsP,EAAE,OAAO,QAAQ,MAAM,IAC5BxO,IAAQqR,GAAc7C,EAAE,MAAM;AACpC,IAAAuH,EAAI,CAACvD,MAASA,EAAK,IAAI,CAAC7J,MAAOA,EAAE,OAAOzJ,IAAK,EAAE,GAAGyJ,GAAG,OAAA3I,EAAA,IAAU2I,CAAE,CAAC;AAAA,EAAA;AAGtE,SACI,gBAAA8E,EAAC,OAAA,EAAI,WAAU,4CACX,UAAA;AAAA,IAAA,gBAAA7N;AAAA,MAACiU;AAAA,MAAA;AAAA,QACG,WAAS/K,EAAO;AAAA,QAChB,UAAU2M;AAAA,QACV,OAAO3M,EAAO,UAAU;AAAA,QACxB,SAASsM,EAAU,QAAQtM,EAAO,IAAI;AAAA,QACtC,OAAOsF,EAAY;AAAA,QACnB,aAAaA,EAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAE7B,gBAAAxO;AAAA,MAACiW;AAAA,MAAA;AAAA,QACG,cAAa;AAAA,QACb,WAAS/M,EAAO;AAAA,QAChB,UAAU6M;AAAA,QACV,OAAO7M,EAAO;AAAA,QACd,MAAMA,EAAO;AAAA,QACb,OAAOsF,EAAY;AAAA,QACnB,aAAaA,EAAY;AAAA,MAAA;AAAA,IAAA;AAAA,sBAE5B,UAAA,EAAO,SAASsF,GAAU,WAAS5K,EAAO,IAAI,MAAK,UAAS,WAAU,QACnE,UAAA,gBAAAlJ,EAACkU,GAAA,EAAW,WAAU,eAAc,MAAM,IAAI,EAAA,CAClD;AAAA,EAAA,GACJ;AAER,GCzPMkC,KAAkB,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAA,GAcvDC,KAAc,CAAmBtT,MAA+B;AAClE,QAAMuT,IAASC,GAAA,GACT/H,IAAcZ,EAAA,GACd4I,IAAazT,EAAM,QAAQ,OAAO,CAACgG,MAAMA,EAAE,SAAShG,EAAM,OAAO,EAAE,GACnE0T,IAAaD,EAAW,SAAS,GACjCE,IAAmB3T,EAAM,OAAO,aAAauT,EAAO,MAAM,WAAW,IACrEK,IAAqB5T,EAAM,OAAO,eAAeuT,EAAO,MAAM,WAAW,IACzEd,IAAYF,GAAA,GACZsB,IAAaH,IAAaI,KAAkBC,IAC5CC,IAAKvY,EAAoC,IAAI,GAE7CsV,IAAW,CAAClF,MAA2C;AACzD,UAAMtP,IAAKsP,EAAE,cAAc,QAAQ,MAAM;AACzC,WAAO7L,EAAM,WAAW,CAAC6P,MAASA,EAAK,OAAO,CAAC7J,MAAMA,EAAE,OAAOzJ,CAAE,CAAC;AAAA,EAAA,GAG/D0X,IAAUjY,EAAY,CAACkY,MAAqC;AAC9D,QAAIA,MAAQ,KAAM;AAClB,IAAAF,EAAG,UAAUE;AACb,UAAMC,IAAa,IAAI,gBAAA;AACvB,WAAAD,EAAI;AAAA,MACA;AAAA,MACA,CAACrI,MAAM;AAEH,YADeA,EAAE,OACN,QAAQ,SAAS;AACxB,iBAAAA,EAAE,gBAAA,GACKA,EAAE,yBAAA;AAAA,MACb;AAAA,MAEJ,EAAE,QAAQsI,EAAW,OAAA;AAAA,IAAO,GAEzB,MAAMA,EAAW,MAAA;AAAA,EAAM,GAC/B,EAAE,GAECC,IAAYpU,EAAM,QAAQ,KAAK,CAACgG,MAAMhG,EAAM,OAAO,OAAOgG,EAAE,KAAK,GAEjEqO,IAAYD,GAAW,OAAgBA,EAAU,SAASlL,GAAM,MAAM,cAAc,eAAtD,QAE9BoH,IAAQhC,GAAStO,EAAM,MAAM;AAEnC,SACI,gBAAA8K;AAAA,IAACwJ;AAAAA,IAAA;AAAA,MACI,GAAItU,EAAM,OAAO;AAAA,MAClB,IAAG;AAAA,MACH,KAAKiU;AAAA,MACL,SAAS;AAAA,MACT,kBAAgB;AAAA,MAChB,mBAAiB;AAAA,MACjB,MAAK;AAAA,MACL,aAAWI;AAAA,MACX,OAAOrU,EAAM;AAAA,MACb,aAAWA,EAAM;AAAA,MACjB,oBAAkBA,EAAM,OAAO;AAAA,MAC/B,WAAW,EAAE,QAAQ,WAAA;AAAA,MACrB,WAAW,iMAAiMA,EAAM,OAAO,SAAS,aAAa,EAAE;AAAA,MAEjP,UAAA;AAAA,QAAA,gBAAA/C;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAW,0FAA0F+C,EAAM,SAAS,kBAAkB,EAAE,IAAIA,EAAM,UAAU,IAAI,kBAAkB,EAAE;AAAA,YAEpL,UAAA,gBAAA8K,EAAC,QAAA,EAAK,WAAU,2BACX,UAAA;AAAA,cAAA9K,EAAM,gBAAgB4T,IACnB,gBAAA3W;AAAA,gBAAC+T;AAAA,gBAAA;AAAA,kBACG,OAAK;AAAA,kBACL,2BACK,QAAA,EACG,UAAA;AAAA,oBAAA,gBAAAlG,EAAC,QAAA,EAAK,IAAI,GAAG9K,EAAM,OAAO,EAAE,2BAA2B,WAAU,WAC5D,UAAA;AAAA,sBAAAyL,EAAY;AAAA,sBAA+B;AAAA,sBAAE6E;AAAA,oBAAA,GAClD;AAAA,oBACA,gBAAArT,EAAC4W,KAAW,mBAAiB,GAAG7T,EAAM,OAAO,EAAE,2BAA2B,MAAM,GAAA,CAAI;AAAA,kBAAA,GACxF;AAAA,kBAEJ,OACI,gBAAA8K,EAAC,QAAA,EAAK,WAAU,WACX,UAAA;AAAA,oBAAAW,EAAY;AAAA,oBAA+B;AAAA,oBAAC,gBAAAxO,EAAC,QAAA,EAAK,WAAU,eAAe,UAAAqT,EAAA,CAAM;AAAA,kBAAA,GACtF;AAAA,kBAGJ,UAAA,gBAAAxF,EAAC,MAAA,EAAG,WAAU,eACT,UAAA;AAAA,oBAAA2I,EAAW,WAAW,IAAI,OACvB,gBAAAxW,EAAC2O,GAAA,EACI,UAAA6H,EAAW,IAAI,CAACtN,MACb,gBAAAlJ,EAAC,MAAA,EAAqC,WAAU,QAC5C,4BAACkW,IAAA,EAAmB,UAAApC,GAAoB,QAAA5K,GAAgB,KAAKnG,EAAM,WAAA,CAAY,EAAA,GAD1E,gBAAgBmG,EAAO,EAAE,EAElC,CACH,GACL;AAAA,sCAEH,MAAA,EACG,UAAA,gBAAA2E;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACG,MAAK;AAAA,wBACL,WAAU;AAAA,wBACV,SAAS,MACL9K,EAAM;AAAA,0BAAW,CAAC6P,MACdA,EAAK,OAAOoC,GAAoBjS,EAAM,QAAQyS,EAAU,SAASA,EAAU,UAAU,CAAC;AAAA,wBAAA;AAAA,wBAI9F,UAAA;AAAA,0BAAA,gBAAAxV,EAACmU,IAAA,EAAS,MAAM,GAAA,CAAI;AAAA,0BAAE;AAAA,0BAAE3F,EAAY;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBAAA,EACxC,CACJ;AAAA,kBAAA,EAAA,CACJ;AAAA,gBAAA;AAAA,cAAA,IAEJ;AAAA,gCACH,QAAA,EAAK,WAAU,8CAA8C,UAAAzL,EAAM,OAAO,OAAM;AAAA,cAChFA,EAAM,gBAAgB2T,IACnB,gBAAA1W,EAACoU,MAAW,KAAKrR,EAAM,QAAQ,YAAYA,EAAM,YAAY,SAASA,EAAM,SAAS,IACrF;AAAA,YAAA,EAAA,CACR;AAAA,UAAA;AAAA,QAAA;AAAA,QAEHA,EAAM,SAAS,OACZ,gBAAA/C;AAAA,UAACkD,GAAO;AAAA,UAAP;AAAA,YACG,MAAK;AAAA,YACL,WAAS;AAAA,YACT,cAAY;AAAA,YACZ,cAAY;AAAA,YACZ,MAAK;AAAA,YACL,SAAS;AAAA,YACT,aAAa;AAAA,YACb,iBAAe;AAAA,YACf,SAAS;AAAA,YACT,kBAAgB;AAAA,YAChB,mBAAiB;AAAA,YACjB,aAAU;AAAA,YACV,OAAOH,EAAM,OAAO;AAAA,YACpB,iBAAAqT;AAAA,YACA,WAAU;AAAA,YACV,SAAS,CAACxH,MAAA;AAAM,cAAKA,EAAE,cAAc,MAAA;AAAA;AAAA,YACrC,WAAW,CAACA,MAAM;AACd,kBAAIA,EAAE,QAAQ,eAAeA,EAAE,QAAQ,cAAc;AACjD,oBAAImI,EAAG,YAAY,KAAM;AACzB,gBAAAA,EAAG,QAAQ,aAAa,gBAAgB,MAAM;AAC9C,sBAAMvW,IAAIuW,EAAG,QAAQ,sBAAA,EAAwB,OAEvCO,KADO1I,EAAE,WAAW,KAAK,OACTA,EAAE,QAAQ,cAAc,KAAK;AACnD,gBAAAmI,EAAG,QAAQ,MAAM,QAAQ,GAAG,KAAK,IAAIvW,IAAI8W,CAAK,CAAC;AAAA,cAAA;AAAA,YACnD;AAAA,YAEJ,eAAe,MAAM;AACjB,cAAIP,EAAG,YAAY,SACnBA,EAAG,QAAQ,MAAM,QAAQ;AAAA,YAAA;AAAA,YAE7B,QAAQ,CAAC5L,GAAUoM,MAAkB;AACjC,kBAAIR,EAAG,YAAY,KAAM;AACzB,cAAAA,EAAG,QAAQ,aAAa,gBAAgB,MAAM;AAC9C,oBAAMvW,IAAIuW,EAAG,QAAQ,sBAAA,EAAwB,OACvCO,IAAQC,EAAK,MAAM;AACzB,cAAAR,EAAG,QAAQ,MAAM,QAAQ,GAAG,KAAK,IAAIvW,IAAI8W,CAAK,CAAC;AAAA,YAAA;AAAA,UACnD;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAAA;AAIhB,GAEaE,KAAc,CAAmBzU,MAA+B;AACzE,QAAM,CAACiM,GAAKkE,CAAQ,IAAIJ,GAAgB/P,EAAM,OAAO;AACrD,SACI,gBAAA/C,EAACyX,IAAA,EAAc,QAAM,IAAC,IAAG,MAAK,MAAK,KAAI,MAAK,KAAI,KAAAzI,GAAU,YAAU,IAAC,MAAK,OAAM,cAAY,IAAC,WAAWkE,GAAU,QAAQnQ,EAAM,SAC5H,UAAA,gBAAA/C,EAAC0X,IAAA,EACI,UAAA3U,EAAM,QAAQ,IAAI,CAAC4U,GAAQxV,MACxB,gBAAAnC;AAAA,IAACqW;AAAA,IAAA;AAAA,MACG,OAAAlU;AAAA,MACA,QAAAwV;AAAA,MACA,SAAS5U,EAAM;AAAA,MACf,SAASA,EAAM;AAAA,MACf,SAASA,EAAM;AAAA,MACf,YAAYA,EAAM;AAAA,MAClB,YAAYA,EAAM;AAAA,MAClB,cAAcA,EAAM;AAAA,MACpB,cAAcA,EAAM;AAAA,MACpB,QAAQZ,MAAUY,EAAM,QAAQ,SAAS;AAAA,IAAA;AAAA,IACpC,qBAAqB4U,EAAO,EAAY;AAAA,EAAA,CAEpD,GACL,EAAA,CACJ;AAER,GClKMC,KAAYC,EAAM;AAAA,EACpB,CACI;AAAA,IACI,SAAAjY;AAAA,IACA,WAAAqP,IAAY;AAAA,IACZ,GAAGlM;AAAA,EAAA,GAIPiM,MAGI,gBAAAhP,EAAC,SAAA,EAAO,GAAI+C,GAAe,MAAK,YAAW,WAAW,gCAAgCkM,CAAS,IAAI,KAAAD,GAC/F,UAAA,gBAAAhP,EAAC0X,IAAA,EAAiB,UAAA3U,EAAM,UAAS,GACrC;AAGZ,GAEM+U,KAAeD,EAAM,WAAW,CAAC,EAAE,SAAAjY,GAAS,WAAAqP,IAAY,IAAI,GAAGlM,KAAciM,MAC/E,gBAAAhP;AAAA,EAAC;AAAA,EAAA;AAAA,IACI,GAAG+C;AAAA,IACJ,MAAK;AAAA,IACL,KAAAiM;AAAA,IACA,OAAO,EAAE,GAAGjM,EAAM,OAAO,wBAAwB,UAAA;AAAA,IACjD,WAAW,uEAAuEkM,KAAa,EAAE;AAAA,EAAA;AACrG,CACH,GAEK8I,KAAQF,EAAM,WAAW,CAAC,EAAE,SAAAjY,GAAS,GAAGmD,EAAA,GAAciM,MAAa;AACrE,QAAMgJ,IAAMjD,GAAA,GACNhQ,IAAQ;AAAA,IACV,GAAIhC,GAAe;AAAA,IACnB,KAAKuN,GAAG,OAAO0H,EAAI,MAAM,IAAI,GAAGA,EAAI,MAAM,OAAO;AAAA,EAAA;AAErD,SAAO,gBAAAhY,EAAC,WAAO,GAAG+C,GAAO,KAAAiM,GAAU,OAAAjK,GAAc,MAAK,YAAW,WAAU,iEAAA,CAAiE;AAChJ,CAAC,GAEKkT,KAAOJ,EAAM,WAAW,CAAC,EAAE,SAAAjY,GAAS,MAAAwC,GAAM,GAAGW,EAAA,GAAciM,MAAa;AAC1E,QAAMkJ,IAAetY,GAAS,cAAcwC,CAAI,GAC1C+V,IAAa,EAAE,GAAGpV,GAAO,GAAGmV,EAAA;AAClC,SACI,gBAAAlY;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGmY;AAAA,MACJ,MAAK;AAAA,MACL,KAAAnJ;AAAA,MACA,WAAW,wFAAwF,CAACjM,GAAO,WAAWmV,GAAc,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAAC;AAAA,IAAA;AAAA,EAAA;AAGpL,CAAC,GAEKE,KAAQP,EAAM,WAAW,CAAC9U,GAAYiM,MACpCjM,EAAM,QAAQ,cAEV,gBAAA/C,EAAC,SAAA,EAAO,GAAG+C,GAAO,KAAAiM,GAAU,WAAU,sBAClC,UAAA,gBAAAhP,EAAC,MAAA,EAAG,MAAK,OAAM,WAAU,sBACrB,UAAA,gBAAAA,EAAC,MAAA,EAAG,SAAS,KAAK,WAAU,gCACxB,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,kEAAA,CAAkE,EAAA,CACtF,EAAA,CACJ,GACJ,IAGD,IACV,GAEKqY,KAAa;AAAA,EACf,UAAUJ;AAAA,EACV,WAAWG;AAAA,EACX,WAAWL;AAAA,EACX,OAAOD;AAAA,EACP,WAAAF;AACJ,GAEMU,KAAe,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAE5CC,KAAe,CAACxV,MAClB,gBAAA/C,EAAC,OAAA,EAAI,WAAU,qDAAqD,UAAA+C,EAAM,UAAUsN,KAAe,gBAAArQ,EAACwN,IAAA,CAAA,CAAM,GAAG,GAG3GgL,KAAY,MAAM,gBAAAxY,EAAC2O,GAAA,EAAS,GAE5B8J,KAAmB,CAAA,GAEZC,KAAa,CAAgB;AAAA,EACtC,MAAA9I;AAAA,EACA,SAAA+I;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAA3K,IAAa;AAAA,EACb,YAAA4K,IAAa;AAAA,EACb,GAAGnW;AACP,MAA0B;AACtB,QAAMiM,IAAMxQ,EAA8B,IAAI,GACxC,GAAG2a,CAAoB,IAAIta,EAAS,EAAK,GACzCua,IAAiBnG,GAAa+F,CAAW,GACzCK,IAAiBpG,GAAalQ,EAAM,WAAW,GAE/CuW,IAAOvZ,EAAQ,MAAM;AACvB,QAAIgD,EAAM,QAAS,QAAOuV;AAC1B,QAAIY,UAAmBnW,EAAM;AAC7B,UAAMwW,IAAO,IAAI1M,GAAK9J,EAAM,IAAI;AAMhC,WALI4V,EAAQ,SAAS,KACjBA,EAAQ;AAAA,MAAQ,CAAC5P,MACbA,EAAE,UAAU,MAAM,OAAO,MAAMA,EAAE,KAAK,IAAI,SAAYwQ,EAAK,MAAMxQ,EAAE,MAAaA,EAAE,UAAU,QAAeA,EAAE,KAAK;AAAA,IAAA,GAGtH8P,EAAQ,WAAW,IAAUU,EAAK,OAAA,IAC/B9M,GAAU8M,EAAK,OAAA,GAAUV,CAAO;AAAA,EAAA,GACxC,CAAC9V,EAAM,SAASA,EAAM,MAAMmW,GAAYP,GAASE,CAAO,CAAC;AAE5D,EAAAjV,EAAU,MAAM;AACZ,QAAIoL,EAAI,YAAY,KAAM,QAAO,MAAM;AAAA,IAAA;AACvC,UAAMwK,IAAMxK,EAAI,SACVQ,IAAW,IAAI,qBAAqB,CAACC,MACrBA,EAAQA,EAAQ,SAAS,CAAC,EAChB,kBAAkB4J,EAAe,WAEzDD,EAAe,UAAA,GACR,KAAKD,EAAqB,EAAI,KAElCA,EAAqB,EAAK,CACpC;AACD,WAAA3J,EAAS,QAAQgK,CAAG,GACb,MAAMhK,EAAS,WAAA;AAAA,EAAW,GAClC,CAAC6J,GAAgBD,CAAc,CAAC;AAEnC,QAAMK,IAAQH,EAAK,WAAW,GAExB1Z,IAAU;AAAA,IACZ,MAAAgQ;AAAA,IACA,OAAO7M,EAAM;AAAA,IACb,SAASA,EAAM;AAAA,IACf,aAAaA,EAAM;AAAA,IACnB,aAAaA,EAAM;AAAA,EAAA;AAGvB,SACI,gBAAA8K,EAAC,OAAA,EAAI,WAAU,wFACX,UAAA;AAAA,IAAA,gBAAA7N;AAAA,MAAC0Z;AAAAA,MAAA;AAAA,QACG,YAAArB;AAAA,QACA,SAAAzY;AAAA,QACA,YAAY0Z,EAAK;AAAA,QACjB,aAAaG,IAAQjB,KAAY9I;AAAA,QACjC,MAAM+J,IAAShB,KAAoBa;AAAA,QACnC,iBAAiB,CAAAL;AAAA,QACjB,oBAAoBA,IAAeA,EAAA,IAAiB;AAAA,QACpD,oBAAoB,MAChB,gBAAAjZ;AAAA,UAACwX;AAAA,UAAA;AAAA,YACG,SAAS5H;AAAA,YACT,SAAA+I;AAAA,YACA,SAAAC;AAAA,YACA,SAAAC;AAAA,YACA,YAAAC;AAAA,YACA,YAAAC;AAAA,YACA,SAAS,CAAC,CAAChW,EAAM;AAAA,YACjB,cAAcA,EAAM;AAAA,YACpB,cAAcA,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACxB;AAAA,IAAA;AAAA,IAGP0W,IAAQ,gBAAAzZ,EAACuY,IAAA,EAAa,SAASxV,EAAM,SAAS,IAAK;AAAA,sBACnD,OAAA,EAAI,eAAY,QAAO,KAAAiM,GAAU,WAAU,gBAAe;AAAA,IAC1DV,MAAe,OAAO,gBAAAtO,EAACqO,IAAA,EAAY,GAAGC,GAAY,IAAK;AAAA,EAAA,GAC5D;AAER,GCrLMqL,KAAO,CAAC,EAAE,MAAAvX,GAAM,eAAAwX,QAAkE;AACpF,QAAMvP,IAAIhK,GAAe,CAAC;AAC1B,SACI,gBAAAwN;AAAA,IAACwJ;AAAAA,IAAA;AAAA,MACG,eAAAuC;AAAA,MACA,IAAIxX,EAAK;AAAA,MACT,WAAU;AAAA,MAEV,OAAOA;AAAA,MACP,OAAO,EAAE,GAAAiI,EAAA;AAAA,MAET,UAAA;AAAA,QAAA,gBAAArK,EAAC,UAAA,EAAO,MAAK,UAAS,WAAU,eAC5B,UAAA,gBAAAA,EAAC6Z,IAAA,EAAiB,MAAM,GAAA,CAAI,EAAA,CAChC;AAAA,QACA,gBAAA7Z,EAAC,QAAA,EAAM,UAAAoC,EAAK,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAPjBA,EAAK;AAAA,EAAA;AAUtB,GAEa0X,KAAQ,CAAmB/W,MAAoB;AACxD,QAAMsR,IAAezG,EAAA,GACflQ,IAAU4T,GAAiBvO,EAAM,IAAI,GACrCrB,IAAWG,GAAA,GACX,CAACkY,GAAOC,CAAQ,IAAInb,EAAUkE,EAAM,OAAO,CAAC,GAAG,SAAoB,EAAE,GAErEmQ,IAAW,CAACtE,MAA4C;AAC1D,UAAMqL,IAASrL,EAAE,QACXjP,IAAMsa,EAAO,OACb9X,IAAQ8X,EAAO,QAAQ,eACvB5G,IAAQ4G,EAAO,QAAQ,KAAK9X,CAAK,GAAG,SAAS;AACnD,IAAA6X,EAAS3G,CAAK;AACd,UAAMnJ,IAAU,IAAI2C,GAAK9J,EAAM,IAAI,EAAE,QAAQpD,CAAG,GAC1CmQ,IAAM/M,EAAM,KAAK,KAAK,CAACgG,MAAMA,EAAE,OAAOpJ,CAAG;AAC/C,IAAAoD,EAAM;AAAA,MACFsF,GAAK6B,CAAO,EAAE,IAAI,CAACgQ,GAAW/X,MAAwB;AAClD,cAAMmX,IAAOpP,EAAQgQ,CAAS;AAC9B,eAAO,EAAE,GAAGpK,GAAK,SAASwD,GAAA,GAAQ,UAAU3T,GAAK,OAAAwC,GAAO,MAAAmX,GAAM,WAAAY,EAAA;AAAA,MAA+B,CAChG;AAAA,IAAA;AAAA,EACL,GAGEpG,IAAW,MAAM/Q,EAAM,UAAU,CAAA,CAAE;AAEzC,2BACK4L,GAAA,EACG,UAAA,gBAAAd;AAAA,IAACkG;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,MACP,OAAOM,EAAa;AAAA,MACpB,SACI,gBAAAxG,EAAC,QAAA,EAAK,WAAU,6CACZ,UAAA;AAAA,QAAA,gBAAA7N,EAACma,IAAA,EAAY,MAAM,GAAA,CAAI;AAAA,QACtB9F,EAAa;AAAA,QACbtR,EAAM,OAAO,SAAS,IAAI,MAAMgX,CAAK,IAAIhX,EAAM,OAAO,MAAM,MAAM;AAAA,MAAA,GACvE;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAA8K,EAAC,OAAA,EAAI,WAAU,iCACX,UAAA;AAAA,UAAA,gBAAA7N,EAACiU,GAAA,EAAO,OAAO8F,GAAO,OAAM,uBAAsB,UAAA7G,GAAoB,SAAAxV,GAAkB,aAAY,iBAAA,CAAiB;AAAA,4BACpH0c,IAAA,EAAO,WAAU,QAAO,SAAStG,GAAU,OAAM,OAAM,WAASiG,GAC7D,4BAAC7F,GAAA,EAAW,MAAM,IAAI,WAAU,eAAc,EAAA,CAClD;AAAA,QAAA,GACJ;AAAA,QACCnR,EAAM,OAAO,SAAS,IACnB,gBAAA8K,EAAC,WAAA,EAAQ,WAAU,QACf,UAAA;AAAA,UAAA,gBAAA7N,EAAC,YACG,UAAA,gBAAAA,EAAC,MAAA,EAAG,WAAU,uBAAsB,0BAAY,EAAA,CACpD;AAAA,4BACCZ,IAAA,EACG,UAAA,gBAAAY;AAAA,YAACyX;AAAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,WAAU;AAAA,cACV,MAAI;AAAA,cACJ,cAAc/V;AAAA,cACd,cAAc;AAAA,cACd,cAAY;AAAA,cACZ,WAAWqB,EAAM;AAAA,cACjB,QAAQA,EAAM;AAAA,cAEb,UAAAA,EAAM,OAAO,IAAI,CAACX,MACf,gBAAApC;AAAA,gBAAC2Z;AAAA,gBAAA;AAAA,kBAEG,MAAAvX;AAAA,kBACA,eAAe,CAACwM,MAAW;AACvB,oBAAAlN,EAAS,MAAMkN,CAAC,GAChB7L,EAAM,UAAU,CAAC,GAAGA,EAAM,MAAM,CAAC;AAAA,kBAAA;AAAA,gBACrC;AAAA,gBALKX,EAAK;AAAA,cAAA,CAOjB;AAAA,YAAA;AAAA,UAAA,EACL,CACJ;AAAA,QAAA,EAAA,CACJ,IACA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEZ;AAER,GCvHaiY,KAAW,CAAgBtX,MACpC,gBAAA/C,EAAC,UAAA,EAAO,WAAU,mBACd,UAAA,gBAAA6N,EAAC,OAAA,EAAI,WAAU,0EACX,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0DACX,UAAA;AAAA,IAAA,gBAAA7N,EAAC,QAAA,EACG,UAAA,gBAAAA,EAACuV,IAAA,EAAO,MAAMxS,EAAM,MAAM,SAASA,EAAM,SAAS,SAASA,EAAM,SAAS,KAAKA,EAAM,YAAY,GACrG;AAAA,sBACC,QAAA,EACG,UAAA,gBAAA/C,EAACuT,IAAA,EAAK,SAASxQ,EAAM,SAAS,MAAMA,EAAM,MAAM,SAASA,EAAM,SAAS,KAAKA,EAAM,YAAY,GACnG;AAAA,sBACC,QAAA,EACG,UAAA,gBAAA/C,EAAC8Z,MAAM,MAAM/W,EAAM,MAAM,QAAQA,EAAM,QAAQ,WAAWA,EAAM,WAAW,SAASA,EAAM,SAAS,MAAMA,EAAM,MAAM,EAAA,CACzH;AAAA,EAAA,GACJ;AAAA,EACA,gBAAA/C,EAAC,MAAA,EAAG,WAAU,qFACT,UAAA+C,EAAM,QAAQ,IAAI,CAACgG,MAChB,gBAAA8E,EAAC,MAAA,EAAgC,WAAU,4EACvC,UAAA;AAAA,IAAA,gBAAAA,EAAC,QAAA,EACG,UAAA;AAAA,MAAA,gBAAA7N,EAAC,QAAA,EAAK,WAAU,kEAAiE,eAAY,QAAO;AAAA,MACnG+I,EAAE;AAAA,MAAM;AAAA,MAAEA,EAAE,UAAU,MAAM,YAAA;AAAA,MAAc;AAAA,IAAA,GAC/C;AAAA,IACA,gBAAA8E,EAAC,OAAA,EAAI,WAAU,8BACX,UAAA;AAAA,MAAA,gBAAA7N,EAAC,UAAK,eAAY,QAAO,WAAU,gCAC9B,UAAA+I,EAAE,SAAS,IAAA,CAChB;AAAA,MACA,gBAAA/I;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,MAAM+I,EAAE;AAAA,UACR,OAAOA,EAAE;AAAA,UACT,WAAU;AAAA,UACV,UAAU,CAAC6F,MAAM;AACb,kBAAMxO,IAAQqR,GAAc7C,EAAE,MAAM;AACpC,YAAA7L,EAAM,WAAW,CAAC6P,MAASA,EAAK,IAAI,CAACxQ,MAAU2G,EAAE,OAAO3G,EAAK,KAAK,EAAE,GAAGA,GAAM,OAAAhC,EAAA,IAAUgC,CAAK,CAAC;AAAA,UAAA;AAAA,QACjG;AAAA,MAAA;AAAA,IACJ,EAAA,CACJ;AAAA,EAAA,EAAA,GAlBK,gBAAgB2G,EAAE,EAAE,EAmB7B,CACH,EAAA,CACL;AAAA,EAAA,CACJ,EAAA,CACJ,GCdEuR,KAAgB,CAA4D1H,GAAY2H,MAC1F,OAAOA,KAAW,aAAaA,EAAO3H,CAAI,IAAI2H,GAI5CC,IAAiB,CAAkB5H,GAASN,GAAUmI,MAA2B7H,MAASN,IAAQ,SAAYmI,IAAOnI,CAAK,GAEnHoI,KAAQ,CAAgB3X,MAAyB;AAC1D,QAAMuT,IAASC,GAAA,GACToE,IAAe5a;AAAA,IACjB,OAA0B;AAAA,MACtB,QAAQgD,EAAM,WAAW,SAAauT,EAAO,MAAM,UAAU,SAAcvT,EAAM,UAAU;AAAA,IAAA;AAAA,IAE/F,CAACA,EAAM,QAAQuT,EAAO,MAAM,MAAM;AAAA,EAAA,GAEhCrB,IAAalS,EAAM,cAAcuT,EAAO,MAAM,cAAc,IAC5DsE,IAAa7a,EAAQ,MAAMuR,GAAiBvO,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GACrE,CAACuP,GAAOC,CAAQ,IAAIC;AAAA,IACtB;AAAA,MACI,MAAMzP,EAAM;AAAA,MACZ,SAAUA,EAAM,WAAW,CAAA;AAAA,MAC3B,QAASA,EAAM,UAAU,CAAA;AAAA,MACzB,SAAUA,EAAM,WAAW,CAAA;AAAA,IAAC;AAAA,IAEhC,CAAC0P,MAAQ;AACL,YAAMoI,IACF,CAAgBlb,MAChB,CAACmb,MAAW;AACR,cAAMxI,IAAQG,EAAI,MAAA;AAClB,eAAO,EAAE,GAAGH,GAAO,CAAC3S,CAAG,GAAG2a,GAAchI,EAAM3S,CAAyB,GAAGmb,CAAU,EAAA;AAAA,MAAE;AAE9F,aAAO;AAAA,QACH,MAAMD,EAAgC,MAAM;AAAA,QAC5C,SAASA,EAAmC,SAAS;AAAA,QACrD,QAAQA,EAAsC,QAAQ;AAAA,QACtD,SAASA,EAAyC,SAAS;AAAA,MAAA;AAAA,IAC/D;AAAA,IAEJ;AAAA,MACI,gBAAgB;AAAA,QACZ,CAACvI,GAAOM,OACJ7P,EAAM,MAAMuP,CAAY,GACxBkI,EAAe5H,GAAM,WAAW,CAAA,GAAIN,EAAM,WAAW,CAAA,GAAIvP,EAAM,UAAU,GACzEyX,EAAe5H,GAAM,WAAW,CAAA,GAAIN,EAAM,WAAW,CAAA,GAAIvP,EAAM,UAAU,GACzEyX,EAAe5H,GAAM,UAAU,CAAA,GAAIN,EAAM,UAAU,CAAA,GAAIvP,EAAM,SAAS,GACtEyX,EAAe5H,GAAM,QAAQ,CAAA,GAAIN,EAAM,QAAQ,CAAA,GAAIvP,EAAM,OAAO,GACzDuP;AAAAA,MACX;AAAA,IACJ;AAAA,EACJ;AAGJ,SAAA1O,EAAU,MAAM;AACZ,IAAA2O,EAAS,KAAKxP,EAAM,IAAI;AAAA,EAAA,GACzB,CAACA,EAAM,IAAI,CAAC,GAGX,gBAAA/C,EAAC8U,MAAc,OAAO6F,GAClB,4BAACjD,IAAA,EAAgB,WAAS,IAAC,SAAS,IAC/B,UAAA;AAAA,IAAAzC,IACG,gBAAAjV;AAAA,MAACqa;AAAA,MAAA;AAAA,QACG,MAAM/H,EAAM;AAAA,QACZ,MAAMvP,EAAM;AAAA,QACZ,SAAS6X;AAAA,QACT,QAAQtI,EAAM;AAAA,QACd,SAASA,EAAM;AAAA,QACf,SAASC,EAAS;AAAA,QAClB,SAASD,EAAM;AAAA,QACf,WAAWC,EAAS;AAAA,QACpB,YAAYA,EAAS;AAAA,QACrB,YAAYA,EAAS;AAAA,QACrB,YAAYxP,EAAM,cAAc;AAAA,QAChC,cAAcA,EAAM,gBAAgB;AAAA,QACpC,cAAcA,EAAM,gBAAgB;AAAA,MAAA;AAAA,IAAA,IAExC;AAAA,IACHuP,EAAM,OAAO,WAAW,IACrB,gBAAAtS;AAAA,MAAC0Y;AAAA,MAAA;AAAA,QACI,GAAG3V;AAAA,QACJ,OAAO;AAAA,QACP,MAAMuP,EAAM;AAAA,QACZ,SAASsI;AAAA,QACT,QAAQtI,EAAM;AAAA,QACd,SAASA,EAAM;AAAA,QACf,YAAAsI;AAAA,QACA,SAASrI,EAAS;AAAA,QAClB,SAASD,EAAM;AAAA,QACf,WAAWC,EAAS;AAAA,QACpB,YAAYA,EAAS;AAAA,QACrB,YAAYA,EAAS;AAAA,QACrB,aAAaxP,EAAM;AAAA,QACnB,YAAYA,EAAM,cAAc;AAAA,QAChC,cAAcA,EAAM,gBAAgB;AAAA,QACpC,cAAcA,EAAM,gBAAgB;AAAA,MAAA;AAAA,IAAA,IAGxC,gBAAA/C,EAAC,OAAA,EAAI,WAAU,wBACV,UAAAsS,EAAM,OAAO,IAAI,CAACyH,GAAO5X,MACtB,gBAAAnC,EAAC,OAAA,EAAI,WAAU,cACX,UAAA,gBAAAA;AAAA,MAAC0Y;AAAA,MAAA;AAAA,QACI,GAAG3V;AAAA,QACJ,OAAAgX;AAAA,QACA,OAAA5X;AAAA,QACA,MAAMmQ,EAAM;AAAA,QACZ,YAAY;AAAA,QACZ,MAAMyH,EAAM;AAAA,QACZ,SAASa;AAAA,QACT,QAAQtI,EAAM;AAAA,QACd,SAASA,EAAM;AAAA,QACf,YAAAsI;AAAA,QACA,SAASrI,EAAS;AAAA,QAClB,SAASD,EAAM;AAAA,QACf,WAAWC,EAAS;AAAA,QACpB,YAAYA,EAAS;AAAA,QACrB,YAAYA,EAAS;AAAA,QACrB,aAAaxP,EAAM;AAAA,QACnB,cAAcA,EAAM,gBAAgB;AAAA,QACpC,cAAcA,EAAM,gBAAgB;AAAA,MAAA;AAAA,IAAA,KAnBX,SAASgX,EAAM,OAAO,EAqBvD,CACH,EAAA,CACL;AAAA,EAAA,EAAA,CAER,EAAA,CACJ;AAER;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,29]}