@mistriwork/mistri 1.0.0-rc.12 → 1.0.0-rc.13

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 (221) hide show
  1. package/README.md +4 -3
  2. package/dist/client/assets/LayoutBuilder-MPzkVU2e.js.map +1 -1
  3. package/dist/client/assets/index-D2dHI6hR.js.map +1 -1
  4. package/dist/client/assets/shell-TreN_uLs.js.map +1 -1
  5. package/dist/docs/access-model.md +1 -1
  6. package/dist/docs/build-and-deploy.md +0 -1
  7. package/dist/docs/cli.md +1 -1
  8. package/dist/docs/glossary.md +3 -3
  9. package/dist/docs/query.md +9 -21
  10. package/dist/docs/status.md +3 -3
  11. package/dist/embed/react/chunks/LayoutBuilder-Cbxa_wve.js.map +1 -1
  12. package/dist/embed/react/chunks/app-0UZ1Re1k.js.map +1 -1
  13. package/dist/embed/react/chunks/page-Bx4o1kpQ.js.map +1 -1
  14. package/dist/embed/react/chunks/palette-Bb7Lf6eo.js.map +1 -1
  15. package/dist/embed/react/chunks/shell-DZRACiB9.js.map +1 -1
  16. package/dist/embed/react/chunks/write-BQO4CFc9.js.map +1 -1
  17. package/dist/embed/react/index.js +1 -1
  18. package/dist/server/build/dockerfile.js +1 -1
  19. package/dist/server/cli/usage.js +2 -2
  20. package/dist/ui/index.js +2 -2
  21. package/dist/ui/page.js +2 -2
  22. package/dist/ui/{shared-N4Ej8yRD.js → shared-1PD7TOTJ.js} +5 -5
  23. package/dist/ui/{shared-N4Ej8yRD.js.map → shared-1PD7TOTJ.js.map} +1 -1
  24. package/dist/ui/{shared-D5m86-4o.js → shared-1gMnOu9J.js} +6 -6
  25. package/dist/ui/{shared-D5m86-4o.js.map → shared-1gMnOu9J.js.map} +1 -1
  26. package/dist/ui/{shared-Ctaj8mR2.js → shared-5RQMi4BR.js} +3 -3
  27. package/dist/ui/{shared-Ctaj8mR2.js.map → shared-5RQMi4BR.js.map} +1 -1
  28. package/dist/ui/{shared-DpLeIATZ.js → shared-B-BUF9fx.js} +2 -2
  29. package/dist/ui/{shared-DpLeIATZ.js.map → shared-B-BUF9fx.js.map} +1 -1
  30. package/dist/ui/{shared-DWYnjItP.js → shared-B-MhiPIN.js} +9 -9
  31. package/dist/ui/{shared-DWYnjItP.js.map → shared-B-MhiPIN.js.map} +1 -1
  32. package/dist/ui/{shared-0fNuhSbG.js → shared-B07qIMlE.js} +5 -5
  33. package/dist/ui/{shared-0fNuhSbG.js.map → shared-B07qIMlE.js.map} +1 -1
  34. package/dist/ui/{shared-lYtMadRU.js → shared-B1SAS_J-.js} +3 -3
  35. package/dist/ui/{shared-lYtMadRU.js.map → shared-B1SAS_J-.js.map} +1 -1
  36. package/dist/ui/{shared-CpI0Y8M5.js → shared-B4jgU8h9.js} +6 -6
  37. package/dist/ui/{shared-CpI0Y8M5.js.map → shared-B4jgU8h9.js.map} +1 -1
  38. package/dist/ui/{shared-Cxu1c35l.js → shared-B5aBCUi7.js} +30 -30
  39. package/dist/ui/{shared-Cxu1c35l.js.map → shared-B5aBCUi7.js.map} +1 -1
  40. package/dist/ui/{shared-CAe-US1q.js → shared-B9H7_Pji.js} +5 -5
  41. package/dist/ui/{shared-CAe-US1q.js.map → shared-B9H7_Pji.js.map} +1 -1
  42. package/dist/ui/{shared-Q2bgBaYo.js → shared-BAXr20S-.js} +4 -4
  43. package/dist/ui/{shared-Q2bgBaYo.js.map → shared-BAXr20S-.js.map} +1 -1
  44. package/dist/ui/{shared-CyEefFFb.js → shared-BDDUzH-f.js} +19 -19
  45. package/dist/ui/{shared-CyEefFFb.js.map → shared-BDDUzH-f.js.map} +1 -1
  46. package/dist/ui/{shared-BdhPI6dq.js → shared-BGmkeDeW.js} +3 -3
  47. package/dist/ui/{shared-BdhPI6dq.js.map → shared-BGmkeDeW.js.map} +1 -1
  48. package/dist/ui/{shared-DONIpq2q.js → shared-BHCQ60yN.js} +2 -2
  49. package/dist/ui/{shared-DONIpq2q.js.map → shared-BHCQ60yN.js.map} +1 -1
  50. package/dist/ui/{shared-CNmaAv64.js → shared-BHsjawAG.js} +8 -8
  51. package/dist/ui/{shared-CNmaAv64.js.map → shared-BHsjawAG.js.map} +1 -1
  52. package/dist/ui/{shared-DgjU9kOy.js → shared-BIQuK_nq.js} +4 -4
  53. package/dist/ui/{shared-DgjU9kOy.js.map → shared-BIQuK_nq.js.map} +1 -1
  54. package/dist/ui/{shared-icSQAj21.js → shared-BOe4W2FI.js} +3 -3
  55. package/dist/ui/{shared-icSQAj21.js.map → shared-BOe4W2FI.js.map} +1 -1
  56. package/dist/ui/{shared-BlxoOJSk.js → shared-BPpC08ip.js} +3 -3
  57. package/dist/ui/{shared-BlxoOJSk.js.map → shared-BPpC08ip.js.map} +1 -1
  58. package/dist/ui/{shared-BtiFL37J.js → shared-BdA3LPCB.js} +2 -2
  59. package/dist/ui/{shared-BtiFL37J.js.map → shared-BdA3LPCB.js.map} +1 -1
  60. package/dist/ui/{shared-CvR94vn4.js → shared-Be3nbWsd.js} +11 -11
  61. package/dist/ui/{shared-CvR94vn4.js.map → shared-Be3nbWsd.js.map} +1 -1
  62. package/dist/ui/{shared-Bl_nF_IH.js → shared-Bf30ZLoS.js} +8 -4
  63. package/dist/ui/shared-Bf30ZLoS.js.map +1 -0
  64. package/dist/ui/{shared-DijrJ_V-.js → shared-BguP_BaR.js} +7 -7
  65. package/dist/ui/{shared-DijrJ_V-.js.map → shared-BguP_BaR.js.map} +1 -1
  66. package/dist/ui/{shared-DPAVoWY0.js → shared-BoLbc2WD.js} +17 -2
  67. package/dist/ui/{shared-DPAVoWY0.js.map → shared-BoLbc2WD.js.map} +1 -1
  68. package/dist/ui/{shared-BkdBTYwx.js → shared-BttyOW4W.js} +3 -3
  69. package/dist/ui/{shared-BkdBTYwx.js.map → shared-BttyOW4W.js.map} +1 -1
  70. package/dist/ui/{shared-CQWLz8uT.js → shared-BumxsBlA.js} +10 -10
  71. package/dist/ui/{shared-CQWLz8uT.js.map → shared-BumxsBlA.js.map} +1 -1
  72. package/dist/ui/{shared-Dzu7tFiC.js → shared-Bw73ktBk.js} +3 -3
  73. package/dist/ui/{shared-Dzu7tFiC.js.map → shared-Bw73ktBk.js.map} +1 -1
  74. package/dist/ui/{shared-BhAYErSx.js → shared-C1B0GH0e.js} +4 -4
  75. package/dist/ui/{shared-BhAYErSx.js.map → shared-C1B0GH0e.js.map} +1 -1
  76. package/dist/ui/{shared-BQJQcGgj.js → shared-C2FsyYr7.js} +4 -4
  77. package/dist/ui/{shared-BQJQcGgj.js.map → shared-C2FsyYr7.js.map} +1 -1
  78. package/dist/ui/{shared-B9lw2Ryh.js → shared-C2RU1qjv.js} +4 -4
  79. package/dist/ui/{shared-B9lw2Ryh.js.map → shared-C2RU1qjv.js.map} +1 -1
  80. package/dist/ui/{shared-DQYNI9wO.js → shared-C42f07hJ.js} +5 -5
  81. package/dist/ui/{shared-DQYNI9wO.js.map → shared-C42f07hJ.js.map} +1 -1
  82. package/dist/ui/{shared-CqCZ8wMY.js → shared-C4LkPCU4.js} +3 -3
  83. package/dist/ui/{shared-CqCZ8wMY.js.map → shared-C4LkPCU4.js.map} +1 -1
  84. package/dist/ui/{shared-BhtpgOpa.js → shared-C4wSfz6k.js} +9 -9
  85. package/dist/ui/{shared-BhtpgOpa.js.map → shared-C4wSfz6k.js.map} +1 -1
  86. package/dist/ui/{shared-BHc2Izkj.js → shared-C9DZtSFH.js} +2 -2
  87. package/dist/ui/{shared-BHc2Izkj.js.map → shared-C9DZtSFH.js.map} +1 -1
  88. package/dist/ui/{shared-DW1YuiNS.js → shared-CA52ClGo.js} +2 -2
  89. package/dist/ui/{shared-DW1YuiNS.js.map → shared-CA52ClGo.js.map} +1 -1
  90. package/dist/ui/{shared-BbSbilkh.js → shared-CBciTwm6.js} +9 -9
  91. package/dist/ui/{shared-BbSbilkh.js.map → shared-CBciTwm6.js.map} +1 -1
  92. package/dist/ui/{shared-C-J32eBn.js → shared-CL3RLKDA.js} +16 -16
  93. package/dist/ui/{shared-C-J32eBn.js.map → shared-CL3RLKDA.js.map} +1 -1
  94. package/dist/ui/{shared-Ck8S4OxW.js → shared-CLq3-_hW.js} +3 -3
  95. package/dist/ui/{shared-Ck8S4OxW.js.map → shared-CLq3-_hW.js.map} +1 -1
  96. package/dist/ui/{shared-Q5WefT7G.js → shared-CMjK-Ucd.js} +3 -3
  97. package/dist/ui/{shared-Q5WefT7G.js.map → shared-CMjK-Ucd.js.map} +1 -1
  98. package/dist/ui/{shared-D3MAuEA3.js → shared-CPjpSFGh.js} +2 -2
  99. package/dist/ui/{shared-D3MAuEA3.js.map → shared-CPjpSFGh.js.map} +1 -1
  100. package/dist/ui/{shared-VshXGwXP.js → shared-CSPhENq3.js} +2 -2
  101. package/dist/ui/{shared-VshXGwXP.js.map → shared-CSPhENq3.js.map} +1 -1
  102. package/dist/ui/{shared-DJrJaE73.js → shared-CZJE4Bmp.js} +3 -3
  103. package/dist/ui/{shared-DJrJaE73.js.map → shared-CZJE4Bmp.js.map} +1 -1
  104. package/dist/ui/{shared-D7ONOwI7.js → shared-C_BhUL2I.js} +7 -7
  105. package/dist/ui/{shared-D7ONOwI7.js.map → shared-C_BhUL2I.js.map} +1 -1
  106. package/dist/ui/{shared-j-2peBIB.js → shared-CbeujwdU.js} +4 -4
  107. package/dist/ui/{shared-j-2peBIB.js.map → shared-CbeujwdU.js.map} +1 -1
  108. package/dist/ui/{shared-D5GrOEa2.js → shared-Cbf-o4Dt.js} +4 -4
  109. package/dist/ui/{shared-D5GrOEa2.js.map → shared-Cbf-o4Dt.js.map} +1 -1
  110. package/dist/ui/{shared-HwiPIajr.js → shared-CdNmeNHh.js} +3 -3
  111. package/dist/ui/{shared-HwiPIajr.js.map → shared-CdNmeNHh.js.map} +1 -1
  112. package/dist/ui/{shared-ZCFt-CPb.js → shared-CdQOMD8J.js} +3 -3
  113. package/dist/ui/{shared-ZCFt-CPb.js.map → shared-CdQOMD8J.js.map} +1 -1
  114. package/dist/ui/{shared-ClhXSGGK.js → shared-CdiPYlTh.js} +2 -2
  115. package/dist/ui/{shared-ClhXSGGK.js.map → shared-CdiPYlTh.js.map} +1 -1
  116. package/dist/ui/{shared-DA8_pVRZ.js → shared-CepLAhwm.js} +2 -2
  117. package/dist/ui/{shared-DA8_pVRZ.js.map → shared-CepLAhwm.js.map} +1 -1
  118. package/dist/ui/{shared-BrYKjrnM.js → shared-Ch82h_Fu.js} +6 -6
  119. package/dist/ui/{shared-BrYKjrnM.js.map → shared-Ch82h_Fu.js.map} +1 -1
  120. package/dist/ui/{shared-C4UrE8Fb.js → shared-Chp88all.js} +3 -3
  121. package/dist/ui/{shared-C4UrE8Fb.js.map → shared-Chp88all.js.map} +1 -1
  122. package/dist/ui/{shared-CWa80DTO.js → shared-Ci16s2rN.js} +9 -9
  123. package/dist/ui/{shared-CWa80DTO.js.map → shared-Ci16s2rN.js.map} +1 -1
  124. package/dist/ui/{shared-tksTLD6Q.js → shared-CiqNkoE1.js} +5 -5
  125. package/dist/ui/{shared-tksTLD6Q.js.map → shared-CiqNkoE1.js.map} +1 -1
  126. package/dist/ui/{shared-yt7DjSrq.js → shared-CpMhOq8F.js} +2 -2
  127. package/dist/ui/{shared-yt7DjSrq.js.map → shared-CpMhOq8F.js.map} +1 -1
  128. package/dist/ui/{shared-Dm0z5WUl.js → shared-CrWv5JKH.js} +6 -6
  129. package/dist/ui/{shared-Dm0z5WUl.js.map → shared-CrWv5JKH.js.map} +1 -1
  130. package/dist/ui/{shared-CQL3FGHc.js → shared-Csfi3Pti.js} +2 -2
  131. package/dist/ui/{shared-CQL3FGHc.js.map → shared-Csfi3Pti.js.map} +1 -1
  132. package/dist/ui/{shared-BKNRbm-V.js → shared-CuZt26rm.js} +2 -2
  133. package/dist/ui/{shared-BKNRbm-V.js.map → shared-CuZt26rm.js.map} +1 -1
  134. package/dist/ui/{shared-Guq3upiR.js → shared-Cws_z-TS.js} +2 -2
  135. package/dist/ui/{shared-Guq3upiR.js.map → shared-Cws_z-TS.js.map} +1 -1
  136. package/dist/ui/{shared-Bw_qZeIj.js → shared-D1KWuCg6.js} +2 -2
  137. package/dist/ui/{shared-Bw_qZeIj.js.map → shared-D1KWuCg6.js.map} +1 -1
  138. package/dist/ui/{shared-CuCZKwXW.js → shared-D66ju_Cb.js} +23 -23
  139. package/dist/ui/{shared-CuCZKwXW.js.map → shared-D66ju_Cb.js.map} +1 -1
  140. package/dist/ui/{shared-DYfX7NSM.js → shared-DGaQZXnw.js} +2 -2
  141. package/dist/ui/{shared-DYfX7NSM.js.map → shared-DGaQZXnw.js.map} +1 -1
  142. package/dist/ui/{shared-B3Hp8tOv.js → shared-DHy41sET.js} +6 -6
  143. package/dist/ui/{shared-B3Hp8tOv.js.map → shared-DHy41sET.js.map} +1 -1
  144. package/dist/ui/{shared-CXyd7IKi.js → shared-DKEOMQ6l.js} +2 -2
  145. package/dist/ui/{shared-CXyd7IKi.js.map → shared-DKEOMQ6l.js.map} +1 -1
  146. package/dist/ui/{shared-Ccmc8YO0.js → shared-DSUICuaJ.js} +33 -33
  147. package/dist/ui/{shared-Ccmc8YO0.js.map → shared-DSUICuaJ.js.map} +1 -1
  148. package/dist/ui/{shared-CL2iw_js.js → shared-DUPMRoO0.js} +13 -13
  149. package/dist/ui/{shared-CL2iw_js.js.map → shared-DUPMRoO0.js.map} +1 -1
  150. package/dist/ui/{shared-Dtp4eRul.js → shared-DVfdm6ah.js} +2 -2
  151. package/dist/ui/{shared-Dtp4eRul.js.map → shared-DVfdm6ah.js.map} +1 -1
  152. package/dist/ui/{shared-BJ5Ex32G.js → shared-DXM7d7lJ.js} +3 -3
  153. package/dist/ui/{shared-BJ5Ex32G.js.map → shared-DXM7d7lJ.js.map} +1 -1
  154. package/dist/ui/{shared-BFr6ld0e.js → shared-DXbMlcev.js} +2 -2
  155. package/dist/ui/{shared-BFr6ld0e.js.map → shared-DXbMlcev.js.map} +1 -1
  156. package/dist/ui/{shared-BUp3jv-N.js → shared-D_SkPtJ9.js} +6 -6
  157. package/dist/ui/{shared-BUp3jv-N.js.map → shared-D_SkPtJ9.js.map} +1 -1
  158. package/dist/ui/{shared-CdNomVzH.js → shared-Dd21k2ic.js} +4 -4
  159. package/dist/ui/{shared-CdNomVzH.js.map → shared-Dd21k2ic.js.map} +1 -1
  160. package/dist/ui/{shared-gRMbxmpu.js → shared-Dh0nHtLZ.js} +8 -8
  161. package/dist/ui/{shared-gRMbxmpu.js.map → shared-Dh0nHtLZ.js.map} +1 -1
  162. package/dist/ui/{shared-BKGJgjog.js → shared-DkOdSpSK.js} +3 -3
  163. package/dist/ui/{shared-BKGJgjog.js.map → shared-DkOdSpSK.js.map} +1 -1
  164. package/dist/ui/{shared-BMsh72Uq.js → shared-Dkph5ckT.js} +2 -2
  165. package/dist/ui/{shared-BMsh72Uq.js.map → shared-Dkph5ckT.js.map} +1 -1
  166. package/dist/ui/{shared-Be1HpDOB.js → shared-Dl1_Nx--.js} +3 -3
  167. package/dist/ui/{shared-Be1HpDOB.js.map → shared-Dl1_Nx--.js.map} +1 -1
  168. package/dist/ui/{shared-BQIZWOoJ.js → shared-Dm0IGbAf.js} +2 -2
  169. package/dist/ui/{shared-BQIZWOoJ.js.map → shared-Dm0IGbAf.js.map} +1 -1
  170. package/dist/ui/{shared-DSUtcU5S.js → shared-DnIkTpPr.js} +5 -5
  171. package/dist/ui/{shared-DSUtcU5S.js.map → shared-DnIkTpPr.js.map} +1 -1
  172. package/dist/ui/{shared-DsxGbYlV.js → shared-Docl_0tq.js} +3 -3
  173. package/dist/ui/{shared-DsxGbYlV.js.map → shared-Docl_0tq.js.map} +1 -1
  174. package/dist/ui/{shared-DZskrV26.js → shared-DprrHC72.js} +2 -2
  175. package/dist/ui/{shared-DZskrV26.js.map → shared-DprrHC72.js.map} +1 -1
  176. package/dist/ui/{shared-Bmw43Hwf.js → shared-DyKsJTZs.js} +2 -2
  177. package/dist/ui/{shared-Bmw43Hwf.js.map → shared-DyKsJTZs.js.map} +1 -1
  178. package/dist/ui/{shared-BLG88Pya.js → shared-FO7vfI3F.js} +4 -4
  179. package/dist/ui/{shared-BLG88Pya.js.map → shared-FO7vfI3F.js.map} +1 -1
  180. package/dist/ui/{shared-DLSd80D1.js → shared-HalAVHjv.js} +3 -3
  181. package/dist/ui/{shared-DLSd80D1.js.map → shared-HalAVHjv.js.map} +1 -1
  182. package/dist/ui/{shared-D1mMBLdj.js → shared-JvcI-LWp.js} +15 -15
  183. package/dist/ui/{shared-D1mMBLdj.js.map → shared-JvcI-LWp.js.map} +1 -1
  184. package/dist/ui/{shared-C6Hv_4O0.js → shared-K7Ym27yg.js} +2 -2
  185. package/dist/ui/{shared-C6Hv_4O0.js.map → shared-K7Ym27yg.js.map} +1 -1
  186. package/dist/ui/{shared-B39ln7oi.js → shared-SzlnwfJO.js} +3 -3
  187. package/dist/ui/{shared-B39ln7oi.js.map → shared-SzlnwfJO.js.map} +1 -1
  188. package/dist/ui/{shared-DgPn_Jll.js → shared-TrGbd1FY.js} +3 -3
  189. package/dist/ui/{shared-DgPn_Jll.js.map → shared-TrGbd1FY.js.map} +1 -1
  190. package/dist/ui/{shared-DrFb-XtA.js → shared-WhbuObEW.js} +2 -2
  191. package/dist/ui/{shared-DrFb-XtA.js.map → shared-WhbuObEW.js.map} +1 -1
  192. package/dist/ui/{shared-DiFQljcq.js → shared-XcSKDp6N.js} +11 -11
  193. package/dist/ui/{shared-DiFQljcq.js.map → shared-XcSKDp6N.js.map} +1 -1
  194. package/dist/ui/{shared-CMAg58rY.js → shared-Z4uBJU6I.js} +7 -6
  195. package/dist/ui/shared-Z4uBJU6I.js.map +1 -0
  196. package/dist/ui/{shared-BnUptuUp.js → shared-bAgeiRa5.js} +2 -2
  197. package/dist/ui/{shared-BnUptuUp.js.map → shared-bAgeiRa5.js.map} +1 -1
  198. package/dist/ui/{shared-BxMvSjey.js → shared-cgXG7OgZ.js} +5 -5
  199. package/dist/ui/{shared-BxMvSjey.js.map → shared-cgXG7OgZ.js.map} +1 -1
  200. package/dist/ui/{shared-u4CG2kQJ.js → shared-eZ0SB_zm.js} +2 -2
  201. package/dist/ui/{shared-u4CG2kQJ.js.map → shared-eZ0SB_zm.js.map} +1 -1
  202. package/dist/ui/{shared-L90bWW8e.js → shared-frKFb79C.js} +2 -2
  203. package/dist/ui/{shared-L90bWW8e.js.map → shared-frKFb79C.js.map} +1 -1
  204. package/dist/ui/{shared-Dd34nhkw.js → shared-hAayNSRA.js} +3 -3
  205. package/dist/ui/{shared-Dd34nhkw.js.map → shared-hAayNSRA.js.map} +1 -1
  206. package/dist/ui/{shared-DzC64cpp.js → shared-j_J16p2B.js} +2 -2
  207. package/dist/ui/{shared-DzC64cpp.js.map → shared-j_J16p2B.js.map} +1 -1
  208. package/dist/ui/{shared-DX7HRIV-.js → shared-tqpl5N3g.js} +6 -6
  209. package/dist/ui/{shared-DX7HRIV-.js.map → shared-tqpl5N3g.js.map} +1 -1
  210. package/dist/ui/{shared-BS5dBMpA.js → shared-y-6_ZDts.js} +2 -2
  211. package/dist/ui/{shared-BS5dBMpA.js.map → shared-y-6_ZDts.js.map} +1 -1
  212. package/dist/ui/{shared-Cv5v_MP1.js → shared-zG6e1Rhz.js} +13 -13
  213. package/dist/ui/{shared-Cv5v_MP1.js.map → shared-zG6e1Rhz.js.map} +1 -1
  214. package/dist/ui/testing.js +1 -1
  215. package/package.json +4 -4
  216. package/dist/docs/cli-browser.md +0 -232
  217. package/dist/docs/database-browser.md +0 -115
  218. package/dist/docs/keyboard.md +0 -63
  219. package/dist/docs/mcp.md +0 -86
  220. package/dist/ui/shared-Bl_nF_IH.js.map +0 -1
  221. package/dist/ui/shared-CMAg58rY.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"shared-BhtpgOpa.js","names":["normalizeError","getErrorMapKey","getErrorMapKey","normalizeError","Fragment","React","Fragment","Fragment","_Fragment"],"sources":["../../../../node_modules/@tanstack/store/dist/store.js","../../../../node_modules/@tanstack/pacer-lite/dist/lite-throttler.js","../../../../node_modules/@tanstack/devtools-event-client/dist/esm/plugin.js","../../../../node_modules/@tanstack/form-core/dist/esm/EventClient.js","../../../../node_modules/@tanstack/form-core/dist/esm/utils.js","../../../../node_modules/@tanstack/form-core/dist/esm/ValidationLogic.js","../../../../node_modules/@tanstack/form-core/dist/esm/standardSchemaValidator.js","../../../../node_modules/@tanstack/form-core/dist/esm/metaHelper.js","../../../../node_modules/@tanstack/form-core/dist/esm/FormApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/FieldApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/FormGroupApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/transform.js","../../../../node_modules/@tanstack/react-form/dist/esm/useIsomorphicLayoutEffect.js","../../../../node_modules/@tanstack/react-form/dist/esm/useField.js","../../../../node_modules/@tanstack/react-form/dist/esm/useUUID.js","../../../../node_modules/@tanstack/react-form/dist/esm/useFormId.js","../../../../node_modules/@tanstack/react-form/dist/esm/useFormGroup.js","../../../../node_modules/@tanstack/react-form/dist/esm/useForm.js","../../../engine/src/shared/textRules.ts","../../../kit/src/client/components/formDefaults.ts","../../../kit/src/client/copy/forms/components/NewRecord.ts","../../../kit/src/client/components/NewRecord.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\n * Text rules on a column: how long a value may be and what form it takes,\n * in the words a command's text input already uses (packages/mistri/schema/command.d.ts):\n *\n * text: { code: { pattern: '^[A-Z]{3}$', message: 'Three capital letters' }, name: { min: 2, max: 80 } }\n *\n * Two places say them. The App, on the resource (`text`), and the database\n * itself: a `varchar(80)` holds at most 80 characters, and on PostgreSQL a\n * `CHECK (char_length(name) >= 2)` or `CHECK (code ~ '^[A-Z]{3}$')` in that\n * simple form says the rest (adapters read them into `ColumnMeta.text`). A\n * schema-first App gets the database's words free; what the App says wins,\n * key by key.\n *\n * The browser judges a value as it is typed and says the rule under the\n * field; the server judges the stored row on every write (appValidation.ts),\n * whichever door the write came through. Pure: both sides read this one\n * judgement, so they cannot disagree about what \"at least 2\" counts.\n */\nimport { columnKind, type ColumnMeta } from './schema.js';\n\n/** A column's rule: fewest and most characters, a regular expression the whole value matches, and what to say. */\nexport interface TextRule {\n /** Fewest characters, after trimming. */\n min?: number;\n /** Most characters. */\n max?: number;\n /** A regular expression the whole value must match, as its source text. */\n pattern?: string;\n /** What the form says when the rule is not met; a generic sentence otherwise. */\n message?: string;\n}\n\nconst TEXT_RULE_KEYS = ['min', 'max', 'pattern', 'message'] as const;\n/** The most characters a rule may name, as a command's text input. */\nconst TEXT_RULE_MOST = 16384;\nconst MESSAGE_MOST = 200;\nconst PATTERN_MOST = 500;\n\n/** Which part of a rule a value breaks. */\ntype TextRuleBreak = 'min' | 'max' | 'pattern';\n\nconst IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\n/** A pattern's source as a whole-value test, or undefined where JavaScript cannot read it. */\nfunction wholePattern(source: string): RegExp | undefined {\n try {\n return new RegExp(`^(?:${source})$`, 'u');\n } catch {\n return undefined;\n }\n}\n\n/**\n * `resources.<name>.text`, read: an object of the resource's own columns, each\n * { min?, max?, pattern?, message? } with something to check. Throws the\n * sentence the author reads.\n */\nexport function parseTextRules(raw: unknown, at: string): Record<string, TextRule> {\n const shape = `${at} has a \"text\" that is not an object of the resource's own column → { min?, max?, pattern?, message? }, like text: { code: { pattern: '^[A-Z]{3}$' } }.`;\n if (!raw || typeof raw !== 'object' || Array.isArray(raw) || !Object.keys(raw).length) throw new Error(shape);\n const rules: Record<string, TextRule> = {};\n for (const [column, value] of Object.entries(raw as Record<string, unknown>)) {\n const here = `${at}, text \"${column}\"`;\n if (!IDENTIFIER.test(column)) throw new Error(`${here}: a text rule is keyed by the resource's own column, never a path.`);\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(shape);\n const given = value as Record<string, unknown>;\n const unknown = Object.keys(given).find((key) => !(TEXT_RULE_KEYS as readonly string[]).includes(key));\n if (unknown) throw new Error(`${here} has \"${unknown}\"; a text rule takes min, max, pattern and message.`);\n const rule: TextRule = {};\n for (const key of ['min', 'max'] as const) {\n if (given[key] === undefined) continue;\n const n = given[key];\n if (typeof n !== 'number' || !Number.isInteger(n) || n < 1 || n > TEXT_RULE_MOST) {\n throw new Error(`${here}: \"${key}\" must be a whole number of characters from 1 to ${TEXT_RULE_MOST}.`);\n }\n rule[key] = n;\n }\n if (rule.min !== undefined && rule.max !== undefined && rule.min > rule.max) throw new Error(`${here}: \"min\" is more than \"max\".`);\n if (given.pattern !== undefined) {\n const source = given.pattern;\n if (typeof source !== 'string' || !source || source.length > PATTERN_MOST) {\n throw new Error(`${here}: \"pattern\" must be a regular expression's source text, at most ${PATTERN_MOST} characters.`);\n }\n if (!wholePattern(source)) throw new Error(`${here}: \"pattern\" is not a regular expression JavaScript can read: ${source}`);\n rule.pattern = source;\n }\n if (given.message !== undefined) {\n if (typeof given.message !== 'string' || !given.message.trim() || given.message.length > MESSAGE_MOST) {\n throw new Error(`${here}: \"message\" must be a sentence of 1 to ${MESSAGE_MOST} characters.`);\n }\n rule.message = given.message.trim();\n }\n if (rule.min === undefined && rule.max === undefined && rule.pattern === undefined) {\n throw new Error(`${here} checks nothing; give it a \"min\", a \"max\" or a \"pattern\".`);\n }\n rules[column] = rule;\n }\n return rules;\n}\n\n/** Why a resource's text rules cannot run on this table, or undefined. Each must name a text column. */\nexport function textRulesProblem(\n rules: Readonly<Record<string, TextRule>>,\n columns: readonly ColumnMeta[],\n table: string,\n): string | undefined {\n for (const name of Object.keys(rules)) {\n const column = columns.find((candidate) => candidate.name === name);\n if (!column) return `text \"${name}\": \"${table}\" has no column \"${name}\".`;\n if (columnKind(column.type) !== 'text' || column.allowed?.length) {\n return `text \"${name}\" is ${column.allowed?.length ? 'a vocabulary' : column.type || 'untyped'}; a text rule checks a text column.`;\n }\n }\n return undefined;\n}\n\n/**\n * The rule a column is held to: the database's (`ColumnMeta.text`) with the\n * App's on top, key by key. Undefined where neither says anything.\n */\nexport function columnTextRule(column: Pick<ColumnMeta, 'text'>, authored?: TextRule): TextRule | undefined {\n const rule: TextRule = { ...(column.text ?? {}), ...(authored ?? {}) };\n return rule.min === undefined && rule.max === undefined && rule.pattern === undefined ? undefined : rule;\n}\n\n/** Characters as a person counts them, and as `char_length` does: code points, not UTF-16 units. */\nconst length = (text: string) => [...text].length;\n\n/** What a value breaks of its rule, or undefined. An empty value breaks nothing: whether one is needed is NOT NULL's to say. */\nexport function textRuleBreak(rule: TextRule, value: unknown): TextRuleBreak | undefined {\n if (typeof value !== 'string' || value === '') return undefined;\n if (rule.min !== undefined && length(value.trim()) < rule.min) return 'min';\n if (rule.max !== undefined && length(value) > rule.max) return 'max';\n if (rule.pattern !== undefined && !wholePattern(rule.pattern)?.test(value)) return 'pattern';\n return undefined;\n}\n\n/** A column's catalog rule as the database states it, for `ColumnMeta.text`; undefined where it states none. */\nexport function catalogTextRule(parts: { max?: number | null; min?: number; pattern?: string }): ColumnMeta['text'] {\n const rule: NonNullable<ColumnMeta['text']> = {};\n if (typeof parts.max === 'number' && Number.isInteger(parts.max) && parts.max > 0) rule.max = parts.max;\n if (parts.min !== undefined && parts.min > 0) rule.min = parts.min;\n if (parts.pattern !== undefined) rule.pattern = parts.pattern;\n return Object.keys(rule).length ? rule : undefined;\n}\n","/**\n * A New form's starting words, made values as it opens: `today` and `now` from\n * the App's clock and the zone its timestamps are written in (UTC when it names none), `me` from the server — the signed-in person's row\n * where a reference points at the table people are rows of, their email in a\n * text column. The server resolves `me` in a query it parses for this request,\n * so the browser never decides who someone is; it only asks.\n *\n * A word that cannot be made a value (nobody signed in, no row carries the\n * email) starts the field empty, and the form's own rules then ask for it.\n */\nimport { useQuery } from '@tanstack/react-query';\nimport { api, state } from '../core.js';\nimport { ownedBy } from '../requestIdentity.js';\nimport { equalityFilter } from '../resourceRequests.js';\nimport { formatClockZone } from '../locale.js';\nimport { formDefaultWord } from '@mistriwork/engine/shared/formValues.js';\nimport { primaryKey, type ColumnMeta, type TableMeta } from '@mistriwork/engine/shared/schema.js';\nimport { clockDefault, type FormCuration } from './newRecordModel.js';\n\ninterface MeAsk {\n column: string;\n target?: TableMeta;\n}\n\n/** Who `me` is, for each column that starts with it: a key, an email, or null for nobody. */\nasync function askMe(asks: readonly MeAsk[], connection: string | null): Promise<Record<string, string | number | null>> {\n const answers: Record<string, string | number | null> = {};\n let email: Promise<string | null> | undefined;\n for (const ask of asks) {\n if (ask.target) {\n const [pk] = primaryKey(ask.target);\n try {\n const data = await api('/api/run', {\n q: `${ask.target.id} ${pk} = me show ${pk}`,\n limit: 1,\n offset: 0,\n count: 'none',\n ...ownedBy(connection),\n });\n const key = (data.rows as Array<Record<string, unknown>> | undefined)?.[0]?.[pk];\n answers[ask.column] = typeof key === 'string' || typeof key === 'number' ? key : null;\n } catch {\n answers[ask.column] = null;\n }\n } else {\n email ??= api(connection ? `/api/whoami?app=${encodeURIComponent(connection)}` : '/api/whoami')\n .then((me: { who?: unknown }) => (typeof me.who === 'string' ? me.who : null))\n .catch(() => null);\n answers[ask.column] = await email;\n }\n }\n return answers;\n}\n\n/** The words a form's defaults say, by column: `today`, `now`, `me`. None in the Workbench, which reads the schema. */\nexport function formWords(\n table: TableMeta,\n form: FormCuration | undefined,\n app: boolean,\n): Array<{ column: ColumnMeta; word: 'today' | 'now' | 'me' }> {\n if (!app) return [];\n return Object.entries(form?.defaults ?? {}).flatMap(([name, value]) => {\n const column = table.columns.find((c: ColumnMeta) => c.name === name);\n const word = column && formDefaultWord(column, value);\n return word && column ? [{ column, word }] : [];\n });\n}\n\n/** The form with `today` and `now` made values, and `me` made the answers given (a column it has none for starts empty). */\nexport function resolvedForm(\n form: FormCuration | undefined,\n words: ReturnType<typeof formWords>,\n me: Record<string, string | number | null> = {},\n): FormCuration | undefined {\n if (!words.length) return form;\n const now = new Date();\n const resolved: Record<string, unknown> = { ...(form?.defaults ?? {}) };\n for (const { column, word } of words) {\n if (word !== 'me') resolved[column.name] = clockDefault(word, column, now, formatClockZone());\n else if (me[column.name] === null || me[column.name] === undefined) delete resolved[column.name];\n else resolved[column.name] = me[column.name];\n }\n return { ...form, defaults: resolved };\n}\n\n/** Who `me` is for a form's columns that start with it, or undefined while the server is asked. */\nexport function useMeDefaults(\n table: TableMeta,\n words: ReturnType<typeof formWords>,\n target: (tableId: string) => TableMeta | undefined,\n): Record<string, string | number | null> | undefined {\n const asks: MeAsk[] = words\n .filter((w) => w.word === 'me')\n .map(({ column }) => ({ column: column.name, ...(column.references ? { target: target(column.references.table) } : {}) }));\n const connection = state.activeConnection as string | null;\n const me = useQuery({\n queryKey: ['form-me', connection, table.id, asks.map((ask) => [ask.column, ask.target?.id])],\n queryFn: () => askMe(asks, connection),\n retry: false,\n staleTime: 60_000,\n });\n return me.isPending ? undefined : (me.data ?? {});\n}\n\n/**\n * A value the form takes from a referenced record (`defaults: { labor_charge: { from: 'service_id.price' } }`),\n * read as the reference is chosen: the referenced row's column, as the form's text, or '' when the row has none.\n * The server fills the same value where a create leaves it out, so a form that never asks still gets it.\n */\nexport async function derivedValue(\n path: string,\n reference: ColumnMeta,\n chosen: string,\n target: (tableId: string) => TableMeta | undefined,\n): Promise<string> {\n const to = reference.references && target(reference.references.table);\n const column = path.split('.')[1];\n if (!to || !column || chosen === '') return '';\n const key = reference.references?.column ?? primaryKey(to)[0];\n try {\n /* A computed column of the record is worked out by the statement a view runs; a table read has only what is\n stored (DM5). The server works the same figure out where a create leaves the value out. */\n const data =\n to.computed && Object.hasOwn(to.computed, column)\n ? await api('/api/view/run', {\n view: {\n id: `derived:${to.id}`,\n name: to.name,\n base: to.id,\n columns: [{ path: column }],\n filter: { groups: [[{ path: key, op: '=', value: chosen }]] },\n limit: 1,\n },\n })\n : await api('/api/query', {\n table: to.id,\n columns: [column],\n filter: equalityFilter({ [key]: chosen }),\n limit: 1,\n offset: 0,\n });\n const value = (data.rows as Array<Record<string, unknown>> | undefined)?.[0]?.[column];\n return value === null || value === undefined ? '' : String(value);\n } catch {\n return '';\n }\n}\n","/** What NewRecord says, in the forms room (packages/kit/src/client/messages.ts says how the catalog is split). */\nimport { defineMessages } from '../../../messages.js';\n\nexport const say = defineMessages({\n yyyyMmDdHh: 'YYYY-MM-DD HH:MM',\n fill: 'Fill in {column}.',\n enterAValidDate: 'Enter a valid date and time.',\n enterAValidDateInYyyy: 'Enter a valid date in YYYY-MM-DD format.',\n useAtLeast: 'Use at least {min} characters.',\n useAtMost: 'Use at most {max} characters.',\n enterTheExpectedForm: 'Enter a value in the expected form.',\n chooseFirst: 'Choose {waitingOn} first.',\n notNullWithNoDefault: 'NOT NULL with no default',\n emptyFieldsAreLeft: 'Empty fields are left to the database — defaults apply, keys are assigned.',\n addRow: 'Add row',\n adding: 'Adding...',\n cannotAddThisRecord: 'Cannot add this record. Required fields hidden by this form need valid defaults or visible controls: {map}.',\n assignedByTheDatabase: 'assigned by the database',\n defaultValue: 'Default: {value}',\n defaultSuppliedByTheDatabase: 'Default supplied by the database',\n one: ' (one of {allowed})',\n newThing: 'New {thing}',\n discardNewRecord: 'Discard new record?',\n yourEntriesHaveNotBeen: 'Your entries have not been saved.',\n discardRecord: 'Discard record',\n keepEditing: 'Keep editing',\n requiredMark: 'required',\n optionalWord: '(optional)',\n choosePlaceholder: 'Choose {label}',\n chooseOne: 'Choose one',\n addAtLeastLines: 'Add at least {min} lines.',\n});\n","/**\n * Adding a row, in a form the schema wrote.\n *\n * Nobody declares a form for this: the columns, their types, what is\n * required and what the database will fill are all in the catalog already.\n * Required is NOT NULL with no default and no auto-assigned key; everything\n * else is optional, and an empty box means \"leave it to the database\" — its\n * defaults are part of the schema's design and pre-filling them here would\n * turn every default into a value somebody appears to have chosen.\n *\n * Validation checks required values against the catalog. Constraints such\n * as uniqueness and reference integrity remain the database's responsibility.\n *\n * Two readers. The workbench reads the schema: `account_id integer\n * required`, `→ account`. An app's reader reads a form: \"Account\", a search\n * box that finds an account by name, and no word about integers. Same\n * fields, same values on the wire; only the dress differs. And two frames:\n * the workbench's dialog and the app's drawer over the list, one form\n * wearing either.\n */\nimport { useMessageLanguage } from './useMessageLanguage.js';\nimport { MultiStepForm } from './MultiStepForm.js';\nimport { Columns } from '@mistriwork/ui/FormParts.js';\nimport type { FormStep } from '@mistriwork/engine/shared/formValues.js';\nimport { useCallback, useEffect, useId, useLayoutEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react';\nimport { state, viewportBox, writeAllowed } from '../core.js';\nimport { RichTextField, mentionSearch } from './RichTextField.js';\nimport { createPortal } from 'react-dom';\nimport { Modal } from '@mistriwork/ui/Modal.js';\nimport { Button } from '@mistriwork/ui/Button.js';\nimport { ConfirmDialog } from './Prompt.js';\nimport { useForm } from '@tanstack/react-form';\nimport { columnKind, isFlagColumn, type ColumnMeta, type TableMeta } from '@mistriwork/engine/shared/schema.js';\nimport { humanName, vocabularyWord } from '@mistriwork/engine/shared/model.js';\nimport { inferredFormDefaults } from '@mistriwork/engine/shared/formValues.js';\nimport { sessionIdentity } from '../sessionIdentity.js';\nimport { Dropdown, readsAsName } from './Dropdown.js';\nimport { RecordPicker } from './RecordPicker.js';\nimport { DateField } from './DateField.js';\nimport { isPickerDate } from '@mistriwork/ui/internal/datePickerModel.js';\nimport { formatLocale, formatTimezone } from '../locale.js';\nimport { InputSlot, columnInput } from './inputRenderers.js';\nimport { autoKey, isRequired } from '@mistriwork/engine/shared/form.js';\nimport { columnTextRule, textRuleBreak, type TextRule } from '@mistriwork/engine/shared/textRules.js';\nimport { shell } from '../shellMode.js';\nimport { resourceOf } from './appRooms.js';\nimport { Icon } from './Icon.js';\nimport { isAppIcon, type AppIconName } from '@mistriwork/engine/shared/appIcons.js';\nimport { onDemand, useArrived } from './onDemand.js';\nimport type { FormScalar } from '@mistriwork/engine/shared/formValues.js';\nimport { isPickerDateTime } from '@mistriwork/ui/internal/datePickerModel.js';\nimport { defaultCurrency } from '../locale.js';\nimport { wordFor, type DisplayRule } from './valueModel.js';\nimport { rowCurrency } from '@mistriwork/engine/shared/money.js';\nimport { MinorMoneyInput, minorProblem } from './MinorMoneyInput.js';\nimport type { LineDraft } from '../shellMode.js';\nimport {\n fieldInput,\n flagStart,\n formColumns,\n formFrame,\n formGroups,\n hasFormChanges,\n insertValues,\n isFormFieldVisible,\n missingFields,\n narrowingCondition,\n presetValue,\n type FieldInput,\n type FormCuration,\n} from './newRecordModel.js';\nimport { derivedValue, formWords, resolvedForm, useMeDefaults } from './formDefaults.js';\nimport { useRecordInsert, type InsertResponse, type InsertResult } from './useRecordInsert.js';\nimport { say } from '../copy/forms/components/NewRecord.js';\n\nexport type { FormCuration } from './newRecordModel.js';\nexport { autoKey, isRequired } from '@mistriwork/engine/shared/form.js';\n\nconst DefinedInputs = onDemand(() => import('./DefinedFields.js'), 'DefinedInputs', { quiet: true });\n\nconst dateOnly = (column: ColumnMeta) => columnKind(column.type) === 'date' && !/time/i.test(column.type);\n/* A date is judged in the Workbench too; a date and time only where an App draws its picker. */\nconst invalidDate = (column: ColumnMeta, value: string, kind?: FieldInput) =>\n value !== '' && (dateOnly(column) ? !isPickerDate(value) : kind === 'datetime' && !isPickerDateTime(value));\n\nexport type { InsertResponse, InsertResult } from './useRecordInsert.js';\nimport type { InsertExtra } from './useRecordInsert.js';\nimport { addHostListener, removeHostListener, shellBody, shellById, shellQuery } from '../shellHost.js';\n\n/* What a text rule says when a value breaks it: the App's sentence, else the rule in plain words. */\nconst textRuleMessage = (rule: TextRule, value: string) => {\n const broken = textRuleBreak(rule, value);\n if (!broken) return '';\n if (rule.message) return rule.message;\n return broken === 'min'\n ? say('useAtLeast', { min: rule.min! })\n : broken === 'max'\n ? say('useAtMost', { max: rule.max! })\n : say('enterTheExpectedForm');\n};\n\nexport interface NewRecordProps {\n table: TableMeta;\n form?: FormCuration;\n /** An app's reader, or the workbench's. */\n app: boolean;\n /** A column's name as this app's reader knows it. */\n label: (column: ColumnMeta) => string;\n /** The table a reference points at, when the schema has it. */\n target: (tableId: string) => TableMeta | undefined;\n insert: (values: Record<string, unknown>, extra?: InsertExtra) => Promise<InsertResponse>;\n onAdded: (result: InsertResult) => void;\n onCancel: () => void;\n /** Veto voluntary dismissal before the frame changes its own open state. */\n canClose?: () => boolean;\n /** Nested/inline hosts keep an uncertain insert visible and non-dismissible. */\n retainUncertain?: boolean;\n /** How the App dresses a column (`display`): its vocabulary's words, its currency. */\n display?: (column: ColumnMeta) => DisplayRule | null | undefined;\n /** The App's name, over a New form drawn as a page. */\n appName?: string;\n /** True synchronously before dispatch; false only after a known local phase.\n * Cleanup never emits settlement. Used by the host's existing exit guard. */\n onUnresolvedChange?: (unresolved: boolean) => void;\n}\n\ntype Focusable = HTMLInputElement | HTMLButtonElement | HTMLTextAreaElement;\n\ntype FormBodyProps = NewRecordProps & {\n onPendingChange?: (pending: boolean) => void;\n onDiscardChange?: (needed: boolean) => void;\n /** Inline hosts omit introductory copy and retain uncertain attempts. */\n compact?: boolean;\n /** The frame the form stands in: its actions are that frame's. */\n frame?: 'drawer' | 'page' | 'dialog';\n};\n\n/* Where the shell has no lines part, nothing to wait for. */\nconst NO_LINES = { ready: () => Promise.resolve(), here: () => true };\n\n/** The fields, the required check and the save, apart from any frame: once its starting words (`today`, `me`) are values. */\nexport function NewRecordForm(props: FormBodyProps) {\n /* An App's form with lines or live figures waits for their part (FormLines.tsx, the shell's: shellMode.ts\n `formLines`), fetched the first time a form has them, so the form is drawn whole. */\n const wantsLines = props.app && !props.compact && Boolean(props.form?.lines?.length || props.form?.live?.length);\n const linesHere = useArrived(shell().slots.formLines ?? NO_LINES, wantsLines);\n if (wantsLines && !linesHere)\n return (\n <p className=\"insert-status\" role=\"status\">\n {say('common.loading')}\n </p>\n );\n const words = formWords(props.table, props.form, props.app);\n /* `me` is the server's to say, so only a form that starts with it waits on a question. */\n if (words.some((w) => w.word === 'me')) return <NewRecordFormAsking {...props} words={words} />;\n return <NewRecordFormBody {...props} form={resolvedForm(props.form, words)} />;\n}\n\nfunction NewRecordFormAsking({ words, ...props }: FormBodyProps & { words: ReturnType<typeof formWords> }) {\n const me = useMeDefaults(props.table, words, props.target);\n if (!me)\n return (\n <p className=\"insert-status\" role=\"status\">\n {say('common.loading')}\n </p>\n );\n return <NewRecordFormBody {...props} form={resolvedForm(props.form, words, me)} />;\n}\n\nfunction NewRecordFormBody({\n table,\n form,\n app,\n label: columnLabel,\n target,\n insert,\n onAdded,\n onCancel,\n onPendingChange,\n onDiscardChange,\n onUnresolvedChange,\n compact = false,\n retainUncertain = compact,\n display,\n frame = app ? 'drawer' : 'dialog',\n}: FormBodyProps) {\n useMessageLanguage();\n const assigned = autoKey(table);\n const columns = formColumns(table, form, app);\n const groups = formGroups(table, form, app);\n /* A switch is on or off, never \"leave it\": a flag it draws starts where the\n form, else the database, says — off for one that must be answered — and\n that start is sent like any default. */\n const flags = app\n ? columns\n .filter((column) => isFlagColumn(column) && !column.allowed?.length)\n .flatMap((column) => {\n const start = flagStart(column, form?.defaults ?? {});\n return start === undefined ? [] : [[column.name, start] as const];\n })\n : [];\n /* A vocabulary opens on the choice the database would write (`default 'booked'`), unless the form says another. */\n const defaults: Record<string, unknown> = {\n ...Object.fromEntries(flags),\n ...(app ? inferredFormDefaults({ columns }) : {}),\n ...(form?.defaults ?? {}),\n };\n const switches = new Set(flags.map(([name]) => name));\n /* Each field's dress on this form (`form.fields`), in an App only: the Workbench reads the schema. */\n /* The database's text rule, with the App's own on top (textRules.ts): judged as someone types. */\n const authoredText = app ? shell().app()?.resources?.[table.id]?.text : undefined;\n const textRule = (column: ColumnMeta) => columnTextRule(column, authoredText?.[column.name]);\n /* A record's tags (`tags` on the resource), chosen with the record and sent\n with it: the server inserts the link rows in the record's own transaction.\n Offered where this reader may add link rows. A tenant App's insert takes\n the row alone. */\n const tagRule = app && !sessionIdentity().tenantRequired ? shell().app()?.resources?.[table.id]?.tags : undefined;\n const tagThrough = tagRule ? target(tagRule.through) : undefined;\n const tagTable = tagRule ? target(tagRule.to) : undefined;\n /* The link table as the New form itself is judged (insert.js canInsert): the record's own connection is writable already. */\n const offersTags = Boolean(\n tagThrough && tagTable && !tagThrough.isView && tagThrough.insertable !== false && writeAllowed(tagThrough.id),\n );\n const [tagValues, setTagValues] = useState<string[]>([]);\n const textBroken = (column: ColumnMeta, value: unknown) => {\n const rule = textRule(column);\n return Boolean(rule && textRuleBreak(rule, value));\n };\n const dress = (column: ColumnMeta) =>\n app && form?.fields && Object.hasOwn(form.fields, column.name) ? form.fields[column.name] : undefined;\n const label = (column: ColumnMeta) => dress(column)?.label ?? columnLabel(column);\n const kindOf = (column: ColumnMeta): FieldInput | undefined =>\n app\n ? fieldInput(column, {\n money: display?.(column)?.format === 'money',\n richText: display?.(column)?.format === 'richText',\n multiline: dress(column)?.multiline,\n required: isRequired(column, assigned),\n hasStart:\n switches.has(column.name) ||\n (!isFlagColumn(column) && (presetValue(column, defaults) !== '' || column.default !== undefined || column.hasDefault === true)),\n reference: Boolean(column.references && target(column.references.table)),\n })\n : undefined;\n /* A money rule over the draft: where each record keeps its own currency (`currency: { column }`), the code the form holds. */\n const ruleIn = (column: ColumnMeta, values: Record<string, unknown>): DisplayRule | undefined => {\n const rule = display?.(column) ?? undefined;\n return rule?.currencyColumn\n ? {\n ...rule,\n currency: rowCurrency(rule, values, rule.currency ?? '') || undefined,\n }\n : rule;\n };\n /* An amount of minor units the box could not read as one (MinorMoneyInput.tsx). */\n const amountProblem = (column: ColumnMeta, values: Record<string, string>) => {\n const rule = app ? ruleIn(column, { ...defaults, ...values }) : undefined;\n return rule?.format === 'money' && rule.minor ? minorProblem(values[column.name], rule.currency ?? defaultCurrency()) : '';\n };\n /* The record's lines (`form.lines`), asked under its fields and inserted with it in one transaction\n (FormLines.tsx), on a tenant lease and under a row policy as anywhere else. */\n const linesPart = app && !compact ? shell().slots.formLines?.get() : undefined;\n const lineSets = (linesPart ? (form?.lines ?? []) : []).flatMap((line) => {\n const child = target(line.from);\n return child ? [{ ...line, table: child }] : [];\n });\n const [lines, setLines] = useState<Record<string, LineDraft[]>>(() =>\n Object.fromEntries(lineSets.map((line) => [line.table.id, Array.from({ length: line.min ?? 0 }, linesPart!.blankLine)])),\n );\n const [linesTried, setLinesTried] = useState(false);\n const lineChecks = Object.fromEntries(\n lineSets.map((line) => [\n line.table.id,\n linesPart!.lineProblems(line.table, line.show, lines[line.table.id] ?? [], [line.whose, ...(line.order ? [line.order] : [])]),\n ]),\n );\n const linesShort = lineSets.find((line) => (lines[line.table.id]?.length ?? 0) < (line.min ?? 0));\n const live = linesPart ? (form?.live ?? []) : [];\n /* What the form fills without asking (a bound parent key, a hidden default), as its boxes would hold it. */\n const draftDefaults = Object.fromEntries(\n Object.entries(defaults).map(([name, value]) => [name, value === null || value === undefined ? '' : String(value)]),\n );\n /* The fields whose choices read another: a picker narrowed by a project empties when the project changes. */\n const dependents = (name: string) => columns.filter((column) => Object.values(dress(column)?.where ?? {}).includes(name));\n /* Steps carve the New form into pages (`form.steps`); an inline Quick Add stays one row. */\n const steps = !compact && form?.steps?.length ? form.steps : undefined;\n const [stepIndex, setStepIndex] = useState(0);\n const stepOf = (name: string) => Math.max(0, steps?.findIndex((step) => step.fields.includes(name)) ?? 0);\n const errorPrefix = useId();\n const [validationAttempt, setValidationAttempt] = useState<{\n firstField?: string;\n }>();\n const tried = validationAttempt !== undefined;\n const [clearedServerFields, setClearedServerFields] = useState<Set<string>>(new Set());\n const [dirty, setDirty] = useState(false);\n const controls = useRef(new Map<string, Focusable | null>());\n const edited = useRef(new Set<string>());\n const pendingChange = useCallback(\n (pending: boolean) => {\n if (pending) onUnresolvedChange?.(true);\n onPendingChange?.(pending);\n },\n [onPendingChange, onUnresolvedChange],\n );\n const submission = useRecordInsert(insert, onAdded, pendingChange);\n useEffect(() => {\n setClearedServerFields(new Set());\n }, [submission.fieldErrors]);\n const hasVisibleServerErrors = submission.fieldErrors.some((error) => columns.some((column) => column.name === error.field));\n const firstVisibleServerField = submission.fieldErrors.find((error) => columns.some((column) => column.name === error.field))?.field;\n // useRecordInsert's pending=false also means a lost response or timeout.\n // Only its actual phase can release the supplemental host exit guard.\n useLayoutEffect(() => {\n onUnresolvedChange?.(submission.phase === 'pending' || submission.phase === 'uncertain');\n }, [submission.phase, onUnresolvedChange]);\n const needsDiscard = dirty && submission.phase === 'idle';\n useLayoutEffect(() => {\n onDiscardChange?.(needsDiscard);\n }, [needsDiscard, onDiscardChange]);\n useEffect(() => {\n if (!needsDiscard) return;\n const warn = (event: BeforeUnloadEvent) => {\n event.preventDefault();\n event.returnValue = '';\n };\n addHostListener(window, 'beforeunload', warn);\n return () => removeHostListener(window, 'beforeunload', warn);\n }, [needsDiscard]);\n const feedback = useRef<HTMLParagraphElement>(null);\n const status = useRef<HTMLParagraphElement>(null);\n useLayoutEffect(() => {\n const firstServerField = firstVisibleServerField && controls.current.has(firstVisibleServerField) ? firstVisibleServerField : undefined;\n if (firstServerField) controls.current.get(firstServerField)?.focus();\n else if (submission.problem) feedback.current?.focus();\n else if (submission.phase === 'pending') status.current?.focus();\n }, [submission.fieldErrors, submission.problem, submission.phase]);\n useLayoutEffect(() => {\n if (!validationAttempt) return;\n // Focus after the field descriptions and invalid state have been rendered.\n const control = validationAttempt.firstField === undefined ? feedback.current : controls.current.get(validationAttempt.firstField);\n control?.focus();\n }, [validationAttempt]);\n\n const preset = (column: ColumnMeta) => presetValue(column, defaults);\n const required = (column: ColumnMeta) => isRequired(column, assigned);\n const visibilityOf = (values: Record<string, string>) => {\n /* Untouched defaults are part of the draft even when the control\n * intentionally renders as an empty/omitted input. Once a user\n * edits a field, the live value wins, including an explicit clear. */\n const visibilityValues: Record<string, FormScalar> = {};\n for (const column of columns) {\n const candidate =\n edited.current.has(column.name) || !Object.hasOwn(defaults, column.name) ? values[column.name] : defaults[column.name];\n /* An empty box is no value: `insurer_id is not empty` is false while the picker is empty, not unknown. */\n if (candidate === '') visibilityValues[column.name] = null;\n else if (\n candidate === null ||\n typeof candidate === 'string' ||\n typeof candidate === 'boolean' ||\n (typeof candidate === 'number' && Number.isFinite(candidate))\n )\n visibilityValues[column.name] = candidate as FormScalar;\n }\n return visibilityValues;\n };\n\n const f = useForm({\n defaultValues: Object.fromEntries(columns.map((c) => [c.name, preset(c)])) as Record<string, string>,\n onSubmit: async ({ value }) => {\n if (submission.locked) return;\n submission.clearProblem();\n /* Required means required here, before the wire: a form that let the\n database say \"NOT NULL constraint failed: task.due_on\" had told the\n reader nothing it did not already know about the row and everything\n about the schema. Each missing field is marked where it is, and the\n first gets focus. */\n const values = insertValues(value, defaults, edited.current, table.columns);\n const missing = [\n ...missingFields(columns, values, assigned),\n ...missingFields(\n table.columns.filter((c) => !columns.includes(c)),\n values,\n assigned,\n form?.derived,\n ),\n ];\n const invalid = columns.filter(\n (column) =>\n invalidDate(column, value[column.name] ?? '', kindOf(column)) ||\n textBroken(column, value[column.name]) ||\n amountProblem(column, value),\n );\n const linesWrong =\n lineSets.length > 0 && (Boolean(linesShort) || Object.values(lineChecks).some((problems) => Object.keys(problems).length));\n if (linesWrong) setLinesTried(true);\n if (missing.length || invalid.length || linesWrong) {\n const firstField = missing.find((c) => columns.includes(c))?.name ?? invalid[0]?.name;\n // A field left empty on an earlier page takes the reader back to it.\n if (steps && firstField) setStepIndex(stepOf(firstField));\n setValidationAttempt({ firstField });\n return;\n }\n const sentLines = lineSets.length\n ? {\n lines: Object.fromEntries(\n lineSets.map((line) => [\n line.table.id,\n (lines[line.table.id] ?? []).map((row) => ({\n values: linesPart!.lineValues(row, line.show),\n })),\n ]),\n ),\n }\n : {};\n const extra = {\n ...(tagValues.length ? { tags: tagValues } : {}),\n ...sentLines,\n };\n await submission.submit(values, Object.keys(extra).length ? extra : undefined);\n },\n });\n\n /* The first box someone has to fill, not the first box. */\n useEffect(() => {\n const initialValues = Object.fromEntries(columns.map((c) => [c.name, preset(c)]));\n const first =\n columns.find((c) => isFormFieldVisible(form, c, initialValues, table) && required(c) && !preset(c)) ??\n columns.find((c) => isFormFieldVisible(form, c, initialValues, table));\n if (first) controls.current.get(first.name)?.focus();\n }, []);\n\n /* Leaving a step checks only what it owns; the next step starts unmarked. */\n const stepReady = (step: FormStep) => {\n const values = f.state.values;\n const visible = visibilityOf(values);\n const owned = columns.filter((column) => step.fields.includes(column.name) && isFormFieldVisible(form, column, visible, table));\n const missing = missingFields(owned, insertValues(values, defaults, edited.current, table.columns), assigned);\n const invalid = owned.filter(\n (column) =>\n invalidDate(column, values[column.name] ?? '', kindOf(column)) ||\n textBroken(column, values[column.name]) ||\n amountProblem(column, values),\n );\n setValidationAttempt(missing.length || invalid.length ? { firstField: missing[0]?.name ?? invalid[0]?.name } : undefined);\n return !missing.length && !invalid.length;\n };\n /* Enter goes forward a step rather than adding the record from its first page. */\n const advance = () => {\n const at = Math.min(stepIndex, steps!.length - 1);\n if (!stepReady(steps![at])) return;\n if (at === steps!.length - 1) void f.handleSubmit();\n else setStepIndex(at + 1);\n };\n useEffect(() => {\n if (steps && firstVisibleServerField) setStepIndex(stepOf(firstVisibleServerField));\n }, [submission.fieldErrors]); // eslint-disable-line react-hooks/exhaustive-deps\n\n /* The groups, laid out; within a step, only the fields that step owns. */\n const fieldsFor = (only?: ReadonlySet<string>, rows?: readonly (readonly string[])[]) => (\n <f.Subscribe selector={(state) => state.values}>\n {(values) => {\n const visibilityValues = visibilityOf(values);\n return (\n <>\n {groups.map((group, groupIndex) => {\n const fields = group.columns.filter(\n (column) => (!only || only.has(column.name)) && isFormFieldVisible(form, column, visibilityValues, table),\n );\n if (!fields.length) return null;\n const body = fields.map((column) => {\n const index = columns.indexOf(column);\n const kind = kindOf(column);\n const own = dress(column);\n /* A narrowed picker offers nothing until the fields it reads are filled, and says which. */\n /* It reads the draft, and the values the form fills without asking (a bound parent key, a default). */\n const narrowed = own?.where && kind === 'reference' ? narrowingCondition(own.where, { ...defaults, ...values }) : '';\n const waitingOn =\n narrowed === undefined\n ? Object.values(own!.where!)\n .map((name) => table.columns.find((c) => c.name === name))\n .filter((c): c is ColumnMeta => Boolean(c))\n .map(label)\n .join(' and ')\n : '';\n /* A row-defined column is its fields, for the definitions the chosen `per` picks (DefinedFields.tsx). */\n const binding = app ? resourceOf(shell().app(), table.id)?.defined?.[column.name] : undefined;\n if (binding)\n return (\n <f.Field key={column.name} name={column.name}>\n {(field) => (\n <DefinedInputs\n column={column.name}\n binding={binding}\n per={binding.per ? ({ ...defaults, ...values } as Record<string, unknown>)[binding.per] : undefined}\n value={field.state.value}\n errors={submission.fieldErrors}\n Control={PlatformControl}\n onChange={(text) => {\n edited.current.add(column.name);\n field.handleChange(text);\n setDirty(hasFormChanges(columns, f.state.values, defaults, edited.current));\n }}\n />\n )}\n </f.Field>\n );\n return (\n <f.Field key={column.name} name={column.name}>\n {(field) => {\n const missing =\n tried &&\n missingFields(\n [column],\n insertValues({ [column.name]: field.state.value }, defaults, edited.current, table.columns),\n assigned,\n ).length > 0;\n const serverError = submission.fieldErrors.find((error) => error.field === column.name);\n const fieldMessage = missing\n ? say('fill', { column: label(column) })\n : tried && invalidDate(column, field.state.value, kind)\n ? kind === 'datetime'\n ? say('enterAValidDate')\n : say('enterAValidDateInYyyy')\n : tried && amountProblem(column, values)\n ? amountProblem(column, values)\n : textRule(column) &&\n typeof field.state.value === 'string' &&\n textRuleMessage(textRule(column)!, field.state.value)\n ? textRuleMessage(textRule(column)!, field.state.value)\n : serverError && !clearedServerFields.has(column.name)\n ? serverError.message\n : '';\n const errorId = `${errorPrefix}-${index}-error`;\n const help = [own?.help, waitingOn ? say('chooseFirst', { waitingOn }) : ''].filter(Boolean).join(' ') || undefined;\n const helpId = help ? `${errorPrefix}-${index}-help` : undefined;\n return (\n <div className={`insert-field${app ? ' form-field' : ''}${fieldMessage ? ' missing is-invalid' : ''}`}>\n {app ? (\n /* A record's form asks as a command form does: an answer that may be left empty says so\n in a word beside its label, and a needed one is simply asked (docs/design.md, Access). */\n <div className=\"form-field-label-row\">\n <label className=\"form-field-label\">{label(column)}</label>\n {/* The space is in the markup: the stylesheet that once put it in a ::before is the\n forms room's, which a New drawer does not load (\"Phone(optional)\"). */}\n {!required(column) && (\n <>\n {' '}\n <span className=\"form-field-optional-word\">{say('optionalWord')}</span>\n </>\n )}\n </div>\n ) : (\n <label>\n {label(column)}\n <span className=\"type\">{column.type.toLowerCase()}</span>\n {column.primaryKey && <span className=\"pk\">{say('common.key')}</span>}\n {required(column) && (\n <span className=\"req\" title={say('notNullWithNoDefault')}>\n {say('requiredMark')}\n </span>\n )}\n </label>\n )}\n <Control\n column={column}\n app={app}\n input={app ? columnInput(table.id, column.name) : undefined}\n resource={table.id}\n required={required(column)}\n assigned={assigned}\n spoken={label(column)}\n target={target}\n value={field.state.value}\n kind={kind}\n rule={app ? ruleIn(column, { ...defaults, ...values }) : (display?.(column) ?? undefined)}\n placeholder={own?.placeholder}\n as={own?.as}\n where={narrowed === undefined ? undefined : narrowed || undefined}\n waiting={narrowed === undefined}\n helpId={helpId}\n onChange={(value) => {\n edited.current.add(column.name);\n field.handleChange(value);\n /* A value taken from the record this field names follows the choice, until the person says their own. */\n for (const [name, path] of Object.entries(form?.derived ?? {})) {\n if (!path?.startsWith(`${column.name}.`) || edited.current.has(name)) continue;\n void derivedValue(path, column, value, target).then((taken) => {\n if (!edited.current.has(name) && f.getFieldValue(column.name) === value) f.setFieldValue(name, taken);\n });\n }\n /* A choice narrowed by this field no longer belongs to it. */\n for (const dependent of dependents(column.name)) {\n if (f.getFieldValue(dependent.name)) {\n edited.current.add(dependent.name);\n f.setFieldValue(dependent.name, '');\n }\n }\n if (serverError)\n setClearedServerFields((previous) => {\n const next = new Set(previous);\n next.add(column.name);\n return next;\n });\n setDirty(hasFormChanges(columns, f.state.values, defaults, edited.current));\n }}\n explicitNull={\n !edited.current.has(column.name) && Object.hasOwn(defaults, column.name) && defaults[column.name] === null\n }\n register={(node) => controls.current.set(column.name, node)}\n errorId={fieldMessage ? errorId : undefined}\n />\n {help && (\n <p id={helpId} className=\"form-field-hint\">\n {help}\n </p>\n )}\n <span id={errorId} className=\"insert-missing\" aria-live=\"polite\" hidden={!fieldMessage}>\n {fieldMessage}\n </span>\n </div>\n );\n }}\n </f.Field>\n );\n });\n const placed = inRows(\n fields.map((column) => column.name),\n body,\n rows,\n );\n const groupHelp = app ? form?.groups?.find((authored) => authored.label === group.label)?.description : undefined;\n return group.label ? (\n <fieldset className=\"insert-group\" key={`${group.label}:${groupIndex}`}>\n <legend>{group.label}</legend>\n {groupHelp && <p className=\"insert-group-description\">{groupHelp}</p>}\n <div className=\"insert-group-fields\">{placed}</div>\n </fieldset>\n ) : (\n <div className=\"insert-group-fields\" key={`ungrouped:${groupIndex}`}>\n {placed}\n </div>\n );\n })}\n </>\n );\n }}\n </f.Subscribe>\n );\n\n /* The Workbench says what an empty box means; an App's form says what the\n author wrote (`description`), if anything — each field's own help says\n what leaving it empty does, where that is worth a sentence. */\n /* The form's `live` figures as its fields and lines change (FormLines.tsx). */\n const liveSummary = (\n <f.Subscribe selector={(state) => state.values}>\n {(values) => linesPart && <linesPart.LiveValues table={table} names={live} values={{ ...draftDefaults, ...values }} lines={lines} />}\n </f.Subscribe>\n );\n const lede = app ? form?.description : say('emptyFieldsAreLeft');\n const cancel = (\n <Button intent=\"secondary\" onClick={onCancel} disabled={submission.phase === 'pending' || (retainUncertain && submission.locked)}>\n {submission.locked && submission.phase !== 'pending' && !retainUncertain ? say('common.close') : say('common.cancel')}\n </Button>\n );\n\n return (\n <form\n className={`insert-form${app ? ' insert-form-app' : ''}`}\n aria-busy={submission.phase === 'pending'}\n onSubmit={(e) => {\n e.preventDefault();\n if (steps) advance();\n else void f.handleSubmit();\n }}\n >\n {!compact && lede && frame !== 'page' && <p className=\"insert-lede\">{lede}</p>}\n <fieldset className=\"insert-fields\" disabled={submission.locked}>\n {steps ? (\n <MultiStepForm\n steps={steps}\n step={stepIndex}\n onStepChange={(index) => setStepIndex(index)}\n className=\"insert-steps\"\n validateStep={(step) => stepReady(step)}\n onComplete={() => f.handleSubmit()}\n completeLabel={app ? say('common.add') : say('addRow')}\n leading={cancel}\n presentation={frame === 'page' ? 'page' : 'dialog'}\n {...(form?.style === 'intake' ? { style: 'intake' as const } : {})}\n >\n {(step) =>\n fieldsFor(new Set(step.fields), [...(step.rows ?? []), ...(form?.groups?.flatMap((group) => group.rows ?? []) ?? [])])\n }\n </MultiStepForm>\n ) : (\n fieldsFor(undefined, form?.showRows)\n )}\n {linesPart && lineSets.length > 0 && (!steps || stepIndex === steps.length - 1) && (\n <>\n {lineSets.map((line, at) => (\n <linesPart.LinesEditor\n key={line.table.id}\n title={line.label}\n table={line.table}\n columns={line.show}\n rows={lines[line.table.id] ?? []}\n ordered={Boolean(line.order)}\n max={line.max}\n problems={{\n ...(linesTried ? lineChecks[line.table.id] : {}),\n ...linesPart.lineServerProblems(line.table, submission.fieldErrors),\n }}\n onChange={(rows) => {\n setLines((previous) => ({\n ...previous,\n [line.table.id]: rows,\n }));\n setDirty(true);\n }}\n /* The totals stand beside the last grid's Add line, their figures under its amounts. */\n summary={at === lineSets.length - 1 && live.length > 0 ? liveSummary : undefined}\n />\n ))}\n {linesTried && linesShort && (\n <p className=\"form-lines-problem\" role=\"alert\">\n {say('addAtLeastLines', { min: linesShort.min! })}\n </p>\n )}\n </>\n )}\n {live.length > 0 && !lineSets.length && (!steps || stepIndex === steps.length - 1) && liveSummary}\n {offersTags && (!steps || stepIndex === steps.length - 1) && (\n <div className={`insert-field${app ? ' form-field' : ''}`}>\n <label className=\"form-field-label\">{humanName(tagTable!.name)}</label>\n <RecordPicker\n table={tagTable!}\n multiple\n value={tagValues}\n onChange={setTagValues}\n app\n hideKey\n ariaLabel={humanName(tagTable!.name)}\n />\n </div>\n )}\n </fieldset>\n <p ref={status} className=\"insert-status\" role=\"status\" tabIndex={-1} hidden={submission.phase !== 'pending'}>\n {say('adding')}\n </p>\n <f.Subscribe selector={(state) => state.values}>\n {(values) => {\n const hiddenMissing = tried\n ? missingFields(\n table.columns.filter((c) => !columns.includes(c)),\n insertValues(values, defaults, edited.current, table.columns),\n assigned,\n form?.derived,\n )\n : [];\n const problem = hasVisibleServerErrors\n ? ''\n : submission.problem ||\n (hiddenMissing.length\n ? say('cannotAddThisRecord', {\n map: hiddenMissing.map(label).join(', '),\n })\n : '');\n return (\n <p ref={feedback} className=\"insert-problem\" role=\"alert\" tabIndex={-1} hidden={!problem}>\n {problem}\n </p>\n );\n }}\n </f.Subscribe>\n {/* A stepped form's Cancel stands in the step's own row of actions, beside Back and Next. */}\n {!steps && (\n <NewRecordFrameFooter\n app={app}\n frame={frame}\n onCancel={onCancel}\n pending={submission.phase === 'pending'}\n locked={submission.locked}\n retainUncertain={retainUncertain}\n />\n )}\n </form>\n );\n}\n\n/**\n * A form's rows — a step's, a group's, `show`'s: fields the author put in one row (`[['first_name', 'last_name'], 'dob']`) stand side by side in\n * one Columns, where the form draws them in this order; a row with a field hidden or in another group is what is\n * left of it. Rows only gather neighbours, so the order of the fields is never changed.\n */\nfunction inRows(names: string[], nodes: ReactNode[], rows: readonly (readonly string[])[] | undefined): ReactNode[] {\n if (!rows?.some((row) => row.length > 1)) return nodes;\n const placed: ReactNode[] = [];\n let at = 0;\n while (at < names.length) {\n const row = rows.find((candidate) => candidate.length > 1 && candidate.includes(names[at]));\n let end = at + 1;\n while (row && end < names.length && row.includes(names[end])) end++;\n placed.push(end - at > 1 ? <Columns key={`row-${at}`}>{nodes.slice(at, end)}</Columns> : nodes[at]);\n at = end;\n }\n return placed;\n}\n\n/**\n * One control per shape, every one the page's own: a listbox for a\n * vocabulary or a flag, a record picker for a reference, a date box for a\n * date, a text box for the rest. Nothing native draws its menu over the\n * page in the OS's font.\n */\nfunction Control(\n props: Parameters<typeof PlatformControl>[0] & {\n /** The App's own input component for this column (`resources.<name>.inputs`). */\n input?: string;\n resource: string;\n },\n) {\n const { input, resource, ...rest } = props;\n const id = useId();\n if (!input) return <PlatformControl {...rest} />;\n /* The App's own input: it hands back text the form keeps, checks and inserts like any control's. */\n return (\n <InputSlot\n component={input}\n fallback={<PlatformControl {...rest} />}\n value={rest.value}\n onChange={(next) => rest.onChange(next === null ? '' : String(next))}\n id={`new-${id}`}\n describedBy={rest.errorId}\n invalid={Boolean(rest.errorId)}\n disabled={false}\n required={rest.required}\n label={rest.spoken}\n field={{ name: rest.column.name, resource }}\n context=\"new\"\n />\n );\n}\n\nlet controlsStyled = false;\n/** Whether the cards-and-buttons rules are here; the first field that wants them fetches the sheet. */\nfunction useControlsStyle(wanted: boolean): boolean {\n const [here, setHere] = useState(controlsStyled);\n useEffect(() => {\n if (!wanted || controlsStyled) return;\n let live = true;\n void import('./formControlsStyle.js').then(() => {\n controlsStyled = true;\n if (live) setHere(true);\n });\n return () => {\n live = false;\n };\n }, [wanted]);\n return here || controlsStyled;\n}\n\nexport function PlatformControl({\n column,\n app,\n required,\n assigned,\n spoken,\n target,\n value,\n onChange,\n register,\n explicitNull,\n errorId,\n kind,\n rule,\n placeholder,\n as,\n where,\n waiting = false,\n helpId,\n}: {\n column: ColumnMeta;\n app: boolean;\n /** Said to assistive technology as well as starred: the star is outside the control's name. */\n required: boolean;\n assigned: string | null;\n spoken: string;\n target: (tableId: string) => TableMeta | undefined;\n value: string;\n onChange: (value: string) => void;\n register: (node: Focusable | null) => void;\n explicitNull: boolean;\n errorId?: string;\n /** In an App, the input the column is drawn as (newRecordModel.fieldInput); the Workbench has none. */\n kind?: FieldInput;\n /** The column's display rule: its vocabulary's words, its currency. */\n rule?: DisplayRule;\n placeholder?: string;\n /** How the form's author draws a vocabulary or a flag (`form.fields.<column>.as`): cards, buttons, radios or a listbox. */\n as?: 'cards' | 'buttons' | 'radios' | 'select';\n /** A narrowed reference's condition; `waiting` while a field it reads is empty. */\n where?: string;\n waiting?: boolean;\n helpId?: string;\n}) {\n const dateId = useId();\n const radioName = useId();\n const styled = useControlsStyle(app && (as === 'cards' || as === 'buttons'));\n // The shared pickers expose their actual control through these refs. Keep\n // form validation on that focusable element, including after picker renders.\n const validation = useRef<{\n node: Focusable;\n errorId?: string;\n helpId?: string;\n invalid: string | null;\n } | null>(null);\n const setControl = (node: Focusable | null) => {\n const previous = validation.current;\n if (previous) {\n // Remove only our descriptions; picker owners may have changed theirs.\n const descriptions = (previous.node.getAttribute('aria-describedby') ?? '')\n .split(/\\s+/)\n .filter((id) => id && id !== previous.errorId && id !== previous.helpId);\n if (descriptions.length) previous.node.setAttribute('aria-describedby', descriptions.join(' '));\n else previous.node.removeAttribute('aria-describedby');\n if (previous.errorId && previous.node.getAttribute('aria-invalid') === 'true') {\n if (previous.invalid === null) previous.node.removeAttribute('aria-invalid');\n else previous.node.setAttribute('aria-invalid', previous.invalid);\n }\n validation.current = null;\n }\n if (node && (errorId || helpId)) {\n validation.current = {\n node,\n errorId,\n helpId,\n invalid: node.getAttribute('aria-invalid'),\n };\n const descriptions = (node.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean);\n if (errorId) node.setAttribute('aria-invalid', 'true');\n // The help first, then what is wrong: read in the order they are drawn.\n node.setAttribute(\n 'aria-describedby',\n [...new Set([...descriptions, ...(helpId ? [helpId] : []), ...(errorId ? [errorId] : [])])].join(' '),\n );\n }\n // A field that takes typing says it is required; a listbox's button cannot carry the state.\n if (node && node.matches('input, textarea, [role=\"combobox\"]')) {\n if (required) node.setAttribute('aria-required', 'true');\n else node.removeAttribute('aria-required');\n }\n register(node);\n };\n /* The default as the database spells it in the workbench — `'open'`,\n `CURRENT_TIMESTAMP` — and as a person would in an app: quotes off,\n capitalised, no arrow to a table name. */\n const plainDefault = String(column.default ?? '').replace(/^'(.*)'$/, '$1');\n const allowed = (column as ColumnMeta & { allowed?: string[] }).allowed;\n /* A stored word as the App says it everywhere else: its `values`, else the vocabulary's words. */\n const word = (stored: string) => (app ? (wordFor(rule, stored) ?? vocabularyWord(stored)) : stored);\n const hint = explicitNull\n ? app\n ? say('common.noValue')\n : 'null'\n : column.identity || column.name === assigned\n ? say('assignedByTheDatabase')\n : column.default !== undefined\n ? app\n ? say('defaultValue', {\n value: allowed?.includes(plainDefault) ? word(plainDefault) : plainDefault,\n })\n : `default: ${column.default}`\n : column.hasDefault === true\n ? say('defaultSuppliedByTheDatabase')\n : column.references\n ? `→ ${column.references.table}`\n : '';\n const said = placeholder ?? hint;\n /* An App's listbox with nothing chosen asks, quietly, as a command form's does; the workbench keeps its dash. */\n const unchosen =\n hint || (app ? (readsAsName(spoken) ? say('choosePlaceholder', { label: spoken.toLowerCase() }) : say('chooseOne')) : '—');\n const quietWhenEmpty = value === '' ? 'is-empty' : undefined;\n\n /* The author's word over the default the kind and the size pick (formRules.ts says which columns may take one). */\n if (app && (as === 'cards' || as === 'buttons') && (allowed?.length || isFlagColumn(column))) {\n if (!styled) return null;\n const words: readonly (readonly [string, string])[] = allowed?.length\n ? allowed.map((stored) => [stored, word(stored)] as const)\n : [\n ['1', say('common.yes')],\n ['0', say('common.no')],\n ];\n const cards = as === 'cards';\n return (\n <div className={cards ? 'choice-cards' : 'choice-pair'} role=\"radiogroup\" aria-label={spoken} aria-required={required || undefined}>\n {words.map(([stored, said], index) => (\n <label key={stored} className={`${cards ? 'choice-card' : 'choice-pick'}${value === stored ? ' is-on' : ''}`}>\n {cards && rule?.icons?.[stored] && isAppIcon(rule.icons[stored]) ? (\n <span className=\"choice-card-icon\" aria-hidden=\"true\">\n <Icon name={rule.icons[stored] as AppIconName} />\n </span>\n ) : null}\n {cards ? <span className=\"choice-card-label\">{said}</span> : null}\n <input\n type=\"radio\"\n name={radioName}\n value={stored}\n className=\"choice-input\"\n checked={value === stored}\n onChange={() => onChange(stored)}\n ref={index === 0 ? setControl : undefined}\n />\n {cards ? <span className=\"choice-box\" aria-hidden=\"true\" /> : said}\n </label>\n ))}\n </div>\n );\n }\n if (((kind === 'radios' && as !== 'select') || (as === 'radios' && app)) && allowed?.length) {\n return (\n <div className=\"command-choices insert-choices\" role=\"radiogroup\" aria-label={spoken} aria-required={required || undefined}>\n {allowed.map((stored, index) => (\n <label className=\"command-choice\" key={stored}>\n <input\n type=\"radio\"\n name={radioName}\n value={stored}\n checked={value === stored}\n onChange={() => onChange(stored)}\n ref={index === 0 ? setControl : undefined}\n />\n {word(stored)}\n </label>\n ))}\n </div>\n );\n }\n if (allowed?.length) {\n return (\n <Dropdown\n items={[{ value: '', label: unchosen }, ...allowed.map((v) => ({ value: v, label: word(v) }))]}\n value={value}\n valueClassName={quietWhenEmpty}\n ariaLabel={`${spoken}${app ? '' : say('one', { allowed: allowed.join(', ') })}`}\n onChange={onChange}\n buttonRef={setControl}\n />\n );\n }\n if (kind === 'switch' && as !== 'select') {\n /* A flag that is answered either way is a switch: on is yes, off is no — never \"leave it to the database\". */\n return (\n <label className=\"insert-switch\">\n <input\n ref={setControl}\n type=\"checkbox\"\n role=\"switch\"\n aria-label={spoken}\n checked={value === '1'}\n onChange={(e) => onChange(e.target.checked ? '1' : '0')}\n />\n <span aria-hidden=\"true\">{value === '1' ? say('common.yes') : say('common.no')}</span>\n </label>\n );\n }\n if (isFlagColumn(column)) {\n return (\n <Dropdown\n items={[\n { value: '', label: unchosen },\n { value: '1', label: app ? say('common.yes') : 'yes' },\n { value: '0', label: app ? say('common.no') : 'no' },\n ]}\n value={value}\n valueClassName={quietWhenEmpty}\n ariaLabel={`${spoken}${app ? '' : ` (${column.type})`}`}\n onChange={onChange}\n buttonRef={setControl}\n />\n );\n }\n const referenced = column.references ? target(column.references.table) : undefined;\n if (referenced) {\n return (\n <RecordPicker\n table={referenced}\n value={value}\n onChange={onChange}\n ariaLabel={spoken}\n app={app}\n inputRef={setControl}\n where={where}\n disabled={waiting}\n {...(placeholder ? { placeholder } : {})}\n />\n );\n }\n if (dateOnly(column) || kind === 'datetime') {\n return (\n <DateField\n id={dateId}\n inputRef={setControl}\n className=\"insert-input\"\n value={value}\n onChange={onChange}\n withTime={kind === 'datetime'}\n aria-label={app ? spoken : `${column.name} (${column.type})`}\n placeholder={said || (kind === 'datetime' ? say('yyyyMmDdHh') : 'YYYY-MM-DD')}\n locale={formatLocale()}\n timezone={formatTimezone()}\n />\n );\n }\n /* Formatted text: the editor, fetched when the form first draws one. A new record has no row yet for a\n picture to be attached to, so it takes pictures once it is saved and edited. */\n if (kind === 'richText') {\n return (\n <RichTextField\n label={spoken}\n value={value}\n onChange={onChange}\n {...(said ? { placeholder: said } : {})}\n {...(rule?.mentions ? { mentions: mentionSearch(rule.mentions, state.activeConnection) } : {})}\n />\n );\n }\n if (kind === 'textarea') {\n return (\n <textarea\n ref={setControl}\n className=\"insert-input\"\n rows={4}\n placeholder={said}\n aria-label={spoken}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n />\n );\n }\n const box = (style?: CSSProperties, shown = value, change = onChange) => (\n <input\n ref={setControl}\n style={style}\n type=\"text\"\n className=\"insert-input\"\n placeholder={app && column.name === assigned ? '' : said}\n aria-label={app ? spoken : `${column.name} (${column.type})`}\n autoComplete=\"off\"\n spellCheck={false}\n {...(kind === 'number' || kind === 'money' ? { inputMode: 'decimal' as const } : {})}\n value={shown}\n onChange={(e) => change(e.target.value)}\n />\n );\n if (kind !== 'money') return box();\n /* Money says its currency in the box, before the figure, as the figure will read once stored. */\n const currency = rule?.currency ?? defaultCurrency();\n /* Kept as minor units: typed as the figure, \"19.99\", and held as stored, 1999 (MinorMoneyInput.tsx). */\n if (rule?.minor)\n return (\n <MinorMoneyInput value={value} currency={currency} onChange={onChange}>\n {(text, typed) => <MoneyAffix sign={currencySymbol(currency)} box={(style) => box(style, text, typed)} />}\n </MinorMoneyInput>\n );\n return <MoneyAffix sign={currencySymbol(currency)} box={box} />;\n}\n\n/* Room between the sign and the first digit, as between a word and the next. */\nconst AFFIX_GAP = 4;\n\n/* The sign a currency is written with here: \"$\", \"€\", \"CHF\". Its own, as FilterRail's is: the lines grid that has\n the same (FormLines.tsx) is the App framework's part, fetched apart from the form. */\nfunction currencySymbol(currency: string): string {\n try {\n return (\n new Intl.NumberFormat(formatLocale(), { style: 'currency', currency }).formatToParts(0).find((part) => part.type === 'currency')\n ?.value ?? currency\n );\n } catch {\n return currency;\n }\n}\n\n/**\n * The currency sign before a money box's figure, and the box's text starting\n * after it. Where the text starts is measured from the sign as drawn — its\n * look's font, a wide sign (\"CHF\") — on the zoom-aware ruler, and given to\n * the box itself: a padding in `ch` of the box's font, which a look's own\n * padding outranked, left \"$\" over the first digit of \"1850\".\n */\nfunction MoneyAffix({ sign, box }: { sign: string; box: (style?: CSSProperties) => ReactNode }) {\n const unit = useRef<HTMLSpanElement>(null);\n const [inset, setInset] = useState<number | undefined>(undefined);\n useLayoutEffect(() => {\n const node = unit.current;\n const host = node?.parentElement;\n if (!node || !host) return;\n const measure = () => {\n const end = viewportBox(node).right - viewportBox(host).left;\n if (end > 0) setInset(Math.ceil(end) + AFFIX_GAP);\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(node);\n return () => observer.disconnect();\n }, [sign]);\n return (\n <span className=\"insert-affix\">\n <span ref={unit} className=\"insert-affix-unit\" aria-hidden=\"true\">\n {sign}\n </span>\n {box(inset === undefined ? undefined : { paddingLeft: `${inset}px` })}\n </span>\n );\n}\n\n/** Cancel and Add, in the frame's own dress: a drawer's foot, a page's actions under its last field, a dialog's row. */\nfunction NewRecordFrameFooter({\n app,\n frame,\n onCancel,\n pending,\n locked,\n retainUncertain = false,\n}: {\n app: boolean;\n frame: 'drawer' | 'page' | 'dialog';\n onCancel: () => void;\n pending: boolean;\n locked: boolean;\n retainUncertain?: boolean;\n}) {\n return (\n <div className={frame === 'page' ? 'form-actions' : app ? 'newpanel-foot' : 'confirm-actions'}>\n <Button intent=\"secondary\" onClick={onCancel} disabled={pending || (retainUncertain && locked)}>\n {locked && !pending && !retainUncertain ? say('common.close') : say('common.cancel')}\n </Button>\n <Button intent=\"primary\" type=\"submit\" disabled={locked}>\n {app ? say('common.add') : say('addRow')}\n </Button>\n </div>\n );\n}\n\n/** What Tab stops on inside the drawer. */\nconst TAB_STOPS =\n 'a[href], button:not(:disabled), input:not(:disabled):not([type=\"hidden\"]), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex=\"-1\"])';\n\n/** The form's heading, the way both frames say it. */\nfunction newRecordTitle(table: TableMeta, app: boolean): string {\n return say('newThing', {\n thing: app ? humanName(table.name).toLowerCase() : table.name,\n });\n}\n\n/**\n * The New form as an app shows it: a drawer over the list. A modal hid the\n * list you were on, fought the picker's menu for room, and could not be\n * linked to. Escape closes it — unless a picker or listbox inside is open,\n * which takes the first Escape.\n */\nexport function NewRecordDrawer(props: NewRecordProps) {\n const frame = props.app ? formFrame(props.form, formColumns(props.table, props.form, props.app).length) : 'drawer';\n const pane = frame === 'page' ? shellById('content') : null;\n return pane ? <NewRecordPage {...props} pane={pane} /> : <NewRecordSheet {...props} />;\n}\n\n/**\n * The New form as a page of its own (`form.open: 'page'`, or a long or\n * stepped form): drawn in the content pane, beside the App's menu, as a\n * command form is — one centred measure under the App's name and the\n * form's title. The list it was opened from stays where it was, hidden\n * rather than taken down, so Cancel finds it as it was left.\n */\nfunction NewRecordPage({ pane, ...props }: NewRecordProps & { pane: HTMLElement }) {\n const title = newRecordTitle(props.table, props.app);\n const titleId = useId();\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const opener = useRef(document.activeElement);\n useLayoutEffect(() => {\n pane.classList.add('has-new-page');\n pane.scrollTo?.({ top: 0 });\n return () => pane.classList.remove('has-new-page');\n }, [pane]);\n useEffect(\n () => () => {\n const back = opener.current;\n queueMicrotask(() => {\n const now = document.activeElement;\n if ((!now || now === document.body) && back instanceof HTMLElement && back.isConnected) back.focus({ preventScroll: true });\n });\n },\n [],\n );\n return createPortal(\n <div className=\"newrecord-page-host\">\n <section className=\"form-page newrecord-page\" aria-labelledby={titleId}>\n {props.appName && <p className=\"eyebrow\">{props.appName}</p>}\n <h1 id={titleId}>{title}</h1>\n {props.form?.description && <p className=\"form-page-description\">{props.form.description}</p>}\n <NewRecordForm\n {...props}\n frame=\"page\"\n onCancel={dismissal.close}\n onPendingChange={dismissal.change}\n onDiscardChange={dismissal.discardChange}\n />\n </section>\n {dismissal.discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </div>,\n pane,\n );\n}\n\n/**\n * Everything beside `panel` and beside each of its ancestors up to the shell's body made inert, until the release\n * this returns: out of the accessibility tree, the Tab order and hit testing. What was inert already is left as it\n * was; a popup's portal (one a field in the panel opens, or one the page keeps mounted and closed) and a live region,\n * which says a save's outcome, are left out.\n */\nfunction inertBehind(panel: HTMLElement): () => void {\n const made: HTMLElement[] = [];\n const top = shellBody();\n for (let node: HTMLElement = panel; node !== top && node.parentElement; node = node.parentElement) {\n for (const sibling of node.parentElement.children) {\n if (sibling === node || !(sibling instanceof HTMLElement) || sibling.inert) continue;\n if (sibling.matches('[data-base-ui-portal], [aria-live], [role=\"status\"], [role=\"alert\"]')) continue;\n sibling.inert = true;\n made.push(sibling);\n }\n if (node.parentElement === top) break;\n }\n return () => {\n for (const el of made) el.inert = false;\n };\n}\n\n/** The drawer frame: over the list's right side, which stays in sight. */\nfunction NewRecordSheet(props: NewRecordProps) {\n const title = newRecordTitle(props.table, props.app);\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const { pending, close: onCancel, discard } = dismissal;\n /* The drawer is not Modal.tsx (the list stays in sight), so nothing handed\n focus back when it went: the field that had it is removed and focus fell\n to the page itself. It goes back to what opened the drawer — the New\n button — unless the reader has already put it somewhere. */\n const opener = useRef(document.activeElement);\n const panel = useRef<HTMLElement>(null);\n const root = useRef<HTMLDivElement>(null);\n useEffect(\n () => () => {\n const back = opener.current;\n queueMicrotask(() => {\n const now = document.activeElement;\n if ((!now || now === document.body) && back instanceof HTMLElement && back.isConnected) back.focus({ preventScroll: true });\n });\n },\n [],\n );\n /* The page behind is inert while the drawer is open, as aria-modal says it is: a list drawn beside the form was\n still in the accessibility tree and under a finger, and a grade of Compass's New lead read the list's grid as a\n control drawn over the form's fields. Released before focus goes back to the New button, which is behind. */\n useLayoutEffect(() => (root.current ? inertBehind(root.current) : undefined), []);\n useEffect(() => {\n const popupOpen = () => shellQuery('.picker-popup:not([data-closed]) .picker-list, .dd-popup:not([data-closed]) .dd-list');\n /* Tab stays in the drawer. A pointer on the list closes the drawer first,\n so the keyboard gets no more of the list than the pointer does; and the\n drawer covers the list's right side, where Tab walked on under it. An\n open picker or listbox inside keeps its own keys. */\n const holdTab = (e: KeyboardEvent) => {\n const box = panel.current;\n if (!box || discard || popupOpen()) return;\n const stops = [...box.querySelectorAll<HTMLElement>(TAB_STOPS)].filter((el) => el.checkVisibility?.() ?? true);\n const first = stops[0],\n last = stops[stops.length - 1];\n if (!first || !last) return;\n const at = document.activeElement;\n if (!box.contains(at)) {\n e.preventDefault();\n first.focus();\n } else if (e.shiftKey && at === first) {\n e.preventDefault();\n last.focus();\n } else if (!e.shiftKey && at === last) {\n e.preventDefault();\n first.focus();\n }\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n holdTab(e);\n return;\n }\n if (e.key !== 'Escape') return;\n if (discard) return;\n if (popupOpen()) return;\n e.preventDefault();\n e.stopPropagation();\n onCancel();\n };\n addHostListener(document, 'keydown', onKey, true);\n return () => removeHostListener(document, 'keydown', onKey, true);\n }, [onCancel, discard]);\n\n return (\n <div ref={root} className=\"peekpanel-root\">\n <div className=\"peekpanel-backdrop\" onPointerDown={onCancel} />\n <aside ref={panel} className=\"peekpanel newpanel\" role=\"dialog\" aria-modal=\"true\" aria-label={title}>\n <div className=\"peekpanel-head\">\n <h2 className=\"peekpanel-title\">{title}</h2>\n <button type=\"button\" className=\"peekpanel-close\" aria-label={say('common.close')} onClick={onCancel} disabled={pending}>\n ×\n </button>\n </div>\n <div className=\"peekpanel-body newpanel-body\">\n <NewRecordForm {...props} onCancel={onCancel} onPendingChange={dismissal.change} onDiscardChange={dismissal.discardChange} />\n </div>\n </aside>\n {discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </div>\n );\n}\n\n/** Workbench and nested related creation share this dialog and the same form. */\nexport function NewRecordDialog(props: NewRecordProps) {\n const title = newRecordTitle(props.table, props.app);\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const unresolved = useCallback(\n (next: boolean) => {\n if (props.retainUncertain) dismissal.change(next);\n props.onUnresolvedChange?.(next);\n },\n [props.retainUncertain, props.onUnresolvedChange, dismissal.change],\n );\n return (\n <Modal\n className=\"confirm insert-dialog\"\n onClose={props.onCancel}\n closeDisabled={dismissal.pending}\n beforeClose={dismissal.beforeClose}\n ariaLabel={title}\n >\n <h2>{title}</h2>\n <NewRecordForm\n {...props}\n onCancel={dismissal.close}\n onPendingChange={props.retainUncertain ? undefined : dismissal.change}\n onUnresolvedChange={unresolved}\n onDiscardChange={dismissal.discardChange}\n />\n {dismissal.discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </Modal>\n );\n}\n\nexport function DiscardNewRecord({ onDone }: { onDone: (confirmed: boolean) => void }) {\n return (\n <ConfirmDialog\n title={say('discardNewRecord')}\n body={say('yourEntriesHaveNotBeen')}\n confirmLabel={say('discardRecord')}\n cancelLabel={say('keepEditing')}\n onDone={onDone}\n />\n );\n}\n\nexport function useRecordClose(onCancel: () => void, canClose?: () => boolean) {\n const [pending, setPending] = useState(false);\n const [discard, setDiscard] = useState(false);\n const busy = useRef(false);\n const dirty = useRef(false);\n const change = useCallback((next: boolean) => {\n busy.current = next;\n setPending(next);\n }, []);\n const discardChange = useCallback((next: boolean) => {\n dirty.current = next;\n }, []);\n const beforeClose = () => {\n if (busy.current || canClose?.() === false) return false;\n if (dirty.current) {\n setDiscard(true);\n return false;\n }\n return true;\n };\n const close = () => {\n if (beforeClose()) onCancel();\n };\n const resolve = (confirmed: boolean) => {\n setDiscard(false);\n if (confirmed && !busy.current && canClose?.() !== false) onCancel();\n };\n return {\n pending,\n change,\n close,\n beforeClose,\n discard,\n discardChange,\n resolve,\n };\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,QAAQ,MAAM;CACjB,YAAY,WAAW,gBAAgB;EACtC,KAAK,OAAO,WAAW,SAAS;EAChC,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI;EAC7B,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI;EACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI;EACzC,IAAI,gBAAgB,KAAK,UAAU,eAAe,IAAI;CACvD;CACA,SAAS,SAAS;EACjB,KAAK,KAAK,IAAI,OAAO;CACtB;CACA,IAAI,QAAQ;EACX,OAAO,KAAK,KAAK,IAAI;CACtB;CACA,MAAM;EACL,OAAO,KAAK;CACb;CACA,UAAU,cAAc;EACvB,OAAO,KAAK,KAAK,UAAU,WAAW,YAAY,CAAC;CACpD;AACD;AACA,IAAI,gBAAgB,MAAM;CACzB,YAAY,WAAW;EACtB,KAAK,OAAO,WAAW,SAAS;CACjC;CACA,IAAI,QAAQ;EACX,OAAO,KAAK,KAAK,IAAI;CACtB;CACA,MAAM;EACL,OAAO,KAAK;CACb;CACA,UAAU,cAAc;EACvB,OAAO,KAAK,KAAK,UAAU,WAAW,YAAY,CAAC;CACpD;AACD;AACA,SAAS,YAAY,WAAW,SAAS;CACxC,IAAI,OAAO,cAAc,YAAY,OAAO,IAAI,cAAc,SAAS;CACvE,IAAI,SAAS,OAAO,IAAI,MAAM,WAAW,OAAO;CAChD,OAAO,IAAI,MAAM,SAAS;AAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA,IAAI,gBAAgB,MAAM;CACzB,YAAY,IAAI,SAAS;EACxB,KAAK,KAAK;EACV,KAAK,UAAU;EACf,KAAK,oBAAoB;EACzB,KAAK,YAAY;EACjB,KAAK,gBAAgB,GAAG,SAAS;GAChC,MAAM,yBAAyB,KAAK,IAAI,IAAI,KAAK;GACjD,IAAI,KAAK,QAAQ,WAAW,0BAA0B,KAAK,QAAQ,MAAM,KAAK,QAAQ,GAAG,IAAI;QACxF;IACJ,KAAK,WAAW;IAChB,IAAI,CAAC,KAAK,aAAa,KAAK,QAAQ,UAAU;KAC7C,MAAM,kBAAkB,KAAK,QAAQ,OAAO;KAC5C,KAAK,YAAY;KACjB,KAAK,YAAY,iBAAiB;MACjC,IAAI,KAAK,aAAa,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ;KAC5D,GAAG,eAAe;IACnB;GACD;EACD;EACA,KAAK,WAAW,GAAG,SAAS;GAC3B,KAAK,GAAG,GAAG,IAAI;GACf,KAAK,QAAQ,YAAY,MAAM,IAAI;GACnC,KAAK,oBAAoB,KAAK,IAAI;GAClC,KAAK,aAAa;GAClB,KAAK,WAAW,KAAK;GACrB,KAAK,YAAY;EAClB;EACA,KAAK,cAAc;GAClB,IAAI,KAAK,aAAa,KAAK,UAAU,KAAK,QAAQ,GAAG,KAAK,QAAQ;EACnE;EACA,KAAK,eAAe;GACnB,KAAK,aAAa;GAClB,KAAK,WAAW,KAAK;GACrB,KAAK,YAAY;EAClB;EACA,KAAK,qBAAqB;GACzB,IAAI,KAAK,WAAW;IACnB,aAAa,KAAK,SAAS;IAC3B,KAAK,YAAY,KAAK;GACvB;EACD;EACA,IAAI,KAAK,QAAQ,YAAY,KAAK,KAAK,KAAK,QAAQ,aAAa,KAAK,GAAG;GACxE,KAAK,QAAQ,UAAU;GACvB,KAAK,QAAQ,WAAW;EACzB;CACD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,SAAS,aAAa,IAAI,SAAS;CAClC,OAAO,IAAI,cAAc,IAAI,OAAO,CAAC,CAAC;AACvC;;ACvHA,IAAI,cAAc,MAAM;CACvB,WAAW;CACX;CACA;CACA;CACA;CACA;CACA;CACA;CACA,cAAc;CACd,cAAc;CACd,cAAc;CACd,mBAAmB;CACnB,uBAAuB;CACvB,qBAAqB;EACpB,KAAK,SAAS,wBAAwB;EACtC,KAAK,aAAa;EAClB,KAAK,cAAc;EACnB,KAAK,SAAS,0BAA0B,KAAK,aAAa;EAC1D,KAAK,cAAc,SAAS,UAAU,KAAK,eAAe,KAAK,CAAC;EAChE,KAAK,gBAAgB,CAAC;EACtB,KAAK,gBAAgB;EACrB,KAAK,aAAa,CAAC,CAAC,oBAAoB,4BAA4B,KAAK,YAAY;CACtF;CACA,yBAAyB;EACxB,IAAI,KAAK,cAAc,KAAK,aAAa;GACxC,KAAK;GACL,KAAK,oBAAoB,oBAAoB,CAAC,CAAC;GAC/C;EACD;EACA,KAAK,aAAa,CAAC,CAAC,oBAAoB,oBAAoB,KAAK,gBAAgB;EACjF,KAAK,mBAAmB;EACxB,KAAK,SAAS,8CAA8C;EAC5D,KAAK,gBAAgB;CACtB;CACA,yBAAyB;EACxB,IAAI,KAAK,aAAa;EACtB,KAAK,cAAc;EACnB,KAAK,aAAa,CAAC,CAAC,iBAAiB,4BAA4B,KAAK,YAAY;EAClF,KAAK,iBAAiB;CACvB;CACA,YAAY,EAAE,UAAU,QAAQ,OAAO,UAAU,MAAM,mBAAmB,OAAO;EAChF,KAAK,YAAY;EACjB,KAAK,WAAW;EAChB,KAAK,eAAe,KAAK;EACzB,KAAK,SAAS;EACd,KAAK,SAAS,+CAA+C,KAAK,SAAS;EAC3E,KAAK,gBAAgB,CAAC;EACtB,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,KAAK,qBAAqB;EAC1B,KAAK,kBAAkB;CACxB;CACA,mBAAmB;EAClB,IAAI,KAAK,uBAAuB,QAAQ,KAAK,YAAY;EACzD,KAAK,SAAS,gCAAgC,KAAK,gBAAgB,IAAI;EACvE,KAAK,qBAAqB,YAAY,KAAK,kBAAkB,KAAK,eAAe;CAClF;CACA,kBAAkB;EACjB,KAAK,cAAc;EACnB,IAAI,KAAK,uBAAuB,MAAM;EACtC,cAAc,KAAK,kBAAkB;EACrC,KAAK,qBAAqB;EAC1B,KAAK,gBAAgB,CAAC;EACtB,KAAK,SAAS,sBAAsB;CACrC;CACA,SAAS,GAAG,MAAM;EACjB,IAAI,KAAK,QAAQ,QAAQ,IAAI,yBAAyB,KAAK,UAAU,WAAW,GAAG,IAAI;CACxF;CACA,kBAAkB;EACjB,IAAI,OAAO,eAAe,eAAe,WAAW,2BAA2B;GAC9E,KAAK,SAAS,2BAA2B;GACzC,OAAO,WAAW;EACnB;EACA,IAAI,OAAO,WAAW,eAAe,OAAO,OAAO,qBAAqB,aAAa;GACpF,KAAK,SAAS,8BAA8B;GAC5C,OAAO;EACR;EACA,MAAM,cAAc,OAAO,gBAAgB,cAAc,IAAI,YAAY,IAAI,KAAK;EAClF,IAAI,OAAO,gBAAgB,eAAe,OAAO,YAAY,qBAAqB,aAAa;GAC9F,KAAK,SAAS,8DAA8D;GAC5E,OAAO;IACN,wBAAwB,CAAC;IACzB,2BAA2B,CAAC;IAC5B,qBAAqB;GACtB;EACD;EACA,KAAK,SAAS,mCAAmC;EACjD,OAAO;CACR;CACA,cAAc;EACb,OAAO,KAAK;CACb;CACA,wBAAwB,WAAW,QAAQ;EAC1C,IAAI;GACH,MAAM,QAAQ,IAAI,MAAM,WAAW,EAAE,OAAO,CAAC;GAC7C,KAAK,aAAa,CAAC,CAAC,cAAc,KAAK;EACxC,SAAS,GAAG;GACX,KAAK,SAAS,+BAA+B;EAC9C;CACD;CACA,oBAAoB,WAAW,QAAQ;EACtC,IAAI;GACH,KAAK,aAAa,CAAC,CAAC,cAAc,IAAI,YAAY,WAAW,EAAE,OAAO,CAAC,CAAC;EACzE,SAAS,GAAG;GACX,KAAK,wBAAwB,WAAW,MAAM;EAC/C;CACD;CACA,eAAe,OAAO;EACrB,KAAK,SAAS,gCAAgC,KAAK;EACnD,KAAK,oBAAoB,2BAA2B,KAAK;CAC1D;CACA,mBAAmB,aAAa,SAAS;EACxC,OAAO;GACN,MAAM,GAAG,KAAK,UAAU,GAAG;GAC3B;GACA,UAAU,KAAK;EAChB;CACD;CACA,KAAK,aAAa,SAAS;EAC1B,IAAI,CAAC,KAAK,UAAU;GACnB,KAAK,SAAS,oDAAoD,aAAa,OAAO;GACtF;EACD;EACA,IAAI,KAAK,sBAAsB;GAC9B,KAAK,SAAS,2CAA2C,aAAa,OAAO;GAC7E,KAAK,qBAAqB,cAAc,IAAI,YAAY,GAAG,KAAK,UAAU,GAAG,eAAe,EAAE,QAAQ,KAAK,mBAAmB,aAAa,OAAO,EAAE,CAAC,CAAC;EACvJ;EACA,IAAI,KAAK,kBAAkB;GAC1B,KAAK,SAAS,mDAAmD;GACjE;EACD;EACA,IAAI,CAAC,KAAK,YAAY;GACrB,KAAK,SAAS,wDAAwD;GACtE,KAAK,cAAc,KAAK,KAAK,mBAAmB,aAAa,OAAO,CAAC;GACrE,IAAI,OAAO,gBAAgB,eAAe,CAAC,KAAK,aAAa;IAC5D,KAAK,iBAAiB;IACtB,KAAK,iBAAiB;GACvB;GACA;EACD;EACA,OAAO,KAAK,eAAe,KAAK,mBAAmB,aAAa,OAAO,CAAC;CACzE;CACA,GAAG,aAAa,IAAI,SAAS;EAC5B,MAAM,kBAAkB,SAAS,mBAAmB;EACpD,MAAM,YAAY,GAAG,KAAK,UAAU,GAAG;EACvC,IAAI,iBAAiB;GACpB,IAAI,CAAC,KAAK,sBAAsB,KAAK,uBAAuB,IAAI,YAAY;GAC5E,KAAK,qBAAqB,iBAAiB,YAAY,MAAM;IAC5D,GAAG,EAAE,MAAM;GACZ,CAAC;EACF;EACA,IAAI,CAAC,KAAK,UAAU;GACnB,KAAK,SAAS,uDAAuD,SAAS;GAC9E,aAAa,CAAC;EACf;EACA,MAAM,WAAW,MAAM;GACtB,KAAK,SAAS,2BAA2B,EAAE,MAAM;GACjD,GAAG,EAAE,MAAM;EACZ;EACA,KAAK,aAAa,CAAC,CAAC,iBAAiB,WAAW,OAAO;EACvD,KAAK,SAAS,2BAA2B,SAAS;EAClD,aAAa;GACZ,IAAI,iBAAiB,KAAK,sBAAsB,oBAAoB,WAAW,OAAO;GACtF,KAAK,aAAa,CAAC,CAAC,oBAAoB,WAAW,OAAO;EAC3D;CACD;CACA,MAAM,IAAI;EACT,IAAI,CAAC,KAAK,UAAU;GACnB,KAAK,SAAS,qDAAqD;GACnE,aAAa,CAAC;EACf;EACA,MAAM,WAAW,MAAM;GACtB,MAAM,QAAQ,EAAE;GAChB,GAAG,KAAK;EACT;EACA,KAAK,aAAa,CAAC,CAAC,iBAAiB,4BAA4B,OAAO;EACxE,aAAa,KAAK,aAAa,CAAC,CAAC,oBAAoB,4BAA4B,OAAO;CACzF;CACA,kBAAkB,IAAI;EACrB,IAAI,CAAC,KAAK,UAAU;GACnB,KAAK,SAAS,qDAAqD;GACnE,aAAa,CAAC;EACf;EACA,MAAM,WAAW,MAAM;GACtB,MAAM,QAAQ,EAAE;GAChB,IAAI,KAAK,aAAa,MAAM,aAAa,KAAK,WAAW;GACzD,GAAG,KAAK;EACT;EACA,KAAK,aAAa,CAAC,CAAC,iBAAiB,4BAA4B,OAAO;EACxE,aAAa,KAAK,aAAa,CAAC,CAAC,oBAAoB,4BAA4B,OAAO;CACzF;AACD;;AChMA,IAAM,kBAAN,cAA8B,YAAY;CACxC,cAAc;EACZ,MAAM;GACJ,UAAU;GACV,kBAAkB;EACpB,CAAC;CACH;AACF;AACA,IAAM,kBAAkB,IAAI,gBAAgB;;ACP5C,SAAS,iBAAiB,SAAS,OAAO;CACxC,OAAO,OAAO,YAAY,aAAa,QAAQ,KAAK,IAAI;AAC1D;AACA,SAAS,MAAM,KAAK,MAAM;CAExB,OADgB,cAAc,IACjB,CAAC,CAAC,QAAQ,SAAS,aAAa;EAC3C,IAAI,YAAY,MAAM,OAAO;EAC7B,IAAI,OAAO,YAAY,aACrB,OAAO,QAAQ;CAGnB,GAAG,GAAG;AACR;AACA,SAAS,MAAM,KAAK,OAAO,SAAS;CAClC,MAAM,OAAO,cAAc,KAAK;CAChC,SAAS,MAAM,QAAQ;EACrB,IAAI,CAAC,KAAK,QACR,OAAO,iBAAiB,SAAS,MAAM;EAEzC,MAAM,MAAM,KAAK,MAAM;EACvB,IAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;GAChF,IAAI,OAAO,WAAW,UAAU;IAC9B,IAAI,WAAW,MACb,SAAS,CAAC;IAEZ,OAAO;KACL,GAAG;MACF,MAAM,MAAM,OAAO,IAAI;IAC1B;GACF;GACA,OAAO,GACJ,MAAM,MAAM,EACf;EACF;EACA,IAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,QAAQ,UAAU;GACpD,MAAM,SAAS,OAAO,MAAM,GAAG,GAAG;GAClC,OAAO;IACL,GAAG,OAAO,SAAS,SAAS,IAAI,MAAM,GAAG;IACzC,MAAM,OAAO,IAAI;IACjB,GAAG,OAAO,MAAM,MAAM,CAAC;GACzB;EACF;EACA,OAAO,CAAC,GAAG,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC;CACpC;CACA,OAAO,MAAM,GAAG;AAClB;AACA,SAAS,SAAS,KAAK,OAAO;CAC5B,MAAM,OAAO,cAAc,KAAK;CAChC,SAAS,SAAS,QAAQ;EACxB,IAAI,CAAC,QAAQ;EACb,IAAI,KAAK,WAAW,GAAG;GACrB,MAAM,YAAY,KAAK;GACvB,IAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,cAAc,UAChD,OAAO,OAAO,QAAQ,GAAG,MAAM,MAAM,SAAS;GAEhD,MAAM,GAAG,YAAY,QAAQ,GAAG,SAAS;GACzC,OAAO;EACT;EACA,MAAM,MAAM,KAAK,MAAM;EACvB,IAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,MAAM,GACzE;OAAA,OAAO,WAAW,UACpB,OAAO;IACL,GAAG;KACF,MAAM,SAAS,OAAO,IAAI;GAC7B;EAAA;EAGJ,IAAI,OAAO,QAAQ,UACb;OAAA,MAAM,QAAQ,MAAM,GAAG;IACzB,IAAI,OAAO,OAAO,QAChB,OAAO;IAET,MAAM,SAAS,OAAO,MAAM,GAAG,GAAG;IAClC,OAAO;KACL,GAAG,OAAO,SAAS,SAAS,IAAI,MAAM,GAAG;KACzC,SAAS,OAAO,IAAI;KACpB,GAAG,OAAO,MAAM,MAAM,CAAC;IACzB;GACF;;EAEF,MAAM,IAAI,MAAM,yDAAyD;CAC3E;CACA,OAAO,SAAS,GAAG;AACrB;AACA,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,WAAW;AACjB,IAAM,UAAU;AAChB,IAAM,UAAU;AAChB,SAAS,cAAc,KAAK;CAC1B,IAAI,MAAM,QAAQ,GAAG,GACnB,OAAO,CAAC,GAAG,GAAG;CAEhB,IAAI,OAAO,QAAQ,UACjB,MAAM,IAAI,MAAM,wBAAwB;CAE1C,MAAM,MAAM,IAAI;CAChB,MAAM,SAAS,CAAC;CAChB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,UAAU,IAAI;CAC9D,IAAI,YAAY;CAChB,IAAI,OAAO;CACX,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,KAAK;EACpC,MAAM,OAAO,IAAI,MAAM,IAAI,WAAW,CAAC,IAAI;EAC3C,IAAI,MAAM,OAAO,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU;GACzE,MAAM,SAAS,IAAI;GACnB,IAAI,SAAS,GAAG;IACd,MAAM,gBAEJ,cACC,WAAW,KAAK,IAAI,WAAW,QAAQ,MAAM;IAEhD,MAAM,MAAM,IAAI,MAAM,UAAU,CAAC;IACjC,IAAI,eAAe;KACjB,MAAM,MAAM,SAAS,KAAK,EAAE;KAC5B,IAAI,UAAU,MAAM,OAAO,GAAG,MAAM,KAClC,OAAO,KAAK,GAAG;UAEf,OAAO,KAAK,GAAG;IAEnB,OACE,OAAO,KAAK,GAAG;GAEnB,OAAO,IAUL,SAAS,YAAY,EAAE,SAAS,MAAM,SAAS,aAAa,EAAE,SAAS,SAAS,SAAS,UAAU,SAAS,WAE5G,OAAO,KAAK,EAAE;GAEhB,WAAW,IAAI;GACf,YAAY;EACd,OAAO,IAAI,OAAO,WAAW,OAAO,SAClC,YAAY;EAEd,OAAO;CACT;CACA,IAAI,CAAC,OAAO,QAAQ,OAAO,KAAK,EAAE;CAClC,OAAO;AACT;AAYA,SAAS,gBAAgB,KAAK;CAC5B,OAAO,EAAE,MAAM,QAAQ,GAAG,KAAK,IAAI,WAAW;AAChD;AACA,SAAS,sBAAsB,OAAO,SAAS;CAC7C,MAAM,iBAAiB,UAAU;EAC/B,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,CAAC,KAAK,cAAc;GACzD,OAAO;IACL,OAAO,UAAU;IACjB,UAAU,UAAU;GACtB;EACF,CAAC;CACH;CACA,OAAO,QAAQ,gBAAgB;EAC7B,MAAM,QAAQ;EACd,OAAO,QAAQ;EACf,YAAY,QAAQ;EACpB,OAAO;GAAE,MAAM;GAAO,WAAW,QAAQ;GAAW,OAAO;EAAM;EACjE;CACF,CAAC;AACH;AACA,SAAS,uBAAuB,OAAO,SAAS;CAC9C,MAAM,EAAE,oBAAoB;CAC5B,MAAM,EACJ,uBACA,yBACA,6BACE,QAAQ,cAAc,CAAC;CAC3B,MAAM,oBAAoB,mBAAmB;CAC7C,MAAM,iBAAiB,UAAU;EAC/B,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC,CAAC,KAAK,cAAc;GACzD,MAAM,iBAAiB,WAAW,SAAS;GAC3C,IAAI,aAAa;GACjB,QAAQ,gBAAR;IACE,KAAK;KACH,aAAa,2BAA2B;KACxC;IACF,KAAK;KACH,aAAa,yBAAyB;KACtC;IACF,KAAK;KACH,aAAa,4BAA4B;KACzC;IACF,KAAK,UACH,aAAa;GAEjB;GACA,IAAI,UAAU,UACZ,aAAa;GAEf,OAAO;IACL,OAAO;IACP,UAAU,UAAU;IACpB;GACF;EACF,CAAC;CACH;CACA,OAAO,QAAQ,gBAAgB;EAC7B,MAAM,QAAQ;EACd,OAAO,QAAQ;EACf,YAAY,QAAQ;EACpB,OAAO;GAAE,MAAM;GAAO,WAAW,QAAQ;GAAW,OAAO;EAAK;EAChE;CACF,CAAC;AACH;AACA,IAAM,+BAA+B,UAAU;CAC7C,OAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,YAAY;AAC7D;AACA,SAAS,SAAS,MAAM,MAAM;CAC5B,IAAI,OAAO,GAAG,MAAM,IAAI,GACtB,OAAO;CAET,IAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,OAAO,SAAS,YAAY,SAAS,MACpF,OAAO;CAET,IAAI,gBAAgB,QAAQ,gBAAgB,MAC1C,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ;CAEzC,IAAI,gBAAgB,OAAO,gBAAgB,KAAK;EAC9C,IAAI,KAAK,SAAS,KAAK,MAAM,OAAO;EACpC,KAAK,MAAM,CAAC,GAAG,MAAM,MACnB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,OAAO;EAEzD,OAAO;CACT;CACA,IAAI,gBAAgB,OAAO,gBAAgB,KAAK;EAC9C,IAAI,KAAK,SAAS,KAAK,MAAM,OAAO;EACpC,KAAK,MAAM,KAAK,MACd,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO;EAE3B,OAAO;CACT;CACA,MAAM,QAAQ,OAAO,KAAK,IAAI;CAC9B,MAAM,QAAQ,OAAO,KAAK,IAAI;CAC9B,IAAI,MAAM,WAAW,MAAM,QACzB,OAAO;CAET,IAAI,MAAM,WAAW,KAAK,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,QAAQ,IAAI,MAAM,OAAO,eAAe,IAAI,MAAM,OAAO,aAAa,OAAO,eAAe,IAAI,MAAM,OAAO,YACpK,OAAO;CAET,KAAK,MAAM,OAAO,OAChB,IAAI,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,KAAK,IAAI,GACxD,OAAO;CAGX,OAAO;AACT;AACA,IAAM,yCAAyC,EAC7C,uBACA,kCACA,yBACI;CACJ,IAAI,uBACF,OAAO;EAAE,eAAe;EAAuB,WAAW;CAAO;CAEnE,IAAI,kCACF,OAAO;EAAE,eAAe,KAAK;EAAG,WAAW,KAAK;CAAE;CAEpD,IAAI,oBACF,OAAO;EAAE,eAAe;EAAoB,WAAW;CAAQ;CAEjE,OAAO;EAAE,eAAe,KAAK;EAAG,WAAW,KAAK;CAAE;AACpD;AACA,IAAM,0CAA0C,EAC9C,gBACA,sBACI;CACJ,IAAI,iBACF,OAAO;EAAE,eAAe;EAAiB,WAAW;CAAQ;CAE9D,IAAI,gBACF,OAAO;EAAE,eAAe;EAAgB,WAAW;CAAO;CAE5D,OAAO;EAAE,eAAe,KAAK;EAAG,WAAW,KAAK;CAAE;AACpD;AAQA,SAAS,UAAU,cAAc,WAAW;CAC1C,IAAI,iBAAiB,KAAK,KAAK,iBAAiB,MAC9C,OAAO;CAET,OAAO;EAAE,GAAG;EAAc,GAAG;CAAU;AACzC;AACA,IAAI,MAAM;AACV,IAAM,MAAM,CAAC;AACb,IAAI;AACJ,OAAO,OACL,IAAI,QAAQ,MAAM,IAAA,CAAK,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC;AAEjD,SAAS,OAAO;CACd,IAAI,IAAI;CACR,IAAI;CACJ,IAAI,MAAM;CACV,IAAI,CAAC,UAAU,MAAM,KAAK,KAAK;EAC7B,SAAS,IAAI,MAAM,GAAG;EACtB,IAAI;EACJ,OAAO,KACL,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI;EAEpC,IAAI;EACJ,MAAM;CACR;CACA,OAAO,IAAI,IAAI,KAAK;EAClB,MAAM,OAAO,MAAM;EACnB,IAAI,MAAM,GAAG,OAAO,IAAI,MAAM,KAAK;OAC9B,IAAI,MAAM,GAAG,OAAO,IAAI,MAAM,KAAK;OACnC,OAAO,IAAI;EAChB,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,OAAO;CACvC;CACA;CACA,OAAO;AACT;AACA,IAAM,oBAAoB,cACvB,SAAS,gBAAgB,KAAK,cAAc;CAC3C,IAAI,KAAK;CACT,OAAO,KAAK,MAAM;AACpB,CAAC,GACD,EACE,MAAM,IACR,CACF;AACA,SAAS,SAAS,KAAK;CACrB,IAAI,QAAQ,QAAQ,OAAO,QAAQ,UACjC,OAAO;CAET,IAAI,eAAe,MACjB,OAAO,IAAI,KAAK,IAAI,QAAQ,CAAC;CAE/B,IAAI,MAAM,QAAQ,GAAG,GAAG;EACtB,MAAM,UAAU,CAAC;EACjB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,QAAQ,KAAK,SAAS,IAAI,EAAE;EAE9B,OAAO;CACT;CACA,IAAI,eAAe,KAAK;EACtB,MAAM,0BAA0B,IAAI,IAAI;EACxC,IAAI,SAAS,OAAO,QAAQ;GAC1B,QAAQ,IAAI,KAAK,SAAS,KAAK,CAAC;EAClC,CAAC;EACD,OAAO;CACT;CACA,IAAI,eAAe,KAAK;EACtB,MAAM,0BAA0B,IAAI,IAAI;EACxC,IAAI,SAAS,UAAU;GACrB,QAAQ,IAAI,SAAS,KAAK,CAAC;EAC7B,CAAC;EACD,OAAO;CACT;CACA,MAAM,OAAO,CAAC;CACd,KAAK,MAAM,OAAO,KAChB,IAAI,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,GAC/C,KAAK,OAAO,SAAS,IAAI,IAAI;CAGjC,OAAO;AACT;AACA,SAAS,eAAe,WAAW,WAAW;CAC5C,OAAO,cAAc,aAAa,UAAU,WAAW,GAAG,UAAU,EAAE,KAAK,UAAU,WAAW,GAAG,UAAU,EAAE;AACjH;;ACvVA,IAAM,0BAA0B,UAAU;CACxC,IAAI,CAAC,MAAM,YACT,OAAO,MAAM,cAAc;EACzB,YAAY,CAAC;EACb,MAAM,MAAM;CACd,CAAC;CAEH,MAAM,UAAU,MAAM,MAAM;CAC5B,MAAM,mBAAmB,UAAU,KAAK,IAAI;EAAE,IAAI,MAAM,WAAW;EAAS,OAAO;CAAQ;CAC3F,MAAM,oBAAoB;EACxB,IAAI,UAAU,MAAM,WAAW,gBAAgB,MAAM,WAAW;EAChE,OAAO;CACT;CACA,MAAM,kBAAkB;EACtB,IAAI,UAAU,MAAM,WAAW,cAAc,MAAM,WAAW;EAC9D,OAAO;CACT;CACA,MAAM,oBAAoB;EACxB,IAAI,UAAU,MAAM,WAAW,gBAAgB,MAAM,WAAW;EAChE,OAAO;CACT;CACA,MAAM,oBAAoB,UAAU,KAAK,IAAI;EAAE,UAAU,KAAK;EAAG,OAAO;CAAS;CACjF,QAAQ,MAAM,MAAM,MAApB;EACE,KAAK,SACH,OAAO,MAAM,cAAc;GACzB,YAAY,CAAC,gBAAgB;GAC7B,MAAM,MAAM;EACd,CAAC;EAEH,KAAK,UACH,OAAO,MAAM,cAAc;GACzB,YAAY;IACV;IACA;IACA;IACA;GACF;GACA,MAAM,MAAM;EACd,CAAC;EAEH,KAAK,UACH,OAAO,MAAM,cAAc;GACzB,YAAY,CAAC;GACb,MAAM,MAAM;EACd,CAAC;EAEH,KAAK,QACH,OAAO,MAAM,cAAc;GACzB,YAAY,CAAC,iBAAiB,iBAAiB;GAC/C,MAAM,MAAM;EACd,CAAC;EAEH,KAAK,UACH,OAAO,MAAM,cAAc;GACzB,YAAY,CAAC,mBAAmB,iBAAiB;GACjD,MAAM,MAAM;EACd,CAAC;EAEH,SACE,MAAM,IAAI,MAAM,kCAAkC,MAAM,MAAM,MAAM;CAExE;AACF;;ACrGA,SAAS,qBAAqB,QAAQ,WAAW;CAC/C,MAAM,yBAAyB,IAAI,IAAI;CACvC,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,YAAY,MAAM,QAAQ,CAAC;EACjC,IAAI,mBAAmB;EACvB,IAAI,OAAO;EACX,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;GACzC,MAAM,cAAc,UAAU;GAC9B,IAAI,gBAAgB,KAAK,GAAG;GAC5B,MAAM,UAAU,OAAO,gBAAgB,WAAW,YAAY,MAAM;GACpE,MAAM,kBAAkB,OAAO,OAAO;GACtC,IAAI,MAAM,QAAQ,gBAAgB,KAAK,CAAC,OAAO,MAAM,eAAe,GAClE,QAAQ,IAAI,gBAAgB;QAE5B,SAAS,IAAI,IAAI,MAAM,MAAM,OAAO,OAAO;GAE7C,IAAI,OAAO,qBAAqB,YAAY,qBAAqB,MAC/D,mBAAmB,iBAAiB;QAEpC,mBAAmB,KAAK;EAE5B;EACA,OAAO,IAAI,OAAO,OAAO,IAAI,IAAI,KAAK,CAAC,EAAA,CAAG,OAAO,KAAK,CAAC;CACzD;CACA,OAAO,OAAO,YAAY,MAAM;AAClC;AACA,IAAM,uBAAuB,QAAQ,cAAc;CACjD,MAAM,eAAe,qBAAqB,QAAQ,SAAS;CAC3D,OAAO;EACL,MAAM;EACN,QAAQ;CACV;AACF;AACA,IAAM,2BAA2B;CAC/B,SAAS,EACP,OACA,oBACC,QAAQ;EACT,MAAM,SAAS,OAAO,YAAY,CAAC,SAAS,KAAK;EACjD,IAAI,kBAAkB,SACpB,MAAM,IAAI,MAAM,yCAAyC;EAE3D,IAAI,CAAC,OAAO,QAAQ;EACpB,IAAI,qBAAqB,SACvB,OAAO,OAAO;EAEhB,OAAO,oBAAoB,OAAO,QAAQ,KAAK;CACjD;CACA,MAAM,cAAc,EAClB,OACA,oBACC,QAAQ;EACT,MAAM,SAAS,MAAM,OAAO,YAAY,CAAC,SAAS,KAAK;EACvD,IAAI,CAAC,OAAO,QAAQ;EACpB,IAAI,qBAAqB,SACvB,OAAO,OAAO;EAEhB,OAAO,oBAAoB,OAAO,QAAQ,KAAK;CACjD;AACF;AACA,IAAM,6BAA6B,cAAc,CAAC,CAAC,aAAa,eAAe;;AC5D/E,IAAM,mBAAmB;CACvB,cAAc;CACd,WAAW;CACX,WAAW;CACX,SAAS;CACT,YAAY;CACZ,SAAS;CACT,gBAAgB;CAChB,QAAQ,CAAC;CACT,UAAU,CAAC;CACX,gBAAgB,CAAC;CACjB,eAAe;CACf,0BAA0B;AAC5B;AACA,SAAS,WAAW,SAAS;CAC3B,SAAS,iBAAiB,OAAO;EAC/B,MAAM,cAAc,QAAQ,aAAa,KAAK,KAAK;EACnD,QAAQ,aAAa,OAAO;GAC1B,GAAG;GACH,gBAAgB,YAAY,iBAAiB,KAAK;EACpD,CAAC;CACH;CACA,SAAS,gBAAgB,OAAO,WAAW,SAAS;EAClD,iBAAiB,KAAK;EACtB,MAAM,iBAAiB,kBAAkB,OAAO,WAAW,QAAQ,OAAO;EAC1E,MAAM,aAAa,KAAK,IAAI,WAAW,OAAO;EAC9C,MAAM,WAAW,KAAK,IAAI,WAAW,OAAO;EAC5C,KAAK,IAAI,IAAI,YAAY,KAAK,UAAU,KACtC,eAAe,KAAK,aAAa,OAAO,CAAC,CAAC;EAE5C,MAAM,aAAa,OAAO,KAAK,QAAQ,SAAS,CAAC,CAAC,QAC/C,UAAU,aAAa;GACtB,IAAI,SAAS,WAAW,aAAa,OAAO,SAAS,CAAC,GACpD,SAAS,IACP,UACA,QAAQ,aAAa,QAAQ,CAC/B;GAEF,OAAO;EACT,mBACgB,IAAI,IAAI,CAC1B;EACA,UAAU,gBAAgB,YAAY,UAAU,OAAO,MAAM;EAC7D,OAAO,KAAK,QAAQ,SAAS,CAAC,CAAC,QAAQ,aAAa,SAAS,WAAW,aAAa,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa;GAC3H,MAAM,UAAU,SAAS,QACvB,aAAa,OAAO,OAAO,GAC3B,aAAa,OAAO,SAAS,CAC/B;GACA,MAAM,WAAW,WAAW,IAAI,OAAO;GACvC,IAAI,UACF,QAAQ,aAAa,UAAU,QAAQ;EAE3C,CAAC;CACH;CACA,SAAS,kBAAkB,OAAO,OAAO;EACvC,iBAAiB,KAAK;EAEtB,UADuB,kBAAkB,OAAO,OAAO,QAChC,GAAG,IAAI;CAChC;CACA,SAAS,gBAAgB,OAAO,OAAO,aAAa;EAClD,iBAAiB,KAAK;EAEtB,kBADyC,OAAO,OAAO,QAAQ,WAClD,CAAC,CAAC,SAAS,aAAa;GACnC,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,aAAa,OAAO,KAAK,CAAC,GAC5D;GAEF,MAAM,aAAa,SAAS,SAAS,CAAC,CAAC,QACrC,aAAa,OAAO,KAAK,GACzB,aAAa,OAAO,WAAW,CACjC;GACA,MAAM,CAAC,OAAO,SAAS,CACrB,QAAQ,aAAa,QAAQ,GAC7B,QAAQ,aAAa,UAAU,CACjC;GACA,IAAI,OAAO,QAAQ,aAAa,YAAY,KAAK;GACjD,IAAI,OAAO,QAAQ,aAAa,UAAU,KAAK;EACjD,CAAC;CACH;CACA,SAAS,kBAAkB,OAAO,aAAa;EAC7C,iBAAiB,KAAK;EACtB,MAAM,iBAAiB,kBAAkB,OAAO,aAAa,QAAQ;EACrE,UAAU,gBAAgB,MAAM;EAChC,eAAe,SAAS,aAAa;GACnC,IAAI,SAAS,SAAS,CAAC,CAAC,WAAW,aAAa,OAAO,WAAW,CAAC,GACjE,QAAQ,aAAa,UAAU,kBAAkB,CAAC;EAEtD,CAAC;CACH;CACA,SAAS,aAAa,OAAO,OAAO;EAClC,OAAO,GAAG,MAAM,GAAG,MAAM;CAC3B;CACA,SAAS,kBAAkB,OAAO,OAAO,MAAM,aAAa;EAC1D,MAAM,oBAAoB,CAAC,aAAa,OAAO,KAAK,CAAC;EACrD,QAAQ,MAAR;GACE,KAAK;IACH,kBAAkB,KAAK,aAAa,OAAO,WAAW,CAAC;IACvD;GACF,KAAK,QAAQ;IACX,MAAM,CAAC,YAAY,YAAY,CAC7B,KAAK,IAAI,OAAO,WAAW,GAC3B,KAAK,IAAI,OAAO,WAAW,CAC7B;IACA,KAAK,IAAI,IAAI,YAAY,KAAK,UAAU,KACtC,kBAAkB,KAAK,aAAa,OAAO,CAAC,CAAC;IAE/C;GACF;GACA,SAAS;IACP,MAAM,eAAe,QAAQ,cAAc,KAAK;IAChD,MAAM,aAAa,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS;IACvE,KAAK,IAAI,IAAI,QAAQ,GAAG,IAAI,YAAY,KACtC,kBAAkB,KAAK,aAAa,OAAO,CAAC,CAAC;IAE/C;GACF;EACF;EACA,OAAO,OAAO,KAAK,QAAQ,SAAS,CAAC,CAAC,QACnC,aAAa,kBAAkB,MAAM,QAAQ,SAAS,WAAW,GAAG,CAAC,CACxE;CACF;CACA,SAAS,YAAY,UAAU,WAAW;EACxC,OAAO,SAAS,QAAQ,cAAc,GAAG,QAAQ;GAC/C,MAAM,YAAY,SAAS,KAAK,EAAE;GAElC,OAAO,IADU,cAAc,OAAO,YAAY,IAAI,KAAK,IAAI,GAAG,YAAY,CAAC,EAC3D;EACtB,CAAC;CACH;CACA,SAAS,UAAU,QAAQ,WAAW;EAEpC,CADqB,cAAc,OAAO,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAA,CAC1D,SAAS,aAAa;GACjC,MAAM,eAAe,YAAY,SAAS,SAAS,GAAG,SAAS;GAC/D,MAAM,gBAAgB,QAAQ,aAAa,YAAY;GACvD,IAAI,eACF,QAAQ,aAAa,UAAU,aAAa;QAE5C,QAAQ,aAAa,UAAU,kBAAkB,CAAC;EAEtD,CAAC;CACH;CACA,MAAM,0BAA0B;CAChC,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF;;AC7IA,SAAS,oBAAoB,cAAc;CACzC,OAAO;EACL,QAAQ,aAAa,UAAU,CAAC;EAChC,UAAU,aAAa,YAAY,CAAC;EACpC,eAAe,aAAa,iBAAiB,CAAC;EAC9C,oBAAoB,aAAa,sBAAsB,CAAC;EACxD,aAAa,aAAa,eAAe;EACzC,cAAc,aAAa,gBAAgB;EAC3C,cAAc,aAAa,gBAAgB;EAC3C,oBAAoB,aAAa,sBAAsB;EACvD,oBAAoB,aAAa,sBAAsB;EACvD,mBAAmB,aAAa,qBAAqB;GACnD,UAAU,KAAK;GACf,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,SAAS,KAAK;GACd,UAAU,KAAK;GACf,WAAW,KAAK;EAClB;CACF;AACF;AACA,IAAM,UAAN,MAAc;;;;CAIZ,YAAY,MAAM;EAChB,KAAK,UAAU,CAAC;EAChB,KAAK,YAAY,CAAC;EAClB,KAAK,gCAAgC,IAAI,IAAI;EAC7C,KAAK,cAAc;GACjB,MAAM,0BAA0B,KAAK,MAAM,gBAAgB;IACzD,kBAAkB,IAAI;GACxB,CAAC;GACD,MAAM,2BAA2B,gBAAgB,GAC/C,uBACC,MAAM;IACL,IAAI,EAAE,QAAQ,OAAO,KAAK,SACxB,gBAAgB,KAAK,YAAY;KAC/B,IAAI,KAAK;KACT,OAAO,KAAK,MAAM;KAClB,SAAS,KAAK;IAChB,CAAC;GAEL,CACF;GACA,MAAM,2BAA2B,gBAAgB,GAC/C,uBACC,MAAM;IACL,IAAI,EAAE,QAAQ,OAAO,KAAK,SACxB,KAAK,MAAM;GAEf,CACF;GACA,MAAM,iCAAiC,gBAAgB,GACrD,8BACC,MAAM;IACL,IAAI,EAAE,QAAQ,OAAO,KAAK,SAAS;KACjC,KAAK,8BAA8B;KACnC,KAAK,aAAa;KAClB,KAAK,8BAA8B;IACrC;GACF,CACF;GACA,MAAM,gBAAgB;IACpB,+BAA+B;IAC/B,yBAAyB;IACzB,yBAAyB;IACzB,wBAAwB,YAAY;IACpC,gBAAgB,KAAK,kBAAkB,EACrC,IAAI,KAAK,QACX,CAAC;GACH;GACA,KAAK,QAAQ,WAAW,UAAU,EAAE,SAAS,KAAK,CAAC;GACnD,MAAM,EAAE,YAAY,KAAK,QAAQ,cAAc,CAAC;GAChD,gBAAgB,KAAK,YAAY;IAC/B,IAAI,KAAK;IACT,OAAO,KAAK,MAAM;IAClB,SAAS,KAAK;GAChB,CAAC;GACD,IAAI,CAAC,SAAS,OAAO;GACrB,KAAK,aAAa,OAAO;GACzB,OAAO;EACT;EACA,KAAK,UAAU,YAAY;GACzB,IAAI,CAAC,SAAS;GACd,MAAM,aAAa,KAAK;GACxB,KAAK,UAAU;GACf,MAAM,qBAAqB,QAAQ,iBAAiB,CAAC,SAAS,QAAQ,eAAe,WAAW,aAAa,KAAK,CAAC,KAAK,MAAM;GAC9H,MAAM,oBAAoB,CAAC,SAAS,QAAQ,cAAc,WAAW,YAAY,KAAK,CAAC,KAAK,MAAM;GAClG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB;GAC/C,YAAY;IACV,KAAK,UAAU,eACP,oBACJ,OAAO,OACL,CAAC,GACD,KAAK,OACL,oBAAoB,QAAQ,eAAe,CAAC,GAC5C,qBAAqB,EACnB,QAAQ,QAAQ,cAClB,IAAI,CAAC,CACP,CACF,CACF;GACF,CAAC;GACD,IAAI,oBAAoB;IACtB,MAAM,SAAS,WAAW,IAAI;IAC9B,KAAK,MAAM,YAAY,OAAO,KAC5B,KAAK,SACP,GACE,IAAI,MAAM,QAAQ,KAAK,cAAc,QAAQ,CAAC,GAC5C,OAAO,iBAAiB,QAAQ;GAGtC;GACA,gBAAgB,KAAK,YAAY;IAC/B,IAAI,KAAK;IACT,OAAO,KAAK,MAAM;IAClB,SAAS,KAAK;GAChB,CAAC;EACH;EACA,KAAK,SAAS,QAAQ,UAAU;GAC9B,MAAM,EAAE,WAAW,qBAAqB,KAAK;GAC7C,MAAM,gBAAgB,KAAK,eAAe,gBAAgB;GAC1D,IAAI,UAAU,CAAC,OAAO,mBACpB,KAAK,UAAU;IACb,GAAG,KAAK;IACR,eAAe;GACjB;GAEF,KAAK,UAAU,eAAe;IAC5B,IAAI,aAAa,UAAU,KAAK,QAAQ,iBAAiB,KAAK,QAAQ,cAAc;IACpF,IAAI,CAAC,QACH,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,SAC3B,cAAc;KACb,IAAI,UAAU,YAAY,UAAU,SAAS,QAAQ,iBAAiB,KAAK,GACzE,aAAa,MACX,YACA,UAAU,SAAS,MACnB,UAAU,SAAS,QAAQ,YAC7B;IAEJ,CACF;IAEF,OAAO,oBAAoB;KACzB,GAAG,KAAK,QAAQ;KAChB,QAAQ;KACR;IACF,CAAC;GACH,CAAC;EACH;EACA,KAAK,oBAAoB,OAAO,UAAU;GACxC,MAAM,0BAA0B,CAAC;GACjC,YAAY;IACV,OAAY,OAAO,KAAK,SAAS,CAAC,CAAC,SAChC,UAAU;KACT,IAAI,CAAC,MAAM,UAAU;KACrB,MAAM,gBAAgB,MAAM;KAC5B,wBAAwB,KAEtB,QAAQ,QAAQ,CAAC,CAAC,WACV,cAAc,SAAS,OAAO;MAClC,oBAAoB;MACpB,qBAAqB;KACvB,CAAC,CACH,CACF;KACA,IAAI,CAAC,MAAM,SAAS,MAAM,MAAM,KAAK,WACnC,MAAM,SAAS,SAAS,UAAU;MAAE,GAAG;MAAM,WAAW;KAAK,EAAE;IAEnE,CACF;GACF,CAAC;GAED,QAAO,MADwB,QAAQ,IAAI,uBAAuB,EAAA,CAC1C,KAAK;EAC/B;EACA,KAAK,kCAAkC,OAAO,OAAO,OAAO,UAAU;GACpE,MAAM,eAAe,KAAK,cAAc,KAAK;GAC7C,MAAM,YAAY,MAAM,QAAQ,YAAY,IAAI,KAAK,IAAI,aAAa,SAAS,GAAG,CAAC,IAAI;GACvF,MAAM,sBAAsB,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE;GACjD,KAAK,IAAI,IAAI,QAAQ,GAAG,MAAM,aAAa,IAAI,KAC7C,oBAAoB,KAAK,GAAG,MAAM,GAAG,EAAE,EAAE;GAE3C,MAAM,mBAAmB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,QAClD,aAAa,oBAAoB,MAAM,QAAQ,SAAS,WAAW,GAAG,CAAC,CAC1E;GACA,MAAM,0BAA0B,CAAC;GACjC,YAAY;IACV,iBAAiB,SAAS,gBAAgB;KACxC,wBAAwB,KACtB,QAAQ,QAAQ,CAAC,CAAC,WAAW,KAAK,cAAc,aAAa,KAAK,CAAC,CACrE;IACF,CAAC;GACH,CAAC;GAED,QAAO,MADwB,QAAQ,IAAI,uBAAuB,EAAA,CAC1C,KAAK;EAC/B;EACA,KAAK,iBAAiB,OAAO,UAAU;GACrC,MAAM,gBAAgB,KAAK,UAAU,MAAM,EAAE;GAC7C,IAAI,CAAC,eAAe;IAClB,MAAM,EAAE,eAAe,KAAK,aAAa,KAAK;IAC9C,IAAI,cAAc,CAAC,KAAK,QAAQ,aAC9B,OAAO,KAAK,aAAa,KAAK,CAAC,EAAE,UAAU,CAAC;IAE9C,OAAO,KAAK,cAAc,KAAK,CAAC,CAAC,WAAW;KAC1C,OAAO,KAAK,aAAa,KAAK,CAAC,EAAE,UAAU,CAAC;IAC9C,CAAC;GACH;GACA,IAAI,CAAC,cAAc,MAAM,MAAM,KAAK,WAClC,cAAc,SAAS,UAAU;IAAE,GAAG;IAAM,WAAW;GAAK,EAAE;GAEhE,OAAO,cAAc,SAAS,KAAK;EACrC;EACA,KAAK,gBAAgB,OAAO,iBAAiB;GAC3C,MAAM,YAAY,sBAAsB,OAAO;IAC7C,GAAG,KAAK;IACR,MAAM;IACN,OAAO,cAAc;IACrB,iBAAiB,KAAK,QAAQ,mBAAmB;GACnD,CAAC;GACD,IAAI,aAAa;GACjB,MAAM,4BAA4B,CAAC;GACnC,YAAY;IACV,KAAK,MAAM,eAAe,WAAW;KACnC,IAAI,CAAC,YAAY,UAAU;KAU3B,MAAM,EAAE,WAAW,gBAAgBA,iBATlB,KAAK,aAAa;MACjC,UAAU,YAAY;MACtB,OAAO;OACL,OAAO,KAAK,MAAM;OAClB,SAAS;OACT,kBAAkB;MACpB;MACA,MAAM;KACR,CACyD,CAAC;KAC1D,MAAM,cAAcC,iBAAe,YAAY,KAAK;KACpD,IAAI,qCAAqC,IAAI,IAAI,CAC/C,GAAG,OAAO,KAAK,KAAK,MAAM,SAAS,GACnC,GAAG,OAAO,KAAK,eAAe,CAAC,CAAC,CAClC,CAAC;KACD,IAAI,cAAc,kBAChB,qBAAqB,IAAI,IACvB,CAAC,GAAG,kBAAkB,CAAC,CAAC,OAAO,aAAa,gBAAgB,CAC9D;KAEF,KAAK,MAAM,SAAS,oBAAoB;MACtC,IAAI,KAAK,UAAU,MAAM,cAAc,WAAW,KAAK,KAAK,CAAC,cAAc,QACzE;MAGF,MAAM,EACJ,UAAU,iBACV,gBAAgB,0BAHA,KAAK,aAAa,KAAK,KAAK;MAK9C,MAAM,wBAAwB,cAAc;MAC5C,MAAM,EAAE,eAAe,cAAc,sCAAsC;OACzE;OACA,kCAGE,wBAAwB,iBAAiB;OAG3C,oBAAoB,kBAAkB;MACxC,CAAC;MACD,IAAI,cAAc,QAChB,0BAA0B,SAAS;OACjC,GAAG,0BAA0B;QAC5B,cAAc;MACjB;MAEF,IAAI,kBAAkB,iBAAiB,eACrC,KAAK,aAAa,QAAQ,OAAO,sBAAsB;OACrD,GAAG;OACH,UAAU;QACR,GAAG,KAAK;SACP,cAAc;OACjB;OACA,gBAAgB;QACd,GAAG,KAAK;SACP,cAAc;OACjB;MACF,EAAE;KAEN;KACA,IAAI,CAAC,cAAc,wBACb;UAAA,KAAK,MAAM,WAAW,iBAAiB,WACzC,KAAK,UAAU,UAAU,UAAU;OACjC,GAAG;OACH,UAAU;QACR,GAAG,KAAK;SACP,cAAc;OACjB;MACF,EAAE;KAAA;KAGN,IAAI,aAAa,aACf,aAAa;IAEjB;IACA,IAAI,cAAc,wBAChB;IAEF,MAAM,eAAeA,iBAAe,QAAQ;IAC5C,IAEE,KAAK,MAAM,WAAW,iBAAiB,UAAU,YAAY,CAAC,YAE9D,KAAK,UAAU,UAAU,UAAU;KACjC,GAAG;KACH,UAAU;MACR,GAAG,KAAK;OACP,eAAe,KAAK;KACvB;IACF,EAAE;IAEJ,MAAM,eAAeA,iBAAe,QAAQ;IAC5C,IAEE,KAAK,MAAM,WAAW,iBAAiB,UAAU,YAAY,CAAC,YAE9D,KAAK,UAAU,UAAU,UAAU;KACjC,GAAG;KACH,UAAU;MACR,GAAG,KAAK;OACP,eAAe,KAAK;KACvB;IACF,EAAE;GAEN,CAAC;GACD,OAAO;IAAE;IAAY,gBAAgB;GAA0B;EACjE;EACA,KAAK,gBAAgB,OAAO,OAAO,iBAAiB;GAClD,MAAM,YAAY,uBAAuB,OAAO;IAC9C,GAAG,KAAK;IACR,MAAM;IACN,OAAO,cAAc;IACrB,iBAAiB,KAAK,QAAQ,mBAAmB;GACnD,CAAC;GACD,IAAI,CAAC,KAAK,MAAM,kBACd,KAAK,UAAU,UAAU,UAAU;IAAE,GAAG;IAAM,kBAAkB;GAAK,EAAE;GAEzE,MAAM,WAAW,CAAC;GAClB,IAAI;GACJ,KAAK,MAAM,eAAe,WAAW;IACnC,IAAI,CAAC,YAAY,UAAU;IAC3B,MAAM,MAAMA,iBAAe,YAAY,KAAK;IAE5C,KADgC,MAAM,kBAAkB,IACtC,EAAE,oBAAoB,MAAM;IAC9C,MAAM,aAAa,IAAI,gBAAgB;IACvC,KAAK,MAAM,kBAAkB,OAAO,EAClC,qBAAqB,WACvB;IACA,SAAS,KACP,IAAI,QAAQ,OAAO,YAAY;KAC7B,IAAI;KACJ,IAAI;MACF,WAAW,MAAM,IAAI,SAAS,YAAY,cAAc;OACtD,WAAW,YAAY;QACrB,IAAI,WAAW,OAAO,SAAS,OAAO,WAAW,KAAK,CAAC;QACvD,IAAI;SACF,WACE,MAAM,KAAK,aAAa;UACtB,UAAU,YAAY;UACtB,OAAO;WACL,OAAO,KAAK,MAAM;WAClB,SAAS;WACT,kBAAkB;WAClB,QAAQ,WAAW;UACrB;UACA,MAAM;SACR,CAAC,CACH;QACF,SAAS,GAAG;SACV,UAAU,CAAC;QACb;OACF,GAAG,YAAY,UAAU;MAC3B,CAAC;KACH,SAAS,GAAG;MACV,WAAW;KACb;KACA,MAAM,EAAE,WAAW,aAAa,kCAAkCD,iBAAe,QAAQ;KACzF,IAAI,+BACF,gCAAgC,gCAAgC;MAC9D,GAAG;MACH,GAAG;KACL,IAAI;KAEN,MAAM,cAAcC,iBAAe,YAAY,KAAK;KACpD,MAAM,qCAAqC,IAAI,IAAI,CACjD,GAAG,OAAO,KAAK,KAAK,MAAM,SAAS,GACnC,GAAG,OAAO,KAAK,iCAAiC,CAAC,CAAC,CACpD,CAAC;KACD,IAAI,SAAS,MAAM,KAAK,kBAAkB;KAC1C,IAAI,cAAc,kBAChB,SAAS,OAAO,OAAO,aAAa,gBAAgB;KAEtD,KAAK,MAAM,SAAS,QAAQ;MAC1B,IAAI,KAAK,UAAU,MAAM,cAAc,WAAW,KAAK,KAAK,CAAC,gCAAgC,QAC3F;MAGF,MAAM,EACJ,UAAU,iBACV,gBAAgB,0BAHA,KAAK,aAAa,KAAK,KAAK;MAK9C,MAAM,wBAAwB,gCAAgC;MAC9D,MAAM,EAAE,eAAe,cAAc,sCAAsC;OACzE;OACA,kCAEE,wBAAwB,iBAAiB;OAG3C,oBAAoB,kBAAkB;MACxC,CAAC;MACD,IAAI,kBAAkB,iBAAiB,eACrC,KAAK,aAAa,QAAQ,OAAO,sBAAsB;OACrD,GAAG;OACH,UAAU;QACR,GAAG,KAAK;SACP,cAAc;OACjB;OACA,gBAAgB;QACd,GAAG,KAAK;SACP,cAAc;OACjB;MACF,EAAE;KAEN;KACA,IAAI,CAAC,cAAc,wBACjB,KAAK,UAAU,UAAU,UAAU;MACjC,GAAG;MACH,UAAU;OACR,GAAG,KAAK;QACP,cAAc;MACjB;KACF,EAAE;KAEJ,QACE,gCAAgC;MAAE,aAAa;MAA+B;KAAY,IAAI,KAAK,CACrG;IACF,CAAC,CACH;GACF;GACA,IAAI,UAAU,CAAC;GACf,MAAM,iBAAiB,CAAC;GACxB,IAAI,SAAS,QAAQ;IACnB,UAAU,MAAM,QAAQ,IAAI,QAAQ;IACpC,KAAK,MAAM,yBAAyB,SAClC,IAAI,uBAAuB,aAAa;KACtC,MAAM,EAAE,gBAAgB;KACxB,KAAK,MAAM,CAAC,OAAO,eAAe,OAAO,QACvC,sBAAsB,WACxB,GAME,eAAe,SAAS;MAHtB,GAFkB,eAAe,UAAU,CAAC;OAG3C,cAAc;KAEiB;IAEtC;GAEJ;GACA,KAAK,UAAU,UAAU,UAAU;IACjC,GAAG;IACH,kBAAkB;GACpB,EAAE;GACF,OAAO;EACT;EACA,KAAK,YAAY,OAAO,iBAAiB;GACvC,MAAM,EAAE,YAAY,mBAAmB,KAAK,aAC1C,OACA,YACF;GACA,IAAI,cAAc,CAAC,KAAK,QAAQ,aAC9B,OAAO;GAET,OAAO,KAAK,cAAc,OAAO,YAAY;EAC/C;EACA,KAAK,gBAAgB,OAAO,eAAe;GACzC,KAAK,UAAU,UAAU,SAAS;IAChC,GAAG;IAEH,aAAa;IAEb,oBAAoB,IAAI,qBAAqB;IAC7C,oBAAoB;GAEtB,EAAE;GACF,YAAY;IACV,OAAY,OAAO,KAAK,SAAS,CAAC,CAAC,SAChC,UAAU;KACT,IAAI,CAAC,MAAM,UAAU;KACrB,IAAI,CAAC,MAAM,SAAS,MAAM,MAAM,KAAK,WACnC,MAAM,SAAS,SAAS,UAAU;MAAE,GAAG;MAAM,WAAW;KAAK,EAAE;IAEnE,CACF;GACF,CAAC;GACD,MAAM,gBAAgB,cAAc,KAAK,QAAQ;GACjD,IAAI,CAAC,KAAK,MAAM,aAAa,CAAC,KAAK,6BAC7B;QAAA,KAAK,UAAU,MAAM,sBAAsB,GAAG;KAChD,KAAK,QAAQ,kBAAkB;MAC7B,OAAO,KAAK,MAAM;MAClB,SAAS;MACT,MAAM;KACR,CAAC;KACD;IACF;;GAEF,KAAK,UAAU,UAAU,OAAO;IAAE,GAAG;IAAG,cAAc;GAAK,EAAE;GAC7D,MAAM,aAAa;IACjB,KAAK,UAAU,UAAU,UAAU;KAAE,GAAG;KAAM,cAAc;IAAM,EAAE;GACtE;GACA,MAAM,KAAK,kBAAkB,QAAQ;GACrC,IAAI,CAAC,KAAK,MAAM,eAAe;IAC7B,KAAK;IACL,KAAK,QAAQ,kBAAkB;KAC7B,OAAO,KAAK,MAAM;KAClB,SAAS;KACT,MAAM;IACR,CAAC;IACD,gBAAgB,KAAK,mBAAmB;KACtC,IAAI,KAAK;KACT,mBAAmB,KAAK,MAAM;KAC9B,YAAY;KACZ,OAAO;KACP,QAAQ,OAAO,OAAO,KAAK,MAAM,SAAS,CAAC,CAAC,KAAK,SAAS,KAAK,MAAM,CAAC,CAAC,KAAK;IAC9E,CAAC;IACD;GACF;GACA,MAAM,KAAK,SAAS,QAAQ;GAC5B,IAAI,CAAC,KAAK,MAAM,SAAS;IACvB,KAAK;IACL,KAAK,QAAQ,kBAAkB;KAC7B,OAAO,KAAK,MAAM;KAClB,SAAS;KACT,MAAM;IACR,CAAC;IACD,gBAAgB,KAAK,mBAAmB;KACtC,IAAI,KAAK;KACT,mBAAmB,KAAK,MAAM;KAC9B,YAAY;KACZ,OAAO;KACP,QAAQ,KAAK,MAAM;IACrB,CAAC;IACD;GACF;GACA,YAAY;IACV,OAAY,OAAO,KAAK,SAAS,CAAC,CAAC,SAChC,UAAU;KACT,MAAM,UAAU,wBAAwB;IAC1C,CACF;GACF,CAAC;GACD,KAAK,QAAQ,WAAW,WAAW;IAAE,SAAS;IAAM,MAAM;GAAc,CAAC;GACzE,IAAI;IACF,MAAM,KAAK,QAAQ,WAAW;KAC5B,OAAO,KAAK,MAAM;KAClB,SAAS;KACT,MAAM;IACR,CAAC;IACD,YAAY;KACV,KAAK,UAAU,UAAU,UAAU;MACjC,GAAG;MACH,aAAa;MACb,oBAAoB;KAEtB,EAAE;KACF,gBAAgB,KAAK,mBAAmB;MACtC,IAAI,KAAK;MACT,mBAAmB,KAAK,MAAM;MAC9B,YAAY;KACd,CAAC;KACD,KAAK;IACP,CAAC;GACH,SAAS,KAAK;IACZ,KAAK,UAAU,UAAU,UAAU;KACjC,GAAG;KACH,oBAAoB;IAEtB,EAAE;IACF,gBAAgB,KAAK,mBAAmB;KACtC,IAAI,KAAK;KACT,mBAAmB,KAAK,MAAM;KAC9B,YAAY;KACZ,OAAO;KACP,SAAS;IACX,CAAC;IACD,KAAK;IACL,MAAM;GACR;EACF;EACA,KAAK,iBAAiB,UAAU,MAAM,KAAK,MAAM,QAAQ,KAAK;EAC9D,KAAK,gBAAgB,UAAU;GAC7B,OAAO,KAAK,MAAM,UAAU;EAC9B;EACA,KAAK,oBAAoB,SAAS;GAChC,OAAO,KAAK,qBAAqB,MAAM;EACzC;EACA,KAAK,gBAAgB,UAAU;GAC7B,OAAO,KAAK,UAAU,WAAW;IAC/B,UAAU;IACV,mBAAmB;KACjB,UAAU,KAAK;KACf,QAAQ,KAAK;KACb,UAAU,KAAK;KACf,SAAS,KAAK;KACd,UAAU,KAAK;KACf,WAAW,KAAK;IAClB;GACF;EACF;EACA,KAAK,gBAAgB,OAAO,YAAY;GACtC,KAAK,UAAU,UAAU,SAAS;IAChC,OAAO;KACL,GAAG;KACH,eAAe;MACb,GAAG,KAAK;OACP,QAAQ,iBACP,SACA,KAAK,cAAc,MACrB;KACF;IACF;GACF,CAAC;EACH;EACA,KAAK,kBAAkB,cAAc;GACnC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,QAC3B,KAAK,QAAQ;IACZ,MAAM,WAAW;IACjB,IAAI,YAAY;IAChB,OAAO;GACT,GACA,CAAC,CACH;EACF;EACA,KAAK,iBAAiB,OAAO,SAAS,UAAU;GAC9C,MAAM,iBAAiB,OAAO,kBAAkB;GAChD,MAAM,mBAAmB,OAAO,oBAAoB;GACpD,MAAM,eAAe,OAAO,gBAAgB;GAC5C,YAAY;IACV,IAAI,CAAC,gBACH,KAAK,aAAa,QAAQ,UAAU;KAClC,GAAG;KACH,WAAW;KACX,SAAS;KACT,UAAU;MAER,GAAG,MAAM;MACT,SAAS,KAAK;KAChB;IACF,EAAE;IAEJ,KAAK,UAAU,UAAU,SAAS;KAChC,OAAO;MACL,GAAG;MACH,QAAQ,MAAM,KAAK,QAAQ,OAAO,OAAO;KAC3C;IACF,CAAC;GACH,CAAC;GACD,IAAI,CAAC,kBACH,KAAK,aAAa,KAAK,CAAC,CAAC,UAAU,wBAAwB;GAE7D,IAAI,CAAC,cACH,KAAK,cAAc,OAAO,QAAQ;EAEtC;EACA,KAAK,eAAe,UAAU;GAK5B,MAAM,iBAAiB,CAAC,GAJE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,QAAQ,MAAM;IAClE,MAAM,WAAW,MAAM,SAAS;IAChC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE;GACpE,CAC2C,GAAG,KAAK;GACnD,KAAK,UAAU,UAAU,SAAS;IAChC,MAAM,WAAW,EAAE,GAAG,KAAK;IAC3B,eAAe,SAAS,MAAM;KAC5B,SAAS,SAAS,SAAS,SAAS,QAAQ,CAAC;KAC7C,OAAO,KAAK,UAAU;KACtB,OAAO,SAAS,cAAc;IAChC,CAAC;IACD,OAAO;GACT,CAAC;EACH;EACA,KAAK,kBAAkB,OAAO,OAAO,YAAY;GAC/C,KAAK,cACH,QACC,SAAS,CAAC,GAAG,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,GACpD,OACF;GACA,WAAW,IAAI,CAAC,CAAC,iBAAiB,KAAK;EACzC;EACA,KAAK,mBAAmB,OAAO,OAAO,OAAO,OAAO,YAAY;GAC9D,KAAK,cACH,QACC,SAAS;IACR,OAAO;KACL,GAAG,KAAK,MAAM,GAAG,KAAK;KACtB;KACA,GAAG,KAAK,MAAM,KAAK;IACrB;GACF,GACA,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,MAAM,eAAe,SAAS,gBAAgB;GAC9C,IAAI,CAAC,cACH,MAAM,KAAK,cAAc,OAAO,QAAQ;GAE1C,WAAW,IAAI,CAAC,CAAC,kBAAkB,OAAO,KAAK;GAC/C,IAAI,CAAC,cACH,MAAM,KAAK,gCAAgC,OAAO,OAAO,QAAQ;EAErE;EACA,KAAK,oBAAoB,OAAO,OAAO,OAAO,OAAO,YAAY;GAC/D,KAAK,cACH,QACC,SAAS;IACR,OAAO,KAAK,KACT,GAAG,MAAM,MAAM,QAAQ,QAAQ,CAClC;GACF,GACA,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,WAAW,IAAI,CAAC,CAAC,iBAAiB,KAAK;GAEvC,IAAI,EADiB,SAAS,gBAAgB,QAC3B;IACjB,MAAM,KAAK,cAAc,OAAO,QAAQ;IACxC,MAAM,KAAK,gCAAgC,OAAO,OAAO,QAAQ;GACnE;EACF;EACA,KAAK,mBAAmB,OAAO,OAAO,OAAO,YAAY;GACvD,MAAM,aAAa,KAAK,cAAc,KAAK;GAC3C,MAAM,YAAY,MAAM,QAAQ,UAAU,IAAI,KAAK,IAAI,WAAW,SAAS,GAAG,CAAC,IAAI;GACnF,KAAK,cACH,QACC,SAAS;IACR,OAAO,KAAK,QACT,IAAI,MAAM,MAAM,KACnB;GACF,GACA,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,WAAW,IAAI,CAAC,CAAC,kBAAkB,OAAO,KAAK;GAC/C,IAAI,cAAc,MAAM;IACtB,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU;IACpC,KAAK,YAAY,KAAK;GACxB;GAEA,IAAI,EADiB,SAAS,gBAAgB,QAC3B;IACjB,MAAM,KAAK,cAAc,OAAO,QAAQ;IACxC,MAAM,KAAK,gCAAgC,OAAO,OAAO,QAAQ;GACnE;EACF;EACA,KAAK,mBAAmB,OAAO,QAAQ,QAAQ,YAAY;GACzD,KAAK,cACH,QACC,SAAS;IACR,MAAM,QAAQ,KAAK;IACnB,MAAM,QAAQ,KAAK;IACnB,OAAO,MAAM,MAAM,MAAM,GAAG,UAAU,KAAK,GAAG,GAAG,UAAU,KAAK;GAClE,GACA,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,WAAW,IAAI,CAAC,CAAC,gBAAgB,OAAO,QAAQ,MAAM;GAEtD,IAAI,EADiB,SAAS,gBAAgB,QAC3B;IACjB,KAAK,cAAc,OAAO,QAAQ;IAClC,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ;IAClD,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ;GACpD;EACF;EACA,KAAK,mBAAmB,OAAO,QAAQ,QAAQ,YAAY;GACzD,KAAK,cACH,QACC,SAAS;IACR,MAAM,OAAO,CAAC,GAAG,IAAI;IACrB,KAAK,OAAO,QAAQ,GAAG,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE;IAChD,OAAO;GACT,GACA,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,WAAW,IAAI,CAAC,CAAC,gBAAgB,OAAO,QAAQ,MAAM;GAEtD,IAAI,EADiB,SAAS,gBAAgB,QAC3B;IACjB,KAAK,cAAc,OAAO,QAAQ;IAClC,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ;IAClD,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ;GACpD;EACF;EACA,KAAK,oBAAoB,OAAO,YAAY;GAC1C,MAAM,aAAa,KAAK,cAAc,KAAK;GAC3C,MAAM,YAAY,MAAM,QAAQ,UAAU,IAAI,KAAK,IAAI,WAAW,SAAS,GAAG,CAAC,IAAI;GACnF,KAAK,cACH,OACA,CAAC,GACD,UAAU,SAAS,EAAE,cAAc,KAAK,CAAC,CAC3C;GACA,WAAW,IAAI,CAAC,CAAC,iBAAiB,KAAK;GACvC,IAAI,cAAc,MAChB,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,KAAK;IACnC,MAAM,WAAW,GAAG,MAAM,GAAG,EAAE;IAC/B,KAAK,YAAY,QAAQ;GAC3B;GAGF,IAAI,EADiB,SAAS,gBAAgB,QAE5C,KAAK,cAAc,OAAO,QAAQ;EAEtC;EACA,KAAK,cAAc,UAAU;GAC3B,KAAK,UAAU,UAAU,SAAS;IAChC,MAAM,eAAe,KAAK,aAAa,KAAK,CAAC,CAAC,UAAU,QAAQ;IAChE,MAAM,cAAc,MAAM,KAAK,QAAQ,eAAe,KAAK;IAC3D,MAAM,cAAc,gBAAgB;IACpC,OAAO;KACL,GAAG;KACH,eAAe;MACb,GAAG,KAAK;OACP,QAAQ;KACX;KACA,QAAQ,gBAAgB,KAAK,IAAI,MAAM,KAAK,QAAQ,OAAO,WAAW,IAAI,KAAK;IACjF;GACF,CAAC;EACH;EACA,KAAK,eAAe,aAAa;GAC/B,YAAY;IACV,OAAO,QAAQ,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;KACjD,MAAM,cAAc;KACpB,IAAI,4BAA4B,KAAK,GAAG;MACtC,MAAM,EAAE,WAAW,gBAAgBD,iBAAe,KAAK;MACvD,KAAK,MAAM,aAAa,OAAO,KAC7B,KAAK,SACP,GAAG;OAED,IAAI,CADc,KAAK,aAAa,SACvB,GAAG;OAChB,KAAK,aAAa,YAAY,UAAU;QACtC,GAAG;QACH,UAAU;SACR,GAAG,KAAK;UACP,cAAc,cAAc;QAC/B;QACA,gBAAgB;SACd,GAAG,KAAK;UACP,cAAc;QACjB;OACF,EAAE;MACJ;MACA,KAAK,UAAU,UAAU,UAAU;OACjC,GAAG;OACH,UAAU;QACR,GAAG,KAAK;SACP,cAAc;OACjB;MACF,EAAE;KACJ,OACE,KAAK,UAAU,UAAU,UAAU;MACjC,GAAG;MACH,UAAU;OACR,GAAG,KAAK;QACP,cAAc;MACjB;KACF,EAAE;IAEN,CAAC;GACH,CAAC;EACH;EACA,KAAK,qBAAqB;GACxB,OAAO;IACL,MAAM;KACJ,QAAQ,KAAK,MAAM;KACnB,UAAU,KAAK,MAAM;IACvB;IACA,QAAQ,OAAO,QAAQ,KAAK,MAAM,SAAS,CAAC,CAAC,QAC1C,KAAK,CAAC,WAAW,eAAe;KAC/B,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,UAAU,UAAU,OAAO,QACpD,IAAI,aAAa;MACf,QAAQ,UAAU;MAClB,UAAU,UAAU;KACtB;KAEF,OAAO;IACT,GACA,CAAC,CACH;GACF;EACF;EACA,KAAK,yBAAyB,WAAW;GACvC,OAAO,yBAAyB,SAC9B;IAAE,OAAO,KAAK,MAAM;IAAQ,kBAAkB;GAAO,GACrD,MACF;EACF;EACA,KAAK,8BAA8B,WAAW;GAC5C,OAAO,yBAAyB,cAC9B;IAAE,OAAO,KAAK,MAAM;IAAQ,kBAAkB;GAAO,GACrD,MACF;EACF;EACA,KAAK,aAAa;GAChB,aAAa,CAAC;GACd,WAAW,CAAC;GACZ,eAAe,CAAC;EAClB;EACA,KAAK,UAAU,MAAM,UAAU,KAAK;EACpC,KAAK,8BAA8B;EACnC,IAAI,eAAe,oBAAoB;GACrC,GAAG,MAAM;GACT,QAAQ,MAAM,iBAAiB,MAAM,cAAc;EACrD,CAAC;EACD,IAAI,MAAM,WAAW;GACnB,eAAe,KAAK,UAAU,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC;GACvD,KAAK,MAAM,UAAU,OAAO,KAAK,aAAa,QAAQ,GAAG;IACvD,MAAM,YAAY,aAAa,SAAS;IACxC,IAAI,cAAc,KAAK,KAAK,CAAC,4BAA4B,SAAS,GAChE;IAEF,KAAK,MAAM,aAAa,OAAO,KAAK,UAAU,MAAM,GAAG;KACrD,MAAM,WAAW,UAAU,OAAO;KAClC,IAAI,aAAa,KAAK,GACpB;KAEF,MAAM,oBAAoB,aAAa,cAAc;KACrD,aAAa,cAAc,aAAa;MACtC,WAAW;MACX,cAAc;MACd,WAAW;MACX,SAAS;MACT,eAAe;MACf,0BAA0B;MAC1B,GAAG,qBAAqB,CAAC;MACzB,gBAAgB;OACd,GAAG,oBAAoB,qBAAqB,CAAC;OAC7C,UAAU;MACZ;MACA,UAAU;OACR,GAAG,oBAAoB,eAAe,CAAC;QACtC,SAAS;MACZ;KACF;IACF;GACF;EACF;EACA,KAAK,YAAY,YAAY,YAAY;EACzC,IAAI,gBAAgB,KAAK;EACzB,KAAK,mBAAmB,aACrB,YAAY;GACX,MAAM,gBAAgB,KAAK,UAAU,IAAI;GACzC,IAAI,oBAAoB;GACxB,MAAM,YAAY,CAAC;GACnB,KAAK,MAAM,aAAa,OAAO,KAC7B,cAAc,aAChB,GAAG;IACD,MAAM,eAAe,cAAc,cAAc;IACjD,MAAM,eAAe,eAAe,cAAc;IAClD,MAAM,gBAAgB,UAAU;IAChC,MAAM,cAAc,MAAM,cAAc,QAAQ,SAAS;IACzD,IAAI,cAAc,eAAe;IACjC,IAAI,CAAC,gBAAgB,aAAa,aAAa,aAAa,UAAU;KACpE,cAAc,OAAO,OAAO,aAAa,YAAY,CAAC,CAAC,CAAC,CAAC,QACtD,QAAQ,QAAQ,KAAK,CACxB;KACA,MAAM,gBAAgB,KAAK,aAAa,SAAS,CAAC,EAAE;KACpD,IAAI,CAAC,iBAAiB,CAAC,cAAc,QAAQ,kBAC3C,cAAc,YAAY,KAAK,CAAC;IAEpC;IACA,MAAM,eAAe,CAAC,gBAAgB,WAAW;IACjD,MAAM,kBAAkB,CAAC,aAAa;IACtC,MAAM,iBAAiB,SACrB,aAEA,KAAK,aAAa,SAAS,CAAC,EAAE,UAAU,QAAQ,gBAAgB,MAAM,KAAK,QAAQ,eAAe,SAAS,CAC7G;IACA,IAAI,iBAAiB,cAAc,eAAe,mBAAmB,cAAc,YAAY,gBAAgB,cAAc,mBAAmB,kBAAkB,cAAc,WAAW,eAAe,iBAAiB,cAAc;KACvO,UAAU,aAAa;KACvB;KACA;IACF;IACA,UAAU,aAAa;KACrB,GAAG;KACH,QAAQ,eAAe,CAAC;KACxB,YAAY;KACZ,SAAS;KACT;IACF;GACF;GACA,IAAI,CAAC,OAAO,KAAK,cAAc,aAAa,CAAC,CAAC,QAAQ,OAAO;GAC7D,IAAI,WAAW,sBAAsB,OAAO,KAAK,cAAc,aAAa,CAAC,CAAC,QAC5E,OAAO;GAET,gBAAgB,KAAK,UAAU,IAAI;GACnC,OAAO;EACT,CACF;EACA,KAAK,uBAAuB,aACzB,YAAY;GACX,MAAM,gBAAgB,KAAK,UAAU,IAAI;GACzC,MAAM,gBAAgB,KAAK,iBAAiB,IAAI;GAChD,MAAM,SAAS,CAAC;GAChB,KAAK,MAAM,SAAS,KAAK,eAAe;IACtC,MAAM,YAAY,MAAM;IACxB,MAAM,YAAY,cAAc,mBAAmB,cAAc;KAC/D,aAAa;KACb,cAAc;KACd,cAAc;KACd,oBAAoB;KACpB,oBAAoB;IACtB;IACA,MAAM,eAAe,cAAc;IACnC,IAAI,qBAAqB;IACzB,IAAI,gBAAgB;IACpB,IAAI,eAAe;IACnB,IAAI,eAAe;IACnB,IAAI,oBAAoB;IACxB,IAAI,aAAa;IACjB,KAAK,MAAM,aAAa,eAAe;KACrC,IAAI,cAAc,WAAW;KAC7B,IAAI,CAAC,eAAe,WAAW,SAAS,GAAG;KAC3C,MAAM,IAAI,cAAc;KACxB,IAAI,CAAC,GAAG;KACR,IAAI,EAAE,cAAc,qBAAqB;KACzC,IAAI,CAAC,EAAE,SAAS,gBAAgB;KAChC,IAAI,EAAE,WAAW,eAAe;KAChC,IAAI,EAAE,WAAW,eAAe;KAChC,IAAI,CAAC,EAAE,gBAAgB,oBAAoB;KAC3C,IAAI,EAAE,SAAS,aAAa;IAC9B;IACA,MAAM,aAAa,CAAC;IACpB,MAAM,eAAe,CAAC,CAAC,sBAAsB,UAAU;IACvD,MAAM,WAAW,cAAc,YAAY,CAAC;IAC5C,MAAM,iBAAiB,cAAc,kBAAkB,CAAC;IACxD,MAAM,kBAAkB,QACtB,SAAS,WAAW,OAAO,QAAQ,aAAa,CAAC,CAAC,MAC/C,CAAC,WAAW,WAAW,SAAS,cAAc,aAAa,eAAe,WAAW,SAAS,KAAK,MAAM,SAAS,OACrH,CACF;IACA,MAAM,gBAAgB,UAAU;IAChC,IAAI,SAAS,eAAe,UAAU,CAAC;IACvC,IAAI,CAAC,iBAAiB,cAAc,kBAAkB,UACpD,SAAS,OAAO,OAAO,QAAQ,CAAC,CAAC,QAAQ,KAAK,SAAS;KACrD,IAAI,SAAS,KAAK,GAAG,OAAO;KAC5B,IAAI,QAAQ,OAAO,SAAS,YAAY,YAAY,MAAM;MACxD,MAAM,WAAW,KAAK;MACtB,IAAI,aAAa,KAAK,GAAG,IAAI,KAAK,QAAQ;MAC1C,OAAO;KACT;KACA,IAAI,KAAK,IAAI;KACb,OAAO;IACT,GAAG,CAAC,CAAC;IAEP,MAAM,eAAe,OAAO,WAAW;IACvC,MAAM,UAAU,iBAAiB;IACjC,MAAM,gBAAgB,MAAM,QAAQ,wBAAwB;IAC5D,MAAM,YAAY,UAAU,uBAAuB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,UAAU,gBAAgB,WAAW;IACpJ,IAAI,iBAAiB,cAAc,aAAa,YAAY,cAAc,mBAAmB,kBAAkB,cAAc,WAAW,UAAU,cAAc,uBAAuB,sBAAsB,cAAc,kBAAkB,iBAAiB,cAAc,iBAAiB,gBAAgB,cAAc,YAAY,WAAW,cAAc,cAAc,aAAa,cAAc,cAAc,gBAAgB,cAAc,cAAc,gBAAgB,cAAc,eAAe,cAAc,cAAc,mBAAmB,qBAAqB,cAAc,YAAY,cAAc,cAAc,iBAAiB,gBAAgB,cAAc,iBAAiB,UAAU,gBAAgB,cAAc,gBAAgB,UAAU,eAAe,cAAc,uBAAuB,UAAU,sBAAsB,cAAc,uBAAuB,UAAU,oBAAoB;KACj4B,OAAO,aAAa;KACpB;IACF;IACA,MAAM,OAAO;KAIX,GAAG;KAGH;KACA;KACA,eAAe,cAAc,iBAAiB;KAG9C,WAAW;KACX,WAAW;KACX,SAAS;KACT;KACA,gBAAgB;KAEhB;KACA;KACA;KAEA;KACA;KACA;KACA;IACF;IACA,OAAO,eAAe,MAAM,iBAAiB;KAC3C,OAAO;KACP,YAAY;KACZ,cAAc;IAChB,CAAC;IACD,OAAO,aAAa;GACtB;GACA,OAAO;EACT,CACF;EACA,IAAI,wBAAwB,KAAK;EACjC,KAAK,QAAQ,aAAa,YAAY;GACpC,MAAM,gBAAgB,KAAK,UAAU,IAAI;GACzC,MAAM,gBAAgB,KAAK,iBAAiB,IAAI;GAChD,MAAM,kBAAkB,OAAO,OAAO,aAAa,CAAC,CAAC,OACnD,OACF;GACA,MAAM,qBAAqB,gBAAgB,MACxC,UAAU,MAAM,YACnB;GACA,MAAM,gBAAgB,gBAAgB,OAAO,UAAU,MAAM,OAAO;GACpE,MAAM,YAAY,gBAAgB,MAAM,UAAU,MAAM,SAAS;GACjE,MAAM,YAAY,gBAAgB,MAAM,UAAU,MAAM,SAAS;GACjE,MAAM,iBAAiB,gBAAgB,OACpC,UAAU,MAAM,cACnB;GACA,MAAM,0BAEJ,aAAa,cAAc,UAAU;GAEvC,MAAM,UAAU,gBAAgB,MAAM,UAAU,MAAM,OAAO;GAC7D,MAAM,aAAa,CAAC;GACpB,MAAM,kBAAkB,QAEtB,cAAc,UAAU,WACxB,gBAAgB,MAAM,MAAM,GAAG,UAAU,OAAO,CAClD;GACA,MAAM,eAAe,CAAC,CAAC;GACvB,IAAI,SAAS,SAAS,UAAU,CAAC;GACjC,IAAI,CAAC,yBAAyB,cAAc,aAAa,sBAAsB,UAC7E,SAAS,OAAO,OAAO,cAAc,QAAQ,CAAC,CAAC,QAAQ,MAAM,SAAS;IACpE,IAAI,SAAS,KAAK,GAAG,OAAO;IAC5B,IAAI,QAAQ,4BAA4B,IAAI,GAAG;KAC7C,KAAK,KAAK,KAAK,IAAI;KACnB,OAAO;IACT;IACA,KAAK,KAAK,IAAI;IACd,OAAO;GACT,GAAG,CAAC,CAAC;GAEP,MAAM,cAAc,OAAO,WAAW;GACtC,MAAM,UAAU,iBAAiB;GACjC,MAAM,gBAAgB,KAAK,QAAQ,wBAAwB;GAC3D,MAAM,YAAY,cAAc,uBAAuB,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,cAAc,gBAAgB,WAAW;GACzJ,IAAI,WAAW,cAAc;GAC7B,IAAI,yBAAyB;IAC3B,SAAS,OAAO,QAAQ,QAAQ,QAAQ,cAAc,SAAS,OAAO;IACtE,WAAW,OAAO,OAAO,UAAU,EAAE,SAAS,KAAK,EAAE,CAAC;GACxD;GACA,IAAI,WAAW,yBAAyB,QAAQ,aAAa,YAAY,QAAQ,cAAc,KAAK,iBAAiB,SAAS,QAAQ,WAAW,UAAU,QAAQ,uBAAuB,sBAAsB,QAAQ,kBAAkB,iBAAiB,QAAQ,gBAAgB,eAAe,QAAQ,YAAY,WAAW,QAAQ,cAAc,aAAa,QAAQ,cAAc,aAAa,QAAQ,cAAc,aAAa,QAAQ,eAAe,cAAc,QAAQ,mBAAmB,kBAAkB,QAAQ,YAAY,WAAW,SAAS,uBAAuB,aAAa,GACtkB,OAAO;GAET,MAAM,QAAQ;IACZ,GAAG;IACH;IACA,WAAW,KAAK,iBAAiB;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,wBAAwB,KAAK,UAAU,IAAI;GAC3C,OAAO;EACT,CAAC;EACD,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI;EAC/C,KAAK,OAAO,QAAQ,CAAC,CAAC;CACxB;CACA,IAAI,QAAQ;EACV,OAAO,KAAK,MAAM;CACpB;CACA,IAAI,SAAS;EACX,OAAO,KAAK;CACd;;;;CAIA,aAAa,OAAO;EAClB,IAAI,0BAA0B,MAAM,QAAQ,GAC1C,OAAO,yBAAyB,MAAM,KAAK,CACzC,MAAM,OACN,MAAM,QACR;EAEF,OAAO,MAAM,SAAS,MAAM,KAAK;CACnC;CACA,aAAa,YAAY;EACvB,OAAO,KAAK,cAAc,UAAU;CACtC;AACF;AACA,SAASA,iBAAe,UAAU;CAChC,IAAI,UAAU;EACZ,IAAI,4BAA4B,QAAQ,GAGtC,OAAO;GAAE,WAFSA,iBAAe,SAAS,IAAI,CAAC,CAAC;GAE5B,aADA,SAAS;EACG;EAElC,OAAO,EAAE,WAAW,SAAS;CAC/B;CACA,OAAO,EAAE,WAAW,KAAK,EAAE;AAC7B;AACA,SAASC,iBAAe,OAAO;CAC7B,QAAQ,OAAR;EACE,KAAK,UACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,WACH,OAAO;EAET,SACE,OAAO;CACX;AACF;;ACrsCA,IAAM,WAAN,MAAM,SAAS;;;;CAIb,YAAY,MAAM;EAChB,KAAK,UAAU,CAAC;EAChB,KAAK,cAAc;GACjB,IAAI,KAAK,QAAQ,iBAAiB,KAAK,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,WAC1D,KAAK,KAAK,cAAc,KAAK,MAAM,KAAK,QAAQ,cAAc,EAC5D,gBAAgB,KAClB,CAAC;GAEH,MAAM,OAAO,KAAK,QAAQ;GAC1B,KAAK,WAAW;GAChB,KAAK,OAAO,KAAK,OAAO;GACxB,MAAM,EAAE,YAAY,KAAK,QAAQ,cAAc,CAAC;GAChD,IAAI,SAAS;IACX,MAAM,QAAQ,KAAK,aAAa;KAC9B,UAAU;KACV,OAAO;MACL,OAAO,KAAK,MAAM;MAClB,UAAU;MACV,kBAAkB;KACpB;KACA,MAAM;IACR,CAAC;IACD,IAAI,OACF,KAAK,SACF,UAAU;KACT,GAAG;KAEH,UAAU;MAAE,GAAG,MAAM;MAAU,SAAS;KAAM;KAC9C,gBAAgB;MAEd,GAAG,MAAM;MACT,SAAS;KACX;IACF,EACF;GAEJ;GACA,KAAK,QAAQ,WAAW,UAAU;IAChC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;GACD,aAAa;IACX,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAClC,KAAK,WAAW,WAClB,GACE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,YAAY,OAAO;IACrC;IAEF,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,KAAK,WAAW,SAAS,GACnE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,UAAU,OAAO;IACnC;IAEF,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAClC,KAAK,WAAW,aAClB,GACE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,cAAc,OAAO;IACvC;IAEF,MAAM,YAAY,KAAK,KAAK,UAAU,KAAK;IAC3C,IAAI,CAAC,WAAW;IAChB,IAAI,UAAU,aAAa,MAAM;IACjC,KAAK,MAAM,CAAC,KAAK,mBAAmB,OAAO,QACzC,UAAU,iBACZ,GAAG;KACD,gBAAgB,oBAAoB,MAAM;KAC1C,UAAU,kBAAkB,OAAO,KAAK;IAC1C;IACA,KAAK,KAAK,UAAU,UAAU,UAAU;KAGtC,GAAG;KACH,eAAe;MACb,GAAG,KAAK;OACP,KAAK,OAAO;OACX,GAAG;OACH,WAAW,KAAK,cAAc,KAAK,KAAK,EAAE,aAAa,iBAAiB;OACxE,WAAW,KAAK,cAAc,KAAK,KAAK,EAAE,aAAa,iBAAiB;OACxE,SAAS,KAAK,cAAc,KAAK,KAAK,EAAE,WAAW,iBAAiB;MACtE;KACF;IACF,EAAE;IACF,UAAU,WAAW;IACrB,KAAK,QAAQ,WAAW,YAAY;KAClC,OAAO,KAAK,MAAM;KAClB,UAAU;IACZ,CAAC;IACD,KAAK,KAAK,QAAQ,WAAW,iBAAiB;KAC5C,SAAS,KAAK;KACd,UAAU;IACZ,CAAC;GACH;EACF;EACA,KAAK,UAAU,UAAU;GACvB,KAAK,UAAU;GACf,KAAK,OAAO,MAAM;GAClB,IAAI,CAAC,KAAK,MAAM,KAAK,aAAa,KAAK,QAAQ,iBAAiB,KAAK,GAEnE;QAAI,CAAC,SADa,KAAK,KAAK,cAAc,KAAK,IACjC,GAAW,MAAM,YAAY,GACzC,KAAK,KAAK,cAAc,KAAK,MAAM,MAAM,cAAc;KACrD,gBAAgB;KAChB,cAAc;KACd,kBAAkB;IACpB,CAAC;GAAA;GAGL,IAAI,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,GACnC,KAAK,KAAK,aAAa,KAAK,MAAM,KAAK,MAAM,IAAI;EAErD;EACA,KAAK,iBAAiB;GACpB,OAAO,KAAK,KAAK,cAAc,KAAK,IAAI;EAC1C;EACA,KAAK,YAAY,SAAS,YAAY;GACpC,KAAK,KAAK,cACR,KAAK,MACL,SACA,UAAU,SAAS;IAAE,kBAAkB;IAAM,cAAc;GAAK,CAAC,CACnE;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;GAE/B,IAAI,CAAC,SAAS,cACZ,KAAK,SAAS,QAAQ;EAE1B;EACA,KAAK,gBAAgB,KAAK,MAAM,MAAM;EACtC,KAAK,WAAW,YAAY,KAAK,KAAK,aAAa,KAAK,MAAM,OAAO;EACrE,KAAK,gBAAgB,KAAK,KAAK,aAAa,KAAK,IAAI;EACrD,KAAK,aAAa,OAAO,YAAY;GACnC,KAAK,KAAK,eACR,KAAK,MACL,OACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,eAAe,OAAO,OAAO,YAAY;GAC5C,KAAK,KAAK,iBACR,KAAK,MACL,OACA,OACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,gBAAgB,OAAO,OAAO,YAAY;GAC7C,KAAK,KAAK,kBACR,KAAK,MACL,OACA,OACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,eAAe,OAAO,YAAY;GACrC,KAAK,KAAK,iBACR,KAAK,MACL,OACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,cAAc,QAAQ,QAAQ,YAAY;GAC7C,KAAK,KAAK,gBACR,KAAK,MACL,QACA,QACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,aAAa,QAAQ,QAAQ,YAAY;GAC5C,KAAK,KAAK,gBACR,KAAK,MACL,QACA,QACA,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,eAAe,YAAY;GAC9B,KAAK,KAAK,iBACR,KAAK,MACL,UAAU,SAAS,EAAE,kBAAkB,KAAK,CAAC,CAC/C;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;EAEjC;EACA,KAAK,mBAAmB,UAAU;GAChC,MAAM,SAAS,OAAO,OAAO,KAAK,KAAK,SAAS;GAChD,MAAM,eAAe,CAAC;GACtB,KAAK,MAAM,SAAS,QAAQ;IAC1B,IAAI,CAAC,MAAM,UAAU;IACrB,IAAI,EAAE,MAAM,oBAAoB,WAC9B;IAEF,MAAM,EAAE,kBAAkB,mBAAmB,MAAM,SAAS,QAAQ,cAAc,CAAC;IACnF,IAAI,UAAU,YAAY,kBAAkB,SAAS,KAAK,IAAI,GAC5D,aAAa,KAAK,MAAM,QAAQ;IAElC,IAAI,UAAU,UAAU,gBAAgB,SAAS,KAAK,IAAI,GACxD,aAAa,KAAK,MAAM,QAAQ;GAEpC;GACA,OAAO;EACT;EACA,KAAK,gBAAgB,OAAO,kBAAkB;GAC5C,MAAM,YAAY,sBAAsB,OAAO;IAC7C,GAAG,KAAK;IACR,MAAM,KAAK;IACX,WAAW,KAAK;IAChB,iBAAiB,KAAK,KAAK,QAAQ,mBAAmB;GACxD,CAAC;GAED,MAAM,uBADe,KAAK,gBAAgB,KACF,CAAC,CAAC,QACvC,KAAK,UAAU;IACd,MAAM,iBAAiB,sBAAsB,OAAO;KAClD,GAAG,MAAM;KACT,MAAM,MAAM;KACZ,WAAW,MAAM;KACjB,iBAAiB,MAAM,KAAK,QAAQ,mBAAmB;IACzD,CAAC;IACD,eAAe,SAAS,aAAa;KACnC,SAAS,QAAQ;IACnB,CAAC;IACD,OAAO,IAAI,OAAO,cAAc;GAClC,GACA,CAAC,CACH;GACA,IAAI,aAAa;GACjB,YAAY;IACV,MAAM,mBAAmB,OAAO,gBAAgB;KAC9C,MAAM,cAAcC,iBAAe,YAAY,KAAK;KACpD,MAAM,kBAAkB,YAAY,WAAWC,iBAC7C,MAAM,aAAa;MACjB,UAAU,YAAY;MACtB,OAAO;OACL,OAAO,MAAM,MAAM,MAAM;OACzB,kBAAkB;OAClB,UAAU;MACZ;MACA,MAAM;KACR,CAAC,CACH,IAAI,KAAK;KACT,MAAM,iBAAiB,cAAc;KACrC,MAAM,EAAE,eAAe,cAAc,uCAAuC;MAC1E;MACA;KACF,CAAC;KACD,IAAI,MAAM,MAAM,KAAK,WAAW,iBAAiB,eAC/C,MAAM,SAAS,UAAU;MACvB,GAAG;MACH,UAAU;OACR,GAAG,KAAK;QACP,cAAc;MACjB;MACA,gBAAgB;OACd,GAAG,KAAK;QACP,cAAc;MACjB;KACF,EAAE;KAEJ,IAAI,eACF,aAAa;IAEjB;IACA,KAAK,MAAM,eAAe,WACxB,gBAAgB,MAAM,WAAW;IAEnC,KAAK,MAAM,oBAAoB,sBAAsB;KACnD,IAAI,CAAC,iBAAiB,UAAU;KAChC,gBAAgB,iBAAiB,OAAO,gBAAgB;IAC1D;GACF,CAAC;GACD,MAAM,eAAeD,iBAAe,QAAQ;GAC5C,IAEE,KAAK,MAAM,KAAK,WAAW,iBAAiB,UAAU,YAAY,CAAC,YAEnE,KAAK,SAAS,UAAU;IACtB,GAAG;IACH,UAAU;KACR,GAAG,KAAK;MACP,eAAe,KAAK;IACvB;IACA,gBAAgB;KACd,GAAG,KAAK;MACP,eAAe,KAAK;IACvB;GACF,EAAE;GAEJ,OAAO,EAAE,WAAW;EACtB;EACA,KAAK,gBAAgB,OAAO,OAAO,gCAAgC;GACjE,MAAM,YAAY,uBAAuB,OAAO;IAC9C,GAAG,KAAK;IACR,MAAM,KAAK;IACX,WAAW,KAAK;IAChB,iBAAiB,KAAK,KAAK,QAAQ,mBAAmB;GACxD,CAAC;GACD,MAAM,6BAA6B,MAAM;GAEzC,MAAM,uBADe,KAAK,gBAAgB,KACF,CAAC,CAAC,QACvC,KAAK,UAAU;IACd,MAAM,iBAAiB,uBAAuB,OAAO;KACnD,GAAG,MAAM;KACT,MAAM,MAAM;KACZ,WAAW,MAAM;KACjB,iBAAiB,MAAM,KAAK,QAAQ,mBAAmB;IACzD,CAAC;IACD,eAAe,SAAS,aAAa;KACnC,SAAS,QAAQ;IACnB,CAAC;IACD,OAAO,IAAI,OAAO,cAAc;GAClC,GACA,CAAC,CACH;GACA,MAAM,oBAAoB,CAAC;GAC3B,MAAM,iBAAiB,CAAC;GACxB,MAAM,qBAAqB,UAAU,MAAM,MAAM,EAAE,QAAQ;GAC3D,MAAM,kCAAkC,MAAM,KAC5C,IAAI,IACF,qBAAqB,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,MAAM,EAAE,KAAK,CACnE,CACF;GACA,YAAY;IACV,IAAI,oBACF,KAAK,gBAAgB;IAEvB,KAAK,MAAM,eAAe,iCACxB,YAAY,gBAAgB;GAEhC,CAAC;GACD,MAAM,wBAAwB,OAAO,aAAa,aAAa;IAC7D,MAAM,cAAcA,iBAAe,YAAY,KAAK;IACpD,MAAM,YAAY,MAAM,QAAQ;IAEhC,UADqC,kBAAkB,YACrC,EAAE,oBAAoB,MAAM;IAC9C,MAAM,aAAa,IAAI,gBAAgB;IACvC,UAAU,kBAAkB,eAAe,EACzC,qBAAqB,WACvB;IACA,SAAS,KACP,IAAI,QAAQ,OAAO,YAAY;KAC7B,IAAI;KACJ,IAAI;MACF,WAAW,MAAM,IAAI,SAAS,YAAY,cAAc;OACtD,IAAI,MAAM,WAAW,YAAY,YAAY,QAAQ;QACnD,aAAa,MAAM,WAAW,YAAY,YAAY,MAAM;QAC5D,MAAM,cAAc;OACtB;OACA,MAAM,WAAW,YAAY,YAAY,SAAS,WAChD,YAAY;QACV,IAAI,WAAW,OAAO,SAAS,OAAO,WAAW,KAAK,CAAC;QACvD,IAAI;SACF,WACE,MAAM,KAAK,aAAa;UACtB,UAAU,YAAY;UACtB,OAAO;WACL,OAAO,MAAM,MAAM,MAAM;WACzB,UAAU;WACV,QAAQ,WAAW;WACnB,kBAAkB;UACpB;UACA,MAAM;SACR,CAAC,CACH;QACF,SAAS,GAAG;SACV,UAAU,CAAC;QACb;OACF,GACA,YAAY,UACd;MACF,CAAC;KACH,SAAS,GAAG;MACV,WAAW;KACb;KACA,IAAI,WAAW,OAAO,SAAS,OAAO,QAAQ,KAAK,CAAC;KACpD,MAAM,kBAAkBC,iBAAe,QAAQ;KAC/C,MAAM,iBAAiB,2BAA2B,MAAM,KAAK,GAAG;KAChE,MAAM,EAAE,eAAe,cAAc,uCAAuC;MAC1E;MACA;KACF,CAAC;KACD,IAAI,MAAM,QAAQ,CAAC,CAAC,aAAa,OAC/B,OAAO,QAAQ,KAAK,CAAC;KAEvB,MAAM,SAAS,SAAS;MACtB,OAAO;OACL,GAAG;OACH,UAAU;QAER,GAAG,MAAM;SACR,cAAc;OACjB;OACA,gBAAgB;QACd,GAAG,KAAK;SACP,cAAc;OACjB;MACF;KACF,CAAC;KACD,QAAQ,aAAa;IACvB,CAAC,CACH;GACF;GACA,KAAK,MAAM,eAAe,WAAW;IACnC,IAAI,CAAC,YAAY,UAAU;IAC3B,qBAAqB,MAAM,aAAa,iBAAiB;GAC3D;GACA,KAAK,MAAM,oBAAoB,sBAAsB;IACnD,IAAI,CAAC,iBAAiB,UAAU;IAChC,qBACE,iBAAiB,OACjB,kBACA,cACF;GACF;GACA,IAAI,UAAU,CAAC;GACf,IAAI,kBAAkB,UAAU,eAAe,QAAQ;IACrD,UAAU,MAAM,QAAQ,IAAI,iBAAiB;IAC7C,MAAM,QAAQ,IAAI,cAAc;GAClC;GACA,YAAY;IACV,IAAI,oBACF,KAAK,cAAc;IAErB,KAAK,MAAM,eAAe,iCACxB,YAAY,cAAc;GAE9B,CAAC;GACD,OAAO,QAAQ,OAAO,OAAO;EAC/B;EACA,KAAK,YAAY,OAAO,UAAU;GAChC,IAAI,CAAC,KAAK,MAAM,KAAK,WAAW,OAAO,CAAC;GACxC,MAAM,qBAAqB,OAAO,sBAAsB,CAAC,IAAI,MAAM,KAAK,KAAK,KAAK,aAAa,CAAC,CAAC,QAC9F,UAAU,KAAK,KAAK,WAAW,MAAM,IAAI,CAC5C;GAEA,IAAI,kBADmB,OAAO,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,IAAI,KAAK,KAAK,aAAa,KAAK,EAAA,CACpE,eAAe,KAAK,SAAS,CAAC;GAClE,IAAI,CAAC,OAAO,oBACV,KAAK,MAAM,SAAS,oBAAoB;IACtC,IAAI,MAAM,MAAM,KAAK,uBAAuB,GAAG;IAC/C,MAAM,EAAE,gBAAgB,oBAAoB,KAAK,KAAK,aACpD,OACA;KACE;KACA,wBAAwB;KACxB,mBAAmB,cAAc,eAAe,MAAM,MAAM,SAAS;IACvE,CACF;IACA,iBAAiB;KACf,GAAG;KACH,GAAG,gBAAgB,KAAK,SAAS,CAAC;IACpC;GACF;GAEF,MAAM,EAAE,eAAe,KAAK,aAAa,OAAO,cAAc;GAC9D,MAAM,yCAAyC,IAAI,QAAQ;GAC3D,KAAK,MAAM,SAAS,oBAAoB;IACtC,MAAM,EAAE,YAAY,oBAAoB,MAAM,aAC5C,OACA,CAAC,GACD,EAAE,4BAA4B,KAAK,CACrC;IACA,uBAAuB,IAAI,OAAO,eAAe;GACnD;GACA,IAAI,cAAc,CAAC,KAAK,QAAQ,aAAa;IAC3C,KAAK,QAAQ,CAAC,CAAC,kBAAkBD,iBAAe,KAAK,EAAE,EAAE,oBAAoB,MAAM;IACnF,MAAM,cAAc,CAAC;IACrB,KAAK,MAAM,SAAS,oBAAoB;KACtC,MAAM,QAAQ,CAAC,CAAC,kBAAkBA,iBAAe,KAAK,EAAE,EAAE,oBAAoB,MAAM;KACpF,YAAY,KAAK,MAAM,MAAM,KAAK,MAAM;IAC1C;IACA,OAAO,CAAC,GAAG,KAAK,MAAM,KAAK,QAAQ,GAAG,YAAY,KAAK,CAAC;GAC1D;GACA,MAAM,8BAA8B,OAAO,qBAAqB,QAAQ,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,cAAc,KAAK;GACnH,MAAM,oBAAoB,KAAK,cAC7B,OACA,2BACF;GACA,MAAM,oBAAoB,CAAC;GAC3B,KAAK,MAAM,SAAS,oBAAoB;IACtC,IAAI,uBAAuB,IAAI,KAAK,KAAK,CAAC,MAAM,QAAQ,aACtD;IAEF,kBAAkB,KAChB,MAAM,cAAc,OAAO,6BAA6B,EACtD,4BAA4B,KAC9B,CAAC,CACH;GACF;GACA,IAAI,kBAAkB,WAAW,GAC/B,OAAO;GAET,OAAO,QAAQ,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAC3D,YAAY,QAAQ,KAAK,CAC5B;EACF;EACA,KAAK,gBAAgB,YAAY;GAC/B,KAAK,SAAS,OAAO;EACvB;EACA,KAAK,mBAAmB;GAEtB,IAAI,CADgB,KAAK,MAAM,KAAK,WAElC,KAAK,SAAS,UAAU;IAAE,GAAG;IAAM,WAAW;GAAK,EAAE;GAEvD,IAAI,CAAC,KAAK,MAAM,KAAK,WACnB,KAAK,SAAS,UAAU;IAAE,GAAG;IAAM,WAAW;GAAK,EAAE;GAEvD,KAAK,SAAS,MAAM;GACpB,KAAK,sBAAsB;EAC7B;EACA,KAAK,eAAe,aAAa;GAC/B,KAAK,SAAS,UAAU;IACtB,GAAG;IACH,UAAU;KACR,GAAG,KAAK;KACR,GAAG;IACL;GACF,EAAE;EACJ;EACA,KAAK,wBAAwB,WAAW;GACtC,OAAO,yBAAyB,SAC9B;IAAE,OAAO,KAAK,MAAM;IAAO,kBAAkB;GAAQ,GACrD,MACF;EACF;EACA,KAAK,6BAA6B,WAAW;GAC3C,OAAO,yBAAyB,cAC9B;IAAE,OAAO,KAAK,MAAM;IAAO,kBAAkB;GAAQ,GACrD,MACF;EACF;EACA,KAAK,8BAA8B;GACjC,MAAM,iBAAiB,KAAK,KAAK,QAAQ,WAAW;GACpD,IAAI,kBAAkB,iBAAiB,GAAG;IACxC,IAAI,KAAK,WAAW,cAAc,MAChC,aAAa,KAAK,WAAW,cAAc,IAAI;IAEjD,KAAK,WAAW,cAAc,OAAO,iBAAiB;KACpD,KAAK,KAAK,QAAQ,WAAW,SAAS;MACpC,SAAS,KAAK;MACd,UAAU;KACZ,CAAC;IACH,GAAG,cAAc;GACnB,OACE,KAAK,KAAK,QAAQ,WAAW,SAAS;IACpC,SAAS,KAAK;IACd,UAAU;GACZ,CAAC;GAEH,MAAM,kBAAkB,KAAK,QAAQ,WAAW;GAChD,IAAI,mBAAmB,kBAAkB,GAAG;IAC1C,IAAI,KAAK,WAAW,UAAU,MAC5B,aAAa,KAAK,WAAW,UAAU,IAAI;IAE7C,KAAK,WAAW,UAAU,OAAO,iBAAiB;KAChD,KAAK,QAAQ,WAAW,SAAS;MAC/B,OAAO,KAAK,MAAM;MAClB,UAAU;KACZ,CAAC;IACH,GAAG,eAAe;GACpB,OACE,KAAK,QAAQ,WAAW,SAAS;IAC/B,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;EAEL;EACA,KAAK,gCAAgC;GACnC,MAAM,iBAAiB,KAAK,KAAK,QAAQ,WAAW;GACpD,IAAI,kBAAkB,iBAAiB,GAAG;IACxC,IAAI,KAAK,WAAW,cAAc,QAChC,aAAa,KAAK,WAAW,cAAc,MAAM;IAEnD,KAAK,WAAW,cAAc,SAAS,iBAAiB;KACtD,KAAK,KAAK,QAAQ,WAAW,WAAW;MACtC,SAAS,KAAK;MACd,UAAU;KACZ,CAAC;IACH,GAAG,cAAc;GACnB,OACE,KAAK,KAAK,QAAQ,WAAW,WAAW;IACtC,SAAS,KAAK;IACd,UAAU;GACZ,CAAC;GAEH,MAAM,kBAAkB,KAAK,QAAQ,WAAW;GAChD,IAAI,mBAAmB,kBAAkB,GAAG;IAC1C,IAAI,KAAK,WAAW,UAAU,QAC5B,aAAa,KAAK,WAAW,UAAU,MAAM;IAE/C,KAAK,WAAW,UAAU,SAAS,iBAAiB;KAClD,KAAK,QAAQ,WAAW,WAAW;MACjC,OAAO,KAAK,MAAM;MAClB,UAAU;KACZ,CAAC;IACH,GAAG,eAAe;GACpB,OACE,KAAK,QAAQ,WAAW,WAAW;IACjC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;GAEH,KAAK,MAAM,SAAS,KAAK,KAAK,eAC5B,IAAI,eAAe,MAAM,MAAM,KAAK,IAAI,GACtC,MAAM,wBAAwB;EAGpC;EACA,KAAK,gCAAgC;GACnC,KAAK,QAAQ,WAAW,WAAW;IACjC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;EACH;EACA,KAAK,OAAO,KAAK;EACjB,KAAK,OAAO,KAAK;EACjB,KAAK,UAAU;EACf,KAAK,aAAa;GAChB,aAAa,CAAC;GACd,WAAW,CAAC;GACZ,eAAe,CAAC;EAClB;EACA,KAAK,QAAQ,aACV,YAAY;GACX,KAAK,KAAK,MAAM,IAAI;GACpB,MAAM,OAAO,KAAK,KAAK,aAAa,KAAK,IAAI,KAAK;IAChD,GAAG;IACH,GAAG,KAAK;GACV;GACA,IAAI,QAAQ,KAAK,KAAK,cAAc,KAAK,IAAI;GAC7C,IAAI,CAAC,KAAK,aAAa,UAAU,KAAK,KAAK,KAAK,QAAQ,iBAAiB,KAAK,KAAK,CAAC,SAAS,OAAO,KAAK,QAAQ,YAAY,GAC3H,QAAQ,KAAK,QAAQ;GAEvB,IAAI,WAAW,QAAQ,UAAU,SAAS,QAAQ,SAAS,MACzD,OAAO;GAET,OAAO;IACL;IACA;GACF;EACF,CACF;CACF;;;;CAIA,IAAI,QAAQ;EACV,OAAO,KAAK,MAAM;CACpB;;;;CAIA,aAAa,OAAO;EAClB,IAAI,0BAA0B,MAAM,QAAQ,GAC1C,OAAO,yBAAyB,MAAM,KAAK,CACzC,MAAM,OACN,MAAM,QACR;EAEF,OAAO,MAAM,SAAS,MAAM,KAAK;CACnC;;;;;CAKA,kBAAkB;EAChB,KAAK,SAAS,SAAS;GACrB,MAAM,WAAW,KAAK,2BAA2B;GACjD,OAAO;IACL,GAAG;IACH,0BAA0B;IAC1B,cAAc,WAAW,KAAK,CAAC,KAAK,eAAe,OAAO,KAAK;GACjE;EACF,CAAC;CACH;;;;;CAKA,gBAAgB;EACd,KAAK,SAAS,SAAS;GACrB,MAAM,WAAW,KAAK,IAAI,GAAG,KAAK,2BAA2B,CAAC;GAC9D,OAAO;IACL,GAAG;IACH,0BAA0B;IAC1B,cAAc,aAAa,KAAK,KAAK,eAAe,QAAQ,KAAK;GACnE;EACF,CAAC;CACH;AACF;AACA,SAASC,iBAAe,UAAU;CAChC,IAAI,UACF,OAAO;AAGX;AACA,SAASD,iBAAe,OAAO;CAC7B,QAAQ,OAAR;EACE,KAAK,UACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,WACH,OAAO;EAET,SACE,OAAO;CACX;AACF;;AChuBA,SAAS,yBAAyB,cAAc;CAC9C,OAAO;EACL,aAAa,aAAa,eAAe;EACzC,cAAc,aAAa,gBAAgB;EAC3C,cAAc,aAAa,gBAAgB;EAC3C,oBAAoB,aAAa,sBAAsB;EACvD,oBAAoB,aAAa,sBAAsB;CACzD;AACF;AACA,SAAS,wBAAwB,aAAa;CAC5C,OAAO;EACL,GAAG;EACH,GAAG;EACH,QAAQ,CAAC;EACT,YAAY;EACZ,SAAS;EACT,gBAAgB;EAChB,oBAAoB;EACpB,eAAe;EACf,cAAc;EACd,WAAW;EACX,cAAc;EACd,aAAa;EACb,cAAc;EACd,oBAAoB;EACpB,oBAAoB;CACtB;AACF;AACA,IAAM,eAAN,MAAM,aAAa;CACjB,YAAY,MAAM;EAChB,KAAK,UAAU,CAAC;EAChB,KAAK,qBAAqB,YAAY;GACpC,KAAK,KAAK,UAAU,UAAU,SAAS;IACrC,MAAM,iBAAiB,KAAK,mBAAmB,KAAK,SAAS,yBAAyB,CAAC,CAAC;IACxF,OAAO;KACL,GAAG;KACH,oBAAoB;MAClB,GAAG,KAAK;OACP,KAAK,OAAO,QAAQ,cAAc;KACrC;IACF;GACF,CAAC;EACH;EACA,KAAK,6BAA6B,CAAC;EACnC,KAAK,UAAU,UAAU;GACvB,KAAK,UAAU;GACf,KAAK,OAAO,MAAM;GAClB,IAAI,CAAC,KAAK,MAAM,KAAK,aAAa,KAAK,QAAQ,iBAAiB,KAAK,GAEnE;QAAI,CAAC,SADa,KAAK,KAAK,cAAc,KAAK,IACjC,GAAW,MAAM,YAAY,GACzC,KAAK,KAAK,cAAc,KAAK,MAAM,MAAM,cAAc;KACrD,gBAAgB;KAChB,cAAc;KACd,kBAAkB;IACpB,CAAC;GAAA;GAGL,IAAI,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,GACnC,KAAK,KAAK,aAAa,KAAK,MAAM;IAChC,GAAG;IACH,GAAG,KAAK,QAAQ;GAClB,CAAC;EAEL;EACA,KAAK,cAAc;GACjB,KAAK,OAAO,KAAK,OAAO;GACxB,KAAK,KAAK,cAAc,IAAI,IAAI;GAChC,KAAK,UAAU,WAAW;GAC1B,KAAK,KAAK,UAAU,UAAU,UAAU;IACtC,GAAG;IACH,oBAAoB;KAClB,GAAG,KAAK;MACP,KAAK,OAAO,KAAK,mBAAmB,KAAK,SAAS,yBAAyB,EAC1E,GAAG,KAAK,QAAQ,aAClB,CAAC;IACH;GACF,EAAE;GACF,MAAM,EAAE,YAAY,KAAK,QAAQ,cAAc,CAAC;GAChD,IAAI,SAAS;IACX,MAAM,WAAW,KAAK,aAAa;KACjC,UAAU;KACV,OAAO;MACL,OAAO,KAAK,MAAM;MAClB,UAAU;MACV,kBAAkB;KACpB;KACA,MAAM;IACR,CAAC;IACD,IAAI,mBAAmB;IACvB,IAAI,mBAAmB,KAAK;IAC5B,IAAI,6BAA6B,QAAQ,GAAG;KAC1C,mBAAmB,SAAS;KAC5B,mBAAmB,SAAS;IAC9B;IACA,MAAM,QAAQ,eAAe,gBAAgB;IAC7C,IAAI,OACF,KAAK,SACF,UAAU;KACT,GAAG;KACH,UAAU;MACR,GAAG,KAAK;MACR,SAAS;KACX;KACA,gBAAgB;MACd,GAAG,KAAK;MACR,SAAS;KACX;IACF,EACF;IAEF,KAAK,sBAAsB,WAAW,gBAAgB;GACxD;GACA,KAAK,QAAQ,WAAW,UAAU;IAChC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;GACD,aAAa;IACX,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAClC,KAAK,WAAW,WAClB,GACE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,YAAY,OAAO;IACrC;IAEF,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAAQ,KAAK,WAAW,SAAS,GACnE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,UAAU,OAAO;IACnC;IAEF,KAAK,MAAM,CAAC,KAAK,YAAY,OAAO,QAClC,KAAK,WAAW,aAClB,GACE,IAAI,SAAS;KACX,aAAa,OAAO;KACpB,KAAK,WAAW,cAAc,OAAO;IACvC;IAEF,IAAI,KAAK,UAAU,aAAa,MAAM;IACtC,KAAK,MAAM,CAAC,KAAK,mBAAmB,OAAO,QACzC,KAAK,UAAU,iBACjB,GAAG;KACD,gBAAgB,oBAAoB,MAAM;KAC1C,KAAK,UAAU,kBAAkB,OAAO,KAAK;IAC/C;IACA,KAAK,KAAK,cAAc,OAAO,IAAI;IACnC,KAAK,KAAK,UAAU,UAAU,UAAU;KACtC,GAAG;KACH,oBAAoB;MAClB,GAAG,KAAK;OACP,KAAK,OAAO,yBAAyB,CAAC,CAAC;KAC1C;IACF,EAAE;IACF,KAAK,UAAU,WAAW;IAC1B,KAAK,QAAQ,WAAW,YAAY;KAClC,OAAO,KAAK,MAAM;KAClB,UAAU;IACZ,CAAC;GACH;EACF;EACA,KAAK,YAAY,SAAS,YAAY;GACpC,KAAK,KAAK,cACR,KAAK,MACL,SACA,UAAU,SAAS;IAAE,kBAAkB;IAAM,cAAc;GAAK,CAAC,CACnE;GACA,IAAI,CAAC,SAAS,kBACZ,KAAK,wBAAwB;GAE/B,IAAI,CAAC,SAAS,cACZ,KAAK,SAAS,QAAQ;EAE1B;EACA,KAAK,gBAAgB,KAAK,MAAM,MAAM;EACtC,KAAK,WAAW,YAAY,KAAK,KAAK,aAAa,KAAK,MAAM,OAAO;EACrE,KAAK,gBAAgB,KAAK;EAC1B,KAAK,yBAAyB;GAC5B,MAAM,SAAS,OAAO,OAAO,KAAK,KAAK,SAAS;GAChD,MAAM,gBAAgB,CAAC;GACvB,KAAK,MAAM,SAAS,QAAQ;IAC1B,IAAI,CAAC,MAAM,UAAU;IACrB,IAAI,EAAE,MAAM,oBAAoB,WAAW;IAC3C,IAAI,MAAM,SAAS,KAAK,WAAW,KAAK,IAAI,GAC1C,cAAc,KAAK,MAAM,QAAQ;GAErC;GACA,OAAO;EACT;EACA,KAAK,oCAAoC;GACvC,MAAM,SAAS,OAAO,QAAQ,KAAK,KAAK,iBAAiB,KAAK;GAC9D,MAAM,oBAAoB,CAAC;GAC3B,KAAK,MAAM,CAAC,WAAW,cAAc,QAAQ;IAC3C,IAAI,cAAc,KAAK,MAAM;IAC7B,IAAI,eAAe,KAAK,MAAM,SAAS,GACrC,kBAAkB,KAAK;KAAE,GAAG;KAAW,MAAM;IAAU,CAAC;GAE5D;GACA,OAAO;EACT;EACA,KAAK,uBAAuB,iBAAiB;GAC3C,IAAI,iBAAiB,IAAI,OAAO,KAAK;GACrC,IAAI,aAAa,WAAW,GAAG,GAAG,OAAO,GAAG,KAAK,OAAO;GACxD,OAAO,GAAG,KAAK,KAAK,GAAG;EACzB;EACA,KAAK,yBAAyB,aAAa,gBAAgB;GACzD,MAAM,gBAAgB,KAAK,2BAA2B,gCAAgC,IAAI,IAAI;GAC9F,MAAM,+BAA+B,IAAI,IAAI;GAC7C,IAAI,aACF,KAAK,MAAM,CAAC,cAAc,QAAQ,OAAO,QAAQ,WAAW,GAAG;IAC7D,IAAI,QAAQ,KAAK,KAAK,QAAQ,QAAQ,QAAQ,OAAO;IACrD,aAAa,IAAI,KAAK,oBAAoB,YAAY,CAAC;GACzD;GAEF,MAAM,2BAA2B,IAAI,IAAI,CAAC,GAAG,eAAe,GAAG,YAAY,CAAC;GAC5E,IAAI,aAAa;GACjB,KAAK,MAAM,YAAY,UAAU;IAC/B,MAAM,eAAe,SAAS,WAAW,KAAK,OAAO,GAAG,IAAI,SAAS,MAAM,KAAK,KAAK,MAAM,IAAI,SAAS,MAAM,KAAK,KAAK,SAAS,CAAC;IAClI,MAAM,wBAAwB,cAAc;IAC5C,MAAM,YAAY,KAAK,KAAK,aAAa,QAAQ;IACjD,IAAI,CAAC,aAAa,CAAC,uBAAuB;IAC1C,MAAM,qBAAqB,WAAW,SAAS;IAE/C,MAAM,EAAE,eAAe,cAAc,sCAAsC;KACzE;KACA,kCAHuC,WAAW,eAAe,iBAAiB;KAIlF;IACF,CAAC;IACD,IAAI,eAAe,aAAa;IAChC,IAAI,uBAAuB,iBAAiB,WAAW,eAAe,iBAAiB,WACrF;IAEF,KAAK,KAAK,aAAa,WAAW,OAAO,sBAAsB;KAC7D,GAAG;KACH,UAAU;MACR,GAAG,KAAK;OACP,cAAc;KACjB;KACA,gBAAgB;MACd,GAAG,KAAK;OACP,cAAc;KACjB;IACF,EAAE;GACJ;GACA,KAAK,2BAA2B,eAAe;GAC/C,OAAO;EACT;EACA,KAAK,gBAAgB,OAAO,eAAe,QAAQ,CAAC,MAAM;GACxD,MAAM,YAAY,sBAAsB,OAAO;IAC7C,GAAG,KAAK;IACR,MAAM,KAAK;IACX,OAAO;IACP,iBAAiB,KAAK,QAAQ,mBAAmB,KAAK,KAAK,QAAQ,mBAAmB;GACxF,CAAC;GAED,MAAM,yBADgB,MAAM,6BAA6B,CAAC,IAAI,KAAK,iBAAiB,EAAA,CACxC,QACzC,KAAK,UAAU;IACd,MAAM,iBAAiB,sBAAsB,OAAO;KAClD,GAAG,MAAM;KACT,MAAM,MAAM;KACZ,iBAAiB,MAAM,KAAK,QAAQ,mBAAmB;IACzD,CAAC;IACD,eAAe,SAAS,aAAa;KACnC,SAAS,QAAQ;IACnB,CAAC;IACD,OAAO,IAAI,OAAO,cAAc;GAClC,GACA,CAAC,CACH;GACA,IAAI,aAAa;GACjB,YAAY;IACV,MAAM,0BAA0B,cAAc,gBAAgB;KAC5D,MAAM,cAAc,eAAe,YAAY,KAAK;KACpD,MAAM,UAAU,iBAAiB;KACjC,IAAI,WAAW,KAAK;KACpB,IAAI,YAAY,UACd,WAAW,aAAa,aAAa;MACnC,UAAU,YAAY;MACtB,OAAO;OACL,OAAO,aAAa,MAAM,MAAM;OAKhC,kBAAkB,UAAU,SAAS;OACrC,GAAG,wBAAwB,eAAe,EACxC,UAAU,aACZ,IAAI,EAAE,UAAU,aAAa;MAC/B;MACA,MAAM;KACR,CAAC;KAEH,IAAI,mBAAmB;KACvB,IAAI,mBAAmB,KAAK;KAC5B,IAAI,WAAW,6BAA6B,QAAQ,GAAG;MACrD,mBAAmB,SAAS;MAC5B,mBAAmB,SAAS;KAC9B;KACA,MAAM,kBAAkB,eACtB,gBACF;KACA,MAAM,iBAAiB,cAAc;KACrC,MAAM,EAAE,eAAe,cAAc,uCAAuC;MAC1E;MACA;KACF,CAAC;KACD,IAAI,aAAa,MAAM,KAAK,WAAW,iBAAiB,eACtD,aAAa,SAAS,UAAU;MAC9B,GAAG;MACH,UAAU;OACR,GAAG,KAAK;QACP,cAAc;MACjB;MACA,gBAAgB;OACd,GAAG,KAAK;QACP,cAAc;MACjB;KACF,EAAE;KAEJ,IAAI,eACF,aAAa;KAEf,IAAI,SAC4B;UAAA,KAAK,sBACjC,aACA,gBAEsB,GACtB,aAAa;KAAA;IAGnB;IACA,KAAK,MAAM,eAAe,WACxB,uBAAuB,MAAM,WAAW;IAE1C,KAAK,MAAM,oBAAoB,uBAAuB;KACpD,IAAI,CAAC,iBAAiB,UAAU;KAChC,uBAAuB,iBAAiB,OAAO,gBAAgB;IACjE;GACF,CAAC;GACD,MAAM,eAAe,eAAe,QAAQ;GAC5C,IAEE,KAAK,MAAM,KAAK,WAAW,iBAAiB,UAAU,YAAY,CAAC,YAEnE,KAAK,SAAS,UAAU;IACtB,GAAG;IACH,UAAU;KACR,GAAG,KAAK;MACP,eAAe,KAAK;IACvB;IACA,gBAAgB;KACd,GAAG,KAAK;MACP,eAAe,KAAK;IACvB;GACF,EAAE;GAEJ,OAAO,EAAE,WAAW;EACtB;EACA,KAAK,gBAAgB,OAAO,OAAO,6BAA6B,QAAQ,CAAC,MAAM;GAC7E,MAAM,YAAY,uBAAuB,OAAO;IAC9C,GAAG,KAAK;IACR,MAAM,KAAK;IACX,OAAO;IACP,iBAAiB,KAAK,QAAQ,mBAAmB,KAAK,KAAK,QAAQ,mBAAmB;GACxF,CAAC;GACD,MAAM,6BAA6B,MAAM;GACzC,MAAM,gBAAgB,MAAM,6BAA6B,CAAC,IAAI,KAAK,iBAAiB;GACpF,MAAM,wBAAwB,cAAc,QACzC,KAAK,UAAU;IACd,MAAM,iBAAiB,uBAAuB,OAAO;KACnD,GAAG,MAAM;KACT,MAAM,MAAM;KACZ,iBAAiB,MAAM,KAAK,QAAQ,mBAAmB;IACzD,CAAC;IACD,eAAe,SAAS,aAAa;KACnC,SAAS,QAAQ;IACnB,CAAC;IACD,OAAO,IAAI,OAAO,cAAc;GAClC,GACA,CAAC,CACH;GACA,MAAM,oBAAoB,CAAC;GAC3B,MAAM,iBAAiB,CAAC;GACxB,MAAM,qBAAqB,UAAU,MAAM,MAAM,EAAE,QAAQ,KAAK,sBAAsB,MAAM,MAAM,EAAE,QAAQ;GAC5G,IAAI,oBAAoB;IACtB,IAAI,CAAC,KAAK,MAAM,KAAK,cACnB,KAAK,SAAS,UAAU;KAAE,GAAG;KAAM,cAAc;IAAK,EAAE;IAE1D,KAAK,MAAM,eAAe,eACxB,YAAY,SAAS,UAAU;KAAE,GAAG;KAAM,cAAc;IAAK,EAAE;GAEnE;GACA,MAAM,+BAA+B,cAAc,aAAa,aAAa;IAC3E,MAAM,cAAc,eAAe,YAAY,KAAK;IACpD,MAAM,YAAY,aAAa,QAAQ;IAEvC,UADqC,kBAAkB,YACrC,EAAE,oBAAoB,MAAM;IAC9C,MAAM,aAAa,IAAI,gBAAgB;IACvC,UAAU,kBAAkB,eAAe,EACzC,qBAAqB,WACvB;IACA,MAAM,UAAU,iBAAiB;IACjC,SAAS,KACP,IAAI,QAAQ,OAAO,YAAY;KAC7B,IAAI;KACJ,IAAI;MACF,WAAW,MAAM,IAAI,SAAS,YAAY,cAAc;OACtD,IAAI,aAAa,WAAW,YAAY,YAAY,QAClD,aACE,aAAa,WAAW,YAAY,YAAY,MAClD;OAEF,aAAa,WAAW,YAAY,YAAY,SAAS,WAAW,YAAY;QAC9E,IAAI,WAAW,OAAO,SAAS,OAAO,WAAW,KAAK,CAAC;QACvD,IAAI;SACF,WACE,MAAM,KAAK,aAAa;UACtB,UAAU,YAAY;UACtB,OAAO;WACL,OAAO,aAAa,MAAM,MAAM;WAChC,QAAQ,WAAW;WAInB,kBAAkB,UAAU,SAAS;WACrC,GAAG,wBAAwB,eAAe,EACxC,UAAU,aACZ,IAAI,EAAE,UAAU,aAAa;UAC/B;UACA,MAAM;SACR,CAAC,CACH;QACF,SAAS,GAAG;SACV,UAAU,CAAC;QACb;OACF,GAAG,YAAY,UAAU;MAC3B,CAAC;KACH,SAAS,GAAG;MACV,WAAW;KACb;KACA,IAAI,WAAW,OAAO,SAAS,OAAO,QAAQ,KAAK,CAAC;KACpD,IAAI,mBAAmB;KACvB,IAAI,mBAAmB,KAAK;KAC5B,IAAI,WAAW,6BAA6B,QAAQ,GAAG;MACrD,mBAAmB,SAAS;MAC5B,mBAAmB,SAAS;KAC9B;KACA,MAAM,kBAAkB,eAAe,gBAAgB;KACvD,MAAM,iBAAiB,2BAA2B,aAAa,KAAK,GAAG;KACvE,MAAM,EAAE,eAAe,cAAc,uCAAuC;MAC1E;MACA;KACF,CAAC;KACD,IAAI,aAAa,QAAQ,CAAC,CAAC,aAAa,cACtC,OAAO,QAAQ,KAAK,CAAC;KAEvB,aAAa,SAAS,SAAS;MAC7B,OAAO;OACL,GAAG;OACH,UAAU;QAER,GAAG,MAAM;SACR,cAAc;OACjB;OACA,gBAAgB;QACd,GAAG,KAAK;SACP,cAAc;OACjB;MACF;KACF,CAAC;KACD,IAAI,SACF,KAAK,sBAAsB,aAAa,gBAAgB;KAE1D,QAAQ,aAAa;IACvB,CAAC,CACH;GACF;GACA,KAAK,MAAM,eAAe,WAAW;IACnC,IAAI,CAAC,YAAY,UAAU;IAC3B,4BAA4B,MAAM,aAAa,iBAAiB;GAClE;GACA,KAAK,MAAM,oBAAoB,uBAAuB;IACpD,IAAI,CAAC,iBAAiB,UAAU;IAChC,4BACE,iBAAiB,OACjB,kBACA,cACF;GACF;GACA,IAAI,UAAU,CAAC;GACf,IAAI,kBAAkB,UAAU,eAAe,QAAQ;IACrD,UAAU,MAAM,QAAQ,IAAI,iBAAiB;IAC7C,MAAM,QAAQ,IAAI,cAAc;GAClC;GACA,IAAI,oBAAoB;IACtB,KAAK,SAAS,UAAU;KAAE,GAAG;KAAM,cAAc;IAAM,EAAE;IACzD,KAAK,MAAM,eAAe,eACxB,YAAY,SAAS,UAAU;KAAE,GAAG;KAAM,cAAc;IAAM,EAAE;GAEpE;GACA,OAAO,QAAQ,OAAO,OAAO;EAC/B;EACA,KAAK,oBAAoB,OAAO,UAAU;GACxC,MAAM,0BAA0B,CAAC;GACjC,YAAY;IACV,OAAY,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,kBAAkB;KACrE,wBAAwB,KAEtB,QAAQ,QAAQ,CAAC,CAAC,WACV,cAAc,SAAS,OAAO;MAClC,oBAAoB;MACpB,qBAAqB;KACvB,CAAC,CACH,CACF;KACA,IAAI,CAAC,cAAc,MAAM,MAAM,KAAK,WAClC,cAAc,SAAS,UAAU;MAAE,GAAG;MAAM,WAAW;KAAK,EAAE;IAElE,CAAC;GACH,CAAC;GAED,QAAO,MADwB,QAAQ,IAAI,uBAAuB,EAAA,CAC1C,KAAK;EAC/B;EACA,KAAK,mCAAmC,OAAO,OAAO,UAAU;GAC9D,OAAO,KAAK,KAAK,gCAAgC,OAAO,OAAO,KAAK;EACtE;EACA,KAAK,iBAAiB,OAAO,UAAU;GACrC,OAAO,KAAK,KAAK,cAAc,OAAO,KAAK;EAC7C;EACA,KAAK,iBAAiB,UAAU;GAC9B,OAAO,KAAK,KAAK,cAAc,KAAK;EACtC;EACA,KAAK,gBAAgB,UAAU;GAC7B,OAAO,KAAK,KAAK,aAAa,KAAK;EACrC;EACA,KAAK,gBAAgB,OAAO,YAAY;GACtC,OAAO,KAAK,KAAK,aAAa,OAAO,OAAO;EAC9C;EACA,KAAK,iBAAiB,OAAO,UAAU;GACrC,OAAO,KAAK,KAAK,cAAc,OAAO,KAAK;EAC7C;EACA,KAAK,eAAe,UAAU;GAC5B,OAAO,KAAK,KAAK,YAAY,KAAK;EACpC;EACA,KAAK,kBAAkB,OAAO,UAAU;GACtC,OAAO,KAAK,KAAK,eAAe,OAAO,KAAK;EAC9C;EACA,KAAK,oBAAoB,OAAO,OAAO,UAAU;GAC/C,OAAO,KAAK,KAAK,iBAAiB,OAAO,OAAO,KAAK;EACvD;EACA,KAAK,qBAAqB,OAAO,OAAO,UAAU;GAChD,OAAO,KAAK,KAAK,kBAAkB,OAAO,OAAO,KAAK;EACxD;EACA,KAAK,mBAAmB,OAAO,QAAQ,WAAW;GAChD,OAAO,KAAK,KAAK,gBAAgB,OAAO,QAAQ,MAAM;EACxD;EACA,KAAK,mBAAmB,OAAO,WAAW,YAAY;GACpD,OAAO,KAAK,KAAK,gBAAgB,OAAO,WAAW,OAAO;EAC5D;EACA,KAAK,oBAAoB,UAAU;GACjC,OAAO,KAAK,KAAK,iBAAiB,KAAK;EACzC;EACA,KAAK,cAAc,UAAU;GAC3B,OAAO,KAAK,KAAK,WAAW,KAAK;EACnC;EACA,KAAK,oBAAoB,OAAO,UAAU;GACxC,OAAO,KAAK,KAAK,iBAAiB,OAAO,KAAK;EAChD;EACA,KAAK,8BAA8B;GACjC,OAAO,OAAO,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,OAC3C,UAAU,MAAM,MAAM,KAAK,OAC9B;EACF;EACA,KAAK,YAAY,OAAO,UAAU;GAChC,MAAM,EAAE,mBAAmB,OAAO,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,IAAI,KAAK,KAAK,aAAa,OAAO;IAC5G,wBAAwB;IACxB,mBAAmB,cAAc,eAAe,KAAK,MAAM,SAAS;GACtE,CAAC;GACD,MAAM,EAAE,eAAe,KAAK,aAC1B,OACA,eAAe,KAAK,SAAS,CAAC,GAC9B,EAAE,4BAA4B,OAAO,2BAA2B,CAClE;GACA,IAAI,cAAc,CAAC,KAAK,QAAQ,aAAa;IAC3C,KAAK,QAAQ,CAAC,CAAC,kBAAkB,eAAe,KAAK,EAAE,EAAE,oBAAoB,MAAM;IACnF,OAAO,KAAK,MAAM,KAAK;GACzB;GACA,MAAM,8BAA8B,OAAO,qBAAqB,QAAQ,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK,cAAc,OAAO;IACnH,wBAAwB;IACxB,mBAAmB,cAAc,eAAe,KAAK,MAAM,SAAS;GACtE,CAAC;GACD,OAAO,KAAK,cAAc,OAAO,6BAA6B,EAC5D,4BAA4B,OAAO,2BACrC,CAAC;EACH;EACA,KAAK,gCAAgC;GACnC,MAAM,iBAAiB,KAAK,KAAK,QAAQ,WAAW;GACpD,IAAI,kBAAkB,iBAAiB,GAAG;IACxC,IAAI,KAAK,WAAW,cAAc,QAChC,aAAa,KAAK,WAAW,cAAc,MAAM;IAEnD,KAAK,WAAW,cAAc,SAAS,iBAAiB;KACtD,KAAK,KAAK,QAAQ,WAAW,gBAAgB;MAC3C,SAAS,KAAK;MACd,UAAU;KACZ,CAAC;IACH,GAAG,cAAc;GACnB,OACE,KAAK,KAAK,QAAQ,WAAW,gBAAgB;IAC3C,SAAS,KAAK;IACd,UAAU;GACZ,CAAC;GAEH,MAAM,kBAAkB,KAAK,QAAQ,WAAW;GAChD,IAAI,mBAAmB,kBAAkB,GAAG;IAC1C,IAAI,KAAK,WAAW,UAAU,QAC5B,aAAa,KAAK,WAAW,UAAU,MAAM;IAE/C,KAAK,WAAW,UAAU,SAAS,iBAAiB;KAClD,KAAK,QAAQ,WAAW,WAAW;MACjC,OAAO,KAAK,MAAM;MAClB,UAAU;KACZ,CAAC;IACH,GAAG,eAAe;GACpB,OACE,KAAK,QAAQ,WAAW,WAAW;IACjC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;EAEL;EACA,KAAK,gCAAgC;GACnC,KAAK,QAAQ,WAAW,WAAW;IACjC,OAAO,KAAK,MAAM;IAClB,UAAU;GACZ,CAAC;EACH;EACA,KAAK,gBAAgB,OAAO,eAAe;GACzC,KAAK,mBAAmB,SAAS;IAC/B,GAAG;IAEH,aAAa;IAEb,oBAAoB,IAAI,qBAAqB;IAC7C,oBAAoB;GAEtB,EAAE;GACF,YAAY;IACV,OAAY,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,UAAU;KAC7D,IAAI,CAAC,MAAM,MAAM,KAAK,WACpB,MAAM,SAAS,UAAU;MAAE,GAAG;MAAM,WAAW;KAAK,EAAE;IAE1D,CAAC;GACH,CAAC;GACD,MAAM,gBAAgB,cAAc,KAAK,QAAQ;GACjD,KAAK,mBAAmB,OAAO;IAAE,GAAG;IAAG,cAAc;GAAK,EAAE;GAC5D,MAAM,aAAa;IACjB,KAAK,mBAAmB,UAAU;KAAE,GAAG;KAAM,cAAc;IAAM,EAAE;GACrE;GACA,MAAM,KAAK,kBAAkB,QAAQ;GACrC,IAAI,CAAC,KAAK,sBAAsB,GAAG;IACjC,KAAK;IACL,KAAK,QAAQ,uBAAuB;KAClC,OAAO,KAAK,MAAM;KAClB,UAAU;KACV,MAAM;IACR,CAAC;IACD;GACF;GACA,MAAM,KAAK,SAAS,UAAU,EAE5B,4BAA4B,KAC9B,CAAC;GACD,IAAI,CAAC,KAAK,sBAAsB,KAAK,CAAC,KAAK,MAAM,KAAK,SAAS;IAC7D,KAAK;IACL,KAAK,QAAQ,uBAAuB;KAClC,OAAO,KAAK,MAAM;KAClB,UAAU;KACV,MAAM;IACR,CAAC;IACD;GACF;GACA,YAAY;IACV,OAAY,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,SAAS,UAAU;KAC7D,MAAM,QAAQ,WAAW,gBAAgB;MACvC,OAAO,MAAM,MAAM;MACnB,UAAU;KACZ,CAAC;IACH,CAAC;GACH,CAAC;GACD,KAAK,QAAQ,WAAW,WAAW;IACjC,UAAU;IACV,OAAO,KAAK,MAAM;GACpB,CAAC;GACD,IAAI;IACF,MAAM,KAAK,QAAQ,gBAAgB;KACjC,OAAO,KAAK,MAAM;KAClB,UAAU;KACV,MAAM;IACR,CAAC;IACD,YAAY;KACV,KAAK,mBAAmB,UAAU;MAChC,GAAG;MACH,aAAa;MACb,oBAAoB;KAEtB,EAAE;KACF,KAAK;IACP,CAAC;GACH,SAAS,KAAK;IACZ,KAAK,mBAAmB,UAAU;KAChC,GAAG;KACH,oBAAoB;IAEtB,EAAE;IACF,KAAK;IACL,MAAM;GACR;EACF;EACA,KAAK,OAAO,KAAK;EACjB,KAAK,OAAO,KAAK;EACjB,KAAK,UAAU;EACf,KAAK,aAAa;GAChB,aAAa,CAAC;GACd,WAAW,CAAC;GACZ,eAAe,CAAC;EAClB;EACA,KAAK,YAAY;GACf,UAAU;GACV,mBAAmB;IACjB,UAAU,KAAK;IACf,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,SAAS,KAAK;IACd,UAAU,KAAK;IACf,WAAW,KAAK;GAClB;EACF;EACA,KAAK,QAAQ,aACV,YAAY;GACX,KAAK,KAAK,qBAAqB,IAAI;GACnC,KAAK,KAAK,UAAU,IAAI;GACxB,MAAM,OAAO,KAAK,KAAK,iBAAiB,KAAK,IAAI,KAAK,wBAAwB,KAAK,WAAW;GAC9F,IAAI,QAAQ,KAAK,KAAK,cAAc,KAAK,IAAI;GAC7C,IAAI,CAAC,KAAK,aAAa,UAAU,KAAK,KAAK,KAAK,QAAQ,iBAAiB,KAAK,KAAK,CAAC,SAAS,OAAO,KAAK,QAAQ,YAAY,GAC3H,QAAQ,KAAK,QAAQ;GAEvB,IAAI,WAAW,QAAQ,UAAU,SAAS,QAAQ,SAAS,MACzD,OAAO;GAET,OAAO;IACL;IACA;GACF;EACF,CACF;EACA,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI;CACjD;;;;CAIA,IAAI,QAAQ;EACV,OAAO,KAAK,MAAM;CACpB;;;;CAIA,aAAa,OAAO;EAClB,IAAI,0BAA0B,MAAM,QAAQ,GAAG;GAC7C,MAAM,SAAS,yBAAyB,MAAM,KAAK,CACjD,MAAM,OACN,MAAM,QACR;GACA,IAAI,MAAM,SAAS,YACjB,OAAO,kCAAkC,MAAM;GAEjD,OAAO,OAAO,KACZ,iCACF;EACF;EACA,OAAO,MAAM,SACX,MAAM,KACR;CACF;CACA,aAAa,YAAY;EACvB,OAAO,KAAK,cAAc,UAAU;CACtC;AACF;AACA,SAAS,eAAe,UAAU;CAChC,IAAI,UACF,OAAO;AAGX;AACA,SAAS,6BAA6B,OAAO;CAC3C,OAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,YAAY;AAC7D;AACA,SAAS,kCAAkC,QAAQ;CACjD,IAAI,CAAC,UAAU,OAAO,WAAW,UAAU,OAAO;CAClD,IAAI,EAAE,UAAU,WAAW,EAAE,YAAY,SAAS,OAAO;CACzD,MAAM,EAAE,MAAM,QAAQ,GAAG,SAAS;CAClC,OAAO;EAAE,GAAG;EAAM,OAAO;EAAM;CAAO;AACxC;AACA,SAAS,eAAe,OAAO;CAC7B,QAAQ,OAAR;EACE,KAAK,UACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,WACH,OAAO;EAET,SACE,OAAO;CACX;AACF;;ACxzBA,SAAS,eAAe,MAAM,IAAI;CAChC,IAAI,CAAC,IAAI;CACT,MAAM,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,EACrC,OAAO,SAAS,KAAK,KAAK,EAC5B,CAAC;CACD,GAAG,MAAM;CACT,IAAI,OAAO,cAAc,KAAK,WAC5B,KAAK,YAAY,OAAO;CAE1B,IAAI,OAAO,YAAY,KAAK,SAC1B,KAAK,UAAU,OAAO;CAexB,MAAM,eAbe,OAAO,KAAK;EAC/B,QAAQ;EACR,mBAAmB;EACnB,eAAe;EACf,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,cAAc;EACd,oBAAoB;EACpB,oBAAoB;EACpB,gBAAgB;CAElB,CACgC,CAAC,CAAC,QAAQ,MAAM,QAAQ;EACtD,IAAI,KAAK,MAAM,SAAS,OAAO,MAAM,MACnC,KAAK,OAAO,OAAO,MAAM;EAE3B,OAAO;CACT,GAAG,CAAC,CAAC;CACL,YAAY;EACV,IAAI,OAAO,KAAK,YAAY,CAAC,CAAC,QAC5B,KAAK,UAAU,UAAU,UAAU;GAAE,GAAG;GAAM,GAAG;EAAa,EAAE;EAElE,IAAI,OAAO,MAAM,aAAa,KAAK,MAAM,UACvC,KAAK,YAAY,OAAO,MAAM,QAAQ;CAE1C,CAAC;CACD,OAAO;AACT;;ACzCA,IAAM,4BAA4B,OAAO,WAAW,cAAc,kBAAkB;;ACKpF,SAAS,SAAS,MAAM;CACtB,MAAM,CAAC,aAAa,kBAAkB,gBAAgB;EACpD,MAAM,KAAK;EACX,MAAM,KAAK;CACb,EAAE;CACF,MAAM,CAAC,eAAe,eAAe,eAAe;EAClD,OAAO,IAAI,SAAS,EAClB,GAAG,KACL,CAAC;CACH,CAAC;CACD,IAAI,WAAW;CACf,IAAI,YAAY,SAAS,KAAK,QAAQ,YAAY,SAAS,KAAK,MAAM;EACpE,WAAW,IAAI,SAAS,EACtB,GAAG,KACL,CAAC;EACD,YAAY,QAAQ;EACpB,eAAe;GAAE,MAAM,KAAK;GAAM,MAAM,KAAK;EAAK,CAAC;CACrD;CACA,MAAM,qBAAqB,YACzB,SAAS,OACT,KAAK,SAAS,WAAW,UAAU,MAAM,KAAK,iBAAiB,KAAK,UAAU,MAAM,KACtF;CACA,MAAM,wBAAwB,YAC5B,SAAS,QACR,UAAU,MAAM,KAAK,SACxB;CACA,MAAM,wBAAwB,YAC5B,SAAS,QACR,UAAU,MAAM,KAAK,SACxB;CACA,MAAM,sBAAsB,YAC1B,SAAS,QACR,UAAU,MAAM,KAAK,OACxB;CACA,MAAM,uBAAuB,YAC3B,SAAS,QACR,UAAU,MAAM,KAAK,QACxB;CACA,MAAM,6BAA6B,YACjC,SAAS,QACR,UAAU,MAAM,KAAK,cACxB;CACA,MAAM,2BAA2B,YAC/B,SAAS,QACR,UAAU,MAAM,KAAK,YACxB;CACA,MAAM,mBAAmB,cAAc;EAuBrC,OAAO;GArBL,GAAG;GACH,IAAI,QAAQ;IACV,OAAO;KAGL,OAAO,KAAK,SAAS,UAAU,SAAS,MAAM,QAAQ;KACtD,IAAI,OAAO;MACT,OAAO;OACL,GAAG,SAAS,MAAM;OAClB,WAAW;OACX,WAAW;OACX,SAAS;OACT,UAAU;OACV,gBAAgB;OAChB,cAAc;MAChB;KACF;IACF;GACF;EAGe;CACnB,GAAG;EACD;EACA,KAAK;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,0BAA0B,SAAS,OAAO,CAAC,QAAQ,CAAC;CACpD,gCAAgC;EAC9B,SAAS,OAAO,IAAI;CACtB,CAAC;CACD,OAAO;AACT;AACA,IAAM,UAAU,EACd,UACA,GAAG,mBACC;CACJ,MAAM,WAAW,SAAS,YAAY;CACtC,MAAM,eAAe,cACb,iBAAiB,UAAU,QAAQ,GACzC,CAAC,UAAU,QAAQ,CACrB;CACA,OAAuB,oBAAIE,YAAU,EAAE,UAAU,aAAa,CAAC;AACjE;;ACrGA,SAAS,UAAU;CACjB,OAAO,eAAe,KAAK,CAAC,CAAC,CAAC;AAChC;;ACFA,IAAM,SAASC;AACf,IAAM,YAAYA,QAAM,QAAQ,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO,UAAU,OAAO;;ACG1E,SAAS,aAAa,MAAM;CAC1B,MAAM,CAAC,aAAa,kBAAkB,gBAAgB;EACpD,MAAM,KAAK;EACX,MAAM,KAAK;CACb,EAAE;CACF,MAAM,CAAC,cAAc,mBAAmB,eAAe;EACrD,OAAO,IAAI,aAAa,EACtB,GAAG,KACL,CAAC;CACH,CAAC;CACD,IAAI,YAAY,SAAS,KAAK,QAAQ,YAAY,SAAS,KAAK,MAAM;EACpE,gBACE,IAAI,aAAa,EACf,GAAG,KACL,CAAC,CACH;EACA,eAAe;GAAE,MAAM,KAAK;GAAM,MAAM,KAAK;EAAK,CAAC;CACrD;CACA,MAAM,qBAAqB,YACzB,aAAa,QACZ,UAAU,MAAM,KACnB;CACA,MAAM,wBAAwB,YAC5B,aAAa,QACZ,UAAU,MAAM,KAAK,SACxB;CACA,MAAM,wBAAwB,YAC5B,aAAa,QACZ,UAAU,MAAM,KAAK,SACxB;CACA,MAAM,sBAAsB,YAC1B,aAAa,QACZ,UAAU,MAAM,KAAK,OACxB;CACA,MAAM,uBAAuB,YAC3B,aAAa,QACZ,UAAU,MAAM,KAAK,QACxB;CACA,MAAM,6BAA6B,YACjC,aAAa,QACZ,UAAU,MAAM,KAAK,cACxB;CACA,MAAM,2BAA2B,YAC/B,aAAa,QACZ,UAAU,MAAM,KAAK,YACxB;CACA,MAAM,2BAA2B,YAC/B,aAAa,QACZ,UAAU,MAAM,KAAK,YACxB;CACA,MAAM,0BAA0B,YAC9B,aAAa,QACZ,UAAU,MAAM,KAAK,WACxB;CACA,MAAM,iCAAiC,YACrC,aAAa,QACZ,UAAU,MAAM,KAAK,kBACxB;CACA,MAAM,iCAAiC,YACrC,aAAa,QACZ,UAAU,MAAM,KAAK,kBACxB;CACA,MAAM,wBAAwB,YAC5B,aAAa,QACZ,UAAU,MAAM,KAAK,SACxB;CACA,MAAM,sBAAsB,YAC1B,aAAa,QACZ,UAAU,MAAM,KAAK,OACxB;CACA,MAAM,4BAA4B,YAChC,aAAa,QACZ,UAAU,MAAM,KAAK,aACxB;CACA,MAAM,iCAAiC,YACrC,aAAa,QACZ,UAAU,MAAM,KAAK,kBACxB;CACA,MAAM,2BAA2B,YAC/B,aAAa,QACZ,UAAU,MAAM,KAAK,YACxB;CACA,MAAM,mBAAmB,cAAc;EAkCrC,OAAO;GAhCL,GAAG;GACH,gBAAgB,GAAG,UAAU;IAC3B,OAAO,aAAa,cAAc,GAAG,KAAK;GAC5C;GACA,IAAI,QAAQ;IACV,OAAO;KACL,GAAG,aAAa;KAChB,OAAO;KACP,IAAI,OAAO;MACT,OAAO;OACL,GAAG,aAAa,MAAM;OACtB,WAAW;OACX,WAAW;OACX,SAAS;OACT,UAAU;OACV,gBAAgB;OAChB,cAAc;OACd,cAAc;OACd,aAAa;OACb,oBAAoB;OACpB,oBAAoB;OACpB,WAAW;OACX,SAAS;OACT,eAAe;OACf,oBAAoB;OACpB,cAAc;MAChB;KACF;IACF;GACF;EAGe;CACnB,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,0BAA0B,aAAa,OAAO,CAAC,YAAY,CAAC;CAC5D,gCAAgC;EAC9B,aAAa,OAAO,IAAI;CAC1B,CAAC;CACD,OAAO;AACT;AACA,IAAM,cAAc,EAClB,UACA,GAAG,uBACC;CACJ,MAAM,eAAe,aAAa,gBAAgB;CAClD,MAAM,eAAe,cACb,iBAAiB,UAAU,YAAY,GAC7C,CAAC,UAAU,YAAY,CACzB;CACA,OAAuB,oBAAIC,YAAU,EAAE,UAAU,aAAa,CAAC;AACjE;;ACrJA,SAAS,eAAe,EACtB,MACA,YAAY,UAAU,OACtB,YACC;CACD,MAAM,OAAO,YAAY,KAAK,OAAO,QAAQ;CAC7C,OAAuB,oBAAIC,YAAU,EAAE,UAAU,iBAAiB,UAAU,IAAI,EAAE,CAAC;AACrF;AACA,SAAS,QAAQ,MAAM;CACrB,MAAM,iBAAiB,UAAU;CACjC,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM,MAAM;CACzD,MAAM,CAAC,SAAS,cAAc,eAAe;EAC3C,OAAO,IAAI,QAAQ;GAAE,GAAG;GAAM,QAAQ,MAAM,UAAU;EAAe,CAAC;CACxE,CAAC;CACD,IAAI,eAAe,MAAM,QAAQ;EAC/B,MAAM,SAAS,MAAM,UAAU;EAC/B,WAAW,IAAI,QAAQ;GAAE,GAAG;GAAM;EAAO,CAAC,CAAC;EAC3C,cAAc,MAAM;CACtB;CACA,MAAM,kBAAkB,cAAc;EACpC,MAAM,cAAc;GAClB,GAAG;GACH,gBAAgB,GAAG,UAAU;IAC3B,OAAO,QAAQ,cAAc,GAAG,KAAK;GACvC;GAEA,IAAI,SAAS;IACX,OAAO,QAAQ;GACjB;GACA,IAAI,QAAQ;IACV,OAAO,QAAQ,MAAM;GACvB;EACF;EACA,YAAY,QAAQ,SAAS,SAAS,OAAO;GAC3C,OAAuB,oBAAI,OAAO;IAAE,GAAG;IAAO,MAAM;GAAQ,CAAC;EAC/D;EACA,YAAY,YAAY,SAAS,aAAa,OAAO;GACnD,OAAuB,oBAAI,WAAW;IAAE,GAAG;IAAO,MAAM;GAAQ,CAAC;EACnE;EACA,YAAY,YAAY,SAAS,UAAU,OAAO;GAChD,OAAuB,oBACrB,gBACA;IACE,MAAM;IACN,UAAU,MAAM;IAChB,UAAU,MAAM;GAClB,CACF;EACF;EACA,OAAO;CACT,GAAG,CAAC,OAAO,CAAC;CACZ,0BAA0B,QAAQ,OAAO,CAAC,CAAC;CAC3C,gCAAgC;EAC9B,QAAQ,OAAO,IAAI;CACrB,CAAC;CACD,MAAM,SAAS,OAAO,KAAK;CAC3B,gCAAgC;EAC9B,IAAI,CAAC,OAAO,SAAS;EACrB,IAAI,CAAC,MAAM,WAAW;EACtB,eAAe,SAAS,KAAK,SAAS;CACxC,GAAG,CAAC,SAAS,MAAM,SAAS,CAAC;CAC7B,gCAAgC;EAC9B,OAAO,UAAU;CACnB,CAAC;CACD,OAAO;AACT;;;AC9BA,SAAS,aAAa,QAAoC;CACxD,IAAI;EACF,OAAO,IAAI,OAAO,OAAO,OAAO,KAAK,GAAG;CAC1C,QAAQ;EACN;CACF;AACF;;;;;AAsEA,SAAgB,eAAe,QAAkC,UAA2C;CAC1G,MAAM,OAAiB;EAAE,GAAI,OAAO,QAAQ,CAAC;EAAI,GAAI,YAAY,CAAC;CAAG;CACrE,OAAO,KAAK,QAAQ,KAAA,KAAa,KAAK,QAAQ,KAAA,KAAa,KAAK,YAAY,KAAA,IAAY,KAAA,IAAY;AACtG;;AAGA,IAAM,UAAU,SAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;;AAG3C,SAAgB,cAAc,MAAgB,OAA2C;CACvF,IAAI,OAAO,UAAU,YAAY,UAAU,IAAI,OAAO,KAAA;CACtD,IAAI,KAAK,QAAQ,KAAA,KAAa,OAAO,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,OAAO;CACtE,IAAI,KAAK,QAAQ,KAAA,KAAa,OAAO,KAAK,IAAI,KAAK,KAAK,OAAO;CAC/D,IAAI,KAAK,YAAY,KAAA,KAAa,CAAC,aAAa,KAAK,OAAO,CAAC,EAAE,KAAK,KAAK,GAAG,OAAO;AAErF;;;;;;;;;;;;;AC9GA,eAAe,MAAM,MAAwB,YAA4E;CACvH,MAAM,UAAkD,CAAC;CACzD,IAAI;CACJ,KAAK,MAAM,OAAO,MAChB,IAAI,IAAI,QAAQ;EACd,MAAM,CAAC,MAAM,WAAW,IAAI,MAAM;EAClC,IAAI;GAQF,MAAM,OAAO,MAPM,IAAI,YAAY;IACjC,GAAG,GAAG,IAAI,OAAO,GAAG,GAAG,GAAG,aAAa;IACvC,OAAO;IACP,QAAQ;IACR,OAAO;IACP,GAAG,QAAQ,UAAU;GACvB,CAAC,EAAA,CACiB,OAAsD,EAAE,GAAG;GAC7E,QAAQ,IAAI,UAAU,OAAO,QAAQ,YAAY,OAAO,QAAQ,WAAW,MAAM;EACnF,QAAQ;GACN,QAAQ,IAAI,UAAU;EACxB;CACF,OAAO;EACL,UAAU,IAAI,aAAa,mBAAmB,mBAAmB,UAAU,MAAM,aAAa,CAAC,CAC5F,MAAM,OAA2B,OAAO,GAAG,QAAQ,WAAW,GAAG,MAAM,IAAK,CAAC,CAC7E,YAAY,IAAI;EACnB,QAAQ,IAAI,UAAU,MAAM;CAC9B;CAEF,OAAO;AACT;;AAGA,SAAgB,UACd,OACA,MACA,KAC6D;CAC7D,IAAI,CAAC,KAAK,OAAO,CAAC;CAClB,OAAO,OAAO,QAAQ,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,WAAW;EACrE,MAAM,SAAS,MAAM,QAAQ,MAAM,MAAkB,EAAE,SAAS,IAAI;EACpE,MAAM,OAAO,UAAU,gBAAgB,QAAQ,KAAK;EACpD,OAAO,QAAQ,SAAS,CAAC;GAAE;GAAQ;EAAK,CAAC,IAAI,CAAC;CAChD,CAAC;AACH;;AAGA,SAAgB,aACd,MACA,OACA,KAA6C,CAAC,GACpB;CAC1B,IAAI,CAAC,MAAM,QAAQ,OAAO;CAC1B,MAAM,sBAAM,IAAI,KAAK;CACrB,MAAM,WAAoC,EAAE,GAAI,MAAM,YAAY,CAAC,EAAG;CACtE,KAAK,MAAM,EAAE,QAAQ,UAAU,OAC7B,IAAI,SAAS,MAAM,SAAS,OAAO,QAAQ,aAAa,MAAM,QAAQ,KAAK,gBAAgB,CAAC;MACvF,IAAI,GAAG,OAAO,UAAU,QAAQ,GAAG,OAAO,UAAU,KAAA,GAAW,OAAO,SAAS,OAAO;MACtF,SAAS,OAAO,QAAQ,GAAG,OAAO;CAEzC,OAAO;EAAE,GAAG;EAAM,UAAU;CAAS;AACvC;;AAGA,SAAgB,cACd,OACA,OACA,QACoD;CACpD,MAAM,OAAgB,MACnB,QAAQ,MAAM,EAAE,SAAS,IAAI,CAAC,CAC9B,KAAK,EAAE,cAAc;EAAE,QAAQ,OAAO;EAAM,GAAI,OAAO,aAAa,EAAE,QAAQ,OAAO,OAAO,WAAW,KAAK,EAAE,IAAI,CAAC;CAAG,EAAE;CAC3H,MAAM,aAAa,MAAM;CACzB,MAAM,KAAK,SAAS;EAClB,UAAU;GAAC;GAAW;GAAY,MAAM;GAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;EAAC;EAC3F,eAAe,MAAM,MAAM,UAAU;EACrC,OAAO;EACP,WAAW;CACb,CAAC;CACD,OAAO,GAAG,YAAY,KAAA,IAAa,GAAG,QAAQ,CAAC;AACjD;;;;;;AAOA,eAAsB,aACpB,MACA,WACA,QACA,QACiB;CACjB,MAAM,KAAK,UAAU,cAAc,OAAO,UAAU,WAAW,KAAK;CACpE,MAAM,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC;CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,WAAW,IAAI,OAAO;CAC5C,MAAM,MAAM,UAAU,YAAY,UAAU,WAAW,EAAE,CAAC,CAAC;CAC3D,IAAI;EAsBF,MAAM,SAlBJ,GAAG,YAAY,OAAO,OAAO,GAAG,UAAU,MAAM,IAC5C,MAAM,IAAI,iBAAiB,EACzB,MAAM;GACJ,IAAI,WAAW,GAAG;GAClB,MAAM,GAAG;GACT,MAAM,GAAG;GACT,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;GAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAAE,MAAM;IAAK,IAAI;IAAK,OAAO;GAAO,CAAC,CAAC,EAAE;GAC5D,OAAO;EACT,EACF,CAAC,IACD,MAAM,IAAI,cAAc;GACtB,OAAO,GAAG;GACV,SAAS,CAAC,MAAM;GAChB,QAAQ,eAAe,GAAG,MAAM,OAAO,CAAC;GACxC,OAAO;GACP,QAAQ;EACV,CAAC,EAAA,CACa,OAAsD,EAAE,GAAG;EAC/E,OAAO,UAAU,QAAQ,UAAU,KAAA,IAAY,KAAK,OAAO,KAAK;CAClE,QAAQ;EACN,OAAO;CACT;AACF;;;AC/IA,IAAa,MAAM,eAAe;CAChC,YAAY;CACZ,MAAM;CACN,iBAAiB;CACjB,uBAAuB;CACvB,YAAY;CACZ,WAAW;CACX,sBAAsB;CACtB,aAAa;CACb,sBAAsB;CACtB,oBAAoB;CACpB,QAAQ;CACR,QAAQ;CACR,qBAAqB;CACrB,uBAAuB;CACvB,cAAc;CACd,8BAA8B;CAC9B,KAAK;CACL,UAAU;CACV,kBAAkB;CAClB,wBAAwB;CACxB,eAAe;CACf,aAAa;CACb,cAAc;CACd,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX,iBAAiB;AACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC+CD,IAAM,gBAAgB,eAAe,OAAO,yBAAuB,iBAAiB,EAAE,OAAO,KAAK,CAAC;AAEnG,IAAM,YAAY,WAAuB,WAAW,OAAO,IAAI,MAAM,UAAU,CAAC,QAAQ,KAAK,OAAO,IAAI;AAExG,IAAM,eAAe,QAAoB,OAAe,SACtD,UAAU,OAAO,SAAS,MAAM,IAAI,CAAC,aAAa,KAAK,IAAI,SAAS,cAAc,CAAC,iBAAiB,KAAK;AAO3G,IAAM,mBAAmB,MAAgB,UAAkB;CACzD,MAAM,SAAS,cAAc,MAAM,KAAK;CACxC,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,KAAK,SAAS,OAAO,KAAK;CAC9B,OAAO,WAAW,QACd,IAAI,cAAc,EAAE,KAAK,KAAK,IAAK,CAAC,IACpC,WAAW,QACT,IAAI,aAAa,EAAE,KAAK,KAAK,IAAK,CAAC,IACnC,IAAI,sBAAsB;AAClC;AAuCA,IAAM,WAAW;CAAE,aAAa,QAAQ,QAAQ;CAAG,YAAY;AAAK;;AAGpE,SAAgB,cAAc,OAAsB;CAGlD,MAAM,aAAa,MAAM,OAAO,CAAC,MAAM,WAAW,QAAQ,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,MAAM,MAAM;CAC/G,MAAM,YAAY,WAAW,MAAM,CAAC,CAAC,MAAM,aAAa,UAAU,UAAU;CAC5E,IAAI,cAAc,CAAC,WACjB,OACE,oBAAC,KAAD;EAAG,WAAU;EAAgB,MAAK;EAC/B,UAAA,IAAI,gBAAgB;CACpB,CAAA;CAEP,MAAM,QAAQ,UAAU,MAAM,OAAO,MAAM,MAAM,MAAM,GAAG;CAE1D,IAAI,MAAM,MAAM,MAAM,EAAE,SAAS,IAAI,GAAG,OAAO,oBAAC,qBAAD;EAAqB,GAAI;EAAc;CAAQ,CAAA;CAC9F,OAAO,oBAAC,mBAAD;EAAmB,GAAI;EAAO,MAAM,aAAa,MAAM,MAAM,KAAK;CAAI,CAAA;AAC/E;AAEA,SAAS,oBAAoB,EAAE,OAAO,GAAG,SAAkE;CACzG,MAAM,KAAK,cAAc,MAAM,OAAO,OAAO,MAAM,MAAM;CACzD,IAAI,CAAC,IACH,OACE,oBAAC,KAAD;EAAG,WAAU;EAAgB,MAAK;EAC/B,UAAA,IAAI,gBAAgB;CACpB,CAAA;CAEP,OAAO,oBAAC,mBAAD;EAAmB,GAAI;EAAO,MAAM,aAAa,MAAM,MAAM,OAAO,EAAE;CAAI,CAAA;AACnF;AAEA,SAAS,kBAAkB,EACzB,OACA,MACA,KACA,OAAO,aACP,QACA,QACA,SACA,UACA,iBACA,iBACA,oBACA,UAAU,OACV,kBAAkB,SAClB,SACA,QAAQ,MAAM,WAAW,YACT;CAChB,mBAAmB;CACnB,MAAM,WAAW,QAAQ,KAAK;CAC9B,MAAM,UAAU,YAAY,OAAO,MAAM,GAAG;CAC5C,MAAM,SAAS,WAAW,OAAO,MAAM,GAAG;CAI1C,MAAM,QAAQ,MACV,QACG,QAAQ,WAAW,aAAa,MAAM,KAAK,CAAC,OAAO,SAAS,MAAM,CAAC,CACnE,SAAS,WAAW;EACnB,MAAM,QAAQ,UAAU,QAAQ,MAAM,YAAY,CAAC,CAAC;EACpD,OAAO,UAAU,KAAA,IAAY,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,KAAK,CAAU;CAClE,CAAC,IACH,CAAC;CAEL,MAAM,WAAoC;EACxC,GAAG,OAAO,YAAY,KAAK;EAC3B,GAAI,MAAM,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC;EAC/C,GAAI,MAAM,YAAY,CAAC;CACzB;CACA,MAAM,WAAW,IAAI,IAAI,MAAM,KAAK,CAAC,UAAU,IAAI,CAAC;CAGpD,MAAM,eAAe,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,MAAM,GAAG,EAAE,OAAO,KAAA;CACxE,MAAM,YAAY,WAAuB,eAAe,QAAQ,eAAe,OAAO,KAAK;CAK3F,MAAM,UAAU,OAAO,CAAC,gBAAgB,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,MAAM,GAAG,EAAE,OAAO,KAAA;CACxG,MAAM,aAAa,UAAU,OAAO,QAAQ,OAAO,IAAI,KAAA;CACvD,MAAM,WAAW,UAAU,OAAO,QAAQ,EAAE,IAAI,KAAA;CAEhD,MAAM,aAAa,QACjB,cAAc,YAAY,CAAC,WAAW,UAAU,WAAW,eAAe,SAAS,aAAa,WAAW,EAAE,CAC/G;CACA,MAAM,CAAC,WAAW,gBAAgB,SAAmB,CAAC,CAAC;CACvD,MAAM,cAAc,QAAoB,UAAmB;EACzD,MAAM,OAAO,SAAS,MAAM;EAC5B,OAAO,QAAQ,QAAQ,cAAc,MAAM,KAAK,CAAC;CACnD;CACA,MAAM,SAAS,WACb,OAAO,MAAM,UAAU,OAAO,OAAO,KAAK,QAAQ,OAAO,IAAI,IAAI,KAAK,OAAO,OAAO,QAAQ,KAAA;CAC9F,MAAM,SAAS,WAAuB,MAAM,MAAM,CAAC,EAAE,SAAS,YAAY,MAAM;CAChF,MAAM,UAAU,WACd,MACI,WAAW,QAAQ;EACjB,OAAO,UAAU,MAAM,CAAC,EAAE,WAAW;EACrC,UAAU,UAAU,MAAM,CAAC,EAAE,WAAW;EACxC,WAAW,MAAM,MAAM,CAAC,EAAE;EAC1B,UAAU,WAAW,QAAQ,QAAQ;EACrC,UACE,SAAS,IAAI,OAAO,IAAI,KACvB,CAAC,aAAa,MAAM,MAAM,YAAY,QAAQ,QAAQ,MAAM,MAAM,OAAO,YAAY,KAAA,KAAa,OAAO,eAAe;EAC3H,WAAW,QAAQ,OAAO,cAAc,OAAO,OAAO,WAAW,KAAK,CAAC;CACzE,CAAC,IACD,KAAA;CAEN,MAAM,UAAU,QAAoB,WAA6D;EAC/F,MAAM,OAAO,UAAU,MAAM,KAAK,KAAA;EAClC,OAAO,MAAM,iBACT;GACE,GAAG;GACH,UAAU,YAAY,MAAM,QAAQ,KAAK,YAAY,EAAE,KAAK,KAAA;EAC9D,IACA;CACN;CAEA,MAAM,iBAAiB,QAAoB,WAAmC;EAC5E,MAAM,OAAO,MAAM,OAAO,QAAQ;GAAE,GAAG;GAAU,GAAG;EAAO,CAAC,IAAI,KAAA;EAChE,OAAO,MAAM,WAAW,WAAW,KAAK,QAAQ,aAAa,OAAO,OAAO,OAAO,KAAK,YAAY,gBAAgB,CAAC,IAAI;CAC1H;CAGA,MAAM,YAAY,OAAO,CAAC,UAAU,MAAM,CAAC,CAAC,MAAM,WAAW,IAAI,IAAI,KAAA;CACrE,MAAM,YAAY,YAAa,MAAM,SAAS,CAAC,IAAK,CAAC,EAAA,CAAG,SAAS,SAAS;EACxE,MAAM,QAAQ,OAAO,KAAK,IAAI;EAC9B,OAAO,QAAQ,CAAC;GAAE,GAAG;GAAM,OAAO;EAAM,CAAC,IAAI,CAAC;CAChD,CAAC;CACD,MAAM,CAAC,OAAO,YAAY,eACxB,OAAO,YAAY,SAAS,KAAK,SAAS,CAAC,KAAK,MAAM,IAAI,MAAM,KAAK,EAAE,QAAQ,KAAK,OAAO,EAAE,GAAG,UAAW,SAAS,CAAC,CAAC,CAAC,CACzH;CACA,MAAM,CAAC,YAAY,iBAAiB,SAAS,KAAK;CAClD,MAAM,aAAa,OAAO,YACxB,SAAS,KAAK,SAAS,CACrB,KAAK,MAAM,IACX,UAAW,aAAa,KAAK,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,GAAI,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAE,CAAC,CAC9H,CAAC,CACH;CACA,MAAM,aAAa,SAAS,MAAM,UAAU,MAAM,KAAK,MAAM,GAAG,EAAE,UAAU,MAAM,KAAK,OAAO,EAAE;CAChG,MAAM,OAAO,YAAa,MAAM,QAAQ,CAAC,IAAK,CAAC;CAE/C,MAAM,gBAAgB,OAAO,YAC3B,OAAO,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,MAAM,UAAU,QAAQ,UAAU,KAAA,IAAY,KAAK,OAAO,KAAK,CAAC,CAAC,CACpH;CAEA,MAAM,cAAc,SAAiB,QAAQ,QAAQ,WAAW,OAAO,OAAO,MAAM,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC;CAExH,MAAM,QAAQ,CAAC,WAAW,MAAM,OAAO,SAAS,KAAK,QAAQ,KAAA;CAC7D,MAAM,CAAC,WAAW,gBAAgB,SAAS,CAAC;CAC5C,MAAM,UAAU,SAAiB,KAAK,IAAI,GAAG,OAAO,WAAW,SAAS,KAAK,OAAO,SAAS,IAAI,CAAC,KAAK,CAAC;CACxG,MAAM,cAAc,MAAM;CAC1B,MAAM,CAAC,mBAAmB,wBAAwB,SAE/C;CACH,MAAM,QAAQ,sBAAsB,KAAA;CACpC,MAAM,CAAC,qBAAqB,0BAA0B,yBAAsB,IAAI,IAAI,CAAC;CACrF,MAAM,CAAC,OAAO,YAAY,SAAS,KAAK;CACxC,MAAM,WAAW,uBAAO,IAAI,IAA8B,CAAC;CAC3D,MAAM,SAAS,uBAAO,IAAI,IAAY,CAAC;CACvC,MAAM,gBAAgB,aACnB,YAAqB;EACpB,IAAI,SAAS,qBAAqB,IAAI;EACtC,kBAAkB,OAAO;CAC3B,GACA,CAAC,iBAAiB,kBAAkB,CACtC;CACA,MAAM,aAAa,gBAAgB,QAAQ,SAAS,aAAa;CACjE,gBAAgB;EACd,uCAAuB,IAAI,IAAI,CAAC;CAClC,GAAG,CAAC,WAAW,WAAW,CAAC;CAC3B,MAAM,yBAAyB,WAAW,YAAY,MAAM,UAAU,QAAQ,MAAM,WAAW,OAAO,SAAS,MAAM,KAAK,CAAC;CAC3H,MAAM,0BAA0B,WAAW,YAAY,MAAM,UAAU,QAAQ,MAAM,WAAW,OAAO,SAAS,MAAM,KAAK,CAAC,CAAC,EAAE;CAG/H,sBAAsB;EACpB,qBAAqB,WAAW,UAAU,aAAa,WAAW,UAAU,WAAW;CACzF,GAAG,CAAC,WAAW,OAAO,kBAAkB,CAAC;CACzC,MAAM,eAAe,SAAS,WAAW,UAAU;CACnD,sBAAsB;EACpB,kBAAkB,YAAY;CAChC,GAAG,CAAC,cAAc,eAAe,CAAC;CAClC,gBAAgB;EACd,IAAI,CAAC,cAAc;EACnB,MAAM,QAAQ,UAA6B;GACzC,MAAM,eAAe;GACrB,MAAM,cAAc;EACtB;EACA,gBAAgB,QAAQ,gBAAgB,IAAI;EAC5C,aAAa,mBAAmB,QAAQ,gBAAgB,IAAI;CAC9D,GAAG,CAAC,YAAY,CAAC;CACjB,MAAM,WAAW,OAA6B,IAAI;CAClD,MAAM,SAAS,OAA6B,IAAI;CAChD,sBAAsB;EACpB,MAAM,mBAAmB,2BAA2B,SAAS,QAAQ,IAAI,uBAAuB,IAAI,0BAA0B,KAAA;EAC9H,IAAI,kBAAkB,SAAS,QAAQ,IAAI,gBAAgB,CAAC,EAAE,MAAM;OAC/D,IAAI,WAAW,SAAS,SAAS,SAAS,MAAM;OAChD,IAAI,WAAW,UAAU,WAAW,OAAO,SAAS,MAAM;CACjE,GAAG;EAAC,WAAW;EAAa,WAAW;EAAS,WAAW;CAAK,CAAC;CACjE,sBAAsB;EACpB,IAAI,CAAC,mBAAmB;EAGxB,CADgB,kBAAkB,eAAe,KAAA,IAAY,SAAS,UAAU,SAAS,QAAQ,IAAI,kBAAkB,UAAU,EAAA,EACxH,MAAM;CACjB,GAAG,CAAC,iBAAiB,CAAC;CAEtB,MAAM,UAAU,WAAuB,YAAY,QAAQ,QAAQ;CACnE,MAAM,YAAY,WAAuB,WAAW,QAAQ,QAAQ;CACpE,MAAM,gBAAgB,WAAmC;EAIvD,MAAM,mBAA+C,CAAC;EACtD,KAAK,MAAM,UAAU,SAAS;GAC5B,MAAM,YACJ,OAAO,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,OAAO,UAAU,OAAO,IAAI,IAAI,OAAO,OAAO,QAAQ,SAAS,OAAO;GAEnH,IAAI,cAAc,IAAI,iBAAiB,OAAO,QAAQ;QACjD,IACH,cAAc,QACd,OAAO,cAAc,YACrB,OAAO,cAAc,aACpB,OAAO,cAAc,YAAY,OAAO,SAAS,SAAS,GAE3D,iBAAiB,OAAO,QAAQ;EACpC;EACA,OAAO;CACT;CAEA,MAAM,IAAI,QAAQ;EAChB,eAAe,OAAO,YAAY,QAAQ,KAAK,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;EACzE,UAAU,OAAO,EAAE,YAAY;GAC7B,IAAI,WAAW,QAAQ;GACvB,WAAW,aAAa;GAMxB,MAAM,SAAS,aAAa,OAAO,UAAU,OAAO,SAAS,MAAM,OAAO;GAC1E,MAAM,UAAU,CACd,GAAG,cAAc,SAAS,QAAQ,QAAQ,GAC1C,GAAG,cACD,MAAM,QAAQ,QAAQ,MAAM,CAAC,QAAQ,SAAS,CAAC,CAAC,GAChD,QACA,UACA,MAAM,OACR,CACF;GACA,MAAM,UAAU,QAAQ,QACrB,WACC,YAAY,QAAQ,MAAM,OAAO,SAAS,IAAI,OAAO,MAAM,CAAC,KAC5D,WAAW,QAAQ,MAAM,OAAO,KAAK,KACrC,cAAc,QAAQ,KAAK,CAC/B;GACA,MAAM,aACJ,SAAS,SAAS,MAAM,QAAQ,UAAU,KAAK,OAAO,OAAO,UAAU,CAAC,CAAC,MAAM,aAAa,OAAO,KAAK,QAAQ,CAAC,CAAC,MAAM;GAC1H,IAAI,YAAY,cAAc,IAAI;GAClC,IAAI,QAAQ,UAAU,QAAQ,UAAU,YAAY;IAClD,MAAM,aAAa,QAAQ,MAAM,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE;IAEjF,IAAI,SAAS,YAAY,aAAa,OAAO,UAAU,CAAC;IACxD,qBAAqB,EAAE,WAAW,CAAC;IACnC;GACF;GACA,MAAM,YAAY,SAAS,SACvB,EACE,OAAO,OAAO,YACZ,SAAS,KAAK,SAAS,CACrB,KAAK,MAAM,KACV,MAAM,KAAK,MAAM,OAAO,CAAC,EAAA,CAAG,KAAK,SAAS,EACzC,QAAQ,UAAW,WAAW,KAAK,KAAK,IAAI,EAC9C,EAAE,CACJ,CAAC,CACH,EACF,IACA,CAAC;GACL,MAAM,QAAQ;IACZ,GAAI,UAAU,SAAS,EAAE,MAAM,UAAU,IAAI,CAAC;IAC9C,GAAG;GACL;GACA,MAAM,WAAW,OAAO,QAAQ,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,QAAQ,KAAA,CAAS;EAC/E;CACF,CAAC;CAGD,gBAAgB;EACd,MAAM,gBAAgB,OAAO,YAAY,QAAQ,KAAK,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;EAChF,MAAM,QACJ,QAAQ,MAAM,MAAM,mBAAmB,MAAM,GAAG,eAAe,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAClG,QAAQ,MAAM,MAAM,mBAAmB,MAAM,GAAG,eAAe,KAAK,CAAC;EACvE,IAAI,OAAO,SAAS,QAAQ,IAAI,MAAM,IAAI,CAAC,EAAE,MAAM;CACrD,GAAG,CAAC,CAAC;CAGL,MAAM,aAAa,SAAmB;EACpC,MAAM,SAAS,EAAE,MAAM;EACvB,MAAM,UAAU,aAAa,MAAM;EACnC,MAAM,QAAQ,QAAQ,QAAQ,WAAW,KAAK,OAAO,SAAS,OAAO,IAAI,KAAK,mBAAmB,MAAM,QAAQ,SAAS,KAAK,CAAC;EAC9H,MAAM,UAAU,cAAc,OAAO,aAAa,QAAQ,UAAU,OAAO,SAAS,MAAM,OAAO,GAAG,QAAQ;EAC5G,MAAM,UAAU,MAAM,QACnB,WACC,YAAY,QAAQ,OAAO,OAAO,SAAS,IAAI,OAAO,MAAM,CAAC,KAC7D,WAAW,QAAQ,OAAO,OAAO,KAAK,KACtC,cAAc,QAAQ,MAAM,CAChC;EACA,qBAAqB,QAAQ,UAAU,QAAQ,SAAS,EAAE,YAAY,QAAQ,EAAE,EAAE,QAAQ,QAAQ,EAAE,EAAE,KAAK,IAAI,KAAA,CAAS;EACxH,OAAO,CAAC,QAAQ,UAAU,CAAC,QAAQ;CACrC;CAEA,MAAM,gBAAgB;EACpB,MAAM,KAAK,KAAK,IAAI,WAAW,MAAO,SAAS,CAAC;EAChD,IAAI,CAAC,UAAU,MAAO,GAAG,GAAG;EAC5B,IAAI,OAAO,MAAO,SAAS,GAAG,EAAO,aAAa;OAC7C,aAAa,KAAK,CAAC;CAC1B;CACA,gBAAgB;EACd,IAAI,SAAS,yBAAyB,aAAa,OAAO,uBAAuB,CAAC;CACpF,GAAG,CAAC,WAAW,WAAW,CAAC;CAG3B,MAAM,aAAa,MAA4B,SAC7C,oBAAC,EAAE,WAAH;EAAa,WAAW,UAAU,MAAM;EACpC,WAAA,WAAW;GACX,MAAM,mBAAmB,aAAa,MAAM;GAC5C,OACE,oBAAAC,YAAA,EAAA,UACG,OAAO,KAAK,OAAO,eAAe;IACjC,MAAM,SAAS,MAAM,QAAQ,QAC1B,YAAY,CAAC,QAAQ,KAAK,IAAI,OAAO,IAAI,MAAM,mBAAmB,MAAM,QAAQ,kBAAkB,KAAK,CAC1G;IACA,IAAI,CAAC,OAAO,QAAQ,OAAO;IAC3B,MAAM,OAAO,OAAO,KAAK,WAAW;KAClC,MAAM,QAAQ,QAAQ,QAAQ,MAAM;KACpC,MAAM,OAAO,OAAO,MAAM;KAC1B,MAAM,MAAM,MAAM,MAAM;KAGxB,MAAM,WAAW,KAAK,SAAS,SAAS,cAAc,mBAAmB,IAAI,OAAO;MAAE,GAAG;MAAU,GAAG;KAAO,CAAC,IAAI;KAClH,MAAM,YACJ,aAAa,KAAA,IACT,OAAO,OAAO,IAAK,KAAM,CAAC,CACvB,KAAK,SAAS,MAAM,QAAQ,MAAM,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,CACzD,QAAQ,MAAuB,QAAQ,CAAC,CAAC,CAAC,CAC1C,IAAI,KAAK,CAAC,CACV,KAAK,OAAO,IACf;KAEN,MAAM,UAAU,MAAM,WAAW,MAAM,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,OAAO,QAAQ,KAAA;KACpF,IAAI,SACF,OACE,oBAAC,EAAE,OAAH;MAA2B,MAAM,OAAO;MACpC,WAAA,UACA,oBAAC,eAAD;OACE,QAAQ,OAAO;OACN;OACT,KAAK,QAAQ,MAAO;QAAE,GAAG;QAAU,GAAG;OAAO,EAA8B,QAAQ,OAAO,KAAA;OAC1F,OAAO,MAAM,MAAM;OACnB,QAAQ,WAAW;OACnB,SAAS;OACT,WAAW,SAAS;QAClB,OAAO,QAAQ,IAAI,OAAO,IAAI;QAC9B,MAAM,aAAa,IAAI;QACvB,SAAS,eAAe,SAAS,EAAE,MAAM,QAAQ,UAAU,OAAO,OAAO,CAAC;OAC5E;MACD,CAAA;KAEI,GAhBK,OAAO,IAgBZ;KAEb,OACE,oBAAC,EAAE,OAAH;MAA2B,MAAM,OAAO;MACpC,WAAA,UAAU;OACV,MAAM,UACJ,SACA,cACE,CAAC,MAAM,GACP,aAAa,GAAG,OAAO,OAAO,MAAM,MAAM,MAAM,GAAG,UAAU,OAAO,SAAS,MAAM,OAAO,GAC1F,QACF,CAAC,CAAC,SAAS;OACb,MAAM,cAAc,WAAW,YAAY,MAAM,UAAU,MAAM,UAAU,OAAO,IAAI;OACtF,MAAM,eAAe,UACjB,IAAI,QAAQ,EAAE,QAAQ,MAAM,MAAM,EAAE,CAAC,IACrC,SAAS,YAAY,QAAQ,MAAM,MAAM,OAAO,IAAI,IAClD,SAAS,aACP,IAAI,iBAAiB,IACrB,IAAI,uBAAuB,IAC7B,SAAS,cAAc,QAAQ,MAAM,IACnC,cAAc,QAAQ,MAAM,IAC5B,SAAS,MAAM,KACb,OAAO,MAAM,MAAM,UAAU,YAC7B,gBAAgB,SAAS,MAAM,GAAI,MAAM,MAAM,KAAK,IACpD,gBAAgB,SAAS,MAAM,GAAI,MAAM,MAAM,KAAK,IACpD,eAAe,CAAC,oBAAoB,IAAI,OAAO,IAAI,IACjD,YAAY,UACZ;OACZ,MAAM,UAAU,GAAG,YAAY,GAAG,MAAM;OACxC,MAAM,OAAO,CAAC,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,KAAA;OAC1G,MAAM,SAAS,OAAO,GAAG,YAAY,GAAG,MAAM,SAAS,KAAA;OACvD,OACE,qBAAC,OAAD;QAAK,WAAW,eAAe,MAAM,gBAAgB,KAAK,eAAe,wBAAwB;QAAjG,UAAA;SACG,MAGC,qBAAC,OAAD;UAAK,WAAU;UAAf,UAAA,CACE,oBAAC,SAAD;WAAO,WAAU;WAAoB,UAAA,MAAM,MAAM;UAAS,CAAA,GAGzD,CAAC,SAAS,MAAM,KACf,qBAAAA,YAAA,EAAA,UAAA,CACG,KACD,oBAAC,QAAD;WAAM,WAAU;WAA4B,UAAA,IAAI,cAAc;UAAQ,CAAA,CACtE,EAAA,CAAA,CAED;SAEL,CAAA,IAAA,qBAAC,SAAD,EAAA,UAAA;UACG,MAAM,MAAM;UACb,oBAAC,QAAD;WAAM,WAAU;WAAQ,UAAA,OAAO,KAAK,YAAY;UAAQ,CAAA;UACvD,OAAO,cAAc,oBAAC,QAAD;WAAM,WAAU;WAAM,UAAA,IAAI,YAAY;UAAQ,CAAA;UACnE,SAAS,MAAM,KACd,oBAAC,QAAD;WAAM,WAAU;WAAM,OAAO,IAAI,sBAAsB;WACpD,UAAA,IAAI,cAAc;UACf,CAAA;SAEH,EAAA,CAAA;SAET,oBAAC,SAAD;UACU;UACH;UACL,OAAO,MAAM,YAAY,MAAM,IAAI,OAAO,IAAI,IAAI,KAAA;UAClD,UAAU,MAAM;UAChB,UAAU,SAAS,MAAM;UACf;UACV,QAAQ,MAAM,MAAM;UACZ;UACR,OAAO,MAAM,MAAM;UACb;UACN,MAAM,MAAM,OAAO,QAAQ;WAAE,GAAG;WAAU,GAAG;UAAO,CAAC,IAAK,UAAU,MAAM,KAAK,KAAA;UAC/E,aAAa,KAAK;UAClB,IAAI,KAAK;UACT,OAAO,aAAa,KAAA,IAAY,KAAA,IAAY,YAAY,KAAA;UACxD,SAAS,aAAa,KAAA;UACd;UACR,WAAW,UAAU;WACnB,OAAO,QAAQ,IAAI,OAAO,IAAI;WAC9B,MAAM,aAAa,KAAK;WAExB,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,MAAM,WAAW,CAAC,CAAC,GAAG;YAC9D,IAAI,CAAC,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,KAAK,OAAO,QAAQ,IAAI,IAAI,GAAG;YACtE,aAAkB,MAAM,QAAQ,OAAO,MAAM,CAAC,CAAC,MAAM,UAAU;aAC7D,IAAI,CAAC,OAAO,QAAQ,IAAI,IAAI,KAAK,EAAE,cAAc,OAAO,IAAI,MAAM,OAAO,EAAE,cAAc,MAAM,KAAK;YACtG,CAAC;WACH;WAEA,KAAK,MAAM,aAAa,WAAW,OAAO,IAAI,GAC5C,IAAI,EAAE,cAAc,UAAU,IAAI,GAAG;YACnC,OAAO,QAAQ,IAAI,UAAU,IAAI;YACjC,EAAE,cAAc,UAAU,MAAM,EAAE;WACpC;WAEF,IAAI,aACF,wBAAwB,aAAa;YACnC,MAAM,OAAO,IAAI,IAAI,QAAQ;YAC7B,KAAK,IAAI,OAAO,IAAI;YACpB,OAAO;WACT,CAAC;WACH,SAAS,eAAe,SAAS,EAAE,MAAM,QAAQ,UAAU,OAAO,OAAO,CAAC;UAC5E;UACA,cACE,CAAC,OAAO,QAAQ,IAAI,OAAO,IAAI,KAAK,OAAO,OAAO,UAAU,OAAO,IAAI,KAAK,SAAS,OAAO,UAAU;UAExG,WAAW,SAAS,SAAS,QAAQ,IAAI,OAAO,MAAM,IAAI;UAC1D,SAAS,eAAe,UAAU,KAAA;SACnC,CAAA;SACA,QACC,oBAAC,KAAD;UAAG,IAAI;UAAQ,WAAU;UACtB,UAAA;SACA,CAAA;SAEL,oBAAC,QAAD;UAAM,IAAI;UAAS,WAAU;UAAiB,aAAU;UAAS,QAAQ,CAAC;UACvE,UAAA;SACG,CAAA;QACH;;MAET;KACO,GAnHK,OAAO,IAmHZ;IAEb,CAAC;IACD,MAAM,SAAS,OACb,OAAO,KAAK,WAAW,OAAO,IAAI,GAClC,MACA,IACF;IACA,MAAM,YAAY,MAAM,MAAM,QAAQ,MAAM,aAAa,SAAS,UAAU,MAAM,KAAK,CAAC,EAAE,cAAc,KAAA;IACxG,OAAO,MAAM,QACX,qBAAC,YAAD;KAAU,WAAU;KAApB,UAAA;MACE,oBAAC,UAAD,EAAA,UAAS,MAAM,MAAc,CAAA;MAC5B,aAAa,oBAAC,KAAD;OAAG,WAAU;OAA4B,UAAA;MAAa,CAAA;MACpE,oBAAC,OAAD;OAAK,WAAU;OAAuB,UAAA;MAAY,CAAA;KAC1C;IAJ8B,GAAA,GAAG,MAAM,MAAM,GAAG,YAIhD,IAEV,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA;IACE,GAFqC,aAAa,YAElD;GAET,CAAC,EACD,CAAA;EAEN;CACW,CAAA;CAOf,MAAM,cACJ,oBAAC,EAAE,WAAH;EAAa,WAAW,UAAU,MAAM;EACpC,WAAA,WAAW,aAAa,oBAAC,UAAU,YAAX;GAA6B;GAAO,OAAO;GAAM,QAAQ;IAAE,GAAG;IAAe,GAAG;GAAO;GAAU;EAAQ,CAAA;CACxH,CAAA;CAEf,MAAM,OAAO,MAAM,MAAM,cAAc,IAAI,oBAAoB;CAC/D,MAAM,SACJ,oBAAC,QAAD;EAAQ,QAAO;EAAY,SAAS;EAAU,UAAU,WAAW,UAAU,aAAc,mBAAmB,WAAW;EACtH,UAAA,WAAW,UAAU,WAAW,UAAU,aAAa,CAAC,kBAAkB,IAAI,cAAc,IAAI,IAAI,eAAe;CAC9G,CAAA;CAGV,OACE,qBAAC,QAAD;EACE,WAAW,cAAc,MAAM,qBAAqB;EACpD,aAAW,WAAW,UAAU;EAChC,WAAW,MAAM;GACf,EAAE,eAAe;GACjB,IAAI,OAAO,QAAQ;QACd,EAAO,aAAa;EAC3B;EAPF,UAAA;GASG,CAAC,WAAW,QAAQ,UAAU,UAAU,oBAAC,KAAD;IAAG,WAAU;IAAe,UAAA;GAAQ,CAAA;GAC7E,qBAAC,YAAD;IAAU,WAAU;IAAgB,UAAU,WAAW;IAAzD,UAAA;KACG,QACC,oBAAC,eAAD;MACS;MACP,MAAM;MACN,eAAe,UAAU,aAAa,KAAK;MAC3C,WAAU;MACV,eAAe,SAAS,UAAU,IAAI;MACtC,kBAAkB,EAAE,aAAa;MACjC,eAAe,MAAM,IAAI,YAAY,IAAI,IAAI,QAAQ;MACrD,SAAS;MACT,cAAc,UAAU,SAAS,SAAS;MAC1C,GAAK,MAAM,UAAU,WAAW,EAAE,OAAO,SAAkB,IAAI,CAAC;MAE9D,WAAA,SACA,UAAU,IAAI,IAAI,KAAK,MAAM,GAAG,CAAC,GAAI,KAAK,QAAQ,CAAC,GAAI,GAAI,MAAM,QAAQ,SAAS,UAAU,MAAM,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAE,CAAC;KAE1G,CAAA,IAEf,UAAU,KAAA,GAAW,MAAM,QAAQ;KAEpC,aAAa,SAAS,SAAS,MAAM,CAAC,SAAS,cAAc,MAAM,SAAS,MAC3E,qBAAAA,YAAA,EAAA,UAAA,CACG,SAAS,KAAK,MAAM,OACnB,oBAAC,UAAU,aAAX;MAEE,OAAO,KAAK;MACZ,OAAO,KAAK;MACZ,SAAS,KAAK;MACd,MAAM,MAAM,KAAK,MAAM,OAAO,CAAC;MAC/B,SAAS,QAAQ,KAAK,KAAK;MAC3B,KAAK,KAAK;MACV,UAAU;OACR,GAAI,aAAa,WAAW,KAAK,MAAM,MAAM,CAAC;OAC9C,GAAG,UAAU,mBAAmB,KAAK,OAAO,WAAW,WAAW;MACpE;MACA,WAAW,SAAS;OAClB,UAAU,cAAc;QACtB,GAAG;SACF,KAAK,MAAM,KAAK;OACnB,EAAE;OACF,SAAS,IAAI;MACf;MAEA,SAAS,OAAO,SAAS,SAAS,KAAK,KAAK,SAAS,IAAI,cAAc,KAAA;KACxE,GApBM,KAAK,MAAM,EAoBjB,CACF,GACA,cAAc,cACb,oBAAC,KAAD;MAAG,WAAU;MAAqB,MAAK;MACpC,UAAA,IAAI,mBAAmB,EAAE,KAAK,WAAW,IAAK,CAAC;KAC/C,CAAA,CAEL,EAAA,CAAA;KAEH,KAAK,SAAS,KAAK,CAAC,SAAS,WAAW,CAAC,SAAS,cAAc,MAAM,SAAS,MAAM;KACrF,eAAe,CAAC,SAAS,cAAc,MAAM,SAAS,MACrD,qBAAC,OAAD;MAAK,WAAW,eAAe,MAAM,gBAAgB;MAArD,UAAA,CACE,oBAAC,SAAD;OAAO,WAAU;OAAoB,UAAA,UAAU,SAAU,IAAI;MAAS,CAAA,GACtE,oBAAC,cAAD;OACE,OAAO;OACP,UAAA;OACA,OAAO;OACP,UAAU;OACV,KAAA;OACA,SAAA;OACA,WAAW,UAAU,SAAU,IAAI;MACpC,CAAA,CACE;;IAEC;;GACV,oBAAC,KAAD;IAAG,KAAK;IAAQ,WAAU;IAAgB,MAAK;IAAS,UAAU;IAAI,QAAQ,WAAW,UAAU;IAChG,UAAA,IAAI,QAAQ;GACZ,CAAA;GACH,oBAAC,EAAE,WAAH;IAAa,WAAW,UAAU,MAAM;IACpC,WAAA,WAAW;KACX,MAAM,gBAAgB,QAClB,cACE,MAAM,QAAQ,QAAQ,MAAM,CAAC,QAAQ,SAAS,CAAC,CAAC,GAChD,aAAa,QAAQ,UAAU,OAAO,SAAS,MAAM,OAAO,GAC5D,UACA,MAAM,OACR,IACA,CAAC;KACL,MAAM,UAAU,yBACZ,KACA,WAAW,YACV,cAAc,SACX,IAAI,uBAAuB,EACzB,KAAK,cAAc,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,EACzC,CAAC,IACD;KACR,OACE,oBAAC,KAAD;MAAG,KAAK;MAAU,WAAU;MAAiB,MAAK;MAAQ,UAAU;MAAI,QAAQ,CAAC;MAC9E,UAAA;KACA,CAAA;IAEP;GACW,CAAA;GAEZ,CAAC,SACA,oBAAC,sBAAD;IACO;IACE;IACG;IACV,SAAS,WAAW,UAAU;IAC9B,QAAQ,WAAW;IACF;GAClB,CAAA;EAEC;;AAEV;;;;;;AAOA,SAAS,OAAO,OAAiB,OAAoB,MAA+D;CAClH,IAAI,CAAC,MAAM,MAAM,QAAQ,IAAI,SAAS,CAAC,GAAG,OAAO;CACjD,MAAM,SAAsB,CAAC;CAC7B,IAAI,KAAK;CACT,OAAO,KAAK,MAAM,QAAQ;EACxB,MAAM,MAAM,KAAK,MAAM,cAAc,UAAU,SAAS,KAAK,UAAU,SAAS,MAAM,GAAG,CAAC;EAC1F,IAAI,MAAM,KAAK;EACf,OAAO,OAAO,MAAM,MAAM,UAAU,IAAI,SAAS,MAAM,IAAI,GAAG;EAC9D,OAAO,KAAK,MAAM,KAAK,IAAI,oBAAC,SAAD,EAAA,UAA4B,MAAM,MAAM,IAAI,GAAG,EAAW,GAA5C,OAAO,IAAqC,IAAI,MAAM,GAAG;EAClG,KAAK;CACP;CACA,OAAO;AACT;;;;;;;AAQA,SAAS,QACP,OAKA;CACA,MAAM,EAAE,OAAO,UAAU,GAAG,SAAS;CACrC,MAAM,KAAK,MAAM;CACjB,IAAI,CAAC,OAAO,OAAO,oBAAC,iBAAD,EAAiB,GAAI,KAAO,CAAA;CAE/C,OACE,oBAAC,WAAD;EACE,WAAW;EACX,UAAU,oBAAC,iBAAD,EAAiB,GAAI,KAAO,CAAA;EACtC,OAAO,KAAK;EACZ,WAAW,SAAS,KAAK,SAAS,SAAS,OAAO,KAAK,OAAO,IAAI,CAAC;EACnE,IAAI,OAAO;EACX,aAAa,KAAK;EAClB,SAAS,QAAQ,KAAK,OAAO;EAC7B,UAAU;EACV,UAAU,KAAK;EACf,OAAO,KAAK;EACZ,OAAO;GAAE,MAAM,KAAK,OAAO;GAAM;EAAS;EAC1C,SAAQ;CACT,CAAA;AAEL;AAEA,IAAI,iBAAiB;;AAErB,SAAS,iBAAiB,QAA0B;CAClD,MAAM,CAAC,MAAM,WAAW,SAAS,cAAc;CAC/C,gBAAgB;EACd,IAAI,CAAC,UAAU,gBAAgB;EAC/B,IAAI,OAAO;EACX,OAAY,uBAAyB,CAAC,WAAW;GAC/C,iBAAiB;GACjB,IAAI,MAAM,QAAQ,IAAI;EACxB,CAAC;EACD,aAAa;GACX,OAAO;EACT;CACF,GAAG,CAAC,MAAM,CAAC;CACX,OAAO,QAAQ;AACjB;AAEA,SAAgB,gBAAgB,EAC9B,QACA,KACA,UACA,UACA,QACA,QACA,OACA,UACA,UACA,cACA,SACA,MACA,MACA,aACA,IACA,OACA,UAAU,OACV,UAyBC;CACD,MAAM,SAAS,MAAM;CACrB,MAAM,YAAY,MAAM;CACxB,MAAM,SAAS,iBAAiB,QAAQ,OAAO,WAAW,OAAO,UAAU;CAG3E,MAAM,aAAa,OAKT,IAAI;CACd,MAAM,cAAc,SAA2B;EAC7C,MAAM,WAAW,WAAW;EAC5B,IAAI,UAAU;GAEZ,MAAM,gBAAgB,SAAS,KAAK,aAAa,kBAAkB,KAAK,GAAA,CACrE,MAAM,KAAK,CAAC,CACZ,QAAQ,OAAO,MAAM,OAAO,SAAS,WAAW,OAAO,SAAS,MAAM;GACzE,IAAI,aAAa,QAAQ,SAAS,KAAK,aAAa,oBAAoB,aAAa,KAAK,GAAG,CAAC;QACzF,SAAS,KAAK,gBAAgB,kBAAkB;GACrD,IAAI,SAAS,WAAW,SAAS,KAAK,aAAa,cAAc,MAAM,QAAQ;IAC7E,IAAI,SAAS,YAAY,MAAM,SAAS,KAAK,gBAAgB,cAAc;SACtE,SAAS,KAAK,aAAa,gBAAgB,SAAS,OAAO;GAClE;GACA,WAAW,UAAU;EACvB;EACA,IAAI,SAAS,WAAW,SAAS;GAC/B,WAAW,UAAU;IACnB;IACA;IACA;IACA,SAAS,KAAK,aAAa,cAAc;GAC3C;GACA,MAAM,gBAAgB,KAAK,aAAa,kBAAkB,KAAK,GAAA,CAAI,MAAM,KAAK,CAAC,CAAC,OAAO,OAAO;GAC9F,IAAI,SAAS,KAAK,aAAa,gBAAgB,MAAM;GAErD,KAAK,aACH,oBACA,CAAC,mBAAG,IAAI,IAAI;IAAC,GAAG;IAAc,GAAI,SAAS,CAAC,MAAM,IAAI,CAAC;IAAI,GAAI,UAAU,CAAC,OAAO,IAAI,CAAC;GAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CACtG;EACF;EAEA,IAAI,QAAQ,KAAK,QAAQ,sCAAoC,GAAG;GAC9D,IAAI,UAAU,KAAK,aAAa,iBAAiB,MAAM;QAClD,KAAK,gBAAgB,eAAe;EAC3C;EACA,SAAS,IAAI;CACf;CAIA,MAAM,eAAe,OAAO,OAAO,WAAW,EAAE,CAAC,CAAC,QAAQ,YAAY,IAAI;CAC1E,MAAM,UAAW,OAA+C;CAEhE,MAAM,QAAQ,WAAoB,MAAO,QAAQ,MAAM,MAAM,KAAK,eAAe,MAAM,IAAK;CAC5F,MAAM,OAAO,eACT,MACE,IAAI,gBAAgB,IACpB,SACF,OAAO,YAAY,OAAO,SAAS,WACjC,IAAI,uBAAuB,IAC3B,OAAO,YAAY,KAAA,IACjB,MACE,IAAI,gBAAgB,EAClB,OAAO,SAAS,SAAS,YAAY,IAAI,KAAK,YAAY,IAAI,aAChE,CAAC,IACD,YAAY,OAAO,YACrB,OAAO,eAAe,OACpB,IAAI,8BAA8B,IAClC,OAAO,aACL,KAAK,OAAO,WAAW,UACvB;CACZ,MAAM,OAAO,eAAe;CAE5B,MAAM,WACJ,SAAS,MAAO,YAAY,MAAM,IAAI,IAAI,qBAAqB,EAAE,OAAO,OAAO,YAAY,EAAE,CAAC,IAAI,IAAI,WAAW,IAAK;CACxH,MAAM,iBAAiB,UAAU,KAAK,aAAa,KAAA;CAGnD,IAAI,QAAQ,OAAO,WAAW,OAAO,eAAe,SAAS,UAAU,aAAa,MAAM,IAAI;EAC5F,IAAI,CAAC,QAAQ,OAAO;EACpB,MAAM,QAAgD,SAAS,SAC3D,QAAQ,KAAK,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAU,IACvD,CACE,CAAC,KAAK,IAAI,YAAY,CAAC,GACvB,CAAC,KAAK,IAAI,WAAW,CAAC,CACxB;EACJ,MAAM,QAAQ,OAAO;EACrB,OACE,oBAAC,OAAD;GAAK,WAAW,QAAQ,iBAAiB;GAAe,MAAK;GAAa,cAAY;GAAQ,iBAAe,YAAY,KAAA;GACtH,UAAA,MAAM,KAAK,CAAC,QAAQ,OAAO,UAC1B,qBAAC,SAAD;IAAoB,WAAW,GAAG,QAAQ,gBAAgB,gBAAgB,UAAU,SAAS,WAAW;IAAxG,UAAA;KACG,SAAS,MAAM,QAAQ,WAAW,UAAU,KAAK,MAAM,OAAO,IAC7D,oBAAC,QAAD;MAAM,WAAU;MAAmB,eAAY;MAC7C,UAAA,oBAAC,MAAD,EAAM,MAAM,KAAK,MAAM,QAAyB,CAAA;KAC5C,CAAA,IACJ;KACH,QAAQ,oBAAC,QAAD;MAAM,WAAU;MAAqB,UAAA;KAAW,CAAA,IAAI;KAC7D,oBAAC,SAAD;MACE,MAAK;MACL,MAAM;MACN,OAAO;MACP,WAAU;MACV,SAAS,UAAU;MACnB,gBAAgB,SAAS,MAAM;MAC/B,KAAK,UAAU,IAAI,aAAa,KAAA;KACjC,CAAA;KACA,QAAQ,oBAAC,QAAD;MAAM,WAAU;MAAa,eAAY;KAAQ,CAAA,IAAI;IACzD;GAjBK,GAAA,MAiBL,CACR;EACE,CAAA;CAET;CACA,KAAM,SAAS,YAAY,OAAO,YAAc,OAAO,YAAY,QAAS,SAAS,QACnF,OACE,oBAAC,OAAD;EAAK,WAAU;EAAiC,MAAK;EAAa,cAAY;EAAQ,iBAAe,YAAY,KAAA;EAC9G,UAAA,QAAQ,KAAK,QAAQ,UACpB,qBAAC,SAAD;GAAO,WAAU;GAAjB,UAAA,CACE,oBAAC,SAAD;IACE,MAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS,UAAU;IACnB,gBAAgB,SAAS,MAAM;IAC/B,KAAK,UAAU,IAAI,aAAa,KAAA;GACjC,CAAA,GACA,KAAK,MAAM,CACP;EAVgC,GAAA,MAUhC,CACR;CACE,CAAA;CAGT,IAAI,SAAS,QACX,OACE,oBAAC,UAAD;EACE,OAAO,CAAC;GAAE,OAAO;GAAI,OAAO;EAAS,GAAG,GAAG,QAAQ,KAAK,OAAO;GAAE,OAAO;GAAG,OAAO,KAAK,CAAC;EAAE,EAAE,CAAC;EACtF;EACP,gBAAgB;EAChB,WAAW,GAAG,SAAS,MAAM,KAAK,IAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,IAAI,EAAE,CAAC;EAClE;EACV,WAAW;CACZ,CAAA;CAGL,IAAI,SAAS,YAAY,OAAO,UAE9B,OACE,qBAAC,SAAD;EAAO,WAAU;EAAjB,UAAA,CACE,oBAAC,SAAD;GACE,KAAK;GACL,MAAK;GACL,MAAK;GACL,cAAY;GACZ,SAAS,UAAU;GACnB,WAAW,MAAM,SAAS,EAAE,OAAO,UAAU,MAAM,GAAG;EACvD,CAAA,GACD,oBAAC,QAAD;GAAM,eAAY;GAAQ,UAAA,UAAU,MAAM,IAAI,YAAY,IAAI,IAAI,WAAW;EAAQ,CAAA,CAChF;;CAGX,IAAI,aAAa,MAAM,GACrB,OACE,oBAAC,UAAD;EACE,OAAO;GACL;IAAE,OAAO;IAAI,OAAO;GAAS;GAC7B;IAAE,OAAO;IAAK,OAAO,MAAM,IAAI,YAAY,IAAI;GAAM;GACrD;IAAE,OAAO;IAAK,OAAO,MAAM,IAAI,WAAW,IAAI;GAAK;EACrD;EACO;EACP,gBAAgB;EAChB,WAAW,GAAG,SAAS,MAAM,KAAK,KAAK,OAAO,KAAK;EACzC;EACV,WAAW;CACZ,CAAA;CAGL,MAAM,aAAa,OAAO,aAAa,OAAO,OAAO,WAAW,KAAK,IAAI,KAAA;CACzE,IAAI,YACF,OACE,oBAAC,cAAD;EACE,OAAO;EACA;EACG;EACV,WAAW;EACN;EACL,UAAU;EACH;EACP,UAAU;EACV,GAAK,cAAc,EAAE,YAAY,IAAI,CAAC;CACvC,CAAA;CAGL,IAAI,SAAS,MAAM,KAAK,SAAS,YAC/B,OACE,oBAAC,WAAD;EACE,IAAI;EACJ,UAAU;EACV,WAAU;EACH;EACG;EACV,UAAU,SAAS;EACnB,cAAY,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,OAAO,KAAK;EAC1D,aAAa,SAAS,SAAS,aAAa,IAAI,YAAY,IAAI;EAChE,QAAQ,aAAa;EACrB,UAAU,eAAe;CAC1B,CAAA;CAKL,IAAI,SAAS,YACX,OACE,oBAAC,eAAD;EACE,OAAO;EACA;EACG;EACV,GAAK,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;EACrC,GAAK,MAAM,WAAW,EAAE,UAAU,cAAc,KAAK,UAAU,MAAM,gBAAgB,EAAE,IAAI,CAAC;CAC7F,CAAA;CAGL,IAAI,SAAS,YACX,OACE,oBAAC,YAAD;EACE,KAAK;EACL,WAAU;EACV,MAAM;EACN,aAAa;EACb,cAAY;EACL;EACP,WAAW,MAAM,SAAS,EAAE,OAAO,KAAK;CACzC,CAAA;CAGL,MAAM,OAAO,OAAuB,QAAQ,OAAO,SAAS,aAC1D,oBAAC,SAAD;EACE,KAAK;EACE;EACP,MAAK;EACL,WAAU;EACV,aAAa,OAAO,OAAO,SAAS,WAAW,KAAK;EACpD,cAAY,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,OAAO,KAAK;EAC1D,cAAa;EACb,YAAY;EACZ,GAAK,SAAS,YAAY,SAAS,UAAU,EAAE,WAAW,UAAmB,IAAI,CAAC;EAClF,OAAO;EACP,WAAW,MAAM,OAAO,EAAE,OAAO,KAAK;CACvC,CAAA;CAEH,IAAI,SAAS,SAAS,OAAO,IAAI;CAEjC,MAAM,WAAW,MAAM,YAAY,gBAAgB;CAEnD,IAAI,MAAM,OACR,OACE,oBAAC,iBAAD;EAAwB;EAAiB;EAAoB;EACzD,WAAA,MAAM,UAAU,oBAAC,YAAD;GAAY,MAAM,eAAe,QAAQ;GAAG,MAAM,UAAU,IAAI,OAAO,MAAM,KAAK;EAAI,CAAA;CACzF,CAAA;CAErB,OAAO,oBAAC,YAAD;EAAY,MAAM,eAAe,QAAQ;EAAQ;CAAM,CAAA;AAChE;AAGA,IAAM,YAAY;AAIlB,SAAS,eAAe,UAA0B;CAChD,IAAI;EACF,OACE,IAAI,KAAK,aAAa,aAAa,GAAG;GAAE,OAAO;GAAY;EAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,SAAS,KAAK,SAAS,UAAU,CAAC,EAC5H,SAAS;CAEjB,QAAQ;EACN,OAAO;CACT;AACF;;;;;;;;AASA,SAAS,WAAW,EAAE,MAAM,OAAoE;CAC9F,MAAM,OAAO,OAAwB,IAAI;CACzC,MAAM,CAAC,OAAO,YAAY,SAA6B,KAAA,CAAS;CAChE,sBAAsB;EACpB,MAAM,OAAO,KAAK;EAClB,MAAM,OAAO,MAAM;EACnB,IAAI,CAAC,QAAQ,CAAC,MAAM;EACpB,MAAM,gBAAgB;GACpB,MAAM,MAAM,YAAY,IAAI,CAAC,CAAC,QAAQ,YAAY,IAAI,CAAC,CAAC;GACxD,IAAI,MAAM,GAAG,SAAS,KAAK,KAAK,GAAG,IAAI,SAAS;EAClD;EACA,QAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;EAC3C,SAAS,QAAQ,IAAI;EACrB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,IAAI,CAAC;CACT,OACE,qBAAC,QAAD;EAAM,WAAU;EAAhB,UAAA,CACE,oBAAC,QAAD;GAAM,KAAK;GAAM,WAAU;GAAoB,eAAY;GACxD,UAAA;EACG,CAAA,GACL,IAAI,UAAU,KAAA,IAAY,KAAA,IAAY,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC,CAChE;;AAEV;;AAGA,SAAS,qBAAqB,EAC5B,KACA,OACA,UACA,SACA,QACA,kBAAkB,SAQjB;CACD,OACE,qBAAC,OAAD;EAAK,WAAW,UAAU,SAAS,iBAAiB,MAAM,kBAAkB;EAA5E,UAAA,CACE,oBAAC,QAAD;GAAQ,QAAO;GAAY,SAAS;GAAU,UAAU,WAAY,mBAAmB;GACpF,UAAA,UAAU,CAAC,WAAW,CAAC,kBAAkB,IAAI,cAAc,IAAI,IAAI,eAAe;EAC7E,CAAA,GACR,oBAAC,QAAD;GAAQ,QAAO;GAAU,MAAK;GAAS,UAAU;GAC9C,UAAA,MAAM,IAAI,YAAY,IAAI,IAAI,QAAQ;EACjC,CAAA,CACL;;AAET;;AAGA,IAAM,YACJ;;AAGF,SAAS,eAAe,OAAkB,KAAsB;CAC9D,OAAO,IAAI,YAAY,EACrB,OAAO,MAAM,UAAU,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,KAC3D,CAAC;AACH;;;;;;;AAQA,SAAgB,gBAAgB,OAAuB;CAErD,MAAM,QADQ,MAAM,MAAM,UAAU,MAAM,MAAM,YAAY,MAAM,OAAO,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,cACnF,SAAS,UAAU,SAAS,IAAI;CACvD,OAAO,OAAO,oBAAC,eAAD;EAAe,GAAI;EAAa;CAAO,CAAA,IAAI,oBAAC,gBAAD,EAAgB,GAAI,MAAQ,CAAA;AACvF;;;;;;;;AASA,SAAS,cAAc,EAAE,MAAM,GAAG,SAAiD;CACjF,MAAM,QAAQ,eAAe,MAAM,OAAO,MAAM,GAAG;CACnD,MAAM,UAAU,MAAM;CACtB,MAAM,YAAY,eAAe,MAAM,UAAU,MAAM,QAAQ;CAC/D,MAAM,SAAS,OAAO,SAAS,aAAa;CAC5C,sBAAsB;EACpB,KAAK,UAAU,IAAI,cAAc;EACjC,KAAK,WAAW,EAAE,KAAK,EAAE,CAAC;EAC1B,aAAa,KAAK,UAAU,OAAO,cAAc;CACnD,GAAG,CAAC,IAAI,CAAC;CACT,sBACc;EACV,MAAM,OAAO,OAAO;EACpB,qBAAqB;GACnB,MAAM,MAAM,SAAS;GACrB,KAAK,CAAC,OAAO,QAAQ,SAAS,SAAS,gBAAgB,eAAe,KAAK,aAAa,KAAK,MAAM,EAAE,eAAe,KAAK,CAAC;EAC5H,CAAC;CACH,GACA,CAAC,CACH;CACA,OAAO,aACL,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,qBAAC,WAAD;GAAS,WAAU;GAA2B,mBAAiB;GAA/D,UAAA;IACG,MAAM,WAAW,oBAAC,KAAD;KAAG,WAAU;KAAW,UAAA,MAAM;IAAW,CAAA;IAC3D,oBAAC,MAAD;KAAI,IAAI;KAAU,UAAA;IAAU,CAAA;IAC3B,MAAM,MAAM,eAAe,oBAAC,KAAD;KAAG,WAAU;KAAyB,UAAA,MAAM,KAAK;IAAe,CAAA;IAC5F,oBAAC,eAAD;KACE,GAAI;KACJ,OAAM;KACN,UAAU,UAAU;KACpB,iBAAiB,UAAU;KAC3B,iBAAiB,UAAU;IAC5B,CAAA;GACM;EACR,CAAA,GAAA,UAAU,WAAW,oBAAC,kBAAD,EAAkB,QAAQ,UAAU,QAAU,CAAA,CACjE;CACL,CAAA,GAAA,IACF;AACF;;;;;;;AAQA,SAAS,YAAY,OAAgC;CACnD,MAAM,OAAsB,CAAC;CAC7B,MAAM,MAAM,UAAU;CACtB,KAAK,IAAI,OAAoB,OAAO,SAAS,OAAO,KAAK,eAAe,OAAO,KAAK,eAAe;EACjG,KAAK,MAAM,WAAW,KAAK,cAAc,UAAU;GACjD,IAAI,YAAY,QAAQ,EAAE,mBAAmB,gBAAgB,QAAQ,OAAO;GAC5E,IAAI,QAAQ,QAAQ,yEAAqE,GAAG;GAC5F,QAAQ,QAAQ;GAChB,KAAK,KAAK,OAAO;EACnB;EACA,IAAI,KAAK,kBAAkB,KAAK;CAClC;CACA,aAAa;EACX,KAAK,MAAM,MAAM,MAAM,GAAG,QAAQ;CACpC;AACF;;AAGA,SAAS,eAAe,OAAuB;CAC7C,MAAM,QAAQ,eAAe,MAAM,OAAO,MAAM,GAAG;CACnD,MAAM,YAAY,eAAe,MAAM,UAAU,MAAM,QAAQ;CAC/D,MAAM,EAAE,SAAS,OAAO,UAAU,YAAY;CAK9C,MAAM,SAAS,OAAO,SAAS,aAAa;CAC5C,MAAM,QAAQ,OAAoB,IAAI;CACtC,MAAM,OAAO,OAAuB,IAAI;CACxC,sBACc;EACV,MAAM,OAAO,OAAO;EACpB,qBAAqB;GACnB,MAAM,MAAM,SAAS;GACrB,KAAK,CAAC,OAAO,QAAQ,SAAS,SAAS,gBAAgB,eAAe,KAAK,aAAa,KAAK,MAAM,EAAE,eAAe,KAAK,CAAC;EAC5H,CAAC;CACH,GACA,CAAC,CACH;CAIA,sBAAuB,KAAK,UAAU,YAAY,KAAK,OAAO,IAAI,KAAA,GAAY,CAAC,CAAC;CAChF,gBAAgB;EACd,MAAM,kBAAkB,WAAW,sFAAsF;EAKzH,MAAM,WAAW,MAAqB;GACpC,MAAM,MAAM,MAAM;GAClB,IAAI,CAAC,OAAO,WAAW,UAAU,GAAG;GACpC,MAAM,QAAQ,CAAC,GAAG,IAAI,iBAA8B,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAO,GAAG,kBAAkB,KAAK,IAAI;GAC7G,MAAM,QAAQ,MAAM,IAClB,OAAO,MAAM,MAAM,SAAS;GAC9B,IAAI,CAAC,SAAS,CAAC,MAAM;GACrB,MAAM,KAAK,SAAS;GACpB,IAAI,CAAC,IAAI,SAAS,EAAE,GAAG;IACrB,EAAE,eAAe;IACjB,MAAM,MAAM;GACd,OAAO,IAAI,EAAE,YAAY,OAAO,OAAO;IACrC,EAAE,eAAe;IACjB,KAAK,MAAM;GACb,OAAO,IAAI,CAAC,EAAE,YAAY,OAAO,MAAM;IACrC,EAAE,eAAe;IACjB,MAAM,MAAM;GACd;EACF;EACA,MAAM,SAAS,MAAqB;GAClC,IAAI,EAAE,QAAQ,OAAO;IACnB,QAAQ,CAAC;IACT;GACF;GACA,IAAI,EAAE,QAAQ,UAAU;GACxB,IAAI,SAAS;GACb,IAAI,UAAU,GAAG;GACjB,EAAE,eAAe;GACjB,EAAE,gBAAgB;GAClB,SAAS;EACX;EACA,gBAAgB,UAAU,WAAW,OAAO,IAAI;EAChD,aAAa,mBAAmB,UAAU,WAAW,OAAO,IAAI;CAClE,GAAG,CAAC,UAAU,OAAO,CAAC;CAEtB,OACE,qBAAC,OAAD;EAAK,KAAK;EAAM,WAAU;EAA1B,UAAA;GACE,oBAAC,OAAD;IAAK,WAAU;IAAqB,eAAe;GAAW,CAAA;GAC9D,qBAAC,SAAD;IAAO,KAAK;IAAO,WAAU;IAAqB,MAAK;IAAS,cAAW;IAAO,cAAY;IAA9F,UAAA,CACE,qBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,oBAAC,MAAD;MAAI,WAAU;MAAmB,UAAA;KAAU,CAAA,GAC3C,oBAAC,UAAD;MAAQ,MAAK;MAAS,WAAU;MAAkB,cAAY,IAAI,cAAc;MAAG,SAAS;MAAU,UAAU;MAAS,UAAA;KAEjH,CAAA,CACL;IACL,CAAA,GAAA,oBAAC,OAAD;KAAK,WAAU;KACb,UAAA,oBAAC,eAAD;MAAe,GAAI;MAAiB;MAAU,iBAAiB,UAAU;MAAQ,iBAAiB,UAAU;KAAgB,CAAA;IACzH,CAAA,CACA;;GACN,WAAW,oBAAC,kBAAD,EAAkB,QAAQ,UAAU,QAAU,CAAA;EACvD;;AAET;;AAGA,SAAgB,gBAAgB,OAAuB;CACrD,MAAM,QAAQ,eAAe,MAAM,OAAO,MAAM,GAAG;CACnD,MAAM,YAAY,eAAe,MAAM,UAAU,MAAM,QAAQ;CAC/D,MAAM,aAAa,aAChB,SAAkB;EACjB,IAAI,MAAM,iBAAiB,UAAU,OAAO,IAAI;EAChD,MAAM,qBAAqB,IAAI;CACjC,GACA;EAAC,MAAM;EAAiB,MAAM;EAAoB,UAAU;CAAM,CACpE;CACA,OACE,qBAAC,OAAD;EACE,WAAU;EACV,SAAS,MAAM;EACf,eAAe,UAAU;EACzB,aAAa,UAAU;EACvB,WAAW;EALb,UAAA;GAOE,oBAAC,MAAD,EAAA,UAAK,MAAU,CAAA;GACf,oBAAC,eAAD;IACE,GAAI;IACJ,UAAU,UAAU;IACpB,iBAAiB,MAAM,kBAAkB,KAAA,IAAY,UAAU;IAC/D,oBAAoB;IACpB,iBAAiB,UAAU;GAC5B,CAAA;GACA,UAAU,WAAW,oBAAC,kBAAD,EAAkB,QAAQ,UAAU,QAAU,CAAA;EAC/D;;AAEX;AAEA,SAAgB,iBAAiB,EAAE,UAAoD;CACrF,OACE,oBAAC,eAAD;EACE,OAAO,IAAI,kBAAkB;EAC7B,MAAM,IAAI,wBAAwB;EAClC,cAAc,IAAI,eAAe;EACjC,aAAa,IAAI,aAAa;EACtB;CACT,CAAA;AAEL;AAEA,SAAgB,eAAe,UAAsB,UAA0B;CAC7E,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAC5C,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAC5C,MAAM,OAAO,OAAO,KAAK;CACzB,MAAM,QAAQ,OAAO,KAAK;CAC1B,MAAM,SAAS,aAAa,SAAkB;EAC5C,KAAK,UAAU;EACf,WAAW,IAAI;CACjB,GAAG,CAAC,CAAC;CACL,MAAM,gBAAgB,aAAa,SAAkB;EACnD,MAAM,UAAU;CAClB,GAAG,CAAC,CAAC;CACL,MAAM,oBAAoB;EACxB,IAAI,KAAK,WAAW,WAAW,MAAM,OAAO,OAAO;EACnD,IAAI,MAAM,SAAS;GACjB,WAAW,IAAI;GACf,OAAO;EACT;EACA,OAAO;CACT;CACA,MAAM,cAAc;EAClB,IAAI,YAAY,GAAG,SAAS;CAC9B;CACA,MAAM,WAAW,cAAuB;EACtC,WAAW,KAAK;EAChB,IAAI,aAAa,CAAC,KAAK,WAAW,WAAW,MAAM,OAAO,SAAS;CACrE;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"shared-C4wSfz6k.js","names":["normalizeError","getErrorMapKey","getErrorMapKey","normalizeError","Fragment","React","Fragment","Fragment","_Fragment"],"sources":["../../../../node_modules/@tanstack/store/dist/store.js","../../../../node_modules/@tanstack/pacer-lite/dist/lite-throttler.js","../../../../node_modules/@tanstack/devtools-event-client/dist/esm/plugin.js","../../../../node_modules/@tanstack/form-core/dist/esm/EventClient.js","../../../../node_modules/@tanstack/form-core/dist/esm/utils.js","../../../../node_modules/@tanstack/form-core/dist/esm/ValidationLogic.js","../../../../node_modules/@tanstack/form-core/dist/esm/standardSchemaValidator.js","../../../../node_modules/@tanstack/form-core/dist/esm/metaHelper.js","../../../../node_modules/@tanstack/form-core/dist/esm/FormApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/FieldApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/FormGroupApi.js","../../../../node_modules/@tanstack/form-core/dist/esm/transform.js","../../../../node_modules/@tanstack/react-form/dist/esm/useIsomorphicLayoutEffect.js","../../../../node_modules/@tanstack/react-form/dist/esm/useField.js","../../../../node_modules/@tanstack/react-form/dist/esm/useUUID.js","../../../../node_modules/@tanstack/react-form/dist/esm/useFormId.js","../../../../node_modules/@tanstack/react-form/dist/esm/useFormGroup.js","../../../../node_modules/@tanstack/react-form/dist/esm/useForm.js","../../../engine/src/shared/textRules.ts","../../../kit/src/client/components/formDefaults.ts","../../../kit/src/client/copy/forms/components/NewRecord.ts","../../../kit/src/client/components/NewRecord.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\n * Text rules on a column: how long a value may be and what form it takes,\n * in the words a command's text input already uses (packages/mistri/schema/command.d.ts):\n *\n * text: { code: { pattern: '^[A-Z]{3}$', message: 'Three capital letters' }, name: { min: 2, max: 80 } }\n *\n * Two places say them. The App, on the resource (`text`), and the database\n * itself: a `varchar(80)` holds at most 80 characters, and on PostgreSQL a\n * `CHECK (char_length(name) >= 2)` or `CHECK (code ~ '^[A-Z]{3}$')` in that\n * simple form says the rest (adapters read them into `ColumnMeta.text`). A\n * schema-first App gets the database's words free; what the App says wins,\n * key by key.\n *\n * The browser judges a value as it is typed and says the rule under the\n * field; the server judges the stored row on every write (appValidation.ts),\n * whichever door the write came through. Pure: both sides read this one\n * judgement, so they cannot disagree about what \"at least 2\" counts.\n */\nimport { columnKind, type ColumnMeta } from './schema.js';\n\n/** A column's rule: fewest and most characters, a regular expression the whole value matches, and what to say. */\nexport interface TextRule {\n /** Fewest characters, after trimming. */\n min?: number;\n /** Most characters. */\n max?: number;\n /** A regular expression the whole value must match, as its source text. */\n pattern?: string;\n /** What the form says when the rule is not met; a generic sentence otherwise. */\n message?: string;\n}\n\nconst TEXT_RULE_KEYS = ['min', 'max', 'pattern', 'message'] as const;\n/** The most characters a rule may name, as a command's text input. */\nconst TEXT_RULE_MOST = 16384;\nconst MESSAGE_MOST = 200;\nconst PATTERN_MOST = 500;\n\n/** Which part of a rule a value breaks. */\ntype TextRuleBreak = 'min' | 'max' | 'pattern';\n\nconst IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\n/** A pattern's source as a whole-value test, or undefined where JavaScript cannot read it. */\nfunction wholePattern(source: string): RegExp | undefined {\n try {\n return new RegExp(`^(?:${source})$`, 'u');\n } catch {\n return undefined;\n }\n}\n\n/**\n * `resources.<name>.text`, read: an object of the resource's own columns, each\n * { min?, max?, pattern?, message? } with something to check. Throws the\n * sentence the author reads.\n */\nexport function parseTextRules(raw: unknown, at: string): Record<string, TextRule> {\n const shape = `${at} has a \"text\" that is not an object of the resource's own column → { min?, max?, pattern?, message? }, like text: { code: { pattern: '^[A-Z]{3}$' } }.`;\n if (!raw || typeof raw !== 'object' || Array.isArray(raw) || !Object.keys(raw).length) throw new Error(shape);\n const rules: Record<string, TextRule> = {};\n for (const [column, value] of Object.entries(raw as Record<string, unknown>)) {\n const here = `${at}, text \"${column}\"`;\n if (!IDENTIFIER.test(column)) throw new Error(`${here}: a text rule is keyed by the resource's own column, never a path.`);\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(shape);\n const given = value as Record<string, unknown>;\n const unknown = Object.keys(given).find((key) => !(TEXT_RULE_KEYS as readonly string[]).includes(key));\n if (unknown) throw new Error(`${here} has \"${unknown}\"; a text rule takes min, max, pattern and message.`);\n const rule: TextRule = {};\n for (const key of ['min', 'max'] as const) {\n if (given[key] === undefined) continue;\n const n = given[key];\n if (typeof n !== 'number' || !Number.isInteger(n) || n < 1 || n > TEXT_RULE_MOST) {\n throw new Error(`${here}: \"${key}\" must be a whole number of characters from 1 to ${TEXT_RULE_MOST}.`);\n }\n rule[key] = n;\n }\n if (rule.min !== undefined && rule.max !== undefined && rule.min > rule.max) throw new Error(`${here}: \"min\" is more than \"max\".`);\n if (given.pattern !== undefined) {\n const source = given.pattern;\n if (typeof source !== 'string' || !source || source.length > PATTERN_MOST) {\n throw new Error(`${here}: \"pattern\" must be a regular expression's source text, at most ${PATTERN_MOST} characters.`);\n }\n if (!wholePattern(source)) throw new Error(`${here}: \"pattern\" is not a regular expression JavaScript can read: ${source}`);\n rule.pattern = source;\n }\n if (given.message !== undefined) {\n if (typeof given.message !== 'string' || !given.message.trim() || given.message.length > MESSAGE_MOST) {\n throw new Error(`${here}: \"message\" must be a sentence of 1 to ${MESSAGE_MOST} characters.`);\n }\n rule.message = given.message.trim();\n }\n if (rule.min === undefined && rule.max === undefined && rule.pattern === undefined) {\n throw new Error(`${here} checks nothing; give it a \"min\", a \"max\" or a \"pattern\".`);\n }\n rules[column] = rule;\n }\n return rules;\n}\n\n/** Why a resource's text rules cannot run on this table, or undefined. Each must name a text column. */\nexport function textRulesProblem(\n rules: Readonly<Record<string, TextRule>>,\n columns: readonly ColumnMeta[],\n table: string,\n): string | undefined {\n for (const name of Object.keys(rules)) {\n const column = columns.find((candidate) => candidate.name === name);\n if (!column) return `text \"${name}\": \"${table}\" has no column \"${name}\".`;\n if (columnKind(column.type) !== 'text' || column.allowed?.length) {\n return `text \"${name}\" is ${column.allowed?.length ? 'a vocabulary' : column.type || 'untyped'}; a text rule checks a text column.`;\n }\n }\n return undefined;\n}\n\n/**\n * The rule a column is held to: the database's (`ColumnMeta.text`) with the\n * App's on top, key by key. Undefined where neither says anything.\n */\nexport function columnTextRule(column: Pick<ColumnMeta, 'text'>, authored?: TextRule): TextRule | undefined {\n const rule: TextRule = { ...(column.text ?? {}), ...(authored ?? {}) };\n return rule.min === undefined && rule.max === undefined && rule.pattern === undefined ? undefined : rule;\n}\n\n/** Characters as a person counts them, and as `char_length` does: code points, not UTF-16 units. */\nconst length = (text: string) => [...text].length;\n\n/** What a value breaks of its rule, or undefined. An empty value breaks nothing: whether one is needed is NOT NULL's to say. */\nexport function textRuleBreak(rule: TextRule, value: unknown): TextRuleBreak | undefined {\n if (typeof value !== 'string' || value === '') return undefined;\n if (rule.min !== undefined && length(value.trim()) < rule.min) return 'min';\n if (rule.max !== undefined && length(value) > rule.max) return 'max';\n if (rule.pattern !== undefined && !wholePattern(rule.pattern)?.test(value)) return 'pattern';\n return undefined;\n}\n\n/** A column's catalog rule as the database states it, for `ColumnMeta.text`; undefined where it states none. */\nexport function catalogTextRule(parts: { max?: number | null; min?: number; pattern?: string }): ColumnMeta['text'] {\n const rule: NonNullable<ColumnMeta['text']> = {};\n if (typeof parts.max === 'number' && Number.isInteger(parts.max) && parts.max > 0) rule.max = parts.max;\n if (parts.min !== undefined && parts.min > 0) rule.min = parts.min;\n if (parts.pattern !== undefined) rule.pattern = parts.pattern;\n return Object.keys(rule).length ? rule : undefined;\n}\n","/**\n * A New form's starting words, made values as it opens: `today` and `now` from\n * the App's clock and the zone its timestamps are written in (UTC when it names none), `me` from the server — the signed-in person's row\n * where a reference points at the table people are rows of, their email in a\n * text column. The server resolves `me` in a query it parses for this request,\n * so the browser never decides who someone is; it only asks.\n *\n * A word that cannot be made a value (nobody signed in, no row carries the\n * email) starts the field empty, and the form's own rules then ask for it.\n */\nimport { useQuery } from '@tanstack/react-query';\nimport { api, state } from '../core.js';\nimport { ownedBy } from '../requestIdentity.js';\nimport { equalityFilter } from '../resourceRequests.js';\nimport { formatClockZone } from '../locale.js';\nimport { formDefaultWord } from '@mistriwork/engine/shared/formValues.js';\nimport { primaryKey, type ColumnMeta, type TableMeta } from '@mistriwork/engine/shared/schema.js';\nimport { clockDefault, type FormCuration } from './newRecordModel.js';\n\ninterface MeAsk {\n column: string;\n target?: TableMeta;\n}\n\n/** Who `me` is, for each column that starts with it: a key, an email, or null for nobody. */\nasync function askMe(asks: readonly MeAsk[], connection: string | null): Promise<Record<string, string | number | null>> {\n const answers: Record<string, string | number | null> = {};\n let email: Promise<string | null> | undefined;\n for (const ask of asks) {\n if (ask.target) {\n const [pk] = primaryKey(ask.target);\n try {\n const data = await api('/api/run', {\n q: `${ask.target.id} ${pk} = me show ${pk}`,\n limit: 1,\n offset: 0,\n count: 'none',\n ...ownedBy(connection),\n });\n const key = (data.rows as Array<Record<string, unknown>> | undefined)?.[0]?.[pk];\n answers[ask.column] = typeof key === 'string' || typeof key === 'number' ? key : null;\n } catch {\n answers[ask.column] = null;\n }\n } else {\n email ??= api(connection ? `/api/whoami?app=${encodeURIComponent(connection)}` : '/api/whoami')\n .then((me: { who?: unknown }) => (typeof me.who === 'string' ? me.who : null))\n .catch(() => null);\n answers[ask.column] = await email;\n }\n }\n return answers;\n}\n\n/** The words a form's defaults say, by column: `today`, `now`, `me`. None in the Workbench, which reads the schema. */\nexport function formWords(\n table: TableMeta,\n form: FormCuration | undefined,\n app: boolean,\n): Array<{ column: ColumnMeta; word: 'today' | 'now' | 'me' }> {\n if (!app) return [];\n return Object.entries(form?.defaults ?? {}).flatMap(([name, value]) => {\n const column = table.columns.find((c: ColumnMeta) => c.name === name);\n const word = column && formDefaultWord(column, value);\n return word && column ? [{ column, word }] : [];\n });\n}\n\n/** The form with `today` and `now` made values, and `me` made the answers given (a column it has none for starts empty). */\nexport function resolvedForm(\n form: FormCuration | undefined,\n words: ReturnType<typeof formWords>,\n me: Record<string, string | number | null> = {},\n): FormCuration | undefined {\n if (!words.length) return form;\n const now = new Date();\n const resolved: Record<string, unknown> = { ...(form?.defaults ?? {}) };\n for (const { column, word } of words) {\n if (word !== 'me') resolved[column.name] = clockDefault(word, column, now, formatClockZone());\n else if (me[column.name] === null || me[column.name] === undefined) delete resolved[column.name];\n else resolved[column.name] = me[column.name];\n }\n return { ...form, defaults: resolved };\n}\n\n/** Who `me` is for a form's columns that start with it, or undefined while the server is asked. */\nexport function useMeDefaults(\n table: TableMeta,\n words: ReturnType<typeof formWords>,\n target: (tableId: string) => TableMeta | undefined,\n): Record<string, string | number | null> | undefined {\n const asks: MeAsk[] = words\n .filter((w) => w.word === 'me')\n .map(({ column }) => ({ column: column.name, ...(column.references ? { target: target(column.references.table) } : {}) }));\n const connection = state.activeConnection as string | null;\n const me = useQuery({\n queryKey: ['form-me', connection, table.id, asks.map((ask) => [ask.column, ask.target?.id])],\n queryFn: () => askMe(asks, connection),\n retry: false,\n staleTime: 60_000,\n });\n return me.isPending ? undefined : (me.data ?? {});\n}\n\n/**\n * A value the form takes from a referenced record (`defaults: { labor_charge: { from: 'service_id.price' } }`),\n * read as the reference is chosen: the referenced row's column, as the form's text, or '' when the row has none.\n * The server fills the same value where a create leaves it out, so a form that never asks still gets it.\n */\nexport async function derivedValue(\n path: string,\n reference: ColumnMeta,\n chosen: string,\n target: (tableId: string) => TableMeta | undefined,\n): Promise<string> {\n const to = reference.references && target(reference.references.table);\n const column = path.split('.')[1];\n if (!to || !column || chosen === '') return '';\n const key = reference.references?.column ?? primaryKey(to)[0];\n try {\n /* A computed column of the record is worked out by the statement a view runs; a table read has only what is\n stored (DM5). The server works the same figure out where a create leaves the value out. */\n const data =\n to.computed && Object.hasOwn(to.computed, column)\n ? await api('/api/view/run', {\n view: {\n id: `derived:${to.id}`,\n name: to.name,\n base: to.id,\n columns: [{ path: column }],\n filter: { groups: [[{ path: key, op: '=', value: chosen }]] },\n limit: 1,\n },\n })\n : await api('/api/query', {\n table: to.id,\n columns: [column],\n filter: equalityFilter({ [key]: chosen }),\n limit: 1,\n offset: 0,\n });\n const value = (data.rows as Array<Record<string, unknown>> | undefined)?.[0]?.[column];\n return value === null || value === undefined ? '' : String(value);\n } catch {\n return '';\n }\n}\n","/** What NewRecord says, in the forms room (packages/kit/src/client/messages.ts says how the catalog is split). */\nimport { defineMessages } from '../../../messages.js';\n\nexport const say = defineMessages({\n yyyyMmDdHh: 'YYYY-MM-DD HH:MM',\n fill: 'Fill in {column}.',\n enterAValidDate: 'Enter a valid date and time.',\n enterAValidDateInYyyy: 'Enter a valid date in YYYY-MM-DD format.',\n useAtLeast: 'Use at least {min} characters.',\n useAtMost: 'Use at most {max} characters.',\n enterTheExpectedForm: 'Enter a value in the expected form.',\n chooseFirst: 'Choose {waitingOn} first.',\n notNullWithNoDefault: 'NOT NULL with no default',\n emptyFieldsAreLeft: 'Empty fields are left to the database — defaults apply, keys are assigned.',\n addRow: 'Add row',\n adding: 'Adding...',\n cannotAddThisRecord: 'Cannot add this record. Required fields hidden by this form need valid defaults or visible controls: {map}.',\n assignedByTheDatabase: 'assigned by the database',\n defaultValue: 'Default: {value}',\n defaultSuppliedByTheDatabase: 'Default supplied by the database',\n one: ' (one of {allowed})',\n newThing: 'New {thing}',\n discardNewRecord: 'Discard new record?',\n yourEntriesHaveNotBeen: 'Your entries have not been saved.',\n discardRecord: 'Discard record',\n keepEditing: 'Keep editing',\n requiredMark: 'required',\n optionalWord: '(optional)',\n choosePlaceholder: 'Choose {label}',\n chooseOne: 'Choose one',\n addAtLeastLines: 'Add at least {min} lines.',\n});\n","/**\n * Adding a row, in a form the schema wrote.\n *\n * Nobody declares a form for this: the columns, their types, what is\n * required and what the database will fill are all in the catalog already.\n * Required is NOT NULL with no default and no auto-assigned key; everything\n * else is optional, and an empty box means \"leave it to the database\" — its\n * defaults are part of the schema's design and pre-filling them here would\n * turn every default into a value somebody appears to have chosen.\n *\n * Validation checks required values against the catalog. Constraints such\n * as uniqueness and reference integrity remain the database's responsibility.\n *\n * Two readers. The workbench reads the schema: `account_id integer\n * required`, `→ account`. An app's reader reads a form: \"Account\", a search\n * box that finds an account by name, and no word about integers. Same\n * fields, same values on the wire; only the dress differs. And two frames:\n * the workbench's dialog and the app's drawer over the list, one form\n * wearing either.\n */\nimport { useMessageLanguage } from './useMessageLanguage.js';\nimport { MultiStepForm } from './MultiStepForm.js';\nimport { Columns } from '@mistriwork/ui/FormParts.js';\nimport type { FormStep } from '@mistriwork/engine/shared/formValues.js';\nimport { useCallback, useEffect, useId, useLayoutEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react';\nimport { state, viewportBox, writeAllowed } from '../core.js';\nimport { RichTextField, mentionSearch } from './RichTextField.js';\nimport { createPortal } from 'react-dom';\nimport { Modal } from '@mistriwork/ui/Modal.js';\nimport { Button } from '@mistriwork/ui/Button.js';\nimport { ConfirmDialog } from './Prompt.js';\nimport { useForm } from '@tanstack/react-form';\nimport { columnKind, isFlagColumn, type ColumnMeta, type TableMeta } from '@mistriwork/engine/shared/schema.js';\nimport { humanName, vocabularyWord } from '@mistriwork/engine/shared/model.js';\nimport { inferredFormDefaults } from '@mistriwork/engine/shared/formValues.js';\nimport { sessionIdentity } from '../sessionIdentity.js';\nimport { Dropdown, readsAsName } from './Dropdown.js';\nimport { RecordPicker } from './RecordPicker.js';\nimport { DateField } from './DateField.js';\nimport { isPickerDate } from '@mistriwork/ui/internal/datePickerModel.js';\nimport { formatLocale, formatTimezone } from '../locale.js';\nimport { InputSlot, columnInput } from './inputRenderers.js';\nimport { autoKey, isRequired } from '@mistriwork/engine/shared/form.js';\nimport { columnTextRule, textRuleBreak, type TextRule } from '@mistriwork/engine/shared/textRules.js';\nimport { shell } from '../shellMode.js';\nimport { resourceOf } from './appRooms.js';\nimport { Icon } from './Icon.js';\nimport { isAppIcon, type AppIconName } from '@mistriwork/engine/shared/appIcons.js';\nimport { onDemand, useArrived } from './onDemand.js';\nimport type { FormScalar } from '@mistriwork/engine/shared/formValues.js';\nimport { isPickerDateTime } from '@mistriwork/ui/internal/datePickerModel.js';\nimport { defaultCurrency } from '../locale.js';\nimport { wordFor, type DisplayRule } from './valueModel.js';\nimport { rowCurrency } from '@mistriwork/engine/shared/money.js';\nimport { MinorMoneyInput, minorProblem } from './MinorMoneyInput.js';\nimport type { LineDraft } from '../shellMode.js';\nimport {\n fieldInput,\n flagStart,\n formColumns,\n formFrame,\n formGroups,\n hasFormChanges,\n insertValues,\n isFormFieldVisible,\n missingFields,\n narrowingCondition,\n presetValue,\n type FieldInput,\n type FormCuration,\n} from './newRecordModel.js';\nimport { derivedValue, formWords, resolvedForm, useMeDefaults } from './formDefaults.js';\nimport { useRecordInsert, type InsertResponse, type InsertResult } from './useRecordInsert.js';\nimport { say } from '../copy/forms/components/NewRecord.js';\n\nexport type { FormCuration } from './newRecordModel.js';\nexport { autoKey, isRequired } from '@mistriwork/engine/shared/form.js';\n\nconst DefinedInputs = onDemand(() => import('./DefinedFields.js'), 'DefinedInputs', { quiet: true });\n\nconst dateOnly = (column: ColumnMeta) => columnKind(column.type) === 'date' && !/time/i.test(column.type);\n/* A date is judged in the Workbench too; a date and time only where an App draws its picker. */\nconst invalidDate = (column: ColumnMeta, value: string, kind?: FieldInput) =>\n value !== '' && (dateOnly(column) ? !isPickerDate(value) : kind === 'datetime' && !isPickerDateTime(value));\n\nexport type { InsertResponse, InsertResult } from './useRecordInsert.js';\nimport type { InsertExtra } from './useRecordInsert.js';\nimport { addHostListener, removeHostListener, shellBody, shellById, shellQuery } from '../shellHost.js';\n\n/* What a text rule says when a value breaks it: the App's sentence, else the rule in plain words. */\nconst textRuleMessage = (rule: TextRule, value: string) => {\n const broken = textRuleBreak(rule, value);\n if (!broken) return '';\n if (rule.message) return rule.message;\n return broken === 'min'\n ? say('useAtLeast', { min: rule.min! })\n : broken === 'max'\n ? say('useAtMost', { max: rule.max! })\n : say('enterTheExpectedForm');\n};\n\nexport interface NewRecordProps {\n table: TableMeta;\n form?: FormCuration;\n /** An app's reader, or the workbench's. */\n app: boolean;\n /** A column's name as this app's reader knows it. */\n label: (column: ColumnMeta) => string;\n /** The table a reference points at, when the schema has it. */\n target: (tableId: string) => TableMeta | undefined;\n insert: (values: Record<string, unknown>, extra?: InsertExtra) => Promise<InsertResponse>;\n onAdded: (result: InsertResult) => void;\n onCancel: () => void;\n /** Veto voluntary dismissal before the frame changes its own open state. */\n canClose?: () => boolean;\n /** Nested/inline hosts keep an uncertain insert visible and non-dismissible. */\n retainUncertain?: boolean;\n /** How the App dresses a column (`display`): its vocabulary's words, its currency. */\n display?: (column: ColumnMeta) => DisplayRule | null | undefined;\n /** The App's name, over a New form drawn as a page. */\n appName?: string;\n /** True synchronously before dispatch; false only after a known local phase.\n * Cleanup never emits settlement. Used by the host's existing exit guard. */\n onUnresolvedChange?: (unresolved: boolean) => void;\n}\n\ntype Focusable = HTMLInputElement | HTMLButtonElement | HTMLTextAreaElement;\n\ntype FormBodyProps = NewRecordProps & {\n onPendingChange?: (pending: boolean) => void;\n onDiscardChange?: (needed: boolean) => void;\n /** Inline hosts omit introductory copy and retain uncertain attempts. */\n compact?: boolean;\n /** The frame the form stands in: its actions are that frame's. */\n frame?: 'drawer' | 'page' | 'dialog';\n};\n\n/* Where the shell has no lines part, nothing to wait for. */\nconst NO_LINES = { ready: () => Promise.resolve(), here: () => true };\n\n/** The fields, the required check and the save, apart from any frame: once its starting words (`today`, `me`) are values. */\nexport function NewRecordForm(props: FormBodyProps) {\n /* An App's form with lines or live figures waits for their part (FormLines.tsx, the shell's: shellMode.ts\n `formLines`), fetched the first time a form has them, so the form is drawn whole. */\n const wantsLines = props.app && !props.compact && Boolean(props.form?.lines?.length || props.form?.live?.length);\n const linesHere = useArrived(shell().slots.formLines ?? NO_LINES, wantsLines);\n if (wantsLines && !linesHere)\n return (\n <p className=\"insert-status\" role=\"status\">\n {say('common.loading')}\n </p>\n );\n const words = formWords(props.table, props.form, props.app);\n /* `me` is the server's to say, so only a form that starts with it waits on a question. */\n if (words.some((w) => w.word === 'me')) return <NewRecordFormAsking {...props} words={words} />;\n return <NewRecordFormBody {...props} form={resolvedForm(props.form, words)} />;\n}\n\nfunction NewRecordFormAsking({ words, ...props }: FormBodyProps & { words: ReturnType<typeof formWords> }) {\n const me = useMeDefaults(props.table, words, props.target);\n if (!me)\n return (\n <p className=\"insert-status\" role=\"status\">\n {say('common.loading')}\n </p>\n );\n return <NewRecordFormBody {...props} form={resolvedForm(props.form, words, me)} />;\n}\n\nfunction NewRecordFormBody({\n table,\n form,\n app,\n label: columnLabel,\n target,\n insert,\n onAdded,\n onCancel,\n onPendingChange,\n onDiscardChange,\n onUnresolvedChange,\n compact = false,\n retainUncertain = compact,\n display,\n frame = app ? 'drawer' : 'dialog',\n}: FormBodyProps) {\n useMessageLanguage();\n const assigned = autoKey(table);\n const columns = formColumns(table, form, app);\n const groups = formGroups(table, form, app);\n /* A switch is on or off, never \"leave it\": a flag it draws starts where the\n form, else the database, says — off for one that must be answered — and\n that start is sent like any default. */\n const flags = app\n ? columns\n .filter((column) => isFlagColumn(column) && !column.allowed?.length)\n .flatMap((column) => {\n const start = flagStart(column, form?.defaults ?? {});\n return start === undefined ? [] : [[column.name, start] as const];\n })\n : [];\n /* A vocabulary opens on the choice the database would write (`default 'booked'`), unless the form says another. */\n const defaults: Record<string, unknown> = {\n ...Object.fromEntries(flags),\n ...(app ? inferredFormDefaults({ columns }) : {}),\n ...(form?.defaults ?? {}),\n };\n const switches = new Set(flags.map(([name]) => name));\n /* Each field's dress on this form (`form.fields`), in an App only: the Workbench reads the schema. */\n /* The database's text rule, with the App's own on top (textRules.ts): judged as someone types. */\n const authoredText = app ? shell().app()?.resources?.[table.id]?.text : undefined;\n const textRule = (column: ColumnMeta) => columnTextRule(column, authoredText?.[column.name]);\n /* A record's tags (`tags` on the resource), chosen with the record and sent\n with it: the server inserts the link rows in the record's own transaction.\n Offered where this reader may add link rows. A tenant App's insert takes\n the row alone. */\n const tagRule = app && !sessionIdentity().tenantRequired ? shell().app()?.resources?.[table.id]?.tags : undefined;\n const tagThrough = tagRule ? target(tagRule.through) : undefined;\n const tagTable = tagRule ? target(tagRule.to) : undefined;\n /* The link table as the New form itself is judged (insert.js canInsert): the record's own connection is writable already. */\n const offersTags = Boolean(\n tagThrough && tagTable && !tagThrough.isView && tagThrough.insertable !== false && writeAllowed(tagThrough.id),\n );\n const [tagValues, setTagValues] = useState<string[]>([]);\n const textBroken = (column: ColumnMeta, value: unknown) => {\n const rule = textRule(column);\n return Boolean(rule && textRuleBreak(rule, value));\n };\n const dress = (column: ColumnMeta) =>\n app && form?.fields && Object.hasOwn(form.fields, column.name) ? form.fields[column.name] : undefined;\n const label = (column: ColumnMeta) => dress(column)?.label ?? columnLabel(column);\n const kindOf = (column: ColumnMeta): FieldInput | undefined =>\n app\n ? fieldInput(column, {\n money: display?.(column)?.format === 'money',\n richText: display?.(column)?.format === 'richText',\n multiline: dress(column)?.multiline,\n required: isRequired(column, assigned),\n hasStart:\n switches.has(column.name) ||\n (!isFlagColumn(column) && (presetValue(column, defaults) !== '' || column.default !== undefined || column.hasDefault === true)),\n reference: Boolean(column.references && target(column.references.table)),\n })\n : undefined;\n /* A money rule over the draft: where each record keeps its own currency (`currency: { column }`), the code the form holds. */\n const ruleIn = (column: ColumnMeta, values: Record<string, unknown>): DisplayRule | undefined => {\n const rule = display?.(column) ?? undefined;\n return rule?.currencyColumn\n ? {\n ...rule,\n currency: rowCurrency(rule, values, rule.currency ?? '') || undefined,\n }\n : rule;\n };\n /* An amount of minor units the box could not read as one (MinorMoneyInput.tsx). */\n const amountProblem = (column: ColumnMeta, values: Record<string, string>) => {\n const rule = app ? ruleIn(column, { ...defaults, ...values }) : undefined;\n return rule?.format === 'money' && rule.minor ? minorProblem(values[column.name], rule.currency ?? defaultCurrency()) : '';\n };\n /* The record's lines (`form.lines`), asked under its fields and inserted with it in one transaction\n (FormLines.tsx), on a tenant lease and under a row policy as anywhere else. */\n const linesPart = app && !compact ? shell().slots.formLines?.get() : undefined;\n const lineSets = (linesPart ? (form?.lines ?? []) : []).flatMap((line) => {\n const child = target(line.from);\n return child ? [{ ...line, table: child }] : [];\n });\n const [lines, setLines] = useState<Record<string, LineDraft[]>>(() =>\n Object.fromEntries(lineSets.map((line) => [line.table.id, Array.from({ length: line.min ?? 0 }, linesPart!.blankLine)])),\n );\n const [linesTried, setLinesTried] = useState(false);\n const lineChecks = Object.fromEntries(\n lineSets.map((line) => [\n line.table.id,\n linesPart!.lineProblems(line.table, line.show, lines[line.table.id] ?? [], [line.whose, ...(line.order ? [line.order] : [])]),\n ]),\n );\n const linesShort = lineSets.find((line) => (lines[line.table.id]?.length ?? 0) < (line.min ?? 0));\n const live = linesPart ? (form?.live ?? []) : [];\n /* What the form fills without asking (a bound parent key, a hidden default), as its boxes would hold it. */\n const draftDefaults = Object.fromEntries(\n Object.entries(defaults).map(([name, value]) => [name, value === null || value === undefined ? '' : String(value)]),\n );\n /* The fields whose choices read another: a picker narrowed by a project empties when the project changes. */\n const dependents = (name: string) => columns.filter((column) => Object.values(dress(column)?.where ?? {}).includes(name));\n /* Steps carve the New form into pages (`form.steps`); an inline Quick Add stays one row. */\n const steps = !compact && form?.steps?.length ? form.steps : undefined;\n const [stepIndex, setStepIndex] = useState(0);\n const stepOf = (name: string) => Math.max(0, steps?.findIndex((step) => step.fields.includes(name)) ?? 0);\n const errorPrefix = useId();\n const [validationAttempt, setValidationAttempt] = useState<{\n firstField?: string;\n }>();\n const tried = validationAttempt !== undefined;\n const [clearedServerFields, setClearedServerFields] = useState<Set<string>>(new Set());\n const [dirty, setDirty] = useState(false);\n const controls = useRef(new Map<string, Focusable | null>());\n const edited = useRef(new Set<string>());\n const pendingChange = useCallback(\n (pending: boolean) => {\n if (pending) onUnresolvedChange?.(true);\n onPendingChange?.(pending);\n },\n [onPendingChange, onUnresolvedChange],\n );\n const submission = useRecordInsert(insert, onAdded, pendingChange);\n useEffect(() => {\n setClearedServerFields(new Set());\n }, [submission.fieldErrors]);\n const hasVisibleServerErrors = submission.fieldErrors.some((error) => columns.some((column) => column.name === error.field));\n const firstVisibleServerField = submission.fieldErrors.find((error) => columns.some((column) => column.name === error.field))?.field;\n // useRecordInsert's pending=false also means a lost response or timeout.\n // Only its actual phase can release the supplemental host exit guard.\n useLayoutEffect(() => {\n onUnresolvedChange?.(submission.phase === 'pending' || submission.phase === 'uncertain');\n }, [submission.phase, onUnresolvedChange]);\n const needsDiscard = dirty && submission.phase === 'idle';\n useLayoutEffect(() => {\n onDiscardChange?.(needsDiscard);\n }, [needsDiscard, onDiscardChange]);\n useEffect(() => {\n if (!needsDiscard) return;\n const warn = (event: BeforeUnloadEvent) => {\n event.preventDefault();\n event.returnValue = '';\n };\n addHostListener(window, 'beforeunload', warn);\n return () => removeHostListener(window, 'beforeunload', warn);\n }, [needsDiscard]);\n const feedback = useRef<HTMLParagraphElement>(null);\n const status = useRef<HTMLParagraphElement>(null);\n useLayoutEffect(() => {\n const firstServerField = firstVisibleServerField && controls.current.has(firstVisibleServerField) ? firstVisibleServerField : undefined;\n if (firstServerField) controls.current.get(firstServerField)?.focus();\n else if (submission.problem) feedback.current?.focus();\n else if (submission.phase === 'pending') status.current?.focus();\n }, [submission.fieldErrors, submission.problem, submission.phase]);\n useLayoutEffect(() => {\n if (!validationAttempt) return;\n // Focus after the field descriptions and invalid state have been rendered.\n const control = validationAttempt.firstField === undefined ? feedback.current : controls.current.get(validationAttempt.firstField);\n control?.focus();\n }, [validationAttempt]);\n\n const preset = (column: ColumnMeta) => presetValue(column, defaults);\n const required = (column: ColumnMeta) => isRequired(column, assigned);\n const visibilityOf = (values: Record<string, string>) => {\n /* Untouched defaults are part of the draft even when the control\n * intentionally renders as an empty/omitted input. Once a user\n * edits a field, the live value wins, including an explicit clear. */\n const visibilityValues: Record<string, FormScalar> = {};\n for (const column of columns) {\n const candidate =\n edited.current.has(column.name) || !Object.hasOwn(defaults, column.name) ? values[column.name] : defaults[column.name];\n /* An empty box is no value: `insurer_id is not empty` is false while the picker is empty, not unknown. */\n if (candidate === '') visibilityValues[column.name] = null;\n else if (\n candidate === null ||\n typeof candidate === 'string' ||\n typeof candidate === 'boolean' ||\n (typeof candidate === 'number' && Number.isFinite(candidate))\n )\n visibilityValues[column.name] = candidate as FormScalar;\n }\n return visibilityValues;\n };\n\n const f = useForm({\n defaultValues: Object.fromEntries(columns.map((c) => [c.name, preset(c)])) as Record<string, string>,\n onSubmit: async ({ value }) => {\n if (submission.locked) return;\n submission.clearProblem();\n /* Required means required here, before the wire: a form that let the\n database say \"NOT NULL constraint failed: task.due_on\" had told the\n reader nothing it did not already know about the row and everything\n about the schema. Each missing field is marked where it is, and the\n first gets focus. */\n const values = insertValues(value, defaults, edited.current, table.columns);\n const missing = [\n ...missingFields(columns, values, assigned),\n ...missingFields(\n table.columns.filter((c) => !columns.includes(c)),\n values,\n assigned,\n form?.derived,\n ),\n ];\n const invalid = columns.filter(\n (column) =>\n invalidDate(column, value[column.name] ?? '', kindOf(column)) ||\n textBroken(column, value[column.name]) ||\n amountProblem(column, value),\n );\n const linesWrong =\n lineSets.length > 0 && (Boolean(linesShort) || Object.values(lineChecks).some((problems) => Object.keys(problems).length));\n if (linesWrong) setLinesTried(true);\n if (missing.length || invalid.length || linesWrong) {\n const firstField = missing.find((c) => columns.includes(c))?.name ?? invalid[0]?.name;\n // A field left empty on an earlier page takes the reader back to it.\n if (steps && firstField) setStepIndex(stepOf(firstField));\n setValidationAttempt({ firstField });\n return;\n }\n const sentLines = lineSets.length\n ? {\n lines: Object.fromEntries(\n lineSets.map((line) => [\n line.table.id,\n (lines[line.table.id] ?? []).map((row) => ({\n values: linesPart!.lineValues(row, line.show),\n })),\n ]),\n ),\n }\n : {};\n const extra = {\n ...(tagValues.length ? { tags: tagValues } : {}),\n ...sentLines,\n };\n await submission.submit(values, Object.keys(extra).length ? extra : undefined);\n },\n });\n\n /* The first box someone has to fill, not the first box. */\n useEffect(() => {\n const initialValues = Object.fromEntries(columns.map((c) => [c.name, preset(c)]));\n const first =\n columns.find((c) => isFormFieldVisible(form, c, initialValues, table) && required(c) && !preset(c)) ??\n columns.find((c) => isFormFieldVisible(form, c, initialValues, table));\n if (first) controls.current.get(first.name)?.focus();\n }, []);\n\n /* Leaving a step checks only what it owns; the next step starts unmarked. */\n const stepReady = (step: FormStep) => {\n const values = f.state.values;\n const visible = visibilityOf(values);\n const owned = columns.filter((column) => step.fields.includes(column.name) && isFormFieldVisible(form, column, visible, table));\n const missing = missingFields(owned, insertValues(values, defaults, edited.current, table.columns), assigned);\n const invalid = owned.filter(\n (column) =>\n invalidDate(column, values[column.name] ?? '', kindOf(column)) ||\n textBroken(column, values[column.name]) ||\n amountProblem(column, values),\n );\n setValidationAttempt(missing.length || invalid.length ? { firstField: missing[0]?.name ?? invalid[0]?.name } : undefined);\n return !missing.length && !invalid.length;\n };\n /* Enter goes forward a step rather than adding the record from its first page. */\n const advance = () => {\n const at = Math.min(stepIndex, steps!.length - 1);\n if (!stepReady(steps![at])) return;\n if (at === steps!.length - 1) void f.handleSubmit();\n else setStepIndex(at + 1);\n };\n useEffect(() => {\n if (steps && firstVisibleServerField) setStepIndex(stepOf(firstVisibleServerField));\n }, [submission.fieldErrors]); // eslint-disable-line react-hooks/exhaustive-deps\n\n /* The groups, laid out; within a step, only the fields that step owns. */\n const fieldsFor = (only?: ReadonlySet<string>, rows?: readonly (readonly string[])[]) => (\n <f.Subscribe selector={(state) => state.values}>\n {(values) => {\n const visibilityValues = visibilityOf(values);\n return (\n <>\n {groups.map((group, groupIndex) => {\n const fields = group.columns.filter(\n (column) => (!only || only.has(column.name)) && isFormFieldVisible(form, column, visibilityValues, table),\n );\n if (!fields.length) return null;\n const body = fields.map((column) => {\n const index = columns.indexOf(column);\n const kind = kindOf(column);\n const own = dress(column);\n /* A narrowed picker offers nothing until the fields it reads are filled, and says which. */\n /* It reads the draft, and the values the form fills without asking (a bound parent key, a default). */\n const narrowed = own?.where && kind === 'reference' ? narrowingCondition(own.where, { ...defaults, ...values }) : '';\n const waitingOn =\n narrowed === undefined\n ? Object.values(own!.where!)\n .map((name) => table.columns.find((c) => c.name === name))\n .filter((c): c is ColumnMeta => Boolean(c))\n .map(label)\n .join(' and ')\n : '';\n /* A row-defined column is its fields, for the definitions the chosen `per` picks (DefinedFields.tsx). */\n const binding = app ? resourceOf(shell().app(), table.id)?.defined?.[column.name] : undefined;\n if (binding)\n return (\n <f.Field key={column.name} name={column.name}>\n {(field) => (\n <DefinedInputs\n column={column.name}\n binding={binding}\n per={binding.per ? ({ ...defaults, ...values } as Record<string, unknown>)[binding.per] : undefined}\n value={field.state.value}\n errors={submission.fieldErrors}\n Control={PlatformControl}\n onChange={(text) => {\n edited.current.add(column.name);\n field.handleChange(text);\n setDirty(hasFormChanges(columns, f.state.values, defaults, edited.current));\n }}\n />\n )}\n </f.Field>\n );\n return (\n <f.Field key={column.name} name={column.name}>\n {(field) => {\n const missing =\n tried &&\n missingFields(\n [column],\n insertValues({ [column.name]: field.state.value }, defaults, edited.current, table.columns),\n assigned,\n ).length > 0;\n const serverError = submission.fieldErrors.find((error) => error.field === column.name);\n const fieldMessage = missing\n ? say('fill', { column: label(column) })\n : tried && invalidDate(column, field.state.value, kind)\n ? kind === 'datetime'\n ? say('enterAValidDate')\n : say('enterAValidDateInYyyy')\n : tried && amountProblem(column, values)\n ? amountProblem(column, values)\n : textRule(column) &&\n typeof field.state.value === 'string' &&\n textRuleMessage(textRule(column)!, field.state.value)\n ? textRuleMessage(textRule(column)!, field.state.value)\n : serverError && !clearedServerFields.has(column.name)\n ? serverError.message\n : '';\n const errorId = `${errorPrefix}-${index}-error`;\n const help = [own?.help, waitingOn ? say('chooseFirst', { waitingOn }) : ''].filter(Boolean).join(' ') || undefined;\n const helpId = help ? `${errorPrefix}-${index}-help` : undefined;\n return (\n <div className={`insert-field${app ? ' form-field' : ''}${fieldMessage ? ' missing is-invalid' : ''}`}>\n {app ? (\n /* A record's form asks as a command form does: an answer that may be left empty says so\n in a word beside its label, and a needed one is simply asked (docs/design.md, Access). */\n <div className=\"form-field-label-row\">\n <label className=\"form-field-label\">{label(column)}</label>\n {/* The space is in the markup: the stylesheet that once put it in a ::before is the\n forms room's, which a New drawer does not load (\"Phone(optional)\"). */}\n {!required(column) && (\n <>\n {' '}\n <span className=\"form-field-optional-word\">{say('optionalWord')}</span>\n </>\n )}\n </div>\n ) : (\n <label>\n {label(column)}\n <span className=\"type\">{column.type.toLowerCase()}</span>\n {column.primaryKey && <span className=\"pk\">{say('common.key')}</span>}\n {required(column) && (\n <span className=\"req\" title={say('notNullWithNoDefault')}>\n {say('requiredMark')}\n </span>\n )}\n </label>\n )}\n <Control\n column={column}\n app={app}\n input={app ? columnInput(table.id, column.name) : undefined}\n resource={table.id}\n required={required(column)}\n assigned={assigned}\n spoken={label(column)}\n target={target}\n value={field.state.value}\n kind={kind}\n rule={app ? ruleIn(column, { ...defaults, ...values }) : (display?.(column) ?? undefined)}\n placeholder={own?.placeholder}\n as={own?.as}\n where={narrowed === undefined ? undefined : narrowed || undefined}\n waiting={narrowed === undefined}\n helpId={helpId}\n onChange={(value) => {\n edited.current.add(column.name);\n field.handleChange(value);\n /* A value taken from the record this field names follows the choice, until the person says their own. */\n for (const [name, path] of Object.entries(form?.derived ?? {})) {\n if (!path?.startsWith(`${column.name}.`) || edited.current.has(name)) continue;\n void derivedValue(path, column, value, target).then((taken) => {\n if (!edited.current.has(name) && f.getFieldValue(column.name) === value) f.setFieldValue(name, taken);\n });\n }\n /* A choice narrowed by this field no longer belongs to it. */\n for (const dependent of dependents(column.name)) {\n if (f.getFieldValue(dependent.name)) {\n edited.current.add(dependent.name);\n f.setFieldValue(dependent.name, '');\n }\n }\n if (serverError)\n setClearedServerFields((previous) => {\n const next = new Set(previous);\n next.add(column.name);\n return next;\n });\n setDirty(hasFormChanges(columns, f.state.values, defaults, edited.current));\n }}\n explicitNull={\n !edited.current.has(column.name) && Object.hasOwn(defaults, column.name) && defaults[column.name] === null\n }\n register={(node) => controls.current.set(column.name, node)}\n errorId={fieldMessage ? errorId : undefined}\n />\n {help && (\n <p id={helpId} className=\"form-field-hint\">\n {help}\n </p>\n )}\n <span id={errorId} className=\"insert-missing\" aria-live=\"polite\" hidden={!fieldMessage}>\n {fieldMessage}\n </span>\n </div>\n );\n }}\n </f.Field>\n );\n });\n const placed = inRows(\n fields.map((column) => column.name),\n body,\n rows,\n );\n const groupHelp = app ? form?.groups?.find((authored) => authored.label === group.label)?.description : undefined;\n return group.label ? (\n <fieldset className=\"insert-group\" key={`${group.label}:${groupIndex}`}>\n <legend>{group.label}</legend>\n {groupHelp && <p className=\"insert-group-description\">{groupHelp}</p>}\n <div className=\"insert-group-fields\">{placed}</div>\n </fieldset>\n ) : (\n <div className=\"insert-group-fields\" key={`ungrouped:${groupIndex}`}>\n {placed}\n </div>\n );\n })}\n </>\n );\n }}\n </f.Subscribe>\n );\n\n /* The Workbench says what an empty box means; an App's form says what the\n author wrote (`description`), if anything — each field's own help says\n what leaving it empty does, where that is worth a sentence. */\n /* The form's `live` figures as its fields and lines change (FormLines.tsx). */\n const liveSummary = (\n <f.Subscribe selector={(state) => state.values}>\n {(values) => linesPart && <linesPart.LiveValues table={table} names={live} values={{ ...draftDefaults, ...values }} lines={lines} />}\n </f.Subscribe>\n );\n const lede = app ? form?.description : say('emptyFieldsAreLeft');\n const cancel = (\n <Button intent=\"secondary\" onClick={onCancel} disabled={submission.phase === 'pending' || (retainUncertain && submission.locked)}>\n {submission.locked && submission.phase !== 'pending' && !retainUncertain ? say('common.close') : say('common.cancel')}\n </Button>\n );\n\n return (\n <form\n className={`insert-form${app ? ' insert-form-app' : ''}`}\n aria-busy={submission.phase === 'pending'}\n onSubmit={(e) => {\n e.preventDefault();\n if (steps) advance();\n else void f.handleSubmit();\n }}\n >\n {!compact && lede && frame !== 'page' && <p className=\"insert-lede\">{lede}</p>}\n <fieldset className=\"insert-fields\" disabled={submission.locked}>\n {steps ? (\n <MultiStepForm\n steps={steps}\n step={stepIndex}\n onStepChange={(index) => setStepIndex(index)}\n className=\"insert-steps\"\n validateStep={(step) => stepReady(step)}\n onComplete={() => f.handleSubmit()}\n completeLabel={app ? say('common.add') : say('addRow')}\n leading={cancel}\n presentation={frame === 'page' ? 'page' : 'dialog'}\n {...(form?.style === 'intake' ? { style: 'intake' as const } : {})}\n >\n {(step) =>\n fieldsFor(new Set(step.fields), [...(step.rows ?? []), ...(form?.groups?.flatMap((group) => group.rows ?? []) ?? [])])\n }\n </MultiStepForm>\n ) : (\n fieldsFor(undefined, form?.showRows)\n )}\n {linesPart && lineSets.length > 0 && (!steps || stepIndex === steps.length - 1) && (\n <>\n {lineSets.map((line, at) => (\n <linesPart.LinesEditor\n key={line.table.id}\n title={line.label}\n table={line.table}\n columns={line.show}\n rows={lines[line.table.id] ?? []}\n ordered={Boolean(line.order)}\n max={line.max}\n problems={{\n ...(linesTried ? lineChecks[line.table.id] : {}),\n ...linesPart.lineServerProblems(line.table, submission.fieldErrors),\n }}\n onChange={(rows) => {\n setLines((previous) => ({\n ...previous,\n [line.table.id]: rows,\n }));\n setDirty(true);\n }}\n /* The totals stand beside the last grid's Add line, their figures under its amounts. */\n summary={at === lineSets.length - 1 && live.length > 0 ? liveSummary : undefined}\n />\n ))}\n {linesTried && linesShort && (\n <p className=\"form-lines-problem\" role=\"alert\">\n {say('addAtLeastLines', { min: linesShort.min! })}\n </p>\n )}\n </>\n )}\n {live.length > 0 && !lineSets.length && (!steps || stepIndex === steps.length - 1) && liveSummary}\n {offersTags && (!steps || stepIndex === steps.length - 1) && (\n <div className={`insert-field${app ? ' form-field' : ''}`}>\n <label className=\"form-field-label\">{humanName(tagTable!.name)}</label>\n <RecordPicker\n table={tagTable!}\n multiple\n value={tagValues}\n onChange={setTagValues}\n app\n hideKey\n ariaLabel={humanName(tagTable!.name)}\n />\n </div>\n )}\n </fieldset>\n <p ref={status} className=\"insert-status\" role=\"status\" tabIndex={-1} hidden={submission.phase !== 'pending'}>\n {say('adding')}\n </p>\n <f.Subscribe selector={(state) => state.values}>\n {(values) => {\n const hiddenMissing = tried\n ? missingFields(\n table.columns.filter((c) => !columns.includes(c)),\n insertValues(values, defaults, edited.current, table.columns),\n assigned,\n form?.derived,\n )\n : [];\n const problem = hasVisibleServerErrors\n ? ''\n : submission.problem ||\n (hiddenMissing.length\n ? say('cannotAddThisRecord', {\n map: hiddenMissing.map(label).join(', '),\n })\n : '');\n return (\n <p ref={feedback} className=\"insert-problem\" role=\"alert\" tabIndex={-1} hidden={!problem}>\n {problem}\n </p>\n );\n }}\n </f.Subscribe>\n {/* A stepped form's Cancel stands in the step's own row of actions, beside Back and Next. */}\n {!steps && (\n <NewRecordFrameFooter\n app={app}\n frame={frame}\n onCancel={onCancel}\n pending={submission.phase === 'pending'}\n locked={submission.locked}\n retainUncertain={retainUncertain}\n />\n )}\n </form>\n );\n}\n\n/**\n * A form's rows — a step's, a group's, `show`'s: fields the author put in one row (`[['first_name', 'last_name'], 'dob']`) stand side by side in\n * one Columns, where the form draws them in this order; a row with a field hidden or in another group is what is\n * left of it. Rows only gather neighbours, so the order of the fields is never changed.\n */\nfunction inRows(names: string[], nodes: ReactNode[], rows: readonly (readonly string[])[] | undefined): ReactNode[] {\n if (!rows?.some((row) => row.length > 1)) return nodes;\n const placed: ReactNode[] = [];\n let at = 0;\n while (at < names.length) {\n const row = rows.find((candidate) => candidate.length > 1 && candidate.includes(names[at]));\n let end = at + 1;\n while (row && end < names.length && row.includes(names[end])) end++;\n placed.push(end - at > 1 ? <Columns key={`row-${at}`}>{nodes.slice(at, end)}</Columns> : nodes[at]);\n at = end;\n }\n return placed;\n}\n\n/**\n * One control per shape, every one the page's own: a listbox for a\n * vocabulary or a flag, a record picker for a reference, a date box for a\n * date, a text box for the rest. Nothing native draws its menu over the\n * page in the OS's font.\n */\nfunction Control(\n props: Parameters<typeof PlatformControl>[0] & {\n /** The App's own input component for this column (`resources.<name>.inputs`). */\n input?: string;\n resource: string;\n },\n) {\n const { input, resource, ...rest } = props;\n const id = useId();\n if (!input) return <PlatformControl {...rest} />;\n /* The App's own input: it hands back text the form keeps, checks and inserts like any control's. */\n return (\n <InputSlot\n component={input}\n fallback={<PlatformControl {...rest} />}\n value={rest.value}\n onChange={(next) => rest.onChange(next === null ? '' : String(next))}\n id={`new-${id}`}\n describedBy={rest.errorId}\n invalid={Boolean(rest.errorId)}\n disabled={false}\n required={rest.required}\n label={rest.spoken}\n field={{ name: rest.column.name, resource }}\n context=\"new\"\n />\n );\n}\n\nlet controlsStyled = false;\n/** Whether the cards-and-buttons rules are here; the first field that wants them fetches the sheet. */\nfunction useControlsStyle(wanted: boolean): boolean {\n const [here, setHere] = useState(controlsStyled);\n useEffect(() => {\n if (!wanted || controlsStyled) return;\n let live = true;\n void import('./formControlsStyle.js').then(() => {\n controlsStyled = true;\n if (live) setHere(true);\n });\n return () => {\n live = false;\n };\n }, [wanted]);\n return here || controlsStyled;\n}\n\nexport function PlatformControl({\n column,\n app,\n required,\n assigned,\n spoken,\n target,\n value,\n onChange,\n register,\n explicitNull,\n errorId,\n kind,\n rule,\n placeholder,\n as,\n where,\n waiting = false,\n helpId,\n}: {\n column: ColumnMeta;\n app: boolean;\n /** Said to assistive technology as well as starred: the star is outside the control's name. */\n required: boolean;\n assigned: string | null;\n spoken: string;\n target: (tableId: string) => TableMeta | undefined;\n value: string;\n onChange: (value: string) => void;\n register: (node: Focusable | null) => void;\n explicitNull: boolean;\n errorId?: string;\n /** In an App, the input the column is drawn as (newRecordModel.fieldInput); the Workbench has none. */\n kind?: FieldInput;\n /** The column's display rule: its vocabulary's words, its currency. */\n rule?: DisplayRule;\n placeholder?: string;\n /** How the form's author draws a vocabulary or a flag (`form.fields.<column>.as`): cards, buttons, radios or a listbox. */\n as?: 'cards' | 'buttons' | 'radios' | 'select';\n /** A narrowed reference's condition; `waiting` while a field it reads is empty. */\n where?: string;\n waiting?: boolean;\n helpId?: string;\n}) {\n const dateId = useId();\n const radioName = useId();\n const styled = useControlsStyle(app && (as === 'cards' || as === 'buttons'));\n // The shared pickers expose their actual control through these refs. Keep\n // form validation on that focusable element, including after picker renders.\n const validation = useRef<{\n node: Focusable;\n errorId?: string;\n helpId?: string;\n invalid: string | null;\n } | null>(null);\n const setControl = (node: Focusable | null) => {\n const previous = validation.current;\n if (previous) {\n // Remove only our descriptions; picker owners may have changed theirs.\n const descriptions = (previous.node.getAttribute('aria-describedby') ?? '')\n .split(/\\s+/)\n .filter((id) => id && id !== previous.errorId && id !== previous.helpId);\n if (descriptions.length) previous.node.setAttribute('aria-describedby', descriptions.join(' '));\n else previous.node.removeAttribute('aria-describedby');\n if (previous.errorId && previous.node.getAttribute('aria-invalid') === 'true') {\n if (previous.invalid === null) previous.node.removeAttribute('aria-invalid');\n else previous.node.setAttribute('aria-invalid', previous.invalid);\n }\n validation.current = null;\n }\n if (node && (errorId || helpId)) {\n validation.current = {\n node,\n errorId,\n helpId,\n invalid: node.getAttribute('aria-invalid'),\n };\n const descriptions = (node.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean);\n if (errorId) node.setAttribute('aria-invalid', 'true');\n // The help first, then what is wrong: read in the order they are drawn.\n node.setAttribute(\n 'aria-describedby',\n [...new Set([...descriptions, ...(helpId ? [helpId] : []), ...(errorId ? [errorId] : [])])].join(' '),\n );\n }\n // A field that takes typing says it is required; a listbox's button cannot carry the state.\n if (node && node.matches('input, textarea, [role=\"combobox\"]')) {\n if (required) node.setAttribute('aria-required', 'true');\n else node.removeAttribute('aria-required');\n }\n register(node);\n };\n /* The default as the database spells it in the workbench — `'open'`,\n `CURRENT_TIMESTAMP` — and as a person would in an app: quotes off,\n capitalised, no arrow to a table name. */\n const plainDefault = String(column.default ?? '').replace(/^'(.*)'$/, '$1');\n const allowed = (column as ColumnMeta & { allowed?: string[] }).allowed;\n /* A stored word as the App says it everywhere else: its `values`, else the vocabulary's words. */\n const word = (stored: string) => (app ? (wordFor(rule, stored) ?? vocabularyWord(stored)) : stored);\n const hint = explicitNull\n ? app\n ? say('common.noValue')\n : 'null'\n : column.identity || column.name === assigned\n ? say('assignedByTheDatabase')\n : column.default !== undefined\n ? app\n ? say('defaultValue', {\n value: allowed?.includes(plainDefault) ? word(plainDefault) : plainDefault,\n })\n : `default: ${column.default}`\n : column.hasDefault === true\n ? say('defaultSuppliedByTheDatabase')\n : column.references\n ? `→ ${column.references.table}`\n : '';\n const said = placeholder ?? hint;\n /* An App's listbox with nothing chosen asks, quietly, as a command form's does; the workbench keeps its dash. */\n const unchosen =\n hint || (app ? (readsAsName(spoken) ? say('choosePlaceholder', { label: spoken.toLowerCase() }) : say('chooseOne')) : '—');\n const quietWhenEmpty = value === '' ? 'is-empty' : undefined;\n\n /* The author's word over the default the kind and the size pick (formRules.ts says which columns may take one). */\n if (app && (as === 'cards' || as === 'buttons') && (allowed?.length || isFlagColumn(column))) {\n if (!styled) return null;\n const words: readonly (readonly [string, string])[] = allowed?.length\n ? allowed.map((stored) => [stored, word(stored)] as const)\n : [\n ['1', say('common.yes')],\n ['0', say('common.no')],\n ];\n const cards = as === 'cards';\n return (\n <div className={cards ? 'choice-cards' : 'choice-pair'} role=\"radiogroup\" aria-label={spoken} aria-required={required || undefined}>\n {words.map(([stored, said], index) => (\n <label key={stored} className={`${cards ? 'choice-card' : 'choice-pick'}${value === stored ? ' is-on' : ''}`}>\n {cards && rule?.icons?.[stored] && isAppIcon(rule.icons[stored]) ? (\n <span className=\"choice-card-icon\" aria-hidden=\"true\">\n <Icon name={rule.icons[stored] as AppIconName} />\n </span>\n ) : null}\n {cards ? <span className=\"choice-card-label\">{said}</span> : null}\n <input\n type=\"radio\"\n name={radioName}\n value={stored}\n className=\"choice-input\"\n checked={value === stored}\n onChange={() => onChange(stored)}\n ref={index === 0 ? setControl : undefined}\n />\n {cards ? <span className=\"choice-box\" aria-hidden=\"true\" /> : said}\n </label>\n ))}\n </div>\n );\n }\n if (((kind === 'radios' && as !== 'select') || (as === 'radios' && app)) && allowed?.length) {\n return (\n <div className=\"command-choices insert-choices\" role=\"radiogroup\" aria-label={spoken} aria-required={required || undefined}>\n {allowed.map((stored, index) => (\n <label className=\"command-choice\" key={stored}>\n <input\n type=\"radio\"\n name={radioName}\n value={stored}\n checked={value === stored}\n onChange={() => onChange(stored)}\n ref={index === 0 ? setControl : undefined}\n />\n {word(stored)}\n </label>\n ))}\n </div>\n );\n }\n if (allowed?.length) {\n return (\n <Dropdown\n items={[{ value: '', label: unchosen }, ...allowed.map((v) => ({ value: v, label: word(v) }))]}\n value={value}\n valueClassName={quietWhenEmpty}\n ariaLabel={`${spoken}${app ? '' : say('one', { allowed: allowed.join(', ') })}`}\n onChange={onChange}\n buttonRef={setControl}\n />\n );\n }\n if (kind === 'switch' && as !== 'select') {\n /* A flag that is answered either way is a switch: on is yes, off is no — never \"leave it to the database\". */\n return (\n <label className=\"insert-switch\">\n <input\n ref={setControl}\n type=\"checkbox\"\n role=\"switch\"\n aria-label={spoken}\n checked={value === '1'}\n onChange={(e) => onChange(e.target.checked ? '1' : '0')}\n />\n <span aria-hidden=\"true\">{value === '1' ? say('common.yes') : say('common.no')}</span>\n </label>\n );\n }\n if (isFlagColumn(column)) {\n return (\n <Dropdown\n items={[\n { value: '', label: unchosen },\n { value: '1', label: app ? say('common.yes') : 'yes' },\n { value: '0', label: app ? say('common.no') : 'no' },\n ]}\n value={value}\n valueClassName={quietWhenEmpty}\n ariaLabel={`${spoken}${app ? '' : ` (${column.type})`}`}\n onChange={onChange}\n buttonRef={setControl}\n />\n );\n }\n const referenced = column.references ? target(column.references.table) : undefined;\n if (referenced) {\n return (\n <RecordPicker\n table={referenced}\n value={value}\n onChange={onChange}\n ariaLabel={spoken}\n app={app}\n inputRef={setControl}\n where={where}\n disabled={waiting}\n {...(placeholder ? { placeholder } : {})}\n />\n );\n }\n if (dateOnly(column) || kind === 'datetime') {\n return (\n <DateField\n id={dateId}\n inputRef={setControl}\n className=\"insert-input\"\n value={value}\n onChange={onChange}\n withTime={kind === 'datetime'}\n aria-label={app ? spoken : `${column.name} (${column.type})`}\n placeholder={said || (kind === 'datetime' ? say('yyyyMmDdHh') : 'YYYY-MM-DD')}\n locale={formatLocale()}\n timezone={formatTimezone()}\n />\n );\n }\n /* Formatted text: the editor, fetched when the form first draws one. A new record has no row yet for a\n picture to be attached to, so it takes pictures once it is saved and edited. */\n if (kind === 'richText') {\n return (\n <RichTextField\n label={spoken}\n value={value}\n onChange={onChange}\n {...(said ? { placeholder: said } : {})}\n {...(rule?.mentions ? { mentions: mentionSearch(rule.mentions, state.activeConnection) } : {})}\n />\n );\n }\n if (kind === 'textarea') {\n return (\n <textarea\n ref={setControl}\n className=\"insert-input\"\n rows={4}\n placeholder={said}\n aria-label={spoken}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n />\n );\n }\n const box = (style?: CSSProperties, shown = value, change = onChange) => (\n <input\n ref={setControl}\n style={style}\n type=\"text\"\n className=\"insert-input\"\n placeholder={app && column.name === assigned ? '' : said}\n aria-label={app ? spoken : `${column.name} (${column.type})`}\n autoComplete=\"off\"\n spellCheck={false}\n {...(kind === 'number' || kind === 'money' ? { inputMode: 'decimal' as const } : {})}\n value={shown}\n onChange={(e) => change(e.target.value)}\n />\n );\n if (kind !== 'money') return box();\n /* Money says its currency in the box, before the figure, as the figure will read once stored. */\n const currency = rule?.currency ?? defaultCurrency();\n /* Kept as minor units: typed as the figure, \"19.99\", and held as stored, 1999 (MinorMoneyInput.tsx). */\n if (rule?.minor)\n return (\n <MinorMoneyInput value={value} currency={currency} onChange={onChange}>\n {(text, typed) => <MoneyAffix sign={currencySymbol(currency)} box={(style) => box(style, text, typed)} />}\n </MinorMoneyInput>\n );\n return <MoneyAffix sign={currencySymbol(currency)} box={box} />;\n}\n\n/* Room between the sign and the first digit, as between a word and the next. */\nconst AFFIX_GAP = 4;\n\n/* The sign a currency is written with here: \"$\", \"€\", \"CHF\". Its own, as FilterRail's is: the lines grid that has\n the same (FormLines.tsx) is the App framework's part, fetched apart from the form. */\nfunction currencySymbol(currency: string): string {\n try {\n return (\n new Intl.NumberFormat(formatLocale(), { style: 'currency', currency }).formatToParts(0).find((part) => part.type === 'currency')\n ?.value ?? currency\n );\n } catch {\n return currency;\n }\n}\n\n/**\n * The currency sign before a money box's figure, and the box's text starting\n * after it. Where the text starts is measured from the sign as drawn — its\n * look's font, a wide sign (\"CHF\") — on the zoom-aware ruler, and given to\n * the box itself: a padding in `ch` of the box's font, which a look's own\n * padding outranked, left \"$\" over the first digit of \"1850\".\n */\nfunction MoneyAffix({ sign, box }: { sign: string; box: (style?: CSSProperties) => ReactNode }) {\n const unit = useRef<HTMLSpanElement>(null);\n const [inset, setInset] = useState<number | undefined>(undefined);\n useLayoutEffect(() => {\n const node = unit.current;\n const host = node?.parentElement;\n if (!node || !host) return;\n const measure = () => {\n const end = viewportBox(node).right - viewportBox(host).left;\n if (end > 0) setInset(Math.ceil(end) + AFFIX_GAP);\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(node);\n return () => observer.disconnect();\n }, [sign]);\n return (\n <span className=\"insert-affix\">\n <span ref={unit} className=\"insert-affix-unit\" aria-hidden=\"true\">\n {sign}\n </span>\n {box(inset === undefined ? undefined : { paddingLeft: `${inset}px` })}\n </span>\n );\n}\n\n/** Cancel and Add, in the frame's own dress: a drawer's foot, a page's actions under its last field, a dialog's row. */\nfunction NewRecordFrameFooter({\n app,\n frame,\n onCancel,\n pending,\n locked,\n retainUncertain = false,\n}: {\n app: boolean;\n frame: 'drawer' | 'page' | 'dialog';\n onCancel: () => void;\n pending: boolean;\n locked: boolean;\n retainUncertain?: boolean;\n}) {\n return (\n <div className={frame === 'page' ? 'form-actions' : app ? 'newpanel-foot' : 'confirm-actions'}>\n <Button intent=\"secondary\" onClick={onCancel} disabled={pending || (retainUncertain && locked)}>\n {locked && !pending && !retainUncertain ? say('common.close') : say('common.cancel')}\n </Button>\n <Button intent=\"primary\" type=\"submit\" disabled={locked}>\n {app ? say('common.add') : say('addRow')}\n </Button>\n </div>\n );\n}\n\n/** What Tab stops on inside the drawer. */\nconst TAB_STOPS =\n 'a[href], button:not(:disabled), input:not(:disabled):not([type=\"hidden\"]), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex=\"-1\"])';\n\n/** The form's heading, the way both frames say it. */\nfunction newRecordTitle(table: TableMeta, app: boolean): string {\n return say('newThing', {\n thing: app ? humanName(table.name).toLowerCase() : table.name,\n });\n}\n\n/**\n * The New form as an app shows it: a drawer over the list. A modal hid the\n * list you were on, fought the picker's menu for room, and could not be\n * linked to. Escape closes it — unless a picker or listbox inside is open,\n * which takes the first Escape.\n */\nexport function NewRecordDrawer(props: NewRecordProps) {\n const frame = props.app ? formFrame(props.form, formColumns(props.table, props.form, props.app).length) : 'drawer';\n const pane = frame === 'page' ? shellById('content') : null;\n return pane ? <NewRecordPage {...props} pane={pane} /> : <NewRecordSheet {...props} />;\n}\n\n/**\n * The New form as a page of its own (`form.open: 'page'`, or a long or\n * stepped form): drawn in the content pane, beside the App's menu, as a\n * command form is — one centred measure under the App's name and the\n * form's title. The list it was opened from stays where it was, hidden\n * rather than taken down, so Cancel finds it as it was left.\n */\nfunction NewRecordPage({ pane, ...props }: NewRecordProps & { pane: HTMLElement }) {\n const title = newRecordTitle(props.table, props.app);\n const titleId = useId();\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const opener = useRef(document.activeElement);\n useLayoutEffect(() => {\n pane.classList.add('has-new-page');\n pane.scrollTo?.({ top: 0 });\n return () => pane.classList.remove('has-new-page');\n }, [pane]);\n useEffect(\n () => () => {\n const back = opener.current;\n queueMicrotask(() => {\n const now = document.activeElement;\n if ((!now || now === document.body) && back instanceof HTMLElement && back.isConnected) back.focus({ preventScroll: true });\n });\n },\n [],\n );\n return createPortal(\n <div className=\"newrecord-page-host\">\n <section className=\"form-page newrecord-page\" aria-labelledby={titleId}>\n {props.appName && <p className=\"eyebrow\">{props.appName}</p>}\n <h1 id={titleId}>{title}</h1>\n {props.form?.description && <p className=\"form-page-description\">{props.form.description}</p>}\n <NewRecordForm\n {...props}\n frame=\"page\"\n onCancel={dismissal.close}\n onPendingChange={dismissal.change}\n onDiscardChange={dismissal.discardChange}\n />\n </section>\n {dismissal.discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </div>,\n pane,\n );\n}\n\n/**\n * Everything beside `panel` and beside each of its ancestors up to the shell's body made inert, until the release\n * this returns: out of the accessibility tree, the Tab order and hit testing. What was inert already is left as it\n * was; a popup's portal (one a field in the panel opens, or one the page keeps mounted and closed) and a live region,\n * which says a save's outcome, are left out.\n */\nfunction inertBehind(panel: HTMLElement): () => void {\n const made: HTMLElement[] = [];\n const top = shellBody();\n for (let node: HTMLElement = panel; node !== top && node.parentElement; node = node.parentElement) {\n for (const sibling of node.parentElement.children) {\n if (sibling === node || !(sibling instanceof HTMLElement) || sibling.inert) continue;\n if (sibling.matches('[data-base-ui-portal], [aria-live], [role=\"status\"], [role=\"alert\"]')) continue;\n sibling.inert = true;\n made.push(sibling);\n }\n if (node.parentElement === top) break;\n }\n return () => {\n for (const el of made) el.inert = false;\n };\n}\n\n/** The drawer frame: over the list's right side, which stays in sight. */\nfunction NewRecordSheet(props: NewRecordProps) {\n const title = newRecordTitle(props.table, props.app);\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const { pending, close: onCancel, discard } = dismissal;\n /* The drawer is not Modal.tsx (the list stays in sight), so nothing handed\n focus back when it went: the field that had it is removed and focus fell\n to the page itself. It goes back to what opened the drawer — the New\n button — unless the reader has already put it somewhere. */\n const opener = useRef(document.activeElement);\n const panel = useRef<HTMLElement>(null);\n const root = useRef<HTMLDivElement>(null);\n useEffect(\n () => () => {\n const back = opener.current;\n queueMicrotask(() => {\n const now = document.activeElement;\n if ((!now || now === document.body) && back instanceof HTMLElement && back.isConnected) back.focus({ preventScroll: true });\n });\n },\n [],\n );\n /* The page behind is inert while the drawer is open, as aria-modal says it is: a list drawn beside the form was\n still in the accessibility tree and under a finger, and a grade of Compass's New lead read the list's grid as a\n control drawn over the form's fields. Released before focus goes back to the New button, which is behind. */\n useLayoutEffect(() => (root.current ? inertBehind(root.current) : undefined), []);\n useEffect(() => {\n const popupOpen = () => shellQuery('.picker-popup:not([data-closed]) .picker-list, .dd-popup:not([data-closed]) .dd-list');\n /* Tab stays in the drawer. A pointer on the list closes the drawer first,\n so the keyboard gets no more of the list than the pointer does; and the\n drawer covers the list's right side, where Tab walked on under it. An\n open picker or listbox inside keeps its own keys. */\n const holdTab = (e: KeyboardEvent) => {\n const box = panel.current;\n if (!box || discard || popupOpen()) return;\n const stops = [...box.querySelectorAll<HTMLElement>(TAB_STOPS)].filter((el) => el.checkVisibility?.() ?? true);\n const first = stops[0],\n last = stops[stops.length - 1];\n if (!first || !last) return;\n const at = document.activeElement;\n if (!box.contains(at)) {\n e.preventDefault();\n first.focus();\n } else if (e.shiftKey && at === first) {\n e.preventDefault();\n last.focus();\n } else if (!e.shiftKey && at === last) {\n e.preventDefault();\n first.focus();\n }\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n holdTab(e);\n return;\n }\n if (e.key !== 'Escape') return;\n if (discard) return;\n if (popupOpen()) return;\n e.preventDefault();\n e.stopPropagation();\n onCancel();\n };\n addHostListener(document, 'keydown', onKey, true);\n return () => removeHostListener(document, 'keydown', onKey, true);\n }, [onCancel, discard]);\n\n return (\n <div ref={root} className=\"peekpanel-root\">\n <div className=\"peekpanel-backdrop\" onPointerDown={onCancel} />\n <aside ref={panel} className=\"peekpanel newpanel\" role=\"dialog\" aria-modal=\"true\" aria-label={title}>\n <div className=\"peekpanel-head\">\n <h2 className=\"peekpanel-title\">{title}</h2>\n <button type=\"button\" className=\"peekpanel-close\" aria-label={say('common.close')} onClick={onCancel} disabled={pending}>\n ×\n </button>\n </div>\n <div className=\"peekpanel-body newpanel-body\">\n <NewRecordForm {...props} onCancel={onCancel} onPendingChange={dismissal.change} onDiscardChange={dismissal.discardChange} />\n </div>\n </aside>\n {discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </div>\n );\n}\n\n/** Workbench and nested related creation share this dialog and the same form. */\nexport function NewRecordDialog(props: NewRecordProps) {\n const title = newRecordTitle(props.table, props.app);\n const dismissal = useRecordClose(props.onCancel, props.canClose);\n const unresolved = useCallback(\n (next: boolean) => {\n if (props.retainUncertain) dismissal.change(next);\n props.onUnresolvedChange?.(next);\n },\n [props.retainUncertain, props.onUnresolvedChange, dismissal.change],\n );\n return (\n <Modal\n className=\"confirm insert-dialog\"\n onClose={props.onCancel}\n closeDisabled={dismissal.pending}\n beforeClose={dismissal.beforeClose}\n ariaLabel={title}\n >\n <h2>{title}</h2>\n <NewRecordForm\n {...props}\n onCancel={dismissal.close}\n onPendingChange={props.retainUncertain ? undefined : dismissal.change}\n onUnresolvedChange={unresolved}\n onDiscardChange={dismissal.discardChange}\n />\n {dismissal.discard && <DiscardNewRecord onDone={dismissal.resolve} />}\n </Modal>\n );\n}\n\nexport function DiscardNewRecord({ onDone }: { onDone: (confirmed: boolean) => void }) {\n return (\n <ConfirmDialog\n title={say('discardNewRecord')}\n body={say('yourEntriesHaveNotBeen')}\n confirmLabel={say('discardRecord')}\n cancelLabel={say('keepEditing')}\n onDone={onDone}\n />\n );\n}\n\nexport function useRecordClose(onCancel: () => void, canClose?: () => boolean) {\n const [pending, setPending] = useState(false);\n const [discard, setDiscard] = useState(false);\n const busy = useRef(false);\n const dirty = useRef(false);\n const change = useCallback((next: boolean) => {\n busy.current = next;\n setPending(next);\n }, []);\n const discardChange = useCallback((next: boolean) => {\n dirty.current = next;\n }, []);\n const beforeClose = () => {\n if (busy.current || canClose?.() === false) return false;\n if (dirty.current) {\n setDiscard(true);\n return false;\n }\n return true;\n };\n const close = () => {\n if (beforeClose()) onCancel();\n };\n const resolve = (confirmed: boolean) => {\n setDiscard(false);\n if (confirmed && !busy.current && canClose?.() !== false) onCancel();\n };\n return {\n pending,\n change,\n close,\n beforeClose,\n discard,\n discardChange,\n resolve,\n };\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"mappings":"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"}