@kyro-cms/core 0.9.1 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +0 -6
  2. package/dist/{WebhookService-Yg2UEOB4.d.cts → WebhookService-BKszZlG0.d.cts} +1 -1
  3. package/dist/{WebhookService-CUTb9XOy.d.ts → WebhookService-Ccf1j-IN.d.ts} +1 -1
  4. package/dist/api-handler-graphql.cjs +17 -17
  5. package/dist/api-handler-graphql.js +13 -13
  6. package/dist/api-handler-trpc.cjs +15 -15
  7. package/dist/api-handler-trpc.js +13 -13
  8. package/dist/api-handler.cjs +16 -16
  9. package/dist/api-handler.js +13 -13
  10. package/dist/{base-DaqY2GhA.d.ts → base-CIuXkrH4.d.cts} +3 -5
  11. package/dist/{base-B71y_EAF.d.cts → base-fFo4lqER.d.ts} +3 -5
  12. package/dist/bootstrap-3PV3GJ3S.js +7 -0
  13. package/dist/{bootstrap-T5BK77LD.js.map → bootstrap-3PV3GJ3S.js.map} +1 -1
  14. package/dist/bootstrap-4CELFLJO.cjs +32 -0
  15. package/dist/{bootstrap-5NLASFOG.cjs.map → bootstrap-4CELFLJO.cjs.map} +1 -1
  16. package/dist/{chunk-Z6ZWNWWR.js → chunk-4CV4JOE5.js} +3 -9
  17. package/dist/{chunk-Z6ZWNWWR.js.map → chunk-4CV4JOE5.js.map} +1 -1
  18. package/dist/{chunk-5EPFQUQD.js → chunk-53NYVYVX.js} +6 -6
  19. package/dist/chunk-53NYVYVX.js.map +1 -0
  20. package/dist/{chunk-22M4O4ZJ.js → chunk-5H3MWQJS.js} +129 -143
  21. package/dist/chunk-5H3MWQJS.js.map +1 -0
  22. package/dist/{chunk-RAMGUDJN.cjs → chunk-5PMQQFRE.cjs} +5 -5
  23. package/dist/{chunk-RAMGUDJN.cjs.map → chunk-5PMQQFRE.cjs.map} +1 -1
  24. package/dist/{chunk-TXSZFA4G.js → chunk-6UNONDW7.js} +93 -9
  25. package/dist/chunk-6UNONDW7.js.map +1 -0
  26. package/dist/{chunk-C36TMDTY.cjs → chunk-7OS7TX2Q.cjs} +49 -48
  27. package/dist/chunk-7OS7TX2Q.cjs.map +1 -0
  28. package/dist/{chunk-3TPQ2BU6.js → chunk-BYBMTIMT.js} +2 -6
  29. package/dist/chunk-BYBMTIMT.js.map +1 -0
  30. package/dist/{chunk-FOPGUM27.js → chunk-CJX74IYK.js} +5 -4
  31. package/dist/chunk-CJX74IYK.js.map +1 -0
  32. package/dist/{chunk-RSF3UU7H.cjs → chunk-CNKT4PME.cjs} +196 -200
  33. package/dist/chunk-CNKT4PME.cjs.map +1 -0
  34. package/dist/{chunk-G7VZBCD6.cjs → chunk-CZLDE2OZ.cjs} +2 -9
  35. package/dist/{chunk-G7VZBCD6.cjs.map → chunk-CZLDE2OZ.cjs.map} +1 -1
  36. package/dist/{chunk-JOPVMWTM.cjs → chunk-DPA3KWPY.cjs} +3 -3
  37. package/dist/chunk-DPA3KWPY.cjs.map +1 -0
  38. package/dist/{chunk-ROJHKAQ4.cjs → chunk-E2763JUP.cjs} +143 -157
  39. package/dist/chunk-E2763JUP.cjs.map +1 -0
  40. package/dist/{chunk-FAXU7BMP.js → chunk-E5UJBLQ7.js} +2 -2
  41. package/dist/chunk-E5UJBLQ7.js.map +1 -0
  42. package/dist/{chunk-DVD5P72E.cjs → chunk-EEJUFDMF.cjs} +2 -6
  43. package/dist/chunk-EEJUFDMF.cjs.map +1 -0
  44. package/dist/{chunk-2HZRBATX.cjs → chunk-FSKONGCX.cjs} +2 -2
  45. package/dist/chunk-FSKONGCX.cjs.map +1 -0
  46. package/dist/{chunk-P2HKJ7P5.js → chunk-GAAHG2Z4.js} +3 -3
  47. package/dist/{chunk-P2HKJ7P5.js.map → chunk-GAAHG2Z4.js.map} +1 -1
  48. package/dist/{chunk-PI73NNOK.cjs → chunk-GUUB5EAG.cjs} +2 -2
  49. package/dist/chunk-GUUB5EAG.cjs.map +1 -0
  50. package/dist/{chunk-PU2Z5VWF.js → chunk-IPTZM3VE.js} +183 -187
  51. package/dist/chunk-IPTZM3VE.js.map +1 -0
  52. package/dist/{chunk-4AO3A3JM.js → chunk-NFKRKH3P.js} +10 -2
  53. package/dist/chunk-NFKRKH3P.js.map +1 -0
  54. package/dist/{chunk-L46ROHUS.cjs → chunk-NI5D3F7H.cjs} +13 -5
  55. package/dist/chunk-NI5D3F7H.cjs.map +1 -0
  56. package/dist/{chunk-UERVXYVK.cjs → chunk-NWUEVLQT.cjs} +13 -13
  57. package/dist/{chunk-UERVXYVK.cjs.map → chunk-NWUEVLQT.cjs.map} +1 -1
  58. package/dist/{chunk-KPA4AN4R.js → chunk-OHC6UHFY.js} +86 -12
  59. package/dist/chunk-OHC6UHFY.js.map +1 -0
  60. package/dist/{chunk-DEVFAKCQ.cjs → chunk-PHJRNPHY.cjs} +6 -6
  61. package/dist/chunk-PHJRNPHY.cjs.map +1 -0
  62. package/dist/{chunk-VO35MNPH.js → chunk-PQ72Z6WC.js} +67 -105
  63. package/dist/chunk-PQ72Z6WC.js.map +1 -0
  64. package/dist/{chunk-KNRSROWB.cjs → chunk-PV2I2KMI.cjs} +86 -12
  65. package/dist/chunk-PV2I2KMI.cjs.map +1 -0
  66. package/dist/{chunk-V2TVSCV5.cjs → chunk-Q23GAMLE.cjs} +71 -109
  67. package/dist/chunk-Q23GAMLE.cjs.map +1 -0
  68. package/dist/{chunk-COIASRDK.cjs → chunk-RFFSZSCL.cjs} +107 -171
  69. package/dist/chunk-RFFSZSCL.cjs.map +1 -0
  70. package/dist/{chunk-AL5KX63J.js → chunk-UUDTPZX6.js} +3 -3
  71. package/dist/chunk-UUDTPZX6.js.map +1 -0
  72. package/dist/{chunk-EJN2PAOE.js → chunk-V7KZQIZ6.js} +102 -166
  73. package/dist/chunk-V7KZQIZ6.js.map +1 -0
  74. package/dist/{chunk-DYTZ6FQ7.js → chunk-WXVB364T.js} +2 -2
  75. package/dist/chunk-WXVB364T.js.map +1 -0
  76. package/dist/{chunk-WNCYAKF3.cjs → chunk-Y7AQK4R4.cjs} +93 -9
  77. package/dist/chunk-Y7AQK4R4.cjs.map +1 -0
  78. package/dist/{chunk-SPBTLUN6.js → chunk-YFAVQQTU.js} +7 -7
  79. package/dist/{chunk-SPBTLUN6.js.map → chunk-YFAVQQTU.js.map} +1 -1
  80. package/dist/cli/index.cjs +5 -5
  81. package/dist/cli/index.js +5 -5
  82. package/dist/client.cjs +4 -4
  83. package/dist/client.d.cts +2 -2
  84. package/dist/client.d.ts +2 -2
  85. package/dist/client.js +2 -2
  86. package/dist/drizzle/index.cjs +14 -14
  87. package/dist/drizzle/index.d.cts +4 -10
  88. package/dist/drizzle/index.d.ts +4 -10
  89. package/dist/drizzle/index.js +5 -5
  90. package/dist/fields/index.cjs +22 -22
  91. package/dist/fields/index.d.cts +1 -1
  92. package/dist/fields/index.d.ts +1 -1
  93. package/dist/fields/index.js +2 -2
  94. package/dist/graphql/index.cjs +1 -1
  95. package/dist/graphql/index.d.cts +3 -3
  96. package/dist/graphql/index.d.ts +3 -3
  97. package/dist/graphql/index.js +1 -1
  98. package/dist/{index-CJXPB_ot.d.ts → index-BKta3cBH.d.cts} +3 -2
  99. package/dist/{index-CaTNnLGd.d.cts → index-ClOqnkTO.d.ts} +3 -2
  100. package/dist/index.cjs +119 -119
  101. package/dist/index.d.cts +10 -15
  102. package/dist/index.d.ts +10 -15
  103. package/dist/index.js +19 -19
  104. package/dist/integration.cjs +3 -3
  105. package/dist/integration.js +2 -2
  106. package/dist/media-7WDX4BDJ.js +4 -0
  107. package/dist/{media-GPPTZ43E.js.map → media-7WDX4BDJ.js.map} +1 -1
  108. package/dist/{media-XNTUFJZR.cjs → media-TUSLVRQ6.cjs} +3 -3
  109. package/dist/{media-XNTUFJZR.cjs.map → media-TUSLVRQ6.cjs.map} +1 -1
  110. package/dist/{mongo-auth-adapter-ISOM7FSS.cjs → mongo-auth-adapter-GT4S7SCU.cjs} +3 -3
  111. package/dist/{mongo-auth-adapter-ISOM7FSS.cjs.map → mongo-auth-adapter-GT4S7SCU.cjs.map} +1 -1
  112. package/dist/mongo-auth-adapter-M7VV4LNB.js +4 -0
  113. package/dist/{mongo-auth-adapter-MO6STCV3.js.map → mongo-auth-adapter-M7VV4LNB.js.map} +1 -1
  114. package/dist/mongodb/index.cjs +5 -5
  115. package/dist/mongodb/index.d.cts +4 -9
  116. package/dist/mongodb/index.d.ts +4 -9
  117. package/dist/mongodb/index.js +3 -3
  118. package/dist/postgres-auth-adapter-AFAPISH7.js +5 -0
  119. package/dist/{postgres-auth-adapter-DWDR7P5G.js.map → postgres-auth-adapter-AFAPISH7.js.map} +1 -1
  120. package/dist/postgres-auth-adapter-SFDTLONT.cjs +14 -0
  121. package/dist/{postgres-auth-adapter-WRWSJD4E.cjs.map → postgres-auth-adapter-SFDTLONT.cjs.map} +1 -1
  122. package/dist/{redis-adapter-KJ3YOOT6.cjs → redis-adapter-UQX4EE3B.cjs} +3 -3
  123. package/dist/{redis-adapter-KJ3YOOT6.cjs.map → redis-adapter-UQX4EE3B.cjs.map} +1 -1
  124. package/dist/redis-adapter-XALOGWY3.js +4 -0
  125. package/dist/{redis-adapter-HGTPWIGV.js.map → redis-adapter-XALOGWY3.js.map} +1 -1
  126. package/dist/rest/index.cjs +10 -10
  127. package/dist/rest/index.d.cts +4 -4
  128. package/dist/rest/index.d.ts +4 -4
  129. package/dist/rest/index.js +8 -8
  130. package/dist/{schema-TTFE4467.cjs → schema-6QL3USNB.cjs} +15 -15
  131. package/dist/{schema-TTFE4467.cjs.map → schema-6QL3USNB.cjs.map} +1 -1
  132. package/dist/{schema-6I5OFR4Z.js → schema-FNNWEAAW.js} +4 -4
  133. package/dist/{schema-6I5OFR4Z.js.map → schema-FNNWEAAW.js.map} +1 -1
  134. package/dist/{sqlite-adapter-CSIZE5SX.cjs → sqlite-adapter-AQB5TCGV.cjs} +3 -3
  135. package/dist/{sqlite-adapter-CSIZE5SX.cjs.map → sqlite-adapter-AQB5TCGV.cjs.map} +1 -1
  136. package/dist/sqlite-adapter-N5H6IM2X.js +4 -0
  137. package/dist/{sqlite-adapter-6GEUSVXQ.js.map → sqlite-adapter-N5H6IM2X.js.map} +1 -1
  138. package/dist/templates/index.cjs +49 -49
  139. package/dist/templates/index.d.cts +2 -2
  140. package/dist/templates/index.d.ts +2 -2
  141. package/dist/templates/index.js +2 -2
  142. package/dist/trpc/index.cjs +11 -11
  143. package/dist/trpc/index.d.cts +3 -3
  144. package/dist/trpc/index.d.ts +3 -3
  145. package/dist/trpc/index.js +2 -2
  146. package/dist/{types-Z6FBiqa2.d.cts → types-DeSApf9T.d.cts} +1 -0
  147. package/dist/{types-Z6FBiqa2.d.ts → types-DeSApf9T.d.ts} +1 -0
  148. package/dist/{types-CyCQ6SAI.d.ts → types-Dgzlftb7.d.ts} +6 -28
  149. package/dist/{types-DJxD9394.d.cts → types-Ds0tCA3L.d.cts} +6 -28
  150. package/dist/ws/index.cjs +6 -6
  151. package/dist/ws/index.js +2 -2
  152. package/package.json +1 -1
  153. package/dist/bootstrap-5NLASFOG.cjs +0 -32
  154. package/dist/bootstrap-T5BK77LD.js +0 -7
  155. package/dist/chunk-22M4O4ZJ.js.map +0 -1
  156. package/dist/chunk-2HZRBATX.cjs.map +0 -1
  157. package/dist/chunk-3TPQ2BU6.js.map +0 -1
  158. package/dist/chunk-4AO3A3JM.js.map +0 -1
  159. package/dist/chunk-5EPFQUQD.js.map +0 -1
  160. package/dist/chunk-AL5KX63J.js.map +0 -1
  161. package/dist/chunk-C36TMDTY.cjs.map +0 -1
  162. package/dist/chunk-COIASRDK.cjs.map +0 -1
  163. package/dist/chunk-DEVFAKCQ.cjs.map +0 -1
  164. package/dist/chunk-DVD5P72E.cjs.map +0 -1
  165. package/dist/chunk-DYTZ6FQ7.js.map +0 -1
  166. package/dist/chunk-EJN2PAOE.js.map +0 -1
  167. package/dist/chunk-FAXU7BMP.js.map +0 -1
  168. package/dist/chunk-FOPGUM27.js.map +0 -1
  169. package/dist/chunk-JOPVMWTM.cjs.map +0 -1
  170. package/dist/chunk-KNRSROWB.cjs.map +0 -1
  171. package/dist/chunk-KPA4AN4R.js.map +0 -1
  172. package/dist/chunk-L46ROHUS.cjs.map +0 -1
  173. package/dist/chunk-PI73NNOK.cjs.map +0 -1
  174. package/dist/chunk-PU2Z5VWF.js.map +0 -1
  175. package/dist/chunk-ROJHKAQ4.cjs.map +0 -1
  176. package/dist/chunk-RSF3UU7H.cjs.map +0 -1
  177. package/dist/chunk-TXSZFA4G.js.map +0 -1
  178. package/dist/chunk-V2TVSCV5.cjs.map +0 -1
  179. package/dist/chunk-VO35MNPH.js.map +0 -1
  180. package/dist/chunk-WNCYAKF3.cjs.map +0 -1
  181. package/dist/media-GPPTZ43E.js +0 -4
  182. package/dist/mongo-auth-adapter-MO6STCV3.js +0 -4
  183. package/dist/postgres-auth-adapter-DWDR7P5G.js +0 -5
  184. package/dist/postgres-auth-adapter-WRWSJD4E.cjs +0 -14
  185. package/dist/redis-adapter-HGTPWIGV.js +0 -4
  186. package/dist/sqlite-adapter-6GEUSVXQ.js +0 -4
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/templates/minimal.ts","../src/templates/starter.ts","../src/templates/blog.ts","../src/templates/ecommerce.ts","../src/templates/kitchen-sink.ts","../src/templates/media.ts","../src/templates/menu.ts","../src/templates/posts.ts","../src/templates/blocks.ts","../src/templates/pages.ts","../src/templates/categories.ts","../src/templates/products.ts","../src/templates/customers.ts","../src/templates/orders.ts","../src/templates/coupons.ts","../src/templates/forms.ts","../src/templates/form-entries.ts","../src/templates/settings/site.ts","../src/templates/settings/seo.ts","../src/templates/settings/social.ts","../src/templates/settings/email.ts","../src/templates/settings/access.ts","../src/templates/settings/store.ts","../src/templates/settings/payments.ts","../src/templates/settings/system.ts","../src/templates/settings/header.ts","../src/templates/settings/footer.ts","../src/templates/settings/index.ts","../src/templates/index.ts"],"names":["storageSettingsGlobal","authCollections"],"mappings":";;;;;;AAGO,IAAM,qBAA0C;;;ACAhD,IAAM,qBAA0C;;;ACAhD,IAAM,kBAAuC;AAE7C,IAAM,cAA8B;;;ACFpC,IAAM,uBAA4C;AAElD,IAAM,mBAAmC;;;ACFzC,IAAM,yBAA2D;;;ACGjE,IAAM,eAAA,GAAoC;AAAA,EAC/C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,eAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,gBAAgB,CAAC,cAAA,EAAgB,OAAA,EAAS,MAAA,EAAQ,YAAY,WAAW,CAAA;AAAA,IACzE,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM,IAAA;AAAA,IACd,QAAQ,MAAM,IAAA;AAAA,IACd,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,UAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,QACjC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,QACjC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,QACjC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,QACvC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,QACrC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAAQ,OACnC;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,KAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,KAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,aAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA,OACf;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,GAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,GAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,GAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,GAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,YAAA,EAAc,OAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,QACjC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,QAC/B,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,QAC3C,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAAQ,OACnC;AAAA,MACA,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,YAAA,EAAc,QAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA;AAAW;AACzC,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF;AAEJ;AAGO,IAAM,gBAAA,GAAmB,CAAC,eAAe;;;ACxOzC,IAAM,cAAA,GAAmC;AAAA,EAC9C,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,MAAA;AAAA,EACP,aAAA,EAAe,WAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,OAAA,EAAS,eAAe;AAAA,GAC3C;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,QAAQ,KAAA,EAAO,OAAA,EAAS,UAAU,IAAA,EAAK;AAAA,IAC9D;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,QACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,QACrC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,WAAA;AAAY,OAC3C;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,KAAA,EAAO,WAAA;AAAA,UACP,IAAA,EAAM,OAAA;AAAA,UACN,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,WAAA;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,KAAA,EAAO,WAAA;AAAA,cACP,OAAA,EAAS;AAAA,gBACP,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,gBACvC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA;AAAW;AACzC,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,iBAAA;AAAA,cACN,IAAA,EAAM,cAAA;AAAA,cACN,KAAA,EAAO,iBAAA;AAAA,cACP,UAAA,EAAY,CAAC,OAAA,EAAS,OAAO,CAAA;AAAA,cAC7B,KAAA,EAAO;AAAA,gBACL,SAAA,EAAW,EAAE,KAAA,EAAO,WAAA,EAAa,QAAQ,UAAA;AAAW;AACtD,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,cAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO,cAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,SAAA,EAAW,EAAE,KAAA,EAAO,WAAA,EAAa,QAAQ,UAAA;AAAW;AACtD;AACF;AACF;AACF;AACF;AACF;AAEJ;AAEO,IAAM,eAAA,GAAoD;AAAA,EAC/D,IAAA,EAAM;AACR;;;ACzEO,IAAM,eAAA,GAAoC;AAAA,EAC/C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,OAAA;AAAA,EACb,aAAA,EAAe,MAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,gBAAgB,CAAC,OAAA,EAAS,MAAA,EAAQ,eAAA,EAAiB,aAAa,WAAW,CAAA;AAAA,IAC3E,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,OAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,QAAA,EAAU,IAAA;AAAA,cACV,KAAA,EAAO,OAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,WAAA,EACE;AAAA;AACJ,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,SAAA;AAAA,cACN,IAAA,EAAM,UAAA;AAAA,cACN,KAAA,EAAO;AAAA;AACT;AACF,SACF;AAAA,QAEA;AAAA,UACE,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,UAAA;AAAA,cACN,IAAA,EAAM,cAAA;AAAA,cACN,KAAA,EAAO,UAAA;AAAA,cACP,UAAA,EAAY,YAAA;AAAA,cACZ,KAAA,EAAO;AAAA,gBACL,WAAA,EACE;AAAA;AACJ,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,cAAA;AAAA,cACN,IAAA,EAAM,OAAA;AAAA,cACN,KAAA,EAAO,eAAA;AAAA,cACP,MAAA,EAAQ;AAAA,gBACN;AAAA,kBACE,IAAA,EAAM,MAAA;AAAA,kBACN,IAAA,EAAM,cAAA;AAAA,kBACN,UAAA,EAAY,OAAA;AAAA,kBACZ,KAAA,EAAO;AAAA;AACT,eACF;AAAA,cACA,KAAA,EAAO,EAAE,WAAA,EAAa,mCAAA;AAAoC;AAC5D;AACF,SACF;AAAA,QACA;AAAA,UACE,KAAA,EAAO,KAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,WAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO,YAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,YAAA,EAAc,OAAA;AAAA,gBACd,WAAA,EACE;AAAA;AACJ,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,iBAAA;AAAA,cACN,IAAA,EAAM,UAAA;AAAA,cACN,KAAA,EAAO,kBAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,YAAA,EAAc,SAAA;AAAA,gBACd,WAAA,EACE;AAAA;AACJ,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,SAAA;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,KAAA,EAAO,UAAA;AAAA,cACP,UAAA,EAAY,OAAA;AAAA,cACZ,KAAA,EAAO;AAAA,gBACL,WAAA,EACE;AAAA;AACJ;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,2CAAA;AAAA,QACb,QAAA,EAAU,SAAA;AAAA,QACV,YAAA,EAAc;AAAA;AAChB,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,4CAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,UAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,2CAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,iDAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,gBAAA,GAAqD;AAAA,EAChE,KAAA,EAAO;AACT;;;AChKA,SAAS,kBAAkB,KAAA,EAAyD;AAClF,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,QAAQ,CAAC,GAAG,KAAA,CAAM,MAAA,EAAQ,GAAG,aAAa;AAAA,GAC5C;AACF;AAEO,IAAM,YAAA,GAAwB;AAAA,EACnC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,cAAA,EAAe;AAAA,EACpD,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,wBAAA;AACtC,CAAA;AAEO,IAAM,YAAA,GAAsB;AAAA,EACjC,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,gBAAA;AAAA,EACP,MAAA,EAAQ;AACV,CAAA;AAMA,IAAM,cAAA,GAAwB;AAAA,EAC5B,IAAA,EAAM,iBAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,iBAAA,EAAkB;AAAA,EACzE,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA;AAAU;AAEtD,CAAA;AAEA,IAAM,WAAA,GAAqB;AAAA,EACzB,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,sBAAA,EAAuB;AAAA,EAC9E,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,OAAO,SAAA;AAAU;AAE1D,CAAA;AAEA,IAAM,YAAA,GAAsB;AAAA,EAC1B,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,cAAA,EAAe;AAAA,EACtE,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,OAAA,EAAS,YAAY,OAAA;AAAQ;AAEzE,CAAA;AAEA,IAAM,eAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,kBAAA;AAAA,EACN,KAAA,EAAO,WAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,6BAAA,EAA8B;AAAA,EACrF,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,OAAO,SAAA;AAAU;AAE1D,CAAA;AAEA,IAAM,aAAA,GAAuB;AAAA,EAC3B,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,uBAAA,EAAwB;AAAA,EAC/E,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO,EAAE,MAAA,EAAQ,IAAA,EAAK;AAAA,MACtB,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,QAC7C,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,KAAA;AAAM;AAC5C;AACF;AAEJ,CAAA;AAEA,IAAM,YAAA,GAAsB;AAAA,EAC1B,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,uBAAA,EAAwB;AAAA,EAC/E,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,IAChD,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,UAAU,KAAA,EAAO,YAAA,EAAc,YAAY,OAAA,EAAQ;AAAA,IACzE,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA;AAAU;AAEtD,CAAA;AAEA,IAAM,WAAA,GAAqB;AAAA,EACzB,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,MAAA;AAAA,EACP,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,2BAAA,EAA4B;AAAA,EACnF,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA;AAAY;AACnD;AACF;AAEJ,CAAA;AAEO,IAAM,aAAA,GAAyB;AAAA,EACpC,cAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,aAAA,GAAuB;AAAA,EAClC,IAAA,EAAM,UAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,wBAAA;AAAA,EACP,MAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAO,EAAE,UAAA,EAAY,UAAA;AACvB,CAAA;AAEO,IAAM,aAAA,GAAyB,CAAC,aAAa,CAAA;AAM7C,IAAM,YAAY,iBAAA,CAAkB;AAAA,EACzC,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,yDAAA,EAA0D;AAAA,EAC9G,KAAA,EAAO,cAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,uCAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MAAe,IAAA,EAAM,OAAA;AAAA,MAAS,KAAA,EAAO,cAAA;AAAA,MAC3C,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,EAAE,KAAA,EAAO,eAAA,EAAiB,QAAQ,IAAA;AAAK,OACpD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,eAAA,EAAgB;AAAA,YACxD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,YAClE,EAAE,MAAM,iBAAA,EAAmB,IAAA,EAAM,UAAU,KAAA,EAAO,wBAAA,EAA0B,YAAY,OAAA,EAAQ;AAAA,YAChG;AAAA;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MAAe,IAAA,EAAM,OAAA;AAAA,MAAS,KAAA,EAAO,cAAA;AAAA,MAC3C,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,EAAE,KAAA,EAAO,eAAA,EAAiB,QAAQ,KAAA;AAAM,OACrD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,QAClD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,OAAO,YAAA,EAAa;AAAA,QAC5D,EAAE,MAAM,iBAAA,EAAmB,IAAA,EAAM,UAAU,KAAA,EAAO,kBAAA,EAAoB,YAAY,OAAA,EAAQ;AAAA,QAC1F;AAAA;AACF;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,YAAY,iBAAA,CAAkB;AAAA,EACzC,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,8DAAA,EAA+D;AAAA,EACnH,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,yBAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MAAc,IAAA,EAAM,OAAA;AAAA,MAAS,KAAA,EAAO,aAAA;AAAA,MAC1C,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,EAAE,KAAA,EAAO,aAAA,EAAe,QAAQ,IAAA;AAAK,OAClD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,KAAA,EAAO,YAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,YACnD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,YACnE,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,YAAA,EAAc,YAAY,OAAA,EAAQ;AAAA,YAC1E,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,2BAAA,EAA4B;AAAA,YACjE,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,YAC3D,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,sBAAA;AAAuB;AAC9D;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MAAc,IAAA,EAAM,OAAA;AAAA,MAAS,KAAA,EAAO,aAAA;AAAA,MAC1C,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,EAAE,KAAA,EAAO,aAAA,EAAe,QAAQ,KAAA;AAAM,OACnD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,QAC9C,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,aAAA,EAAc;AAAA,QAC9D,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,OAAA,EAAS,YAAY,OAAA,EAAQ;AAAA,QACrE,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,sBAAA,EAAuB;AAAA,QAC5D,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,QAC3D,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,sBAAA;AAAuB;AAC9D;AACF;AAEJ,CAAC,CAAA;AAEwB,iBAAA,CAAkB;AAAA,EACzC,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,mBAAA,EAAoB;AAAA,EAC3E,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,OAAO,SAAA;AAAU;AAE1D,CAAC;AAEyB,iBAAA,CAAkB;AAAA,EAC1C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,wBAAA,EAA0B,aAAa,wBAAA,EAAyB;AAAA,EAChF,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,OAAA,EAAS,YAAY,OAAA,EAAQ;AAAA,IACrE,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,IAClD,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA,EAAW;AAAA,IAC/C;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,YAAA,EAAc,UAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,QACvC,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,MAAA,EAAO;AAAA,QACzC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,KAAA,EAAM;AAAA,QACrC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,KAAA,EAAM;AAAA,QACpC,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,KAAA;AAAM;AACxC,KACF;AAAA,IACA,EAAE,MAAM,gBAAA,EAAkB,IAAA,EAAM,YAAY,KAAA,EAAO,wBAAA,EAA0B,cAAc,KAAA;AAAM;AAErG,CAAC;AAEM,IAAM,oBAAoB,iBAAA,CAAkB;AAAA,EACjD,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,oCAAA,EAAqC;AAAA,EACzF,KAAA,EAAO,8BAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,IAC9C,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,aAAA,EAAc;AAAA,IAC9D;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,mBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,kBAAA,EAAmB;AAAA,QACzD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,wBAAA,EAAyB;AAAA,QACzE,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,QACjD,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,OAAA,EAAS,YAAY,OAAA,EAAQ;AAAA,QACrE,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA;AAAW;AACrD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,OAAA,EAAS,YAAY,OAAA;AAAQ;AACvE,KACF;AAAA,IACA;AAAA;AAEJ,CAAC,CAAA;AAEM,IAAM,mBAAmB,iBAAA,CAAkB;AAAA,EAChD,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,mDAAA,EAAoD;AAAA,EACpG,KAAA,EAAO,cAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,QAC9C,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,aAAA,EAAc;AAAA,QAC9D,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,QACjD,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,eAAA,EAAiB,YAAY,OAAA,EAAQ;AAAA,QAC7E,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,sBAAA;AAAuB;AACjE;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,iBAAiB,iBAAA,CAAkB;AAAA,EAC9C,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,mCAAA,EAAoC;AAAA,EACxF,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA,EAAW;AAAA,IACpD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,OAAO,YAAA,EAAa;AAAA,IAC5D,EAAE,MAAM,iBAAA,EAAmB,IAAA,EAAM,UAAU,KAAA,EAAO,kBAAA,EAAoB,YAAY,OAAA,EAAQ;AAAA,IAC1F;AAAA;AAEJ,CAAC,CAAA;AAEM,IAAM,oBAAoB,iBAAA,CAAkB;AAAA,EACjD,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,sCAAA,EAAuC;AAAA,EACvF,KAAA,EAAO,cAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,UAAA,EAAY,OAAO,OAAA,EAAQ;AAAA,QAClD;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,YAAA,EAAc,GAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,GAAA,EAAI;AAAA,YAC/B,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,GAAA,EAAI;AAAA,YAC/B,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,GAAA,EAAI;AAAA,YAC/B,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,GAAA,EAAI;AAAA,YAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,GAAA;AAAI;AAChC,SACF;AAAA,QACA,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA,EAAc;AAAA,QACzD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA,EAAc;AAAA,QACzD,EAAE,MAAM,QAAA,EAAU,IAAA,EAAM,UAAU,KAAA,EAAO,QAAA,EAAU,YAAY,OAAA,EAAQ;AAAA,QACvE,EAAE,MAAM,aAAA,EAAe,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,EAAgB,YAAY,OAAA;AAAQ;AACpF;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,WAAW,iBAAA,CAAkB;AAAA,EACxC,IAAA,EAAM,KAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,4BAAA,EAA8B,aAAa,+CAAA,EAAgD;AAAA,EAC3G,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,sCAAA,EAAuC;AAAA,QAC3E,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA,EAAW;AAAA,QACpD,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,OAAO,QAAA;AAAS;AACtD,KACF;AAAA,IACA,EAAE,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,MAAA,EAAQ,OAAO,6CAAA,EAA8C;AAAA,IAC5F,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,4BAAA;AAA6B;AAE9E,CAAC,CAAA;AAEM,IAAM,aAAa,iBAAA,CAAkB;AAAA,EAC1C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,iDAAA,EAAkD;AAAA,EAClG,KAAA,EAAO,iBAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,OAAO,4BAAA,EAA6B;AAAA,QACpE,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,yBAAA,EAA0B;AAAA,QAChE,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,OAAO,gCAAA,EAAiC;AAAA,QACxE,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,qBAAA,EAAsB;AAAA,QAC5D,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,qBAAA;AAAsB;AACxE;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,iBAAiB,iBAAA,CAAkB;AAAA,EAC9C,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,+CAAA,EAAgD;AAAA,EACpG,KAAA,EAAO,uBAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,cAAA,EAAe;AAAA,QACpD,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,UAAU,KAAA,EAAO,YAAA,EAAc,YAAY,OAAA,EAAQ;AAAA,QACzE,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA;AAAc;AACpD;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,eAAe,iBAAA,CAAkB;AAAA,EAC5C,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,+CAAA,EAAgD;AAAA,EAChG,KAAA,EAAO,eAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE,EAAE,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,MAAA,EAAQ,OAAO,kCAAA,EAAmC;AAAA,IAClF;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,MAAA,EAAQ,OAAO,gCAAA,EAAiC;AAAA,QAClF,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,QACjD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,QACnE,EAAE,MAAM,UAAA,EAAY,IAAA,EAAM,QAAQ,KAAA,EAAO,wBAAA,EAA0B,cAAc,GAAA,EAAI;AAAA,QACrF,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,QACxD,EAAE,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,MAAA,EAAQ,OAAO,2BAAA,EAA4B;AAAA,QAC1E,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,oBAAA,EAAqB;AAAA,QAC9D,YAAA;AAAA,QACA,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,sCAAA,EAAuC;AAAA,QAChF,EAAE,MAAM,YAAA,EAAc,IAAA,EAAM,YAAY,KAAA,EAAO,2BAAA,EAA6B,cAAc,KAAA;AAAM;AAClG;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,YAAY,iBAAA,CAAkB;AAAA,EACzC,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,gDAAA,EAAiD;AAAA,EACjG,KAAA,EAAO,eAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA,EAAc;AAAA,QACnD,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,QACvD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,kDAAA,EAAmD;AAAA,QAC9F,EAAE,MAAM,QAAA,EAAU,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,EAAgB,YAAY,OAAA,EAAQ;AAAA,QAC7E,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,UAAA,EAAY,OAAO,WAAA,EAAY;AAAA,QACpD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA,EAAc;AAAA,QACzD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,MAAA,EAAQ,OAAO,cAAA,EAAe;AAAA,QAC3D,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,QACvD,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA;AAAc;AAC3D;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,kBAAkB,iBAAA,CAAkB;AAAA,EAC/C,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,iBAAA,EAAmB,aAAa,+CAAA,EAAgD;AAAA,EAChG,KAAA,EAAO,mBAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE;AAAA,MACE,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,wBAAA;AAAA,MACP,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,EAAE,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,MAAA,EAAQ,OAAO,uCAAA,EAAwC;AAAA,IACvF,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,mBAAA,EAAqB,cAAc,CAAA,EAAE;AAAA,IAC7E;AAAA;AAEJ,CAAC,CAAA;AAEM,IAAM,oBAAoB,iBAAA,CAAkB;AAAA,EACjD,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,4BAAA,EAA8B,aAAa,sDAAA,EAAuD;AAAA,EAClH,KAAA,EAAO,0BAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,uBAAA,EAAwB;AAAA,QACnE,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,UAAU,KAAA,EAAO,mBAAA,EAAqB,YAAY,OAAA,EAAQ;AAAA,QAChF,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,QACnD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,aAAA;AAAc;AAChE;AACF;AAEJ,CAAC,CAAA;AAEM,IAAM,iBAAiB,iBAAA,CAAkB;AAAA,EAC9C,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,4BAAA,EAA8B,aAAa,+CAAA,EAAgD;AAAA,EAC3G,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,IACnD,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,OAAO,eAAA,EAAgB;AAAA,IAC7D;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO,MAAA;AAAA,MACP,QAAA,EAAU;AAAA;AACZ;AAEJ,CAAC,CAAA;AAEM,IAAM,qBAAqB,iBAAA,CAAkB;AAAA,EAClD,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,EAAE,KAAA,EAAO,qBAAA,EAAuB,aAAa,8CAAA,EAA+C;AAAA,EACnG,KAAA,EAAO,0BAAA;AAAA,EACP,MAAA,EAAQ;AAAA,IACN,EAAE,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,OAAO,iBAAA,EAAkB;AAAA,IAC/D,EAAE,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,OAAO,kBAAA,EAAmB;AAAA,IACvE,EAAE,MAAM,YAAA,EAAc,IAAA,EAAM,UAAU,KAAA,EAAO,mCAAA,EAAqC,YAAY,OAAA,EAAQ;AAAA,IACtG,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,yCAAA,EAA0C;AAAA,IACnF,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,8CAAA,EAA+C;AAAA,IAC1F,EAAE,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,MAAA,EAAQ,OAAO,qCAAA,EAAiC;AAAA,IAC/E,EAAE,MAAM,YAAA,EAAc,IAAA,EAAM,YAAY,KAAA,EAAO,kCAAA,EAAoC,cAAc,IAAA,EAAK;AAAA,IACtG,EAAE,MAAM,UAAA,EAAY,IAAA,EAAM,YAAY,KAAA,EAAO,wBAAA,EAA0B,cAAc,KAAA;AAAM;AAE/F,CAAC,CAAA;AAMM,IAAM,kBAAA,GAAqB;AAAA,EAChC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;;;ACjjBO,IAAM,cAAA,GAAmC;AAAA,EAC9C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,OAAA;AAAA,EACb,aAAA,EAAe,MAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,OAAA,EAAS,MAAA,EAAQ,iBAAiB,WAAW,CAAA;AAAA,IAC9D,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,KAAA,EAAO,SAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,OAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,QAAA,EAAU,IAAA;AAAA,cACV,KAAA,EAAO,OAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,WAAA,EACE;AAAA;AACJ,aACF;AAAA,YACA;AAAA,cACE,IAAA,EAAM,SAAA;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,KAAA,EAAO,SAAA;AAAA,cACP,MAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QAEA;AAAA,UACE,KAAA,EAAO,MAAA;AAAA,UACP,QAAQ;AAAC,SACX;AAAA,QACA;AAAA,UACE,KAAA,EAAO,KAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,WAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO,YAAA;AAAA,cACP,KAAA,EAAO,EAAE,YAAA,EAAc,OAAA;AAAQ,aACjC;AAAA,YACA;AAAA,cACE,IAAA,EAAM,iBAAA;AAAA,cACN,IAAA,EAAM,UAAA;AAAA,cACN,KAAA,EAAO,kBAAA;AAAA,cACP,KAAA,EAAO,EAAE,YAAA,EAAc,SAAA;AAAU,aACnC;AAAA,YACA;AAAA,cACE,IAAA,EAAM,SAAA;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,KAAA,EAAO,UAAA;AAAA,cACP,UAAA,EAAY;AAAA;AACd;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,OAAA;AAAQ,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU;AAC/B,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,eAAA,GAAoD;AAAA,EAC/D,KAAA,EAAO;AACT;;;AC3FO,IAAM,oBAAA,GAAyC;AAAA,EACpD,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,YAAA;AAAA,EACP,WAAA,EAAa,YAAA;AAAA,EACb,aAAA,EAAe,UAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/B,WAAA,EAAa,iBAAA;AAAA,IACb,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,IAC5D;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,MAAA;AAAO,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,iBAAA;AAAA,MACP,UAAA,EAAY,YAAA;AAAA,MACZ,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,YAAA,EAAc,CAAA;AAAA,MACd,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU;AAC/B,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,qBAAA,GAA0D;AAAA,EACrE,UAAA,EAAY;AACd;AAEO,IAAM,2BAAA,GAAgD;AAAA,EAC3D,IAAA,EAAM,oBAAA;AAAA,EACN,KAAA,EAAO,oBAAA;AAAA,EACP,WAAA,EAAa,oBAAA;AAAA,EACb,aAAA,EAAe,kBAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/B,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,IAC5D;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,MAAA;AAAO,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,IAClD;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,iBAAA;AAAA,MACP,UAAA,EAAY,oBAAA;AAAA,MACZ,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU;AAC/B,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,4BAAA,GAAiE;AAAA,EAC5E,oBAAA,EAAsB;AACxB;;;ACpGO,IAAM,kBAAA,GAAuC;AAAA,EAClD,IAAA,EAAM,UAAA;AAAA,EACN,KAAA,EAAO,UAAA;AAAA,EACP,WAAA,EAAa,UAAA;AAAA,EACb,aAAA,EAAe,SAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,gBAAgB,CAAC,OAAA,EAAS,QAAQ,OAAA,EAAS,eAAA,EAAiB,aAAa,WAAW,CAAA;AAAA,IACpF,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,IAC9D;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,OAAA;AAAQ,KACtD;AAAA,IACA,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,OAAO,aAAA,EAAc;AAAA,IAC9D,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,QAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,IAChE;AAAA,MACE,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,KAAA,EAAO,EAAE,WAAA,EAAa,iCAAA;AAAkC,KAC1D;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO,EAAE,WAAA,EAAa,wBAAA;AAAyB,KACjD;AAAA,IACA,EAAE,MAAM,KAAA,EAAO,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IAC1D,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,IAClD;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,KAAA,EAAM;AAAA,QAC1C,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,UAAA;AAAW;AACjD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,YAAA,EAAc;AAAA;AAChB,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,mBAAA,GAAwD;AAAA,EACnE,QAAA,EAAU;AACZ;;;AClEO,IAAM,mBAAA,GAAwC;AAAA,EACnD,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,WAAA;AAAA,EACP,WAAA,EAAa,WAAA;AAAA,EACb,aAAA,EAAe,UAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,OAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,MACd,OAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,SAAS,QAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,IAC/D,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,IACvD,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,IACrD,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,IAC9C;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,MAAA,EAAO;AAAA,QAC5C,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,gBAAA,EAAiB;AAAA,QACvD,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,gBAAA,EAAiB;AAAA,QACvD,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,MAAA,EAAO;AAAA,QAC5C,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,OAAA,EAAQ;AAAA,QAC9C,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,MAAA,EAAQ,OAAO,aAAA,EAAc;AAAA,QACzD,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA;AAAU;AACpD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,OAAA;AAAQ;AACtD,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,oBAAA,GAAyD;AAAA,EACpE,SAAA,EAAW;AACb;;;ACpDO,IAAM,gBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,WAAA,EAAa,QAAA;AAAA,EACb,aAAA,EAAe,OAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,aAAA;AAAA,IACZ,cAAA,EAAgB;AAAA,MACd,aAAA;AAAA,MACA,UAAA;AAAA,MACA,eAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,UAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,QACrC,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,QAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA;AAAW,OACzC;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,OAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,QAClD,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,OAAO,UAAA,EAAW;AAAA,QACtD,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,QAAA,EAAU,OAAO,YAAA,EAAa;AAAA,QACzD,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,OAAO,OAAA;AAAQ;AAClD,KACF;AAAA,IACA,EAAE,MAAM,UAAA,EAAY,IAAA,EAAM,UAAU,QAAA,EAAU,IAAA,EAAM,OAAO,UAAA,EAAW;AAAA,IACtE,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,OAAO,KAAA,EAAM;AAAA,IAC5C,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,OAAO,UAAA,EAAW;AAAA,IACtD,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,OAAO,UAAA,EAAW;AAAA,IACtD,EAAE,MAAM,OAAA,EAAS,IAAA,EAAM,UAAU,QAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,IAChE,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,UAAA,EAAY,OAAO,OAAA,EAAQ;AAAA,IAClD;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,aAAA;AAAc;AAC5D,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,iBAAA,GAAsD;AAAA,EACjE,MAAA,EAAQ;AACV;;;AC7EO,IAAM,iBAAA,GAAsC;AAAA,EACjD,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,WAAA,EAAa,SAAA;AAAA,EACb,aAAA,EAAe,QAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,gBAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,UAAU,WAAW,CAAA;AAAA,IAC/D,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,IAC5D;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,QAC3C,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,OAAA,EAAQ;AAAA,QACxC,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,cAAA;AAAe;AAClD,KACF;AAAA,IACA,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,OAAO,OAAA,EAAQ;AAAA,IAChD,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,QAAA,EAAU,OAAO,kBAAA,EAAmB;AAAA,IACjE,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,QAAA,EAAU,OAAO,cAAA,EAAe;AAAA,IAC7D,EAAE,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,QAAA,EAAU,OAAO,aAAA,EAAc;AAAA,IAC3D;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,YAAA,EAAc,CAAA;AAAA,MACd,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,IACrD,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,MAAA,EAAQ,OAAO,YAAA,EAAa;AAAA,IACvD,EAAE,MAAM,QAAA,EAAU,IAAA,EAAM,YAAY,YAAA,EAAc,IAAA,EAAM,OAAO,QAAA;AAAS,GAC1E;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,kBAAA,GAAuD;AAAA,EAClE,OAAA,EAAS;AACX;;;AC9CO,IAAM,eAAA,GAAoC;AAAA,EAC/C,IAAA,EAAM,OAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,OAAA;AAAA,EACb,aAAA,EAAe,MAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,MAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,MAAA,EAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC5C,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,QAAQ,QAAA,EAAU,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,IAC5D,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,OAAO,UAAA,EAAW;AAAA,IACxD;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,MAAA;AAAO,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,oBAAA;AAAA,MACP,YAAA,EAAc,QAAA;AAAA,MACd,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,iDAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,EAAE,QAAA,EAAU,SAAA;AAAU,KAC/B;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,aAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,YAAA;AAAA,UACP,YAAA,EAAc,MAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,MAAA,EAAO;AAAA,YACrC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,OAAA,EAAQ;AAAA,YACvC,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC5C,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,UAAA,EAAW;AAAA,YAClD,EAAE,KAAA,EAAO,mBAAA,EAAqB,KAAA,EAAO,UAAA;AAAW;AAClD,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,YAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,0BAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,UAAA,EAAY,cAAA;AAAA,MACZ,OAAA,EAAS,IAAA;AAAA,MACT,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf;AACF,GACF;AAAA,EACA,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf;AAEO,IAAM,gBAAA,GAAqD;AAAA,EAChE,KAAA,EAAO;AACT;;;AC/FO,IAAM,qBAAA,GAA0C;AAAA,EACrD,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,cAAA;AAAA,EACP,WAAA,EAAa,cAAA;AAAA,EACb,aAAA,EAAe,YAAA;AAAA,EACf,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,IAAA;AAAA,IACZ,cAAA,EAAgB,CAAC,IAAA,EAAM,MAAA,EAAQ,aAAa,WAAW,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,UAAA,EAAY,OAAA;AAAA,MACZ,QAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,SAAA;AAAA,QACV,QAAA,EAAU,IAAA;AAAA,QACV,WAAA,EAAa;AAAA;AACf;AACF,GACF;AAAA,EACA,UAAA,EAAY;AACd;AAEO,IAAM,sBAAA,GAA2D;AAAA,EACtE,cAAA,EAAgB;AAClB;;;AC7CO,IAAM,kBAAA,GAAmC;AAAA,EAC9C,IAAA,EAAM,eAAA;AAAA,EACN,KAAA,EAAO,eAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,iBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,yBAAA;AAAA,MACP,YAAA,EAAc,KAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,2BAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,kBAAA,KAAuB;AAAA,OACxD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,qBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA;AACf,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,cAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA;AACf;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,oCAAA;AAAA,MACP,YAAA,EAAc,KAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,UAAA,KAAe;AAAA,OAChD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,kBAAA;AAAA,UACP,YAAA,EAAc,IAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,YAChC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,YAChC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,YAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,YAC/B,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,IAAA,EAAK;AAAA,YACnC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,YAChC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,YAC9B,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,YAChC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,IAAA,EAAK;AAAA,YACjC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,YAChC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,YAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA;AAAK;AACjC,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,UAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,uBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,6BAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,yBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,gBAAA,KAAqB;AAAA,OACtD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,oBAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,iBAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF;AACF;AAEJ;;;AChMO,IAAM,iBAAA,GAAkC;AAAA,EAC7C,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,cAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,iBAAA;AAAA,MACP,YAAA,EAAc,QAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,QAAA,EAAS;AAAA,QAChD,EAAE,KAAA,EAAO,+BAAA,EAAiC,KAAA,EAAO,UAAA;AAAW,OAC9D;AAAA,MACA,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,qBAAA;AAAA,MACP,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,YAAA,EAAc,0BAAA;AAAA,MACd,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,iBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,4BAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,iBAAA;AAAA,MACP,YAAA,EAAc,KAAA;AAAA,MACd,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,yBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA,OAC7C;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,cAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,iBAAA;AAAA,UACP,YAAA,EAAc,SAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,YACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,YACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,YACrC,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO;AAAA,YAC/B,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,YACjC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAAQ;AACnC;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,oBAAA;AAAA,MACP,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,uBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAW,CAAC,IAAA,KAAc,KAAK,aAAA,KAAkB,IAAA,IAAQ,KAAK,OAAA,KAAY;AAAA,OAC5E;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,mBAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,mBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,kBAAA;AAAA,UACP,OAAO;AAAC,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAM,iBAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,mBAAA;AAAA,UACP,YAAA,EAAc,qBAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,YACrC,EAAE,KAAA,EAAO,0BAAA,EAA4B,KAAA,EAAO,qBAAA,EAAsB;AAAA,YAClE,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAM;AAAA,YAC7B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA;AAAS;AACrC,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,gBAAA;AAAA,UACP,YAAA,EAAc,IAAA;AAAA,UACd,OAAO;AAAC,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAM,oBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,oBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,gBAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,yBAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF;AACF;AAEJ;;;ACrLO,IAAM,oBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,iBAAA;AAAA,EACN,KAAA,EAAO,cAAA;AAAA,EAGP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GAET;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACG,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,oBAAA;AAAA,MACP,YAAA,EAAc,KAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACH;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,OAAA,KAAY;AAAA;AAC7C;AACF;AAEJ;;;ACnGO,IAAM,mBAAA,GAAoC;AAAA,EAC/C,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,gBAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,QAAA,EAAU,IAAA;AAAA,MACV,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,YAAA,EAAc,MAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,MAAA,EAAO;AAAA,QAC1C,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAW;AAAA,QACvC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,QACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,KAAA;AAAM;AACnC,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,cAAA;AAAA,UACP,YAAA,EAAc,QAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,QAAA,EAAS;AAAA,YACxC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ;AAAA,YACjC,EAAE,KAAA,EAAO,sBAAA,EAAwB,KAAA,EAAO,SAAA,EAAU;AAAA,YAClD,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,OAAA,EAAQ;AAAA,YAC9C,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,cAAA,EAAe;AAAA,YACjD,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,eAAA,EAAgB;AAAA,YACnD,EAAE,KAAA,EAAO,sBAAA,EAAwB,KAAA,EAAO,UAAA;AAAW,WACrD;AAAA,UACA,KAAA,EAAO;AAAA,YACL,WAAA,EACE;AAAA;AACJ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,EAAM,WAAA,KAChB,YAAY,WAAA,KAAgB,QAAA;AAAA,YAC9B,WAAA,EAAa;AAAA;AACf,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,YAAA,EAAc,GAAA;AAAA,UACd,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,EAAM,WAAA,KAChB,YAAY,WAAA,KAAgB;AAAA;AAChC,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,iBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,QAAA,EAAU;AAAA;AACZ;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,mBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,QAAA,EAAU;AAAA;AACZ;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,YAAA,EAAc,IAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,IAAA,EAAK;AAAA,YAC3C,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,IAAA;AAAK;AACtC;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,kBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAM,iBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,mBAAA;AAAA,UACP,QAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,YAAA,EAAc,WAAA;AAAA,UACd,KAAA,EAAO,EAAE,WAAA,EAAa,WAAA;AAAY;AACpC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA,OACf;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,KAAA,EAAO,OAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,KAAA,EAAO;AAAA;AACT,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,iBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,MAAA,EAAQ,kCAAA;AAAA,YACR,MAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ;;;ACxOO,IAAM,oBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,iBAAA;AAAA,EACN,KAAA,EAAO,gBAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GACT;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,YAAA,EAAc,IAAA;AAAA,MACd,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,yBAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,2BAAA;AAAA,MACP,YAAA,EAAc,MAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,MAAA,EAAO;AAAA,QACpC,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,QAAA,EAAS;AAAA,QAC1C,EAAE,KAAA,EAAO,wBAAA,EAA0B,KAAA,EAAO,QAAA,EAAS;AAAA,QACnD,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,OAAA,EAAQ;AAAA,QACvC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,MAAA;AAAO,OACtC;AAAA,MACA,OAAO;AAAC,KACV;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,iBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,gBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,gBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,kBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,wBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,KACV,IAAA,CAAK,WAAW,WAAA,KAAgB,IAAA,IAChC,IAAA,CAAK,SAAA,EAAW,cAAA,KAAmB;AAAA,WACvC;AAAA,UACA,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,gBAAA;AAAA,cACN,IAAA,EAAM,UAAA;AAAA,cACN,KAAA,EAAO,gCAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,WAAA,EAAa;AAAA;AACf;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,6BAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,cAAc,OAAA,KAAY;AAAA,OAC3D;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,6BAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,cAAA;AAAA,UACP,YAAA,EAAc,GAAA;AAAA,UACd,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KACrB,YAAY,OAAA,KAAY;AAAA;AAC5B,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,aAAA;AAAA,UACP,YAAA,EAAc,GAAA;AAAA,UACd,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KACrB,YAAY,OAAA,KAAY;AAAA;AAC5B;AACF;AACF;AACF;AAEJ;;;ACjIA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,IAAA,EAAK;AAAA,EACtC,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,IAAA,EAAK;AAAA,EACvC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,EAC/B,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,IAAA,EAAK;AAAA,EAClC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,EAChC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,EAC/B,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,IAAA,EAAK;AAAA,EACpC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,EAChC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,EAC9B,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,EAC9B,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,IAAA,EAAK;AAAA,EACjC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,EAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,EAC/B,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,EAChC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,EAChC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,IAAA,EAAK;AAAA,EAChC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,IAAA,EAAK;AAAA,EACpC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,EAC9B,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,IAAA,EAAK;AAAA,EACpC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,EAC9B,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA,EAC9B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA,EAAK;AAAA,EAC/B,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,IAAA;AAC5B,CAAA;AAEO,IAAM,mBAAA,GAAoC;AAAA,EAC/C,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,gBAAA;AAAA,EAGP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GAET;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA;AAAA,MACE,IAAA,EAAM,YAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,YAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,SAAA;AAAA,UACP,OAAA,EAAS;AAAA;AACX;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,UAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,YAAA,EAAc,KAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,KAAA,EAAM;AAAA,YACzC,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,KAAA,EAAM;AAAA,YACpC,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC7C,EAAE,KAAA,EAAO,uBAAA,EAAyB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC/C,EAAE,KAAA,EAAO,yBAAA,EAA2B,KAAA,EAAO,KAAA,EAAM;AAAA,YACjD,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC5C,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC5C,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC5C,EAAE,KAAA,EAAO,sBAAA,EAAwB,KAAA,EAAO,KAAA,EAAM;AAAA,YAC9C,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,KAAA;AAAM;AAC9C,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,iBAAA;AAAA,UACP,YAAA,EAAc,QAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,QAAA,EAAS;AAAA,YAC1C,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,OAAA;AAAQ;AAC1C,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,gBAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,KAAK,OAAA,KAAY;AAAA,OAClD;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,YAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,cAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,WAAA,EAAa,IAAA;AAAA,YACb,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KAAqB,YAAY,OAAA,KAAY;AAAA;AACtE,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,iBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,wBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACJ,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KAAqB,YAAY,OAAA,KAAY;AAAA;AACvE,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,qBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACJ,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KAAqB,YAAY,OAAA,KAAY;AAAA;AACvE;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAc,IAAA,CAAK,UAAU,iBAAA,KAAsB,IAAA,IAAQ,IAAA,CAAK,QAAA,EAAU,QAAA,GAAW;AAAA,OACnG;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,qBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,wBAAA;AAAA,UACP,OAAO;AAEP,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,uBAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,uBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,CAAC,IAAA,EAAW,WAAA,KAAqB,YAAY,QAAA,GAAW;AAAA;AACrE;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,qBAAA;AAAA,UACP,YAAA,EAAc,KAAA;AAAA,UACd,OAAO;AAEP,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,oBAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,sBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,cAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,sBAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF;AACF;AAEJ;;;ACjPO,IAAM,qBAAA,GAAsC;AAAA,EACjD,IAAA,EAAM,kBAAA;AAAA,EACN,KAAA,EAAO,kBAAA;AAAA,EAGP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO;AAAA,GAET;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO,WAAA;AAAA,MACP,YAAA,EAAc,IAAA;AAAA,MACd,OAAO;AAEP,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,0BAAA;AAAA,MACP,YAAA,EAAc,QAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,QACnC,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,QAAA;AAAS;AAClD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,gBAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,iBAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,WAAA,EAAa;AAAA;AACf,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,gBAAA;AAAA,UACP,OAAO;AAEP;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,cAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,YAAA,EAAc,SAAA;AAAA,UACd,OAAA,EAAS;AAAA,YACP,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,SAAA,EAAU;AAAA,YAC5C,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA;AAAO;AACjC;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,KAAa;AAAA,OACzC;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,SAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,YAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,wBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,KAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,kBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,cAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,qBAAA;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,UAAA;AAAA,UACN,KAAA,EAAO,OAAA;AAAA,UACP,YAAA,EAAc;AAAA;AAChB;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,uBAAA;AAAA,MACP,OAAO,EAEP;AAAA,MACA,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,eAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,OAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF;AACF;AAEJ;;;ACrNO,IAAM,oBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,QAAA;AAAA,EACP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,UAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,YAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,2FAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,WAAA,EAAa,iDAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,wBAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc,CAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,uBAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc,CAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,WAAA,EAAa;AAAA;AACf;AACF;AAGJ;;;ACtDO,IAAM,oBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,iBAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,sBAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACf;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,UAAA,EAAY,MAAA;AAAA,MACZ,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,MAAA,EAAQ;AAAA,YACN;AAAA,cACE,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO;AAAA,aACT;AAAA,YACA;AAAA,cACE,IAAA,EAAM,KAAA;AAAA,cACN,IAAA,EAAM,MAAA;AAAA,cACN,KAAA,EAAO;AAAA;AACT;AACF;AACF;AACF;AACF;AAEJ;;;ACzDO,IAAM,oBAAA,GAAqC;AAAA,EAChD,IAAA,EAAM,iBAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EAEP,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,sBAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACf;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,MAAM,MAAM,IAAA;AAAA,IACZ,QAAQ,MAAM;AAAA,GAChB;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,cAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,qBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,aAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,IAAA,EAAM,YAAA;AAAA,UACN,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,aAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,UAAA,EAAY;AAAA;AACd;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,gBAAA;AAAA,MACP,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO;AAAA;AACT;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,IAAA,EAAM,cAAA;AAAA,MACN,UAAA,EAAY,OAAA;AAAA,MACZ,KAAA,EAAO;AAAA;AACT;AAEJ;;;AC9EO,IAAM,kBAAA,GAAqC;AAAA,EAChD,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACAA,uCAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACA,qBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAEO,IAAM,mBAAA,GAAsC;AAAA,EACjD,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,mBAAA;AAAA,EACAA,uCAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAEO,IAAM,cAAA,GAA+C;AAAA,EAC1D,CAAC,kBAAA,CAAmB,IAAI,GAAG,kBAAA;AAAA,EAC3B,CAAC,iBAAA,CAAkB,IAAI,GAAG,iBAAA;AAAA,EAC1B,CAAC,oBAAA,CAAqB,IAAI,GAAG,oBAAA;AAAA,EAC7B,CAAC,mBAAA,CAAoB,IAAI,GAAG,mBAAA;AAAA,EAC5B,CAACA,uCAAA,CAAsB,IAAI,GAAGA,uCAAA;AAAA,EAC9B,CAAC,oBAAA,CAAqB,IAAI,GAAG,oBAAA;AAAA,EAC7B,CAAC,mBAAA,CAAoB,IAAI,GAAG,mBAAA;AAAA,EAC5B,CAAC,qBAAA,CAAsB,IAAI,GAAG,qBAAA;AAAA,EAC9B,CAAC,oBAAA,CAAqB,IAAI,GAAG,oBAAA;AAAA,EAC7B,CAAC,oBAAA,CAAqB,IAAI,GAAG,oBAAA;AAAA,EAC7B,CAAC,oBAAA,CAAqB,IAAI,GAAG;AAC/B;AAEO,SAAS,uBACd,QAAA,EACgB;AAChB,EAAA,QAAQ,QAAA;AAAU,IAChB,KAAK,SAAA;AACH,MAAA,OAAO,CAAC,oBAAoB,iBAAiB,CAAA;AAAA,IAC/C,KAAK,SAAA;AAAA,IACL,KAAK,MAAA;AACH,MAAA,OAAO,mBAAA;AAAA,IACT,KAAK,WAAA;AAAA,IACL,KAAK,cAAA;AACH,MAAA,OAAO,kBAAA;AAAA,IACT;AACE,MAAA,OAAO,mBAAA;AAAA;AAEb;;;ACvBA,SAAS,uBAAuB,WAAA,EAAqD;AACnF,EAAA,MAAM,GAAA,uBAAU,GAAA,EAA8B;AAC9C,EAAA,KAAA,MAAW,OAAO,WAAA,EAAa;AAC7B,IAAA,IAAI,CAAC,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,IAAI,CAAA,EAAG;AACtB,MAAA,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,IAAA,EAAM,GAAG,CAAA;AAAA,IACvB;AAAA,EACF;AACA,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,CAAA;AAChC;AAEO,IAAM,mBAAA,GAAsB;AAAA,EACjC,SAAS,sBAAA,CAAuB;AAAA,IAC9B,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA;AAAA,IACtC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB;AAAA,GACxC,CAAA;AAAA,EACD,SAAS,sBAAA,CAAuB;AAAA,IAC9B,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,gBAAA;AAAA,IACH,GAAG,MAAA,CAAO,MAAA,CAAOC,iCAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA;AAAA,IACtC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB;AAAA,GACxC,CAAA;AAAA,EACD,MAAM,sBAAA,CAAuB;AAAA,IAC3B,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,gBAAA;AAAA,IACH,GAAG,MAAA,CAAO,MAAA,CAAOA,iCAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA;AAAA,IACtC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB;AAAA,GACxC,CAAA;AAAA,EACD,WAAW,sBAAA,CAAuB;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,oBAAoB,CAAA;AAAA,IACrC,GAAG,MAAA,CAAO,MAAA,CAAO,mBAAmB,CAAA;AAAA,IACpC,GAAG,MAAA,CAAO,MAAA,CAAO,oBAAoB,CAAA;AAAA,IACrC,GAAG,MAAA,CAAO,MAAA,CAAO,iBAAiB,CAAA;AAAA,IAClC,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,gBAAA;AAAA,IACH,GAAG,MAAA,CAAO,MAAA,CAAOA,iCAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA;AAAA,IACtC,GAAG,MAAA,CAAO,MAAA,CAAO,4BAA4B,CAAA;AAAA,IAC7C,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB;AAAA,GACxC,CAAA;AAAA,EACD,gBAAgB,sBAAA,CAAuB;AAAA,IACrC,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,oBAAoB,CAAA;AAAA,IACrC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB,CAAA;AAAA,IACvC,GAAG,MAAA,CAAO,MAAA,CAAO,mBAAmB,CAAA;AAAA,IACpC,GAAG,MAAA,CAAO,MAAA,CAAO,oBAAoB,CAAA;AAAA,IACrC,GAAG,MAAA,CAAO,MAAA,CAAO,iBAAiB,CAAA;AAAA,IAClC,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAA;AAAA,IACnC,GAAG,gBAAA;AAAA,IACH,GAAG,MAAA,CAAO,MAAA,CAAOA,iCAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,eAAe,CAAA;AAAA,IAChC,GAAG,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA;AAAA,IACtC,GAAG,MAAA,CAAO,MAAA,CAAO,4BAA4B,CAAA;AAAA,IAC7C,GAAG,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA;AAAA,IACjC,GAAG,MAAA,CAAO,MAAA,CAAO,sBAAsB;AAAA,GACxC;AACH;AAqCO,SAAS,qBACd,OAAA,EACgB;AAChB,EAAA,MAAM,WAAA,GAAkC,QAAQ,WAAA,GAC5C,CAAC,GAAG,OAAA,CAAQ,WAAW,IACvB,EAAC;AACL,EAAA,MAAM,OAAA,GAA0B,QAAQ,OAAA,GAAU,CAAC,GAAG,OAAA,CAAQ,OAAO,IAAI,EAAC;AAE1E,EAAA,IAAI,OAAA,CAAQ,iBAAiB,KAAA,EAAO;AAClC,IAAA,WAAA,CAAY,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA,EACtC;AAEA,EAAA,MAAM,mBAAmB,OAAA,CAAQ,QAAA,GAC7B,sBAAA,CAAuB,OAAA,CAAQ,QAAQ,CAAA,GACvC,mBAAA;AAEJ,EAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,IAAA,IAAI,OAAA,CAAQ,oBAAoB,KAAA,EAAO;AACrC,MAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,kBAAkB,CAAA;AAAA,IACpC,CAAA,MAAA,IAAW,OAAA,CAAQ,eAAA,KAAoB,MAAA,EAAQ;AAC7C,MAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,mBAAmB,CAAA;AAAA,IACrC,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,eAAe,CAAA,EAAG;AACjD,MAAA,KAAA,MAAW,OAAA,IAAW,QAAQ,eAAA,EAAiB;AAC7C,QAAA,MAAM,MAAA,GAAS,eAAe,OAAO,CAAA;AACrC,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF,WAAW,CAAC,OAAA,CAAQ,WAAW,OAAA,CAAQ,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC3D,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA,EAClC;AAEA,EAAA,IAAI,OAAA,CAAQ,eAAA,IAAmB,OAAA,CAAQ,eAAA,CAAgB,SAAS,CAAA,EAAG;AACjE,IAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,OAAA,CAAQ,eAAe,CAAA;AAClD,IAAA,MAAM,WAAW,OAAA,CAAQ,MAAA;AAAA,MACvB,CAAC,CAAA,KACC,CAAC,WAAW,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,IACtB,CAAC,WAAW,GAAA,CAAI,CAAA,CAAE,OAAO,WAAA,EAAY,CAAE,QAAQ,MAAA,EAAQ,GAAG,KAAK,EAAE;AAAA,KACrE;AACA,IAAA,OAAA,CAAQ,MAAA,GAAS,CAAA;AACjB,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,QAAQ,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,WAAA,GAAc,MAAA;AAAA,IACpD,OAAA,EAAS,OAAA,CAAQ,MAAA,GAAS,CAAA,GAAI,OAAA,GAAU;AAAA,GAC1C;AACF","file":"chunk-DEVFAKCQ.cjs","sourcesContent":["import type { GlobalConfig } from \"../registry/types.js\";\n\n\nexport const minimalCollections: Record<string, any> = {};\n\nexport const minimalGlobals: GlobalConfig[] = [];\n","import type { GlobalConfig } from \"../registry/types.js\";\n\n\nexport const starterCollections: Record<string, any> = {};\n\nexport const starterGlobals: GlobalConfig[] = [];\n","import type { GlobalConfig } from \"../registry/types.js\";\n\n\nexport const blogCollections: Record<string, any> = {};\n\nexport const blogGlobals: GlobalConfig[] = [];\n","import type { GlobalConfig } from \"../registry/types.js\";\n\n\nexport const ecommerceCollections: Record<string, any> = {};\n\nexport const ecommerceGlobals: GlobalConfig[] = [];\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const kitchenSinkCollections: Record<string, CollectionConfig> = {};\n","// ============================================================================\n// Media Collection Template\n// ============================================================================\n\nimport type { CollectionConfig } from \"../registry/types.js\";\n\nexport const mediaCollection: CollectionConfig = {\n slug: \"media\",\n label: \"Media Library\",\n\n admin: {\n useAsTitle: \"title\",\n defaultColumns: [\"thumbnailUrl\", \"title\", \"type\", \"fileSize\", \"createdAt\"],\n group: \"content\",\n },\n\n access: {\n read: () => true,\n create: () => true,\n update: () => true,\n delete: () => true,\n },\n\n fields: [\n {\n name: \"title\",\n type: \"text\",\n label: \"Title\",\n required: true,\n admin: {\n description: \"Descriptive title for the file\",\n },\n },\n {\n name: \"filename\",\n type: \"text\",\n label: \"Filename\",\n required: true,\n admin: {\n readOnly: true,\n description: \"System filename (auto-generated)\",\n },\n },\n {\n name: \"originalName\",\n type: \"text\",\n label: \"Original Name\",\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"alt\",\n type: \"text\",\n label: \"Alt Text\",\n admin: {\n description: \"Alternative text for images (accessibility)\",\n },\n },\n {\n name: \"caption\",\n type: \"richtext\",\n label: \"Caption\",\n admin: {\n description: \"Optional caption or description\",\n },\n },\n {\n name: \"type\",\n type: \"select\",\n label: \"File Type\",\n required: true,\n defaultValue: \"document\",\n options: [\n { label: \"Image\", value: \"image\" },\n { label: \"Video\", value: \"video\" },\n { label: \"Audio\", value: \"audio\" },\n { label: \"Document\", value: \"document\" },\n { label: \"Archive\", value: \"archive\" },\n { label: \"Other\", value: \"other\" },\n ],\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"mimeType\",\n type: \"text\",\n label: \"MIME Type\",\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"url\",\n type: \"text\",\n label: \"URL\",\n required: true,\n admin: {\n readOnly: true,\n description: \"Public URL of the file\",\n },\n },\n {\n name: \"thumbnailUrl\",\n type: \"text\",\n label: \"Thumbnail URL\",\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"width\",\n type: \"number\",\n label: \"Width\",\n admin: {\n readOnly: true,\n description: \"Width in pixels (for images/videos)\",\n },\n },\n {\n name: \"height\",\n type: \"number\",\n label: \"Height\",\n admin: {\n readOnly: true,\n description: \"Height in pixels (for images/videos)\",\n },\n },\n {\n name: \"fileSize\",\n type: \"number\",\n label: \"File Size\",\n admin: {\n readOnly: true,\n description: \"Size in bytes\",\n },\n },\n {\n name: \"folder\",\n type: \"text\",\n label: \"Folder\",\n admin: {\n description: \"Folder path for organization (e.g., /products, /blog)\",\n },\n },\n {\n name: \"tags\",\n type: \"array\",\n label: \"Tags\",\n fields: [\n {\n name: \"tag\",\n type: \"text\",\n label: \"Tag\",\n },\n ],\n },\n {\n name: \"focalPoint\",\n type: \"group\",\n label: \"Focal Point\",\n admin: {\n description: \"Point of interest for cropping\",\n },\n fields: [\n {\n name: \"x\",\n type: \"number\",\n label: \"X\",\n defaultValue: 50,\n },\n {\n name: \"y\",\n type: \"number\",\n label: \"Y\",\n defaultValue: 50,\n },\n ],\n },\n {\n name: \"metadata\",\n type: \"json\",\n label: \"Metadata\",\n admin: {\n readOnly: true,\n description: \"Additional file metadata (EXIF, etc.)\",\n },\n },\n {\n name: \"provider\",\n type: \"select\",\n label: \"Storage Provider\",\n defaultValue: \"local\",\n options: [\n { label: \"Local\", value: \"local\" },\n { label: \"AWS S3\", value: \"s3\" },\n { label: \"Cloudinary\", value: \"cloudinary\" },\n { label: \"Imgix\", value: \"imgix\" },\n ],\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"status\",\n type: \"select\",\n label: \"Status\",\n defaultValue: \"active\",\n options: [\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ],\n },\n {\n name: \"createdAt\",\n type: \"date\",\n label: \"Created\",\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"updatedAt\",\n type: \"date\",\n label: \"Last Modified\",\n admin: {\n readOnly: true,\n },\n },\n ],\n};\n\n// Export all media collections\nexport const mediaCollections = [mediaCollection];\n","import type { CollectionConfig } from \"../registry/types.js\";\n\nexport const menuCollection: CollectionConfig = {\n slug: \"menu\",\n label: \"Menu\",\n singularLabel: \"Menu Item\",\n admin: {\n useAsTitle: \"title\",\n defaultColumns: [\"title\", \"menu_location\"],\n },\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\", required: true },\n {\n name: \"menu_location\",\n type: \"select\",\n label: \"Menu Location\",\n options: [\n { label: \"Header\", value: \"header\" },\n { label: \"Footer\", value: \"footer\" },\n { label: \"Sidebar\", value: \"sidebar\" },\n { label: \"Primary\", value: \"primary\" },\n { label: \"Secondary\", value: \"secondary\" },\n ],\n required: true,\n admin: { position: \"sidebar\" },\n },\n {\n name: \"order\",\n type: \"number\",\n label: \"Order\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"menu\",\n type: \"group\",\n fields: [\n {\n name: \"menu_item\",\n label: \"Menu Item\",\n type: \"array\",\n fields: [\n {\n name: \"link_type\",\n type: \"select\",\n label: \"Link Type\",\n options: [\n { label: \"Internal\", value: \"internal\" },\n { label: \"External\", value: \"external\" },\n ],\n },\n {\n name: \"internal_target\",\n type: \"relationship\",\n label: \"Internal Target\",\n relationTo: [\"pages\", \"posts\"],\n admin: {\n condition: { field: \"link_type\", equals: \"internal\" },\n },\n },\n {\n name: \"external_url\",\n type: \"text\",\n label: \"External URL\",\n admin: {\n condition: { field: \"link_type\", equals: \"external\" },\n },\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const menuCollections: Record<string, CollectionConfig> = {\n menu: menuCollection,\n};\n\nexport default menuCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const postsCollection: CollectionConfig = {\n slug: \"posts\",\n label: \"Posts\",\n labelPlural: \"Posts\",\n singularLabel: \"Post\",\n admin: {\n useAsTitle: \"title\",\n defaultColumns: [\"title\", \"slug\", \"publishStatus\", \"createdAt\", \"updatedAt\"],\n description: \"Blog posts and articles\",\n },\n fields: [\n {\n name: \"mainTabs\",\n type: \"tabs\",\n tabs: [\n {\n label: \"Content\",\n fields: [\n {\n name: \"title\",\n type: \"text\",\n required: true,\n label: \"Title\",\n admin: {\n description:\n \"The main title of the post as it will appear publicly.\",\n },\n },\n {\n name: \"content\",\n type: \"richtext\",\n label: \"Content\",\n },\n ],\n },\n\n {\n label: \"Meta\",\n fields: [\n {\n name: \"category\",\n type: \"relationship\",\n label: \"Category\",\n relationTo: \"categories\",\n admin: {\n description:\n \"Select the primary category this post belongs to.\",\n },\n },\n {\n name: \"relatedPosts\",\n type: \"array\",\n label: \"Related Posts\",\n fields: [\n {\n name: \"post\",\n type: \"relationship\",\n relationTo: \"posts\",\n label: \"Post\",\n },\n ],\n admin: { description: \"Select posts related to this one.\" },\n },\n ],\n },\n {\n label: \"SEO\",\n fields: [\n {\n name: \"metaTitle\",\n type: \"text\",\n label: \"Meta Title\",\n admin: {\n autoGenerate: \"title\",\n description:\n \"The title used for SEO and social sharing (recommended < 60 chars).\",\n },\n },\n {\n name: \"metaDescription\",\n type: \"textarea\",\n label: \"Meta Description\",\n admin: {\n autoGenerate: \"content\",\n description:\n \"A brief summary for search engines (recommended < 160 chars).\",\n },\n },\n {\n name: \"ogImage\",\n type: \"upload\",\n label: \"OG Image\",\n relationTo: \"media\",\n admin: {\n description:\n \"The image shown when the post is shared on social media.\",\n },\n },\n ],\n },\n ],\n },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: {\n description: \"The URL-friendly identifier for the post.\",\n position: \"sidebar\",\n autoGenerate: \"title\",\n },\n },\n {\n name: \"tags\",\n type: \"list\",\n label: \"Tags\",\n admin: {\n description: \"Add keywords to help categorize your post.\",\n position: \"sidebar\",\n },\n },\n {\n name: \"authors\",\n type: \"array\",\n label: \"Authors\",\n fields: [\n {\n name: \"user\",\n type: \"relationship\",\n label: \"User\",\n relationTo: \"users\",\n },\n ],\n admin: {\n description: \"Select one or more authors for this post.\",\n position: \"sidebar\",\n },\n },\n {\n name: \"featuredImage\",\n type: \"upload\",\n label: \"Featured Image\",\n relationTo: \"media\",\n admin: {\n description: \"The primary visual used to represent this post.\",\n position: \"sidebar\",\n },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 10,\n },\n};\n\nexport const postsCollections: Record<string, CollectionConfig> = {\n posts: postsCollection,\n};\n\nexport default postsCollections;\n","import type { Field, Block } from \"../fields/types.js\";\n\nfunction withUtilityFields(block: { slug: string; label: string; fields: Field[] }) {\n return {\n ...block,\n fields: [...block.fields, ...utilityFields],\n };\n}\n\nexport const buttonFields: Field[] = [\n { name: \"text\", type: \"text\", label: \"Button Label\" },\n { name: \"url\", type: \"text\", label: \"Button Redirection URL\" },\n];\n\nexport const buttonsField: Field = {\n name: \"buttons\",\n type: \"array\",\n label: \"Action Buttons\",\n fields: buttonFields,\n};\n\n// ============================================================================\n// Inline Content Elements (available inside every block)\n// ============================================================================\n\nconst headingElement: Block = {\n slug: \"heading-element\",\n label: \"Heading\",\n admin: { group: \"Basic Content Elements\", description: \"Section heading\" },\n fields: [\n { name: \"content\", type: \"text\", label: \"Content\" },\n ],\n};\n\nconst textElement: Block = {\n slug: \"text-element\",\n label: \"Text\",\n admin: { group: \"Basic Content Elements\", description: \"Plain text paragraph\" },\n fields: [\n { name: \"content\", type: \"textarea\", label: \"Content\" },\n ],\n};\n\nconst imageElement: Block = {\n slug: \"image-element\",\n label: \"Image\",\n admin: { group: \"Basic Content Elements\", description: \"Single image\" },\n fields: [\n { name: \"image\", type: \"upload\", label: \"Image\", relationTo: \"media\" },\n ],\n};\n\nconst richtextElement: Block = {\n slug: \"richtext-element\",\n label: \"Rich Text\",\n admin: { group: \"Basic Content Elements\", description: \"Formatted rich text content\" },\n fields: [\n { name: \"content\", type: \"richtext\", label: \"Content\" },\n ],\n};\n\nconst buttonElement: Block = {\n slug: \"button-element\",\n label: \"Button\",\n admin: { group: \"Basic Content Elements\", description: \"Call-to-action button\" },\n fields: [\n {\n name: \"buttonData\",\n type: \"group\",\n label: \"Button\",\n admin: { inline: true },\n fields: [\n { name: \"text\", type: \"text\", label: \"Label\" },\n { name: \"url\", type: \"text\", label: \"URL\" },\n ],\n },\n ],\n};\n\nconst videoElement: Block = {\n slug: \"video-element\",\n label: \"Video\",\n admin: { group: \"Basic Content Elements\", description: \"Embedded video player\" },\n fields: [\n { name: \"url\", type: \"text\", label: \"Video URL\" },\n { name: \"file\", type: \"upload\", label: \"Video File\", relationTo: \"media\" },\n { name: \"caption\", type: \"text\", label: \"Caption\" },\n ],\n};\n\nconst listElement: Block = {\n slug: \"list-element\",\n label: \"List\",\n admin: { group: \"Basic Content Elements\", description: \"Bulleted or numbered list\" },\n fields: [\n {\n name: \"items\",\n type: \"array\",\n label: \"Items\",\n fields: [\n { name: \"text\", type: \"text\", label: \"Item Text\" },\n ],\n },\n ],\n};\n\nexport const elementBlocks: Block[] = [\n headingElement,\n textElement,\n imageElement,\n richtextElement,\n buttonElement,\n videoElement,\n listElement,\n];\n\nexport const elementsField: Field = {\n name: \"elements\",\n type: \"blocks\",\n label: \"Extra Content Elements\",\n blocks: elementBlocks,\n admin: { pickerMode: \"dropdown\" },\n};\n\nexport const utilityFields: Field[] = [elementsField];\n\n// ============================================================================\n// Core Semantic Blocks\n// ============================================================================\n\nexport const heroBlock = withUtilityFields({\n slug: \"hero\",\n admin: { group: \"Structural Sections\", description: \"Primary landing section with heading, text, media & CTA\" },\n label: \"Hero Section\",\n fields: [\n {\n name: \"isMultiScreen\",\n type: \"checkbox\",\n label: \"Enable Multi-Screen Slides (Carousel)\",\n defaultValue: false,\n },\n {\n name: \"multiSlides\", type: \"group\", label: \"Multi Slides\",\n admin: {\n condition: { field: \"isMultiScreen\", equals: true }\n },\n fields: [\n {\n name: \"multiSlides\",\n type: \"array\",\n label: \"Hero Slides\",\n fields: [\n { name: \"heading\", type: \"text\", label: \"Slide Heading\" },\n { name: \"subheading\", type: \"textarea\", label: \"Slide Subheading\" },\n { name: \"backgroundImage\", type: \"upload\", label: \"Slide Background Image\", relationTo: \"media\" },\n buttonsField,\n ],\n },\n ]\n },\n {\n name: \"singleSlide\", type: \"group\", label: \"Single Slide\",\n admin: {\n condition: { field: \"isMultiScreen\", equals: false }\n },\n fields: [\n { name: \"heading\", type: \"text\", label: \"Heading\" },\n { name: \"subheading\", type: \"textarea\", label: \"Subheading\" },\n { name: \"backgroundImage\", type: \"upload\", label: \"Background Image\", relationTo: \"media\" },\n buttonsField,\n ]\n }\n ],\n});\n\nexport const cardBlock = withUtilityFields({\n slug: \"card\",\n admin: { group: \"Structural Sections\", description: \"Modular card block featuring title, text, and optional media\" },\n label: \"Card Block\",\n fields: [\n {\n name: \"isMultiCard\",\n type: \"checkbox\",\n label: \"Enable Multicard Layout\",\n defaultValue: false,\n },\n {\n name: \"multiCards\", type: \"group\", label: \"Multi Cards\",\n admin: {\n condition: { field: \"isMultiCard\", equals: true }\n },\n fields: [\n {\n name: \"cards\",\n type: \"array\",\n label: \"Cards List\",\n fields: [\n { name: \"title\", type: \"text\", label: \"Card Title\" },\n { name: \"description\", type: \"textarea\", label: \"Card Description\" },\n { name: \"image\", type: \"upload\", label: \"Card Image\", relationTo: \"media\" },\n { name: \"icon\", type: \"text\", label: \"Card Icon (Emoji or Name)\" },\n { name: \"linkText\", type: \"text\", label: \"Link Label Text\" },\n { name: \"link\", type: \"text\", label: \"Link Redirection URL\" },\n ],\n },\n ]\n },\n {\n name: \"singleCard\", type: \"group\", label: \"Single Card\",\n admin: {\n condition: { field: \"isMultiCard\", equals: false }\n },\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\" },\n { name: \"description\", type: \"textarea\", label: \"Description\" },\n { name: \"image\", type: \"upload\", label: \"Image\", relationTo: \"media\" },\n { name: \"icon\", type: \"text\", label: \"Icon (Emoji or Name)\" },\n { name: \"linkText\", type: \"text\", label: \"Link Label Text\" },\n { name: \"link\", type: \"text\", label: \"Link Redirection URL\" },\n ]\n }\n ],\n});\n\nexport const textBlock = withUtilityFields({\n slug: \"text\",\n admin: { group: \"Basic Content Elements\", description: \"Rich text content\" },\n label: \"Text Block\",\n fields: [\n { name: \"content\", type: \"richtext\", label: \"Content\" },\n ],\n});\n\nexport const imageBlock = withUtilityFields({\n slug: \"image\",\n admin: { group: \"Basic Content Elements\", description: \"Image upload container\" },\n label: \"Image\",\n fields: [\n { name: \"image\", type: \"upload\", label: \"Image\", relationTo: \"media\" },\n { name: \"caption\", type: \"text\", label: \"Caption\" },\n { name: \"alt\", type: \"text\", label: \"Alt Text\" },\n {\n name: \"aspectRatio\",\n type: \"select\",\n label: \"Aspect Ratio\",\n defaultValue: \"original\",\n options: [\n { label: \"Original\", value: \"original\" },\n { label: \"16:9 Landscape\", value: \"16-9\" },\n { label: \"4:3 Classic\", value: \"4-3\" },\n { label: \"1:1 Square\", value: \"1-1\" },\n { label: \"2:3 Portrait\", value: \"2-3\" },\n ],\n },\n { name: \"enableLightbox\", type: \"checkbox\", label: \"Enable Zoom / Lightbox\", defaultValue: false },\n ],\n});\n\nexport const featureSplitBlock = withUtilityFields({\n slug: \"feature-split\",\n admin: { group: \"Structural Sections\", description: \"Side-by-side text and media layout\" },\n label: \"Feature Split (Text & Media)\",\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\" },\n { name: \"description\", type: \"richtext\", label: \"Description\" },\n {\n name: \"checkpoints\",\n type: \"array\",\n label: \"Value Checkpoints\",\n fields: [\n { name: \"title\", type: \"text\", label: \"Checkpoint Title\" },\n { name: \"description\", type: \"textarea\", label: \"Checkpoint Description\" },\n { name: \"icon\", type: \"text\", label: \"Icon Name\" },\n { name: \"image\", type: \"upload\", label: \"Image\", relationTo: \"media\" },\n { name: \"itemUrl\", type: \"text\", label: \"Link URL\" },\n ],\n },\n {\n name: \"images\",\n type: \"array\",\n label: \"Images\",\n fields: [\n { name: \"image\", type: \"upload\", label: \"Image\", relationTo: \"media\" },\n ],\n },\n buttonsField,\n ],\n});\n\nexport const featureGridBlock = withUtilityFields({\n slug: \"feature-grid\",\n admin: { group: \"Marketing Grids\", description: \"Multi-column grid showcasing features or services\" },\n label: \"Feature Grid\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n {\n name: \"features\",\n type: \"array\",\n label: \"Features List\",\n fields: [\n { name: \"title\", type: \"text\", label: \"Title\" },\n { name: \"description\", type: \"textarea\", label: \"Description\" },\n { name: \"icon\", type: \"text\", label: \"Icon Name\" },\n { name: \"image\", type: \"upload\", label: \"Feature Image\", relationTo: \"media\" },\n { name: \"itemUrl\", type: \"text\", label: \"Card Redirection URL\" },\n ],\n },\n ],\n});\n\nexport const ctaBannerBlock = withUtilityFields({\n slug: \"cta-banner\",\n admin: { group: \"Structural Sections\", description: \"High-impact call-to-action banner\" },\n label: \"CTA Banner\",\n fields: [\n { name: \"headline\", type: \"text\", label: \"Headline\" },\n { name: \"subheading\", type: \"textarea\", label: \"Subheading\" },\n { name: \"backgroundImage\", type: \"upload\", label: \"Background Image\", relationTo: \"media\" },\n buttonsField,\n ],\n});\n\nexport const testimonialsBlock = withUtilityFields({\n slug: \"testimonials\",\n admin: { group: \"Marketing Grids\", description: \"Customer reviews and quotes carousel\" },\n label: \"Testimonials\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n {\n name: \"items\",\n type: \"array\",\n label: \"Testimonials\",\n fields: [\n { name: \"quote\", type: \"textarea\", label: \"Quote\" },\n {\n name: \"rating\",\n type: \"select\",\n label: \"Star Rating\",\n defaultValue: \"5\",\n options: [\n { label: \"5 Stars\", value: \"5\" },\n { label: \"4 Stars\", value: \"4\" },\n { label: \"3 Stars\", value: \"3\" },\n { label: \"2 Stars\", value: \"2\" },\n { label: \"1 Star\", value: \"1\" },\n ],\n },\n { name: \"authorName\", type: \"text\", label: \"Author Name\" },\n { name: \"authorRole\", type: \"text\", label: \"Author Role\" },\n { name: \"avatar\", type: \"upload\", label: \"Avatar\", relationTo: \"media\" },\n { name: \"companyLogo\", type: \"upload\", label: \"Company Logo\", relationTo: \"media\" },\n ],\n },\n ],\n});\n\nexport const faqBlock = withUtilityFields({\n slug: \"faq\",\n admin: { group: \"Lead Capture & Interactive\", description: \"Expandable list of frequently asked questions\" },\n label: \"FAQ Section\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n {\n name: \"items\",\n type: \"array\",\n label: \"Questions List\",\n fields: [\n { name: \"tag\", type: \"text\", label: \"Category Tag (e.g. billing, account)\" },\n { name: \"question\", type: \"text\", label: \"Question\" },\n { name: \"answer\", type: \"richtext\", label: \"Answer\" },\n ],\n },\n { name: \"footerHeading\", type: \"text\", label: \"Footer Heading (e.g. Still have questions?)\" },\n { name: \"footerCtaUrl\", type: \"text\", label: \"Footer CTA Redirection URL\" },\n ],\n});\n\nexport const statsBlock = withUtilityFields({\n slug: \"stats\",\n admin: { group: \"Marketing Grids\", description: \"Grid displaying key numerical metrics and stats\" },\n label: \"Stats / Metrics\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n {\n name: \"items\",\n type: \"array\",\n label: \"Stats List\",\n fields: [\n { name: \"prefix\", type: \"text\", label: \"Value Prefix (e.g. + or $)\" },\n { name: \"value\", type: \"text\", label: \"Value (e.g. 99.9 or 5M)\" },\n { name: \"suffix\", type: \"text\", label: \"Value Suffix (e.g. % or users)\" },\n { name: \"label\", type: \"text\", label: \"Label (e.g. Uptime)\" },\n { name: \"description\", type: \"textarea\", label: \"Context Description\" },\n ],\n },\n ],\n});\n\nexport const logoCloudBlock = withUtilityFields({\n slug: \"logo-cloud\",\n admin: { group: \"Structural Sections\", description: \"Showcase for partner and client company logos\" },\n label: \"Logo Cloud / Partners\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n {\n name: \"logos\",\n type: \"array\",\n label: \"Logos List\",\n fields: [\n { name: \"name\", type: \"text\", label: \"Company Name\" },\n { name: \"logo\", type: \"upload\", label: \"Logo Image\", relationTo: \"media\" },\n { name: \"url\", type: \"text\", label: \"Website URL\" },\n ],\n },\n ],\n});\n\nexport const pricingBlock = withUtilityFields({\n slug: \"pricing\",\n admin: { group: \"Marketing Grids\", description: \"Tiered pricing plans with feature comparisons\" },\n label: \"Pricing Plans\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n { name: \"annualDiscount\", type: \"text\", label: \"Annual Promo Tag (e.g. Save 20%)\" },\n {\n name: \"plans\",\n type: \"array\",\n label: \"Pricing Plans\",\n fields: [\n { name: \"popularBadgeText\", type: \"text\", label: \"Plan Badge (e.g. MOST POPULAR)\" },\n { name: \"name\", type: \"text\", label: \"Plan Name\" },\n { name: \"description\", type: \"textarea\", label: \"Plan Description\" },\n { name: \"currency\", type: \"text\", label: \"Plan Currency (e.g. $)\", defaultValue: \"$\" },\n { name: \"price\", type: \"text\", label: \"Price (e.g. 29)\" },\n { name: \"billingPeriod\", type: \"text\", label: \"Billing Period (e.g. /mo)\" },\n { name: \"features\", type: \"list\", label: \"Features Checklist\" },\n buttonsField,\n { name: \"footnote\", type: \"text\", label: \"Footnote note (e.g. *cancel anytime)\" },\n { name: \"isFeatured\", type: \"checkbox\", label: \"Highlight Plan (Featured)\", defaultValue: false },\n ],\n },\n ],\n});\n\nexport const teamBlock = withUtilityFields({\n slug: \"team\",\n admin: { group: \"Marketing Grids\", description: \"Showcase of team members with photos and roles\" },\n label: \"Team Showcase\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n {\n name: \"members\",\n type: \"array\",\n label: \"Team Members\",\n fields: [\n { name: \"name\", type: \"text\", label: \"Member Name\" },\n { name: \"role\", type: \"text\", label: \"Role / Position\" },\n { name: \"department\", type: \"text\", label: \"Department / Team tag (e.g. engineering, design)\" },\n { name: \"avatar\", type: \"upload\", label: \"Avatar Image\", relationTo: \"media\" },\n { name: \"bio\", type: \"textarea\", label: \"Brief Bio\" },\n { name: \"twitterUrl\", type: \"text\", label: \"Twitter URL\" },\n { name: \"linkedinUrl\", type: \"text\", label: \"LinkedIn URL\" },\n { name: \"githubUrl\", type: \"text\", label: \"GitHub URL\" },\n { name: \"websiteUrl\", type: \"text\", label: \"Website URL\" },\n ],\n },\n ],\n});\n\nexport const recentFeedBlock = withUtilityFields({\n slug: \"recent-feed\",\n admin: { group: \"Dynamic Content\", description: \"Dynamic feed of recent blog posts or articles\" },\n label: \"Recent Posts Feed\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n {\n name: \"collectionType\",\n type: \"select\",\n label: \"Feed Source Collection\",\n dynamicOptions: \"collections\",\n },\n { name: \"categoryFilter\", type: \"text\", label: \"Filter results by category slug / tag\" },\n { name: \"limit\", type: \"number\", label: \"Max Items to Show\", defaultValue: 3 },\n buttonsField,\n ],\n});\n\nexport const processStepsBlock = withUtilityFields({\n slug: \"process-steps\",\n admin: { group: \"Lead Capture & Interactive\", description: \"Numbered sequence illustrating a process or workflow\" },\n label: \"Process Steps / Timeline\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n {\n name: \"steps\",\n type: \"array\",\n label: \"Steps\",\n fields: [\n { name: \"stepNumber\", type: \"text\", label: \"Step Number (e.g. 01)\" },\n { name: \"icon\", type: \"upload\", label: \"Step Icon / Image\", relationTo: \"media\" },\n { name: \"title\", type: \"text\", label: \"Step Title\" },\n { name: \"description\", type: \"textarea\", label: \"Description\" },\n ],\n },\n ],\n});\n\nexport const formEmbedBlock = withUtilityFields({\n slug: \"form-embed\",\n admin: { group: \"Lead Capture & Interactive\", description: \"Embeddable interactive forms for lead capture\" },\n label: \"Form Embed\",\n fields: [\n { name: \"title\", type: \"text\", label: \"Form Title\" },\n { name: \"subtitle\", type: \"textarea\", label: \"Form Subtitle\" },\n {\n name: \"form\",\n type: \"relationship\",\n relationTo: \"forms\",\n label: \"Form\",\n required: true,\n },\n ],\n});\n\nexport const videoShowcaseBlock = withUtilityFields({\n slug: \"video-showcase\",\n admin: { group: \"Structural Sections\", description: \"Cinematic video player with custom thumbnail\" },\n label: \"Cinematic Video Showcase\",\n fields: [\n { name: \"sectionTitle\", type: \"text\", label: \"Section Heading\" },\n { name: \"sectionSubtitle\", type: \"textarea\", label: \"Section Subtitle\" },\n { name: \"coverImage\", type: \"upload\", label: \"Cinematic Cover Image (Thumbnail)\", relationTo: \"media\" },\n { name: \"videoUrl\", type: \"text\", label: \"Video Embed URL (YouTube / Vimeo / MP4)\" },\n { name: \"videoTitle\", type: \"text\", label: \"Video Title (for accessibility & hover text)\" },\n { name: \"durationBadge\", type: \"text\", label: \"Duration Badge (e.g. '▶ 2:34')\" },\n { name: \"isLightbox\", type: \"checkbox\", label: \"Open in Cinematic Lightbox Modal\", defaultValue: true },\n { name: \"autoplay\", type: \"checkbox\", label: \"Autoplay Video (muted)\", defaultValue: false },\n ],\n});\n\n// ============================================================================\n// Combined Blocks List\n// ============================================================================\n\nexport const coreSemanticBlocks = [\n heroBlock,\n cardBlock,\n featureSplitBlock,\n featureGridBlock,\n ctaBannerBlock,\n testimonialsBlock,\n faqBlock,\n statsBlock,\n logoCloudBlock,\n pricingBlock,\n teamBlock,\n recentFeedBlock,\n processStepsBlock,\n formEmbedBlock,\n videoShowcaseBlock,\n];\n","import type { CollectionConfig } from \"../registry/types.js\";\nimport { coreSemanticBlocks } from \"./blocks.js\";\n\n\nexport const pageCollection: CollectionConfig = {\n slug: \"pages\",\n label: \"Pages\",\n labelPlural: \"Pages\",\n singularLabel: \"Page\",\n admin: {\n useAsTitle: \"title\",\n defaultColumns: [\"title\", \"slug\", \"publishStatus\", \"updatedAt\"],\n description: \"Static pages\",\n },\n fields: [\n {\n name: \"mainTabs\",\n type: \"tabs\",\n tabs: [\n {\n label: \"Content\",\n fields: [\n {\n name: \"title\",\n type: \"text\",\n required: true,\n label: \"Title\",\n admin: {\n description:\n \"The main title of the page as it will appear publicly.\",\n },\n },\n {\n name: \"content\",\n type: \"blocks\",\n label: \"Content\",\n blocks: coreSemanticBlocks,\n },\n ],\n },\n\n {\n label: \"Meta\",\n fields: [],\n },\n {\n label: \"SEO\",\n fields: [\n {\n name: \"metaTitle\",\n type: \"text\",\n label: \"Meta Title\",\n admin: { autoGenerate: \"title\" },\n },\n {\n name: \"metaDescription\",\n type: \"textarea\",\n label: \"Meta Description\",\n admin: { autoGenerate: \"content\" },\n },\n {\n name: \"ogImage\",\n type: \"upload\",\n label: \"OG Image\",\n relationTo: \"media\",\n },\n ],\n },\n ],\n },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"title\" },\n },\n {\n name: \"featuredImage\",\n type: \"upload\",\n label: \"Featured Image\",\n relationTo: \"media\",\n admin: { position: \"sidebar\" },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 10,\n },\n};\n\nexport const pageCollections: Record<string, CollectionConfig> = {\n pages: pageCollection,\n};\n\nexport default pageCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const categoriesCollection: CollectionConfig = {\n slug: \"categories\",\n label: \"Categories\",\n labelPlural: \"Categories\",\n singularLabel: \"Category\",\n admin: {\n useAsTitle: \"name\",\n defaultColumns: [\"name\", \"slug\"],\n description: \"Post categories\",\n layout: \"split\",\n },\n fields: [\n { name: \"name\", type: \"text\", required: true, label: \"Name\" },\n {\n name: \"description\",\n type: \"textarea\",\n label: \"Description\",\n },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"name\" },\n },\n {\n name: \"icon\",\n type: \"upload\",\n label: \"Icon\",\n relationTo: \"media\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"parent\",\n type: \"relationship\",\n label: \"Parent Category\",\n relationTo: \"categories\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"order\",\n type: \"number\",\n label: \"Order\",\n defaultValue: 0,\n admin: { position: \"sidebar\" },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 5,\n },\n};\n\nexport const categoriesCollections: Record<string, CollectionConfig> = {\n categories: categoriesCollection,\n};\n\nexport const productCategoriesCollection: CollectionConfig = {\n slug: \"product-categories\",\n label: \"Product Categories\",\n labelPlural: \"Product Categories\",\n singularLabel: \"Product Category\",\n admin: {\n useAsTitle: \"name\",\n defaultColumns: [\"name\", \"slug\"],\n description: \"Product categories for organizing your catalog\",\n },\n fields: [\n { name: \"name\", type: \"text\", required: true, label: \"Name\" },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"name\" },\n },\n {\n name: \"description\",\n type: \"textarea\",\n label: \"Description\",\n },\n { name: \"image\", type: \"text\", label: \"Image URL\" },\n {\n name: \"parent\",\n type: \"relationship\",\n label: \"Parent Category\",\n relationTo: \"product-categories\",\n admin: { position: \"sidebar\" },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 5,\n },\n};\n\nexport const productCategoriesCollections: Record<string, CollectionConfig> = {\n \"product-categories\": productCategoriesCollection,\n};\n\nexport default categoriesCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const productsCollection: CollectionConfig = {\n slug: \"products\",\n label: \"Products\",\n labelPlural: \"Products\",\n singularLabel: \"Product\",\n admin: {\n useAsTitle: \"title\",\n defaultColumns: [\"title\", \"slug\", \"price\", \"publishStatus\", \"inventory\", \"updatedAt\"],\n description: \"Product catalog\",\n },\n fields: [\n { name: \"title\", type: \"text\", required: true, label: \"Title\" },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"title\" },\n },\n { name: \"description\", type: \"richtext\", label: \"Description\" },\n { name: \"price\", type: \"number\", required: true, label: \"Price\" },\n {\n name: \"compareAtPrice\",\n type: \"number\",\n label: \"Compare at Price\",\n admin: { description: \"Original price for sale display\" },\n },\n {\n name: \"costPrice\",\n type: \"number\",\n label: \"Cost Price\",\n admin: { description: \"For profit calculation\" },\n },\n { name: \"sku\", type: \"text\", required: true, label: \"SKU\" },\n { name: \"barcode\", type: \"text\", label: \"Barcode\" },\n {\n name: \"images\",\n type: \"array\",\n label: \"Images\",\n fields: [\n { name: \"url\", type: \"text\", label: \"URL\" },\n { name: \"alt\", type: \"text\", label: \"Alt Text\" },\n ],\n },\n {\n name: \"category\",\n type: \"relationship\",\n label: \"Category\",\n relationTo: \"product-categories\",\n },\n {\n name: \"inventory\",\n type: \"number\",\n label: \"Inventory\",\n defaultValue: 0,\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 10,\n },\n};\n\nexport const productsCollections: Record<string, CollectionConfig> = {\n products: productsCollection,\n};\n\nexport default productsCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const customersCollection: CollectionConfig = {\n slug: \"customers\",\n label: \"Customers\",\n labelPlural: \"Customers\",\n singularLabel: \"Customer\",\n admin: {\n useAsTitle: \"email\",\n defaultColumns: [\n \"email\",\n \"firstName\",\n \"lastName\",\n \"createdAt\",\n \"updatedAt\",\n ],\n description: \"Customer accounts\",\n },\n fields: [\n { name: \"email\", type: \"email\", required: true, label: \"Email\" },\n { name: \"firstName\", type: \"text\", label: \"First Name\" },\n { name: \"lastName\", type: \"text\", label: \"Last Name\" },\n { name: \"phone\", type: \"text\", label: \"Phone\" },\n {\n name: \"addresses\",\n type: \"array\",\n label: \"Addresses\",\n fields: [\n { name: \"type\", type: \"text\", label: \"Type\" },\n { name: \"line1\", type: \"text\", label: \"Address Line 1\" },\n { name: \"line2\", type: \"text\", label: \"Address Line 2\" },\n { name: \"city\", type: \"text\", label: \"City\" },\n { name: \"state\", type: \"text\", label: \"State\" },\n { name: \"postalCode\", type: \"text\", label: \"Postal Code\" },\n { name: \"country\", type: \"text\", label: \"Country\" },\n ],\n },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"email\" },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 5,\n },\n};\n\nexport const customersCollections: Record<string, CollectionConfig> = {\n customers: customersCollection,\n};\n\nexport default customersCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const ordersCollection: CollectionConfig = {\n slug: \"orders\",\n label: \"Orders\",\n labelPlural: \"Orders\",\n singularLabel: \"Order\",\n admin: {\n useAsTitle: \"orderNumber\",\n defaultColumns: [\n \"orderNumber\",\n \"customer\",\n \"publishStatus\",\n \"total\",\n \"createdAt\",\n \"updatedAt\",\n ],\n description: \"Customer orders\",\n },\n fields: [\n {\n name: \"orderNumber\",\n type: \"text\",\n required: true,\n label: \"Order Number\",\n },\n {\n name: \"customer\",\n type: \"relationship\",\n required: true,\n label: \"Customer\",\n relationTo: \"customers\",\n },\n {\n name: \"paymentStatus\",\n type: \"select\",\n label: \"Payment Status\",\n options: [\n { label: \"Pending\", value: \"pending\" },\n { label: \"Paid\", value: \"paid\" },\n { label: \"Failed\", value: \"failed\" },\n { label: \"Refunded\", value: \"refunded\" },\n ],\n defaultValue: \"pending\",\n },\n {\n name: \"items\",\n type: \"array\",\n label: \"Items\",\n fields: [\n { name: \"product\", type: \"text\", label: \"Product\" },\n { name: \"quantity\", type: \"number\", label: \"Quantity\" },\n { name: \"unitPrice\", type: \"number\", label: \"Unit Price\" },\n { name: \"total\", type: \"number\", label: \"Total\" },\n ],\n },\n { name: \"subtotal\", type: \"number\", required: true, label: \"Subtotal\" },\n { name: \"tax\", type: \"number\", label: \"Tax\" },\n { name: \"shipping\", type: \"number\", label: \"Shipping\" },\n { name: \"discount\", type: \"number\", label: \"Discount\" },\n { name: \"total\", type: \"number\", required: true, label: \"Total\" },\n { name: \"notes\", type: \"richtext\", label: \"Notes\" },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"orderNumber\" },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 10,\n },\n};\n\nexport const ordersCollections: Record<string, CollectionConfig> = {\n orders: ordersCollection,\n};\n\nexport default ordersCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const couponsCollection: CollectionConfig = {\n slug: \"coupons\",\n label: \"Coupons\",\n labelPlural: \"Coupons\",\n singularLabel: \"Coupon\",\n admin: {\n useAsTitle: \"code\",\n defaultColumns: [\"code\", \"type\", \"value\", \"active\", \"expiresAt\"],\n description: \"Discount codes and promotions\",\n },\n fields: [\n { name: \"code\", type: \"text\", required: true, label: \"Code\" },\n {\n name: \"type\",\n type: \"select\",\n required: true,\n label: \"Type\",\n options: [\n { label: \"Percentage\", value: \"percentage\" },\n { label: \"Fixed Amount\", value: \"fixed\" },\n { label: \"Free Shipping\", value: \"freeShipping\" },\n ],\n },\n { name: \"value\", type: \"number\", label: \"Value\" },\n { name: \"minPurchase\", type: \"number\", label: \"Minimum Purchase\" },\n { name: \"maxDiscount\", type: \"number\", label: \"Max Discount\" },\n { name: \"usageLimit\", type: \"number\", label: \"Usage Limit\" },\n {\n name: \"usedCount\",\n type: \"number\",\n defaultValue: 0,\n label: \"Used Count\",\n },\n { name: \"startsAt\", type: \"date\", label: \"Starts At\" },\n { name: \"expiresAt\", type: \"date\", label: \"Expires At\" },\n { name: \"active\", type: \"checkbox\", defaultValue: true, label: \"Active\" },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 5,\n },\n};\n\nexport const couponsCollections: Record<string, CollectionConfig> = {\n coupons: couponsCollection,\n};\n\nexport default couponsCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const formsCollection: CollectionConfig = {\n slug: \"forms\",\n label: \"Forms\",\n labelPlural: \"Forms\",\n singularLabel: \"Form\",\n admin: {\n useAsTitle: \"name\",\n defaultColumns: [\"name\", \"slug\", \"updatedAt\"],\n description: \"Reusable form definitions\",\n },\n fields: [\n { name: \"name\", type: \"text\", required: true, label: \"Name\" },\n { name: \"subtitle\", type: \"textarea\", label: \"Subtitle\" },\n {\n name: \"slug\",\n type: \"text\",\n required: true,\n label: \"Slug\",\n admin: { position: \"sidebar\", autoGenerate: \"name\" },\n },\n {\n name: \"submitButtonText\",\n type: \"text\",\n label: \"Submit Button Text\",\n defaultValue: \"Submit\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"consentCheckboxText\",\n type: \"text\",\n label: \"Consent Agreement label (e.g. I agree to terms)\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"redirectUrl\",\n type: \"text\",\n label: \"Success Redirect URL\",\n admin: { position: \"sidebar\" },\n },\n {\n name: \"fields\",\n type: \"array\",\n label: \"Form Fields\",\n fields: [\n {\n name: \"fieldName\",\n type: \"text\",\n label: \"Field API Name (e.g. company)\",\n },\n {\n name: \"inputType\",\n type: \"select\",\n label: \"Input Type\",\n defaultValue: \"text\",\n options: [\n { label: \"Text input\", value: \"text\" },\n { label: \"Email input\", value: \"email\" },\n { label: \"Phone number input\", value: \"tel\" },\n { label: \"Multi-line textarea\", value: \"textarea\" },\n { label: \"Checkbox selector\", value: \"checkbox\" },\n ],\n },\n {\n name: \"placeholder\",\n type: \"text\",\n label: \"Input Placeholder Text\",\n },\n {\n name: \"isRequired\",\n type: \"checkbox\",\n label: \"Make this field required\",\n defaultValue: false,\n },\n ],\n },\n {\n name: \"entries\",\n type: \"relationship\",\n relationTo: \"form-entries\",\n hasMany: true,\n label: \"Entries\",\n admin: {\n description: \"Form submissions linked to this form.\",\n },\n },\n ],\n timestamps: true,\n versions: {\n drafts: true,\n maxPerDoc: 5,\n },\n};\n\nexport const formsCollections: Record<string, CollectionConfig> = {\n forms: formsCollection,\n};\n\nexport default formsCollections;\n","import type { CollectionConfig } from \"../registry/types.js\";\n\n\nexport const formEntriesCollection: CollectionConfig = {\n slug: \"form-entries\",\n label: \"Form Entries\",\n labelPlural: \"Form Entries\",\n singularLabel: \"Form Entry\",\n admin: {\n useAsTitle: \"id\",\n defaultColumns: [\"id\", \"form\", \"createdAt\", \"ipAddress\"],\n description: \"Form submission entries\",\n },\n fields: [\n {\n name: \"form\",\n type: \"relationship\",\n relationTo: \"forms\",\n required: true,\n label: \"Form\",\n admin: {\n position: \"sidebar\",\n readOnly: true,\n description: \"The form this entry belongs to.\",\n },\n },\n {\n name: \"data\",\n type: \"json\",\n label: \"Submitted Data\",\n admin: {\n readOnly: true,\n description: \"All field values submitted with this entry.\",\n },\n },\n {\n name: \"ipAddress\",\n type: \"text\",\n label: \"IP Address\",\n admin: {\n position: \"sidebar\",\n readOnly: true,\n description: \"The IP address of the submitter.\",\n },\n },\n ],\n timestamps: true,\n};\n\nexport const formEntriesCollections: Record<string, CollectionConfig> = {\n \"form-entries\": formEntriesCollection,\n};\n\nexport default formEntriesCollections;\n","// ============================================================================\n// Site Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const siteSettingsGlobal: GlobalConfig = {\n slug: \"site-settings\",\n label: \"Site Settings\",\n\n admin: {\n group: \"settings\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"siteName\",\n type: \"text\",\n label: \"Site Name\",\n required: true,\n admin: {},\n },\n {\n name: \"siteDescription\",\n type: \"textarea\",\n label: \"Site Description\",\n admin: {\n placeholder: \"Enter a brief description of your site for SEO and search results.\"\n },\n },\n {\n name: \"siteLogo\",\n type: \"upload\",\n label: \"Site Logo\",\n relationTo: \"media\",\n },\n {\n name: \"siteFavicon\",\n type: \"upload\",\n label: \"Favicon\",\n relationTo: \"media\",\n },\n {\n name: \"siteOgImage\",\n type: \"upload\",\n label: \"Default OG Image\",\n relationTo: \"media\",\n },\n {\n name: \"siteUrl\",\n type: \"text\",\n label: \"Site URL\",\n admin: {},\n },\n {\n name: \"maintenanceEnabled\",\n type: \"checkbox\",\n label: \"Enable Maintenance Mode\",\n defaultValue: false,\n admin: {\n description: \"When enabled, the public site will show a maintenance page.\"\n }\n },\n {\n name: \"maintenance\",\n type: \"group\",\n label: \"Maintenance Configuration\",\n admin: {\n condition: (data: any) => data.maintenanceEnabled === true,\n },\n fields: [\n {\n name: \"message\",\n type: \"textarea\",\n label: \"Maintenance Message\",\n admin: {\n placeholder: \"We'll be back soon! We're performing scheduled maintenance.\"\n }\n },\n {\n name: \"bypassToken\",\n type: \"text\",\n label: \"Bypass Token\",\n admin: {\n description: \"Append ?bypass=YOUR_TOKEN to URL to view the site while in maintenance mode.\"\n }\n }\n ]\n },\n {\n name: \"enableI18n\",\n type: \"checkbox\",\n label: \"Enable Internationalization (i18n)\",\n defaultValue: false,\n admin: {\n description: \"Enable support for multiple languages.\"\n }\n },\n {\n name: \"i18n\",\n type: \"group\",\n label: \"Localization\",\n admin: {\n condition: (data: any) => data.enableI18n === true,\n },\n fields: [\n {\n name: \"language\",\n type: \"select\",\n label: \"Default Language\",\n defaultValue: \"en\",\n options: [\n { label: \"English\", value: \"en\" },\n { label: \"Spanish\", value: \"es\" },\n { label: \"French\", value: \"fr\" },\n { label: \"German\", value: \"de\" },\n { label: \"Portuguese\", value: \"pt\" },\n { label: \"Italian\", value: \"it\" },\n { label: \"Dutch\", value: \"nl\" },\n { label: \"Russian\", value: \"ru\" },\n { label: \"Japanese\", value: \"ja\" },\n { label: \"Chinese\", value: \"zh\" },\n { label: \"Korean\", value: \"ko\" },\n { label: \"Arabic\", value: \"ar\" },\n ],\n },\n {\n name: \"timezone\",\n type: \"text\",\n label: \"Timezone\",\n defaultValue: \"UTC\",\n },\n ]\n },\n {\n name: \"logo\",\n type: \"group\",\n label: \"Logo Display Settings\",\n fields: [\n {\n name: \"width\",\n type: \"number\",\n label: \"Max Width (px)\",\n },\n {\n name: \"height\",\n type: \"number\",\n label: \"Max Height (px)\",\n },\n {\n name: \"altText\",\n type: \"text\",\n label: \"Alt Text\",\n },\n ],\n },\n {\n name: \"analyticsEnabled\",\n type: \"checkbox\",\n label: \"Enable Analytics & Tracking\",\n defaultValue: false,\n },\n {\n name: \"analytics\",\n type: \"group\",\n label: \"Tracking Configurations\",\n admin: {\n condition: (data: any) => data.analyticsEnabled === true,\n },\n fields: [\n {\n name: \"googleAnalyticsId\",\n type: \"text\",\n label: \"Google Analytics ID\",\n },\n {\n name: \"googleTagManagerId\",\n type: \"text\",\n label: \"Google Tag Manager ID\",\n },\n {\n name: \"plausibleDomain\",\n type: \"text\",\n label: \"Plausible Domain\",\n },\n {\n name: \"mixpanelToken\",\n type: \"password\",\n label: \"Mixpanel Token\",\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// SEO Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const seoSettingsGlobal: GlobalConfig = {\n slug: \"seo-settings\",\n label: \"SEO Settings\",\n\n admin: {\n group: \"settings\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"seoMode\",\n type: \"select\",\n label: \"Visibility Mode\",\n defaultValue: \"simple\",\n options: [\n { label: \"Simple (Basic Meta)\", value: \"simple\" },\n { label: \"Advanced (Full Technical SEO)\", value: \"advanced\" },\n ],\n admin: {\n description: \"Switch to advanced mode to control robots.txt, canonical URLs, and deep metadata.\"\n }\n },\n {\n name: \"defaultTitle\",\n type: \"text\",\n label: \"Default Title\",\n admin: {},\n },\n {\n name: \"defaultDescription\",\n type: \"textarea\",\n label: \"Default Description\",\n admin: {},\n },\n {\n name: \"titleTemplate\",\n type: \"text\",\n label: \"Title Template\",\n defaultValue: \"{{title}} | {{siteName}}\",\n admin: {},\n },\n {\n name: \"siteNameInTitle\",\n type: \"checkbox\",\n label: \"Include Site Name in Title\",\n defaultValue: true,\n },\n {\n name: \"separator\",\n type: \"text\",\n label: \"Title Separator\",\n defaultValue: \" | \",\n admin: {},\n },\n {\n name: \"meta\",\n type: \"group\",\n label: \"Technical Meta Settings\",\n admin: {\n condition: (data: any) => data.seoMode === \"advanced\",\n },\n fields: [\n {\n name: \"robots\",\n type: \"text\",\n label: \"Robots Meta\",\n defaultValue: \"index, follow\",\n },\n {\n name: \"canonicalUrl\",\n type: \"text\",\n label: \"Canonical URL\",\n },\n {\n name: \"ogType\",\n type: \"select\",\n label: \"Default OG Type\",\n defaultValue: \"website\",\n options: [\n { label: \"Website\", value: \"website\" },\n { label: \"Article\", value: \"article\" },\n { label: \"Product\", value: \"product\" },\n { label: \"Book\", value: \"book\" },\n { label: \"Music\", value: \"music\" },\n { label: \"Video\", value: \"video\" },\n ],\n },\n ],\n },\n {\n name: \"enableSitemap\",\n type: \"checkbox\",\n label: \"Enable XML Sitemap\",\n defaultValue: true,\n },\n {\n name: \"sitemap\",\n type: \"group\",\n label: \"Sitemap Configuration\",\n admin: {\n condition: (data: any) => data.enableSitemap === true && data.seoMode === \"advanced\",\n },\n fields: [\n {\n name: \"sitemapUrls\",\n type: \"number\",\n label: \"Sitemap URL Limit\",\n defaultValue: 50000,\n },\n ],\n },\n {\n name: \"robotsTxt\",\n type: \"textarea\",\n label: \"Custom robots.txt\",\n admin: {\n condition: (data: any) => data.seoMode === \"advanced\",\n },\n },\n {\n name: \"social\",\n type: \"group\",\n label: \"Social Media\",\n fields: [\n {\n name: \"twitterHandle\",\n type: \"text\",\n label: \"Twitter/X Handle\",\n admin: {},\n },\n {\n name: \"twitterCardType\",\n type: \"select\",\n label: \"Twitter Card Type\",\n defaultValue: \"summary_large_image\",\n options: [\n { label: \"Summary\", value: \"summary\" },\n { label: \"Summary with Large Image\", value: \"summary_large_image\" },\n { label: \"App\", value: \"app\" },\n { label: \"Player\", value: \"player\" },\n ],\n },\n {\n name: \"fbAppId\",\n type: \"text\",\n label: \"Facebook App ID\",\n },\n ],\n },\n {\n name: \"advanced\",\n type: \"group\",\n label: \"Advanced\",\n fields: [\n {\n name: \"jsonLdEnabled\",\n type: \"checkbox\",\n label: \"Enable JSON-LD\",\n defaultValue: true,\n admin: {},\n },\n {\n name: \"breadcrumbsEnabled\",\n type: \"checkbox\",\n label: \"Enable Breadcrumbs\",\n defaultValue: true,\n },\n {\n name: \"paginationSize\",\n type: \"number\",\n label: \"Default Pagination Size\",\n defaultValue: 10,\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// Social Media Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const socialSettingsGlobal: GlobalConfig = {\n slug: \"social-settings\",\n label: \"Social Media\",\n \n\n admin: {\n group: \"settings\",\n \n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"showAll\",\n type: \"checkbox\",\n label: \"Show All Platforms\",\n defaultValue: false,\n admin: {\n description: \"Toggle to show niche or secondary social platforms.\"\n }\n },\n {\n name: \"facebook\",\n type: \"text\",\n label: \"Facebook\",\n },\n {\n name: \"twitter\",\n type: \"text\",\n label: \"Twitter/X\",\n },\n {\n name: \"instagram\",\n type: \"text\",\n label: \"Instagram\",\n },\n {\n name: \"linkedin\",\n type: \"text\",\n label: \"LinkedIn\",\n },\n {\n name: \"youtube\",\n type: \"text\",\n label: \"YouTube\",\n },\n {\n name: \"tiktok\",\n type: \"text\",\n label: \"TikTok\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n {\n name: \"pinterest\",\n type: \"text\",\n label: \"Pinterest\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n {\n name: \"discord\",\n type: \"text\",\n label: \"Discord\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n {\n name: \"twitch\",\n type: \"text\",\n label: \"Twitch\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n {\n name: \"github\",\n type: \"text\",\n label: \"GitHub\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n {\n name: \"mastodon\",\n type: \"text\",\n label: \"Mastodon\",\n admin: {\n condition: (data: any) => data.showAll === true,\n }\n },\n ],\n};\n","// ============================================================================\n// Email Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const emailSettingsGlobal: GlobalConfig = {\n slug: \"email-settings\",\n label: \"Email Settings\",\n\n admin: {\n group: \"settings\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"fromName\",\n type: \"text\",\n label: \"From Name\",\n admin: {},\n },\n {\n name: \"fromEmail\",\n type: \"email\",\n label: \"From Email\",\n required: true,\n admin: {},\n },\n {\n name: \"replyTo\",\n type: \"email\",\n label: \"Reply-To Email\",\n admin: {},\n },\n {\n name: \"provider\",\n type: \"select\",\n label: \"Email Provider\",\n defaultValue: \"smtp\",\n options: [\n { label: \"SMTP (Standard)\", value: \"smtp\" },\n { label: \"Resend\", value: \"resend\" },\n { label: \"SendGrid\", value: \"sendgrid\" },\n { label: \"Mailgun\", value: \"mailgun\" },\n { label: \"AWS SES\", value: \"ses\" },\n ],\n },\n {\n name: \"smtp\",\n type: \"group\",\n label: \"SMTP Settings\",\n admin: {\n condition: (data) => data.provider === \"smtp\",\n },\n fields: [\n {\n name: \"smtpService\",\n type: \"select\",\n label: \"SMTP Service\",\n defaultValue: \"custom\",\n options: [\n { label: \"Custom SMTP\", value: \"custom\" },\n { label: \"Gmail\", value: \"gmail\" },\n { label: \"Outlook / Office 365\", value: \"outlook\" },\n { label: \"Brevo (Sendinblue)\", value: \"brevo\" },\n { label: \"Mailgun (SMTP)\", value: \"mailgun-smtp\" },\n { label: \"SendGrid (SMTP)\", value: \"sendgrid-smtp\" },\n { label: \"Mandrill / Mailchimp\", value: \"mandrill\" },\n ],\n admin: {\n description:\n \"Selecting a known service will pre-configure host and port settings.\",\n },\n },\n {\n name: \"host\",\n type: \"text\",\n label: \"Host\",\n admin: {\n condition: (data, siblingData) =>\n siblingData.smtpService === \"custom\",\n placeholder: \"smtp.example.com\",\n },\n },\n {\n name: \"port\",\n type: \"number\",\n label: \"Port\",\n defaultValue: 587,\n admin: {\n condition: (data, siblingData) =>\n siblingData.smtpService === \"custom\",\n },\n },\n {\n name: \"username\",\n type: \"text\",\n label: \"Username\",\n },\n {\n name: \"password\",\n type: \"password\",\n label: \"Password\",\n },\n {\n name: \"secure\",\n type: \"checkbox\",\n label: \"Use TLS/SSL\",\n defaultValue: true,\n },\n ],\n },\n {\n name: \"resend\",\n type: \"group\",\n label: \"Resend Settings\",\n admin: {\n condition: (data) => data.provider === \"resend\",\n },\n fields: [\n {\n name: \"apiKey\",\n type: \"password\",\n label: \"API Key\",\n required: true,\n },\n ],\n },\n {\n name: \"sendgrid\",\n type: \"group\",\n label: \"SendGrid Settings\",\n admin: {\n condition: (data) => data.provider === \"sendgrid\",\n },\n fields: [\n {\n name: \"apiKey\",\n type: \"password\",\n label: \"API Key\",\n required: true,\n },\n ],\n },\n {\n name: \"mailgun\",\n type: \"group\",\n label: \"Mailgun Settings\",\n admin: {\n condition: (data) => data.provider === \"mailgun\",\n },\n fields: [\n {\n name: \"apiKey\",\n type: \"password\",\n label: \"API Key\",\n required: true,\n },\n {\n name: \"domain\",\n type: \"text\",\n label: \"Domain\",\n required: true,\n },\n {\n name: \"region\",\n type: \"select\",\n label: \"Region\",\n defaultValue: \"us\",\n options: [\n { label: \"US (United States)\", value: \"us\" },\n { label: \"EU (Europe)\", value: \"eu\" },\n ],\n },\n ],\n },\n {\n name: \"ses\",\n type: \"group\",\n label: \"AWS SES Settings\",\n admin: {\n condition: (data) => data.provider === \"ses\",\n },\n fields: [\n {\n name: \"accessKeyId\",\n type: \"text\",\n label: \"Access Key ID\",\n required: true,\n },\n {\n name: \"secretAccessKey\",\n type: \"password\",\n label: \"Secret Access Key\",\n required: true,\n },\n {\n name: \"region\",\n type: \"text\",\n label: \"Region\",\n defaultValue: \"us-east-1\",\n admin: { placeholder: \"us-east-1\" },\n },\n ],\n },\n {\n name: \"testEmailSection\",\n type: \"row\",\n label: \"Test Email\",\n admin: {\n description: \"Enter an email address to send a test email.\",\n },\n fields: [\n {\n name: \"testEmail\",\n type: \"email\",\n label: \"Email\",\n admin: {\n width: \"300px\",\n },\n },\n {\n name: \"sendTestEmail\",\n type: \"action\",\n label: \"Send Test Email\",\n admin: {\n action: \"/api/globals/email-settings/test\",\n method: \"POST\",\n },\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// Access Control Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const accessSettingsGlobal: GlobalConfig = {\n slug: \"access-settings\",\n label: \"Access Control\",\n\n admin: {\n group: \"settings\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"enablePublicAccess\",\n type: \"checkbox\",\n label: \"Enable Public Access\",\n defaultValue: true,\n admin: {},\n },\n {\n name: \"defaultCollectionAccess\",\n type: \"select\",\n label: \"Default Collection Access\",\n defaultValue: \"read\",\n options: [\n { label: \"Read Only\", value: \"read\" },\n { label: \"Read & Create\", value: \"create\" },\n { label: \"Read & Create & Update\", value: \"update\" },\n { label: \"Full Access\", value: \"admin\" },\n { label: \"No Access\", value: \"none\" },\n ],\n admin: {},\n },\n {\n name: \"apiAccess\",\n type: \"group\",\n label: \"API Access\",\n fields: [\n {\n name: \"restEnabled\",\n type: \"checkbox\",\n label: \"Enable REST API\",\n defaultValue: true,\n },\n {\n name: \"graphqlEnabled\",\n type: \"checkbox\",\n label: \"Enable GraphQL\",\n defaultValue: false,\n },\n {\n name: \"trpcEnabled\",\n type: \"checkbox\",\n label: \"Enable tRPC\",\n defaultValue: false,\n },\n {\n name: \"wsEnabled\",\n type: \"checkbox\",\n label: \"Enable WebSocket\",\n defaultValue: false,\n },\n {\n name: \"requireAuth\",\n type: \"checkbox\",\n label: \"Require Authentication\",\n defaultValue: false,\n },\n {\n name: \"cors\",\n type: \"group\",\n label: \"CORS Settings\",\n admin: {\n condition: (data: any) =>\n data.apiAccess?.restEnabled === true ||\n data.apiAccess?.graphqlEnabled === true,\n },\n fields: [\n {\n name: \"allowedOrigins\",\n type: \"textarea\",\n label: \"Allowed Origins (one per line)\",\n admin: {\n placeholder: \"https://example.com\\nhttps://app.example.com\",\n },\n },\n ],\n },\n ],\n },\n {\n name: \"rateLimiting\",\n type: \"group\",\n label: \"Rate Limiting Configuration\",\n admin: {\n condition: (data: any) => data.rateLimiting?.enabled === true,\n },\n fields: [\n {\n name: \"enabled\",\n type: \"checkbox\",\n label: \"Enable Global Rate Limiting\",\n defaultValue: true,\n },\n {\n name: \"maxRequests\",\n type: \"number\",\n label: \"Max Requests\",\n defaultValue: 100,\n admin: {\n condition: (data: any, siblingData: any) =>\n siblingData.enabled === true,\n },\n },\n {\n name: \"windowMs\",\n type: \"number\",\n label: \"Window (ms)\",\n defaultValue: 60000,\n admin: {\n condition: (data: any, siblingData: any) =>\n siblingData.enabled === true,\n },\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// E-commerce Store Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nconst countryOptions = [\n { label: \"United States\", value: \"US\" },\n { label: \"United Kingdom\", value: \"GB\" },\n { label: \"Canada\", value: \"CA\" },\n { label: \"Australia\", value: \"AU\" },\n { label: \"Germany\", value: \"DE\" },\n { label: \"France\", value: \"FR\" },\n { label: \"Netherlands\", value: \"NL\" },\n { label: \"Belgium\", value: \"BE\" },\n { label: \"Spain\", value: \"ES\" },\n { label: \"Italy\", value: \"IT\" },\n { label: \"Portugal\", value: \"PT\" },\n { label: \"Sweden\", value: \"SE\" },\n { label: \"Norway\", value: \"NO\" },\n { label: \"Denmark\", value: \"DK\" },\n { label: \"Finland\", value: \"FI\" },\n { label: \"Austria\", value: \"AT\" },\n { label: \"Switzerland\", value: \"CH\" },\n { label: \"Japan\", value: \"JP\" },\n { label: \"South Korea\", value: \"KR\" },\n { label: \"China\", value: \"CN\" },\n { label: \"India\", value: \"IN\" },\n { label: \"Brazil\", value: \"BR\" },\n { label: \"Mexico\", value: \"MX\" },\n];\n\nexport const storeSettingsGlobal: GlobalConfig = {\n slug: \"store-settings\",\n label: \"Store Settings\",\n \n\n admin: {\n group: \"settings\",\n \n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"storeName\",\n type: \"text\",\n label: \"Store Name\",\n required: true,\n },\n {\n name: \"storeEmail\",\n type: \"email\",\n label: \"Contact Email\",\n required: true,\n },\n {\n name: \"storePhone\",\n type: \"text\",\n label: \"Phone Number\",\n },\n {\n name: \"address\",\n type: \"group\",\n label: \"Store Address\",\n fields: [\n {\n name: \"street\",\n type: \"text\",\n label: \"Street Address\",\n },\n {\n name: \"city\",\n type: \"text\",\n label: \"City\",\n },\n {\n name: \"state\",\n type: \"text\",\n label: \"State/Province\",\n },\n {\n name: \"postalCode\",\n type: \"text\",\n label: \"Postal Code\",\n },\n {\n name: \"country\",\n type: \"select\",\n label: \"Country\",\n options: countryOptions,\n },\n ],\n },\n {\n name: \"currency\",\n type: \"group\",\n label: \"Currency\",\n fields: [\n {\n name: \"code\",\n type: \"select\",\n label: \"Currency Code\",\n defaultValue: \"USD\",\n options: [\n { label: \"USD - US Dollar\", value: \"USD\" },\n { label: \"EUR - Euro\", value: \"EUR\" },\n { label: \"GBP - British Pound\", value: \"GBP\" },\n { label: \"CAD - Canadian Dollar\", value: \"CAD\" },\n { label: \"AUD - Australian Dollar\", value: \"AUD\" },\n { label: \"JPY - Japanese Yen\", value: \"JPY\" },\n { label: \"CNY - Chinese Yuan\", value: \"CNY\" },\n { label: \"INR - Indian Rupee\", value: \"INR\" },\n { label: \"BRL - Brazilian Real\", value: \"BRL\" },\n { label: \"MXN - Mexican Peso\", value: \"MXN\" },\n ],\n },\n {\n name: \"symbol\",\n type: \"text\",\n label: \"Symbol\",\n defaultValue: \"$\",\n },\n {\n name: \"position\",\n type: \"select\",\n label: \"Symbol Position\",\n defaultValue: \"before\",\n options: [\n { label: \"Before amount\", value: \"before\" },\n { label: \"After amount\", value: \"after\" },\n ],\n },\n {\n name: \"decimals\",\n type: \"number\",\n label: \"Decimal Places\",\n defaultValue: 2,\n },\n ],\n },\n {\n name: \"tax\",\n type: \"group\",\n label: \"Tax Logistics\",\n admin: {\n condition: (data: any) => data.tax?.enabled === true,\n },\n fields: [\n {\n name: \"enabled\",\n type: \"checkbox\",\n label: \"Enable Tax\",\n defaultValue: true,\n },\n {\n name: \"rate\",\n type: \"number\",\n label: \"Tax Rate (%)\",\n admin: {\n placeholder: \"10\",\n condition: (data: any, siblingData: any) => siblingData.enabled === true,\n },\n },\n {\n name: \"includedInPrice\",\n type: \"checkbox\",\n label: \"Tax Included in Prices\",\n admin: {\n condition: (data: any, siblingData: any) => siblingData.enabled === true,\n },\n },\n {\n name: \"taxId\",\n type: \"text\",\n label: \"Tax ID / VAT Number\",\n admin: {\n condition: (data: any, siblingData: any) => siblingData.enabled === true,\n },\n },\n ],\n },\n {\n name: \"shipping\",\n type: \"group\",\n label: \"Shipping Logic\",\n admin: {\n condition: (data: any) => data.shipping?.enableLocalPickup === true || data.shipping?.flatRate > 0,\n },\n fields: [\n {\n name: \"enableLocalPickup\",\n type: \"checkbox\",\n label: \"Enable Local Pickup\",\n defaultValue: true,\n },\n {\n name: \"flatRate\",\n type: \"number\",\n label: \"Flat Rate Shipping Fee\",\n admin: {\n \n },\n },\n {\n name: \"freeShippingThreshold\",\n type: \"number\",\n label: \"Free Shipping Minimum\",\n admin: {\n condition: (data: any, siblingData: any) => siblingData.flatRate > 0,\n },\n },\n ],\n },\n {\n name: \"orders\",\n type: \"group\",\n label: \"Orders\",\n fields: [\n {\n name: \"orderNumberPrefix\",\n type: \"text\",\n label: \"Order Number Prefix\",\n defaultValue: \"ORD\",\n admin: {\n \n },\n },\n {\n name: \"allowGuestCheckout\",\n type: \"checkbox\",\n label: \"Allow Guest Checkout\",\n defaultValue: true,\n },\n {\n name: \"requirePhone\",\n type: \"checkbox\",\n label: \"Require Phone Number\",\n defaultValue: true,\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// Payment Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const paymentSettingsGlobal: GlobalConfig = {\n slug: \"payment-settings\",\n label: \"Payment Settings\",\n \n\n admin: {\n group: \"settings\",\n \n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"testMode\",\n type: \"checkbox\",\n label: \"Test Mode\",\n defaultValue: true,\n admin: {\n \n },\n },\n {\n name: \"provider\",\n type: \"select\",\n label: \"Primary Payment Provider\",\n defaultValue: \"stripe\",\n options: [\n { label: \"Stripe\", value: \"stripe\" },\n { label: \"PayPal\", value: \"paypal\" },\n { label: \"Square\", value: \"square\" },\n { label: \"Manual Methods Only\", value: \"manual\" },\n ],\n },\n {\n name: \"stripe\",\n type: \"group\",\n label: \"Stripe\",\n admin: {\n condition: (data) => data.provider === \"stripe\",\n },\n fields: [\n {\n name: \"enabled\",\n type: \"checkbox\",\n label: \"Enable Stripe\",\n defaultValue: false,\n },\n {\n name: \"publishableKey\",\n type: \"text\",\n label: \"Publishable Key\",\n admin: {\n placeholder: \"pk_live_...\",\n },\n },\n {\n name: \"secretKey\",\n type: \"password\",\n label: \"Secret Key\",\n },\n {\n name: \"webhookSecret\",\n type: \"password\",\n label: \"Webhook Secret\",\n admin: {\n \n },\n },\n ],\n },\n {\n name: \"paypal\",\n type: \"group\",\n label: \"PayPal\",\n admin: {\n condition: (data) => data.provider === \"paypal\",\n },\n fields: [\n {\n name: \"enabled\",\n type: \"checkbox\",\n label: \"Enable PayPal\",\n defaultValue: false,\n },\n {\n name: \"clientId\",\n type: \"text\",\n label: \"Client ID\",\n },\n {\n name: \"clientSecret\",\n type: \"password\",\n label: \"Client Secret\",\n },\n {\n name: \"mode\",\n type: \"select\",\n label: \"Mode\",\n defaultValue: \"sandbox\",\n options: [\n { label: \"Sandbox (Test)\", value: \"sandbox\" },\n { label: \"Live\", value: \"live\" },\n ],\n },\n ],\n },\n {\n name: \"square\",\n type: \"group\",\n label: \"Square\",\n admin: {\n condition: (data) => data.provider === \"square\",\n },\n fields: [\n {\n name: \"enabled\",\n type: \"checkbox\",\n label: \"Enable Square\",\n defaultValue: false,\n },\n {\n name: \"applicationId\",\n type: \"text\",\n label: \"Application ID\",\n },\n {\n name: \"accessToken\",\n type: \"password\",\n label: \"Access Token\",\n },\n {\n name: \"locationId\",\n type: \"text\",\n label: \"Location ID\",\n },\n ],\n },\n {\n name: \"methods\",\n type: \"group\",\n label: \"Manual Payment Methods\",\n fields: [\n {\n name: \"cod\",\n type: \"checkbox\",\n label: \"Cash on Delivery\",\n defaultValue: true,\n },\n {\n name: \"bankTransfer\",\n type: \"checkbox\",\n label: \"Bank Transfer\",\n defaultValue: true,\n },\n {\n name: \"cash\",\n type: \"checkbox\",\n label: \"Cash (Local Pickup)\",\n defaultValue: true,\n },\n {\n name: \"check\",\n type: \"checkbox\",\n label: \"Check\",\n defaultValue: false,\n },\n ],\n },\n {\n name: \"bankTransfer\",\n type: \"group\",\n label: \"Bank Transfer Details\",\n admin: {\n \n },\n fields: [\n {\n name: \"bankName\",\n type: \"text\",\n label: \"Bank Name\",\n },\n {\n name: \"accountName\",\n type: \"text\",\n label: \"Account Name\",\n },\n {\n name: \"accountNumber\",\n type: \"text\",\n label: \"Account Number\",\n },\n {\n name: \"routingNumber\",\n type: \"text\",\n label: \"Routing/Sort Code\",\n },\n {\n name: \"iban\",\n type: \"text\",\n label: \"IBAN\",\n },\n {\n name: \"swift\",\n type: \"text\",\n label: \"SWIFT/BIC\",\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// System Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const systemSettingsGlobal: GlobalConfig = {\n slug: \"system\",\n label: \"System\",\n admin: {\n group: \"settings\",\n description: \"Core system configuration and secrets\",\n },\n access: {\n read: () => true,\n update: () => true,\n },\n fields: [\n {\n name: \"appSecret\",\n type: \"secret\",\n label: \"App Secret\",\n required: false,\n admin: {\n description: \"Auto-generated master secret used for encryption and auth. Auto-created if empty on load.\",\n readOnly: true,\n },\n },\n {\n name: \"encryptionKey\",\n type: \"text\",\n label: \"Encryption Key\",\n required: false,\n admin: {\n description: \"Auto-generated key for data encryption at rest.\",\n readOnly: true,\n },\n },\n {\n name: \"sessionMaxAge\",\n type: \"number\",\n label: \"Session Max Age (days)\",\n required: false,\n defaultValue: 7,\n admin: {\n description: \"Maximum session duration in days\",\n },\n },\n {\n name: \"maxSessionsPerUser\",\n type: \"number\",\n label: \"Max Sessions Per User\",\n required: false,\n defaultValue: 3,\n admin: {\n description: \"Maximum concurrent sessions allowed per user\",\n },\n },\n\n ],\n};","// ============================================================================\n// Header Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const headerSettingsGlobal: GlobalConfig = {\n slug: \"header-settings\",\n label: \"Header Settings\",\n\n admin: {\n group: \"Header Configuration\",\n description: \"Manage global header settings like the logo and navigation.\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"site_logo\",\n type: \"upload\",\n relationTo: \"media\",\n label: \"Site Logo\",\n },\n {\n name: \"site_menu\",\n type: \"relationship\",\n relationTo: \"menu\",\n label: \"Site Menu\",\n },\n {\n name: \"header_text\",\n type: \"richtext\",\n label: \"Header Text\",\n },\n {\n name: \"header_buttons\",\n type: \"array\",\n label: \"Header Buttons\",\n fields: [\n {\n name: \"button\",\n type: \"group\",\n label: \"Button\",\n fields: [\n {\n name: \"text\",\n type: \"text\",\n label: \"Button Text\",\n },\n {\n name: \"url\",\n type: \"text\",\n label: \"Button URL\",\n },\n ],\n },\n ],\n },\n ],\n};\n","// ============================================================================\n// Footer Settings Global\n// ============================================================================\n\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const footerSettingsGlobal: GlobalConfig = {\n slug: \"footer-settings\",\n label: \"Footer Settings\",\n\n admin: {\n group: \"Footer Configuration\",\n description: \"Manage global footer settings like the logo, text, and links.\",\n },\n\n access: {\n read: () => true,\n update: () => true,\n },\n\n fields: [\n {\n name: \"footer_logo\",\n type: \"upload\",\n relationTo: \"media\",\n label: \"Footer Logo\",\n },\n {\n name: \"footer_text\",\n type: \"richtext\",\n label: \"Footer Text\",\n },\n {\n name: \"footer_address\",\n type: \"text\",\n label: \"Footer Address\",\n },\n {\n name: \"footer_phone\",\n type: \"text\",\n label: \"Footer Phone\",\n },\n {\n name: \"footer_email\",\n type: \"text\",\n label: \"Footer Email\",\n },\n {\n name: \"footer_hours\",\n type: \"array\",\n label: \"Footer Hours\",\n fields: [\n {\n name: \"hour\",\n type: \"text\",\n label: \"Hour\",\n },\n ],\n },\n {\n name: \"footer_social_links\",\n type: \"array\",\n label: \"Footer Social Links\",\n fields: [\n {\n name: \"social_icon\",\n type: \"text\",\n label: \"Social Icon\",\n },\n {\n name: \"social_url\",\n type: \"text\",\n label: \"Social URL\",\n },\n ],\n },\n {\n name: \"footer_menu\",\n type: \"array\",\n label: \"Footer Menu\",\n fields: [\n {\n name: \"menu\",\n type: \"relationship\",\n relationTo: \"menu\",\n },\n ],\n },\n {\n name: \"footer_buttons\",\n type: \"array\",\n label: \"Footer Buttons\",\n fields: [\n {\n name: \"button\",\n type: \"button\",\n label: \"Button\",\n },\n ],\n },\n {\n name: \"footer_form\",\n type: \"relationship\",\n relationTo: \"forms\",\n label: \"Footer Form\",\n },\n ],\n};\n","// ============================================================================\n// Settings Globals Index\n// ============================================================================\n\nexport { siteSettingsGlobal } from \"./site.js\";\nexport { seoSettingsGlobal } from \"./seo.js\";\nexport { socialSettingsGlobal } from \"./social.js\";\nexport { emailSettingsGlobal } from \"./email.js\";\nexport { accessSettingsGlobal } from \"./access.js\";\nexport { storeSettingsGlobal } from \"./store.js\";\nexport { paymentSettingsGlobal } from \"./payments.js\";\nexport { systemSettingsGlobal } from \"./system.js\";\nexport { storageSettingsGlobal, createStorageSettingsGlobal } from \"./storage.js\";\nexport { headerSettingsGlobal } from \"./header.js\";\nexport { footerSettingsGlobal } from \"./footer.js\";\n\nimport { siteSettingsGlobal } from \"./site.js\";\nimport { seoSettingsGlobal } from \"./seo.js\";\nimport { socialSettingsGlobal } from \"./social.js\";\nimport { emailSettingsGlobal } from \"./email.js\";\nimport { accessSettingsGlobal } from \"./access.js\";\nimport { storeSettingsGlobal } from \"./store.js\";\nimport { paymentSettingsGlobal } from \"./payments.js\";\nimport { systemSettingsGlobal } from \"./system.js\";\nimport { storageSettingsGlobal } from \"./storage.js\";\nimport { headerSettingsGlobal } from \"./header.js\";\nimport { footerSettingsGlobal } from \"./footer.js\";\nimport type { GlobalConfig } from \"../../registry/types.js\";\n\nexport const allSettingsGlobals: GlobalConfig[] = [\n siteSettingsGlobal,\n seoSettingsGlobal,\n socialSettingsGlobal,\n emailSettingsGlobal,\n storageSettingsGlobal,\n accessSettingsGlobal,\n storeSettingsGlobal,\n paymentSettingsGlobal,\n systemSettingsGlobal,\n headerSettingsGlobal,\n footerSettingsGlobal,\n];\n\nexport const coreSettingsGlobals: GlobalConfig[] = [\n siteSettingsGlobal,\n seoSettingsGlobal,\n socialSettingsGlobal,\n emailSettingsGlobal,\n storageSettingsGlobal,\n accessSettingsGlobal,\n systemSettingsGlobal,\n headerSettingsGlobal,\n footerSettingsGlobal,\n];\n\nexport const settingsBySlug: Record<string, GlobalConfig> = {\n [siteSettingsGlobal.slug]: siteSettingsGlobal,\n [seoSettingsGlobal.slug]: seoSettingsGlobal,\n [socialSettingsGlobal.slug]: socialSettingsGlobal,\n [emailSettingsGlobal.slug]: emailSettingsGlobal,\n [storageSettingsGlobal.slug]: storageSettingsGlobal,\n [accessSettingsGlobal.slug]: accessSettingsGlobal,\n [storeSettingsGlobal.slug]: storeSettingsGlobal,\n [paymentSettingsGlobal.slug]: paymentSettingsGlobal,\n [systemSettingsGlobal.slug]: systemSettingsGlobal,\n [headerSettingsGlobal.slug]: headerSettingsGlobal,\n [footerSettingsGlobal.slug]: footerSettingsGlobal,\n};\n\nexport function getSettingsForTemplate(\n template: \"minimal\" | \"starter\" | \"blog\" | \"ecommerce\" | \"kitchen-sink\",\n): GlobalConfig[] {\n switch (template) {\n case \"minimal\":\n return [siteSettingsGlobal, seoSettingsGlobal];\n case \"starter\":\n case \"blog\":\n return coreSettingsGlobals;\n case \"ecommerce\":\n case \"kitchen-sink\":\n return allSettingsGlobals;\n default:\n return coreSettingsGlobals;\n }\n}\n","import type { CollectionConfig, GlobalConfig } from \"../registry/types.js\";\n\nimport { minimalCollections } from \"./minimal\";\nimport { starterCollections } from \"./starter\";\nimport { blogCollections, blogGlobals } from \"./blog\";\nimport { ecommerceCollections, ecommerceGlobals } from \"./ecommerce\";\nimport { kitchenSinkCollections } from \"./kitchen-sink\";\nimport { authCollections } from \"./auth.js\";\nimport { mediaCollections, mediaCollection } from \"./media.js\";\nimport { menuCollections, menuCollection } from \"./menu.js\";\nimport { postsCollections, postsCollection } from \"./posts.js\";\nimport { pageCollections, pageCollection } from \"./pages.js\";\nimport { categoriesCollections, categoriesCollection, productCategoriesCollections, productCategoriesCollection } from \"./categories.js\";\nimport { productsCollections, productsCollection } from \"./products.js\";\nimport { customersCollections, customersCollection } from \"./customers.js\";\nimport { ordersCollections, ordersCollection } from \"./orders.js\";\nimport { couponsCollections, couponsCollection } from \"./coupons.js\";\nimport { formsCollections, formsCollection } from \"./forms.js\";\nimport { formEntriesCollections, formEntriesCollection } from \"./form-entries.js\";\n\nexport { minimalCollections } from \"./minimal\";\nexport { starterCollections } from \"./starter\";\nexport { blogCollections, blogGlobals } from \"./blog\";\nexport { ecommerceCollections, ecommerceGlobals } from \"./ecommerce\";\nexport { kitchenSinkCollections } from \"./kitchen-sink\";\nexport { authCollections } from \"./auth.js\";\n\nexport {\n mediaCollections,\n mediaCollection,\n} from \"./media.js\";\nexport { menuCollections, menuCollection } from \"./menu.js\";\nexport { postsCollections, postsCollection } from \"./posts.js\";\nexport { pageCollections, pageCollection } from \"./pages.js\";\nexport { categoriesCollections, categoriesCollection, productCategoriesCollections, productCategoriesCollection } from \"./categories.js\";\nexport { productsCollections, productsCollection } from \"./products.js\";\nexport { customersCollections, customersCollection } from \"./customers.js\";\nexport { ordersCollections, ordersCollection } from \"./orders.js\";\nexport { couponsCollections, couponsCollection } from \"./coupons.js\";\nexport { formsCollections, formsCollection } from \"./forms.js\";\nexport { formEntriesCollections, formEntriesCollection } from \"./form-entries.js\";\nexport {\n allSettingsGlobals,\n coreSettingsGlobals,\n settingsBySlug,\n getSettingsForTemplate,\n siteSettingsGlobal,\n seoSettingsGlobal,\n socialSettingsGlobal,\n emailSettingsGlobal,\n storageSettingsGlobal,\n accessSettingsGlobal,\n storeSettingsGlobal,\n paymentSettingsGlobal,\n systemSettingsGlobal,\n headerSettingsGlobal,\n footerSettingsGlobal,\n} from \"./settings/index.js\";\n\n\n\nfunction deduplicateCollections(collections: CollectionConfig[]): CollectionConfig[] {\n const map = new Map<string, CollectionConfig>();\n for (const col of collections) {\n if (!map.has(col.slug)) {\n map.set(col.slug, col);\n }\n }\n return Array.from(map.values());\n}\n\nexport const templateCollections = {\n minimal: deduplicateCollections([\n ...Object.values(minimalCollections),\n ...Object.values(postsCollections),\n ...Object.values(pageCollections),\n ...Object.values(categoriesCollections),\n ...Object.values(formsCollections),\n ...Object.values(formEntriesCollections),\n ]),\n starter: deduplicateCollections([\n ...Object.values(starterCollections),\n ...mediaCollections,\n ...Object.values(authCollections),\n ...Object.values(postsCollections),\n ...Object.values(pageCollections),\n ...Object.values(menuCollections),\n ...Object.values(categoriesCollections),\n ...Object.values(formsCollections),\n ...Object.values(formEntriesCollections),\n ]),\n blog: deduplicateCollections([\n ...Object.values(blogCollections),\n ...mediaCollections,\n ...Object.values(authCollections),\n ...Object.values(postsCollections),\n ...Object.values(pageCollections),\n ...Object.values(menuCollections),\n ...Object.values(categoriesCollections),\n ...Object.values(formsCollections),\n ...Object.values(formEntriesCollections),\n ]),\n ecommerce: deduplicateCollections([\n ...Object.values(ecommerceCollections),\n ...Object.values(productsCollections),\n ...Object.values(customersCollections),\n ...Object.values(ordersCollections),\n ...Object.values(couponsCollections),\n ...mediaCollections,\n ...Object.values(authCollections),\n ...Object.values(postsCollections),\n ...Object.values(pageCollections),\n ...Object.values(menuCollections),\n ...Object.values(categoriesCollections),\n ...Object.values(productCategoriesCollections),\n ...Object.values(formsCollections),\n ...Object.values(formEntriesCollections),\n ]),\n \"kitchen-sink\": deduplicateCollections([\n ...Object.values(minimalCollections),\n ...Object.values(starterCollections),\n ...Object.values(blogCollections),\n ...Object.values(ecommerceCollections),\n ...Object.values(kitchenSinkCollections),\n ...Object.values(productsCollections),\n ...Object.values(customersCollections),\n ...Object.values(ordersCollections),\n ...Object.values(couponsCollections),\n ...mediaCollections,\n ...Object.values(authCollections),\n ...Object.values(postsCollections),\n ...Object.values(pageCollections),\n ...Object.values(menuCollections),\n ...Object.values(categoriesCollections),\n ...Object.values(productCategoriesCollections),\n ...Object.values(formsCollections),\n ...Object.values(formEntriesCollections),\n ]),\n} as const;\n\nimport {\n allSettingsGlobals,\n coreSettingsGlobals,\n getSettingsForTemplate,\n settingsBySlug,\n} from \"./settings/index.js\";\n\nexport interface TemplateConfig {\n collections?: CollectionConfig[];\n globals?: GlobalConfig[];\n}\n\nexport type TemplateType = \"minimal\" | \"starter\" | \"blog\" | \"ecommerce\" | \"kitchen-sink\";\n\nexport interface CreateTemplateConfigOptions extends TemplateConfig {\n template?: TemplateType;\n collections?: CollectionConfig[];\n globals?: GlobalConfig[];\n includeMedia?: boolean;\n includeSettings?:\n | \"all\"\n | \"core\"\n | \"site\"\n | \"seo\"\n | \"social\"\n | \"email\"\n | \"storage\"\n | \"access\"\n | \"store\"\n | \"payments\"\n | \"system\"\n | string[];\n excludeSettings?: string[];\n}\n\nexport function createTemplateConfig(\n options: CreateTemplateConfigOptions,\n): TemplateConfig {\n const collections: CollectionConfig[] = options.collections\n ? [...options.collections]\n : [];\n const globals: GlobalConfig[] = options.globals ? [...options.globals] : [];\n\n if (options.includeMedia !== false) {\n collections.push(...mediaCollections);\n }\n\n const templateSettings = options.template\n ? getSettingsForTemplate(options.template)\n : coreSettingsGlobals;\n\n if (options.includeSettings) {\n if (options.includeSettings === \"all\") {\n globals.push(...allSettingsGlobals);\n } else if (options.includeSettings === \"core\") {\n globals.push(...coreSettingsGlobals);\n } else if (Array.isArray(options.includeSettings)) {\n for (const setting of options.includeSettings) {\n const global = settingsBySlug[setting];\n if (global) {\n globals.push(global);\n }\n }\n }\n } else if (!options.globals || options.globals.length === 0) {\n globals.push(...templateSettings);\n }\n\n if (options.excludeSettings && options.excludeSettings.length > 0) {\n const excludeSet = new Set(options.excludeSettings);\n const filtered = globals.filter(\n (g) =>\n !excludeSet.has(g.slug) &&\n !excludeSet.has(g.label?.toLowerCase().replace(/\\s+/g, \"-\") || \"\"),\n );\n globals.length = 0;\n globals.push(...filtered);\n }\n\n return {\n collections: collections.length > 0 ? collections : undefined,\n globals: globals.length > 0 ? globals : undefined,\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/ws/pubsub.ts","../src/api/ws/server.ts"],"names":["WebSocketServer","WebSocket"],"mappings":"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","file":"chunk-DVD5P72E.cjs","sourcesContent":["// ============================================================================\n// Pub/Sub Event Emitter\n// ============================================================================\n\nexport type EventHandler = (data: any) => void | Promise<void>;\n\nexport class PubSub {\n private channels: Map<string, Set<EventHandler>> = new Map();\n private maxListeners: number;\n\n constructor(maxListeners = 100) {\n this.maxListeners = maxListeners;\n }\n\n subscribe(channel: string, handler: EventHandler): () => void {\n if (!this.channels.has(channel)) {\n this.channels.set(channel, new Set());\n }\n\n const handlers = this.channels.get(channel)!;\n if (handlers.size >= this.maxListeners) {\n throw new Error(`Max listeners (${this.maxListeners}) reached for channel \"${channel}\"`);\n }\n\n handlers.add(handler);\n\n // Return unsubscribe function\n return () => {\n handlers.delete(handler);\n if (handlers.size === 0) {\n this.channels.delete(channel);\n }\n };\n }\n\n publish(channel: string, data: any): void {\n const handlers = this.channels.get(channel);\n if (handlers) {\n for (const handler of handlers) {\n try {\n const result = handler(data);\n if (result instanceof Promise) {\n result.catch((err) => {\n console.error(`[PubSub] Error in handler for channel \"${channel}\":`, err);\n });\n }\n } catch (err) {\n console.error(`[PubSub] Error in handler for channel \"${channel}\":`, err);\n }\n }\n }\n }\n\n hasSubscribers(channel: string): boolean {\n return this.channels.has(channel) && this.channels.get(channel)!.size > 0;\n }\n\n getSubscriberCount(channel: string): number {\n return this.channels.get(channel)?.size || 0;\n }\n\n getChannels(): string[] {\n return Array.from(this.channels.keys());\n }\n\n clear(): void {\n this.channels.clear();\n }\n}\n\n// ============================================================================\n// Kyro-specific Event Types\n// ============================================================================\n\nexport interface KyroEvent {\n type: 'create' | 'update' | 'delete';\n collection: string;\n doc?: any;\n originalDoc?: any;\n id?: string;\n tenantID?: string;\n timestamp: string;\n user?: any;\n}\n\n// ============================================================================\n// Kyro Pub/Sub with Hook Integration\n// ============================================================================\n\nexport class KyroPubSub extends PubSub {\n private registry: any;\n\n constructor(registry: any, maxListeners = 100) {\n super(maxListeners);\n this.registry = registry;\n }\n\n // Publish collection-level events\n publishCollectionEvent(collection: string, event: KyroEvent): void {\n // Publish to collection channel\n this.publish(`collection:${collection}`, event);\n\n // Publish to global events channel\n this.publish('events:collection', event);\n\n // Publish to tenant-specific channel if scoped\n if (event.tenantID) {\n this.publish(`tenant:${event.tenantID}:collection:${collection}`, event);\n this.publish(`tenant:${event.tenantID}:events`, event);\n }\n\n // Publish to type-specific channel\n this.publish(`collection:${collection}:${event.type}`, event);\n }\n\n // Subscribe to a collection\n subscribeToCollection(collection: string, handler: EventHandler): () => void {\n return this.subscribe(`collection:${collection}`, handler);\n }\n\n // Subscribe to a specific event type on a collection\n subscribeToCollectionEvent(\n collection: string,\n eventType: 'create' | 'update' | 'delete',\n handler: EventHandler\n ): () => void {\n return this.subscribe(`collection:${collection}:${eventType}`, handler);\n }\n\n // Subscribe to tenant-scoped events\n subscribeToTenant(tenantID: string, handler: EventHandler): () => void {\n return this.subscribe(`tenant:${tenantID}:events`, handler);\n }\n\n // Subscribe to tenant + collection events\n subscribeToTenantCollection(\n tenantID: string,\n collection: string,\n handler: EventHandler\n ): () => void {\n return this.subscribe(`tenant:${tenantID}:collection:${collection}`, handler);\n }\n\n // Subscribe to all collection events\n subscribeToAllCollections(handler: EventHandler): () => void {\n return this.subscribe('events:collection', handler);\n }\n\n // Create hooks for afterChange/afterDelete\n createAfterChangeHook(collection: string) {\n return async (args: any) => {\n this.publishCollectionEvent(collection, {\n type: args.operation === 'create' ? 'create' : 'update',\n collection,\n doc: args.doc,\n originalDoc: args.originalDoc,\n id: args.id || args.doc?.id,\n tenantID: args.tenantID,\n timestamp: new Date().toISOString(),\n user: args.user,\n });\n };\n }\n\n createAfterDeleteHook(collection: string) {\n return async (args: any) => {\n this.publishCollectionEvent(collection, {\n type: 'delete',\n collection,\n doc: args.doc,\n originalDoc: args.originalDoc,\n id: args.id || args.doc?.id,\n tenantID: args.tenantID,\n timestamp: new Date().toISOString(),\n user: args.user,\n });\n };\n }\n\n // Auto-register hooks for all collections\n autoRegisterHooks(): void {\n const collections = this.registry.getCollections();\n for (const collection of collections) {\n const config = this.registry.getCollection(collection.slug);\n if (config) {\n if (!config.hooks) config.hooks = {};\n if (!config.hooks.afterChange) config.hooks.afterChange = [];\n if (!config.hooks.afterDelete) config.hooks.afterDelete = [];\n\n config.hooks.afterChange.push(this.createAfterChangeHook(collection.slug));\n config.hooks.afterDelete.push(this.createAfterDeleteHook(collection.slug));\n }\n }\n }\n}\n","import { WebSocketServer, WebSocket } from 'ws';\nimport type { KyroPubSub, KyroEvent } from './pubsub.js';\n\n// ============================================================================\n// WebSocket Server\n// ============================================================================\n\nexport interface WSServerOptions {\n port?: number;\n pubsub: KyroPubSub;\n maxConnections?: number;\n pingInterval?: number;\n requireAuth?: boolean;\n verifyToken?: (token: string) => Promise<any>;\n}\n\nexport interface WSSubscription {\n channel: string;\n unsubscribe: () => void;\n}\n\nexport interface WSClient {\n id: string;\n ws: WebSocket;\n subscriptions: Map<string, WSSubscription>;\n authenticated: boolean;\n user?: any;\n tenantID?: string;\n connectedAt: Date;\n lastActivity: Date;\n}\n\nexport class KyroWSServer {\n private wss: WebSocketServer;\n private clients: Map<string, WSClient> = new Map();\n private pubsub: KyroPubSub;\n private options: WSServerOptions;\n private pingTimer?: NodeJS.Timer;\n\n constructor(options: WSServerOptions) {\n this.options = options;\n this.pubsub = options.pubsub;\n\n this.wss = new WebSocketServer({\n port: options.port || 8080,\n });\n\n this.setupServer();\n this.startPingInterval();\n }\n\n private setupServer(): void {\n this.wss.on('connection', (ws: WebSocket, req: any) => {\n const clientId = this.generateClientId();\n\n if (this.options.maxConnections && this.clients.size >= this.options.maxConnections) {\n ws.close(1013, 'Server at capacity');\n return;\n }\n\n const client: WSClient = {\n id: clientId,\n ws,\n subscriptions: new Map(),\n authenticated: false,\n connectedAt: new Date(),\n lastActivity: new Date(),\n };\n\n this.clients.set(clientId, client);\n console.log(`[WS] Client connected: ${clientId} (total: ${this.clients.size})`);\n\n // Send welcome message\n this.sendToClient(client, {\n type: 'connected',\n clientId,\n timestamp: new Date().toISOString(),\n });\n\n // Handle messages\n ws.on('message', (data: Buffer) => {\n this.handleMessage(client, data);\n });\n\n // Handle errors\n ws.on('error', (error: Error) => {\n console.error(`[WS] Client error ${clientId}:`, error);\n });\n\n // Handle close\n ws.on('close', () => {\n this.handleDisconnect(client);\n });\n\n // Handle pong\n ws.on('pong', () => {\n client.lastActivity = new Date();\n });\n });\n\n this.wss.on('error', (error: Error) => {\n console.error('[WS] Server error:', error);\n });\n }\n\n private handleMessage(client: WSClient, data: Buffer): void {\n client.lastActivity = new Date();\n\n let message: any;\n try {\n message = JSON.parse(data.toString());\n } catch {\n this.sendToClient(client, {\n type: 'error',\n error: 'Invalid JSON',\n });\n return;\n }\n\n switch (message.type) {\n case 'authenticate':\n this.handleAuthenticate(client, message);\n break;\n case 'subscribe':\n this.handleSubscribe(client, message);\n break;\n case 'unsubscribe':\n this.handleUnsubscribe(client, message);\n break;\n case 'unsubscribeAll':\n this.handleUnsubscribeAll(client);\n break;\n case 'list':\n this.handleList(client);\n break;\n case 'ping':\n this.sendToClient(client, { type: 'pong', timestamp: new Date().toISOString() });\n break;\n default:\n this.sendToClient(client, {\n type: 'error',\n error: `Unknown message type: ${message.type}`,\n });\n }\n }\n\n private async handleAuthenticate(client: WSClient, message: any): Promise<void> {\n if (!this.options.requireAuth) {\n client.authenticated = true;\n this.sendToClient(client, {\n type: 'authenticated',\n success: true,\n });\n return;\n }\n\n if (!this.options.verifyToken) {\n client.authenticated = true;\n this.sendToClient(client, {\n type: 'authenticated',\n success: true,\n });\n return;\n }\n\n try {\n const user = await this.options.verifyToken(message.token);\n client.authenticated = true;\n client.user = user;\n client.tenantID = user.tenantID;\n this.sendToClient(client, {\n type: 'authenticated',\n success: true,\n user: { id: user.id, email: user.email },\n });\n } catch (error: any) {\n this.sendToClient(client, {\n type: 'authenticated',\n success: false,\n error: error.message,\n });\n }\n }\n\n private handleSubscribe(client: WSClient, message: any): void {\n if (this.options.requireAuth && !client.authenticated) {\n this.sendToClient(client, {\n type: 'error',\n error: 'Not authenticated',\n });\n return;\n }\n\n const channel = message.channel;\n if (!channel) {\n this.sendToClient(client, {\n type: 'error',\n error: 'Channel is required',\n });\n return;\n }\n\n // Check if already subscribed\n if (client.subscriptions.has(channel)) {\n this.sendToClient(client, {\n type: 'subscribed',\n channel,\n success: true,\n message: 'Already subscribed',\n });\n return;\n }\n\n // Subscribe to channel\n const unsubscribe = this.pubsub.subscribe(channel, (data: any) => {\n this.sendToClient(client, {\n type: 'event',\n channel,\n data,\n timestamp: new Date().toISOString(),\n });\n });\n\n client.subscriptions.set(channel, { channel, unsubscribe });\n\n this.sendToClient(client, {\n type: 'subscribed',\n channel,\n success: true,\n });\n }\n\n private handleUnsubscribe(client: WSClient, message: any): void {\n const channel = message.channel;\n if (!channel) {\n this.sendToClient(client, {\n type: 'error',\n error: 'Channel is required',\n });\n return;\n }\n\n const subscription = client.subscriptions.get(channel);\n if (subscription) {\n subscription.unsubscribe();\n client.subscriptions.delete(channel);\n this.sendToClient(client, {\n type: 'unsubscribed',\n channel,\n success: true,\n });\n } else {\n this.sendToClient(client, {\n type: 'unsubscribed',\n channel,\n success: false,\n message: 'Not subscribed',\n });\n }\n }\n\n private handleUnsubscribeAll(client: WSClient): void {\n for (const [, subscription] of client.subscriptions) {\n subscription.unsubscribe();\n }\n client.subscriptions.clear();\n\n this.sendToClient(client, {\n type: 'unsubscribedAll',\n success: true,\n });\n }\n\n private handleList(client: WSClient): void {\n const channels = this.pubsub.getChannels();\n this.sendToClient(client, {\n type: 'channels',\n channels,\n count: channels.length,\n });\n }\n\n private handleDisconnect(client: WSClient): void {\n // Unsubscribe from all channels\n for (const [, subscription] of client.subscriptions) {\n subscription.unsubscribe();\n }\n\n this.clients.delete(client.id);\n console.log(`[WS] Client disconnected: ${client.id} (total: ${this.clients.size})`);\n }\n\n private sendToClient(client: WSClient, data: any): void {\n if (client.ws.readyState === WebSocket.OPEN) {\n client.ws.send(JSON.stringify(data));\n }\n }\n\n private generateClientId(): string {\n return `ws_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;\n }\n\n private startPingInterval(): void {\n if (!this.options.pingInterval) return;\n\n this.pingTimer = setInterval(() => {\n for (const [id, client] of this.clients) {\n if (client.ws.readyState === WebSocket.OPEN) {\n // Check if client responded to last ping\n const timeSinceLastActivity = Date.now() - client.lastActivity.getTime();\n if (timeSinceLastActivity > (this.options.pingInterval! * 3)) {\n console.log(`[WS] Client ${id} timed out`);\n client.ws.terminate();\n this.handleDisconnect(client);\n continue;\n }\n client.ws.ping();\n }\n }\n }, this.options.pingInterval);\n }\n\n // ============================================================================\n // Public API\n // ============================================================================\n\n broadcast(channel: string, data: any): void {\n this.pubsub.publish(channel, data);\n }\n\n getConnectedClients(): WSClient[] {\n return Array.from(this.clients.values());\n }\n\n getClientCount(): number {\n return this.clients.size;\n }\n\n getSubscriptionCount(): number {\n let count = 0;\n for (const client of this.clients.values()) {\n count += client.subscriptions.size;\n }\n return count;\n }\n\n async close(): Promise<void> {\n if (this.pingTimer) {\n clearInterval(this.pingTimer as any);\n }\n\n // Close all client connections\n for (const client of this.clients.values()) {\n client.ws.close(1001, 'Server shutting down');\n }\n\n // Close server\n return new Promise((resolve) => {\n this.wss.close(() => {\n console.log('[WS] Server closed');\n resolve();\n });\n });\n }\n\n getServer(): WebSocketServer {\n return this.wss;\n }\n}\n\n// ============================================================================\n// Factory\n// ============================================================================\n\nexport function createWSServer(options: WSServerOptions): KyroWSServer {\n return new KyroWSServer(options);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/database/base.ts","../src/auth/rls/tenant.ts"],"names":[],"mappings":"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","file":"chunk-DYTZ6FQ7.js","sourcesContent":["import type {\n BaseAdapter,\n CollectionConfig,\n GlobalConfig,\n FindArgs,\n FindByIDArgs,\n CreateArgs,\n UpdateArgs,\n DeleteArgs,\n FindResult,\n DraftFindArgs,\n DraftUpsertArgs,\n DraftDeleteArgs,\n DraftSnapshot,\n VersionRecord,\n CreateVersionArgs,\n FindVersionsArgs,\n} from '../registry/types.js';\nimport type { Field, RelationshipField, UploadField } from '../fields/types.js';\nimport type { TenantContext } from '../auth/rls/tenant.js';\n\n// ============================================================================\n// Abstract Base Adapter\n// ============================================================================\n\nexport abstract class AbstractBaseAdapter implements BaseAdapter {\n protected collections: Map<string, CollectionConfig> = new Map();\n protected globals: Map<string, GlobalConfig> = new Map();\n protected connected = false;\n protected tenantContext?: TenantContext;\n\n abstract connect(): Promise<void>;\n abstract disconnect(): Promise<void>;\n\n setTenantContext(context: TenantContext | undefined): void {\n this.tenantContext = context;\n }\n\n getTenantContext(): TenantContext | undefined {\n return this.tenantContext;\n }\n\n async init(collections: CollectionConfig[], globals: GlobalConfig[] = []): Promise<void> {\n for (const config of collections) {\n this.collections.set(config.slug, config);\n }\n for (const config of globals) {\n this.globals.set(config.slug, config);\n }\n await this.connect();\n }\n\n abstract find<T>(args: FindArgs): Promise<FindResult<T>>;\n abstract findByID<T>(args: FindByIDArgs): Promise<T | null>;\n abstract create<T>(args: CreateArgs): Promise<T>;\n abstract update<T>(args: UpdateArgs): Promise<T>;\n abstract delete<T>(args: DeleteArgs): Promise<T>;\n abstract count(args: { collection: string; where?: Record<string, any>; tenantID?: string }): Promise<number>;\n\n abstract findOne(args: { collection: string; where: Record<string, any>; tenantID?: string; draft?: boolean }): Promise<any>;\n\n abstract findVersions(args: FindVersionsArgs): Promise<FindResult<VersionRecord>>;\n abstract findVersionByID(args: { collection: string; versionId: string; tenantID?: string }): Promise<VersionRecord | null>;\n abstract createVersion<T = Record<string, any>>(args: CreateVersionArgs<T>): Promise<VersionRecord<T>>;\n abstract deleteVersions(args: { collection: string; documentId: string; keepLatest?: number; tenantID?: string }): Promise<void>;\n abstract findDraft<T>(args: DraftFindArgs): Promise<DraftSnapshot<T> | null>;\n abstract upsertDraft<T>(args: DraftUpsertArgs<T>): Promise<DraftSnapshot<T>>;\n abstract deleteDraft(args: DraftDeleteArgs): Promise<void>;\n\n async migrate?(): Promise<void>;\n async rollback?(): Promise<void>;\n async transaction?<T>(fn: (tx: any) => Promise<T>): Promise<T>;\n\n // ========================================================================\n // Utility Methods\n // ========================================================================\n\n protected getCollection(slug: string): CollectionConfig {\n const collection = this.collections.get(slug);\n if (!collection) {\n throw new Error(`Collection \"${slug}\" not found in adapter`);\n }\n return collection;\n }\n\n protected applyTenantFilter(where: Record<string, any> = {}, tenantID?: string): Record<string, any> {\n if (tenantID) {\n return {\n ...where,\n tenantID: { equals: tenantID },\n };\n }\n return where;\n }\n\n protected getTableName(slug: string): string {\n return slug.replace(/-/g, '_');\n }\n\n protected prepareData(data: Record<string, any>, collection: CollectionConfig): Record<string, any> {\n const prepared: Record<string, any> = { ...data };\n \n if (collection.timestamps) {\n prepared.updatedAt = new Date().toISOString();\n if (!prepared.createdAt) {\n prepared.createdAt = new Date().toISOString();\n }\n }\n\n // Handle password hashing\n if (collection.auth && prepared.password) {\n // Password should be hashed before this point via hooks\n }\n\n return prepared;\n }\n\n protected processRelationships(\n data: Record<string, any>,\n fields: Field[],\n depth: number\n ): Record<string, any> {\n // This is a base implementation - specific adapters override\n return data;\n }\n\n protected parseSort(sort?: string): { field: string; direction: 'asc' | 'desc' } {\n if (!sort) return { field: 'createdAt', direction: 'desc' };\n if (sort.startsWith('-')) {\n return { field: sort.slice(1), direction: 'desc' };\n }\n return { field: sort, direction: 'asc' };\n }\n\n protected calculatePagination(page: number, limit: number, totalDocs: number) {\n const totalPages = Math.ceil(totalDocs / limit);\n return {\n totalDocs,\n limit,\n totalPages,\n page,\n pagingCounter: (page - 1) * limit + 1,\n hasPrevPage: page > 1,\n hasNextPage: page < totalPages,\n prevPage: page > 1 ? page - 1 : null,\n nextPage: page < totalPages ? page + 1 : null,\n };\n }\n\n protected selectFields(data: Record<string, any>, select?: string[]): Record<string, any> {\n if (!select || select.length === 0) return data;\n const result: Record<string, any> = {};\n for (const field of select) {\n if (field in data) {\n result[field] = data[field];\n }\n }\n result['id'] = data.id;\n return result;\n }\n\n protected isRelationshipField(field: Field): field is RelationshipField {\n return field.type === 'relationship';\n }\n\n protected isUploadField(field: Field): field is UploadField {\n return field.type === 'upload';\n }\n\n protected getRelationshipFields(fields: Field[]): RelationshipField[] {\n const result: RelationshipField[] = [];\n for (const field of fields) {\n if (field.type === 'relationship') {\n result.push(field);\n } else if ('fields' in field && field.fields) {\n result.push(...this.getRelationshipFields(field.fields));\n }\n }\n return result;\n }\n\n protected getUploadFields(fields: Field[]): UploadField[] {\n const result: UploadField[] = [];\n for (const field of fields) {\n if (field.type === 'upload') {\n result.push(field);\n } else if ('fields' in field && field.fields) {\n result.push(...this.getUploadFields(field.fields));\n }\n }\n return result;\n }\n}\n","import type { AuthUser } from \"../types.js\";\nimport { hasAnyRole } from \"../rbac/checker.js\";\n\nexport interface TenantContext {\n tenantId: string;\n userId: string;\n role?: string;\n roles?: string[];\n permissions?: string[];\n isSuperAdmin?: boolean;\n}\n\nexport interface OwnershipRule {\n ownerField: string;\n bypassRoles?: string[];\n}\n\nexport interface RLSConfig {\n tenantEnabled: boolean;\n tenantField: string;\n ownershipRules: Record<string, OwnershipRule>;\n}\n\nexport const DEFAULT_RLS_CONFIG: RLSConfig = {\n tenantEnabled: true,\n tenantField: \"tenantId\",\n ownershipRules: {\n posts: {\n ownerField: \"authorId\",\n bypassRoles: [\"super_admin\", \"admin\", \"editor\"],\n },\n pages: {\n ownerField: \"authorId\",\n bypassRoles: [\"super_admin\", \"admin\", \"editor\"],\n },\n media: {\n ownerField: \"uploadedBy\",\n bypassRoles: [\"super_admin\", \"admin\", \"editor\"],\n },\n orders: {\n ownerField: \"customerId\",\n bypassRoles: [\"super_admin\", \"admin\", \"editor\"],\n },\n customers: { ownerField: \"id\", bypassRoles: [\"super_admin\", \"admin\"] },\n navigation: { ownerField: \"id\", bypassRoles: [\"super_admin\", \"admin\"] },\n },\n};\n\nexport function createTenantContext(user: AuthUser | undefined): TenantContext {\n if (!user) {\n return {\n tenantId: \"public\",\n userId: \"anonymous\",\n role: \"guest\",\n roles: [\"guest\"],\n permissions: [],\n isSuperAdmin: false,\n };\n }\n\n const isSuperAdmin = user.role === \"super_admin\";\n\n return {\n tenantId: user.tenantId || \"default\",\n userId: user.id,\n role: user.role,\n roles: [user.role],\n permissions: [],\n isSuperAdmin,\n };\n}\n\nexport function addTenantFilter<T extends Record<string, any>>(\n query: T,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): T {\n if (!config.tenantEnabled || context.isSuperAdmin) {\n return query;\n }\n\n return {\n ...query,\n where: {\n ...query.where,\n [config.tenantField]: context.tenantId,\n },\n };\n}\n\nexport function applyOwnershipRule(\n query: Record<string, any>,\n collection: string,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): Record<string, any> {\n const rule = config.ownershipRules[collection];\n\n if (!rule) {\n return query;\n }\n\n if (\n rule.bypassRoles &&\n hasAnyRole({ role: context.role } as AuthUser, rule.bypassRoles)\n ) {\n return query;\n }\n\n if (rule.ownerField === \"id\" && context.userId) {\n return {\n ...query,\n where: {\n ...query.where,\n id: context.userId,\n },\n };\n }\n\n if (rule.ownerField && context.userId) {\n return {\n ...query,\n where: {\n ...query.where,\n [rule.ownerField]: context.userId,\n },\n };\n }\n\n return query;\n}\n\nexport function applyRLS<T extends Record<string, any>>(\n query: T,\n collection: string,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): T {\n let result = query;\n\n result = addTenantFilter(result, context, config) as T;\n\n result = applyOwnershipRule(result, collection, context, config) as T;\n\n return result;\n}\n\nexport function canAccessDocument(\n doc: Record<string, any>,\n collection: string,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): boolean {\n if (context.isSuperAdmin) {\n return true;\n }\n\n if (config.tenantEnabled && doc[config.tenantField] !== context.tenantId) {\n return false;\n }\n\n const rule = config.ownershipRules[collection];\n\n if (!rule) {\n return true;\n }\n\n if (\n rule.bypassRoles &&\n hasAnyRole({ role: context.role } as AuthUser, rule.bypassRoles)\n ) {\n return true;\n }\n\n if (rule.ownerField === \"id\") {\n return doc.id === context.userId;\n }\n\n if (rule.ownerField) {\n return doc[rule.ownerField] === context.userId;\n }\n\n return true;\n}\n\nexport function filterDocumentsByRLS(\n docs: Record<string, any>[],\n collection: string,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): Record<string, any>[] {\n if (context.isSuperAdmin) {\n return docs;\n }\n\n return docs.filter((doc) =>\n canAccessDocument(doc, collection, context, config),\n );\n}\n\nexport function sanitizeDocumentByRLS(\n doc: Record<string, any>,\n collection: string,\n context: TenantContext,\n config: RLSConfig = DEFAULT_RLS_CONFIG,\n): Record<string, any> | null {\n if (!canAccessDocument(doc, collection, context, config)) {\n return null;\n }\n\n if (config.tenantEnabled && !context.isSuperAdmin) {\n const { [config.tenantField]: _, ...rest } = doc;\n return rest;\n }\n\n return doc;\n}\n\nexport class RLSPolicy {\n private config: RLSConfig;\n\n constructor(config: RLSConfig = DEFAULT_RLS_CONFIG) {\n this.config = config;\n }\n\n setConfig(config: RLSConfig): void {\n this.config = config;\n }\n\n getConfig(): RLSConfig {\n return this.config;\n }\n\n addOwnershipRule(collection: string, rule: OwnershipRule): void {\n this.config.ownershipRules[collection] = rule;\n }\n\n removeOwnershipRule(collection: string): void {\n delete this.config.ownershipRules[collection];\n }\n\n createContext(user: AuthUser | undefined): TenantContext {\n return createTenantContext(user);\n }\n\n apply<T extends Record<string, any>>(\n query: T,\n collection: string,\n context: TenantContext,\n ): T {\n return applyRLS(query, collection, context, this.config);\n }\n\n canAccess(\n doc: Record<string, any>,\n collection: string,\n context: TenantContext,\n ): boolean {\n return canAccessDocument(doc, collection, context, this.config);\n }\n\n filter(\n docs: Record<string, any>[],\n collection: string,\n context: TenantContext,\n ): Record<string, any>[] {\n return filterDocumentsByRLS(docs, collection, context, this.config);\n }\n\n sanitize(\n doc: Record<string, any>,\n collection: string,\n context: TenantContext,\n ): Record<string, any> | null {\n return sanitizeDocumentByRLS(doc, collection, context, this.config);\n }\n}\n"]}