@kerebron/legacy-compat 0.7.6 → 0.7.7

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 (435) hide show
  1. package/dist/kerebron-light.css +1 -1
  2. package/dist/kerebron.cjs +196 -1
  3. package/dist/kerebron.css +1 -1
  4. package/dist/kerebron.js +35005 -5
  5. package/dist/kerebron3.cjs.map +1 -1
  6. package/dist/kerebron3.js.map +1 -1
  7. package/package.json +1 -1
  8. package/dist/__vite-browser-external-DJIAPZnD.js +0 -56434
  9. package/dist/__vite-browser-external-DJIAPZnD.js.map +0 -1
  10. package/dist/__vite-browser-external-P9g2kRCo.cjs +0 -235
  11. package/dist/__vite-browser-external-P9g2kRCo.cjs.map +0 -1
  12. package/dist/apl-B2DGVGxc.js +0 -77
  13. package/dist/apl-B2DGVGxc.js.map +0 -1
  14. package/dist/apl-M-DNMvvR.cjs +0 -2
  15. package/dist/apl-M-DNMvvR.cjs.map +0 -1
  16. package/dist/asciiarmor-2LVJmxlE.js +0 -35
  17. package/dist/asciiarmor-2LVJmxlE.js.map +0 -1
  18. package/dist/asciiarmor-BMx3XVjX.cjs +0 -2
  19. package/dist/asciiarmor-BMx3XVjX.cjs.map +0 -1
  20. package/dist/asn1-OOsVM4yU.cjs +0 -2
  21. package/dist/asn1-OOsVM4yU.cjs.map +0 -1
  22. package/dist/asn1-jKiBa2Ya.js +0 -96
  23. package/dist/asn1-jKiBa2Ya.js.map +0 -1
  24. package/dist/asterisk-B1QUaW1C.cjs +0 -2
  25. package/dist/asterisk-B1QUaW1C.cjs.map +0 -1
  26. package/dist/asterisk-DS281yxp.js +0 -272
  27. package/dist/asterisk-DS281yxp.js.map +0 -1
  28. package/dist/brainfuck-BjUlYKdF.cjs +0 -2
  29. package/dist/brainfuck-BjUlYKdF.cjs.map +0 -1
  30. package/dist/brainfuck-C_p9pTT8.js +0 -35
  31. package/dist/brainfuck-C_p9pTT8.js.map +0 -1
  32. package/dist/clike-DE3V9X8-.js +0 -616
  33. package/dist/clike-DE3V9X8-.js.map +0 -1
  34. package/dist/clike-DLHgOXgk.cjs +0 -2
  35. package/dist/clike-DLHgOXgk.cjs.map +0 -1
  36. package/dist/clojure-Ap_IXD2I.cjs +0 -2
  37. package/dist/clojure-Ap_IXD2I.cjs.map +0 -1
  38. package/dist/clojure-CCKyeQKf.js +0 -801
  39. package/dist/clojure-CCKyeQKf.js.map +0 -1
  40. package/dist/cmake-C4D5_VmS.cjs +0 -2
  41. package/dist/cmake-C4D5_VmS.cjs.map +0 -1
  42. package/dist/cmake-CuaCgAKt.js +0 -29
  43. package/dist/cmake-CuaCgAKt.js.map +0 -1
  44. package/dist/cobol-BlTKFDRj.js +0 -73
  45. package/dist/cobol-BlTKFDRj.js.map +0 -1
  46. package/dist/cobol-Du-cT2hr.cjs +0 -2
  47. package/dist/cobol-Du-cT2hr.cjs.map +0 -1
  48. package/dist/coffeescript-BVCvwO8I.js +0 -180
  49. package/dist/coffeescript-BVCvwO8I.js.map +0 -1
  50. package/dist/coffeescript-DDFAj2ea.cjs +0 -2
  51. package/dist/coffeescript-DDFAj2ea.cjs.map +0 -1
  52. package/dist/commonlisp-CXBBRCTx.cjs +0 -2
  53. package/dist/commonlisp-CXBBRCTx.cjs.map +0 -1
  54. package/dist/commonlisp-D_kxz07b.js +0 -76
  55. package/dist/commonlisp-D_kxz07b.js.map +0 -1
  56. package/dist/crystal-D309uH6_.js +0 -218
  57. package/dist/crystal-D309uH6_.js.map +0 -1
  58. package/dist/crystal-DAFWRDbh.cjs +0 -2
  59. package/dist/crystal-DAFWRDbh.cjs.map +0 -1
  60. package/dist/cypher-BMq4Fwjl.js +0 -69
  61. package/dist/cypher-BMq4Fwjl.js.map +0 -1
  62. package/dist/cypher-BN0-oCze.cjs +0 -2
  63. package/dist/cypher-BN0-oCze.cjs.map +0 -1
  64. package/dist/d-BHsqGcfm.cjs +0 -2
  65. package/dist/d-BHsqGcfm.cjs.map +0 -1
  66. package/dist/d-BZcgY6La.js +0 -128
  67. package/dist/d-BZcgY6La.js.map +0 -1
  68. package/dist/diff-CemTHKfk.cjs +0 -2
  69. package/dist/diff-CemTHKfk.cjs.map +0 -1
  70. package/dist/diff-Cg9d_RX2.js +0 -19
  71. package/dist/diff-Cg9d_RX2.js.map +0 -1
  72. package/dist/dockerfile-BBTH3voH.cjs +0 -2
  73. package/dist/dockerfile-BBTH3voH.cjs.map +0 -1
  74. package/dist/dockerfile-DIy8NleC.js +0 -195
  75. package/dist/dockerfile-DIy8NleC.js.map +0 -1
  76. package/dist/dtd-ChoVQPwv.cjs +0 -2
  77. package/dist/dtd-ChoVQPwv.cjs.map +0 -1
  78. package/dist/dtd-CtLokQ-U.js +0 -85
  79. package/dist/dtd-CtLokQ-U.js.map +0 -1
  80. package/dist/dylan-QYeExnWK.js +0 -235
  81. package/dist/dylan-QYeExnWK.js.map +0 -1
  82. package/dist/dylan-apTQIgUA.cjs +0 -2
  83. package/dist/dylan-apTQIgUA.cjs.map +0 -1
  84. package/dist/ebnf-DUPDuY4r.js +0 -79
  85. package/dist/ebnf-DUPDuY4r.js.map +0 -1
  86. package/dist/ebnf-LYmLy17h.cjs +0 -2
  87. package/dist/ebnf-LYmLy17h.cjs.map +0 -1
  88. package/dist/ecl-C7WNQq7-.cjs +0 -2
  89. package/dist/ecl-C7WNQq7-.cjs.map +0 -1
  90. package/dist/ecl-CiXN-g_D.js +0 -122
  91. package/dist/ecl-CiXN-g_D.js.map +0 -1
  92. package/dist/eiffel-BJThA8RG.cjs +0 -2
  93. package/dist/eiffel-BJThA8RG.cjs.map +0 -1
  94. package/dist/eiffel-yQhjl4T1.js +0 -111
  95. package/dist/eiffel-yQhjl4T1.js.map +0 -1
  96. package/dist/elm-CNT9vbN0.js +0 -109
  97. package/dist/elm-CNT9vbN0.js.map +0 -1
  98. package/dist/elm-CcXP9T36.cjs +0 -2
  99. package/dist/elm-CcXP9T36.cjs.map +0 -1
  100. package/dist/erlang-B6mpcObI.cjs +0 -2
  101. package/dist/erlang-B6mpcObI.cjs.map +0 -1
  102. package/dist/erlang-CFOYdy9e.js +0 -488
  103. package/dist/erlang-CFOYdy9e.js.map +0 -1
  104. package/dist/factor-B-tsx9yW.cjs +0 -2
  105. package/dist/factor-B-tsx9yW.cjs.map +0 -1
  106. package/dist/factor-DDOC7X6P.js +0 -66
  107. package/dist/factor-DDOC7X6P.js.map +0 -1
  108. package/dist/fcl-BzAKklXo.cjs +0 -2
  109. package/dist/fcl-BzAKklXo.cjs.map +0 -1
  110. package/dist/fcl-CPC2WYrI.js +0 -104
  111. package/dist/fcl-CPC2WYrI.js.map +0 -1
  112. package/dist/forth-BmxRyE9S.js +0 -61
  113. package/dist/forth-BmxRyE9S.js.map +0 -1
  114. package/dist/forth-CPAzyZ_n.cjs +0 -2
  115. package/dist/forth-CPAzyZ_n.cjs.map +0 -1
  116. package/dist/fortran-9bvPyrOW.js +0 -443
  117. package/dist/fortran-9bvPyrOW.js.map +0 -1
  118. package/dist/fortran-DHiTlGV1.cjs +0 -2
  119. package/dist/fortran-DHiTlGV1.cjs.map +0 -1
  120. package/dist/gas-BiPtGF2E.cjs +0 -2
  121. package/dist/gas-BiPtGF2E.cjs.map +0 -1
  122. package/dist/gas-cpmYfFX2.js +0 -184
  123. package/dist/gas-cpmYfFX2.js.map +0 -1
  124. package/dist/gherkin-CJuwpceU.js +0 -35
  125. package/dist/gherkin-CJuwpceU.js.map +0 -1
  126. package/dist/gherkin-Djo7Y51D.cjs +0 -2
  127. package/dist/gherkin-Djo7Y51D.cjs.map +0 -1
  128. package/dist/go-BHVhI2MG.js +0 -156
  129. package/dist/go-BHVhI2MG.js.map +0 -1
  130. package/dist/go-BgtlNyKc.cjs +0 -2
  131. package/dist/go-BgtlNyKc.cjs.map +0 -1
  132. package/dist/groovy-BMVITiCm.cjs +0 -2
  133. package/dist/groovy-BMVITiCm.cjs.map +0 -1
  134. package/dist/groovy-DZeT_VM-.js +0 -147
  135. package/dist/groovy-DZeT_VM-.js.map +0 -1
  136. package/dist/haskell-C46lNFBv.cjs +0 -2
  137. package/dist/haskell-C46lNFBv.cjs.map +0 -1
  138. package/dist/haskell-CxiO_7JL.js +0 -376
  139. package/dist/haskell-CxiO_7JL.js.map +0 -1
  140. package/dist/haxe-BhV0x0nk.js +0 -337
  141. package/dist/haxe-BhV0x0nk.js.map +0 -1
  142. package/dist/haxe-G9XvbXZx.cjs +0 -2
  143. package/dist/haxe-G9XvbXZx.cjs.map +0 -1
  144. package/dist/http-BkLifcnL.cjs +0 -2
  145. package/dist/http-BkLifcnL.cjs.map +0 -1
  146. package/dist/http-D9LttvKF.js +0 -45
  147. package/dist/http-D9LttvKF.js.map +0 -1
  148. package/dist/idl-B6TRFYjl.js +0 -948
  149. package/dist/idl-B6TRFYjl.js.map +0 -1
  150. package/dist/idl-FmHDmsE-.cjs +0 -2
  151. package/dist/idl-FmHDmsE-.cjs.map +0 -1
  152. package/dist/index-BAyWFBNd.cjs +0 -3
  153. package/dist/index-BAyWFBNd.cjs.map +0 -1
  154. package/dist/index-BE2In6o2.cjs +0 -2
  155. package/dist/index-BE2In6o2.cjs.map +0 -1
  156. package/dist/index-BFSW_peR.cjs +0 -2
  157. package/dist/index-BFSW_peR.cjs.map +0 -1
  158. package/dist/index-BMTsQoz2.cjs +0 -14
  159. package/dist/index-BMTsQoz2.cjs.map +0 -1
  160. package/dist/index-BTeCX7iP.cjs +0 -2
  161. package/dist/index-BTeCX7iP.cjs.map +0 -1
  162. package/dist/index-BWVpAu-p.cjs +0 -2
  163. package/dist/index-BWVpAu-p.cjs.map +0 -1
  164. package/dist/index-BeoygBf9.js +0 -554
  165. package/dist/index-BeoygBf9.js.map +0 -1
  166. package/dist/index-Bp7UUxhT.cjs +0 -7
  167. package/dist/index-Bp7UUxhT.cjs.map +0 -1
  168. package/dist/index-C9KkiItn.js +0 -158
  169. package/dist/index-C9KkiItn.js.map +0 -1
  170. package/dist/index-CBdUOmEL.js +0 -613
  171. package/dist/index-CBdUOmEL.js.map +0 -1
  172. package/dist/index-CF59nqXM.cjs +0 -2
  173. package/dist/index-CF59nqXM.cjs.map +0 -1
  174. package/dist/index-COvZdI1h.cjs +0 -2
  175. package/dist/index-COvZdI1h.cjs.map +0 -1
  176. package/dist/index-CS04VKJ3.js +0 -310
  177. package/dist/index-CS04VKJ3.js.map +0 -1
  178. package/dist/index-CWdd_hhx.js +0 -95
  179. package/dist/index-CWdd_hhx.js.map +0 -1
  180. package/dist/index-CcXh3eNf.js +0 -566
  181. package/dist/index-CcXh3eNf.js.map +0 -1
  182. package/dist/index-D176VpEe.cjs +0 -2
  183. package/dist/index-D176VpEe.cjs.map +0 -1
  184. package/dist/index-DMogRlf6.js +0 -77
  185. package/dist/index-DMogRlf6.js.map +0 -1
  186. package/dist/index-DU6X4Hss.cjs +0 -2
  187. package/dist/index-DU6X4Hss.cjs.map +0 -1
  188. package/dist/index-DVjJiJX9.js +0 -60
  189. package/dist/index-DVjJiJX9.js.map +0 -1
  190. package/dist/index-DfadY3Zk.js +0 -946
  191. package/dist/index-DfadY3Zk.js.map +0 -1
  192. package/dist/index-DpqS7M88.js +0 -303
  193. package/dist/index-DpqS7M88.js.map +0 -1
  194. package/dist/index-Dqa1Romt.js +0 -1306
  195. package/dist/index-Dqa1Romt.js.map +0 -1
  196. package/dist/index-DwzMEK1v.cjs +0 -4
  197. package/dist/index-DwzMEK1v.cjs.map +0 -1
  198. package/dist/index-UXHQc4zf.js +0 -139
  199. package/dist/index-UXHQc4zf.js.map +0 -1
  200. package/dist/index-cplAmCw7.js +0 -63
  201. package/dist/index-cplAmCw7.js.map +0 -1
  202. package/dist/index-gJXS1DPx.cjs +0 -2
  203. package/dist/index-gJXS1DPx.cjs.map +0 -1
  204. package/dist/index-osDEQbsO.cjs +0 -2
  205. package/dist/index-osDEQbsO.cjs.map +0 -1
  206. package/dist/index-pBR7sQhV.js +0 -961
  207. package/dist/index-pBR7sQhV.js.map +0 -1
  208. package/dist/index-u2prMxmu.cjs +0 -2
  209. package/dist/index-u2prMxmu.cjs.map +0 -1
  210. package/dist/index-zYOHSw6y.js +0 -1918
  211. package/dist/index-zYOHSw6y.js.map +0 -1
  212. package/dist/jinja2-DnB6dQmV.js +0 -155
  213. package/dist/jinja2-DnB6dQmV.js.map +0 -1
  214. package/dist/jinja2-wbVbDTNi.cjs +0 -2
  215. package/dist/jinja2-wbVbDTNi.cjs.map +0 -1
  216. package/dist/julia-DA67Qw9E.cjs +0 -2
  217. package/dist/julia-DA67Qw9E.cjs.map +0 -1
  218. package/dist/julia-DpvXAuO6.js +0 -242
  219. package/dist/julia-DpvXAuO6.js.map +0 -1
  220. package/dist/livescript-Bg3URadp.cjs +0 -2
  221. package/dist/livescript-Bg3URadp.cjs.map +0 -1
  222. package/dist/livescript-CanGTf8u.js +0 -273
  223. package/dist/livescript-CanGTf8u.js.map +0 -1
  224. package/dist/lua-CIsxjGwi.cjs +0 -2
  225. package/dist/lua-CIsxjGwi.cjs.map +0 -1
  226. package/dist/lua-XplVlWi_.js +0 -218
  227. package/dist/lua-XplVlWi_.js.map +0 -1
  228. package/dist/mathematica-BG089QIc.cjs +0 -2
  229. package/dist/mathematica-BG089QIc.cjs.map +0 -1
  230. package/dist/mathematica-jaRHnSxC.js +0 -36
  231. package/dist/mathematica-jaRHnSxC.js.map +0 -1
  232. package/dist/mbox-BctzC1hL.js +0 -77
  233. package/dist/mbox-BctzC1hL.js.map +0 -1
  234. package/dist/mbox-CySolFFZ.cjs +0 -2
  235. package/dist/mbox-CySolFFZ.cjs.map +0 -1
  236. package/dist/mirc-BfqEffzk.cjs +0 -2
  237. package/dist/mirc-BfqEffzk.cjs.map +0 -1
  238. package/dist/mirc-CFBPAOaF.js +0 -73
  239. package/dist/mirc-CFBPAOaF.js.map +0 -1
  240. package/dist/mllike-CBK_zjnT.cjs +0 -2
  241. package/dist/mllike-CBK_zjnT.cjs.map +0 -1
  242. package/dist/mllike-gvRenHsu.js +0 -273
  243. package/dist/mllike-gvRenHsu.js.map +0 -1
  244. package/dist/modelica-B6Zhcb-M.cjs +0 -2
  245. package/dist/modelica-B6Zhcb-M.cjs.map +0 -1
  246. package/dist/modelica-vUgVs--1.js +0 -94
  247. package/dist/modelica-vUgVs--1.js.map +0 -1
  248. package/dist/mscgen-B_Dg_s1G.cjs +0 -2
  249. package/dist/mscgen-B_Dg_s1G.cjs.map +0 -1
  250. package/dist/mscgen-ucEwbOaK.js +0 -82
  251. package/dist/mscgen-ucEwbOaK.js.map +0 -1
  252. package/dist/mumps-CQoS1kWX.js +0 -26
  253. package/dist/mumps-CQoS1kWX.js.map +0 -1
  254. package/dist/mumps-wfyQdxSu.cjs +0 -2
  255. package/dist/mumps-wfyQdxSu.cjs.map +0 -1
  256. package/dist/nginx-CwqyBUfA.cjs +0 -2
  257. package/dist/nginx-CwqyBUfA.cjs.map +0 -1
  258. package/dist/nginx-zDPm3Z74.js +0 -90
  259. package/dist/nginx-zDPm3Z74.js.map +0 -1
  260. package/dist/nsis-DPj2fUaP.cjs +0 -2
  261. package/dist/nsis-DPj2fUaP.cjs.map +0 -1
  262. package/dist/nsis-fePjrhq7.js +0 -63
  263. package/dist/nsis-fePjrhq7.js.map +0 -1
  264. package/dist/ntriples-CsNjv2QF.js +0 -80
  265. package/dist/ntriples-CsNjv2QF.js.map +0 -1
  266. package/dist/ntriples-DgwJmozm.cjs +0 -2
  267. package/dist/ntriples-DgwJmozm.cjs.map +0 -1
  268. package/dist/octave-1pkKrgAA.cjs +0 -2
  269. package/dist/octave-1pkKrgAA.cjs.map +0 -1
  270. package/dist/octave-C8PmmSRH.js +0 -144
  271. package/dist/octave-C8PmmSRH.js.map +0 -1
  272. package/dist/oz-BXOZCt0U.cjs +0 -2
  273. package/dist/oz-BXOZCt0U.cjs.map +0 -1
  274. package/dist/oz-Ce8aN8oE.js +0 -152
  275. package/dist/oz-Ce8aN8oE.js.map +0 -1
  276. package/dist/pascal-De0D6mP7.js +0 -78
  277. package/dist/pascal-De0D6mP7.js.map +0 -1
  278. package/dist/pascal-DtY2LEkJ.cjs +0 -2
  279. package/dist/pascal-DtY2LEkJ.cjs.map +0 -1
  280. package/dist/perl-B4bSCe1C.js +0 -916
  281. package/dist/perl-B4bSCe1C.js.map +0 -1
  282. package/dist/perl-CVDWbEju.cjs +0 -2
  283. package/dist/perl-CVDWbEju.cjs.map +0 -1
  284. package/dist/pig-D24Z8EXi.js +0 -55
  285. package/dist/pig-D24Z8EXi.js.map +0 -1
  286. package/dist/pig-DMByOrnr.cjs +0 -2
  287. package/dist/pig-DMByOrnr.cjs.map +0 -1
  288. package/dist/powershell-BaoYaFvj.cjs +0 -2
  289. package/dist/powershell-BaoYaFvj.cjs.map +0 -1
  290. package/dist/powershell-DkYVfTzP.js +0 -250
  291. package/dist/powershell-DkYVfTzP.js.map +0 -1
  292. package/dist/properties-DXHJZ3WE.cjs +0 -2
  293. package/dist/properties-DXHJZ3WE.cjs.map +0 -1
  294. package/dist/properties-Dn9wna3M.js +0 -27
  295. package/dist/properties-Dn9wna3M.js.map +0 -1
  296. package/dist/protobuf-BKhXdfH6.cjs +0 -2
  297. package/dist/protobuf-BKhXdfH6.cjs.map +0 -1
  298. package/dist/protobuf-BPIjwpzm.js +0 -50
  299. package/dist/protobuf-BPIjwpzm.js.map +0 -1
  300. package/dist/puppet-8mAyuMbW.cjs +0 -2
  301. package/dist/puppet-8mAyuMbW.cjs.map +0 -1
  302. package/dist/puppet-nyd4dhjf.js +0 -46
  303. package/dist/puppet-nyd4dhjf.js.map +0 -1
  304. package/dist/q-BPQ45Nxu.cjs +0 -2
  305. package/dist/q-BPQ45Nxu.cjs.map +0 -1
  306. package/dist/q-DXjKs-tC.js +0 -84
  307. package/dist/q-DXjKs-tC.js.map +0 -1
  308. package/dist/r-LKEuhEGI.js +0 -105
  309. package/dist/r-LKEuhEGI.js.map +0 -1
  310. package/dist/r-r2_EZsON.cjs +0 -2
  311. package/dist/r-r2_EZsON.cjs.map +0 -1
  312. package/dist/rpm-BoAefZZ1.js +0 -50
  313. package/dist/rpm-BoAefZZ1.js.map +0 -1
  314. package/dist/rpm-C6UDHByS.cjs +0 -2
  315. package/dist/rpm-C6UDHByS.cjs.map +0 -1
  316. package/dist/ruby-CcYfvIk6.js +0 -229
  317. package/dist/ruby-CcYfvIk6.js.map +0 -1
  318. package/dist/ruby-Cn1sFkZF.cjs +0 -2
  319. package/dist/ruby-Cn1sFkZF.cjs.map +0 -1
  320. package/dist/sas-7E8yHoCW.js +0 -106
  321. package/dist/sas-7E8yHoCW.js.map +0 -1
  322. package/dist/sas-DAGcJy94.cjs +0 -2
  323. package/dist/sas-DAGcJy94.cjs.map +0 -1
  324. package/dist/scheme-B0ZrbojV.cjs +0 -2
  325. package/dist/scheme-B0ZrbojV.cjs.map +0 -1
  326. package/dist/scheme-DjibxsNh.js +0 -125
  327. package/dist/scheme-DjibxsNh.js.map +0 -1
  328. package/dist/shell-BMYo43V6.cjs +0 -2
  329. package/dist/shell-BMYo43V6.cjs.map +0 -1
  330. package/dist/shell-C0C2sNA_.js +0 -183
  331. package/dist/shell-C0C2sNA_.js.map +0 -1
  332. package/dist/simple-mode-B0dvCdAA.js +0 -90
  333. package/dist/simple-mode-B0dvCdAA.js.map +0 -1
  334. package/dist/simple-mode-BIKNPBes.cjs +0 -2
  335. package/dist/simple-mode-BIKNPBes.cjs.map +0 -1
  336. package/dist/smalltalk-Bhddl2pB.js +0 -49
  337. package/dist/smalltalk-Bhddl2pB.js.map +0 -1
  338. package/dist/smalltalk-CSslY-3i.cjs +0 -2
  339. package/dist/smalltalk-CSslY-3i.cjs.map +0 -1
  340. package/dist/solr-A1kSnAwJ.cjs +0 -2
  341. package/dist/solr-A1kSnAwJ.cjs.map +0 -1
  342. package/dist/solr-BNlsLglM.js +0 -42
  343. package/dist/solr-BNlsLglM.js.map +0 -1
  344. package/dist/sparql-DnHMBLLY.cjs +0 -2
  345. package/dist/sparql-DnHMBLLY.cjs.map +0 -1
  346. package/dist/sparql-FarWu_Gb.js +0 -198
  347. package/dist/sparql-FarWu_Gb.js.map +0 -1
  348. package/dist/spreadsheet-B7_BK8hB.cjs +0 -2
  349. package/dist/spreadsheet-B7_BK8hB.cjs.map +0 -1
  350. package/dist/spreadsheet-C-cy4P5N.js +0 -50
  351. package/dist/spreadsheet-C-cy4P5N.js.map +0 -1
  352. package/dist/stex-B4wyjEnp.cjs +0 -2
  353. package/dist/stex-B4wyjEnp.cjs.map +0 -1
  354. package/dist/stex-Du4h4KAU.js +0 -130
  355. package/dist/stex-Du4h4KAU.js.map +0 -1
  356. package/dist/stylus-B3vYZZY8.cjs +0 -2
  357. package/dist/stylus-B3vYZZY8.cjs.map +0 -1
  358. package/dist/stylus-DRcbY16X.js +0 -251
  359. package/dist/stylus-DRcbY16X.js.map +0 -1
  360. package/dist/swift-DGw6Cgu8.cjs +0 -2
  361. package/dist/swift-DGw6Cgu8.cjs.map +0 -1
  362. package/dist/swift-DSxqR9R6.js +0 -231
  363. package/dist/swift-DSxqR9R6.js.map +0 -1
  364. package/dist/tcl-ByLXbQFo.cjs +0 -2
  365. package/dist/tcl-ByLXbQFo.cjs.map +0 -1
  366. package/dist/tcl-xfoLljhY.js +0 -82
  367. package/dist/tcl-xfoLljhY.js.map +0 -1
  368. package/dist/textile-D1AWE-pc.js +0 -296
  369. package/dist/textile-D1AWE-pc.js.map +0 -1
  370. package/dist/textile-iryw-lTw.cjs +0 -2
  371. package/dist/textile-iryw-lTw.cjs.map +0 -1
  372. package/dist/tiddlywiki-5wqsXtSk.js +0 -156
  373. package/dist/tiddlywiki-5wqsXtSk.js.map +0 -1
  374. package/dist/tiddlywiki-D8IJz1k7.cjs +0 -2
  375. package/dist/tiddlywiki-D8IJz1k7.cjs.map +0 -1
  376. package/dist/tiki-C5p5KSQK.cjs +0 -2
  377. package/dist/tiki-C5p5KSQK.cjs.map +0 -1
  378. package/dist/tiki-__Kn3CeS.js +0 -182
  379. package/dist/tiki-__Kn3CeS.js.map +0 -1
  380. package/dist/toml-3ZsH_4Qa.cjs +0 -2
  381. package/dist/toml-3ZsH_4Qa.cjs.map +0 -1
  382. package/dist/toml-BHiuTcfn.js +0 -50
  383. package/dist/toml-BHiuTcfn.js.map +0 -1
  384. package/dist/troff-D-3QCOYN.cjs +0 -2
  385. package/dist/troff-D-3QCOYN.cjs.map +0 -1
  386. package/dist/troff-D2UO-fKf.js +0 -36
  387. package/dist/troff-D2UO-fKf.js.map +0 -1
  388. package/dist/ttcn-Bsa4sfRm.js +0 -124
  389. package/dist/ttcn-Bsa4sfRm.js.map +0 -1
  390. package/dist/ttcn-C2MXAqcM.cjs +0 -2
  391. package/dist/ttcn-C2MXAqcM.cjs.map +0 -1
  392. package/dist/turtle-DSJNatSv.cjs +0 -2
  393. package/dist/turtle-DSJNatSv.cjs.map +0 -1
  394. package/dist/turtle-xwJUxoPV.js +0 -81
  395. package/dist/turtle-xwJUxoPV.js.map +0 -1
  396. package/dist/vb-c2kQGd6-.js +0 -75
  397. package/dist/vb-c2kQGd6-.js.map +0 -1
  398. package/dist/vb-qzHzzvyB.cjs +0 -2
  399. package/dist/vb-qzHzzvyB.cjs.map +0 -1
  400. package/dist/vbscript-1f_Dhg5H.js +0 -325
  401. package/dist/vbscript-1f_Dhg5H.js.map +0 -1
  402. package/dist/vbscript-CWm8v9tE.cjs +0 -2
  403. package/dist/vbscript-CWm8v9tE.cjs.map +0 -1
  404. package/dist/velocity-D3_yAIp3.cjs +0 -2
  405. package/dist/velocity-D3_yAIp3.cjs.map +0 -1
  406. package/dist/velocity-DJd0pTTC.js +0 -97
  407. package/dist/velocity-DJd0pTTC.js.map +0 -1
  408. package/dist/verilog-BOhLNmQo.cjs +0 -2
  409. package/dist/verilog-BOhLNmQo.cjs.map +0 -1
  410. package/dist/verilog-CiS1jyi5.js +0 -263
  411. package/dist/verilog-CiS1jyi5.js.map +0 -1
  412. package/dist/vhdl-CMFbi8Im.cjs +0 -2
  413. package/dist/vhdl-CMFbi8Im.cjs.map +0 -1
  414. package/dist/vhdl-T9HkrbI2.js +0 -107
  415. package/dist/vhdl-T9HkrbI2.js.map +0 -1
  416. package/dist/webidl-CWb_flNk.cjs +0 -2
  417. package/dist/webidl-CWb_flNk.cjs.map +0 -1
  418. package/dist/webidl-CjfDENEo.js +0 -156
  419. package/dist/webidl-CjfDENEo.js.map +0 -1
  420. package/dist/xquery-Ct6lEb4B.js +0 -423
  421. package/dist/xquery-Ct6lEb4B.js.map +0 -1
  422. package/dist/xquery-mbJFEpkV.cjs +0 -2
  423. package/dist/xquery-mbJFEpkV.cjs.map +0 -1
  424. package/dist/yacas-C0absKBh.js +0 -74
  425. package/dist/yacas-C0absKBh.js.map +0 -1
  426. package/dist/yacas-urx_N5C8.cjs +0 -2
  427. package/dist/yacas-urx_N5C8.cjs.map +0 -1
  428. package/dist/yaml-CSixJMdf.cjs +0 -2
  429. package/dist/yaml-CSixJMdf.cjs.map +0 -1
  430. package/dist/yaml-Dt6Tp2eU.js +0 -54
  431. package/dist/yaml-Dt6Tp2eU.js.map +0 -1
  432. package/dist/z80-CsG3CM6M.cjs +0 -2
  433. package/dist/z80-CsG3CM6M.cjs.map +0 -1
  434. package/dist/z80-Pki2zAjW.js +0 -62
  435. package/dist/z80-Pki2zAjW.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Dqa1Romt.js","sources":["../../../node_modules/.deno/@lezer+lr@1.4.4/node_modules/@lezer/lr/dist/index.js"],"sourcesContent":["import { Parser, NodeProp, NodeSet, NodeType, DefaultBufferLength, Tree, IterMode } from '@lezer/common';\n\n/**\nA parse stack. These are used internally by the parser to track\nparsing progress. They also provide some properties and methods\nthat external code such as a tokenizer can use to get information\nabout the parse state.\n*/\nclass Stack {\n /**\n @internal\n */\n constructor(\n /**\n The parse that this stack is part of @internal\n */\n p, \n /**\n Holds state, input pos, buffer index triplets for all but the\n top state @internal\n */\n stack, \n /**\n The current parse state @internal\n */\n state, \n // The position at which the next reduce should take place. This\n // can be less than `this.pos` when skipped expressions have been\n // added to the stack (which should be moved outside of the next\n // reduction)\n /**\n @internal\n */\n reducePos, \n /**\n The input position up to which this stack has parsed.\n */\n pos, \n /**\n The dynamic score of the stack, including dynamic precedence\n and error-recovery penalties\n @internal\n */\n score, \n // The output buffer. Holds (type, start, end, size) quads\n // representing nodes created by the parser, where `size` is\n // amount of buffer array entries covered by this node.\n /**\n @internal\n */\n buffer, \n // The base offset of the buffer. When stacks are split, the split\n // instance shared the buffer history with its parent up to\n // `bufferBase`, which is the absolute offset (including the\n // offset of previous splits) into the buffer at which this stack\n // starts writing.\n /**\n @internal\n */\n bufferBase, \n /**\n @internal\n */\n curContext, \n /**\n @internal\n */\n lookAhead = 0, \n // A parent stack from which this was split off, if any. This is\n // set up so that it always points to a stack that has some\n // additional buffer content, never to a stack with an equal\n // `bufferBase`.\n /**\n @internal\n */\n parent) {\n this.p = p;\n this.stack = stack;\n this.state = state;\n this.reducePos = reducePos;\n this.pos = pos;\n this.score = score;\n this.buffer = buffer;\n this.bufferBase = bufferBase;\n this.curContext = curContext;\n this.lookAhead = lookAhead;\n this.parent = parent;\n }\n /**\n @internal\n */\n toString() {\n return `[${this.stack.filter((_, i) => i % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? \"!\" + this.score : \"\"}`;\n }\n // Start an empty stack\n /**\n @internal\n */\n static start(p, state, pos = 0) {\n let cx = p.parser.context;\n return new Stack(p, [], state, pos, pos, 0, [], 0, cx ? new StackContext(cx, cx.start) : null, 0, null);\n }\n /**\n The stack's current [context](#lr.ContextTracker) value, if\n any. Its type will depend on the context tracker's type\n parameter, or it will be `null` if there is no context\n tracker.\n */\n get context() { return this.curContext ? this.curContext.context : null; }\n // Push a state onto the stack, tracking its start position as well\n // as the buffer base at that point.\n /**\n @internal\n */\n pushState(state, start) {\n this.stack.push(this.state, start, this.bufferBase + this.buffer.length);\n this.state = state;\n }\n // Apply a reduce action\n /**\n @internal\n */\n reduce(action) {\n var _a;\n let depth = action >> 19 /* Action.ReduceDepthShift */, type = action & 65535 /* Action.ValueMask */;\n let { parser } = this.p;\n let lookaheadRecord = this.reducePos < this.pos - 25 /* Lookahead.Margin */ && this.setLookAhead(this.pos);\n let dPrec = parser.dynamicPrecedence(type);\n if (dPrec)\n this.score += dPrec;\n if (depth == 0) {\n this.pushState(parser.getGoto(this.state, type, true), this.reducePos);\n // Zero-depth reductions are a special case—they add stuff to\n // the stack without popping anything off.\n if (type < parser.minRepeatTerm)\n this.storeNode(type, this.reducePos, this.reducePos, lookaheadRecord ? 8 : 4, true);\n this.reduceContext(type, this.reducePos);\n return;\n }\n // Find the base index into `this.stack`, content after which will\n // be dropped. Note that with `StayFlag` reductions we need to\n // consume two extra frames (the dummy parent node for the skipped\n // expression and the state that we'll be staying in, which should\n // be moved to `this.state`).\n let base = this.stack.length - ((depth - 1) * 3) - (action & 262144 /* Action.StayFlag */ ? 6 : 0);\n let start = base ? this.stack[base - 2] : this.p.ranges[0].from, size = this.reducePos - start;\n // This is a kludge to try and detect overly deep left-associative\n // trees, which will not increase the parse stack depth and thus\n // won't be caught by the regular stack-depth limit check.\n if (size >= 2000 /* Recover.MinBigReduction */ && !((_a = this.p.parser.nodeSet.types[type]) === null || _a === void 0 ? void 0 : _a.isAnonymous)) {\n if (start == this.p.lastBigReductionStart) {\n this.p.bigReductionCount++;\n this.p.lastBigReductionSize = size;\n }\n else if (this.p.lastBigReductionSize < size) {\n this.p.bigReductionCount = 1;\n this.p.lastBigReductionStart = start;\n this.p.lastBigReductionSize = size;\n }\n }\n let bufferBase = base ? this.stack[base - 1] : 0, count = this.bufferBase + this.buffer.length - bufferBase;\n // Store normal terms or `R -> R R` repeat reductions\n if (type < parser.minRepeatTerm || (action & 131072 /* Action.RepeatFlag */)) {\n let pos = parser.stateFlag(this.state, 1 /* StateFlag.Skipped */) ? this.pos : this.reducePos;\n this.storeNode(type, start, pos, count + 4, true);\n }\n if (action & 262144 /* Action.StayFlag */) {\n this.state = this.stack[base];\n }\n else {\n let baseStateID = this.stack[base - 3];\n this.state = parser.getGoto(baseStateID, type, true);\n }\n while (this.stack.length > base)\n this.stack.pop();\n this.reduceContext(type, start);\n }\n // Shift a value into the buffer\n /**\n @internal\n */\n storeNode(term, start, end, size = 4, mustSink = false) {\n if (term == 0 /* Term.Err */ &&\n (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {\n // Try to omit/merge adjacent error nodes\n let cur = this, top = this.buffer.length;\n if (top == 0 && cur.parent) {\n top = cur.bufferBase - cur.parent.bufferBase;\n cur = cur.parent;\n }\n if (top > 0 && cur.buffer[top - 4] == 0 /* Term.Err */ && cur.buffer[top - 1] > -1) {\n if (start == end)\n return;\n if (cur.buffer[top - 2] >= start) {\n cur.buffer[top - 2] = end;\n return;\n }\n }\n }\n if (!mustSink || this.pos == end) { // Simple case, just append\n this.buffer.push(term, start, end, size);\n }\n else { // There may be skipped nodes that have to be moved forward\n let index = this.buffer.length;\n if (index > 0 && (this.buffer[index - 4] != 0 /* Term.Err */ || this.buffer[index - 1] < 0)) {\n let mustMove = false;\n for (let scan = index; scan > 0 && this.buffer[scan - 2] > end; scan -= 4) {\n if (this.buffer[scan - 1] >= 0) {\n mustMove = true;\n break;\n }\n }\n if (mustMove)\n while (index > 0 && this.buffer[index - 2] > end) {\n // Move this record forward\n this.buffer[index] = this.buffer[index - 4];\n this.buffer[index + 1] = this.buffer[index - 3];\n this.buffer[index + 2] = this.buffer[index - 2];\n this.buffer[index + 3] = this.buffer[index - 1];\n index -= 4;\n if (size > 4)\n size -= 4;\n }\n }\n this.buffer[index] = term;\n this.buffer[index + 1] = start;\n this.buffer[index + 2] = end;\n this.buffer[index + 3] = size;\n }\n }\n // Apply a shift action\n /**\n @internal\n */\n shift(action, type, start, end) {\n if (action & 131072 /* Action.GotoFlag */) {\n this.pushState(action & 65535 /* Action.ValueMask */, this.pos);\n }\n else if ((action & 262144 /* Action.StayFlag */) == 0) { // Regular shift\n let nextState = action, { parser } = this.p;\n if (end > this.pos || type <= parser.maxNode) {\n this.pos = end;\n if (!parser.stateFlag(nextState, 1 /* StateFlag.Skipped */))\n this.reducePos = end;\n }\n this.pushState(nextState, start);\n this.shiftContext(type, start);\n if (type <= parser.maxNode)\n this.buffer.push(type, start, end, 4);\n }\n else { // Shift-and-stay, which means this is a skipped token\n this.pos = end;\n this.shiftContext(type, start);\n if (type <= this.p.parser.maxNode)\n this.buffer.push(type, start, end, 4);\n }\n }\n // Apply an action\n /**\n @internal\n */\n apply(action, next, nextStart, nextEnd) {\n if (action & 65536 /* Action.ReduceFlag */)\n this.reduce(action);\n else\n this.shift(action, next, nextStart, nextEnd);\n }\n // Add a prebuilt (reused) node into the buffer.\n /**\n @internal\n */\n useNode(value, next) {\n let index = this.p.reused.length - 1;\n if (index < 0 || this.p.reused[index] != value) {\n this.p.reused.push(value);\n index++;\n }\n let start = this.pos;\n this.reducePos = this.pos = start + value.length;\n this.pushState(next, start);\n this.buffer.push(index, start, this.reducePos, -1 /* size == -1 means this is a reused value */);\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reuse(this.curContext.context, value, this, this.p.stream.reset(this.pos - value.length)));\n }\n // Split the stack. Due to the buffer sharing and the fact\n // that `this.stack` tends to stay quite shallow, this isn't very\n // expensive.\n /**\n @internal\n */\n split() {\n let parent = this;\n let off = parent.buffer.length;\n // Because the top of the buffer (after this.pos) may be mutated\n // to reorder reductions and skipped tokens, and shared buffers\n // should be immutable, this copies any outstanding skipped tokens\n // to the new buffer, and puts the base pointer before them.\n while (off > 0 && parent.buffer[off - 2] > parent.reducePos)\n off -= 4;\n let buffer = parent.buffer.slice(off), base = parent.bufferBase + off;\n // Make sure parent points to an actual parent with content, if there is such a parent.\n while (parent && base == parent.bufferBase)\n parent = parent.parent;\n return new Stack(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, buffer, base, this.curContext, this.lookAhead, parent);\n }\n // Try to recover from an error by 'deleting' (ignoring) one token.\n /**\n @internal\n */\n recoverByDelete(next, nextEnd) {\n let isNode = next <= this.p.parser.maxNode;\n if (isNode)\n this.storeNode(next, this.pos, nextEnd, 4);\n this.storeNode(0 /* Term.Err */, this.pos, nextEnd, isNode ? 8 : 4);\n this.pos = this.reducePos = nextEnd;\n this.score -= 190 /* Recover.Delete */;\n }\n /**\n Check if the given term would be able to be shifted (optionally\n after some reductions) on this stack. This can be useful for\n external tokenizers that want to make sure they only provide a\n given token when it applies.\n */\n canShift(term) {\n for (let sim = new SimulatedStack(this);;) {\n let action = this.p.parser.stateSlot(sim.state, 4 /* ParseState.DefaultReduce */) || this.p.parser.hasAction(sim.state, term);\n if (action == 0)\n return false;\n if ((action & 65536 /* Action.ReduceFlag */) == 0)\n return true;\n sim.reduce(action);\n }\n }\n // Apply up to Recover.MaxNext recovery actions that conceptually\n // inserts some missing token or rule.\n /**\n @internal\n */\n recoverByInsert(next) {\n if (this.stack.length >= 300 /* Recover.MaxInsertStackDepth */)\n return [];\n let nextStates = this.p.parser.nextStates(this.state);\n if (nextStates.length > 4 /* Recover.MaxNext */ << 1 || this.stack.length >= 120 /* Recover.DampenInsertStackDepth */) {\n let best = [];\n for (let i = 0, s; i < nextStates.length; i += 2) {\n if ((s = nextStates[i + 1]) != this.state && this.p.parser.hasAction(s, next))\n best.push(nextStates[i], s);\n }\n if (this.stack.length < 120 /* Recover.DampenInsertStackDepth */)\n for (let i = 0; best.length < 4 /* Recover.MaxNext */ << 1 && i < nextStates.length; i += 2) {\n let s = nextStates[i + 1];\n if (!best.some((v, i) => (i & 1) && v == s))\n best.push(nextStates[i], s);\n }\n nextStates = best;\n }\n let result = [];\n for (let i = 0; i < nextStates.length && result.length < 4 /* Recover.MaxNext */; i += 2) {\n let s = nextStates[i + 1];\n if (s == this.state)\n continue;\n let stack = this.split();\n stack.pushState(s, this.pos);\n stack.storeNode(0 /* Term.Err */, stack.pos, stack.pos, 4, true);\n stack.shiftContext(nextStates[i], this.pos);\n stack.reducePos = this.pos;\n stack.score -= 200 /* Recover.Insert */;\n result.push(stack);\n }\n return result;\n }\n // Force a reduce, if possible. Return false if that can't\n // be done.\n /**\n @internal\n */\n forceReduce() {\n let { parser } = this.p;\n let reduce = parser.stateSlot(this.state, 5 /* ParseState.ForcedReduce */);\n if ((reduce & 65536 /* Action.ReduceFlag */) == 0)\n return false;\n if (!parser.validAction(this.state, reduce)) {\n let depth = reduce >> 19 /* Action.ReduceDepthShift */, term = reduce & 65535 /* Action.ValueMask */;\n let target = this.stack.length - depth * 3;\n if (target < 0 || parser.getGoto(this.stack[target], term, false) < 0) {\n let backup = this.findForcedReduction();\n if (backup == null)\n return false;\n reduce = backup;\n }\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n this.score -= 100 /* Recover.Reduce */;\n }\n this.reducePos = this.pos;\n this.reduce(reduce);\n return true;\n }\n /**\n Try to scan through the automaton to find some kind of reduction\n that can be applied. Used when the regular ForcedReduce field\n isn't a valid action. @internal\n */\n findForcedReduction() {\n let { parser } = this.p, seen = [];\n let explore = (state, depth) => {\n if (seen.includes(state))\n return;\n seen.push(state);\n return parser.allActions(state, (action) => {\n if (action & (262144 /* Action.StayFlag */ | 131072 /* Action.GotoFlag */)) ;\n else if (action & 65536 /* Action.ReduceFlag */) {\n let rDepth = (action >> 19 /* Action.ReduceDepthShift */) - depth;\n if (rDepth > 1) {\n let term = action & 65535 /* Action.ValueMask */, target = this.stack.length - rDepth * 3;\n if (target >= 0 && parser.getGoto(this.stack[target], term, false) >= 0)\n return (rDepth << 19 /* Action.ReduceDepthShift */) | 65536 /* Action.ReduceFlag */ | term;\n }\n }\n else {\n let found = explore(action, depth + 1);\n if (found != null)\n return found;\n }\n });\n };\n return explore(this.state, 0);\n }\n /**\n @internal\n */\n forceAll() {\n while (!this.p.parser.stateFlag(this.state, 2 /* StateFlag.Accepting */)) {\n if (!this.forceReduce()) {\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n break;\n }\n }\n return this;\n }\n /**\n Check whether this state has no further actions (assumed to be a direct descendant of the\n top state, since any other states must be able to continue\n somehow). @internal\n */\n get deadEnd() {\n if (this.stack.length != 3)\n return false;\n let { parser } = this.p;\n return parser.data[parser.stateSlot(this.state, 1 /* ParseState.Actions */)] == 65535 /* Seq.End */ &&\n !parser.stateSlot(this.state, 4 /* ParseState.DefaultReduce */);\n }\n /**\n Restart the stack (put it back in its start state). Only safe\n when this.stack.length == 3 (state is directly below the top\n state). @internal\n */\n restart() {\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n this.state = this.stack[0];\n this.stack.length = 0;\n }\n /**\n @internal\n */\n sameState(other) {\n if (this.state != other.state || this.stack.length != other.stack.length)\n return false;\n for (let i = 0; i < this.stack.length; i += 3)\n if (this.stack[i] != other.stack[i])\n return false;\n return true;\n }\n /**\n Get the parser used by this stack.\n */\n get parser() { return this.p.parser; }\n /**\n Test whether a given dialect (by numeric ID, as exported from\n the terms file) is enabled.\n */\n dialectEnabled(dialectID) { return this.p.parser.dialect.flags[dialectID]; }\n shiftContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.shift(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n reduceContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reduce(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n /**\n @internal\n */\n emitContext() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -3)\n this.buffer.push(this.curContext.hash, this.pos, this.pos, -3);\n }\n /**\n @internal\n */\n emitLookAhead() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -4)\n this.buffer.push(this.lookAhead, this.pos, this.pos, -4);\n }\n updateContext(context) {\n if (context != this.curContext.context) {\n let newCx = new StackContext(this.curContext.tracker, context);\n if (newCx.hash != this.curContext.hash)\n this.emitContext();\n this.curContext = newCx;\n }\n }\n /**\n @internal\n */\n setLookAhead(lookAhead) {\n if (lookAhead <= this.lookAhead)\n return false;\n this.emitLookAhead();\n this.lookAhead = lookAhead;\n return true;\n }\n /**\n @internal\n */\n close() {\n if (this.curContext && this.curContext.tracker.strict)\n this.emitContext();\n if (this.lookAhead > 0)\n this.emitLookAhead();\n }\n}\nclass StackContext {\n constructor(tracker, context) {\n this.tracker = tracker;\n this.context = context;\n this.hash = tracker.strict ? tracker.hash(context) : 0;\n }\n}\n// Used to cheaply run some reductions to scan ahead without mutating\n// an entire stack\nclass SimulatedStack {\n constructor(start) {\n this.start = start;\n this.state = start.state;\n this.stack = start.stack;\n this.base = this.stack.length;\n }\n reduce(action) {\n let term = action & 65535 /* Action.ValueMask */, depth = action >> 19 /* Action.ReduceDepthShift */;\n if (depth == 0) {\n if (this.stack == this.start.stack)\n this.stack = this.stack.slice();\n this.stack.push(this.state, 0, 0);\n this.base += 3;\n }\n else {\n this.base -= (depth - 1) * 3;\n }\n let goto = this.start.p.parser.getGoto(this.stack[this.base - 3], term, true);\n this.state = goto;\n }\n}\n// This is given to `Tree.build` to build a buffer, and encapsulates\n// the parent-stack-walking necessary to read the nodes.\nclass StackBufferCursor {\n constructor(stack, pos, index) {\n this.stack = stack;\n this.pos = pos;\n this.index = index;\n this.buffer = stack.buffer;\n if (this.index == 0)\n this.maybeNext();\n }\n static create(stack, pos = stack.bufferBase + stack.buffer.length) {\n return new StackBufferCursor(stack, pos, pos - stack.bufferBase);\n }\n maybeNext() {\n let next = this.stack.parent;\n if (next != null) {\n this.index = this.stack.bufferBase - next.bufferBase;\n this.stack = next;\n this.buffer = next.buffer;\n }\n }\n get id() { return this.buffer[this.index - 4]; }\n get start() { return this.buffer[this.index - 3]; }\n get end() { return this.buffer[this.index - 2]; }\n get size() { return this.buffer[this.index - 1]; }\n next() {\n this.index -= 4;\n this.pos -= 4;\n if (this.index == 0)\n this.maybeNext();\n }\n fork() {\n return new StackBufferCursor(this.stack, this.pos, this.index);\n }\n}\n\n// See lezer-generator/src/encode.ts for comments about the encoding\n// used here\nfunction decodeArray(input, Type = Uint16Array) {\n if (typeof input != \"string\")\n return input;\n let array = null;\n for (let pos = 0, out = 0; pos < input.length;) {\n let value = 0;\n for (;;) {\n let next = input.charCodeAt(pos++), stop = false;\n if (next == 126 /* Encode.BigValCode */) {\n value = 65535 /* Encode.BigVal */;\n break;\n }\n if (next >= 92 /* Encode.Gap2 */)\n next--;\n if (next >= 34 /* Encode.Gap1 */)\n next--;\n let digit = next - 32 /* Encode.Start */;\n if (digit >= 46 /* Encode.Base */) {\n digit -= 46 /* Encode.Base */;\n stop = true;\n }\n value += digit;\n if (stop)\n break;\n value *= 46 /* Encode.Base */;\n }\n if (array)\n array[out++] = value;\n else\n array = new Type(value);\n }\n return array;\n}\n\nclass CachedToken {\n constructor() {\n this.start = -1;\n this.value = -1;\n this.end = -1;\n this.extended = -1;\n this.lookAhead = 0;\n this.mask = 0;\n this.context = 0;\n }\n}\nconst nullToken = new CachedToken;\n/**\n[Tokenizers](#lr.ExternalTokenizer) interact with the input\nthrough this interface. It presents the input as a stream of\ncharacters, tracking lookahead and hiding the complexity of\n[ranges](#common.Parser.parse^ranges) from tokenizer code.\n*/\nclass InputStream {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n input, \n /**\n @internal\n */\n ranges) {\n this.input = input;\n this.ranges = ranges;\n /**\n @internal\n */\n this.chunk = \"\";\n /**\n @internal\n */\n this.chunkOff = 0;\n /**\n Backup chunk\n */\n this.chunk2 = \"\";\n this.chunk2Pos = 0;\n /**\n The character code of the next code unit in the input, or -1\n when the stream is at the end of the input.\n */\n this.next = -1;\n /**\n @internal\n */\n this.token = nullToken;\n this.rangeIndex = 0;\n this.pos = this.chunkPos = ranges[0].from;\n this.range = ranges[0];\n this.end = ranges[ranges.length - 1].to;\n this.readNext();\n }\n /**\n @internal\n */\n resolveOffset(offset, assoc) {\n let range = this.range, index = this.rangeIndex;\n let pos = this.pos + offset;\n while (pos < range.from) {\n if (!index)\n return null;\n let next = this.ranges[--index];\n pos -= range.from - next.to;\n range = next;\n }\n while (assoc < 0 ? pos > range.to : pos >= range.to) {\n if (index == this.ranges.length - 1)\n return null;\n let next = this.ranges[++index];\n pos += next.from - range.to;\n range = next;\n }\n return pos;\n }\n /**\n @internal\n */\n clipPos(pos) {\n if (pos >= this.range.from && pos < this.range.to)\n return pos;\n for (let range of this.ranges)\n if (range.to > pos)\n return Math.max(pos, range.from);\n return this.end;\n }\n /**\n Look at a code unit near the stream position. `.peek(0)` equals\n `.next`, `.peek(-1)` gives you the previous character, and so\n on.\n \n Note that looking around during tokenizing creates dependencies\n on potentially far-away content, which may reduce the\n effectiveness incremental parsing—when looking forward—or even\n cause invalid reparses when looking backward more than 25 code\n units, since the library does not track lookbehind.\n */\n peek(offset) {\n let idx = this.chunkOff + offset, pos, result;\n if (idx >= 0 && idx < this.chunk.length) {\n pos = this.pos + offset;\n result = this.chunk.charCodeAt(idx);\n }\n else {\n let resolved = this.resolveOffset(offset, 1);\n if (resolved == null)\n return -1;\n pos = resolved;\n if (pos >= this.chunk2Pos && pos < this.chunk2Pos + this.chunk2.length) {\n result = this.chunk2.charCodeAt(pos - this.chunk2Pos);\n }\n else {\n let i = this.rangeIndex, range = this.range;\n while (range.to <= pos)\n range = this.ranges[++i];\n this.chunk2 = this.input.chunk(this.chunk2Pos = pos);\n if (pos + this.chunk2.length > range.to)\n this.chunk2 = this.chunk2.slice(0, range.to - pos);\n result = this.chunk2.charCodeAt(0);\n }\n }\n if (pos >= this.token.lookAhead)\n this.token.lookAhead = pos + 1;\n return result;\n }\n /**\n Accept a token. By default, the end of the token is set to the\n current stream position, but you can pass an offset (relative to\n the stream position) to change that.\n */\n acceptToken(token, endOffset = 0) {\n let end = endOffset ? this.resolveOffset(endOffset, -1) : this.pos;\n if (end == null || end < this.token.start)\n throw new RangeError(\"Token end out of bounds\");\n this.token.value = token;\n this.token.end = end;\n }\n /**\n Accept a token ending at a specific given position.\n */\n acceptTokenTo(token, endPos) {\n this.token.value = token;\n this.token.end = endPos;\n }\n getChunk() {\n if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {\n let { chunk, chunkPos } = this;\n this.chunk = this.chunk2;\n this.chunkPos = this.chunk2Pos;\n this.chunk2 = chunk;\n this.chunk2Pos = chunkPos;\n this.chunkOff = this.pos - this.chunkPos;\n }\n else {\n this.chunk2 = this.chunk;\n this.chunk2Pos = this.chunkPos;\n let nextChunk = this.input.chunk(this.pos);\n let end = this.pos + nextChunk.length;\n this.chunk = end > this.range.to ? nextChunk.slice(0, this.range.to - this.pos) : nextChunk;\n this.chunkPos = this.pos;\n this.chunkOff = 0;\n }\n }\n readNext() {\n if (this.chunkOff >= this.chunk.length) {\n this.getChunk();\n if (this.chunkOff == this.chunk.length)\n return this.next = -1;\n }\n return this.next = this.chunk.charCodeAt(this.chunkOff);\n }\n /**\n Move the stream forward N (defaults to 1) code units. Returns\n the new value of [`next`](#lr.InputStream.next).\n */\n advance(n = 1) {\n this.chunkOff += n;\n while (this.pos + n >= this.range.to) {\n if (this.rangeIndex == this.ranges.length - 1)\n return this.setDone();\n n -= this.range.to - this.pos;\n this.range = this.ranges[++this.rangeIndex];\n this.pos = this.range.from;\n }\n this.pos += n;\n if (this.pos >= this.token.lookAhead)\n this.token.lookAhead = this.pos + 1;\n return this.readNext();\n }\n setDone() {\n this.pos = this.chunkPos = this.end;\n this.range = this.ranges[this.rangeIndex = this.ranges.length - 1];\n this.chunk = \"\";\n return this.next = -1;\n }\n /**\n @internal\n */\n reset(pos, token) {\n if (token) {\n this.token = token;\n token.start = pos;\n token.lookAhead = pos + 1;\n token.value = token.extended = -1;\n }\n else {\n this.token = nullToken;\n }\n if (this.pos != pos) {\n this.pos = pos;\n if (pos == this.end) {\n this.setDone();\n return this;\n }\n while (pos < this.range.from)\n this.range = this.ranges[--this.rangeIndex];\n while (pos >= this.range.to)\n this.range = this.ranges[++this.rangeIndex];\n if (pos >= this.chunkPos && pos < this.chunkPos + this.chunk.length) {\n this.chunkOff = pos - this.chunkPos;\n }\n else {\n this.chunk = \"\";\n this.chunkOff = 0;\n }\n this.readNext();\n }\n return this;\n }\n /**\n @internal\n */\n read(from, to) {\n if (from >= this.chunkPos && to <= this.chunkPos + this.chunk.length)\n return this.chunk.slice(from - this.chunkPos, to - this.chunkPos);\n if (from >= this.chunk2Pos && to <= this.chunk2Pos + this.chunk2.length)\n return this.chunk2.slice(from - this.chunk2Pos, to - this.chunk2Pos);\n if (from >= this.range.from && to <= this.range.to)\n return this.input.read(from, to);\n let result = \"\";\n for (let r of this.ranges) {\n if (r.from >= to)\n break;\n if (r.to > from)\n result += this.input.read(Math.max(r.from, from), Math.min(r.to, to));\n }\n return result;\n }\n}\n/**\n@internal\n*/\nclass TokenGroup {\n constructor(data, id) {\n this.data = data;\n this.id = id;\n }\n token(input, stack) {\n let { parser } = stack.p;\n readToken(this.data, input, stack, this.id, parser.data, parser.tokenPrecTable);\n }\n}\nTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;\n/**\n@hide\n*/\nclass LocalTokenGroup {\n constructor(data, precTable, elseToken) {\n this.precTable = precTable;\n this.elseToken = elseToken;\n this.data = typeof data == \"string\" ? decodeArray(data) : data;\n }\n token(input, stack) {\n let start = input.pos, skipped = 0;\n for (;;) {\n let atEof = input.next < 0, nextPos = input.resolveOffset(1, 1);\n readToken(this.data, input, stack, 0, this.data, this.precTable);\n if (input.token.value > -1)\n break;\n if (this.elseToken == null)\n return;\n if (!atEof)\n skipped++;\n if (nextPos == null)\n break;\n input.reset(nextPos, input.token);\n }\n if (skipped) {\n input.reset(start, input.token);\n input.acceptToken(this.elseToken, skipped);\n }\n }\n}\nLocalTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;\n/**\n`@external tokens` declarations in the grammar should resolve to\nan instance of this class.\n*/\nclass ExternalTokenizer {\n /**\n Create a tokenizer. The first argument is the function that,\n given an input stream, scans for the types of tokens it\n recognizes at the stream's position, and calls\n [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n one.\n */\n constructor(\n /**\n @internal\n */\n token, options = {}) {\n this.token = token;\n this.contextual = !!options.contextual;\n this.fallback = !!options.fallback;\n this.extend = !!options.extend;\n }\n}\n// Tokenizer data is stored a big uint16 array containing, for each\n// state:\n//\n// - A group bitmask, indicating what token groups are reachable from\n// this state, so that paths that can only lead to tokens not in\n// any of the current groups can be cut off early.\n//\n// - The position of the end of the state's sequence of accepting\n// tokens\n//\n// - The number of outgoing edges for the state\n//\n// - The accepting tokens, as (token id, group mask) pairs\n//\n// - The outgoing edges, as (start character, end character, state\n// index) triples, with end character being exclusive\n//\n// This function interprets that data, running through a stream as\n// long as new states with the a matching group mask can be reached,\n// and updating `input.token` when it matches a token.\nfunction readToken(data, input, stack, group, precTable, precOffset) {\n let state = 0, groupMask = 1 << group, { dialect } = stack.p.parser;\n scan: for (;;) {\n if ((groupMask & data[state]) == 0)\n break;\n let accEnd = data[state + 1];\n // Check whether this state can lead to a token in the current group\n // Accept tokens in this state, possibly overwriting\n // lower-precedence / shorter tokens\n for (let i = state + 3; i < accEnd; i += 2)\n if ((data[i + 1] & groupMask) > 0) {\n let term = data[i];\n if (dialect.allows(term) &&\n (input.token.value == -1 || input.token.value == term ||\n overrides(term, input.token.value, precTable, precOffset))) {\n input.acceptToken(term);\n break;\n }\n }\n let next = input.next, low = 0, high = data[state + 2];\n // Special case for EOF\n if (input.next < 0 && high > low && data[accEnd + high * 3 - 3] == 65535 /* Seq.End */) {\n state = data[accEnd + high * 3 - 1];\n continue scan;\n }\n // Do a binary search on the state's edges\n for (; low < high;) {\n let mid = (low + high) >> 1;\n let index = accEnd + mid + (mid << 1);\n let from = data[index], to = data[index + 1] || 0x10000;\n if (next < from)\n high = mid;\n else if (next >= to)\n low = mid + 1;\n else {\n state = data[index + 2];\n input.advance();\n continue scan;\n }\n }\n break;\n }\n}\nfunction findOffset(data, start, term) {\n for (let i = start, next; (next = data[i]) != 65535 /* Seq.End */; i++)\n if (next == term)\n return i - start;\n return -1;\n}\nfunction overrides(token, prev, tableData, tableOffset) {\n let iPrev = findOffset(tableData, tableOffset, prev);\n return iPrev < 0 || findOffset(tableData, tableOffset, token) < iPrev;\n}\n\n// Environment variable used to control console output\nconst verbose = typeof process != \"undefined\" && process.env && /\\bparse\\b/.test(process.env.LOG);\nlet stackIDs = null;\nfunction cutAt(tree, pos, side) {\n let cursor = tree.cursor(IterMode.IncludeAnonymous);\n cursor.moveTo(pos);\n for (;;) {\n if (!(side < 0 ? cursor.childBefore(pos) : cursor.childAfter(pos)))\n for (;;) {\n if ((side < 0 ? cursor.to < pos : cursor.from > pos) && !cursor.type.isError)\n return side < 0 ? Math.max(0, Math.min(cursor.to - 1, pos - 25 /* Lookahead.Margin */))\n : Math.min(tree.length, Math.max(cursor.from + 1, pos + 25 /* Lookahead.Margin */));\n if (side < 0 ? cursor.prevSibling() : cursor.nextSibling())\n break;\n if (!cursor.parent())\n return side < 0 ? 0 : tree.length;\n }\n }\n}\nclass FragmentCursor {\n constructor(fragments, nodeSet) {\n this.fragments = fragments;\n this.nodeSet = nodeSet;\n this.i = 0;\n this.fragment = null;\n this.safeFrom = -1;\n this.safeTo = -1;\n this.trees = [];\n this.start = [];\n this.index = [];\n this.nextFragment();\n }\n nextFragment() {\n let fr = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];\n if (fr) {\n this.safeFrom = fr.openStart ? cutAt(fr.tree, fr.from + fr.offset, 1) - fr.offset : fr.from;\n this.safeTo = fr.openEnd ? cutAt(fr.tree, fr.to + fr.offset, -1) - fr.offset : fr.to;\n while (this.trees.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n }\n this.trees.push(fr.tree);\n this.start.push(-fr.offset);\n this.index.push(0);\n this.nextStart = this.safeFrom;\n }\n else {\n this.nextStart = 1e9;\n }\n }\n // `pos` must be >= any previously given `pos` for this cursor\n nodeAt(pos) {\n if (pos < this.nextStart)\n return null;\n while (this.fragment && this.safeTo <= pos)\n this.nextFragment();\n if (!this.fragment)\n return null;\n for (;;) {\n let last = this.trees.length - 1;\n if (last < 0) { // End of tree\n this.nextFragment();\n return null;\n }\n let top = this.trees[last], index = this.index[last];\n if (index == top.children.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n continue;\n }\n let next = top.children[index];\n let start = this.start[last] + top.positions[index];\n if (start > pos) {\n this.nextStart = start;\n return null;\n }\n if (next instanceof Tree) {\n if (start == pos) {\n if (start < this.safeFrom)\n return null;\n let end = start + next.length;\n if (end <= this.safeTo) {\n let lookAhead = next.prop(NodeProp.lookAhead);\n if (!lookAhead || end + lookAhead < this.fragment.to)\n return next;\n }\n }\n this.index[last]++;\n if (start + next.length >= Math.max(this.safeFrom, pos)) { // Enter this node\n this.trees.push(next);\n this.start.push(start);\n this.index.push(0);\n }\n }\n else {\n this.index[last]++;\n this.nextStart = start + next.length;\n }\n }\n }\n}\nclass TokenCache {\n constructor(parser, stream) {\n this.stream = stream;\n this.tokens = [];\n this.mainToken = null;\n this.actions = [];\n this.tokens = parser.tokenizers.map(_ => new CachedToken);\n }\n getActions(stack) {\n let actionIndex = 0;\n let main = null;\n let { parser } = stack.p, { tokenizers } = parser;\n let mask = parser.stateSlot(stack.state, 3 /* ParseState.TokenizerMask */);\n let context = stack.curContext ? stack.curContext.hash : 0;\n let lookAhead = 0;\n for (let i = 0; i < tokenizers.length; i++) {\n if (((1 << i) & mask) == 0)\n continue;\n let tokenizer = tokenizers[i], token = this.tokens[i];\n if (main && !tokenizer.fallback)\n continue;\n if (tokenizer.contextual || token.start != stack.pos || token.mask != mask || token.context != context) {\n this.updateCachedToken(token, tokenizer, stack);\n token.mask = mask;\n token.context = context;\n }\n if (token.lookAhead > token.end + 25 /* Lookahead.Margin */)\n lookAhead = Math.max(token.lookAhead, lookAhead);\n if (token.value != 0 /* Term.Err */) {\n let startIndex = actionIndex;\n if (token.extended > -1)\n actionIndex = this.addActions(stack, token.extended, token.end, actionIndex);\n actionIndex = this.addActions(stack, token.value, token.end, actionIndex);\n if (!tokenizer.extend) {\n main = token;\n if (actionIndex > startIndex)\n break;\n }\n }\n }\n while (this.actions.length > actionIndex)\n this.actions.pop();\n if (lookAhead)\n stack.setLookAhead(lookAhead);\n if (!main && stack.pos == this.stream.end) {\n main = new CachedToken;\n main.value = stack.p.parser.eofTerm;\n main.start = main.end = stack.pos;\n actionIndex = this.addActions(stack, main.value, main.end, actionIndex);\n }\n this.mainToken = main;\n return this.actions;\n }\n getMainToken(stack) {\n if (this.mainToken)\n return this.mainToken;\n let main = new CachedToken, { pos, p } = stack;\n main.start = pos;\n main.end = Math.min(pos + 1, p.stream.end);\n main.value = pos == p.stream.end ? p.parser.eofTerm : 0 /* Term.Err */;\n return main;\n }\n updateCachedToken(token, tokenizer, stack) {\n let start = this.stream.clipPos(stack.pos);\n tokenizer.token(this.stream.reset(start, token), stack);\n if (token.value > -1) {\n let { parser } = stack.p;\n for (let i = 0; i < parser.specialized.length; i++)\n if (parser.specialized[i] == token.value) {\n let result = parser.specializers[i](this.stream.read(token.start, token.end), stack);\n if (result >= 0 && stack.p.parser.dialect.allows(result >> 1)) {\n if ((result & 1) == 0 /* Specialize.Specialize */)\n token.value = result >> 1;\n else\n token.extended = result >> 1;\n break;\n }\n }\n }\n else {\n token.value = 0 /* Term.Err */;\n token.end = this.stream.clipPos(start + 1);\n }\n }\n putAction(action, token, end, index) {\n // Don't add duplicate actions\n for (let i = 0; i < index; i += 3)\n if (this.actions[i] == action)\n return index;\n this.actions[index++] = action;\n this.actions[index++] = token;\n this.actions[index++] = end;\n return index;\n }\n addActions(stack, token, end, index) {\n let { state } = stack, { parser } = stack.p, { data } = parser;\n for (let set = 0; set < 2; set++) {\n for (let i = parser.stateSlot(state, set ? 2 /* ParseState.Skip */ : 1 /* ParseState.Actions */);; i += 3) {\n if (data[i] == 65535 /* Seq.End */) {\n if (data[i + 1] == 1 /* Seq.Next */) {\n i = pair(data, i + 2);\n }\n else {\n if (index == 0 && data[i + 1] == 2 /* Seq.Other */)\n index = this.putAction(pair(data, i + 2), token, end, index);\n break;\n }\n }\n if (data[i] == token)\n index = this.putAction(pair(data, i + 1), token, end, index);\n }\n }\n return index;\n }\n}\nclass Parse {\n constructor(parser, input, fragments, ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.recovering = 0;\n this.nextStackID = 0x2654; // ♔, ♕, ♖, ♗, ♘, ♙, ♠, ♡, ♢, ♣, ♤, ♥, ♦, ♧\n this.minStackPos = 0;\n this.reused = [];\n this.stoppedAt = null;\n this.lastBigReductionStart = -1;\n this.lastBigReductionSize = 0;\n this.bigReductionCount = 0;\n this.stream = new InputStream(input, ranges);\n this.tokens = new TokenCache(parser, this.stream);\n this.topTerm = parser.top[1];\n let { from } = ranges[0];\n this.stacks = [Stack.start(this, parser.top[0], from)];\n this.fragments = fragments.length && this.stream.end - from > parser.bufferLength * 4\n ? new FragmentCursor(fragments, parser.nodeSet) : null;\n }\n get parsedPos() {\n return this.minStackPos;\n }\n // Move the parser forward. This will process all parse stacks at\n // `this.pos` and try to advance them to a further position. If no\n // stack for such a position is found, it'll start error-recovery.\n //\n // When the parse is finished, this will return a syntax tree. When\n // not, it returns `null`.\n advance() {\n let stacks = this.stacks, pos = this.minStackPos;\n // This will hold stacks beyond `pos`.\n let newStacks = this.stacks = [];\n let stopped, stoppedTokens;\n // If a large amount of reductions happened with the same start\n // position, force the stack out of that production in order to\n // avoid creating a tree too deep to recurse through.\n // (This is an ugly kludge, because unfortunately there is no\n // straightforward, cheap way to check for this happening, due to\n // the history of reductions only being available in an\n // expensive-to-access format in the stack buffers.)\n if (this.bigReductionCount > 300 /* Rec.MaxLeftAssociativeReductionCount */ && stacks.length == 1) {\n let [s] = stacks;\n while (s.forceReduce() && s.stack.length && s.stack[s.stack.length - 2] >= this.lastBigReductionStart) { }\n this.bigReductionCount = this.lastBigReductionSize = 0;\n }\n // Keep advancing any stacks at `pos` until they either move\n // forward or can't be advanced. Gather stacks that can't be\n // advanced further in `stopped`.\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i];\n for (;;) {\n this.tokens.mainToken = null;\n if (stack.pos > pos) {\n newStacks.push(stack);\n }\n else if (this.advanceStack(stack, newStacks, stacks)) {\n continue;\n }\n else {\n if (!stopped) {\n stopped = [];\n stoppedTokens = [];\n }\n stopped.push(stack);\n let tok = this.tokens.getMainToken(stack);\n stoppedTokens.push(tok.value, tok.end);\n }\n break;\n }\n }\n if (!newStacks.length) {\n let finished = stopped && findFinished(stopped);\n if (finished) {\n if (verbose)\n console.log(\"Finish with \" + this.stackID(finished));\n return this.stackToTree(finished);\n }\n if (this.parser.strict) {\n if (verbose && stopped)\n console.log(\"Stuck with token \" + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : \"none\"));\n throw new SyntaxError(\"No parse at \" + pos);\n }\n if (!this.recovering)\n this.recovering = 5 /* Rec.Distance */;\n }\n if (this.recovering && stopped) {\n let finished = this.stoppedAt != null && stopped[0].pos > this.stoppedAt ? stopped[0]\n : this.runRecovery(stopped, stoppedTokens, newStacks);\n if (finished) {\n if (verbose)\n console.log(\"Force-finish \" + this.stackID(finished));\n return this.stackToTree(finished.forceAll());\n }\n }\n if (this.recovering) {\n let maxRemaining = this.recovering == 1 ? 1 : this.recovering * 3 /* Rec.MaxRemainingPerStep */;\n if (newStacks.length > maxRemaining) {\n newStacks.sort((a, b) => b.score - a.score);\n while (newStacks.length > maxRemaining)\n newStacks.pop();\n }\n if (newStacks.some(s => s.reducePos > pos))\n this.recovering--;\n }\n else if (newStacks.length > 1) {\n // Prune stacks that are in the same state, or that have been\n // running without splitting for a while, to avoid getting stuck\n // with multiple successful stacks running endlessly on.\n outer: for (let i = 0; i < newStacks.length - 1; i++) {\n let stack = newStacks[i];\n for (let j = i + 1; j < newStacks.length; j++) {\n let other = newStacks[j];\n if (stack.sameState(other) ||\n stack.buffer.length > 500 /* Rec.MinBufferLengthPrune */ && other.buffer.length > 500 /* Rec.MinBufferLengthPrune */) {\n if (((stack.score - other.score) || (stack.buffer.length - other.buffer.length)) > 0) {\n newStacks.splice(j--, 1);\n }\n else {\n newStacks.splice(i--, 1);\n continue outer;\n }\n }\n }\n }\n if (newStacks.length > 12 /* Rec.MaxStackCount */)\n newStacks.splice(12 /* Rec.MaxStackCount */, newStacks.length - 12 /* Rec.MaxStackCount */);\n }\n this.minStackPos = newStacks[0].pos;\n for (let i = 1; i < newStacks.length; i++)\n if (newStacks[i].pos < this.minStackPos)\n this.minStackPos = newStacks[i].pos;\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n // Returns an updated version of the given stack, or null if the\n // stack can't advance normally. When `split` and `stacks` are\n // given, stacks split off by ambiguous operations will be pushed to\n // `split`, or added to `stacks` if they move `pos` forward.\n advanceStack(stack, stacks, split) {\n let start = stack.pos, { parser } = this;\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (this.stoppedAt != null && start > this.stoppedAt)\n return stack.forceReduce() ? stack : null;\n if (this.fragments) {\n let strictCx = stack.curContext && stack.curContext.tracker.strict, cxHash = strictCx ? stack.curContext.hash : 0;\n for (let cached = this.fragments.nodeAt(start); cached;) {\n let match = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser.getGoto(stack.state, cached.type.id) : -1;\n if (match > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {\n stack.useNode(cached, match);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via reuse of ${parser.getName(cached.type.id)})`);\n return true;\n }\n if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)\n break;\n let inner = cached.children[0];\n if (inner instanceof Tree && cached.positions[0] == 0)\n cached = inner;\n else\n break;\n }\n }\n let defaultReduce = parser.stateSlot(stack.state, 4 /* ParseState.DefaultReduce */);\n if (defaultReduce > 0) {\n stack.reduce(defaultReduce);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via always-reduce ${parser.getName(defaultReduce & 65535 /* Action.ValueMask */)})`);\n return true;\n }\n if (stack.stack.length >= 8400 /* Rec.CutDepth */) {\n while (stack.stack.length > 6000 /* Rec.CutTo */ && stack.forceReduce()) { }\n }\n let actions = this.tokens.getActions(stack);\n for (let i = 0; i < actions.length;) {\n let action = actions[i++], term = actions[i++], end = actions[i++];\n let last = i == actions.length || !split;\n let localStack = last ? stack : stack.split();\n let main = this.tokens.mainToken;\n localStack.apply(action, term, main ? main.start : localStack.pos, end);\n if (verbose)\n console.log(base + this.stackID(localStack) + ` (via ${(action & 65536 /* Action.ReduceFlag */) == 0 ? \"shift\"\n : `reduce of ${parser.getName(action & 65535 /* Action.ValueMask */)}`} for ${parser.getName(term)} @ ${start}${localStack == stack ? \"\" : \", split\"})`);\n if (last)\n return true;\n else if (localStack.pos > start)\n stacks.push(localStack);\n else\n split.push(localStack);\n }\n return false;\n }\n // Advance a given stack forward as far as it will go. Returns the\n // (possibly updated) stack if it got stuck, or null if it moved\n // forward and was given to `pushStackDedup`.\n advanceFully(stack, newStacks) {\n let pos = stack.pos;\n for (;;) {\n if (!this.advanceStack(stack, null, null))\n return false;\n if (stack.pos > pos) {\n pushStackDedup(stack, newStacks);\n return true;\n }\n }\n }\n runRecovery(stacks, tokens, newStacks) {\n let finished = null, restarted = false;\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i], token = tokens[i << 1], tokenEnd = tokens[(i << 1) + 1];\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (stack.deadEnd) {\n if (restarted)\n continue;\n restarted = true;\n stack.restart();\n if (verbose)\n console.log(base + this.stackID(stack) + \" (restarted)\");\n let done = this.advanceFully(stack, newStacks);\n if (done)\n continue;\n }\n let force = stack.split(), forceBase = base;\n for (let j = 0; j < 10 /* Rec.ForceReduceLimit */ && force.forceReduce(); j++) {\n if (verbose)\n console.log(forceBase + this.stackID(force) + \" (via force-reduce)\");\n let done = this.advanceFully(force, newStacks);\n if (done)\n break;\n if (verbose)\n forceBase = this.stackID(force) + \" -> \";\n }\n for (let insert of stack.recoverByInsert(token)) {\n if (verbose)\n console.log(base + this.stackID(insert) + \" (via recover-insert)\");\n this.advanceFully(insert, newStacks);\n }\n if (this.stream.end > stack.pos) {\n if (tokenEnd == stack.pos) {\n tokenEnd++;\n token = 0 /* Term.Err */;\n }\n stack.recoverByDelete(token, tokenEnd);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via recover-delete ${this.parser.getName(token)})`);\n pushStackDedup(stack, newStacks);\n }\n else if (!finished || finished.score < stack.score) {\n finished = stack;\n }\n }\n return finished;\n }\n // Convert the stack's buffer to a syntax tree.\n stackToTree(stack) {\n stack.close();\n return Tree.build({ buffer: StackBufferCursor.create(stack),\n nodeSet: this.parser.nodeSet,\n topID: this.topTerm,\n maxBufferLength: this.parser.bufferLength,\n reused: this.reused,\n start: this.ranges[0].from,\n length: stack.pos - this.ranges[0].from,\n minRepeatType: this.parser.minRepeatTerm });\n }\n stackID(stack) {\n let id = (stackIDs || (stackIDs = new WeakMap)).get(stack);\n if (!id)\n stackIDs.set(stack, id = String.fromCodePoint(this.nextStackID++));\n return id + stack;\n }\n}\nfunction pushStackDedup(stack, newStacks) {\n for (let i = 0; i < newStacks.length; i++) {\n let other = newStacks[i];\n if (other.pos == stack.pos && other.sameState(stack)) {\n if (newStacks[i].score < stack.score)\n newStacks[i] = stack;\n return;\n }\n }\n newStacks.push(stack);\n}\nclass Dialect {\n constructor(source, flags, disabled) {\n this.source = source;\n this.flags = flags;\n this.disabled = disabled;\n }\n allows(term) { return !this.disabled || this.disabled[term] == 0; }\n}\nconst id = x => x;\n/**\nContext trackers are used to track stateful context (such as\nindentation in the Python grammar, or parent elements in the XML\ngrammar) needed by external tokenizers. You declare them in a\ngrammar file as `@context exportName from \"module\"`.\n\nContext values should be immutable, and can be updated (replaced)\non shift or reduce actions.\n\nThe export used in a `@context` declaration should be of this\ntype.\n*/\nclass ContextTracker {\n /**\n Define a context tracker.\n */\n constructor(spec) {\n this.start = spec.start;\n this.shift = spec.shift || id;\n this.reduce = spec.reduce || id;\n this.reuse = spec.reuse || id;\n this.hash = spec.hash || (() => 0);\n this.strict = spec.strict !== false;\n }\n}\n/**\nHolds the parse tables for a given grammar, as generated by\n`lezer-generator`, and provides [methods](#common.Parser) to parse\ncontent with.\n*/\nclass LRParser extends Parser {\n /**\n @internal\n */\n constructor(spec) {\n super();\n /**\n @internal\n */\n this.wrappers = [];\n if (spec.version != 14 /* File.Version */)\n throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14 /* File.Version */})`);\n let nodeNames = spec.nodeNames.split(\" \");\n this.minRepeatTerm = nodeNames.length;\n for (let i = 0; i < spec.repeatNodeCount; i++)\n nodeNames.push(\"\");\n let topTerms = Object.keys(spec.topRules).map(r => spec.topRules[r][1]);\n let nodeProps = [];\n for (let i = 0; i < nodeNames.length; i++)\n nodeProps.push([]);\n function setProp(nodeID, prop, value) {\n nodeProps[nodeID].push([prop, prop.deserialize(String(value))]);\n }\n if (spec.nodeProps)\n for (let propSpec of spec.nodeProps) {\n let prop = propSpec[0];\n if (typeof prop == \"string\")\n prop = NodeProp[prop];\n for (let i = 1; i < propSpec.length;) {\n let next = propSpec[i++];\n if (next >= 0) {\n setProp(next, prop, propSpec[i++]);\n }\n else {\n let value = propSpec[i + -next];\n for (let j = -next; j > 0; j--)\n setProp(propSpec[i++], prop, value);\n i++;\n }\n }\n }\n this.nodeSet = new NodeSet(nodeNames.map((name, i) => NodeType.define({\n name: i >= this.minRepeatTerm ? undefined : name,\n id: i,\n props: nodeProps[i],\n top: topTerms.indexOf(i) > -1,\n error: i == 0,\n skipped: spec.skippedNodes && spec.skippedNodes.indexOf(i) > -1\n })));\n if (spec.propSources)\n this.nodeSet = this.nodeSet.extend(...spec.propSources);\n this.strict = false;\n this.bufferLength = DefaultBufferLength;\n let tokenArray = decodeArray(spec.tokenData);\n this.context = spec.context;\n this.specializerSpecs = spec.specialized || [];\n this.specialized = new Uint16Array(this.specializerSpecs.length);\n for (let i = 0; i < this.specializerSpecs.length; i++)\n this.specialized[i] = this.specializerSpecs[i].term;\n this.specializers = this.specializerSpecs.map(getSpecializer);\n this.states = decodeArray(spec.states, Uint32Array);\n this.data = decodeArray(spec.stateData);\n this.goto = decodeArray(spec.goto);\n this.maxTerm = spec.maxTerm;\n this.tokenizers = spec.tokenizers.map(value => typeof value == \"number\" ? new TokenGroup(tokenArray, value) : value);\n this.topRules = spec.topRules;\n this.dialects = spec.dialects || {};\n this.dynamicPrecedences = spec.dynamicPrecedences || null;\n this.tokenPrecTable = spec.tokenPrec;\n this.termNames = spec.termNames || null;\n this.maxNode = this.nodeSet.types.length - 1;\n this.dialect = this.parseDialect();\n this.top = this.topRules[Object.keys(this.topRules)[0]];\n }\n createParse(input, fragments, ranges) {\n let parse = new Parse(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /**\n Get a goto table entry @internal\n */\n getGoto(state, term, loose = false) {\n let table = this.goto;\n if (term >= table[0])\n return -1;\n for (let pos = table[term + 1];;) {\n let groupTag = table[pos++], last = groupTag & 1;\n let target = table[pos++];\n if (last && loose)\n return target;\n for (let end = pos + (groupTag >> 1); pos < end; pos++)\n if (table[pos] == state)\n return target;\n if (last)\n return -1;\n }\n }\n /**\n Check if this state has an action for a given terminal @internal\n */\n hasAction(state, terminal) {\n let data = this.data;\n for (let set = 0; set < 2; set++) {\n for (let i = this.stateSlot(state, set ? 2 /* ParseState.Skip */ : 1 /* ParseState.Actions */), next;; i += 3) {\n if ((next = data[i]) == 65535 /* Seq.End */) {\n if (data[i + 1] == 1 /* Seq.Next */)\n next = data[i = pair(data, i + 2)];\n else if (data[i + 1] == 2 /* Seq.Other */)\n return pair(data, i + 2);\n else\n break;\n }\n if (next == terminal || next == 0 /* Term.Err */)\n return pair(data, i + 1);\n }\n }\n return 0;\n }\n /**\n @internal\n */\n stateSlot(state, slot) {\n return this.states[(state * 6 /* ParseState.Size */) + slot];\n }\n /**\n @internal\n */\n stateFlag(state, flag) {\n return (this.stateSlot(state, 0 /* ParseState.Flags */) & flag) > 0;\n }\n /**\n @internal\n */\n validAction(state, action) {\n return !!this.allActions(state, a => a == action ? true : null);\n }\n /**\n @internal\n */\n allActions(state, action) {\n let deflt = this.stateSlot(state, 4 /* ParseState.DefaultReduce */);\n let result = deflt ? action(deflt) : undefined;\n for (let i = this.stateSlot(state, 1 /* ParseState.Actions */); result == null; i += 3) {\n if (this.data[i] == 65535 /* Seq.End */) {\n if (this.data[i + 1] == 1 /* Seq.Next */)\n i = pair(this.data, i + 2);\n else\n break;\n }\n result = action(pair(this.data, i + 1));\n }\n return result;\n }\n /**\n Get the states that can follow this one through shift actions or\n goto jumps. @internal\n */\n nextStates(state) {\n let result = [];\n for (let i = this.stateSlot(state, 1 /* ParseState.Actions */);; i += 3) {\n if (this.data[i] == 65535 /* Seq.End */) {\n if (this.data[i + 1] == 1 /* Seq.Next */)\n i = pair(this.data, i + 2);\n else\n break;\n }\n if ((this.data[i + 2] & (65536 /* Action.ReduceFlag */ >> 16)) == 0) {\n let value = this.data[i + 1];\n if (!result.some((v, i) => (i & 1) && v == value))\n result.push(this.data[i], value);\n }\n }\n return result;\n }\n /**\n Configure the parser. Returns a new parser instance that has the\n given settings modified. Settings not provided in `config` are\n kept from the original parser.\n */\n configure(config) {\n // Hideous reflection-based kludge to make it easy to create a\n // slightly modified copy of a parser.\n let copy = Object.assign(Object.create(LRParser.prototype), this);\n if (config.props)\n copy.nodeSet = this.nodeSet.extend(...config.props);\n if (config.top) {\n let info = this.topRules[config.top];\n if (!info)\n throw new RangeError(`Invalid top rule name ${config.top}`);\n copy.top = info;\n }\n if (config.tokenizers)\n copy.tokenizers = this.tokenizers.map(t => {\n let found = config.tokenizers.find(r => r.from == t);\n return found ? found.to : t;\n });\n if (config.specializers) {\n copy.specializers = this.specializers.slice();\n copy.specializerSpecs = this.specializerSpecs.map((s, i) => {\n let found = config.specializers.find(r => r.from == s.external);\n if (!found)\n return s;\n let spec = Object.assign(Object.assign({}, s), { external: found.to });\n copy.specializers[i] = getSpecializer(spec);\n return spec;\n });\n }\n if (config.contextTracker)\n copy.context = config.contextTracker;\n if (config.dialect)\n copy.dialect = this.parseDialect(config.dialect);\n if (config.strict != null)\n copy.strict = config.strict;\n if (config.wrap)\n copy.wrappers = copy.wrappers.concat(config.wrap);\n if (config.bufferLength != null)\n copy.bufferLength = config.bufferLength;\n return copy;\n }\n /**\n Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n are registered for this parser.\n */\n hasWrappers() {\n return this.wrappers.length > 0;\n }\n /**\n Returns the name associated with a given term. This will only\n work for all terms when the parser was generated with the\n `--names` option. By default, only the names of tagged terms are\n stored.\n */\n getName(term) {\n return this.termNames ? this.termNames[term] : String(term <= this.maxNode && this.nodeSet.types[term].name || term);\n }\n /**\n The eof term id is always allocated directly after the node\n types. @internal\n */\n get eofTerm() { return this.maxNode + 1; }\n /**\n The type of top node produced by the parser.\n */\n get topNode() { return this.nodeSet.types[this.top[1]]; }\n /**\n @internal\n */\n dynamicPrecedence(term) {\n let prec = this.dynamicPrecedences;\n return prec == null ? 0 : prec[term] || 0;\n }\n /**\n @internal\n */\n parseDialect(dialect) {\n let values = Object.keys(this.dialects), flags = values.map(() => false);\n if (dialect)\n for (let part of dialect.split(\" \")) {\n let id = values.indexOf(part);\n if (id >= 0)\n flags[id] = true;\n }\n let disabled = null;\n for (let i = 0; i < values.length; i++)\n if (!flags[i]) {\n for (let j = this.dialects[values[i]], id; (id = this.data[j++]) != 65535 /* Seq.End */;)\n (disabled || (disabled = new Uint8Array(this.maxTerm + 1)))[id] = 1;\n }\n return new Dialect(dialect, flags, disabled);\n }\n /**\n Used by the output of the parser generator. Not available to\n user code. @hide\n */\n static deserialize(spec) {\n return new LRParser(spec);\n }\n}\nfunction pair(data, off) { return data[off] | (data[off + 1] << 16); }\nfunction findFinished(stacks) {\n let best = null;\n for (let stack of stacks) {\n let stopped = stack.p.stoppedAt;\n if ((stack.pos == stack.p.stream.end || stopped != null && stack.pos > stopped) &&\n stack.p.parser.stateFlag(stack.state, 2 /* StateFlag.Accepting */) &&\n (!best || best.score < stack.score))\n best = stack;\n }\n return best;\n}\nfunction getSpecializer(spec) {\n if (spec.external) {\n let mask = spec.extend ? 1 /* Specialize.Extend */ : 0 /* Specialize.Specialize */;\n return (value, stack) => (spec.external(value, stack) << 1) | mask;\n }\n return spec.get;\n}\n\nexport { ContextTracker, ExternalTokenizer, InputStream, LRParser, LocalTokenGroup, Stack };\n"],"names":["Stack","p","stack","state","reducePos","pos","score","buffer","bufferBase","curContext","lookAhead","parent","_","i","cx","StackContext","start","action","_a","depth","type","parser","lookaheadRecord","dPrec","base","size","count","baseStateID","term","end","mustSink","cur","top","index","mustMove","scan","nextState","next","nextStart","nextEnd","value","off","isNode","sim","SimulatedStack","nextStates","best","s","v","result","reduce","target","backup","seen","explore","rDepth","found","other","dialectID","last","context","newCx","tracker","goto","StackBufferCursor","decodeArray","input","Type","array","out","stop","digit","CachedToken","nullToken","InputStream","ranges","offset","assoc","range","idx","resolved","token","endOffset","endPos","chunk","chunkPos","nextChunk","n","from","to","r","TokenGroup","data","id","readToken","LocalTokenGroup","precTable","elseToken","skipped","atEof","nextPos","ExternalTokenizer","options","group","precOffset","groupMask","dialect","accEnd","overrides","low","high","mid","findOffset","prev","tableData","tableOffset","iPrev","verbose","stackIDs","cutAt","tree","side","cursor","IterMode","FragmentCursor","fragments","nodeSet","fr","Tree","NodeProp","TokenCache","stream","actionIndex","main","tokenizers","mask","tokenizer","startIndex","set","pair","Parse","stacks","newStacks","stopped","stoppedTokens","tok","finished","findFinished","maxRemaining","a","b","outer","j","split","strictCx","cxHash","cached","match","inner","defaultReduce","actions","localStack","pushStackDedup","tokens","restarted","tokenEnd","force","forceBase","insert","Dialect","source","flags","disabled","x","ContextTracker","spec","LRParser","Parser","nodeNames","topTerms","nodeProps","setProp","nodeID","prop","propSpec","NodeSet","name","NodeType","DefaultBufferLength","tokenArray","getSpecializer","parse","w","loose","table","groupTag","terminal","slot","flag","deflt","config","copy","info","t","prec","values","part"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./index-osDEQbsO.cjs"),a=require("./__vite-browser-external-P9g2kRCo.cjs"),D=1,G=194,w=195,L=196,R=197,H=198,B=199,K=200,M=2,Z=3,_=201,OO=24,eO=25,iO=49,aO=50,nO=55,rO=56,tO=57,QO=59,oO=60,dO=61,sO=62,lO=63,TO=65,SO=238,pO=71,gO=241,qO=242,mO=243,PO=244,$O=245,hO=246,cO=247,fO=248,j=72,XO=249,yO=250,zO=251,WO=252,vO=253,kO=254,RO=255,_O=256,xO=73,uO=77,UO=263,bO=112,VO=130,GO=151,wO=152,ZO=155,S=10,g=13,v=32,c=9,k=35,jO=40,EO=46,W=123,x=125,E=39,Y=34,u=92,YO=111,FO=120,CO=78,JO=117,AO=85,IO=new Set([eO,iO,aO,UO,TO,VO,rO,tO,SO,sO,lO,j,xO,uO,oO,dO,GO,wO,ZO,bO]);function f(O){return O==S||O==g}function X(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const NO=new p.ExternalTokenizer((O,e)=>{let i;if(O.next<0)O.acceptToken(B);else if(e.context.flags&P)f(O.next)&&O.acceptToken(H,1);else if(((i=O.peek(-1))<0||f(i))&&e.canShift(R)){let n=0;for(;O.next==v||O.next==c;)O.advance(),n++;(O.next==S||O.next==g||O.next==k)&&O.acceptToken(R,-n)}else f(O.next)&&O.acceptToken(L,1)},{contextual:!0}),DO=new p.ExternalTokenizer((O,e)=>{let i=e.context;if(i.flags)return;let n=O.peek(-1);if(n==S||n==g){let r=0,t=0;for(;;){if(O.next==v)r++;else if(O.next==c)r+=8-r%8;else break;O.advance(),t++}r!=i.indent&&O.next!=S&&O.next!=g&&O.next!=k&&(r<i.indent?O.acceptToken(w,-t):O.acceptToken(G))}}),P=1,F=2,d=4,s=8,l=16,T=32;function $(O,e,i){this.parent=O,this.indent=e,this.flags=i,this.hash=(O?O.hash+O.hash<<8:0)+e+(e<<4)+i+(i<<6)}const LO=new $(null,0,0);function HO(O){let e=0;for(let i=0;i<O.length;i++)e+=O.charCodeAt(i)==c?8-e%8:1;return e}const U=new Map([[gO,0],[qO,d],[mO,s],[PO,s|d],[$O,l],[hO,l|d],[cO,l|s],[fO,l|s|d],[XO,T],[yO,T|d],[zO,T|s],[WO,T|s|d],[vO,T|l],[kO,T|l|d],[RO,T|l|s],[_O,T|l|s|d]].map(([O,e])=>[O,e|F])),BO=new p.ContextTracker({start:LO,reduce(O,e,i,n){return O.flags&P&&IO.has(e)||(e==pO||e==j)&&O.flags&F?O.parent:O},shift(O,e,i,n){return e==G?new $(O,HO(n.read(n.pos,i.pos)),0):e==w?O.parent:e==OO||e==nO||e==QO||e==Z?new $(O,0,P):U.has(e)?new $(O,0,U.get(e)|O.flags&P):O},hash(O){return O.hash}}),KO=new p.ExternalTokenizer(O=>{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let i=O.peek(e);if(!(i==v||i==c)){i!=jO&&i!=EO&&i!=S&&i!=g&&i!=k&&O.acceptToken(D);return}}}),MO=new p.ExternalTokenizer((O,e)=>{let{flags:i}=e.context,n=i&d?Y:E,r=(i&s)>0,t=!(i&l),Q=(i&T)>0,o=O.pos;for(;!(O.next<0);)if(Q&&O.next==W)if(O.peek(1)==W)O.advance(2);else{if(O.pos==o){O.acceptToken(Z,1);return}break}else if(t&&O.next==u){if(O.pos==o){O.advance();let q=O.next;q>=0&&(O.advance(),Oe(O,q)),O.acceptToken(M);return}break}else if(O.next==u&&!t&&O.peek(1)>-1)O.advance(2);else if(O.next==n&&(!r||O.peek(1)==n&&O.peek(2)==n)){if(O.pos==o){O.acceptToken(_,r?3:1);return}break}else if(O.next==S){if(r)O.advance();else if(O.pos==o){O.acceptToken(_);return}break}else O.advance();O.pos>o&&O.acceptToken(K)});function Oe(O,e){if(e==YO)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(e==FO)for(let i=0;i<2&&X(O.next);i++)O.advance();else if(e==JO)for(let i=0;i<4&&X(O.next);i++)O.advance();else if(e==AO)for(let i=0;i<8&&X(O.next);i++)O.advance();else if(e==CO&&O.next==W){for(O.advance();O.next>=0&&O.next!=x&&O.next!=E&&O.next!=Y&&O.next!=S;)O.advance();O.next==x&&O.advance()}}const ee=a.styleTags({'async "*" "**" FormatConversion FormatSpec':a.tags.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":a.tags.controlKeyword,"in not and or is del":a.tags.operatorKeyword,"from def class global nonlocal lambda":a.tags.definitionKeyword,import:a.tags.moduleKeyword,"with as print":a.tags.keyword,Boolean:a.tags.bool,None:a.tags.null,VariableName:a.tags.variableName,"CallExpression/VariableName":a.tags.function(a.tags.variableName),"FunctionDefinition/VariableName":a.tags.function(a.tags.definition(a.tags.variableName)),"ClassDefinition/VariableName":a.tags.definition(a.tags.className),PropertyName:a.tags.propertyName,"CallExpression/MemberExpression/PropertyName":a.tags.function(a.tags.propertyName),Comment:a.tags.lineComment,Number:a.tags.number,String:a.tags.string,FormatString:a.tags.special(a.tags.string),Escape:a.tags.escape,UpdateOp:a.tags.updateOperator,"ArithOp!":a.tags.arithmeticOperator,BitOp:a.tags.bitwiseOperator,CompareOp:a.tags.compareOperator,AssignOp:a.tags.definitionOperator,Ellipsis:a.tags.punctuation,At:a.tags.meta,"( )":a.tags.paren,"[ ]":a.tags.squareBracket,"{ }":a.tags.brace,".":a.tags.derefOperator,", ;":a.tags.separator}),ie={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ae=p.LRParser.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:BO,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[ee],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[KO,DO,NO,MO,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>ie[O]||-1}],tokenPrec:7668}),b=new a.NodeWeakMap,C=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function m(O){return(e,i,n)=>{if(n)return!1;let r=e.node.getChild("VariableName");return r&&i(r,O),!0}}const ne={FunctionDefinition:m("function"),ClassDefinition:m("class"),ForStatement(O,e,i){if(i){for(let n=O.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(O,e){var i,n;let{node:r}=O,t=((i=r.firstChild)===null||i===void 0?void 0:i.name)=="from";for(let Q=r.getChild("import");Q;Q=Q.nextSibling)Q.name=="VariableName"&&((n=Q.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(Q,t?"variable":"namespace")},AssignStatement(O,e){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name==":"||i.name=="AssignOp")break},ParamList(O,e){for(let i=null,n=O.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!i||!/\*|AssignOp/.test(i.name))&&e(n,"variable"),i=n},CapturePattern:m("variable"),AsPattern:m("variable"),__proto__:null};function J(O,e){let i=b.get(e);if(i)return i;let n=[],r=!0;function t(Q,o){let q=O.sliceString(Q.from,Q.to);n.push({label:q,type:o})}return e.cursor(a.IterMode.IncludeAnonymous).iterate(Q=>{if(Q.name){let o=ne[Q.name];if(o&&o(Q,t,r)||!r&&C.has(Q.name))return!1;r=!1}else if(Q.to-Q.from>8192){for(let o of J(O,Q.node))n.push(o);return!1}}),b.set(e,n),n}const V=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,A=["String","FormatString","Comment","PropertyName"];function I(O){let e=a.syntaxTree(O.state).resolveInner(O.pos,-1);if(A.indexOf(e.name)>-1)return null;let i=e.name=="VariableName"||e.to-e.from<20&&V.test(O.state.sliceDoc(e.from,e.to));if(!i&&!O.explicit)return null;let n=[];for(let r=e;r;r=r.parent)C.has(r.name)&&(n=n.concat(J(O.state.doc,r)));return{options:n,from:i?e.from:O.pos,validFor:V}}const re=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),te=[a.snippetCompletion("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),a.snippetCompletion("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),a.snippetCompletion("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),a.snippetCompletion("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),a.snippetCompletion(`if \${}:
2
-
3
- `,{label:"if",detail:"block",type:"keyword"}),a.snippetCompletion("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),a.snippetCompletion("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),a.snippetCompletion("import ${module}",{label:"import",detail:"statement",type:"keyword"}),a.snippetCompletion("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],N=a.ifNotIn(A,a.completeFromList(re.concat(te)));function y(O){let{node:e,pos:i}=O,n=O.lineIndent(i,-1),r=null;for(;;){let t=e.childBefore(i);if(t)if(t.name=="Comment")i=t.from;else if(t.name=="Body"||t.name=="MatchBody")O.baseIndentFor(t)+O.unit<=n&&(r=t),e=t;else if(t.name=="MatchClause")e=t;else if(t.type.is("Statement"))e=t;else break;else break}return r}function z(O,e){let i=O.baseIndentFor(e),n=O.lineAt(O.pos,-1),r=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&O.node.to<r+100&&!/\S/.test(O.state.sliceDoc(r,O.node.to))&&O.lineIndent(O.pos,-1)<=i||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(O.textAfter)&&O.lineIndent(O.pos,-1)>i?null:i+O.unit}const h=a.LRLanguage.define({name:"python",parser:ae.configure({props:[a.indentNodeProp.add({Body:O=>{var e;let i=/^\s*(#|$)/.test(O.textAfter)&&y(O)||O.node;return(e=z(O,i))!==null&&e!==void 0?e:O.continue()},MatchBody:O=>{var e;let i=y(O);return(e=z(O,i||O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),"ForStatement WhileStatement":O=>/^\s*else:/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except[ :]|finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),MatchStatement:O=>/^\s*case /.test(O.textAfter)?O.baseIndent+O.unit:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":a.delimitedIndent({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":a.delimitedIndent({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":a.delimitedIndent({closing:"]"}),MemberExpression:O=>O.baseIndent+O.unit,"String FormatString":()=>null,Script:O=>{var e;let i=y(O);return(e=i&&z(O,i))!==null&&e!==void 0?e:O.continue()}}),a.foldNodeProp.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":a.foldInside,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)}),"String FormatString":(O,e)=>({from:e.doc.lineAt(O.from).to,to:O.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function Qe(){return new a.LanguageSupport(h,[h.data.of({autocomplete:I}),h.data.of({autocomplete:N})])}exports.globalCompletion=N;exports.localCompletionSource=I;exports.python=Qe;exports.pythonLanguage=h;
4
- //# sourceMappingURL=index-DwzMEK1v.cjs.map